File-Based Todo Tracking
Overview
The .context/compound-engineering/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.
Legacy support: Always check both .context/compound-engineering/todos/ (canonical) and todos/ (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.
Directory Paths
Purpose Path
Canonical (write here) .context/compound-engineering/todos/
Legacy (read-only) todos/
File Naming Convention
{issue_id}-{status}-{priority}-{description}.md
-
issue_id: Sequential number (001, 002, ...) -- never reused
-
status: pending | ready | complete
-
priority: p1 (critical) | p2 (important) | p3 (nice-to-have)
-
description: kebab-case, brief
Example: 002-ready-p1-fix-n-plus-1.md
File Structure
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.
Workflows
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 ).
Creating a New Todo
-
mkdir -p .context/compound-engineering/todos/
-
Search both paths for [0-9]-.md , find the highest numeric prefix, increment, zero-pad to 3 digits.
-
Use the todo template included below, write to canonical path as {NEXT_ID}-pending-{priority}-{description}.md .
-
Fill Problem Statement, Findings, Proposed Solutions, Acceptance Criteria, and initial Work Log entry.
-
Set status: 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.
Triaging Pending Items
-
Glob -pending-.md in both paths.
-
Review each todo's Problem Statement, Findings, and Proposed Solutions.
-
Approve: rename pending -> ready in filename and frontmatter, fill Recommended Action.
-
Defer: leave as pending .
Load the todo-triage skill for an interactive approval workflow.
Managing Dependencies
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.
Completing a Todo
-
Verify all acceptance criteria.
-
Update Work Log with final session.
-
Rename ready -> complete in filename and frontmatter.
-
Check for unblocked work: search for files containing dependencies:.*"{issue_id}" .
Integration with Workflows
Trigger Flow
Code review /ce:review -> Findings -> /todo-triage -> Todos
Autonomous review /ce:review mode:autofix -> Residual todos -> /todo-resolve
Code TODOs /todo-resolve -> Fixes + Complex todos
Planning Brainstorm -> Create todo -> Work -> Complete
Key Distinction
This skill manages durable, cross-session work items persisted as markdown files. For temporary in-session step tracking, use platform task tools (TaskCreate /TaskUpdate in Claude Code, update_plan in Codex) instead.
Todo Template
@./assets/todo-template.md