Deep-audit both engineering folders (engineering/ + engineering-team/) against the June 2026 baseline and score every skill on a new 6-dimension agentic-readiness rubric (goal intake, decomposition, deterministic execution, verification, loop discipline, close-out). Combined: 26 HARNESS-READY, 39 LOOP-CAPABLE, 43 TOOL-ONLY, 7 PROSE-ONLY. Headline finding: loop discipline (AR5) is the repo-wide gap. Ship engineering/agent-harness — the thin unifying layer that turns any of the repo's 18 domains into a bounded, self-verifying agent loop: - harness_manifest_builder.py: scan a domain -> manifest.v1 (skills, tools, checks, signals) - goal_compiler.py: goal + manifest -> plan.v1; refuses vague goals (exit 3) / no-match (4) - loop_controller.py: init/next/record/verify/close state machine; runs checks itself via subprocess (no verification theater), caps attempts+iterations with escalation, refuses to close while any task is unverified; atomic state writes - 18 committed per-domain manifests, JSON schema, harness-runner agent, /cs:harness command, 3 references citing the 2024-2026 harness canon - reuses agenthub / autoresearch locked-evaluator / tc-tracker / loop-library primitives Audit record under audit/engineering-agentic-2026-07/ (master + 2 domain reports + improvement-fields rollup + research digest + rubric). Counters: 82->83 plugins, 354->355 skills, 593->596 tools, 722->725 refs (derive_counters --check passes). All CI gates green: plugin.json, smoke --help/--sample, JSON output, path linter, dual-publish, counters. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L4JerbGv6vqitUMhqHPA9g
7.9 KiB
Master report — Engineering agentic-loop audit + agent-harness framework
Audited: 2026-07-03 · Branch: claude/engineering-audit-agentic-loops-hv9x9m ·
Scope: both engineering domain folders — engineering/ (63 skills) and
engineering-team/ (52 skills incl. sub-skills) — re-audited against the June 2026 baseline
AND scored on a new agentic-readiness rubric. Plus: a new engineering/agent-harness
skill that turns any of the repo's 18 domains into a bounded, self-verifying agent loop.
Method: (1) read the June audit/newgen-2026-06/ reports; (2) two parallel deep-dive
agents re-read every SKILL.md, re-ran the June "Verify" criteria, and smoke-tested ~90
scripts; (3) one research agent web-verified the 2025–2026 agent-harness canon
(research-digest.md); (4) one explorer mapped the repo's existing
loop infrastructure so the new skill reuses rather than duplicates it.
1. The two questions
June asked: does each skill earn its context window? (trigger quality, wiring, freshness). That audit drove a wave of fixes — REWRITEs, a phantom-path sweep, orphan-script wiring, a 100-line ceiling.
This audit asks the next question: can an agent pick a skill up with a goal and drive it to a verified close? — the gather→act→verify→repeat loop the harness literature converged on. The rubric (RUBRIC.md) scores six dimensions 0–2: goal intake (AR1), task decomposition (AR2), deterministic execution (AR3), verification (AR4), loop discipline (AR5), close-out (AR6).
2. Combined scorecard (115 skills across both folders)
| Class | engineering/ | engineering-team/ | Total | Meaning |
|---|---|---|---|---|
| HARNESS-READY (≥9, AR4≥1, AR5≥1) | 22 | 4 | 26 | An agent can loop this today |
| LOOP-CAPABLE (6–8) | 23 | 16 | 39 | One or two additions away |
| TOOL-ONLY (3–5) | 16 | 27 | 43 | Good tools, no loop spine |
| PROSE-ONLY (0–2) | 2 | 5 | 7 | Needs structural rebuild |
Delta vs June (35 non-KEEP verdicts across both folders): RESOLVED 16 · PARTIALLY-RESOLVED 10 · STILL-OPEN 9. The June wave landed most of its wiring and correctness fixes; what remains is structural (deferred merges/dedupes) and the new dimension this audit adds.
3. The single biggest finding: AR5 (loop discipline) is the repo-wide gap
The June wiring epidemic is largely cured — AR3 (deterministic execution) is now the median strength. But loop discipline is the weakest dimension in both folders. Skills describe "re-run until clean" with no iteration cap, or have no stop condition at all. Only the v2.4+/Pocock/orchestrator generation (agenthub, autoresearch, chaos-engineering, grill-with-docs, workflow-builder, playwright-pro/fix, the upgraded senior-* trio) carries caps and escalation thresholds.
Why it matters most for autonomous work: a skill with great intake and tools but no verification gate or stop condition is more dangerous in a loop, not less — it runs confidently and forever, and (per the reward-hacking literature) may learn to game its own checks. That is exactly why the AR class gate requires AR4≥1 and AR5≥1 before a skill counts as harness-ready regardless of total score.
Cheapest high-leverage fix: a one-sentence loop-cap pattern — "max N fix-rerun cycles, then escalate to a human" — ported across the ~15 skills sitting at 7–8 points would roughly double the HARNESS-READY count. The pattern already exists in-house (playwright-pro/fix, spec-driven-workflow, focused-fix's 3-strike rule).
Second gap: AR1 (goal intake). Most tool-rich skills accept any input silently. The decision-engine "refuse without required inputs" pattern from the upgraded senior-* trio and grill-me is the cheapest fix to propagate.
4. What this PR ships: the agent-harness framework
Rather than hand-fix 100 skills, this PR builds the thin unifying layer the explorer
found missing — each existing loop primitive (agenthub, autoresearch, tc-tracker,
workflow-builder, the fork-orchestrators) ships its own state dir, state machine, and eval
contract, with nothing that lets an agent pick up an arbitrary goal for an arbitrary domain
and drive it to a verified close. engineering/agent-harness is that layer:
harness_manifest_builder.pyscans a domain folder → amanifest.v1JSON inventory (every skill, its tools, the exact--help/--samplechecks that prove each tool works, and staticagentic_signalsmapping to AR1/AR4/AR5/AR6). 18 domain manifests are committed under the skill'sassets/harnesses/— the whole repo, machine-readable.goal_compiler.pyturns a goal + manifest into aplan.v1task plan (deterministic keyword scoring, no LLM call). Refuses vague goals (exit 3) with forcing questions and refuses no-match (exit 4) with nearest candidates — the harness never runs on fuzz.loop_controller.pyis the JSON-backed state machine:init → next → record → verify → close. It runs verification checks itself via subprocess (no verification theater), caps attempts and iterations (escalates instead of looping forever), and refuses to close while any task is unverified and unwaived (exit 4, no force flag).
Plus harness-runner agent (stateless one-task-per-invocation executor), /cs:harness
command, a JSON schema, and 3 references citing the canon. Every design decision traces to a
source: verifier's law, SWE-agent's write-time feedback, Ralph fresh-context iteration,
Cognition's serialize-writers rule, Anthropic's long-running-agents harness, and this repo's
own tc-tracker / autoresearch locked-evaluator / loop-library stop-state taxonomy.
Reuse, not reinvention. The harness routes to agenthub for N-agent tournaments, to
autoresearch for metric optimization, and adopts tc-tracker's atomic-write + handoff schema
and autoresearch's "never modify the evaluator" invariant. See the reuse map in the skill's
references/domain_harness_design.md.
5. Per-domain reports
- engineering.md — 63 skills, full delta + AR table + 10 exemplars.
- engineering-team.md — 52 skills, delta + AR table + the two- generation role-skill split + 1 new P1 (senior-data-engineer CLI mismatch).
- improvement-fields.md — the eight fields where investment moves the most skills, ordered by leverage (the "what to improve, per field" rollup).
- research-digest.md — the web-verified harness canon.
- RUBRIC.md — the AR scoring rubric.
6. Recommended follow-up PRs (in leverage order)
- Loop-cap sweep — one-sentence stop-condition + iteration cap across the ~15 LOOP-CAPABLE skills at 7–8 points. Cheapest path to ~doubling HARNESS-READY. Use each domain report's "Top improvement" column as the work list.
- Intake sweep — port the decision-engine "refuse on missing required input" pattern to the tool-rich TOOL-ONLY skills (AR1 0→2).
- Bind the gates — make described validators required (exit-code gate before proceeding) in llm-wiki, karpathy-coder, docker-development, helm-chart-builder.
- New defects — wire ship-gate's orphaned scanner + fix its 84→89 table; fix
senior-data-engineer's documented CLI; strip senior-ml-engineer's 2024 pricing; fix
claude-coach's 3 June defects; document workflow-builder's by-design
--sampleexit 1. - Deferred structural verdicts — dedupe the 4 dual-published pairs; merge/retire the database trio; register named-persona-adversarial-review in the indexes.
- CI gate — add a manifest-drift check (
harness_manifest_builder.py --all --no-timestamp+git diff --exit-code) so the harness manifests stay true to the tree, mirroringderive_counters.py --check.
Every item above has an executable acceptance criterion in the per-domain reports — the same "definition of done" discipline the June audit established.