craft-analyze
CommandPost-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
Quick-sketch flow for capturing multiple cycles with story titles only - no sparks, no details. Fires when the user picks "Quick sketch (Roadmap)" at Step 1b, or loops back via Step R3 for additional cycles.
> /plugin marketplace add drobins25/craft> /plugin install craft@craft
Quick-sketch flow for capturing multiple cycles with story titles only - no sparks, no details. Fires when the user picks "Quick sketch (Roadmap)" at Step 1b, or loops back via Step R3 for additional cycles.
The orchestrator command (`commands/craft-cycle-design.md`) defines the routing - this reference contains the full mode flow.
---
Entered when user selects "Quick sketch (Roadmap)" in Step 1b. Creates a lightweight cycle with just story titles — no sparks, no details.
> "List out the stories for **[cycle name]**. Just titles — we'll flesh them out later."
Capture story titles conversationally. The user can list them all at once or one by one. When the list feels complete, confirm:
Include inferred type tags where possible. If there's enough context to classify a story (from the title and any brief description), tag it. If not, leave the type out — it will be set during Detailing Mode when the spark is captured.
> "Here are the stories for **[cycle name]**: > > 1. [Title 1] `ui` > 2. [Title 2] `technical` > 3. [Title 3] > > Save these?"
What each reply does:
1. **Create cycle** using `create-cycle.sh`. If the cycle was inferred from a planning concept (verbatim-quote rule per craft-cycle-design.md Step 1), pass the planning doc path(s) as the 5th positional arg:
${CLAUDE_PLUGIN_ROOT}/hooks/scripts/create-cycle.sh "[cycle-slug]" "[Cycle Title]" "[Goal]" "." "[source-concept-paths]"2. **Before writing story files, apply planning-source routing.** Read cycle.yaml. If `source_concept` is populated, apply the **action-moment framing** per story:
**CRITICAL: include the invocation marker** when executing the protocol. State explicitly in your context before running Phase 1:
> `INVOCATION: cycle-design - planning source already confirmed in cycle.yaml`
This marker is required for Phase 1's auto-resolve to fire. Without it, Phase 1 falls back to corpus-scan and asks the user to pick a concept.
⛔ Use the Read tool, not the Skill tool, when invoking story-from-planning.md inline.
3. **Create story files** (for freeform stories, after planning-extracted stories have been handled by the protocol above). The orchestrator generated sparks during the story breakdown — they MUST be written into the files, not discarded.
Write to `.craft/cycles/[cycle-dir]/stories/[N]-[slug].md`:
--- name: [slug] title: "[Story Title]" type: [ui/technical/content — from confirmed tags, omit if unclassified] status: planning priority: medium created: [date] updated: [date] cycle: [cycle-name] story_number: [N] decisions: [] alignment: pending chunks_total: 0 chunks_complete: 0 current_chunk: 0 --- # Story: [Story Title] ## Spark [Write the spark description that was discussed and approved during the story breakdown. This content already exists in the conversation — re-read it and transcribe it here. Never use a placeholder.] ## Dependencies **Blocked by:** [from discussion and file-overlap check — leave empty if not yet determined, write "none" only if explicitly confirmed] **Blocks:** [from discussion — leave empty if not yet determined] ## Chunks <!-- Added via plan-chunks -->
The `decisions:` line holds only the approved decision records the user named for this story in the conversation, each as its full dated slug (the record's file name without `.md`): never add a record by tag, by topic, or by judged relevance, and never scan the store for candidates - any record the user did not name is NOT LAW for this story - it is history; write `[]` when the user named none.
3. **Clear PLANNING_CYCLE** — the cycle shell is done:
${CLAUDE_PLUGIN_ROOT}/hooks/scripts/update-global-state.sh PLANNING_CYCLE ""> "**[Cycle Name]** created with [N] story titles. > > Want to sketch another cycle?"
Use **AskUserQuestion**:
question: "Cycle saved. Create another?"
header: "Next"
options:
- label: "Yes, another cycle"
description: "Sketch the next cycle in the roadmap"
- label: "No, I'm done"
description: "Show roadmap summary and exit"**If user provides custom text:** Ask a clarifying AskUserQuestion to understand their intent.
**If "Yes, another cycle":**
**If "No, I'm done":**
> "**Roadmap Summary** > > | Cycle | Stories | Status | > |-------|---------|--------| > | [Cycle 1] | [N] stories | planning | > | [Cycle 2] | [M] stories | planning | > > Use `/craft` to detail or activate these cycl
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
Point at anything in a live browser tab - every pin gets a live attempt on the page the moment you SEND it, and the session keeps…
Consult a craft agent. Routes your question to the best mind in the workshop - not a menu, a recommendation.
Agent crystallization command. Studies a tool, role, or person and produces a portable 9-section agent that inhabits the domain -…
File a bug without fixing it, from a person mid-conversation or an agent mid-run. One door, a complete record on disk, nobody…
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.