{{command_prefix}}todo
Role: Design todo list. Three subcommands: add, list, pick. Backing store: .design/TODO.md. For items that are pipeline-level decisions or must-haves (not free-form backlog), route through the gdd-state MCP tools instead - see Pipeline-linked items below.
File format
markdown# Design Todos ## P0 — Blocking - [ ] [2026-04-18] Fix contrast ratio on card headers ## P1 — High - [ ] [2026-04-18] Align Button focus ring with tokens ## P2 — Normal ## P3 — Nice to have
Priority is encoded by section, not inline. Status markers: [ ] unchecked, [x] done, [-] [in-progress], [p] [promoted].
Subcommands
add [text]
If text omitted, use AskUserQuestion: "What todo item? (include priority P0-P3 if known)". Parse leading P[0-3] token from text; default P2. Append under the right section as:
- [ ] [YYYY-MM-DD] <text without priority token>
Create TODO.md from the template above if missing.
list
- Call
mcp__gdd_state__get→ pipeline-level decisions + must-haves (shown as context at the top). - Read
.design/TODO.md(file outside the MCP catalog). Print all- [ ]and- [-]items grouped by priority section, with index numbers.
pick
Read .design/TODO.md. Collect unchecked items. Use AskUserQuestion to let the user pick one. Rewrite the chosen line as:
- [-] [YYYY-MM-DD] [in-progress] <original text>
Print "Picked: ".
Pipeline-linked items
When the user promotes a todo to a pipeline decision or must-have, route through MCP instead of TODO.md:
- Decision →
mcp__gdd_state__add_decisionwith{ id: "D-XX", text: "...", status: "locked"|"tentative" }. - Must-have →
mcp__gdd_state__add_must_havewith{ id: "M-XX", text: "...", status: "pending" }.
Constraints
- Do not modify files outside
.design/. - Preserve existing sections and ordering on write.
- Do not mutate STATE.md directly - use the MCP tools above.


