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>
This commit is contained in:
parent
ff7b9b7c73
commit
f35a22a304
3 changed files with 18 additions and 9 deletions
13
CHANGELOG.md
13
CHANGELOG.md
|
|
@ -28,8 +28,10 @@ affected by this file.
|
|||
relaxation of it. A single mapping normalises to a one-element tuple, so one source and
|
||||
several sources read the same way and last-write-wins never arises. Rationale, measured:
|
||||
line-oriented parsing carries one value per key, so a multi-source concept written as a block
|
||||
list loses every entry but one *silently*; on the reference corpus 2026-09-01, **2 of 5 keys
|
||||
were carried on a single source**. Added the matching `sources` row to §12.
|
||||
list loses every entry but one *silently*. The supporting figure — 2 of 5 keys on a single
|
||||
source, reference corpus 2026-09-01 — is **the commissioning order's measurement, reported as
|
||||
theirs**, not one this repository made; the mechanism carries A1 without it. Added the matching
|
||||
`sources` row to §12.
|
||||
- **Axis note, in the spec:** A1 binds **emission**. It does not reclassify a block list as
|
||||
malformed OKF, and the reference consumer's own decoder is quoted verbatim saying it is
|
||||
conformant-but-outside-the-accepted-subset.
|
||||
|
|
@ -48,8 +50,11 @@ affected by this file.
|
|||
`(state, reason, items_seen)` and **discounted, never rejected**), and the rule that a
|
||||
refutation naming no refuter is not a refutation.
|
||||
[`references/example-evidence.json`](skills/falsification-reviewer/references/example-evidence.json)
|
||||
carries the frontmatter verbatim, so the form question A1 settles is decidable from the
|
||||
example itself.
|
||||
carries the frontmatter **verbatim and authoritative** (the line-oriented `frontmatter`
|
||||
projection beside it is informative and by construction cannot hold a block form), so the form
|
||||
question A1 settles is decidable from the example itself. The worked example returns
|
||||
`undecided`, not `survived`: the one concept that could have carried a refutation was
|
||||
unreadable, and a claim that was never attacked has not survived.
|
||||
|
||||
## [0.1.0] - 2026-08-17
|
||||
|
||||
|
|
|
|||
|
|
@ -121,9 +121,11 @@ it) into the prompt:
|
|||
**Informative note — what A1 fixes, and the axis it does not speak on.** The form was pinned
|
||||
because line-oriented `key: value` has exactly one value per key, so a multi-source concept
|
||||
written as a block list loses every entry but one, silently — the failure mode a consumer
|
||||
cannot detect after the fact. Measured 2026-09-01 on the reference corpus: **2 of 5 keys were
|
||||
carried on a single source**, which is a ceiling on how far a claim can be corroborated, not
|
||||
a property of the material. A1 binds **emission** — what a producer MUST write. It does not
|
||||
cannot detect after the fact. The amendment also carries a figure this repository did not
|
||||
measure and reports as its author's: the order that commissioned A1 states, of the reference
|
||||
corpus on 2026-09-01, *"K5-taket målt 01.09: 2 av 5 nøkler på ÉN kilde"* — a ceiling on how far
|
||||
a claim can be corroborated rather than a property of the material. The mechanism above carries
|
||||
A1 on its own; the figure is support, not the ground. A1 binds **emission** — what a producer MUST write. It does not
|
||||
say a block list is malformed as such: a consumer's own decoder is entitled to accept a
|
||||
narrower subset than it is handed, and the reference consumer records exactly that of its
|
||||
accepted subset — *"A block sequence and a block mapping are both **conformant** OKF; they
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
{
|
||||
"claim": "Trinnstyring i innkjoeringssonen gir 18 % lavere energibruk enn dagens fastnivaa.",
|
||||
"judgement": "survived",
|
||||
"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",
|
||||
|
|
@ -45,7 +47,7 @@
|
|||
"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": "Had tiltak-trinnstyring-innkjoringssone held, its 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.",
|
||||
"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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue