From systematic
Use when creating durable work items, managing todo lifecycle, or tracking findings across sessions in the file-based todo system; when reviewing pending todos for approval, prioritizing code review findings, or interactively categorizing work items; or when batch-resolving approved todos, especially after code review or triage sessions
How this skill is triggered — by the user, by Claude, or both
Slash command
/systematic:todos [create|triage|resolve] [optional: findings list, source type, or specific todo ID/pattern][create|triage|resolve] [optional: findings list, source type, or specific todo ID/pattern]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The `.context/systematic/todos/` directory is a file-based tracking system for code review feedback, technical debt, feature requests, and work items. Each todo is a markdown file with YAML frontmatter. This skill covers the full lifecycle in three sections: **Create** (new todos), **Triage** (review pending todos for approval), and **Resolve** (batch-implement approved todos).
The .context/systematic/todos/ directory is a file-based tracking system for code review feedback, technical debt, feature requests, and work items. Each todo is a markdown file with YAML frontmatter. This skill covers the full lifecycle in three sections: Create (new todos), Triage (review pending todos for approval), and Resolve (batch-implement approved todos).
Legacy support: Always check both
.context/systematic/todos/(canonical) andtodos/(legacy) when reading. Write new todos only to the canonical path. This directory has a multi-session lifecycle -- do not clean it up as scratch.
| Purpose | Path |
|---|---|
| Canonical (write here) | .context/systematic/todos/ |
| Legacy (read-only) | todos/ |
{issue_id}-{status}-{priority}-{description}.md
pending | ready | completep1 (critical) | p2 (important) | p3 (nice-to-have)Example: 002-ready-p1-fix-n-plus-1.md
Each todo has YAML frontmatter and structured sections. Use the todo template included below when creating new todos.
---
status: ready
priority: p1
issue_id: "002"
tags: [rails, performance]
dependencies: ["001"] # Issue IDs this is blocked by
---
Required sections: Problem Statement, Findings, Proposed Solutions, Recommended Action (filled during triage), Acceptance Criteria, Work Log.
Optional sections: Technical Details, Resources, Notes.
| Trigger | Flow |
|---|---|
| Code review | /ce:review -> Findings -> /systematic:todos (Triage section) -> Todos |
| Autonomous review | /ce:review mode:autofix -> Residual todos -> /systematic:todos (Resolve section) |
| Code TODOs | /systematic:todos (Resolve section) -> Fixes + Complex todos |
| Planning | Brainstorm -> Create todo -> Work -> Complete |
This skill manages durable, cross-session work items persisted as markdown files. For temporary in-session step tracking, use platform task tools (todowrite/TaskUpdate in OpenCode, update_plan in Codex) instead.
Tool preference: Use native file-search/glob and content-search tools instead of shell commands for finding and reading todo files. Shell only for operations with no native equivalent (
mv,mkdir -p).
mkdir -p .context/systematic/todos/[0-9]*-*.md, find the highest numeric prefix, increment, zero-pad to 3 digits.{NEXT_ID}-pending-{priority}-{description}.md.pending (needs triage) or ready (pre-approved).Create a todo when the work needs more than ~15 minutes, has dependencies, requires planning, or needs prioritization. Act immediately instead when the fix is trivial, obvious, and self-contained.
*-pending-*.md in both paths.pending -> ready in filename and frontmatter, fill Recommended Action.pending.See the Triage section below for an interactive approval workflow.
dependencies: ["002", "005"] # Blocked by these issues
dependencies: [] # No blockers
To check blockers: search for {dep_id}-complete-*.md in both paths. Missing matches = incomplete blockers.
ready -> complete in filename and frontmatter.dependencies:.*"{issue_id}".@./assets/todo-template.md
Interactive workflow for reviewing pending todos one by one and deciding whether to approve, skip, or modify each.
Do not write code during triage. This is purely for review and prioritization -- implementation happens in the Resolve section below.
.context/systematic/todos/ and legacy todos/ directoriesFor each pending todo, present it clearly with severity, category, description, location, problem scenario, proposed solution, and effort estimate. Then ask:
Do you want to add this to the todo list?
1. yes - approve and mark ready
2. next - skip (deletes the todo file)
3. custom - modify before approving
Use severity levels: 🔴 P1 (CRITICAL), 🟡 P2 (IMPORTANT), 🔵 P3 (NICE-TO-HAVE).
Include progress tracking in each header: Progress: 3/10 completed
yes: Rename file from pending -> ready in both filename and frontmatter. Fill the Recommended Action section. If creating a new todo (not updating existing), use the naming convention from the Create section above.
Priority mapping: 🔴 P1 -> p1, 🟡 P2 -> p2, 🔵 P3 -> p3
Confirm: "✅ Approved: {filename} (Issue #{issue_id}) - Status: ready"
next: Delete the todo file. Log as skipped for the final summary.
custom: Ask what to modify, update, re-present, ask again.
After all items processed:
## Triage Complete
**Total Items:** [X] | **Approved (ready):** [Y] | **Skipped:** [Z]
### Approved Todos (Ready for Work):
- `042-ready-p1-transaction-boundaries.md` - Transaction boundary issue
### Skipped (Deleted):
- Item #5: [reason]
What would you like to do next?
1. proceed to the Resolve section below to resolve the todos
2. commit the todos
3. nothing, go chill
Resolve approved todos using parallel processing, document lessons learned, then clean up.
Only ready todos are resolved. pending todos are skipped — they haven't been triaged yet. If pending todos exist, list them at the end so the user knows what was left behind.
Scan .context/systematic/todos/*.md and legacy todos/*.md. Partition by status:
ready (status field or -ready- in filename): resolve these.pending: skip. Report them at the end.complete: ignore, already done.If a specific todo ID or pattern was passed as an argument, filter to matching todos only (still must be ready).
Residual actionable work from ce:review mode:autofix after its safe_auto pass will already be ready.
Skip any todo that recommends deleting, removing, or gitignoring files in docs/brainstorms/, docs/plans/, or docs/solutions/ — these are intentional pipeline artifacts.
Create a task list grouped by type (e.g., todowrite in OpenCode, update_plan in Codex). Analyze dependencies -- items that others depend on run first. Output a mermaid diagram showing execution order and parallelism.
Spawn a systematic:workflow:pr-comment-resolver agent per item. Prefer parallel; fall back to sequential respecting dependency order.
Batching: 1-4 items: direct parallel returns. 5+ items: batches of 4, each returning only a short status summary (todo handled, files changed, tests run/skipped, blockers).
For large sets, use a scratch directory at .context/systematic/todo-resolve/<run-id>/ for per-resolver artifacts. Return only completion summaries to parent.
Commit changes, mark todos resolved, push to remote.
GATE: STOP. Verify todos resolved and changes committed before proceeding.
Load the ce:compound skill to document what was learned. Todo resolutions often surface patterns and architectural insights worth capturing.
GATE: STOP. Verify the compound skill produced a solution document in docs/solutions/. If none (user declined or no learnings), continue.
Delete completed/resolved todo files from both paths. If a scratch directory was created at .context/systematic/todo-resolve/<run-id>/, delete it (unless user asked to inspect).
Todos resolved: [count]
Pending (skipped): [count, or "none"]
Lessons documented: [path to solution doc, or "skipped"]
Todos cleaned up: [count deleted]
If pending todos were skipped, list them:
Skipped pending todos (proceed to the Triage section above to approve):
- 003-pending-p2-missing-index.md
- 005-pending-p3-rename-variable.md
npx claudepluginhub marcusrbrown/systematic --plugin systematicCreates and manages durable work items in a file-based todo system with YAML frontmatter, status tracking, and dependency management.
Manage file-based todos in todos/ directory. Use when creating, triaging, or tracking todos and integrating them with code review.
File-based todo and task tracking in the todos/ directory. Use when creating, triaging, listing, or managing todo files, tracking work items, managing the backlog, converting PR comments to tracked tasks, or checking todo status and dependencies.