with one click
tackle-todos
// Read TODO.md and scan source code for TODO/FIXME comments, build a consolidated list, then dispatch parallel agents to address as many items as possible.
// Read TODO.md and scan source code for TODO/FIXME comments, build a consolidated list, then dispatch parallel agents to address as many items as possible.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | tackle-todos |
| description | Read TODO.md and scan source code for TODO/FIXME comments, build a consolidated list, then dispatch parallel agents to address as many items as possible. |
| user_invocable | true |
| allowed-tools | Bash, Read, Write, Edit, Grep, Glob, Agent |
This skill scans the project for all outstanding work items — both from .agents/docs/TODO.md and from // TODO / // FIXME comments in source code — builds a consolidated, deduplicated, prioritized list, and then dispatches parallel agents to resolve as many items as possible.
Use this skill when: you want to make a focused sweep of outstanding TODOs and fix them in bulk.
[filter] (optional): A service name or keyword to restrict which TODOs to tackle (e.g., dynamodb, iam). If omitted, all TODOs are considered.Read .agents/docs/TODO.md and extract every unchecked - [ ] item. Record its service, description, and source.
Use Grep to search crates/ for // TODO and // FIXME patterns in *.rs files.
Group and deduplicate the results:
// TODO: extract from httpResponseCode field repeated 200+ times across wire.rs files) should be collapsed into a single work item with a note about which files/crates are affected.Merge the two sources into a single list. Deduplicate items that appear in both TODO.md and as code comments.
For each item, assign a category:
| Category | Description | Priority |
|---|---|---|
| systematic | Same pattern repeated across many files (e.g., httpResponseCode extraction) | High — one fix propagates widely |
| behavioural | Missing AWS behaviour (e.g., ConditionExpression ignored, pagination missing) | High — affects correctness |
| validation | Missing input validation or error responses | Medium |
| serialization | Wire format or serialization bugs (e.g., XML list serialization) | Medium |
| test-only | TODO in test code noting a test gap, not a code defect | Low |
| design | Requires significant design work or new abstractions | Deferred — flag for user |
Write the consolidated list to .agents-workspace/tmp/consolidated-todos.md for reference.
Before dispatching agents on any TODO entry that is more than 24 hours old, verify the entry is still applicable: grep the relevant code for the symptom ( the json! site, the lowercase enum literal, the missing handler, etc. ). Round 5 ( 2026-04-29 ) found multiple already-resolved entries ( partiql-cleanup-orphans, URL-decode audit sites ) that wasted agent time. Skip or close stale entries instead of dispatching.
If the user passed a [filter] argument, restrict the work list to items matching that filter (service name, crate name, or keyword).
Group the consolidated TODOs into independent, parallelizable work units. Each work unit should:
Present the plan to the user and get confirmation before dispatching.
For each approved work unit, launch an Agent (subagent_type: general-purpose) with a clear prompt that includes:
cargo test -p winterbaume-{service} -- --no-fail-fast)Launch as many agents in parallel as there are independent work units. Each agent works in an isolated worktree to avoid conflicts.
Never use isolation: worktree for parallel agents, which have repeatedly caused troubles. Instead, launch tasks independent from one other in a batch.
After all agents complete:
- [x] in .agents/docs/TODO.md and remove the corresponding // TODO comments from source code..agents/docs/JOURNAL.md documenting what was tackled and the outcomes.git checkout, no git restore, no discretionary commits. Agents should only edit files, not commit.cargo test <pattern>), --test-threads=N, or --no-fail-fast, and specific crate targeting (-p winterbaume-{service}). Note: --maxfail is a pytest flag, not a Rust libtest flag — do not pass it to cargo test.