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
18 KiB
Domain re-audit: engineering/ — delta vs June 2026 + agentic readiness
Audited: 2026-07-03 · 63 distinct skills under engineering/ · Method: full SKILL.md
reads, June "Verify" criteria re-run, ~30 script smoke tests (all exit codes checked).
Rubric: RUBRIC.md. June baseline: ../newgen-2026-06/engineering.md.
Summary stats
Delta resolution (19 non-KEEP June verdicts):
- RESOLVED: 9 — agent-designer, dependency-auditor, rag-architect, skill-tester, tech-debt-tracker (REWRITEs); command-guide (deleted); release-manager (merged into changelog-generator, hotfix/rollback tables absorbed); engineering-advanced-skills (counters now 37=37=37, paths fixed); universal-scraping-architect (all 3 scripts wired, agent/command rebuilt, layout normalized).
- PARTIALLY-RESOLVED: 6 — migration-architect, observability-designer (CLIs + gates added but textbook bodies never pruned); database-designer (wired, not merged); agent-workflow-designer, api-design-reviewer, runbook-generator.
- STILL-OPEN: 4 — database-schema-designer (no merge, zero scripts, broken seed example
at L154 persists), codebase-onboarding, interview-system-designer, claude-coach (all 3
June defects untouched: dup frontmatter keys
Name:+name:/1.0.0+2.9.0, README paste L145–205, unwired classifier). - Side-asks: 5 orphan plugins now marketplace-registered ✅ · 4 dual-published duplicates
(slo/chaos/k8s/flags) still undeduped (byte-identical,
diff -rqclean) ❌ · autoresearch evaluator--help-exception sentence never added ❌ · env-secrets-manager dead cross-refs persist ❌ · focused-fixsuperpowers:*still "REQUIRED SUB-SKILL" ❌.
Agentic-readiness distribution (63 skills): HARNESS-READY 22 · LOOP-CAPABLE 23 · TOOL-ONLY 16 · PROSE-ONLY 2. Weakest dimensions: AR5 loop discipline (caps/stop conditions rare outside v2.4+ skills) and AR1 goal intake (most tool-rich skills accept any input silently).
KEEP spot-checks (~25 contracts re-run): PASS except — ship-gate (category table 84
vs checks.md 89), write-a-skill (fails its own checklist runner: 141 lines vs its <100
rule, exit 1), workflow-builder (--sample exits 1 by design — June criterion wrong,
needs one doc sentence), focused-fix (superpowers refs unresolved),
env-secrets-manager (all 5 cross-ref paths fail ls). Verified anchors reproduce: slo
error-budget 43.20 min, statistical-analyst +1.2pp, tc-tracker rejects planned→deployed
(exit 2), commit_linter/mcp_validator --strict exit 1 correctly.
Per-skill table
Scores AR1·AR2·AR3·AR4·AR5·AR6. Class: HR=HARNESS-READY, LC=LOOP-CAPABLE, TO=TOOL-ONLY, PO=PROSE-ONLY. Delta "—" = KEEP verdict holding.
| Skill | June | Delta | AR1-6 | Tot | Class | Top improvement |
|---|---|---|---|---|---|---|
| skills/agent-designer | REWRITE | RESOLVED | 1·2·2·2·1·2 | 10 | HR | Cap the step-4 re-evaluate loop (max 3 pilot re-runs, then escalate) |
| skills/agent-workflow-designer | OPTIMIZE | PARTIAL | 0·1·2·1·0·0 | 4 | TO | Add June-mandated "When NOT to use → workflow-builder" block + JSON-validity gate on scaffolder output |
| skills/api-design-reviewer | OPTIMIZE | PARTIAL | 0·1·2·2·1·1 | 7 | LC | Cut L31-349 textbook REST to references/ (body ≤200); cap lint-fix cycles at 3 |
| skills/api-test-suite-builder | KEEP | — | 0·1·2·0·0·0 | 3 | TO | Add gate: generated suite must pass npx vitest run/pytest -x with 0 collection errors; coverage contract per route |
| skills/browser-automation | KEEP | — | 1·1·1·1·1·0 | 5 | TO | Full runnable CLIs in Quick Start; require anti_detection_checker.py exit-0 pre-run; retry cap 3 on 429/403 |
| skills/changelog-generator | KEEP | — (merge done) | 1·1·2·2·1·2 | 9 | HR | State retry cap for lint-fix cycle |
| skills/chaos-engineering | KEEP | dedupe open | 2·2·2·2·2·2 | 12 | HR | Deduplicate bundle/standalone copies |
| skills/ci-cd-pipeline-builder | KEEP | — | 0·1·2·1·0·1 | 5 | TO | Require yaml.safe_load exit-0 gate on generated pipeline; intake (platform/targets/branches) |
| skills/codebase-onboarding | OPTIMIZE | STILL-OPEN | 0·1·2·1·0·1 | 5 | TO | Add June-mandated gate: execute every setup command in the doc once, 0 ❌ before done |
| skills/database-designer | CUT-OR-MERGE | PARTIAL | 1·1·2·2·1·1 | 8 | LC | Execute the merge into sql-database-assistant (or add explicit routing); cap analyze-fix at 2 cycles |
| skills/database-schema-designer | CUT-OR-MERGE | STILL-OPEN | 0·1·0·1·0·0 | 2 | PO | Retire per June verdict: migrate RLS block + pitfalls table, delete broken L154 seed example |
| skills/dependency-auditor | REWRITE | RESOLVED | 0·1·2·2·1·1 | 7 | LC | Intake (ecosystem/policy/threshold); cap upgrade-rescan at 2 cycles |
| skills/engineering-advanced-skills | OPTIMIZE | RESOLVED | 0·0·0·0·0·0 | 0 | PO (index by design) | Optionally add "state which skill you loaded and why" routing rule |
| skills/env-secrets-manager | KEEP | cross-refs STILL-OPEN | 0·1·2·1·1·1 | 6 | LC | Fix 5 dead cross-ref paths; make env_auditor.py 0-critical a binding close gate |
| skills/feature-flags-architect | KEEP | dedupe open | 1·2·2·2·2·2 | 11 | HR | Deduplicate copies |
| skills/focused-fix | KEEP | PARTIAL | 2·2·1·2·2·2 | 11 | HR | Reword superpowers:* as optional externals; drop phantom scope skill ref (L308) |
| skills/full-page-screenshot | KEEP | — | 1·1·2·2·1·1 | 8 | LC | Hard gate: file out.png = PNG & height>viewport; stop after 2 --wait increases |
| skills/git-worktree-manager | KEEP | — | 1·1·2·2·1·1 | 8 | LC | Make Validation Checklist a required exit gate with one recovery pass then escalate |
| skills/interview-system-designer | OPTIMIZE | STILL-OPEN | 0·1·1·1·0·0 | 3 | TO | Wire or delete the 3 orphan root-level scripts; relocate out of engineering per June misfit note |
| skills/kubernetes-operator | KEEP | dedupe open | 1·1·2·2·1·2 | 9 | HR | Cap validator fix-rerun cycles at 3; deduplicate copies |
| skills/mcp-server-builder | KEEP | — | 1·1·2·2·0·1 | 7 | LC | Loop rule: fix + re-run mcp_validator.py --strict until exit 0, max 3 cycles; done contract (paths + JSON keys) |
| skills/migration-architect | REWRITE | PARTIAL | 1·2·2·2·1·1 | 9 | HR | Cut L55-429 textbook to references/ (Verify cap ≤200); stop condition: 3 failed gate revisions → escalate |
| skills/monorepo-navigator | KEEP | — | 1·0·2·0·0·0 | 3 | TO | Numbered workflow + gate (analyzer JSON cycles empty; affected-only CI filter); artifact = workspace map |
| skills/observability-designer | REWRITE | PARTIAL | 1·1·2·1·1·1 | 7 | LC | Prune L35-273 golden-signals brochure; make alert loop a hard gate (duplicate count = 0) with 1-rotation stop |
| skills/performance-profiler | KEEP | — | 1·1·2·1·0·1 | 6 | LC | Before/after numbers as required artifact (<10% improvement → revert); one-bottleneck-at-a-time stop rule |
| skills/pr-review-expert | KEEP | — | 1·1·2·1·0·1 | 6 | LC | Verdict gate (BLOCK on MUST-FIX or coverage < −5%); re-review loop max 3 rounds then human |
| skills/rag-architect | REWRITE | RESOLVED | 1·2·2·2·2·2 | 11 | HR | Move 3 root scripts into scripts/ (layout anomaly only) |
| skills/runbook-generator | OPTIMIZE | PARTIAL | 1·1·2·1·0·1 | 6 | LC | Add June-required post-generation checklist as refusal gate (rollback non-empty, every step has verify line) |
| skills/secrets-vault-manager | KEEP | — | 1·1·1·1·0·0 | 4 | TO | Exact CLIs for all 3 scripts; gate: audit_log_analyzer shows zero old-credential usage before rotation done |
| skills/self-eval | KEEP | — | 1·1·0·2·1·2 | 7 | LC | Prompt-only by design; optional tiny scores_check.py JSONL assertion to formalize AR3 |
| skills/ship-gate | KEEP | table-drift FAIL | 2·2·0·2·2·2 | 10 | HR | Wire the fully orphaned ship_gate_scanner.py (~1230 LOC) as Step 2 with exit-code verdict; true-up table 84→89 |
| skills/skill-security-auditor | KEEP | — | 1·1·2·2·0·1 | 7 | LC | Remediate→re-scan loop until PASS (max 3); attach JSON report to install decision |
| skills/skill-tester | REWRITE | RESOLVED | 1·1·2·2·2·1 | 9 | HR | Recalibrate skill_validator.py tier minimums (still scores new-style <100-line skills POOR) |
| skills/slo-architect | KEEP | dedupe open | 2·1·2·2·1·2 | 10 | HR | Deduplicate copies (bundle Quick Start points at standalone path — deleting standalone breaks bundle docs) |
| skills/spec-driven-workflow | KEEP | — | 2·2·1·2·2·2 | 11 | HR | Fix pathless CLIs (python spec_validator.py → python3 scripts/spec_validator.py, L151/177/324-333) → AR3=2 |
| skills/sql-database-assistant | KEEP | — | 0·1·2·1·0·0 | 4 | TO | Gate every generated query through query_optimizer.py (score <70 → rewrite); fix phantom observability-platform ref |
| skills/tc-tracker | KEEP | — | 1·1·2·2·1·2 | 9 | HR | Already strong; add explicit iteration cap on validation-fix loop |
| skills/tech-debt-tracker | REWRITE | RESOLVED | 1·1·2·2·1·1 | 8 | LC | Stop condition (2 flat snapshots → re-prioritize) + sprint artifact contract → ≥9 |
| agenthub (8 sub-skills) | KEEP | — | 2·2·2·2·2·2 | 12 | HR | Wire orphaned dry_run.py as mandatory pre-spawn gate in /hub:run; explicit max-attempt cap |
| autoresearch-agent (6) | KEEP | doc-ask STILL-OPEN | 2·2·2·2·2·2 | 12 | HR | Add evaluator --help-exception sentence (June ask); replace stale CronCreate/CronDelete tool names |
| behuman | KEEP | registered ✅ | 1·1·0·1·1·1 | 5 | TO | Ship a mirror-check lint as pre-output gate; cap the rewrite loop |
| caveman | KEEP | — | 0·0·1·1·1·1 | 4 | TO | Inline the 3 exact caveman_lint.py invocations (now only in companion_tooling.md); require PASS/WARN before sending |
| claude-coach | OPTIMIZE | STILL-OPEN (all 3) | 2·1·1·1·2·1 | 8 | LC | Fix dup frontmatter + delete L145-205 README paste; wire coach_tip_classifier.py as Rule-5 gate → HR |
| code-tour | KEEP | — | 1·1·0·1·0·2 | 5 | TO | Add tour_validator.py (schema + file/line existence, exit 0 before save); max 2 re-verify passes |
| collab-proof | NEW | — | 2·2·2·2·1·2 | 11 | HR | Add retry/cap rule for token-collection fallback; translate leftover Korean rubric phrases |
| data-quality-auditor | KEEP | — | 1·1·2·2·0·2 | 8 | LC | Remediate→re-profile loop with DQS delta report, cap 3 cycles → HR |
| demo-video | KEEP | — | 1·1·0·1·0·2 | 5 | TO | Ship scenes.json validator required before build.sh; exact ffmpeg fallback commands |
| docker-development | KEEP | — | 0·1·2·2·0·1 | 6 | LC | Intake (Dockerfile path + size/speed/security target); analyzer-score-must-improve loop, max 3 passes |
| grill-me | KEEP | — | 2·2·1·1·2·2 | 10 | HR | Exact flags for extractor/generator CLIs; machine gate = session JSON all branches resolved |
| grill-with-docs | KEEP | registered ✅ | 2·2·2·2·2·2 | 12 | HR | None blocking — exemplar |
| handoff (engineering) | KEEP | — | 1·1·1·0·0·2 | 5 | TO | Wire 3 scripts with exact CLIs; port sibling productivity/handoff handoff_self_check.py 6-check gate |
| helm-chart-builder | KEEP | — | 1·1·2·2·0·1 | 7 | LC | Fix-and-revalidate loop (chart_analyzer.py 0 CRITICAL, cap 3); intake (workload/namespace/secrets) |
| karpathy-coder | KEEP | — | 1·2·1·1·1·0 | 6 | LC | Exact CLIs in SKILL.md (only agent/command carry them); make pre-commit check a required gate not warn-only |
| llm-cost-optimizer | KEEP | registered ✅ | 2·1·0·2·1·1 | 7 | LC | Add one stdlib script (savings estimator) with CLI; before/after cost-JSON gate between techniques |
| llm-wiki | KEEP | — | 1·1·2·1·0·2 | 7 | LC | Make lint_wiki.py exit code a required post-ingest gate (now "periodic"); fix 4 phantom related-skill refs |
| prompt-governance | KEEP | registered ✅ | 2·1·0·1·1·1 | 6 | LC | Ship registry-YAML validator; golden-dataset minimum (20) as Mode-2 refusal gate |
| security-guidance | KEEP | — | 0·0·1·2·0·1 | 5 | TO (hook by design) | Optional --scan <file> manual mode for deterministic re-run-to-exit-0 |
| statistical-analyst | KEEP | — | 2·1·2·2·1·1 | 9 | HR | Add H1 heading (currently none); cap extend/re-test loop at one extension |
| terraform-patterns | KEEP | — | 0·1·2·1·0·1 | 5 | TO | Gate: 0 Critical from tf_security_scanner.py --strict before apply; fix ./scripts/convert.sh path |
| universal-scraping-architect | OPTIMIZE | RESOLVED | 1·1·2·2·1·1 | 8 | LC | Promote agent's intake to SKILL.md forcing questions; cap re-extraction at 2 attempts → HR |
| workflow-builder | KEEP | — (contract nuance) | 2·2·2·2·2·1 | 11 | HR | Document that validate_workflow.py --sample exits 1 by design; add done digest |
| write-a-skill | KEEP | self-check FAIL | 2·1·2·2·1·2 | 10 | HR | Trim own SKILL.md to <100 lines so it passes its own checklist runner; make runner exit-0 a blocking Phase-3 gate |
| zero-hallucination-coder | NEW | — | 2·2·0·2·2·2 | 10 | HR | Add one stdlib plan-linter (scan for unresolved [UNKNOWN]/TODO, exit 1) — AR3=0 is the only gap |
(named-persona-adversarial-review is scored in engineering-team.md —
it lives at engineering-team/skills/.)
Systemic findings
Patterns
- The REWRITE wave worked, but two were patches, not rewrites. Brochure headings ("Future Enhancements"/"Conclusion"/"Planned Features") are now zero across engineering/; 5 of 7 REWRITEs fully resolved. migration-architect (429 lines) and observability-designer (272) got a wired Quick Start + gate bolted onto an unpruned textbook body — the June Verify line caps remain unmet.
- AR5 (loop discipline) is the domain's weakest muscle. Only v2.4+/Pocock/orchestrator- generation skills state iteration caps or stop conditions. ~20 skills have a "re-run until clean" instruction with no cap; ~25 have none at all. A single sentence pattern ("max N fix-rerun cycles, then escalate") would lift 8 skills sitting at 7–8 into HARNESS-READY.
- AR1 (goal intake) missing from tool-rich skills. The wiring epidemic was fixed (AR3 median is now 2), but most wired skills run on whatever input arrives — no forcing questions, no refusal on vague goals. The intake patterns already exist in-house (workflow-builder, grill-me, zero-hallucination-coder) and just need porting.
- Gates exist but aren't binding. Many skills describe a validator yet don't require its exit code before proceeding (llm-wiki "periodic" lint, karpathy-coder warn-only hook, docker/helm validate-steps without loop closure).
- Orphan scripts persist even in KEEP skills — new cases surfaced: ship-gate's
ship_gate_scanner.py(~1230 LOC, full exit-code contract, never mentioned in SKILL.md — the model is told to scan manually), agenthub'sdry_run.py, interview-system-designer's 3 root scripts, secrets-vault-manager's 3 unwired tools, handoff's 3 tools. - Dead cross-references survived the phantom-path sweep because they're skill-name
table refs, not file paths: env-secrets-manager (5 dead), sql-database-assistant
(
observability-platform), llm-wiki (4 phantom related skills), focused-fix (scope+superpowers:*as REQUIRED). - Dual-published dedupe (June finding #4) not executed. All 4 pairs remain byte-identical (no divergence yet); trap: bundle copies' Quick Starts reference the standalone paths, so naive deletion of standalone copies breaks the bundle's own docs.
- Database-trio merge (June finding #3a) not executed — database-designer got wired instead of merged; database-schema-designer remains the domain's worst skill (PROSE-ONLY, broken seed example intact).
New defects found this audit
- ship-gate: orphaned scanner + category-table drift (SKILL.md 84 vs checks.md 89) — its KEEP contract now FAILS.
- write-a-skill: fails its own checklist runner (141 lines vs its <100 rule; exit 1) — the meta-skill doesn't dogfood.
- autoresearch loop sub-skill: instructs stale
CronCreate/CronDeletetool names and a 10-min interval that conflicts with the current hourly-minimum trigger surface — broken as written. - claude-coach: zero progress on all 3 June defects (conflicting
Version: 1.0.0/version: 2.9.0still parses ambiguously). - workflow-builder:
validate_workflow.py --sampleexits 1 by design (intentionally broken sample) — the June KEEP criterion assumed 0; needs one documenting sentence. - database-schema-designer: broken seed example at L154 persists (explicit June Verify item).
- collab-proof: untranslated Korean rubric phrases from the upstream Vela source.
- terraform-patterns:
./scripts/convert.shinvocation resolves only from repo root; repo version2.9.0leaked into an Infracost policy example. - statistical-analyst: no H1 heading; "You are an expert…" opener also in data-quality-auditor.
- skill-tester's
skill_validator.pystill penalizes new-style <100-line skills (scores self-eval "POOR 33.3") despite the doc-level scope note. - No broken scripts: all ~60
--help/--sample/pipe invocations exited per contract (non-zero only where documented).
Top-10 harness-ready exemplars
agenthub (12), autoresearch-agent (12), chaos-engineering (12), grill-with-docs (12), collab-proof (11), feature-flags-architect (11), spec-driven-workflow (11), workflow-builder (11), rag-architect (11), focused-fix (11). Honorable mentions at 10: slo-architect, ship-gate, grill-me, zero-hallucination-coder, write-a-skill — each one small fix from exemplar status.
Highest-leverage next PRs
- Wire ship-gate's scanner + fix its category table.
- One-sentence loop-cap sweep across the eight 7–8-point LOOP-CAPABLE skills (claude-coach, data-quality-auditor, universal-scraping-architect, docker-development, helm-chart-builder, mcp-server-builder, tech-debt-tracker, skill-security-auditor) — the cheapest path to ~30 HARNESS-READY.
- Execute the deferred structural verdicts: dedupe the 4 dual-published pairs, merge/retire the database trio, fix claude-coach.