1
0
Fork 0

docs(plan): V1 §4.2 — pin + id + sitering avgjort, og ratifiseringsgaten funnet

llm-ingestion-okf svarte på pin-forespørselen. Tre ting falt på plass, og ett
premiss i §4.1 viste seg for svakt. Grunnlaget står ordrett uendret; §4.2 er
status, ikke omskriving.

PINNEN: 2504011 (v0.2-fiksturen, pushet til open/llm-ingestion-okf). Sagt
eksplisitt som pin — skillet mot de siterte refene 6f42c10/ed08ac1 holdt.
Deres v0.2-fikstur bar O2-formen allerede fra c90171d; ført som DERES måling.

<fast id> = process:okf-ingest (operatøren). Okfs eget forslag. De foreslo
først process:llm-ingestion-okf og argumenterte samtidig mot den. Riktig, og
strengere enn de kunne se: :8-9 gjør prosaen framework-nøytral ved regel, og
:7-8 krever at specen kan implementeres «from this spec alone». Å normere
produsentens repo-navn ville tvunget enhver annen konform implementasjon til å
skrive det navnet i sin egen output.
- Forbehold ført eksplisitt: §11-seamen :282 («names a concrete agent toolkit»)
  treffer IKKE ordrett, siden okf er en ingest-impl. og ikke en agent-toolkit.
  Utelukkelsen hviler på :7-8. Raden er ikke ført sterkere enn den bærer.

SITERINGEN ER IKKE NORMATIV — formen er usitert. Fjerde gang et spørsmål som
så åpent ut var avgjort av frossen tekst (etter D-B, :29-vs-O1 og :158):
method-spec.md:90 parser frontmatter «line-oriented as key: value STRINGS»,
frossen siden 7d2b46c. Vi parser ikke YAML, så et anførselstegn er et tegn i
verdien — ikke syntaks en parser fjerner. Målt bekreftelse: v0.3.2s port
sammenligner mot strengen "true". Oppstrøms er selv usitert med kolon i
verdien (by: human:jsmith@acme).

KORREKSJON AV §4.1 — pin var ikke den siste gaten:
- §4.1 skrev «ingen frossen tekst endres før okf er pinnet». Nødvendig, ikke
  tilstrekkelig — lest alene ville den hjemlet å skrive de 5 linjene nå.
- Avstemt tekst sier noe annet: amendment-underlag :495-496, «operatøren
  ratifiserer, og frossen tekst endres ikke uten den ratifiseringen».
- Køens rad 8 er B1/D4. V1 står ennå ikke i køen, slik §8 alltid har sagt.
- B1 er ikke presedens for det motsatte: 8a7d430 rørte README (katalog, ikke
  kontrakt) og to planfiler — null normative filer.
- ingest-spec.md står uendret på bfa5a9b; de 5 linjene (:34 :70 :82 :214 :275)
  bærer fortsatt literal `generated: true`. Verifisert, ikke antatt.

Varsel sendt til okf: id + siteringsform vedtatt, og et eksplisitt IKKE
REGENERER ENNÅ — regenerering mot ikke-ratifisert tekst ville pekt fasiten
deres på en spec som ikke finnes. Varslingsplikten ved faktisk tekstendring
står fortsatt live.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MoxUwRsiaKcCCGUG3VCqoy
This commit is contained in:
Kjell Tore Guttormsen 2026-07-31 17:43:51 +02:00
commit ef31ddabac

View file

@ -199,6 +199,71 @@ skal bære. O2 fastslår formen (`process:<id>`, som v0.2 §7 eksplisitt tillate
navngir prosessen specen definerer. Selve id-en er en redaksjonell avgjørelse som tas når
kontraktslinjene skrives, og bør avklares med `llm-ingestion-okf` i samme runde som pinnen.
### 4.2 Pinnen, id-en og siteringen — avgjort 2026-07-31 (økt 4)
`llm-ingestion-okf` svarte samme dag. Tre ting falt på plass, og ett premiss i §4.1 viste seg
for svakt formulert. Grunnlaget over står ordrett uendret; dette er status, ikke omskriving.
**Pinnen foreligger: `2504011`** — «feat(okf-v0.2): D5 — the v0.2 golden fixture, with
`okf_version` in root frontmatter», pushet til `open/llm-ingestion-okf`. Det er en PIN, sagt
eksplisitt som sådan. `6f42c10`/`ed08ac1` var siterte refs; skillet holdt.
**Deres v0.2-fikstur var aldri rammet, og det er målt, ikke antatt.** Den bar O2-formen fra
`c90171d` (07-27), vedtatt uavhengig av oss. Vår varsling traff et annet sett: de fire
DEFAULT-profil-fasitene (`ingest-golden-{file,sql,http}`, alle `:8`), som er VÅRT lag å endre.
**`<fast id>` = `process:okf-ingest`** (operatøren, 2026-07-31). Okfs eget forslag. De foreslo
først `process:llm-ingestion-okf` og argumenterte samtidig mot den — riktig, og strengere enn
de kunne se herfra:
| Kilde | Ordrett | Frossen siden |
|---|---|---|
| `ingest-spec.md:8-9` | «The prose is framework-neutral by rule: it never names a concrete agent toolkit or vendor stack, and a guard test keeps it that way» | `7aa53fc` (07-03) |
| `ingest-spec.md:7-8` | «implemented **from this spec alone** — without reverse-engineering any existing implementation» | `7aa53fc` |
| `ingest-spec.md:282` (§11-seam «Spec integrity») | «this spec goes missing, **names a concrete agent toolkit**, or stops documenting a contract field» | `7aa53fc` |
**Presisjonsforbehold, så raden ikke føres for sterkt:** `llm-ingestion-okf` er en
ingest-implementasjon, ikke strengt tatt en «agent toolkit» — `:282` treffer derfor ikke
ordrett. Det er `:7-8` som treffer uten tolkningsrom: å normere produsentens repo-navn ville
tvunget enhver annen konform implementasjon til å skrive det navnet i sin egen output. Samme
klasse som `:29` tvang O1 ut på, bare svakere. **Utelukkelsen holder, men på `:7-8`, ikke `:282`.**
**Siteringen er IKKE normativ — formen er usitert.** Okf spurte om anførselstegnene i
`by: "process:<fast id>"` var normative eller illustrative. **Spørsmålet er avgjort av frossen
tekst — fjerde gang** (etter D-B, `:29`-vs-O1 og `:158`):
- `method-spec.md:90` (frossen `7d2b46c`, 07-03): «Frontmatter is the leading `---`-delimited
block, **parsed line-oriented as `key: value` strings**».
- Vi parser altså ikke YAML. Verdien ER den rå teksten etter `key: `. Det finnes ingen
transparent sitering i formatet: et anførselstegn er **et tegn i verdien**, ikke syntaks som
en parser fjerner. Normert sitat ⇒ predikatet måtte matchet anførselstegnene som datainnhold.
- Målt bekreftelse: v0.3.2s port sammenligner mot **strengen** `"true"` (§3.1 `:100`), ikke mot
en boolean — nøyaktig fordi parsingen er line-oriented.
- Oppstrøms er selv usitert **med kolon i verdien**: `by: human:jsmith@acme` (§3s empiri).
Kanonisk form, vedtatt: `generated: { by: process:okf-ingest, at: <ingested_at> }`
**⛔ KORREKSJON av §4.1: pin var ikke den siste gaten.** §4.1 skrev «Ingen frossen tekst endres
før `llm-ingestion-okf` er pinnet til en commit». Det er en nødvendig, ikke tilstrekkelig
betingelse, og formuleringen ville — lest alene — hjemlet å skrive de 5 linjene nå. Den er
korrigert av avstemt tekst i søsterunderlaget:
> `2026-07-25-amendment-underlag.md:495-496` — «vi forbereder underlaget, **operatøren
> ratifiserer**, og **frossen tekst endres ikke uten den ratifiseringen**»
Køens rad 8 er B1/D4 — **V1 står ennå ikke i køen**, slik §8 alltid har sagt («V1 er punkt
nummer 8 *hvis den ratifiseres*»). Pin + id lukket gaten for at V1 kan gå I KØ; ratifiseringen
er en separat, operatør-eid handling, og amendment-pakken er på bevisst hold. **`ingest-spec.md`
står uendret på `bfa5a9b`; de 5 linjene bærer fortsatt literal `generated: true`.**
**B1 er ikke presedens for det motsatte:** `8a7d430` rørte `README.md` («katalog, ikke
kontrakt») og to planfiler — null normative filer. Commit-meldingen sier det selv om V1: «Ingen
frossen tekst er rørt.»
**Varslet til okf er sendt** (07-31, som svar på pinnen): id + siteringsform vedtatt, og et
eksplisitt **ikke regenerer ennå** — regenerering mot ikke-ratifisert tekst ville pekt fasiten
deres på en spec som ikke finnes. Varslingsplikten ved faktisk tekstendring står fortsatt live.
## 5. Opsjonene, med målt kostnad
Kostnad er talt som **kontraktslinjer som må skrives om** av de 7 (`:34`, `:70`, `:82`, `:152`,
@ -629,3 +694,22 @@ line-oriented-krav, og `ingest_manifest` som stempelets andre halvdel. Ingen ops
| …altså ÉN commit bak, ikke to | `git rev-list --count 7aa53fc..HEAD -- ingest-spec.md` | **1** (`bfa5a9b`) |
| MCP-ankeret finnes i den pinnede kopien | `git show 7aa53fc:ingest-spec.md \| grep -n "An MCP-based"` | `:101` — S2.2/S2.4-ugatingen henger ikke på en pull |
| `:112-114` hos konsumenten er IKKE tomt | `git show 7aa53fc:ingest-spec.md \| sed -n '112,114p'` | felt-tabellen: `id` / `title` / `query` (`okf_type`/`max_rows` er `:115-116`) |
**Tilført 2026-07-31 (økt 4 — pin, id, sitering, ratifiseringsgaten):**
| Påstand | Sjekk | Resultat |
|---|---|---|
| Frontmatter parses som STRENGER, ikke YAML | `method-spec.md:90` | «parsed line-oriented as `key: value` **strings**» — derav er sitering datainnhold, ikke syntaks |
| …og har vært frossen hele veien | `git log -1 -S 'parsed line-oriented as' -- method-spec.md` | `7d2b46c` (2026-07-03) — eldste spec-commit |
| Prosaen er framework-nøytral ved regel | `ingest-spec.md:8-9` | «never names a concrete agent toolkit or vendor stack, and a guard test keeps it that way» |
| …håndhevet som §11-seam | `ingest-spec.md:282` | «Spec integrity \| this spec … names a concrete agent toolkit …» |
| …men `:282` treffer ikke okf ordrett | lesning: okf er ingest-impl., ikke «agent toolkit» | **utelukkelsen hviler på `:7-8`**, ikke `:282` — ført som forbehold, ikke som treff |
| Commons har fortsatt INGEN aktørkonvensjon | `grep -n "human:\|process:\|by: " ingest-spec.md method-spec.md CONCEPT.md \| wc -l` | **0** (uendret fra 07-27) |
| Spec-en kaller laget «ingest», prosessen «materialization» | `grep -io 'materializ[a-z]*' ingest-spec.md \| wc -l` + `:1`, `:18`, `:28` | 27 forekomster; tittel + §1 bruker «Ingest» som lagets navn → `okf-ingest` |
| `ingest-spec.md` er URØRT | `git log --oneline -2 -- ingest-spec.md` | `bfa5a9b`, forrige `7aa53fc` — ingen commit i økt 3 eller 4 |
| De 5 linjene bærer fortsatt literalen | `sed -n '34p;70p;82p;214p;275p' ingest-spec.md` | alle fem bærer `generated: true` ordrett |
| Frossen tekst krever RATIFISERING, ikke bare pin | `2026-07-25-amendment-underlag.md:495-496` | «operatøren ratifiserer, og frossen tekst endres ikke uten den ratifiseringen» |
| V1 står ikke i køen | samme fil §9, rad 8 | rad 8 = **B1/D4**, ikke V1 — uendret fra 07-27 |
| B1 rørte ingen normativ fil | `git show 8a7d430 --name-only` | `README.md` + 2 planfiler; **0** normative filer |
| Pinnen er en pin, ikke en ref | okf-melding 07-31, `2504011` | sagt eksplisitt som pin; skillet fra `6f42c10`/`ed08ac1` holdt |
| Deres v0.2-fikstur bar O2-formen allerede | okfs måling, `c90171d` (07-27) | **ført som DERES**, ikke reprodusert her |