docs(ms-ai-architect): R11 §9.3 — idx 19 er en innsnevring, ikke en ratifikasjon; skår står på 1 av 46 [skip-docs]

Retter en overpåstand i forrige commit. §9.3 skrev "verifisert skår: 2 av 46
(idx 17 + idx 19)". Idx 19 hadde cond2 = human_must_confirm; å telle den ville
vært å forfremme en human_must_confirm til bekreftende på sjekkerens egen
autoritet — nøyaktig den retningen ratifikasjonsgaten finnes for å hindre.

Asymmetrien er poenget: idx 14, 18 og 26 var også cond2 = confirm, og der
BEKREFTET sveipet tvilen (trygg retning). Idx 19 er det ene tilfellet som ville
gått motsatt vei, og den flyttingen er ikke sveipets å gjøre.

Hele-fila-sjekken INNSNEVRER idx 19s cond2-innvending til et utelatelses-spørsmål
(misleder allerede eksisterende taushet en leser?) — det er ratifikatorens kall.
Idx 19 = sterkeste kandidat for neste ratifikasjon, ikke medlem av den
verifiserte klassen.

Skår: 1 av 46 (idx 17). Sveipet fjernet ingen og la til ingen; det korrigerte fire
rader.

Navngir også idx 36 som det andre null-leksikalsk-overlapp-funnet (grep returnerer
ingenting; linje 310 kom fra lesning) — reproduserbarhet er poenget med avsnittet.
This commit is contained in:
Kjell Tore Guttormsen 2026-08-03 20:21:55 +02:00
commit 43f0a5e4e9

View file

@ -456,7 +456,9 @@ bill on idx 8 — and silently on others.
**The grep is necessary and not sufficient.** Two of the findings below have no
lexical overlap with the deleted tokens at all. Idx 14's surviving claim is the
Norwegian `automatisk` restating a deleted English `Automatically`; no token
search finds it. Every candidate was therefore also read in place — the enclosing
search finds it. Idx 36's deleted `indiscriminate` appears nowhere else in its
file — the grep returns nothing at all — and the finding at line 310 came from
reading the section, not from a hit. Every candidate was therefore also read in place — the enclosing
section around `real_line`, plus every hit line with context — and asked the
second question the grep cannot: *does the surviving text now claim something
broader or narrower than before, and does anything else in the file depend on the
@ -525,18 +527,27 @@ without the remainder becoming false:
acceptable, or whether 310 needs the same qualifier, is a judgement about the
file — and a companion edit at 310 exceeds the single-locator O2 envelope.
**What this does to the score.** The sweep settles the whole-file dimension of
cond 2 for all 15: affirmative for 9, negative for 4, operator for 2. It settles
nothing about cond 3, which stands at `human_must_confirm` for ten of them. Only
one candidate moves into the both-conditions-affirmative class: **idx 19**, whose
cond-2 doubt was itself whole-file-shaped (the classifier worried that the
preceding code sample's silence about explicit vector indexes might read as "no
setup needed") and whose cond 3 the classifier already marked `yes`. The silence
predates the deletion, and the deletion removes an affirmative false claim, so the
remainder asserts nothing the file denies.
**What this does to the score — nothing, and that is deliberate.** The sweep
settles the whole-file dimension of cond 2 for all 15: affirmative for 9, negative
for 4, operator for 2. It settles nothing about cond 3, which stands at
`human_must_confirm` for ten of them.
**Verified score: 2 of 46 — idx 17 and idx 19.** Up from 1, and by a different
route than the classifier's original 2: idx 8 left the class and idx 19 entered it.
**The verified score remains 1 of 46 (idx 17).** The temptation here is idx 19,
and it should be named rather than acted on. Its cond-2 doubt was itself
whole-file-shaped — the classifier worried that the preceding code sample's
silence about explicit vector indexes might read as "no setup needed" — and its
cond 3 the classifier already marked `yes`. The whole-file check finds no
contradiction: the silence predates the deletion, and the deletion removes an
affirmative false claim. That **narrows** the objection; it does not resolve it.
What is left is an omission judgement — does pre-existing silence mislead a reader
of this file? — and that is the ratifier's call, not the sweep's. Counting idx 19
would mean promoting a `human_must_confirm` to affirmative on the checker's own
authority, which is the one direction this gate exists to prevent. Note the
asymmetry: idx 14, 18 and 26 were also `cond2 = confirm`, and for those the sweep
*confirmed* the doubt. Moving a candidate the other way is not the sweep's to do.
**Idx 19 is therefore the strongest new candidate for ratification** — not a
member of the verified class.
**What the sweep says about the method.** The classifier's cond-2 column was
wrong in one direction only. Of the eleven candidates it marked `cond 2 = yes`,
@ -655,10 +666,12 @@ which overrides it:
without the remainder becoming false.
- **Clean on the whole-file dimension:** idx 7, 9, 17, 19, 28, 31, 38, 40, 42, 45.
Cond 3 is still `human_must_confirm` for most of them; clean here means cond 2
only.
only. **Idx 19 is a narrowing, not a resolution** — its cond 2 stands at
`human_must_confirm`, with the residual reduced to an omission question (§9.3).
**The verified score is 2 of 46 — idx 17 and idx 19**, not the classifier's
original 2 (idx 8 left the class, idx 19 entered it).
**The verified score remains 1 of 46 — idx 17 alone.** The sweep removed no
member and added none; it corrected four rows and left idx 19 as the strongest
candidate for the next ratification.
Reproduce the tally and the machine checks:
`node scripts/kb-eval/check-o2-returns.mjs`.