Skip to content

Job pack · harness

Coding agent

A harness that edits a repo: workspace, skills, plan/act, diffs, sandbox, verifier, human gate.

When: The product is software engineering — PRs, tests, and a desk, not a chat wrapper.

Load this pack, then the coding-agent playbook. Do not ingest the atlas. Start from a harness, not a blank graph.

GET /api/canon/jobs/coding-agent?format=md

Matching skill · Coding agent

Playbooks

Doctrine to load

  1. What a Harness IsA harness is the opinionated product around the loop: workspace, tools, skills, subagents, permissions, UI. Frameworks are libraries. Harnesses are how an engineer actually works with a model.
  2. Coding Agent HarnessesOpenHands, Cline, OpenCode, Aider, Gemini CLI, DeerFlow: the software-engineering specialization of the harness. Git is the ledger; the repo is the workspace; the PR is the done state.
  3. AGENTS.md as ConstitutionAGENTS.md (and CLAUDE.md, and the Cursor rules file) is the repo's standing prompt. It is owned policy: how to build, test, and stop. Keep it short, imperative, and true, or the agent will ignore it and invent a culture.
  4. Plan Mode and Act ModeLong-horizon work has two speeds. Plan mode is a deny-writes session that produces a revisable document. Act mode is a budgeted loop against that document. Mixing them is how agents wander and how humans lose the veto.
  5. Diffs, Repo Maps, Edit FormatsThe coding agent's tools are not 'read and write files'. They are a repo map for orientation, grep for search, and a patch format for change. Whole-file dumps are how context dies and how reviews fail.
  6. Verification as ArchitectureThe product of a coding agent is not code. It is code that passed a verifier the harness ran. Tests, typecheck, build, browser smoke, and a human gate are stages of the loop, not a ceremony after it.
  7. Allow, Ask, DenyEvery side-effecting tool sits behind a permission. Allow what is cheap and reversible. Ask what is consequential. Deny what is out of scope. The model proposes; the gate decides.
  8. SubagentsA subagent is a nested loop with a narrower prompt, a fresh or sliced context, and a written return value. It is the isolation primitive of modern harnesses.

Refuse

  • Unsandboxed exec. A shell or code-act tool on the host with production credentials.
  • No verifier in the loop. The agent writes code and declares victory. Tests, typecheck, and build are optional.
  • Unbounded loop. No max-turns, token, wall-clock, or money budget. The agent rambles until the bill or the context dies.
  • Mega-tool. One function whose argument is a JSON blob of 'whatever'. An untyped shell with extra steps.
  • Computer-use as the first tool. A browser or desktop agent used where an API, a workflow, or a grep would do.

Checklists

Harness quality

  • Filesystem workspace. Disk is source of truth; the window is a cache.
  • Progressive-disclosure skill loader.
  • Plan/act modes. Plan is a file the human can edit.
  • Subagent spawner with reduced tools and a written return.
  • Sandbox plus permission gates.
  • Verifier in the loop (test, typecheck, build, browser).

ACI quality

  • One job per tool. No mega-tool JSON blob.
  • Verb names the model will say: read_file, apply_patch, ask_human.
  • Compact errors: the smallest string that enables the next correct action.
  • Capped results. Pagination or a file write instead of 200k-token dumps.
  • Idempotent or journaled. Retries do not double side effects.
  • Allow / ask / deny in code, logged, resumable.

Ready to build

  • Named termination: done schema, max turns, token/money cap.
  • Sandbox / allowlist for every side effect. Secrets in the executor.
  • An explicit context builder: pinned, working, recalled, compacted.
  • A golden set of 20–50 real tasks, run in CI on prompt change.
  • Launch / pause / resume APIs. HITL is a tool that checkpoints.

Recipes

Default corpus

openai-codexopenhandsclineaidergoosedeepagents