feat(ms-ai-architect): Spor D Steg C — skill-quality SessionStart-surfacing (TDD) [skip-docs]

summarizeSkillQuality(cache) (pure) in detection-schedule.mjs: one-liner
"Skill-kvalitet: N skills < 90 % (navn)"; null when all skills meet target,
when the cache is missing (gitignored → absent in a fresh clone), or when the
shape is malformed. Reads the CACHED skill-score-report.json (from Steg B) —
never scores live (buildReport reads ~400 ref-files). Wired into
session-start-context.mjs after the course-signals block (same
existsSync/try-catch pattern). 7 new tests (kb-update 316 → 323).

[skip-docs]: README is the public end-user doc; skill-quality scoring is
maintainer-only tooling (the cache is gitignored, so the signal never surfaces
for end-users). The right doc homes ARE updated: CLAUDE.md hook table + a
caveat note (this commit), and docs/skill-quality-scoring-plan.md §3 komponent 4.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-06-23 18:38:35 +02:00
commit 97ebcd737a
4 changed files with 156 additions and 1 deletions

View file

@ -104,9 +104,17 @@ Se `references/architecture/recommended-mcp-servers.md` for detaljer.
| Event | Script | Formål |
|-------|--------|--------|
| SessionStart | `session-start-context.mjs` | Viser aktive utredninger, KB-ferskhet, onboarding-status, skill- + kurs-signaler (Spor C) + AI Act-frister |
| SessionStart | `session-start-context.mjs` | Viser aktive utredninger, KB-ferskhet, onboarding-status, skill- + kurs-signaler (Spor C), skill-kvalitetssignaler (Spor D — skills under 90 %, fra cachet score-rapport) + AI Act-frister |
| Stop | `stop-assessment-reminder.mjs` | Påminnelse om ucommittede vurderinger, neste steg |
> Skill-kvalitetssignalet (Spor D) leser den **cachede** rapporten
> `scripts/kb-eval/data/skill-score-report.json` og scorer aldri live
> (buildReport leser ~400 ref-filer — for dyrt i en SessionStart-hook).
> Cachen er gitignored (derivert/regenererbar via `score-skill.mjs --write`),
> så den er fraværende i en fersk klon: linja surfacer kun for en vedlikeholder
> som har produsert cachen lokalt, aldri for en sluttbruker. Alle skills ≥90 %
> ⇒ ingen linje.
> Secrets scanning consolidated to llm-security plugin.
## Reference docs (read on demand)