Skip to content

/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.

From plugin
craft
7377 skills27 agents77 commands7 hooks
+1
> /plugin marketplace add drobins25/craft
> /plugin install craft@craft

Command definition

craft-become.md
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. When it is not set, run `bash -c 'source "$1" >/dev/null 2>&1; craft_before_init_root' _ "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/find-workshop.sh"` and use the folder it prints.

Become runs fine before `/craft:init`; research branches and the crystallized agent land in the project's folder, not wherever the shell happens to sit.

Set `PROJECT` to that folder. 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 is there genuine disagreement in the field?
  • **Person-based:** Focus on: what are their recurring themes? What positions do they hold that generate frict
Read more
@drobins25
Ships withcraft

Stop Vibing. Start Crafting.

7311 skills27 agents1 MCP
Get the whole plugin, auto-invoked

Stars on GitHub

Momentum

stars in total
73
Star history of drobins25/craft on GitHub, a chart by star-history.com

Other commands on craft.

craft-analyze
Auto-invoked

craft-analyze

Command

Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.

@drobins25@drobins25Install Command
craft-annotate
Auto-invoked

craft-annotate

Command

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…

@drobins25@drobins25Install Command
craft-ask
Auto-invoked

craft-ask

Command

Consult a craft agent. Routes your question to the best mind in the workshop - not a menu, a recommendation.

@drobins25@drobins25Install Command
craft-bugs
Auto-invoked

craft-bugs

Command

File a bug without fixing it, from a person mid-conversation or an agent mid-run. One door, a complete record on disk, nobody…

@drobins25@drobins25Install Command

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command