Agent engineering harness for any repo. Creates a short AGENTS.md table-of-contents, structured docs/ knowledge base (ARCHITECTURE, QUALITY, CONVENTIONS, COORDINATION, RESILIENCE), custom agent-readable linters (WHAT/FIX/REF format), CI enforcement, and execution plan templates. Supports Rust, Go, TypeScript, and Python. Integrates agent-motivator recovery protocols into docs/RESILIENCE.md (7-point checklist, VBR standards, failure pattern library). Use when setting up any repo for agent-first development, upgrading an existing AGENTS.md, or enforcing architectural lint gates. Includes --audit flag for tool lifecycle checks and L1/L2/L3 progressive disclosure.
Implements the OpenAI Codex team's agent-first engineering harness pattern for any repo: short AGENTS.md TOC, structured docs/, custom linters with agent-readable errors, CI enforcement, execution plan templates, doc-gardening.
Validated against: Agent Tool Design Guidelines (2026-03-09)
SKILL_DIR="$HOME/.openclaw/workspace/skills/harness"
# Scaffold harness for a repo (language auto-detected: Rust/Go/TypeScript/Python)
uv run python "$SKILL_DIR/scripts/scaffold.py" --repo /path/to/repo
# Scaffold with force-overwrite of existing AGENTS.md
uv run python "$SKILL_DIR/scripts/scaffold.py" --repo /path/to/repo --force
# Audit harness freshness (tool lifecycle check — no writes)
uv run python "$SKILL_DIR/scripts/scaffold.py" --repo /path/to/repo --audit
# Run lints locally
bash /path/to/repo/scripts/agent-lint.sh
# Check doc freshness (finds stale references in docs/)
uv run python "$SKILL_DIR/scripts/doc_garden.py" --repo /path/to/repo --dry-run
# Check doc freshness and open a fix PR
uv run python "$SKILL_DIR/scripts/doc_garden.py" --repo /path/to/repo --pr
# Generate execution plan for a complex task
uv run python "$SKILL_DIR/scripts/plan.py" \
--task "Add IBC timeout handling" \
--repo /path/to/repo
| File | Description |
|---|---|
AGENTS.md | ~100 line TOC with L1/L2/L3 progressive disclosure markers |
docs/ARCHITECTURE.md | Layer diagram + dependency rules (auto-generated from repo structure) |
docs/QUALITY.md | Coverage targets + security invariants |
docs/CONVENTIONS.md | Naming rules (language-specific) |
docs/COORDINATION.md | Multi-agent task ownership + conflict resolution rules |
docs/RESILIENCE.md | Agent recovery protocols, 7-point checklist, VBR standards ← from agent-motivator |
docs/EXECUTION_PLAN_TEMPLATE.md | Structured plan format for complex tasks |
scripts/agent-lint.sh | Custom linter with agent-readable errors (WHAT / FIX / REF) |
.github/workflows/agent-lint.yml | CI gate on every PR |
Every lint error produced by scripts/agent-lint.sh follows this format:
LINT ERROR [<rule-id>]: <description of the problem>
WHAT: <why this is a problem>
FIX: <exact steps to resolve it>
REF: <which doc to consult>
This means agents can read lint output and fix problems without asking a human.
Before shipping any tool or skill change, verify:
The harness enforces a 3-layer context discipline:
| Layer | Where | When to load |
|---|---|---|
| L1 | AGENTS.md | Always — orientation, commands, invariants |
| L2 | docs/ | Before coding — architecture, quality, conventions |
| L3 | Source files | On demand — grep/read specific files as needed |
Rule: Start with L1. Pull L2 before touching code. Pull L3 only when you need it. Never pre-load all three layers — it crowds out working context.
Run --audit quarterly to check harness freshness:
--force flag--dry-run mode before committing