install
source · Clone the upstream repo
git clone https://github.com/dcs-soni/awesome-claude-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/dcs-soni/awesome-claude-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/stale-todo-finder" ~/.claude/skills/dcs-soni-awesome-claude-skills-finding-stale-todos && rm -rf "$T"
manifest:
stale-todo-finder/SKILL.mdsource content
Stale TODO Finder
Find forgotten TODO/FIXME/HACK comments and track their age using git blame.
Quick Start
Copy this checklist:
Stale TODO Analysis: - [ ] Step 1: Scan for TODO comments - [ ] Step 2: Analyze staleness with git blame - [ ] Step 3: Categorize by age - [ ] Step 4: Generate actionable report
Workflow
Step 1: Scan for TODO Comments
Find all TODO-style comments in the codebase:
python scripts/find_todos.py <directory> --format json
Patterns detected:
,TODO
,FIXME
,HACK
,XXX
,BUGOPTIMIZE- Works across Python, JavaScript, TypeScript, Go, Java, C/C++, Ruby, Rust
Step 2: Analyze Staleness
Correlate TODOs with git history:
python scripts/analyze_staleness.py <directory> --min-age 90
Output includes:
- Commit date when TODO was added
- Age in days
- Original author
- File and line number
Step 3: Categorize by Age
TODOs are grouped into staleness buckets:
| Category | Age | Priority |
|---|---|---|
| 🔴 Ancient | >1 year | High - likely forgotten |
| 🟠 Stale | 6-12 months | Medium - needs review |
| 🟡 Aging | 3-6 months | Low - monitor |
| 🟢 Recent | <3 months | OK - still relevant |
Step 4: Generate Report
Create actionable markdown report:
python scripts/generate_report.py <directory> --output stale_todos.md
Report includes:
- Summary statistics
- TODOs sorted by age (oldest first)
- Grouped by category
- Author attribution
Utility Scripts
| Script | Purpose |
|---|---|
| Find all TODO comments |
| Git blame analysis |
| Generate markdown report |
| Generate interactive HTML report |
Example
User: "Find forgotten TODOs in this project"
- Run
→ Finds 47 TODOsfind_todos.py . - Run
→ 12 are older than 1 yearanalyze_staleness.py . - Run
→ Creates report with:generate_report.py .- 12 ancient TODOs (>1 year)
- 8 stale TODOs (6-12 months)
- 27 recent TODOs (<6 months)
Sample output:
## 🔴 Ancient TODOs (>1 year) - 12 found | File | Line | Age | Author | Content | | ------------ | ---- | -------- | ------ | ------------------------ | | src/utils.py | 42 | 847 days | @alice | TODO: optimize this loop | | lib/auth.js | 156 | 623 days | @bob | FIXME: handle edge case |
Configuration
Filter by patterns or paths:
# Only FIXME and BUG python scripts/find_todos.py . --patterns FIXME,BUG # Exclude vendor directories python scripts/find_todos.py . --exclude "vendor/*,node_modules/*" # Only show TODOs older than 6 months python scripts/analyze_staleness.py . --min-age 180
Related Skills
- codebase-onboarding — Understand codebase before cleanup
- incident-response-helper — Some TODOs may be related to incidents