Back to Projects
CRAFT PLATFORM

8 AI agents build software autonomously. None of them can go rogue.

Agents stepping on each other. QA “fixing” code the implementer just wrote. The creative agent redesigning mid-story. 18 terminals, zero coordination. So I built a gate.

CREATIVE MODE

Every feature starts with options, not specs.

layoutBento grid with hero card
componentGlass-morphism agent cards
densitySpacious - generous whitespace
visibilityShow all 9 agents

The user picks. Craft locks. Every chunk after this inherits the visual direction.

HOW CRAFT THINKS

Every /craft invocation reads state and routes to the right action.

/craftStory in progress?Resume storyActive cycle?Pick storyBacklog?Start cycleCreate story

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.

hooks.json
{
  "hooks": {
    "SessionStart": [
      { "hooks": [{ "command": "session-start.sh", "once": true }] },
      { "matcher": "compact", "hooks": [{ "command": "post-compact-reinject.sh" }] }
    ],
    "PreToolUse": [
      { "matcher": "Write|Edit", "hooks": [{ "command": "check-write-permission.py" }] }
    ],
    "PostToolUse": [
      { "matcher": "Write|Edit", "hooks": [{ "command": "update-progress.py" }] }
    ],
    "UserPromptSubmit": [
      { "hooks": [{ "command": "inject-craft-context.sh" }] }
    ],
    "PreCompact": [
      { "hooks": [{ "command": "export-progress.sh" }] }
    ],
    "Stop": [
      { "hooks": [{ "command": "stop-hook-guard.sh" }] }
    ]
  }
}
stop-hook-guard.sh
#!/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

9 specialists. Zero shared memory.

Each agent runs in isolated context via Task tool. No shared memory between agents.

Implementer

Writes code, TDD-first

isolated context

Tester

Integration + edge cases

isolated context

QA Analyzer

Browser inspection

isolated context

UX Analyzer

Nielsen's 10 heuristics

isolated context

Creative Analyzer

Delight audit

isolated context

Style Analyzer

Token compliance

isolated context

Plan Agent

Research + chunks

isolated context

Scanner

Stack detection

isolated context

Chunk Validator

Quality gate enforcement

isolated context
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
TypeScript Strict
Lint
No Any Types
Build
TDD Verification
Tests + Coverage
Design Tokens

FAILED → refine-chunk. 2+ failures → mandatory learnings capture. 4+ → offer rollback.

THIS SITE IS THE PROOF

Cycle 7 built this page. Every section you scrolled was a story.

0+stories shipped
0+hook scripts
0hook events
0validation checks
navigation-headerecosystem-section-upgradeenterprise-backing-redesignwriting-section-polishcontact-section-upgradecontent-tone-overhaulcraft-platform-showcase
UNDER THE HOOD
TypeScriptClaude Code Plugin APICustom Hooks (Python + Bash)YAML State Machine25+ Bash Tests9 Specialized Agents7-Check Validation Pipeline