fix(okr): SKILL.md untrusted-content-herding + kilde-rangering mot RAG-poisoning

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-07-17 03:15:30 +02:00
commit 0fcc88430c
2 changed files with 61 additions and 2 deletions

View file

@ -129,3 +129,24 @@ test('robusthet: ukjent type parses uten kast, retrieval treffer fortsatt', () =
const hits = retrieve(REALISTIC, 'arbeidsnotat');
assert.equal(rel(REALISTIC, hits[0].path), 'dokumenter/notat.md');
});
// (e) SIKKERHET B4 (release-blocker 1.7.0): SKILL.md skal baere untrusted-
// envelope-instruksen for hentet innhold (RAG-poisoning, EchoLeak-klasse).
// Grep-pin av noekkelfraser: etterlevelsen er modell-jobb, men instruksen
// som styrer modellen er en fil-invariant denne testen holder i live.
test('sikkerhet (B4): SKILL.md baerer untrusted-envelope for hentet innhold', () => {
const skillPath = join(HERE, '..', 'skills', 'okr-second-brain-search', 'SKILL.md');
const skill = readFileSync(skillPath, 'utf8');
assert.match(skill, /untrusted/i,
'hentet konsept-body skal deklareres som untrusted data');
assert.match(skill, /never follow instructions/i,
'skal forby aa foelge instruksjoner i hentet innhold');
assert.match(skill, /never emit external links/i,
'skal forby aa emitte eksterne lenker/citations fra hentet innhold');
assert.match(skill, /one concept at a time/i,
'skal kreve ett-konsept-om-gangen-lesing');
assert.match(skill, /kilde:\s*innboks/i,
'skal navngi provenans-markoeren kilde: innboks');
assert.match(skill, /below .{0,40}curated/i,
'skal rangere kilde: innboks under kuraterte konsepter');
});