skills/harness-engineering/SKILL.md
Harness engineering for Harness Kit primitives: skills, shared doctrine, provider roster, harness configs, gates, evals, bootstrap, and sync logic. Use for "improve the harness", "harness engineering", "bootstrap is wrong", "AGENTS.md is stale", "skill health", "skill usage", "undertriggering skill", "description tax", "eval skill", "sync primitives", "roster defaults", "preferred stack", "stack defaults", "hosting defaults", "CI defaults", "observability defaults", "release defaults", "design system defaults", "storage defaults", "agent substrate defaults", "one core many faces", "API CLI MCP SDK skill template", "factory product template", "generate repo-local skill", "bespoke skill subset", "domain agent skill". Trigger: /harness-engineering, /harness, /skill.
npx skillsauth add phrazzld/spellbook harness-engineeringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
This skill has been flagged as suspicious. Review the scan results before using.
2 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Engineer the harness. Keep it thin.
| Need | Load |
|---|---|
| create skill or prompt | references/mode-create.md |
| eval skill | references/mode-eval.md |
| lint skill | references/mode-lint.md |
| apply skill-design lessons | references/skill-design-principles.md |
| clean skill catalog | references/mode-audit.md + harness-kit-checks telemetry |
| convert agent/skill | references/mode-convert.md |
| sync externals | references/mode-sync.md |
| engineer doctrine/gates/hooks | references/mode-engineer.md |
| measure skill usage/health/staleness | references/mode-audit.md |
| current model/provider/harness facts | the roster skill's references/model-provider-harness-index.md |
| open-model defaults | references/open-model-roster.md |
| preferred stack / infrastructure defaults | references/preferred-stack.md |
| factory app capability routing | ../factory-apps/SKILL.md |
| one core / many faces product template | references/one-core-many-faces.md + templates/one-core-many-faces/ |
| generate a focused repo-local skill for a domain agent | references/repo-local-skill-generation.md + templates/repo-local-skill/ |
| public-surface "works" critique | ../../harnesses/shared/references/works-critique.md |
| model-native product boundary | ../../harnesses/shared/references/model-native-product-primitives.md |
| loop readiness / Mode B handoff | ../../harnesses/shared/references/loop-readiness.md |
| verification system first | ../../harnesses/shared/references/verification-system-first.md |
| delete-first simplification lens | ../../harnesses/shared/references/delete-first.md |
| Ponytail anti-overengineering ladder | ../.external/dietrich-ponytail/SKILL.md |
Repo-local skills for consumer repos (bespoke QA drivers, deploy runbooks,
persona probes) are written directly into that repo's .agents/skills/
with its real routes and commands; this skill owns the craft either way.
Process, provenance header, and eval-stub shape:
references/repo-local-skill-generation.md +
templates/repo-local-skill/. For a repo's verification skill, interview
the operator first: the manual checks they run after the agent responds and
before merge are the spec — encode each check that has a tool. Turning a
proven session pattern into a first-party primitive starts at the primitive
test below — most patterns are prompts, not skills.
SKILL.md portability. Prefer
smoke-tested open-model peer lanes through Pi, Goose, and OpenCode on
OpenRouter; keep Claude, Antigravity, Cursor, and Grok conditional unless
their specific surface answers the task.skills/roster/references/model-provider-harness-index.md). Keep that
file factual: model ids, context, price, latency/smoke evidence, tool
support, benchmark sources, deprecations, and freshness. Do not encode
role-fit policy there; the lead agent composes task-specific teams from
current evidence.skills/; repo-local .agents/skills/ and
harness-specific skill bridge dirs are /seed output for consumer repos.AGENTS.md is a router, not a manual. Keep non-obvious facts
only.delegate on judgment per the shared Roster contract: native subagents
by default; add cross-model critics, roster providers, or sprite lanes
(/sprites) only when they answer a distinct question. See
harnesses/shared/AGENTS.md (Roster).
Local lane guidance: Use lanes for doctrine critique, runtime compatibility, gate design, and regression risk. Do not treat a missing repo-local roster as a waiver; use the resolver-backed probe.
Before creating or growing anything, classify it (2026-06 audit, backlog 103):
$ discovery, use a skill instead.harnesses/shared/references/loop-readiness.md before proposing any
unattended loop.History: slash commands were collapsed into skills when skills arrived, so saved prompts masqueraded as skills and the catalog tripled. Do not recreate that. Counter-history: Codex app discovery is skill-shaped, so high-frequency operator commands that must appear in the app are skills even when their body is lightweight.
SKILL.md encodes judgment, not a procedure the model already knows.Use when: phrases and Trigger: aliases.references/; keep the entry file short.After changing skills, shared doctrine, generated docs, bootstrap, roster, or harness projections, prove the output is repo-fit, not merely structurally valid.
## Acceptance Evidence
- Live repo evidence read: source skill, shared doctrine, generated docs, bootstrap output, roster, or harness projection inspected.
- Acceptance source: backlog oracle, skill contract, generated index/docs contract, bootstrap contract, or explicit absence.
- Evidence that proves it: command output, diff, generated artifact, bootstrap transcript, or gate output.
- Exact command/path/route exercised: check, generator, bootstrap, smoke path, projection path, or route run.
- Oracle / acceptance artifact hash: sha256 digest for any fixture, generated artifact, transcript, or contract used as the oracle, or state that no artifact-backed oracle exists.
- Contract-change acknowledgment: reason when the change alters an acceptance contract, generated source, or assertion surface, or state that no contract changed.
- Repo-fit check: source/generator/projection agree; no stale generated docs, wrong skill root, stale command, or copied bridge remains.
- Structural gate: `check --repo .` result, or the specific sub-gate exercised.
- Residual risk: skipped harness, external dependency, or none with reason.
Run cargo run --locked -p harness-kit-checks -- check --repo . after
changing harness primitives, gates, roster, bootstrap, or sync logic. For
bootstrap changes, also re-run bootstrap and confirm installed skills/configs
match the source tree and retired prompt/example links are pruned.
testing
Capture one compounding repo-technical learning while a solved problem is still fresh. Use when: after a bug fix, diagnosis, delivery, review, or incident reveals a reusable pattern worth adding to `docs/solutions/`. Trigger: /compound, /capture-learning, /learning.
testing
Route Misty Step factory application capabilities. Use when choosing, auditing, integrating, or operating Canary, Powder, Landmark, Aesthetic, or Bitterblossom: production observability, incidents, health checks, error logging, backlog/work-card state, release intelligence, UI/UX system adoption, or supervised/unsupervised agent dispatch. Trigger: /factory-apps, /factory-stack.
testing
Prove a skill beats no-skill with a falsifiable A/B eval, or retire it. Design, generate, run, and maintain a skill-specific eval: name the one claim the skill must earn, run it skill-on vs raw same-model, grade blind with objective checks first, return a keep/adapt/cut verdict. Use when: "eval this skill", "does this skill help", "prove the skill beats no skill", "write an eval for", "benchmark a skill", "is this skill worth it", "skill A/B", "skill regression test", "generate skill evals". Trigger: /skill-eval, /eval-skill, /prove-skill.
tools
> Template. Copy to `<target-repo>/.agents/skills/<repo>-<domain>/SKILL.md` > and fill every bracketed placeholder from the live target repo. Delete this > line and every other `> ` guidance line before committing. See > `../../references/repo-local-skill-generation.md` for the full process. --- name: <repo>-<domain> description: | [One paragraph: what this skill verifies/runs/operates for <repo>, stated in terms of the repo's real shape (service/CLI/library/etc.), not generic process. En