Skip to content

quality-net: skill changes ship with zero regression detection — 120 evals.json unexecuted, skill-quality:check uninvoked (staged eval/gate/pass^k umbrella) #530

Description

@kyle-sexton

Category: quality infrastructure (umbrella) · Source: control-tower gap-hunt 2026-07-19 (skill-catalog audit + external research), operator-directed proactive sweep

Problem — the repo's single biggest quality gap

This repo edits its own skills daily via the autonomous pipeline, yet has NO skill-regression safety net at any layer:

  • 120 of 146 skills ship evals/evals.json; nothing executes them. CI's plugin-gate runs run-plugin-tests.sh (*.test.sh) + validate-plugins.sh (manifest schema); validate-plugin-contracts.mjs has no eval handling — evals.json is not even schema-checked.
  • skill-quality:check (17-check static gate: frontmatter, trigger-keyword preservation vs HEAD, line caps, broken refs, evals presence) is invoked by nothing — not CI, not claude-review, not the work lane. Its validate-evals action is also uncalled.
  • The work lane's high-blast-radius rule makes the orchestrator manually eyeball skill diffs — hand-reimplementing what the static gate does deterministically.

Every merged skill change is an untested behavior change.

Staged path (each stage independently valuable)

  1. Deterministic CI lane (cheap, now): run skill-quality:check static gate + validate-evals on any PR touching plugins/*/skills/** — replaces the work lane's manual diff-read gate.
  2. Model-graded eval execution of CHANGED skills in the work-lane post-green pass: single judge call per dimension returning 0.0-1.0 + pass/fail (Anthropic guidance: per-dimension isolated judges reduce hallucination; 0.0-1.0+pass/fail "most consistent and aligned with human judgements"). Start with 20-50 tasks harvested from real pipeline failures. Source: https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents
  3. Frozen regression suite: tasks the pipeline previously passed, run on every skill/prompt change, near-100% pass expected; any dip = silent drift caught. This is the net the rule→skill absorption lifecycle (source-control(babysit-prs): absorb v4 loop-prompt operating rules into the skill #477-feat(claude-ops or session-flow): loop-prompt authoring skill — generate and maintain standing loop-lane prompts #480) currently lacks.
  4. pass^k consistency metric as the feat(source-control): babysit autopilot merge tier — bot-account review + criteria-gated merge #476 autopilot unlock criterion: gate autonomous merges on probability ALL k trials succeed (pass^k), not pass@k — quantitative unlock instead of judgment call.
  5. Clean-state eval isolation: each trial from fresh state; Anthropic caught agents reading prior-trial git history and inflating pass rates. Matters as soon as stages 2-4 exist.

Relations

#476 (stage 4 is its unlock criterion), #477-#480 (absorption needs the regression net), #513 (mini-SDLC verify lane consumes these gates), #445 (mechanical-conformance CI backlog — this extends it to behavior).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions