From taskmaster
Scan the codebase for TODO/FIXME/HACK/XXX comments and cross-reference with the backlog. Invoke when the user says 'check TODOs', 'are my TODOs tracked', 'scan for TODOs', 'todo audit', 'what's untracked', or wants to make sure inline code comments are captured in the task system.
How this skill is triggered — by the user, by Claude, or both
Slash command
/taskmaster:check-todosThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scan the codebase for inline work markers (TODO, FIXME, HACK, XXX) and cross-reference them with the backlog to find what's tracked, what's missing, and what's stale.
Scan the codebase for inline work markers (TODO, FIXME, HACK, XXX) and cross-reference them with the backlog to find what's tracked, what's missing, and what's stale.
This is the bridge between "I left a TODO in the code" and "it's actually in the task system where it won't be forgotten."
First, look for dedicated task/planning files. Use Glob to find:
TODO.md, TODOS.md, TASKS.md, ROADMAP.md, BACKLOG.md
Also check subdirectories — some projects keep these per-module (e.g., src/api/TODO.md).
If found, read each file and parse it as a structured task list:
- [ ] item, - [x] done item) → individual work items[x]) → note as "completed in TODO.md but may need a backlog task for cleanup"These files are a rich source of planned work — treat each unchecked item as a potential task.
Use Grep to find all inline work markers in code files:
Grep pattern: "TODO|FIXME|HACK|XXX" (case-insensitive)
Exclude noise directories: node_modules, .git, vendor, dist, build, __pycache__, .next, .nuxt, coverage, .claude.
Also exclude the task files found in step 1 — they're already parsed structurally, don't double-count them as grep hits.
Collect results as a list of:
If there are more than 50 inline results, group by directory first and report counts. Only show individual items for the top areas.
Call backlog_search with key terms from each item to check if it's already tracked. Also call backlog_list_tasks to get the full task list for matching.
For each TODO found, determine its status:
Tracked — A task exists that references this TODO, either by:
notes or docs fieldUntracked — No matching task found. This is work that exists in the code but isn't in the task system.
Stale candidates — Tasks that reference files/lines where the TODO no longer exists (the TODO may have been resolved but the task wasn't updated). Flag these for review, don't assert they're stale — the task may have evolved beyond the original TODO.
Structure the output as:
## TODO Audit — {project name}
**Task files found:** {list of TODO.md etc., or "none"}
**Inline markers:** {M} across {N} files
### Coverage
- Tracked: {X} ({pct}%) — already have matching tasks
- Untracked: {Y} ({pct}%) — not in the backlog
- Stale candidates: {Z} — tasks that may reference resolved TODOs
### Untracked TODOs (need tasks)
**{directory}/**
| File:Line | Type | Comment | Suggested Priority |
|-----------|------|---------|-------------------|
| src/api/routes.ts:45 | FIXME | Race condition in auth check | P1 |
| src/api/routes.ts:120 | TODO | Add rate limiting | P2 |
**{another directory}/**
...
### Tracked TODOs (already in backlog)
- `auth-003` ← src/auth/middleware.ts:22 TODO: refresh token handling
- `api-007` ← src/api/routes.ts:88 FIXME: validate input
### Stale Candidates (review these)
- `api-002` references src/api/old-handler.ts:15 — but no TODO found there anymore
Priority suggestions:
After the report, offer:
What would you like to do?
- Create tasks for all untracked TODOs (I'll group them by area into epics)
- Create tasks selectively — pick which ones to track
- Review stale candidates — check if those tasks should be updated or closed
- Just the report — no changes needed right now
If the user chooses to create tasks:
file:line in the notes field so future scans can match themSource: {file}:{line} — {original TODO comment}This skill works well as a periodic check-in. Suggest to the user:
/init-taskmaster first.- [ ] as open items and - [x] as completed. Completed items may still need backlog tasks if follow-up work remains (cleanup, tests, docs).src/api/TODO.md, src/auth/TODO.md). Find all of them and group results by location. The directory name is a strong hint for which epic the items belong to.Source: TODO.md line N in the task notes. On future scans, this enables matching.npx claudepluginhub gruku/claude-tools --plugin taskmasterDiscovers TODO/FIXME/HACK/XXX/BUG/OPTIMIZE comments via Grep across codebase, checks for task duplicates, lists them, and converts selected ones to task files via /add-task skill. Use to extract inline todos as tracked tasks.
Discovers TODO/FIXME/HACK/XXX/NOTE/BUG/OPTIMIZE comments in codebase via taskmd, lists with duplicate checks, and converts user-selected ones to task files using /add-task. Use to turn code TODOs into tracked tasks.
Manages file-based todo tracking system in todos/ directory using markdown files: creates todos from feedback, updates status/dependencies, triages items, integrates with slash commands and code reviews.