craft-analyze
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
This is the full creative cycle planning flow. Fires when the user picks "Add stories now" at Step 1b. Brainstorms stories, captures sparks (with optional creative-spark per story), reviews the cycle, and offers planning paths.
> /plugin marketplace add drobins25/craft > /plugin install craft@craft
How it fires
How this command gets triggered: by you, by Claude, or both.
/default-modeContext preview
What this command does when you run it.
This is the full creative cycle planning flow. Fires when the user picks "Add stories now" at Step 1b. Brainstorms stories, captures sparks (with optional creative-spark per story), reviews the cycle, and offers planning paths.
This is the full creative cycle planning flow. Fires when the user picks "Add stories now" at Step 1b. Brainstorms stories, captures sparks (with optional creative-spark per story), reviews the cycle, and offers planning paths.
The orchestrator command (`commands/craft-cycle-design.md`) defines the routing - this reference contains the full mode flow.
---
> "Let's map out the stories for this cycle. > > What needs to happen to achieve: **[goal]**?"
Help the user decompose the cycle into stories through conversation:
**Note:** Don't automatically invoke `creative-spark` here. The user usually knows what stories they need — they're decomposing a known feature. Creative exploration happens per-story in Step 3.
**Only invoke `creative-spark`** if the user is genuinely unsure what stories the cycle needs (e.g., "I don't know where to start" or "What would you suggest?").
Present initial story list with inferred type tags (`ui`, `technical`, or `content`). Infer the type from conversational context — if the story involves visual design, layout, or animation it's `ui`; if it's API routes, data, or infrastructure it's `technical`; if it's copy, tone, or onboarding flow it's `content`.
**Scope check (before presenting):** Before showing the story list, evaluate whether the story count matches the scope complexity. Count the concrete deliverables in the cycle goal and discussion — interactive features, distinct pages/views, API endpoints, data models, content surfaces. Apply these heuristics:
If the scope looks thin, include a **Scope check** note inline with the story list. If the count looks reasonable, present the list without commentary.
**When the check fires:**
> "Based on our discussion, I'm thinking these stories: > > 1. **[Story idea 1]** `ui` — [one line] > 2. **[Story idea 2]** `ui` — [one line] > 3. **[Story idea 3]** `ui` — [one line] > > **Scope check:** This cycle covers [N deliverables] but only has [M] stories. [Specific concern — e.g., "Story 2 alone covers 5 interactive commands with distinct animations - that could be 8+ chunks. Consider splitting into separate stories per command group."] You can proceed as-is or adjust. > > Does this capture the scope? (Check the type tags — correct any that are wrong.)"
**When the check doesn't fire:**
> "Based on our discussion, I'm thinking these stories: > > 1. **[Story idea 1]** `ui` — [one line] > 2. **[Story idea 2]** `technical` — [one line] > 3. **[Story idea 3]** `ui` — [one line] > > Does this capture the scope? (Check the type tags — correct any that are wrong.)"
Use **AskUserQuestion**:
question: "Does this capture the scope?"
header: "Stories"
options:
- label: "Save these sparks"
description: "The descriptions above are the sparks — write all story files now"
- label: "Flesh out individually"
description: "Go through each story to explore or refine the spark"
- label: "Add another story"
description: "I have more stories to include"
- label: "Remove/combine some"
description: "Some of these should be merged or dropped"**If user selects "Other" or provides custom text:** Ask a clarifying AskUserQuestion before proceeding. Don't assume intent — confirm what they want to change.
**Important:** Don't proceed until user confirms the story list is complete.
**If "Save these sparks":** Jump to **Step 3-Fast** below.
**If "Flesh out individually":** Continue to Step 3 (per-story flow).
**Before doing per-story work in Step 3 or Step 3-Fast**, read `cycle.yaml` to check whether this cycle has `source_concept` set.
ACTIVE_CYCLE=$(grep "^ACTIVE_CYCLE=" "${CRAFT_PROJECT_ROOT}/.craft/.global-state" | cut -d= -f2)
CYCLE_SOURCE_CONCEPT=$(grep "^source_concept:" "${CRAFT_PROJECT_ROOT}/.craft/cycles/${ACTIVE_CYCLE}/cycle.yaml" | sed 's/^source_concept: //')If `source_concept` is `[]` or empty: this cycle is freeform. Skip the rest of this step and proceed to Step 3 / Step 3-Fast as usual.
If `source_concept` is populated (e.g., `[planning/04-company-onboarding.md]`): the cycle is planning-sourced. For each story being created, apply the **action-moment framing**:
Instead of running default-mode's normal Step 3 spark-capture flow for this story, **Read `story-from-planning.md` (one directory up from this file, in `commands/references/`) and execute its phases** against the cycle's source_concept. The protocol already:
**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 (defeating the purpose of capturing the source at cycle creation).
⛔ **DO NOT invoke story-from-planning.md via the Skill tool** - Read it via the Read tool and execute its phases inline.
Stop Vibing. Start Crafting. A Claude Code plugin that acts as an intelligent harness for your development workflow: your codebase is read-only by default, every change passes through a Write Gate as planned and approved work, and craft tracks your project's
Repo: drobins25/craft
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
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 - with beliefs, scar tissue,…
Complete a cycle. Triggers reflection if pending learnings, then archives.
Design a cycle — create new cycles with planned stories, detail existing planning cycles, or quick-sketch a roadmap. Detects planning docs in .craft/planning/…