craft-analyze
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
Agent crystallization command. Studies a tool, role, or person and produces a portable 9-section agent that inhabits the domain - with beliefs, scar tissue, and instincts.
> /plugin marketplace add drobins25/craft > /plugin install craft@craft
How it fires
How this command gets triggered: by you, by Claude, or both.
/craft-becomeContext preview
What this command does when you run it.
Agent crystallization command. Studies a tool, role, or person and produces a portable 9-section agent that inhabits the domain - with beliefs, scar tissue, and instincts.
name: become description: "Agent crystallization command. Studies a tool, role, or person and produces a portable 9-section agent that inhabits the domain - with beliefs, scar tissue, and instincts." argument-hint: "[tool name | role | person name | description] [--deep]"
Crystallize a tool, role, or person into a portable AI agent. Unlike `/craft:research` which discovers what's true, `/craft:become` inhabits a mind - producing an agent with beliefs, decision frameworks, and scar tissue.
Agents produced by this command are portable. They carry perception, not project context. Project context comes from the environment at runtime.
Use `$CRAFT_PROJECT_ROOT` (set at session start) as the base path for all `.craft/` references. If not set, resolve by walking up from PWD to find the nearest `.craft/.global-state`.
**Cold fallback (uninitialized project):** if neither resolves, anchor to the git toplevel (`git rev-parse --show-toplevel`) when in a repo, else PWD - never a subdirectory. Become runs fine before `/craft:init`; research branches and the crystallized agent land at the repo root, not wherever the shell happens to sit.
Set `PROJECT` to the resolved root - env var, then walk-up, then git toplevel, then PWD, in that order. Never default to bare `.`.
**Mode flags:** Before classifying the input, scan args for flags.
`DEPTH` is referenced in Phase 1 to size the sub-question generation. The default of 5 is role-optimized: most become runs synthesize across practitioners with genuine disagreement, and 5 branches cover the six psychological-material categories (beliefs, trade-offs, refusals, mistake taxonomy, user needs, scar tissue) with one branch absorbing two adjacent categories. Source-based research (one tool) naturally saturates at 3-4 branches and can run lighter. Person-based with a sparse-but-prolific subject benefits from `--deep` (7 branches) to give the crystallizer enough signal.
If the user passes `--deep` with no other input (e.g., `/craft:become --deep`), treat the remaining args as empty and fall through to the "If no args" branch below.
Parse args to determine what we're crystallizing.
**If no args:** Use **AskUserQuestion**:
question: "What tool, role, or person do you want to crystallize into an agent?"
header: "Become"
options:
- label: "A specific tool"
description: "Reverse-engineer a tool's decision logic (e.g., CodeRabbit, Lighthouse, ESLint)"
- label: "A role/expertise"
description: "Synthesize what the best practitioners believe (e.g., accessibility auditor, UX designer)"
- label: "A specific person"
description: "Reconstruct an individual's perceptual framework from their artifacts"Then ask for the specific name/description.
**If args provided:** Infer the source type:
**Only clarify if genuinely ambiguous.** "CodeRabbit" is obviously source-based. "Accessibility auditor" is obviously role-based. But "React expert" could be role-based (what do great React developers believe?) or source-based (reverse-engineer React's design philosophy). When ambiguous, use **AskUserQuestion** with 2-3 interpretations and an opinionated recommendation:
question: "'{input}' could mean different things. Which direction?"
header: "Direction"
options:
- label: "{interpretation 1} (Recommended)"
description: "{why this is the strongest direction}"
- label: "{interpretation 2}"
description: "{what this would produce}"**Set up the research folder:**
Generate `{DEPTH}` sub-questions shaped for **mind-replication**, not fact-gathering. `{DEPTH}` is 5 by default (role-optimized) and 7 when `--deep` was passed in Phase 0. The six categories to cover:
1. **Beliefs** - What do the best practitioners in this domain believe that outsiders think is wrong? What do they treat as obvious that newcomers keep getting wrong? 2. **Trade-offs** - Where do practitioners genuinely disagree with each other, and what does each side think the other is missing? 3. **Refusals/Boundaries** - What do they refuse to do even when stakeholders push for it? What's their line? 4. **Mistake taxonomy** - What are beginner mistakes vs intermediate mistakes vs "looks right but subtly broken"? What have they seen fail badly enough to change their approach? 5. **What users actually need** - When someone asks this expert for X, what do they usually actually need? Where does the question behind the question live? 6. **Scar tissue** - What instinctive flinches do they have from past failures? What patterns trigger "this feels wrong" before they can articulate why?
**Adapt sub-questions based on source type:**
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.
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/…