Harness Engineering Playbook
Use this skill to operationalize the practices from OpenAI's Harness Engineering guide in a repo that agents can run against repeatedly and safely.
What To Load
- Use
references/openai-harness-practices.md for the full practice-to-artifact mapping.
- Use
references/rollout-checklist.md for phased adoption in active repos.
- Use
assets/templates/ when creating or updating harness files.
Inputs
- Target repository path.
- Existing command surface (
make, npm, cargo, pytest, etc.).
- Existing CI workflows and branch protections.
Workflow
- Baseline the repo and detect existing workflows.
- Bootstrap harness artifacts and templates.
- Apply all nine Harness Engineering practices.
- Run harness audit checks and repair gaps.
- Iterate after real agent runs.
Step 1: Baseline The Repo
- Identify language/toolchain and canonical entrypoints.
- Inventory existing checks, scripts, and CI jobs.
- Record current pain points for agent runs: setup drift, unclear docs, flaky tests, missing trace IDs, slow loops.
Use a short baseline note inside PLANS.md so decisions remain durable.
Step 2: Bootstrap Harness Artifacts
Run:
./scripts/bootstrap_harness.sh <repo-path>
This script installs safe defaults from assets/templates/:
AGENTS.md
PLANS.md
docs/ARCHITECTURE.md
docs/OBSERVABILITY.md
Makefile.harness (+ -include Makefile.harness in Makefile)
scripts/harness/{smoke,test,lint,typecheck}.sh
.github/workflows/harness.yml
By default, existing files are not overwritten. Pass --force to replace template-managed files.
Step 3: Apply The Nine Practices
Implement each practice directly in repo artifacts.
1. Make Easy To Do Hard Thing
- Ensure hard, high-value tasks are one command away (
make smoke, make check, make ci).
- Keep setup and cleanup scripted.
- Make smoke checks cheap enough for frequent use.
2. Communicate Actionable Constraints With Compact Docs
- Keep
AGENTS.md short, concrete, and command-first.
- Document non-obvious constraints and guardrails.
- Keep docs close to code and update with behavior changes.
3. Structure Codebase With Strict Boundaries And Flow
- Define module boundaries in
docs/ARCHITECTURE.md.
- Parse and validate data at boundaries; use typed contracts for internal flow.
- Prefer one abstraction per module and one clear ownership path.
4. Build Observability In From Day 1
- Emit structured logs/events with correlation IDs.
- Capture key transitions in long-running workflows.
- Define minimum observable fields in
docs/OBSERVABILITY.md.
5. Optimize For Agent Flow, Not Human Flow
- Treat context as a first-class system dependency.
- Use
PLANS.md for multi-step/multi-hour tasks.
- Front-load durable context (scope, constraints, checkpoints) so restarts stay cheap.
6. Bring Your Own Harness
- Standardize repo-local wrappers (
Makefile.harness, scripts/harness/).
- Wrap local infra actions in deterministic scripts.
- Make agent behavior reproducible across machines and runs.
7. Prototype In Natural Language First
- Draft logic and tests in prose before coding.
- Review edge cases in prose and lock acceptance criteria.
- Translate approved prose into code and tests.
8. Invest In Static Analysis And Linting
- Pin formatter/linter/typechecker versions where practical.
- Enforce checks in both local workflow and CI.
- Run static checks before long tests to shorten failure loops.
9. Manage Entropy
- Add periodic audits for docs drift, flaky checks, and dead scripts.
- Keep templates synchronized with real workflows.
- Remove stale abstractions quickly to keep agent context clean.
For a detailed artifact matrix, load references/openai-harness-practices.md.
Step 4: Validate
Run:
./scripts/audit_harness.sh <repo-path>
Treat any MISSING or FAIL result as blocking before calling harness setup complete.
Step 5: Iterate On Real Runs
- Observe one full agent run from clean checkout to merged change.
- Patch harness gaps immediately.
- Re-run audit.
- Keep
AGENTS.md, PLANS.md, and architecture docs aligned with current behavior.
Adaptation Rules
- Preserve existing project conventions and replace templates incrementally.
- Do not overwrite user-authored files without explicit approval.
- Keep command names stable; change internals behind wrappers.
- Favor deterministic, scriptable workflows over ad-hoc interactive steps.
1---2name: harness-engineering-playbook3description: Implement OpenAI Harness Engineering practices in any repository. Use when setting up or refactoring agent-first workflows, writing or upgrading AGENTS.md and PLANS.md, creating deterministic smoke/test/lint/typecheck harness commands, defining strict architecture boundaries and data-shape contracts, wiring observability from day 1, and adding entropy-control checks plus CI automation for reliable autonomous runs.4---56# Harness Engineering Playbook78Use this skill to operationalize the practices from OpenAI's Harness Engineering guide in a repo that agents can run against repeatedly and safely.910## What To Load1112- Use `references/openai-harness-practices.md` for the full practice-to-artifact mapping.13- Use `references/rollout-checklist.md` for phased adoption in active repos.14- Use `assets/templates/` when creating or updating harness files.1516## Inputs1718- Target repository path.19- Existing command surface (`make`, `npm`, `cargo`, `pytest`, etc.).20- Existing CI workflows and branch protections.2122## Workflow23241. Baseline the repo and detect existing workflows.252. Bootstrap harness artifacts and templates.263. Apply all nine Harness Engineering practices.274. Run harness audit checks and repair gaps.285. Iterate after real agent runs.2930## Step 1: Baseline The Repo3132- Identify language/toolchain and canonical entrypoints.33- Inventory existing checks, scripts, and CI jobs.34- Record current pain points for agent runs: setup drift, unclear docs, flaky tests, missing trace IDs, slow loops.3536Use a short baseline note inside `PLANS.md` so decisions remain durable.3738## Step 2: Bootstrap Harness Artifacts3940Run:4142```bash43./scripts/bootstrap_harness.sh <repo-path>44```4546This script installs safe defaults from `assets/templates/`:4748- `AGENTS.md`49- `PLANS.md`50- `docs/ARCHITECTURE.md`51- `docs/OBSERVABILITY.md`52- `Makefile.harness` (+ `-include Makefile.harness` in `Makefile`)53- `scripts/harness/{smoke,test,lint,typecheck}.sh`54- `.github/workflows/harness.yml`5556By default, existing files are not overwritten. Pass `--force` to replace template-managed files.5758## Step 3: Apply The Nine Practices5960Implement each practice directly in repo artifacts.6162### 1. Make Easy To Do Hard Thing6364- Ensure hard, high-value tasks are one command away (`make smoke`, `make check`, `make ci`).65- Keep setup and cleanup scripted.66- Make smoke checks cheap enough for frequent use.6768### 2. Communicate Actionable Constraints With Compact Docs6970- Keep `AGENTS.md` short, concrete, and command-first.71- Document non-obvious constraints and guardrails.72- Keep docs close to code and update with behavior changes.7374### 3. Structure Codebase With Strict Boundaries And Flow7576- Define module boundaries in `docs/ARCHITECTURE.md`.77- Parse and validate data at boundaries; use typed contracts for internal flow.78- Prefer one abstraction per module and one clear ownership path.7980### 4. Build Observability In From Day 18182- Emit structured logs/events with correlation IDs.83- Capture key transitions in long-running workflows.84- Define minimum observable fields in `docs/OBSERVABILITY.md`.8586### 5. Optimize For Agent Flow, Not Human Flow8788- Treat context as a first-class system dependency.89- Use `PLANS.md` for multi-step/multi-hour tasks.90- Front-load durable context (scope, constraints, checkpoints) so restarts stay cheap.9192### 6. Bring Your Own Harness9394- Standardize repo-local wrappers (`Makefile.harness`, `scripts/harness/`).95- Wrap local infra actions in deterministic scripts.96- Make agent behavior reproducible across machines and runs.9798### 7. Prototype In Natural Language First99100- Draft logic and tests in prose before coding.101- Review edge cases in prose and lock acceptance criteria.102- Translate approved prose into code and tests.103104### 8. Invest In Static Analysis And Linting105106- Pin formatter/linter/typechecker versions where practical.107- Enforce checks in both local workflow and CI.108- Run static checks before long tests to shorten failure loops.109110### 9. Manage Entropy111112- Add periodic audits for docs drift, flaky checks, and dead scripts.113- Keep templates synchronized with real workflows.114- Remove stale abstractions quickly to keep agent context clean.115116For a detailed artifact matrix, load `references/openai-harness-practices.md`.117118## Step 4: Validate119120Run:121122```bash123./scripts/audit_harness.sh <repo-path>124```125126Treat any `MISSING` or `FAIL` result as blocking before calling harness setup complete.127128## Step 5: Iterate On Real Runs129130- Observe one full agent run from clean checkout to merged change.131- Patch harness gaps immediately.132- Re-run audit.133- Keep `AGENTS.md`, `PLANS.md`, and architecture docs aligned with current behavior.134135## Adaptation Rules136137- Preserve existing project conventions and replace templates incrementally.138- Do not overwrite user-authored files without explicit approval.139- Keep command names stable; change internals behind wrappers.140- Favor deterministic, scriptable workflows over ad-hoc interactive steps.