portfolio-optimiser-commons/skills/falsification-reviewer/references/example-evidence.json
Kjell Tore Guttormsen f35a22a304 fix(skills): eksempelet brøt skillens egen regel — undecided, ikke survived
Tre defekter i ff7b9b7, funnet i review. Ingen av dem ville blitt fanget av
json.tool eller framework-guardene — alle tre er semantiske.

1. example-evidence.json sa `"judgement": "survived"` samtidig som ledger-noten sa at
   det ene konseptet som kunne båret en refutasjon var UNREADABLE. SKILL.md sier
   ordrett at `undecided` er «what you return when the evidence needed to refute the
   claim was not readable». Det ene arbeidseksempelet — det en nedstrøms agent leser
   som mønsteret, og det §11-testen materialiserer — demonstrerte altså nøyaktig
   inversjonen skillen finnes for å hindre: et hull i kunnskapsbasen konvertert til
   støtte for påstanden. Rettet til `undecided` + `judgement_note` som sier hvorfor.
   Eksempelet er bedre etterpå: det er nå den utførte demonstrasjonen av tilstanden
   skillen sier leseren mest trenger å kunne skille ut.

2. De to representasjonene i eksempelet var uenige med seg selv. Konsept 2s
   `frontmatter`-dict utelater `sources` (korrekt — en blokkliste er ikke uttrykkbar
   som én `key: value`-streng), mens `frontmatter_verbatim` har den. En §11-test som
   materialiserer fra dict-en ville utledet `state: absent`, ikke `unreadable`, og
   dermed mistet nøyaktig caset eksempelet finnes for. Grønn-men-død-formen §11 er
   til for å hindre. Nytt `materialisation_note`: `frontmatter_verbatim` er
   AUTORITATIV, `frontmatter` er dens linjeorienterte projeksjon og informativ.

3. method-spec.md skrev «Measured 2026-09-01 on the reference corpus: 2 of 5 keys …»
   i commons' EGEN stemme. Commons målte det ikke. Driftsregelen er eksplisitt —
   andres målinger føres som DERES — og teksten skal til en publisert flate. Tallet
   siteres nå ordrett fra ordren som bestilte A1, attribuert dit, med en setning om
   at mekanismen bærer A1 uten det: figuren er støtte, ikke grunn. Samme i CHANGELOG.
   Merk at konvensjonen er tvetydig i kildene: PM-dommen sier «produsenten skriver 2
   av 5 noekler», ordren sier «2 av 5 nøkler på ÉN kilde» — ulike påstander. Ordrens
   ordlyd er den siterte, og at det er et sitat er nå synlig.

Verifisering re-kjørt: konsumentens _FRAMEWORK_NAMES + _FORBIDDEN over 6 filer → 0
treff (kjent-positiv PASS); 'OKF bundle' 0 i skillen; json.tool OK; Steg 1-8 + MUST
intakt. Fortsatt IKKE PUSHET — origin/main..HEAD og open/main..HEAD begge 2 etter denne.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 17:11:39 +02:00

56 lines
3.9 KiB
JSON

{
"claim": "Trinnstyring i innkjoeringssonen gir 18 % lavere energibruk enn dagens fastnivaa.",
"judgement": "undecided",
"refuter": null,
"judgement_note": "undecided, not survived. The one concept that could have carried a refutation was unreadable, so the claim was not actually attacked -- and a claim that was not attacked has not survived. Returning survived here would convert a gap in the knowledge base into support for the claim, which is the inversion this role exists to prevent.",
"materialisation_note": "frontmatter_verbatim is AUTHORITATIVE: it is the bytes a test materialises into a throwaway concept file before reading them back. frontmatter is its line-oriented projection and is informative only -- by construction it cannot carry a block form, which is why concept 2 has no sources key there. Materialising from frontmatter would derive state: absent and silently lose the unreadable case this example exists to demonstrate.",
"concepts": [
{
"concept_id": "kilder-tunnelbelysning-realisering",
"frontmatter_verbatim": "---\ntype: kilder\ntitle: Realiseringsgap ved tunnelbelysning\nverified: { by: human:aeriksen@example.org, at: 2026-08-11T09:20:00Z }\nsources: [{ id: nve-2024, resource: rapport-nve-2024.pdf, title: NVE 2024 }, { id: sintef-2023, resource: sintef-tr-a7712.pdf, title: SINTEF TR A7712 }]\nadjudication: adjudicated\n---\n",
"frontmatter": {
"type": "kilder",
"title": "Realiseringsgap ved tunnelbelysning",
"verified": "{ by: human:aeriksen@example.org, at: 2026-08-11T09:20:00Z }",
"sources": "[{ id: nve-2024, resource: rapport-nve-2024.pdf, title: NVE 2024 }, { id: sintef-2023, resource: sintef-tr-a7712.pdf, title: SINTEF TR A7712 }]",
"adjudication": "adjudicated"
},
"evidence": {
"state": "present",
"reason": null,
"items_seen": 2
},
"derived": {
"trust_tier": "human-reviewed",
"adjudication": "adjudicated"
},
"relied_on": true,
"note": "State is present and the tier is not unverified, so the verdict may rest on this concept. The tier derives as human-reviewed because the verified actor carries the human: prefix; a bare actor would have derived machine-confirmed, which also clears the threshold."
},
{
"concept_id": "tiltak-trinnstyring-innkjoringssone",
"frontmatter_verbatim": "---\ntype: tiltak\ntitle: Trinnstyring i innkjoeringssonen\nsources:\n - resource: leverandoerblad-2025.pdf\n title: Leverandoerblad 2025\n - resource: driftslogg-2025.csv\n title: Driftslogg 2025\n---\n",
"frontmatter": {
"type": "tiltak",
"title": "Trinnstyring i innkjoeringssonen"
},
"evidence": {
"state": "unreadable",
"reason": "block-sequence",
"items_seen": 2
},
"derived": {
"trust_tier": "unverified",
"adjudication": "unknown"
},
"relied_on": false,
"note": "Two independent reasons to discount, reported separately rather than merged. The sources value is written as a block list, which is not the accepted form: the state is unreadable, the shape is named, and two entries were seen. Independently, no verified key means the tier derives as unverified, and no adjudication key means unknown -- not proposed. Discounted, not rejected: the concept remains readable and its prose was read."
}
],
"ledger_note": "tiltak-trinnstyring-innkjoringssone's driftslogg entry would have been the first place to look for a refutation of the 18 % figure. It is reported as (unreadable, block-sequence, 2) rather than as absent evidence, because 'written in a form I could not read' and 'not there' point at different repairs -- and because it was unreadable rather than exhausted, the judgement is undecided rather than survived.",
"denominator": {
"concepts_considered": 7,
"concepts_consulted": 2,
"method": "navigation from the bundle index, depth-first in link order"
}
}