Agent harness contract (operator)
Internal operator contract — how an agent harness claims a lane, verifies work, passes pr-gate, and records handovers.
LiveChecked against
starlight-agent-config/core/doctrine/SYSTEM-SPINE.md, tools/pr-gate.mjs, tools/lib/harness-identity.mjsOperator reference: This page covers the internal multi-harness contract enforced by
starlight-agent-configandtools/pr-gate.mjs. For public CLI usage across coding agents, see Work from any harness.
The four invariants every harness inherits
- Isolated lane. A harness works on its own branch (
agent/<harness>/<scope>orcodex/<scope>) and worktree, never committing into another agent's live checkout. - Managed-block config. Harness instructions (
~/.claude/CLAUDE.md,~/.codex/AGENTS.md,~/.gemini/GEMINI.md,~/.grok/AGENTS.md) are compiled fromstarlight-agent-config/core/doctrine/SYSTEM-SPINE.mdusing marker-bounded blocks. - Maker ≠ checker (
pr-gate.mjs). The harness that authored a branch cannot sign off on its own PR. A second harness (claude,codex,antigravity,gemini,grok,hermes) must verify the exact commit SHA (starlight-signoff: harness=<H> verdict=pass sha=<SHA>) beforepr-gate.mjs mergewill execute. - Durable handover. Completed slices record their session summary and next prompt in
frankxai/agentic-ops-hub(ops/sessions/YYYY-MM-DD.mdandnode scripts/handover.mjs index).
Human gates (fail closed)
Per Doctrine 0 in SYSTEM-SPINE.md, agents build, test, verify, and stage autonomously, but money, pricing, credentials, DNS records, repository visibility, and external customer sends always require explicit human execution.