The shwrk harness
The harness is an APM package that makes a repository self-checking. Install it, and every repo exposes the same interface: one command to verify everything (make check), one health endpoint (/health), one set of agent instructions (AGENTS.md), and one convergence test that proves the repo still satisfies the contract.
It is language-agnostic by design. The iron rule: nothing outside a Makefile target body references a specific language. The TypeScript / Cloudflare Workers defaults live in overridable ?= variables — point them at ruff, pytest, cargo, or anything else and the same target names keep working.
Why a harness
Agents are strong at writing code and weak at remembering process. The harness encodes the process so the agent cannot skip it:
- One gate.
make checkruns lint, format, typecheck, test, deadcode, build, and the convergence test. Green means shippable; red prints aTo fix:line for every failure. - One contract per surface.
/healthalways looks the same.AGENTS.mdalways has the same sections. A reviewer (human or agent) always knows where to look. - Non-destructive adoption. Adding the harness to an existing repo merges and extends — it never overwrites your config.
The pieces
| Surface | What it is |
|---|---|
Makefile | The standard target contract. include Makefile.core, override the *_CMD vars. |
/health | A uniform JSON health endpoint. 200 = up, anything else = down. |
AGENTS.md | Lean, mapped agent instructions. CLAUDE.md is a symlink to it. |
harness-check | The convergence test: ten invariants that must hold, each with a fix. |
| Git hooks | Conventional-commit enforcement + a fast pre-commit lint/typecheck + secret scan. |
| Skills & agents | OpenSpec workflow, harness-reviewer, app-evaluator, fleet-update, gardener. |
Get started
curl -sSL https://harness.shwrk.com/install | bash
Then open the repo in Claude Code and run the harness skill. See Install for what that script does, and Adoption Guide for adopting an existing repo safely.