Stage 1 of #530 (quality-net umbrella), split out so the delivering PR has a closeable target without auto-closing the 5-stage umbrella (pr-issue-linkage requires a closing keyword; #593's original Closes #530 would have closed the umbrella with stages 2-5 outstanding).
Scope (the "cheap, now" deterministic lane): CI job running the skill-quality static contract gate over changed skills under plugins/*/skills/** + schema validation of every evals.json, wired into the required ci-status aggregate (fail-closed, no silent skip).
Delivered by PR #593. Stages 2-5 (model-graded judges, frozen regression suite, pass^k autopilot-unlock metric, clean-state isolation) remain on #530.
Stage 1 of #530 (quality-net umbrella), split out so the delivering PR has a closeable target without auto-closing the 5-stage umbrella (pr-issue-linkage requires a closing keyword; #593's original
Closes #530would have closed the umbrella with stages 2-5 outstanding).Scope (the "cheap, now" deterministic lane): CI job running the skill-quality static contract gate over changed skills under
plugins/*/skills/**+ schema validation of everyevals.json, wired into the required ci-status aggregate (fail-closed, no silent skip).Delivered by PR #593. Stages 2-5 (model-graded judges, frozen regression suite, pass^k autopilot-unlock metric, clean-state isolation) remain on #530.