Skip to content

Skill · pattern · harness-design

Design a harness

Build or adopt a harness — the opinionated runtime around the loop: filesystem workspace, progressive-disclosure skills, planner, subagents, sandbox, verifier, permissions. Use for coding or long-horizon research products. Do not start from a blank ReAct loop.

GET /api/canon/skills/harness-design?format=md

A harness is not a framework. It is the missing outer loop: files as truth, skills as cache, plan/act as permissions, verify as done.

When

The product is a desk, not a chat wrapper. Claude Code, Codex, OpenHands, Cline, Goose, Deep Agents converge here.

Do

  1. 01

    Start from a harness

    Replace pieces. Do not rebuild Claude Code poorly on a blank graph.

  2. 02

    Workspace on disk

    Disk is source of truth; the window is a cache. Repo map + apply_patch.

  3. 03

    Skills + subagents + sandbox + verifier

    Progressive disclosure. Isolated children. Allow/ask/deny. Test command in the loop.

Don't

  • Start from a blank LangGraph and reinvent the desk.
  • Make computer-use the first tool for a git repo.

Hard rules

  • Harness quality: workspace, skills, plan/act, subagents, sandbox, verifier.
  • Done = reviewable diff + tests + human gate.

Refuse

Load with this

Load next

Trigger tests

Should fire

  • We need a coding harness
  • What's the difference between a framework and a harness?

Should not

  • A single-shot summarizer