Skip to main content

harness-engineering

Design and implement harnesses for AI-agent-driven software development. A harness is the scaffolding—context engineering, architectural constraints, feedback loops, and entropy management—that enables coding agents to produce reliable, maintainable software at scale. Use when assessing a codebase's agent-readiness, building repository knowledge bases, designing layered architectures with mechanical enforcement, setting up application legibility (observability, browser automation), implementing "garbage collection" agents, or adopting an agent-first development workflow. Triggers: "harness engineering", "agent-first development", "harness", "agent-readiness", "agent legibility", "repository knowledge base", "coding agent scaffolding", "AI-maintainable codebase", "garbage collection agents", "context engineering for agents", "architectural enforcement", "structural tests", "custom linters for agents", "agent autonomy", "harness assessment".

Aller à l'installation

Informations de source

Dépôt
arisng/github-copilot-fc
Dernière activité de la source
28 août 2026 à 04:25
Langue détectée de SKILL.md
anglais
Étoiles
5
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
harness-engineering
description
Design and implement harnesses for AI-agent-driven software development. A harness is the scaffolding—context engineering, architectural constraints, feedback loops, and entropy management—that enables coding agents to produce reliable, maintainable software at scale. Use when assessing a codebase's agent-readiness, building repository knowledge bases, designing layered architectures with mechanical enforcement, setting up application legibility (observability, browser automation), implementing "garbage collection" agents, or adopting an agent-first development workflow. Triggers: "harness engineering", "agent-first development", "harness", "agent-readiness", "agent legibility", "repository knowledge base", "coding agent scaffolding", "AI-maintainable codebase", "garbage collection agents", "context engineering for agents", "architectural enforcement", "structural tests", "custom linters for agents", "agent autonomy", "harness assessment".
metadata
{"version":"1.0.0","author":"arisng"}
# Harness Engineering Design environments, feedback loops, and control systems that enable AI coding agents to produce reliable software at scale. A **harness** is everything around the code that keeps agents effective: structured knowledge, mechanical constraints, application legibility, and entropy management. **Core insight**: When agents struggle, the fix is almost never "try harder." Ask: *what capability is missing, and how do we make it both legible and enforceable for the agent?* **Variant**: `harness-engineering-copilot` — strategies and patterns specialized for GitHub Copilot agent customization. **Sources**: [OpenAI — Harness Engineering](https://openai.com/index/harness-engineering/) | [Martin Fowler — Harness Engineering](https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html) ## Three Harness Components | Component | What it does | Deterministic? | |---|---|---| | **Context Engineering** | Curated, structured knowledge base in the repo + dynamic context (observability, browser) | Mixed | | **Architectural Constraints** | Layered architecture enforced by custom linters and structural tests | Deterministic | | **Garbage Collection** | Periodic agents that detect drift, stale docs, and constraint violations | LLM-based | ## Assess Current Harness Before building, audit what exists. Run through this checklist with the user: 1. **Repository knowledge** — Is there an `AGENTS.md` or equivalent entry point? Is it a concise map (~100 lines) or a bloated monolith? 2. **Documentation structure** — Is there a `docs/` directory with architecture, design docs, product specs, and plans? Are they versioned and cross-linked? 3. **Architectural constraints** — Are module boundaries defined? Are dependency directions enforced mechanically (linters, structural tests)? 4. **Application legibility** — Can an agent boot, drive, and observe the application (logs, metrics, traces, browser)? 5. **Feedback loops** — When the agent produces drift, is there a process to detect and correct it? 6. **CI/CD gates** — Do linters and tests catch constraint violations before merge? Rate each 0–2 (absent / partial / enforced). Total ≤ 5 = early stage; 6–8 = developing; 9–12 = mature. ## 1. Context Engineering The repository is the agent's only world. Anything not accessible in-context effectively does not exist. ### Repository Knowledge as System of Record **Anti-pattern**: One giant AGENTS.md with everything. It crowds out task context, rots instantly, and is unverifiable. **Pattern**: AGENTS.md as table of contents (~100 lines), pointing to structured `docs/`: ``` AGENTS.md ← map, not manual ARCHITECTURE.md ← top-level domain + layer map docs/ ├── design-docs/ ← indexed, with verification status │ ├── index.md │ └── core-beliefs.md ├── exec-plans/ ← active, completed, tech-debt │ ├── active/ │ └── completed/ ├── product-specs/ ← requirements + acceptance criteria ├── references/ ← external docs, llms.txt files ├── DESIGN.md ├── FRONTEND.md ├── QUALITY_SCORE.md ├── RELIABILITY.md └── SECURITY.md ``` **Key principles**: - Progressive disclosure: agents start with a small stable entry point and are taught where to look next - Plans as first-class artifacts: execution plans with progress logs checked into the repo - Mechanical freshness: CI jobs validate the knowledge base is up-to-date, cross-linked, and correctly structured - Doc-gardening agent: periodic background task scans for stale docs and opens fix-up PRs ### Dynamic Context Providers Extend what agents can observe beyond static files: - **Browser automation**: Wire Chrome DevTools Protocol (CDP) into agent runtime. Agents take DOM snapshots, screenshots, and navigate UI to reproduce bugs and validate fixes. - **Observability stack**: Ephemeral per-worktree observability (logs via LogQL, metrics via PromQL, traces via TraceQL). Agents query: "ensure startup < 800ms" or "no span in critical journeys exceeds 2s." - **App bootability**: Make the application bootable per git worktree so agents can launch isolated instances per task. ## 2. Architectural Constraints Agents replicate patterns that exist in the repository — including bad ones. Mechanical enforcement prevents drift. ### Layered Domain Architecture Divide each business domain into fixed layers with strictly validated dependency directions: ``` Types → Config → Repo → Service → Runtime → UI ↑ Providers (auth, connectors, telemetry, feature flags) ``` - Code may only depend "forward" through the layers - Cross-cutting concerns enter through a single explicit interface: Providers - Enforced by custom linters and structural tests (not just conventions) ### Mechanical Enforcement | Mechanism | Purpose | Examples | |---|---|---| | Custom linters | Catch violations with remediation instructions in error messages | Dependency direction, structured logging, naming conventions, file size limits | | Structural tests | Validate architecture invariants | ArchUnit-style tests, import graph validation | | Pre-commit hooks | Block violations before they enter the repo | Schema validation, boundary checks | | CI validation | Catch what slips through locally | Full lint + test suite, doc freshness checks | **Critical detail**: Write custom lint error messages that include remediation instructions. These messages become agent context when violations occur, teaching the agent how to fix issues. ### Enforce Invariants, Not Implementations Be prescriptive about boundaries (e.g., "parse data shapes at the boundary"), but not about specific tools. Specify *what*, let agents decide *how* within boundaries. ## 3. Garbage Collection Full agent autonomy introduces entropy. Without active management, drift compounds. ### Golden Principles Define opinionated, mechanical rules that keep the codebase legible: - Prefer shared utility packages over hand-rolled helpers (centralized invariants) - Validate data at boundaries — don't probe data "YOLO-style" - Enforce consistency in naming, logging, and error handling ### Periodic Cleanup Agents Schedule recurring background tasks that: 1. Scan for deviations from golden principles 2. Update quality grades per domain and layer 3. Open targeted refactoring PRs (most reviewable in under a minute) **Cadence**: Daily or per-sprint. Treat like garbage collection — continuous small increments, not painful bursts. ### Quality Scoring Maintain a quality document that grades each product domain and architectural layer, tracking gaps over time. This gives both humans and agents a map of where debt lives. ## Agent-First Workflow When adopting harness engineering, the development loop changes: ``` Human: Define task → Write acceptance criteria ↓ Agent: Validate codebase state → Implement → Self-review → Request agent reviews ↓ Agent: Respond to feedback → Iterate until reviewers satisfied ↓ Agent: Detect/remediate build failures → Escalate only when judgment required ↓ Merge (minimal blocking gates — corrections are cheap, waiting is expensive) ``` **Humans work at a different abstraction layer**: prioritize work, translate user feedback into acceptance criteria, validate outcomes. When agents struggle, identify what's missing and feed it back into the repo. ## Applying to Existing Codebases Not every technique applies to brownfield code. Assess feasibility: | Technique | Retrofit difficulty | Start here | |---|---|---| | AGENTS.md + docs/ structure | Low | Create entry point, incrementally document | | Custom linters | Medium | Start with 2–3 high-value rules | | Structural tests | Medium | Enforce module boundaries first | | App legibility (CDP, observability) | High | Requires infra investment | | Full garbage collection agents | High | Start with doc-gardening only | **Pragmatic approach**: Start with context engineering (cheapest, highest ROI), add architectural constraints incrementally, garbage collection last. ## Harness as Service Template For organizations with 2–3 main tech stacks, consider packaging harnesses as reusable templates: - Pre-configured linters and structural tests for the stack - Knowledge base skeleton (AGENTS.md, docs/ structure) - CI pipeline with doc-freshness and constraint-validation jobs - Starter golden principles for the technology This parallels "golden path" service templates, but optimized for agent-driven development.
Voir sur GitHub