plan-status

Reports measured open, done and blocked counts from the project's active plan and backlog, then lists the open decisions as numbered A/B/C questions with a recommended option, answerable in one line.

Group
Project hygiene
Kind
Read-only
Writes
Nothing
Asks before
Nothing; it only reports

When it runs

When you ask where the work stands or what is left. Say it in your own words, for example:

What it does

  1. Finds the sources. Plans live where the project's AGENTS.md or CLAUDE.md says, otherwise in docs/plans/; the files the Backlog: line names are not plans; the active plan is the most recently updated one that is not done, and other open plans are listed by name. The backlog comes from a Backlog: <todo path>, <done path> line, otherwise TODO.md and TODO-done.md. A missing backlog is reported as none found; with no plan it reports the backlog alone.
  2. Counts, never estimates. It states the rule it used. Done is - [x] items or steps the plan marks done; blocked is open items that say blocked or use a [!] or [-] box, each named with its blocker; open is every other - [ ] item. A plan line that only links a backlog ID is counted in the backlog, not again. A plan without checkboxes is counted by its step headings. Backlog items are counted per P0–P3 section, and each open item lands in exactly one bucket, first match wins: orphaned (an Owner dated more than 7 days ago), waiting (a Blocked by ID still open), claimed (any other Owner) or ready.
  3. Turns open questions into decisions. From the plan's open questions, Q/D items without an outcome and items that wait on you. Each gets two or three lettered options with a one-line consequence and a recommended option with its reason. At most five, the most blocking first.
  4. Prints the status. In the format below. Without open decisions it ends with the next action instead of questions.

Example output

plan-status
Plan: docs/plans/2026-10-14-search-index.md (rule: checkboxes)
Done 3 · Open 2 · Blocked 1
Blocked: "Deploy to staging" — waits on database credentials
Backlog: TODO.md — P0 0 · P1 2 · P2 4 · P3 1; done 9 · ready 4 · waiting 2 · claimed 0 · orphaned 1
Orphaned: SEC-04 — Owner .worktrees/sec-04 (2026-10-02)
Next: "Add the reindex command"

1. Index storage? A) SQLite (recommended: no new service) B) Postgres C) in memory
2. Ship before the reindex command? A) yes B) no (recommended: the index goes stale)

Reply like "1A 2B".

Boundaries

Never

  • Edit a plan, a backlog or any other file.
  • Run a test or a build to get a number.