feat(ms-ai-architect): Spor 3 Port 3 (rapporterende gulv) — KB-tillit-signal i SessionStart [skip-docs]
Det rapporterende gulvet (§4 Port 3, P3b): SessionStart-hooken surfacer en KB-tillit-énlinjer fra cachet verified-staleness-report.json. Et GULV, ikke en gate (§4c — unngå alarm-tretthet på 84 %-signal). summarizeTrustFreshness (detection-schedule.mjs, ren, speiler summarizeSkillQuality): surfacer KUN drift (stale-since-verified) + kontraktbrudd (unverified) — det handlingsbare «bekreft mot kilde»-settet. unmigrated (Spor-1-backlog, 306 i dag) ekskluderes bevisst: ved det volumet ville det fyre hver økt og bli støy; migrerings-censusen hører i CT5 (P3c). Tolererer manglende/malformed cache → null (gitignored, fraværende i fersk klon, krasjer aldri hooken). session-start-context.mjs: leser cachen read-only (samme mønster som skill-quality-blokken), dytter linjen når den finnes. Ende-til-ende verifisert: injisert stale-rapport → «KB-tillit: 3 filer driftet siden verifisering, 1 uverifisert — bekreft mot kilde (aldri auto-fiks)»; ekte korpus (306 unmigrated) → taus (ingen falsk alarm). TDD (Iron Law): 8 nye tester. Suite 612/612. Plugin-validering PASS.
This commit is contained in:
parent
fea5df5e68
commit
08e7e72c62
3 changed files with 116 additions and 0 deletions
|
|
@ -12,6 +12,7 @@ import {
|
|||
summarizeSkillLifecycle,
|
||||
summarizeCourses,
|
||||
summarizeSkillQuality,
|
||||
summarizeTrustFreshness,
|
||||
} from '../../scripts/kb-update/lib/detection-schedule.mjs';
|
||||
import {
|
||||
resolveOrgDir,
|
||||
|
|
@ -219,6 +220,21 @@ if (existsSync(scoreCachePath)) {
|
|||
}
|
||||
}
|
||||
|
||||
// KB-trust reporting floor (Spor 3 Port 3 / P3b) — read-only one-liner; never
|
||||
// judges live. Reads the CACHED verified-staleness-report.json (written by
|
||||
// report-verified-staleness.mjs on the KB-refresh cadence). Gitignored => absent
|
||||
// in a fresh clone; summarizeTrustFreshness tolerates the missing/malformed case
|
||||
// → null. Surfaces only drift + contract breaches (§4c — a floor, not a gate).
|
||||
const stalenessCachePath = join(pluginRoot, 'scripts', 'kb-update', 'data', 'verified-staleness-report.json');
|
||||
if (existsSync(stalenessCachePath)) {
|
||||
try {
|
||||
const trustSummary = summarizeTrustFreshness(JSON.parse(readFileSync(stalenessCachePath, 'utf8')));
|
||||
if (trustSummary) parts.push(trustSummary);
|
||||
} catch {
|
||||
// Ignore — advisory only
|
||||
}
|
||||
}
|
||||
|
||||
if (nearestDeadline) {
|
||||
parts.push(`EU AI Act: ${nearestDeadline.daysLeft} dager til ${nearestDeadline.label}. Kjør /architect:classify`);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue