todo ยท git:20260703.0cdb185 ยท 2026-07-03 ยท sha256 c73f769df68299fd

todo git:20260703.0cdb185A

Immutable. This exact content never changes and is served at /api/v1/blob/c73f769df68299fd.

---
name: todo
description: "Maintain the project's master TODO โ€” the internal backlog in docs/TODO.md and its dated archive docs/TODO-done.md. Use when adding/updating/sorting TODO items, marking something in-progress/implemented/verified/done, asking \"what should I do next\", or mentioning \"/todo\". Uses explicit status markers ([ ] not started, [~] in progress, [?] implemented-but-unverified), a separate [P] priority marker, verification type (๐Ÿค– auto vs ๐Ÿ™‹ needs-human), and exposure tags. Orders by priority โ†’ ease โ†’ dependency count. On done-AND-verified, moves the item into docs/TODO-done.md under today's real date. Never ticks an item done without its verify having actually passed, and never invents a date."
license: MIT
allowed-tools: Bash, Read, Edit, Write
---

# Maintain the master TODO

Keep the project's `docs/TODO.md` (the live backlog) and `docs/TODO-done.md`
(the dated archive) accurate, honest, and well-ordered. Template + full legend live in those files' headers.

## Status markers (status first, then optional priority)

- `[ ]` not started ยท `[~]` in progress / partial ยท `[?]` **implemented but unverified** (code looks done; not
  yet proven). There is **no `[x]`** in TODO.md โ€” done+verified items leave the file (see Move rule).
- `[P]` is a *separate* priority marker, prepended: `[ ] [P] โ€ฆ`.
- **Verification type** on every item: `๐Ÿค–` = an agent can prove it with a test/command ยท `๐Ÿ™‹` = needs a human
  (manual test, judgment, real-world check). Every item carries a `โ†’ verify:` line stating exactly how.
- **Exposure tags** (optional): `๐ŸŒ` public-eligible ยท `๐Ÿ”’` internal-only ยท `โš–` needs ToS/Privacy review.

## What this skill does

- **Add** an item to the right section with a status marker, verification type + `โ†’ verify:`, `deps:`, and any
  tags. New work without a clear verify is incomplete โ€” ask or infer one.
- **Advance** status: `[ ]`โ†’`[~]`โ†’`[?]`โ†’ (verified) โ†’ moved out. Set `[?]` when code is written but the verify
  hasn't passed yet. **Never** jump to done on assumption.
- **Sort** open items by **priority โ†’ ease โ†’ dependency count** (quick unblocked wins first, then foundational,
  then dependent systems). Keep `## 0. In-flight` to what's actively in progress.
- **Move on done:** when an item is completed **and** its verify has actually passed (๐Ÿค–) or its owner signed
  off (๐Ÿ™‹), move the whole item into `docs/TODO-done.md` under **today's real date** (get it from the system โ€”
  never invent it), preserving the description + the evidence (the command that passed / PR / who verified).

## Hard rules

- Do not tick or move an item to done without the verification having **actually been observed** (constitution
  A2). `[?]` is the honest holding state for "implemented, not proven."
- **Default every item to `๐Ÿค–`** (AI-verifiable โ€” the overlord/tester runs the check and reads the output). Make
  items auto-verifiable: write the e2e / visual / contract / injected-error test that proves it. **Never ask the
  user to verify a `๐Ÿค–` item** โ€” that's the agent's job (A2).
- Reserve `๐Ÿ™‹` for **genuine human-acceptance only**: a subjective look-and-feel call, or a check needing the
  human's credentials / a live deploy (account/login/live-key/deploy work). The autonomous loop does **not**
  stop to ask about `๐Ÿ™‹` items: it builds everything around them, **defers them to `docs/DEPLOYMENT.md`**, and
  keeps going; they're handed off and run together at the end. The overlord must not mark `๐Ÿ™‹` items done on its own.
- Keep it truthful: stalled work is `[~]` with a note, not a silent `[ ]`.
- Never invent a date; never delete history from `TODO-done.md`.