← ClaudeAtlas

speclisted

Phase 2 of ClaudeHut workflow — convert an approved design document into a binary behavioral contract (Given/When/Then, API shape, edge cases, NFRs). Use immediately after Brainstorm phase approval. Produces `.claudehut/specs/<id>-contract.md`. Triggers when phase=spec.
taipt1504/claudehut · ★ 1 · Testing & QA · score 64
Install: claude install-skill taipt1504/claudehut
## Dispatch contract (read this FIRST) This phase runs as a **subagent**, not inline in the main thread. Main thread = orchestrator (context, memory, advisor, task tracking, user dialog). Phase work = subagent (isolated context, per-phase model). When you read this skill, you **MUST** invoke the Task tool: ``` Task( subagent_type = "claudehut-spec-writer", prompt = <output of scripts/dispatch-prompt.sh "$ARGUMENTS"> ) ``` Render the prompt by running `$CLAUDE_PLUGIN_ROOT/skills/spec/scripts/dispatch-prompt.sh "$ARGUMENTS"` and pass the stdout verbatim as the Task `prompt` argument. The script composes user intent + stack signals + conventions + recent learnings + prior-phase artifacts deterministically. Do **not** execute the phase steps yourself in the main thread. Await the subagent's return, review the artifact it wrote, surface a concise status back to the user. **Red flags that say "skip dispatch"** (counter each, do not give in): | Rationalization | Reality | |---|---| | "This task is small — I'll inline it." | Inline = no isolated context + wrong model + breaks workflow gate. **Dispatch.** | | "Subagent context is overkill." | This phase intentionally runs on `sonnet`. Main thread may be a different model — wrong tool. **Dispatch.** | | "Design doc has enough detail; I'll skip contract." | Design ≠ contract. Spec adds Given/When/Then + NFRs. **Dispatch.** | | "I'll write tests directly from design." | Tests need binary acceptance criteria. **Dispatch.