Open-source harness engineering for Claude Code. 49 specialist agents (25 tech + 10 pm + 14 critic), 14 org roles, 22 skills.
npm run build # tsup + auto-sync to plugin paths
npm test # vitest (689+ tests)
npx tsc --noEmit # typechecksrc/harness/— orchestrator, classifyIntent, org roles, smart-gatewaysrc/observe/— session analytics, heatmap, loop detection, replayhooks/— Claude Code hooks (shell + agent type)skills/— 22 plugin slash commandsprompts/— editable agent system prompts (49 .md files)
For architecture details, gateway flow, HUD caching, state paths, and install paths see docs/architecture.md.
When spawning background agents (trio, blitz, delegate, etc.), you MUST call TaskCreate for EACH agent so users see live progress spinners:
- Before spawning:
TaskCreate(subject="bestwork:{agent} (task N)", activeForm="bestwork:{agent} working...") - When done:
TaskUpdate(status="completed") - When failed:
TaskUpdate(status="completed")+ print[BW] ✗
Every response MUST start with the [BW] tag from the gateway's additionalContext. If the gateway says [BW] solo — bestwork:sr-backend, print that EXACTLY as the first line. If no gateway context exists, print [BW] no gateway.
- English only in source code. Korean allowed only in bilingual routing keywords.
- No Co-Authored-By in commits.
- No confirmation prompts — gateway decides scale, user confirms/adjusts dynamic plan.
- Shell hooks use jq for JSON (no string interpolation).
- Agent prompts live in prompts/*.md — editable without rebuild.
- SKILL_ROUTES patterns must require action verbs to prevent false positives.
- Meeting logs go to
.bestwork/state/(project root), not~/.bestwork/. - HUD must never refresh OAuth tokens. Read-only access only.
- Team structure descriptions are result-focused, not process-focused.
npm run buildauto-syncs to plugin cache + marketplace paths.