skills/harness-engineering/SKILL.md
Adopt repository-level harness engineering for coding agents. Use when a user wants to prevent repeated AI coding-agent mistakes by turning failures into durable instructions, drift checks, regression tests, failure memory, and adoption reports tailored to the target repository.
npx skillsauth add williamlimasilva/.copilot harness-engineeringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Harness engineering turns repeated coding-agent mistakes into durable repository artifacts:
Harness = Instructions + Constraints + Feedback + Memory + Evaluation + Governance
Use this skill when the user asks to:
Do not use this skill for ordinary feature implementation unless the user asks to improve the repository's agent operating environment.
Before proposing or making harness changes, inspect the repository for existing rules and evidence.
Read these files and folders when they exist:
README.mdAGENTS.md.github/copilot-instructions.md.github/instructions/.github/workflows/CONTRIBUTING.mdpackage.json, pyproject.toml, go.mod,
Cargo.toml, pom.xml, or build.gradledocs/scripts/Then summarize:
Follow this sequence:
Pick only the surfaces that fit the target repository:
| Need | Preferred artifact |
| --- | --- |
| Always-on agent behavior | AGENTS.md or .github/copilot-instructions.md |
| File-scoped guidance | .github/instructions/*.instructions.md |
| Recurring project checks | scripts/check_*.py, shell scripts, or package scripts |
| CI enforcement | existing workflow files or a small new workflow |
| Known failures | docs/failures/*.md |
| Architecture or process decisions | docs/decisions/*.md |
| Adoption evidence | docs/harness/adoption-report.md or similar |
If the repository already has an equivalent location, update it instead of creating a parallel system.
Agent instructions should be concrete and operational. Include:
Avoid broad personality guidance, generic best practices, and rules that cannot be checked or reviewed.
Convert high-value rules into checks. Good harness checks are:
Examples:
Rule: Do not edit generated API clients.
Check: script scans diffs for generated paths and fails with a clear message.
Rule: Every failure memory note names a regression check.
Check: script validates docs/failures/*.md for a "Detection" section.
Rule: Profile docs and templates must stay aligned.
Check: test compares profile README files to expected template files.
Record failures when they are user-visible, high-risk, or likely to recur.
Use a new file under docs/failures/ unless an existing note already covers
the same root cause.
Recommended structure:
# Short Failure Title
## Summary
What failed, who saw it, and why it matters.
## Root Cause
The technical or process cause. Avoid blame.
## Prevention
Instruction, test, drift check, CI gate, fixture, or manual review point that
prevents or detects recurrence.
## Evidence
Links to issue, PR, test, log, command output, or file paths.
If no automated check is practical, record the manual review point and why automation would be unsafe or misleading.
Use drift checks for guidance that can silently become stale. Common examples:
Prefer small scripts using the repository's existing language. If the repo has no scripting convention, Python with only the standard library is a portable default.
Finish substantial harness work with an adoption report that includes:
When asked to review a harness change, take an opposing perspective. Look for:
Report findings first, ordered by severity, with file and line references when available. Do not modify files during a review unless the user explicitly asks for fixes.
Before finishing harness adoption work, verify:
The prompt-first workflow in
https://github.com/baskduf/harness-starter-kit is a reference implementation
of these ideas. Use it as reference material only when the user asks for it or
when the repository already includes it. The target repository remains the
source of truth.
development
Anxiety-aware, evidence-driven collaboration for stalled or high-stakes work when a user says uncertainty, repeated setbacks, or lack of visible progress is causing significant anxiety or distress. Use immediately when explicitly invoked; when this fit is only inferred from the user's own account, ask permission before applying it. Preserve the user's ideal and turn grounded perspective-taking into persistent, bounded problem solving. Do not use to diagnose, provide therapy, manufacture certainty, or lower goals for reassurance.
development
Build, review, debug, package, and test Roslyn diagnostic analyzers, code fix providers, and incremental source generators. Use for DiagnosticAnalyzer, CodeFixProvider, IIncrementalGenerator, IOperation analysis, Microsoft.CodeAnalysis dependency pinning, Roslyn test harnesses, C#/VB tests, and analyzer NuGet packaging.
testing
Migrates a project that uses checked-in .designer.cs files behind .resx to using a source-generator instead
development
Polish any GitHub repository's surface — labels (emoji rating tiers, P0–P3 priority, impact severity), issue forms, PR template, CI workflows, CODEOWNERS, rulesets, docs. Repo meta & config only — no code logic touched. Use when creating a new repo or polishing an existing one.