Set up the codebase harness
Harness engineering: the model is fixed — what you engineer is the scaffolding
around it (the environment, the docs, the feedback loops) so an agent can build and
verify software with minimal human attention. Humans steer; agents execute. Your
job is to make the repo legible, executable, and verifiable.
Work incrementally and depth-first: assess what exists, build the one missing
capability, use it to unlock the next. Don't boil the ocean — set up what the repo
actually needs. When the agent struggles, the fix is almost never "try harder" —
ask "what capability is missing, and how do I make it legible and enforceable?"
and add it.
This skill orchestrates the focused sub-skills: dev-local-setup,
e2e-setup, crabbox-setup (cloud/parallel), and verifier-setup
(scaffolds a repo-specific /verify loop; supersedes the older pr skill).
0. Assess
Survey the repo: stack, package manager, services/ports, infra deps, existing
docs/tests/CI, and the implicit rules (buried in READMEs, PR comments, people's
heads). Note what's missing per pillar below.
1. Legible — the agent can reason about the repo
What the agent can't see doesn't exist. Knowledge in chat threads / heads is
invisible — push it into versioned, repo-local artifacts.
- a) Map, not manual. Shrink the root agent doc (
AGENTS.md / CLAUDE.md) to a
~100-line table of contents: one-line overview, project tree, golden rules
(the hard invariants), and a "where to look" table. Move the depth into a
structured docs/ system-of-record (architecture, frontend, testing, domain
topics) with a docs/index.md. A monolithic instruction file rots and crowds out
the task — keep the map small and stable, disclose detail progressively.
- b) Custom lints with remediation. Promote the prose golden rules into
mechanical checks — human taste captured once, enforced everywhere, every run.
One lint per invariant (layering / dependency direction, naming, no-
any,
forbidden imports, file-size, structured logging). Write the error message to
inject the fix ("X isn't allowed here — do Y") so the remediation lands in agent
context. Wire them into the repo's linter + CI.
- c) Queryable code graph. Index the repo with
codebase-memory-mcp
so the agent traces callers, data flow, and architecture from a knowledge graph
instead of blind grepping — faster, more precise navigation on large codebases.
- d) (later) Keep docs honest. A freshness / doc-gardening pass that flags docs
that no longer match the code and opens fix-up PRs.
2. Executable — the agent can run & drive the app
dev-local-setup → a one-command, reproducible local stack
(scripts/dev-local.sh up) running every service + infra.
- Make the app drivable: browser via the
playwright-cli skill (installed by
verifier-setup); logs reachable.
crabbox-setup → an isolated cloud box per agent — the parallel-safe
counterpart to dev-local. Reach for it when loops run concurrently: one laptop
can't host N full stacks (fixed ports, one Docker daemon, one DB), and per-worktree
local doesn't fix it — the worktrees still share the host. crabbox gives each agent
its own stack + an in-box browser, so parallel verification never collides.
- Advanced: a local, ephemeral observability stack (queryable logs/metrics) for
perf/reliability prompts.
3. Verifiable — the agent can prove it works
e2e-setup → a trustworthy e2e gate: real flows (not bypass), a reusable
auth/session helper, layered client → server → product assertions, video/trace
evidence, sandbox-only external services.
verifier-setup → scaffolds a repo-specific /verify skill (the verify-before-ship
loop): a fresh verifier sub-agent drives the real app to confirm the just-built feature
works; the main agent fixes until
green, runs the codified regression sweep, and opens a PR with a reviewable proof
link. Add the session helper so the verifier can reach login-gated features.
4. Others — keep it coherent over time
- Commit hygiene: conventional commits + format/lint on commit (e.g. husky
lint-staged + commitlint). Keep merge gates light — at high agent throughput,
corrections are cheap and waiting is expensive.
- Garbage collection: encode "golden principles", then run periodic cleanup
passes that open small refactor PRs — pay tech debt down continuously, not in
painful bursts. Human taste captured once, enforced on every line.
- Agent-to-agent review for correctness-critical changes (independent reviewers,
not self-review).
Order & what you leave behind
1a (map) → 2 (dev-local) → 3 (e2e + verifier-setup), then 1b (lints) and 4 as the
repo matures. The artifacts — slim map + docs/, scripts/dev-local.sh, an e2e/
suite, the generated /verify skill, and custom lints — are each a reusable, legible capability
that compounds. Prefer "boring", composable, stable tech the agent can fully model.
1---2name: setup-codebase-harness3description: Master skill — set up the full agent harness for any repo so an agent can work it reliably: legible (map-not-manual docs + custom lints), executable (one-command dev stack), verifiable (e2e gate + a verify-before-ship loop), plus commit hygiene and entropy control. Use when onboarding a new/unfamiliar codebase to agent-driven development — "set up the harness", "make this repo agent-ready", "harness this codebase".4---56# Set up the codebase harness78**Harness engineering:** the model is fixed — what you engineer is the *scaffolding*9around it (the environment, the docs, the feedback loops) so an agent can build and10verify software with minimal human attention. Humans steer; agents execute. Your11job is to make the repo **legible, executable, and verifiable.**1213Work **incrementally and depth-first**: assess what exists, build the one missing14capability, use it to unlock the next. Don't boil the ocean — set up what the repo15actually needs. When the agent struggles, the fix is almost never "try harder" —16ask *"what capability is missing, and how do I make it legible and enforceable?"*17and add it.1819This skill orchestrates the focused sub-skills: **`dev-local-setup`**,20**`e2e-setup`**, **`crabbox-setup`** (cloud/parallel), and **`verifier-setup`**21(scaffolds a repo-specific **`/verify`** loop; supersedes the older **`pr`** skill).2223## 0. Assess2425Survey the repo: stack, package manager, services/ports, infra deps, existing26docs/tests/CI, and the *implicit* rules (buried in READMEs, PR comments, people's27heads). Note what's missing per pillar below.2829## 1. Legible — the agent can reason about the repo3031> What the agent can't see doesn't exist. Knowledge in chat threads / heads is32> invisible — push it into versioned, repo-local artifacts.3334- **a) Map, not manual.** Shrink the root agent doc (`AGENTS.md` / `CLAUDE.md`) to a35 ~100-line **table of contents**: one-line overview, project tree, **golden rules**36 (the hard invariants), and a "where to look" table. Move the depth into a37 structured **`docs/` system-of-record** (architecture, frontend, testing, domain38 topics) with a `docs/index.md`. A monolithic instruction file rots and crowds out39 the task — keep the map small and stable, disclose detail progressively.40- **b) Custom lints with remediation.** Promote the prose golden rules into41 **mechanical checks** — human taste captured once, enforced everywhere, every run.42 One lint per invariant (layering / dependency direction, naming, no-`any`,43 forbidden imports, file-size, structured logging). **Write the error message to44 inject the fix** ("X isn't allowed here — do Y") so the remediation lands in agent45 context. Wire them into the repo's linter + CI.46- **c) Queryable code graph.** Index the repo with [`codebase-memory-mcp`](https://github.com/DeusData/codebase-memory-mcp)47 so the agent traces callers, data flow, and architecture from a knowledge graph48 instead of blind grepping — faster, more precise navigation on large codebases.49- **d) (later) Keep docs honest.** A freshness / doc-gardening pass that flags docs50 that no longer match the code and opens fix-up PRs.5152## 2. Executable — the agent can run & drive the app5354- **`dev-local-setup`** → a one-command, reproducible local stack55 (`scripts/dev-local.sh up`) running every service + infra.56- Make the app **drivable**: browser via the `playwright-cli` skill (installed by57 `verifier-setup`); logs reachable.58- **`crabbox-setup`** → an **isolated cloud box per agent** — the parallel-safe59 counterpart to dev-local. Reach for it when loops run **concurrently**: one laptop60 can't host N full stacks (fixed ports, one Docker daemon, one DB), and per-worktree61 local doesn't fix it — the worktrees still share the host. crabbox gives each agent62 its own stack + an in-box browser, so parallel verification never collides.63- *Advanced:* a local, ephemeral observability stack (queryable logs/metrics) for64 perf/reliability prompts.6566## 3. Verifiable — the agent can prove it works6768- **`e2e-setup`** → a trustworthy e2e gate: real flows (not bypass), a reusable69 auth/session helper, layered client → server → product assertions, video/trace70 evidence, sandbox-only external services.71- **`verifier-setup`** → scaffolds a repo-specific **`/verify`** skill (the verify-before-ship72 loop): a fresh **verifier sub-agent drives the real app** to confirm the just-built feature73 works; the main agent fixes until74 green, runs the codified regression sweep, and opens a PR with a reviewable proof75 link. Add the session helper so the verifier can reach login-gated features.7677## 4. Others — keep it coherent over time7879- **Commit hygiene**: conventional commits + format/lint on commit (e.g. husky80 lint-staged + commitlint). Keep merge gates **light** — at high agent throughput,81 corrections are cheap and waiting is expensive.82- **Garbage collection**: encode "golden principles", then run periodic cleanup83 passes that open small refactor PRs — pay tech debt down continuously, not in84 painful bursts. Human taste captured once, enforced on every line.85- **Agent-to-agent review** for correctness-critical changes (independent reviewers,86 not self-review).8788## Order & what you leave behind8990**1a (map) → 2 (dev-local) → 3 (e2e + verifier-setup)**, then **1b (lints)** and **4** as the91repo matures. The artifacts — slim map + `docs/`, `scripts/dev-local.sh`, an `e2e/`92suite, the generated `/verify` skill, and custom lints — are each a reusable, legible capability93that compounds. Prefer "boring", composable, stable tech the agent can fully model.