/craft-become
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.
$ npx -y skills add drobins25/craft --agent claude-codeShips with craft. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/craft-become
Context 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.
Command definition
craft-become.mdname: 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]"
Become
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.
Project Root
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 `.`.
Flow
Phase 0: Intent
**Mode flags:** Before classifying the input, scan args for flags.
- If args contain `--deep`, set `DEPTH=7` and strip the flag from the remaining args. The stripped args are then classified by source type as below.
- If `--deep` is absent, set `DEPTH=5`.
`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:
- **Source-based:** Input names a specific tool, library, or product (e.g., "CodeRabbit", "Lighthouse", "Playwright"). Research is narrow and deep - reverse-engineer this tool's decision logic.
- **Role-based:** Input describes a domain or expertise (e.g., "accessibility auditor", "AI-first UX designer", "performance engineer"). Research is broad - synthesize what the best practitioners believe.
- **Person-based:** Input names a specific individual (e.g., "Darin", "Kent Beck"). Research uses writings, decisions, behavioral patterns.
**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:**
- Slugify the input for the folder name (e.g., "AI-first UX designer" -> `ai-first-ux-designer`)
- Research path: `$PROJECT/.craft/research/{slug}-become/`
- Check if this folder already exists. If it does, use **AskUserQuestion**: resume existing research or start fresh?
Phase 1: Psychological Research
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:**
- **Source-based:** Focus on: what does this tool catch that others miss? What trade-offs did its designers make? What does it refuse to do? What are its blind spots?
- **Role-based:** Focus on: what do the best practitioners notice first? What's their threat model? Where i
Read more
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]"
Become
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.
Project Root
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 `.`.
Flow
Phase 0: Intent
**Mode flags:** Before classifying the input, scan args for flags.
- If args contain `--deep`, set `DEPTH=7` and strip the flag from the remaining args. The stripped args are then classified by source type as below.
- If `--deep` is absent, set `DEPTH=5`.
`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:
- **Source-based:** Input names a specific tool, library, or product (e.g., "CodeRabbit", "Lighthouse", "Playwright"). Research is narrow and deep - reverse-engineer this tool's decision logic.
- **Role-based:** Input describes a domain or expertise (e.g., "accessibility auditor", "AI-first UX designer", "performance engineer"). Research is broad - synthesize what the best practitioners believe.
- **Person-based:** Input names a specific individual (e.g., "Darin", "Kent Beck"). Research uses writings, decisions, behavioral patterns.
**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:**
- Slugify the input for the folder name (e.g., "AI-first UX designer" -> `ai-first-ux-designer`)
- Research path: `$PROJECT/.craft/research/{slug}-become/`
- Check if this folder already exists. If it does, use **AskUserQuestion**: resume existing research or start fresh?
Phase 1: Psychological Research
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:**
- **Source-based:** Focus on: what does this tool catch that others miss? What trade-offs did its designers make? What does it refuse to do? What are its blind spots?
- **Role-based:** Focus on: what do the best practitioners notice first? What's their threat model? Where i
Showing the first part of this file.
Stop Vibing. Start Crafting. Claude Code plugin: guided + controlled development orchestration harness with built-in workflow + state management, for designing + building durable, production-ready software through the entire product lifecycle - new projects
Repo: drobins25/craft
Other commands on craft.
- /craft-analyze
Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.
Open command - /craft-ask
Consult a craft agent. Routes your question to the best mind in the workshop - not a menu, a recommendation.
Open command - /craft-cycle-assign
Move a story from backlog to a cycle.
Open command - /craft-cycle-complete
Complete a cycle. Triggers reflection if pending learnings, then archives.
Open command - /craft-cycle-design
Design a cycle — create new cycles with planned stories, detail existing planning cycles, or quick-sketch a roadmap. Detects planning docs in .craft/planning/ and sources the cycle from them when relevant.
Open command - /craft-cycle-start
Activate a cycle and start implementing its stories.
Open command

