Skip to content

Latest commit

 

History

History
61 lines (46 loc) · 2.76 KB

File metadata and controls

61 lines (46 loc) · 2.76 KB

Claude Harness

An agent orchestration system for Claude Code. This repo IS the harness.

What This Is

The harness is a collection of skills, agents, hooks, and state files that enable Claude Code to operate autonomously on any codebase. It provides:

  • Intent routing (/do) that dispatches tasks to the right tool
  • Campaign persistence across sessions
  • Parallel agent coordination with discovery sharing
  • Automated quality enforcement through lifecycle hooks

Key Conventions

  • Skills live in skills/. Each skill is a directory skills/{name}/SKILL.md.
  • Agents live in agents/. They spawn as sub-processes with their own context.
  • Hooks live in hooks_src/. Installed per-project via scripts/install-hooks.js.
  • The init-project hook auto-scaffolds per-project state on session start:
    • .planning/ — campaign state, fleet sessions, intake, telemetry
    • .citadel/scripts/ — utility scripts (telemetry, coordination, compression)
    • .claude/agent-context/ — rules injected into sub-agents
  • Campaign state lives in .planning/campaigns/ (per-project).
  • Fleet session state lives in .planning/fleet/ (per-project).
  • Templates live in .planning/_templates/ (copied from plugin on init).
  • Configuration lives in .claude/harness.json (generated by /do setup, per-project).

Testing

Always run tests after modifying hooks or skills. Five levels:

Command What it checks When to run
node scripts/test-all.js Hooks + skill structure (fast, no LLM) After any change
node hooks_src/smoke-test.js Hooks only After hook changes
node scripts/verify-hooks.js Hook install + runtime (synthetic payloads, no LLM) After hook changes
node scripts/integration-test.js Full Pre→tool→Post pipeline sequences (no LLM) After hook changes
node scripts/skill-lint.js All SKILL.md structure After skill changes
node scripts/skill-bench.js Scenario file validity After adding benchmarks
node scripts/skill-bench.js --execute Live scenario execution Before shipping
node scripts/skill-bench.js --execute --verify-hooks Live execution + confirms hooks fired Before shipping

Adding a new skill: create skills/{name}/SKILL.md, then run node scripts/skill-lint.js {name} to verify structure.

Adding a benchmark scenario: create skills/{name}/__benchmarks__/{scenario}.md, then run node scripts/skill-bench.js --skill {name} to validate.

CI: node scripts/test-all.js exits non-zero on any failure. Use --strict to treat WARNs as failures.

Handoff Summary (Required)

After completing any task, output a HANDOFF block:

---HANDOFF---
- What was built or changed
- Key decisions and tradeoffs
- Unresolved items or next steps
---

3-5 bullets, under 150 words.