feat(ms-ai-architect): Spor D Steg B — skill-quality lifecycle-gate + score-cache (TDD)

B1: gateSkill(report, name) — pure post-mutation verdict (blocked/provisional/
improvements), wired into apply-skill-op.mjs to re-score the affected skill from
fresh disk after create/merge/sanitize-apply. K10 floor enforced immediately;
unjudged → provisional + nudge to re-run the judge pass. retire → skipped.

B2: buildScoreCache(result) — compact, deterministic cache shape + score-skill.mjs
--write [path] → data/skill-score-report.json (always whole-corpus). Gitignored
(derived/regenerable; avoids churn in the public repo). Consumed by Steg C surfacing.

8 new tests (tests/kb-eval/test-skill-score-gate.test.mjs). kb-eval 150 pass,
validate 239 pass. Live score unchanged: advisor 91, eng/gov/infra/sec 96, 0 < 90.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-06-23 18:26:29 +02:00
commit 92cd93771b
5 changed files with 294 additions and 3 deletions

4
.gitignore vendored
View file

@ -30,6 +30,10 @@ scripts/kb-update/data/*
# Generated skill-lifecycle detection report (Spor B / B1) — regenerated on demand,
# like the kb-update reports above. The detector script + curated inputs are tracked.
scripts/kb-eval/data/skill-lifecycle-report.json
# Generated skill-quality score cache (Spor D / STEG B) — derived from the corpus,
# regenerated by `score-skill.mjs --write` and the apply-skill-op gate. Consumed by
# the STEG C SessionStart surfacing; not committed (avoids churn in the public repo).
scripts/kb-eval/data/skill-score-report.json
.kb-backup/
.rollback-in-progress