plugins/compound-engineering/skills/file-todos/SKILL.md
This skill should be used when managing the file-based todo tracking system in the todos/ directory. It provides workflows for creating todos, managing status and dependencies, conducting triage, and integrating with slash commands and code review processes.
npx skillsauth add the-rabak/compound-engineering-plugin file-todosInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The todos/ directory contains a file-based tracking system for managing code review feedback, technical debt, feature requests, and work items. Each todo is a markdown file with YAML frontmatter and structured sections.
This skill should be used when:
Todo files follow this naming pattern:
{issue_id}-{status}-{priority}-{description}.md
Components:
pending (not started or awaiting decision), in_progress (actively being worked), blocked (cannot proceed), complete (validated and closed)p1 (critical), p2 (important), p3 (nice-to-have)Examples:
001-pending-p1-mailer-test.md
002-in_progress-p1-fix-n-plus-1.md
003-blocked-p2-await-api-access.md
005-complete-p2-refactor-csv.md
Use in_progress as the machine value in frontmatter and filenames. Display it as "in progress" in prose when needed.
Each todo is a markdown file with YAML frontmatter and structured sections. Use the template at todo-template.md as a starting point when creating new todos.
Required sections:
Optional sections:
YAML frontmatter fields:
---
status: pending # pending | in_progress | blocked | complete
priority: p1 # p1 | p2 | p3
issue_id: "002"
tags: [laravel, performance, database]
dependencies: ["001"] # Issue IDs this is blocked by
---
To create a new todo from findings or feedback:
ls todos/ | grep -o '^[0-9]\+' | sort -n | tail -1cp assets/todo-template.md todos/{NEXT_ID}-pending-{priority}-{description}.mdpending unless the work is actively being executed now (in_progress) or cannot proceed (blocked)When to create a todo:
When to act immediately instead:
To triage pending todos:
ls todos/*-pending-*.mdpending when the action is selected but not executing yetin_progress only when an execution session startsblocked when a dependency, missing decision, missing access, or external blocker prevents progresspending status with the deferral reason in the work logUse slash command: /workflows:triage for research-backed interactive approval workflow
To track dependencies:
dependencies: ["002", "005"] # This todo blocked by issues 002 and 005
dependencies: [] # No blockers - can work immediately
To check what blocks a todo:
grep "^dependencies:" todos/003-*.md
To find what a todo blocks:
grep -l 'dependencies:.*"002"' todos/*.md
To verify blockers are complete before starting:
for dep in 001 002 003; do
[ -f "todos/${dep}-complete-*.md" ] || echo "Issue $dep not complete"
done
When working on a todo, always add a work log entry:
### YYYY-MM-DD - Session Title
**By:** Claude Code / Developer Name
**Actions:**
- Specific changes made (include file:line references)
- Commands executed
- Tests run
- Results of investigation
**Learnings:**
- What worked / what didn't
- Patterns discovered
- Key insights for future work
Work logs serve as:
To mark a todo as complete:
mv {file}-in_progress-{pri}-{desc}.md {file}-complete-{pri}-{desc}.mdstatus: in_progress → status: completegrep -l 'dependencies:.*"002"' todos/*-pending-*.md todos/*-blocked-*.md 2>/dev/nullfeat: resolve issue 002| Trigger | Flow | Tool |
|---------|------|------|
| Code review | /workflows:review → Findings → /workflows:triage → Todos | Review agent + skill |
| PR comments | /resolve_pr_parallel → Individual fixes → Todos | gh CLI + skill |
| Code TODOs | /resolve_todo_parallel → Fixes + Complex todos | Agent + skill |
| Planning | Brainstorm → Create todo → Work → Complete | Skill |
| Feedback | Discussion → Create todo → Triage → Work | Skill + slash |
Finding work:
# List highest priority unblocked work
grep -l 'dependencies: \[\]' todos/*-pending-p1-*.md
# List all pending items needing triage
ls todos/*-pending-*.md
# Find next issue ID
ls todos/ | grep -o '^[0-9]\+' | sort -n | tail -1 | awk '{printf "%03d", $1+1}'
# Count by status
for status in pending in_progress blocked complete; do
echo "$status: $(ls -1 todos/*-$status-*.md 2>/dev/null | wc -l)"
done
Dependency management:
# What blocks this todo?
grep "^dependencies:" todos/003-*.md
# What does this todo block?
grep -l 'dependencies:.*"002"' todos/*.md
Searching:
# Search by tag
grep -l "tags:.*laravel" todos/*.md
# Search by priority
ls todos/*-p1-*.md
# Full-text search
grep -r "payment" todos/
File-todos system (this skill):
todos/ directoryLaravel Todo model:
app/Models/Todo.phpTodoWrite tool:
development
Mutates a single field or content region of an existing self-contained HTML artifact in place (island-first, no-added-facts, injection-safe) without regenerating the document from scratch. Invoked by a workflow command whenever it needs to back-write into an artifact it already composed -- e.g. a ref/status update, or a content rewrite that must re-project the affected view -- never by the user directly.
development
Composes a self-contained, interactive HTML artifact (island-first, single file, token-layer themed, injection-safe) from a workflow command's structured plan payload. Invoked by a workflow command at its artifact-write step -- currently `/workflows:plan` -- never by the user directly.
development
Mutates a single field or content region of an existing self-contained HTML artifact in place (island-first, no-added-facts, injection-safe) without regenerating the document from scratch. Invoked by a workflow command whenever it needs to back-write into an artifact it already composed -- e.g. a ref/status update, or a content rewrite that must re-project the affected view -- never by the user directly.
development
Composes a self-contained, interactive HTML artifact (island-first, single file, token-layer themed, injection-safe) from a workflow command's structured plan payload. Invoked by a workflow command at its artifact-write step -- currently `/workflows:plan` -- never by the user directly.