7.5 KiB
V1-etterspill — krever generated.by / generated.at egne rader i §12?
Status: UNDERLAG, ikke ratifisert. Ingen frossen tekst er endret på dette punktet. Funnet under utførelsen av V1 (
54e0ec7, 2026-08-09). V1 selv er ratifisert og utført; dette er en spenning utførelsen avdekket, ikke en del av vedtaket.Beslektet:
2026-07-26-v1-generated-felt-okf-v0.2.md(V1-vedtaket),2026-08-02-ss11-mangler-rad-for-ss8.md(samme klasse: intern spenning i frossen tekst).
1. Funnet
O2 gjør generated om fra en literal til en inline mapping med to navngitte undernøkler:
generated: { by: process:okf-ingest, at: <ingested_at> }
§12s kryssjekk-tabell bærer fortsatt én rad for generated (| generated | provenance frontmatter | §3, §7 |). Spørsmålet er om by og at skal ha egne rader.
To setninger i frossen tekst gjør dette til mer enn kosmetikk:
§12, ingressen — «Every field of the machine-readable contracts, mapped to its normative section (completeness is enforced by the spec-integrity test)»
§11, søm «Spec integrity» — «this spec goes missing, names a concrete agent toolkit, or stops documenting a contract field»
§12 er altså ikke en bekvemmelighetstabell. Den står under en load-bearing søm.
2. Presedensen i vår egen tekst — målt begge veier
Dette er poenget som avgjør, og det peker ikke én vei før man skiller aksene.
Presedens FOR egne rader — source:
source er et strukturert kontraktsfelt med navngitte undernøkler. §12 gir det både en
toppnivå-rad og en rad per undernøkkel:
| Rad i §12 | Hva den er |
|---|---|
source |
toppnivå-feltet, «polymorphic on source.type» |
type |
undernøkkel (diskriminator) |
id |
undernøkkel (felles) |
root |
undernøkkel, kun type: "file" |
connection_ref |
undernøkkel, kun type: "sql" |
base_url |
undernøkkel, kun type: "http" |
credential_ref |
undernøkkel, kun type: "http", valgfri |
Merk at undernøklene er definert i prosa i §4 (punktlisten), ikke i §4s tabell — men de får likevel egne rader i §12. Tabell-plassering i §4 avgjør altså ikke §12-plikten.
Presedens MOT egne rader — ingest_manifest:
ingest_manifest har intern struktur ({stem}@{hash16}, §5) og får nøyaktig én rad. Struktur
inne i en verdi utløser altså ikke automatisk rader.
Aksen som skiller dem:
| Felt | Intern struktur er… | Egne rader? |
|---|---|---|
source |
navngitte nøkler i en mapping | ja (4 undernøkler + felles) |
ingest_manifest |
et strengformat med posisjonelle deler | nei |
generated (etter O2) |
navngitte nøkler i en mapping | åpent — men faller på source-siden |
generated: { by, at } er en mapping med navngitte nøkler. På den målte aksen ligner den
source, ikke ingest_manifest.
3. Hvorfor V1-vedtaket ikke fanget dette
2026-07-26-v1-generated-felt-okf-v0.2.md:161 sier: «:152 og :309 navngir bare nøkkelen og
overlever.»
Den påstanden er sann om den eksisterende raden — raden heter fortsatt generated, ligger
fortsatt i provenance-frontmatter, og peker fortsatt på §3/§7. Ingenting ved raden ble usant.
Den er taus om de to NYE nøklene. Kostnaden ble talt som «kontraktslinjer som må skrives
om» (§5) — en omskrivings-akse. Rader som må tilføyes er en annen akse, og den ble aldri
stilt. Dette er ikke en feil i ratifiseringen; det er et hull i dens scope-formulering. Samme
klasse som «de 5 linjene var ikke homogene» og «:214 er ikke en literal»: kostnadstellingen var
riktig på sin egen akse og blind for en nabo-akse.
4. Er sømmen rød i dag? Nei — og det er grunnen til at dette ikke haster
§11-sømmens ordlyd er «stops documenting a contract field». §7s omskrevne feltrad
dokumenterer begge undernøklene ordrett — den navngir by, fastslår at det er en
process:-aktør, navngir at, og binder den til ingested_at. Specen har altså ikke sluttet å
dokumentere noe.
Eksponeringen er mot §12s egen ingress («every field … mapped to its normative section»), som er en fullstendighets-påstand om tabellen. Det er en svakere binding enn sømmens ordlyd.
Konsekvens: ingen kjent implementasjon går rød av dagens tilstand. Dette er en intern spenning, ikke en defekt i drift.
5. Opsjoner (ingen anbefaling — operatøren ratifiserer)
| Hva | Kostnad | Hva den koster i konformans | |
|---|---|---|---|
| O-A | Tilføy to rader i §12 (by, at → §7) |
2 linjer, ren prosa | Utvider hva §12 påstår fullstendighet over. Ingen fixture-endring, ingen konsument-kostnad. |
| O-B | La §12 stå, men snevre ingressen til «every top-level field» | 1 linje | Gjør dagens tilstand eksplisitt konform. Men svekker en påstand source-radene allerede motsier. |
| O-C | La alt stå | 0 | Spenningen består, udokumentert. |
O-B har en målt selvmotsigelse: root/connection_ref/base_url/credential_ref er ikke
toppnivå-felter og står allerede i tabellen. En «top-level»-innsnevring ville gjort fire
eksisterende rader uhjemlede. Det er ikke et argument mot O-B, men det må løses samtidig.
Konsument-måling mottatt 2026-08-09 (portfolio-optimiser-claude, ført som DERES): deres
§12-vakt keyer på at radens første kolonne er ordrett | generated |. Konsekvensen skiller
skarpt mellom to former som ellers leser likt:
| Form | Konsekvens hos dem (deres måling) |
|---|---|
TILFØYE rader for by/at (= O-A) |
ingen — vakten er urørt |
ERSTATTE generated-raden med to undernøkkel-rader |
vakten går RØD, by design (den skal fange at en rad forsvinner) |
To ting følger. (1) O-A-radens «ingen konsument-kostnad» er nå målt utenfra, ikke bare antatt av oss. (2) Erstatnings-formen er en fjerde opsjon underlaget ikke listet, og den er den eneste som koster en konsument en samtidig endring. De ber ikke om noe; de opplyser.
6. Et separat, mindre funn fra samme utførelse
generated.at gjentar verdien av ingested_at, som er sitt eget felt i samme
frontmatter-prefiks (§5s sju nøkler; §7s tabell). Etter O2 bærer et stemplet dokument altså
samme tidsstempel to steder.
Dette er en følge av den ratifiserte formen, ikke en feil i utførelsen — v0.2s generated
tar at som påkrevd del av mappingen, og §1s premiss («der at finnes, bindes den til
ingested_at») er innfridd nøyaktig som vedtatt. Ført her fordi det er den slags redundans som
senere leses som drift hvis ingen skrev ned at den var tilsiktet.
Ikke oppe til vurdering her. En eventuell konsolidering ville rørt §5s ordnede prefiks, som er en helt annen og dyrere sak.
7. Ankere re-målt (2026-08-09, etter 54e0ec7)
Utførelsen flyttet tre av våre egne ankere. Ført ordrett, ikke som linjenumre:
| Sted | Seksjon | Status |
|---|---|---|
| Honesty rule | §1 | omskrevet — «generated.by naming the ingest actor» |
| Ingest owns only its own files | §3 | omskrevet — «generated.by equal to the ingest actor» |
| No other writer may forge the stamp | §3 | omskrevet — samme gjengivelse |
Feltraden for generated |
§7 | omskrevet, definerer begge undernøkler |
| Load-bearing «Stamp integrity (curated writers)» | §11 | omskrevet — aktør-spesifikt predikat |
| Frontmatter-prefikset (sju nøkler) | §5 | uendret — navngir bare nøkkelen |
Kryssjekk-raden for generated |
§12 | uendret — dette dokumentets tema |
generated: true finnes ikke lenger i specen (verifisert med grep).