Muse said keep the chrome minimal - make it feel like watching a real session unfold, not a decorated screenshot.
Alchemist confirmed the build is clean: typed text, real spinners, sequential reveals. No CSS hacks.
Going to build it that way. What do you think?
✓CrystallizedThis is that terminal. You just watched it design itself.
"The crystallization session isn't a file. It's an event. The terminal needs to read like something is finishing, not something that already finished."
craft:muse · designing this section
HOW CRAFT THINKS
Every /craft invocation reads state and routes to the right action.
No menus. No configuration. State drives everything.
THE HOOK SYSTEM
7 lifecycle events - the nervous system of the plugin
Every action flows through hooks. The agent never sees the wiring.
#!/bin/bash
# When skill A invokes skill B, A drops a breadcrumb file.
# If the agent tries to stop after B completes, this hook
# reads the breadcrumb and injects "keep going."
BREADCRUMB="${PROJECT_ROOT}.craft/.continuation"
if [ -f "$BREADCRUMB" ]; then
CRUMB_AGE=$(($(date +%s) - $(stat -f %m "$BREADCRUMB")))
if [ "$CRUMB_AGE" -lt 1800 ]; then
ACTION=$(grep '^ACTION:' "$BREADCRUMB" | sed 's/^ACTION: //')
SKILL=$(grep '^SKILL:' "$BREADCRUMB" | sed 's/^SKILL: //')
ARGS=$(grep '^ARGS:' "$BREADCRUMB" | sed 's/^ARGS: //')
rm -f "$BREADCRUMB" # One-shot: consumed on read
echo "{\"systemMessage\": \"DO NOT STOP. Skill chain in progress.
Invoke ${SKILL} with args: ${ARGS}\"}"
exit 0
fi
fi
rm -f $BREADCRUMB - One-shot. Consumed on read. If the agent stops mid-chain, this hook catches it and says “keep going.”
THE AGENTS
27 specialists. Zero shared memory.
Each agent runs in isolated context via Task tool. No shared memory between agents.
Core workflow
The agents that ship code.
Analysis
The agents that inspect what was shipped.
Crystallized
Agents produced by /craft:become - minds, not docs.
VALIDATION PIPELINE
7 checks. Every chunk. No exceptions.
After implementation, the chunk-validator agent runs checks sequentially. All 7 must pass before the story is marked complete.
chunk-validator agent
// chunk-validator agent - invoked by validate-chunk skill
// Runs checks sequentially, returns structured verdict
CHECKS = [
"TypeScript Strict", // tsc --noEmit
"Lint", // eslint
"No Any Types", // scan changed files
"Build", // next build (story-final only)
"TDD Verification", // verify test files exist
"Tests + Coverage", // vitest (story-final only)
"Design Tokens", // check raw hex vs tokens
]
// Per-chunk: typecheck, lint, any-types, tokens
// Story-final: ALL 7 checks
// Verdict: PASSED | FAILED | PARTIAL