Docs31
Docs
The longer explanations: how the layers compose, what the sync touches, what the harness leaves out.
Cost benchmarks What the harness costs you, measured against Claude Code with no harness at all. The static figure below exists today. The live replay that compares whole tasks has a… BMad repository governance This file is the single policy source loaded by agent-harness's BMad workflow customizations. The repository instructions remain authoritative when they are stricter. BMad in agent-harness and downstream repositories The harness is framework-agnostic. This page records a pattern that keeps a self-hosted planning framework (the BMad Method, MIT) installed in a code repo without… Caught in the act Two features shipped here and did not do the thing shipping them assumed. Neither was found by reading the code. One was found by a cost benchmark that counts tool… Comparing harnesses This page has moved. The properties worth comparing, the projects that hold them today, and this repository's own gaps are in the dated field scan, which is re-checked… Compatibility and release policy Version 1 protects the interfaces a user or integration must rely on while leaving implementation details free to improve. A compatibility claim applies to agent-harness… What is supported The architecture is model-provider agnostic: your rules, skills, roles, workflows and personal stances have one source. That does not mean every runtime implements every… Field scan: what the configuration-compiler field does, and where this harness sits Read on 2026-09-21, amended on 2026-09-23 (§4 and §6). Re-check by 2026-12-01. One person's reading of a fast-moving field on one date. Release cadence among the… Start with your way of working Agent Harness is a harness of shared custom primitives for the two runtimes it supports today, Claude Code and Codex. Your personal stances are switches for behavior… How the shared harness works A rule is written, given a detector or a stated reason it cannot have one, held to that by lint, and then measured. Everything below serves that loop. Your preferences… Preferences Two kinds of preference exist, and they are configured differently because Claude Code reads rule text literally: there is no variable substitution inside a rule or… Your primitives, your working style Personal stances are harness-defined switches for how your agents work. They are not a native Claude Code or Codex feature. One selected variant supplies policy to both… Provenance Every file here was written or rewritten for this repository, in second person, with nothing personal left in it. This page records where the ideas came from, as history. Native qualification runbook How an operator runs scripts/native_acceptance.py against a real client. What must be proved, and what the evidence record must contain, is in what is supported; this… Coordinate a harness release and its public surfaces A release is a verified source tag and the GitHub release published from it. A successful build is not native qualification. scripts/release_preflight.py refuses… Remote Control servers This page describes a Claude Code adapter feature for macOS. Codex has no equivalent. Run a shared role with constrained authority Read-only and planner roles run as separate native CLI processes. They use the same definitions under primitives/roles/, selected stances and runtime model bindings… Runtime controls One shared policy engine (lib/harness_core/lifecycle.py) consumes normalized events. Native adapters register one coordinator per lifecycle event and translate… Installing shared primitives into agent runtimes Select targets independently in your user configuration: Sandboxing Native sandbox settings are runtime-specific. The Claude configuration examples below do not configure Codex. Consult runtime controls and compatibility for enforcement… Settings ownership The native ownership declarations and reconciliation journal bound what harness sync may write. claude/OWNERSHIP.json records the Claude template fields. Read it before… One personal switch, two runtime projections Nine stance axes ship, and three of them bind to enforcement: autonomy decides which shell-command grade stops and asks, delegation routes a spawn, and cost resolves a… Measuring without the harness The measurement report reads one file: the session ledger at ~/.local/state/agent-harness/usage.jsonl, written by the usage-log hook. Nothing in bin/harness usage needs… Synchronization and drift harness sync resolves shared user defaults and projects them into selected runtime homes. The ownership journal records prior and applied content; the link manifest… Continue a task in either runtime The shared human-readable snapshot is .agent-harness/progress.md; session start reads the old .claude/progress.md only when the shared file is absent. Plans live in… Exporting the ledger The usage ledger is a local JSONL file and that is deliberate: it is written before anything is sent anywhere, it survives a backend being down, and it can be re-read… Usage telemetry Measurements identify their runtime. Claude and Codex transcript adapters share detectors; Codex cumulative token snapshots are counted once, unavailable metrics remain… Interchangeable architecture viewers Viewer implementation, agent runtime, and model provider are independent choices. The architecture-viewer integration resolves a distribution's builtin adapter by… Workspaces This page describes Claude Code's workspace/session-store adapter. It does not merge Codex native history or memory. Use shared task continuation to carry work between… Changelog All notable changes to this project are documented here. The format follows Keep a Changelog and the project uses Semantic Versioning. Contributing Contribute to one shared primitive authority under primitives/. Personal stances are extensible policy switches; runtime differences belong in adapters, never duplicate…