# Find Todos

> Locate development tasks and TODO comments across the codebase Use when this capability is needed.

- Skill: `tomevault-io/find-todos` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/find-todos`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/find-todos/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/find-todos

---


# Find Development Tasks

I'll locate all TODO comments and unfinished work markers in your codebase.

## Token Optimization

**Target Reduction:** 70% (2,000-3,000 → 600-900 tokens)

**Optimization Status:** ✅ Optimized (Phase 2 Batch 3D-F, 2026-01-26)

### Key Optimizations

1. **Pure Grep-Based Search (No File Reading)**
   - Use Grep tool exclusively for TODO/FIXME/HACK/XXX/NOTE detection
   - Pattern: `"TODO|FIXME|HACK|XXX|NOTE"` with case-insensitive search
   - Grep provides file location, line numbers, and surrounding context
   - **NEVER use Read tool** - grep output contains all necessary information
   - **Saves:** 1,000-1,500 tokens per search

2. **Git Diff Scoping (Smart Defaults)**
   - Default behavior: Search only files changed in current branch
   - Use `git diff --name-only main...HEAD` to get changed files
   - Pass file list to Grep tool with path restriction
   - Fall back to full codebase search only if no git repo or explicit request
   - **Saves:** 500-1,000 tokens for large codebases

3. **Head Limit on Results**
   - Limit grep output to first 50 TODO comments using `head_limit: 50`
   - Prevents overwhelming results in large codebases
   - Most actionable TODOs are in recently changed files anyway
   - User can request "show all" if needed for comprehensive audit
   - **Saves:** 500-1,000 tokens for codebases with many TODOs

4. **Early Exit Detection**
   - Check if grep finds any TODOs before processing results
   - If no TODOs found: Immediately report "No TODOs found" and exit
   - Avoid creating empty task lists or unnecessary analysis
   - **Saves:** 200-400 tokens when no TODOs present

5. **Progressive Disclosure (Priority-Based)**
   - Sort results by marker type: FIXME/HACK/XXX first, then TODO, then NOTE
   - Show critical items (FIXME/HACK) in detail with context
   - Summarize lower-priority items (TODO/NOTE) concisely
   - Ask user if they want full details on non-critical items
   - **Saves:** 300-500 tokens by focusing on high-priority items

6. **Result Caching**
   - Cache TODO inventory at `.claude/cache/find-todos/todo-inventory.json`
   - Format: `{"file": "path", "line": 42, "type": "TODO", "comment": "text", "context": "code"}`
   - Subsequent skills (`fix-todos`, `todos-to-issues`) reuse cached data
   - Cache expires after 1 hour or when git HEAD changes
   - **Saves:** 500-1,000 tokens for dependent skills

### Usage Patterns

**Minimal scope (200-300 tokens):**
```bash
find-todos path/to/specific/file.ts
```

**Changed files only (400-600 tokens):**
```bash
find-todos
```

**Full codebase audit (600-900 tokens):**
```bash
find-todos --all
```

### Expected Token Usage

| Scenario | Before | After | Savings |
|----------|--------|-------|---------|
| Specific file | 800-1,000 | 200-300 | 70% |
| Changed files (default) | 1,500-2,000 | 400-600 | 70% |
| Full codebase | 2,500-3,000 | 600-900 | 70% |
| No TODOs found | 600-800 | 100-200 | 75% |

### Caching Behavior

- **Cache location:** `.claude/cache/find-todos/`
- **Cached data:** TODO inventory by file with line numbers and context
- **Shared with:** `/fix-todos`, `/create-todos`, `/todos-to-issues` skills
- **Cache invalidation:** 1 hour timeout or git HEAD change
- **Cache benefits:** Enables zero-cost TODO lookups for dependent skills

I'll use the Grep tool to efficiently search for task markers with context:
- Pattern: "TODO|FIXME|HACK|XXX|NOTE"
- Case insensitive search across all source files
- Show surrounding lines for better understanding

For each marker found, I'll show:
1. **File location** with line number
2. **The full comment** with context
3. **Surrounding code** to understand what needs to be done
4. **Priority assessment** based on the marker type

When I find multiple items, I'll create a todo list to organize them by priority:
- **Critical** (FIXME, HACK, XXX): Issues that could cause problems
- **Important** (TODO): Features or improvements needed
- **Informational** (NOTE): Context that might need attention

I'll also identify:
- TODOs that reference missing implementations
- Placeholder code that needs replacement
- Incomplete error handling
- Stubbed functions awaiting implementation

After scanning, I'll ask: "Convert these to GitHub issues?"
- Yes: I'll create properly categorized issues
- Todos only: I'll maintain the local todo list
- Summary: I'll provide organized report

**Important**: I will NEVER:
- Add "Created by Claude" or any AI attribution to issues
- Include "Generated with Claude Code" in descriptions
- Modify repository settings or permissions
- Add any AI/assistant signatures or watermarks

This helps track and prioritize unfinished work systematically.

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/manastalukdar) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

