A structured development framework that orchestrates Claude Code through repeatable planning, implementation, review, and release phases with machine-checked specifications and CI gates. Designed for teams and individual developers who want autonomous AI-assisted coding with verifiable output and clear decision surfaces at each stage.
Claude Code Dedicated Development Harness - Achieving High-Quality Development Through an Autonomous Plan→Work→Review Cycle
At a glance
README
Claude Code Harness
The problem
Agent coding drifts. Plans live in chat and disappear. Tests become optional under deadline. Review happens after the code is already merged. Release evidence gets reconstructed from memory.
Harness replaces "ask the agent to code" with one repeatable path:
write the spec → implement only the approved slice → verify → review independently → package evidence.
It does not make the model smarter. It fixes the procedure and the boundary around the model — so it keeps working when the model changes.
Claims in this README are machine-checked. CI gates verify that described components are actually wired, that the task ledger stays consistent, and that shipped binaries rebuild from source. A feature appears here only after a gate proves it is reachable. Written is not working.
Install in 30 seconds
claude
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install claude-code-harness@claude-code-harness-marketplace
/harness-setup
Then hand it something small:
/harness-plan Improve the README onboarding flow
Harness drafts spec.md and Plans.md for you. Your job is not to write the
plan — it is to approve or correct it before execution continues.
Using a different tool? See install by tool below.
The loop
The 5 verb skills keep that surface small: plan, work, review, sync, release.
(/harness-setup runs once at install time, above.)
| Command | What happens |
|---|---|
/harness-plan |
Turns intent into spec.md + Plans.md: scope, acceptance criteria, dependencies, unknowns, stop conditions. |
/harness-work |
Implements one approved task or the whole plan. Adds tests when the task requires them. |
/harness-work all |
Runs the whole approved plan. Use once the plan is clear and the repo baseline is known. |
/harness-review |
Reviews the result separately from implementation. Major findings block completion. |
/harness-sync |
Compares the plan against what is actually implemented and reports drift. |
/harness-release |
Packages only verified evidence into CHANGELOG, tag, and release. |
Each stage leaves the material the next stage needs.
| Stage | Output | Gate |
|---|---|---|
| Plan | spec.md + Plans.md |
You approve or correct the generated contract. |
| Work | Code and tests | TDD required when the task says so. |
| Review | Independent verdict | Major findings block completion. |
| PR | Evidence pack | PR-ready is not release-ready. |
| Release | Tag and artifacts | Release preflight must pass. |
Data the agent has not seen stays unknown instead of being quietly invented.
The safety layer
This is what separates Harness from a prompt template. Every tool call is adjudicated by a Go engine before it runs — not reviewed after the fact, because a file diff cannot see a network send or a deletion.
Two layers, deliberately different in strength.
| Layer | Decides | Overridable |
|---|---|---|
| Runtime floor — 5 categories | Denies outright | No. Not by any config, env var, or permission mode |
| Guardrails — R01–R15 | Deny / confirm / warn | Partly, by project config |
The floor covers billing, network egress, secret reads, production deploys, and destruction outside the task worktree. It sits on an isolated code path with no disable switch, so an autonomous run cannot talk itself past it.
Guardrails are the layer you tune. Direct pushes to main, writes to protected
paths, forced pushes, history rewrites — each has a defined verdict, and some
are configurable per project.
Confirmations move to plan time. Instead of interrupting a run, Harness collects the risky operations a plan will need and asks once, up front. Approvals carry an expiry, a task scope, and a use limit — so one approval never becomes a permanent hole.
Every stop is recorded. Rule id, category, and verdict land in a JSONL log. Command text is never written; only a hash and a length, and for secret-read and billing not even that. You can count what actually blocked you instead of guessing.
Decision surfaces for non-engineers
Three single-screen HTML views let a non-engineer sponsor judge without reading code.
| Surface | When | Shows |
|---|---|---|
| Plan Brief | Plan finalized | Understanding, options, risks, acceptance criteria |
| Progress | During work | WIP/TODO/done counts and drift alerts, auto-regenerated |
| Acceptance | Before release | Per-criterion pass/fail with ship / wait / reject |
Install by tool
Four install routes are not four identical guarantees. A setup script means a tool has an entry path, not a shared product promise.
| Tool | Tier | Route |
|---|---|---|
| Claude Code | supported |
Plugin marketplace, then /harness-setup |
| Codex CLI | supported |
scripts/setup-codex.sh --user |
| Cursor | supported |
scripts/setup-cursor.sh — containment is harness-side, see notes |
| Grok | supported |
scripts/setup-grok.sh |
| Codex app | candidate |
Candidate smoke only; CLI proof is not reused |
| OpenCode | internal-compatible |
scripts/setup-opencode.sh; runtime parity not claimed |
| Hermes Agent | candidate |
Manual symlink research route |
| GitHub Copilot CLI | candidate |
Manual profile research |
| Antigravity CLI | future/unsupported |
No end-user install route yet |
| EN tier | Japanese public wording |
|---|---|
supported |
正式対応 |
internal-compatible |
互換利用可 / 制限付き対応 |
candidate |
試験対応 / プレビュー |
future/unsupported |
非対応 / 将来検討 |
Claude Code, Codex CLI, Cursor, and Grok passed H1–H8 on their verified claim
paths (live H4 2026-07-17; H7 release-preflight fail-closed wiring 2026-07-19).
Every other row stays at its listed tier until it passes its own H1–H8
(docs/spec/planning-and-host-adapter.md, Phase 111).
Harness does not inherit support claims from Superpowers, Hermes Agent, or any other project. A host moves up only when Harness has its own bootstrap, trigger, runtime, and release evidence.
not_observed != absent — missing local proof means "not proven here". It does
not mean impossible, and it does not mean supported.
bin/harness doctor --migration-report
It inventories stale Claude plugin caches, duplicate Codex skills, old symlinks, OpenCode backup paths, and harness-mem state — without deleting anything.
Reach for these after the basic path is working.
| Capability | What it adds | Boundary |
|---|---|---|
| Breezing | Planner / Critic / Worker team execution for larger task lists | Still gated by plan quality and review |
| Codex companion review | Schema-backed second opinion via scripts/codex-companion.sh |
Raw codex exec is not the companion path |
| harness-mem | Project-scoped memory and recall across sessions | Optional; purge stays explicit |
| OpenCode bootstrap | Mirrors guidance into OpenCode-compatible surfaces | Runtime parity not claimed |
| auto-approve (experimental) | HARNESS_AUTO_APPROVE=on records the gate result in the orchestration ledger |
Default OFF. Approval prompts are not skipped yet |
Requirements
- Claude Code v2.1+ for the supported Claude path
- A repository with write access
- No Node.js is required for the Go-native guardrail engine
- Optional: harness-mem for cross-session memory
Documentation
| Resource | Description |
|---|---|
| Tool-first onboarding | Where to start, by host tool |
| Install routes | Per-tool setup and tier boundaries |
| Migration check | Existing-user impact and rollback |
| Skill trigger gate | How install success is verified |
| Capability matrix | Full host claim table |
| Claude Code compatibility | Version requirements and notes |
| Cursor integration | Handoff boundary and containment |
| Distribution scope | Included vs compatibility vs dev-only |
| Hardening parity | Safety differences between hosts |
| Work All evidence pack | Verification contract for full-plan runs |
| Language / i18n | Switching output language |
| Changelog | User-facing version history |
Contributing
Issues and PRs welcome. See CONTRIBUTING.md.
Acknowledgments
License
MIT. See LICENSE.md.
24 skills in this repo
Plugin marketplaceBrowser automation through the repo agent-browser CLI. Explicit helper for navigation, forms, screenshots, scraping, and web-app checks. Prefer Browser Use or Playwright when available. Do NOT load for: sharing URLs, embedding links, or edi...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install agent-browser
Team execution mode (Codex host) — backward-compatible alias for harness-work with backend selection, including opt-in Cursor worker delegation. Composer/composer 2.5 maps to the cursor backend.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install breezing
Team execution mode — backward-compatible alias for harness-work with team orchestration. Composer/composer 2.5 maps to the cursor backend.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install breezing-skillsbreezing
Quality guardrail for Claude/Codex update integration. Detects doc-only Feature Table additions and requires implementation or explicit planning. Internal use only.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install cc-update-review
CI red? Call us. Pipeline fire brigade deploys. Use when user mentions CI failures, build errors, test failures, or pipeline issues. Do NOT load for: local builds, standard implementation work, reviews, or setup.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install ci
Read-only delegate to cursor-agent (Composer) for questions, investigation, design discussion, and adversarial sanity checks. No worktree, no cherry-pick, no Lead diff review — cursor-agent is locked to ask mode and cannot write. Use when u...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install cursor-ask
Delegate a single write task to Cursor Composer via cursor-companion.sh inside an isolated worktree, then Lead-review the diff and cherry-pick. Use when user invokes cursor:do, says delegate to cursor, have composer write it, refactor with...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install cursor-do
Run a Cursor Composer review as an advisory second opinion while keeping the primary review verdict on the host brain. Use when user invokes cursor:review, asks Cursor to review, or wants composer to sanity-check a diff. Cursor never owns A...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install cursor-review
Configure and verify the Cursor backend for Claude Code Harness. Use when user invokes cursor:setup, wants Cursor as the local default implementation backend, or asks to check Cursor plugin/agent readiness. Distribution default remains opt-...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install cursor-setup
Extract recurring failure patterns from breezing orchestration logs and Judgment Ledger, emit failure-rule.v1 proposals with confidence scores. SSOT promotion to patterns.md or decisions.md is proposal-only — human-approval-required. Use wh...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install failure-codifier
Generate an Acceptance Demo HTML for non-engineer vibecoders right before ship/wait/reject decision. Reads back the acceptance_criteria that were stored as personal-preference.v1 by harness-plan-brief (joined by user_request_hash), then ren...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-accept
HAR: Codex-native long-running loop runner. Uses a real background runner that executes one ready batch per cycle through Breezing by default, with status/stop controls. Trigger: long-running, loop, autonomous, background, Codex. Do NOT loa...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-loop
Long-running task loop using /loop (Claude Code dynamic mode) and ScheduleWakeup to re-enter with fresh context on each wake-up. Internally invokes harness-work through Agent. Trigger: long-running, loop, wake-up, autonomous. Do NOT load fo...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-loop-skillsharness-loop
HAR: Research-backed, team-validated task planning, Plans.md management, progress sync. Trigger: create a plan, add tasks, update Plans.md, mark complete, check progress. Do NOT load for: implementation, review, release.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-plan
Generate a Plan Brief HTML for non-engineer vibecoders before implementation starts. Searches harness-mem (project-only) for relevant past decisions, patterns, and Plans archive entries, then renders a single-file HTML artifact summarizing...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-plan-brief
Generate a Progress Tracker HTML for non-engineer vibecoders to glance at session progress (cc:WIP / cc:TODO / cc:完了 counts, percentage, elapsed/estimated minutes, cost so far/estimate, drift alerts). Uses Plans.md as source of truth, ren...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-progress
Generic release automation for projects using Keep a Changelog + GitHub. Single confirmation gate then end-to-end automation: bump detection, CHANGELOG promotion, PR/main merge, tag, GitHub Release. Trigger: release, version bump, publish....
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-release
HAR: Multi-angle code, plan, scope review. Security/quality check. Trigger: review, code review, plan review, scope analysis. Do NOT load for: implementation, new features, bugfix, setup, release.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-review
HAR: Project init, tool setup, agent config, memory setup, skill mirror sync. Trigger: setup, init, new project, CI/Codex setup, harness-mem, mirror. Do NOT load for: implementation, review, release, planning.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-setup
HAR: Sync Plans.md with implementation. Drift detect, marker update, retrospective. Trigger: sync-status, where am I, check progress. --snapshot for snapshots. Do NOT load for: planning, implementation, review, release.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-sync
HAR: Execute Plans.md tasks from single task to full parallel team run. Trigger: implement, execute, do everything, breezing, team run, parallel, composer, composer 2.5. Do NOT load for: planning, review, release, setup.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-work
HAR: Execute Plans.md tasks from single task to full parallel team run. Trigger: implement, execute, do everything, breezing, team run, parallel, composer, composer 2.5. Do NOT load for: planning, review, release, setup.
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install harness-work-skillsharness-work
File cleanup and archiving. Tidies up bloated Plans.md, session-log.md, old logs, and state files. Trigger: /maintenance, cleanup, archive, organize, split session-log. Do NOT load for: implementation, review, release, new feature developme...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install maintenance
Manage SSOT, memory, and cross-tool memory search. Guardian of decisions.md and patterns.md. Use when user mentions memory, SSOT, decisions.md, patterns.md, merging, migration, SSOT promotion, sync memory, save learnings, memory search, har...
/plugin marketplace add Chachamaru127/claude-code-harness
/plugin install memory
Comments (0)
Sign in to join the discussion.
No comments yet
Be the first to share your take.