write-planlisted
Install: claude install-skill taipt1504/claudehut
# Write Plan (Plan phase)
Convert the approved spec into an executable, test-first plan. Runs **inline on the main thread** — the planner
drafts in isolation; this skill owns the user gate, the state write, and the task mirror (a subagent cannot).
## Flow
```mermaid
flowchart TB
s(["spec approved (set-spec recorded)"]) --> draft["dispatch claudehut-planner → draft plan.md<br/>(T-rows + §3 flow + per-task Sketch)"]
draft --> check{"§1 restates decision, §3 traces end-to-end,<br/>every behavior task RED-first + verbatim verify?"}
check -- "no" --> draft
check -- "yes" --> rev["dispatch claudehut-plan-reviewer → REFUTE vs spec<br/>writes plan-review.md (SubagentStop blocks empty return)"]
rev --> verdict{"Verdict == APPROVE?"}
verdict -- "REVISE (route items back)" --> draft
verdict -- "APPROVE" --> smart{"full tier AND (≥5 tasks OR sensitive surface)?"}
smart -- "yes" --> record["set-plan-review APPROVE --evidence plan-review.md<br/>(byte-identical plan; edit forces re-review)"]
smart -- "no" --> ask
record --> ask{"interactive? user Approves?"}
ask -- "Request changes" --> draft
ask -. "headless -p" .-> bypass(["record approval: non-interactive in header"])
ask -- "Approve" --> setplan["set-plan plan.md (opens PreToolUse write gate)"]
bypass --> setplan
setplan --> mirror["TaskCreate per T-row + TaskUpdate addBlockedBy (Depends-on)"]
mirror --> phase["set-phase implement → REQUIRED NEXT claudehut:implement"]
``