Merge commit '89e3ad8efe'
This commit is contained in:
commit
c4cf448e95
11 changed files with 773 additions and 56 deletions
|
|
@ -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,88 @@ 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 er urørte — men bærer IKKE samme form | `grep -n '\`generated' ingest-spec.md` | **4 av 5** bærer `generated: true` ordrett (`:34`, `:70`, `:82`, `:275`). `:214` er §7-feltradstabellens rad («\`generated\` … Literally \`true\` — the machine-generated marker») og bærer ikke literalen. Se raden under |
|
||||
| …og `:214` er derfor IKKE en strengerstatning | O2-formen (`generated: { by: …, at: … }`) vs. radens «Literally `true`» | raden **beskriver feltets verdi**. Under O2 er verdien et objekt med `by`/`at`, så raden må skrives om (evt. splittes), ikke søk-og-erstattes. **Egen redigering, samme amendment** |
|
||||
| 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 |
|
||||
|
||||
**Korreksjon 2026-07-31 (økt 6) — «de 5 linjene» er ikke homogene.** Raden «De 5 linjene bærer
|
||||
fortsatt literalen» påsto at alle fem bar `generated: true` ordrett. Det er feil, og planen
|
||||
motsa seg selv: §5.1 fører `:214` korrekt opp som «Literally `true`»-raden, og
|
||||
verifiseringstabellens egen `grep -n '\`generated'`-rad lister `:214` blant de 7 uten å skille
|
||||
form. Målt nå: `grep -n 'generated: true' ingest-spec.md` gir **4** treff (`:34`, `:70`, `:82`,
|
||||
`:275`) — ikke 5.
|
||||
|
||||
Feilen var arvet ordrett inn i `STATE.md`s NESTE-blokk («skriv om de 5 kontraktslinjene … fra
|
||||
literal `generated: true`»). Konsekvensen er ikke kosmetisk: en økt som utfører V1 mekanisk
|
||||
etter den formuleringen finner 4 av 5 treff og står igjen med to like sannsynlige feiltolkninger
|
||||
— (a) drift i frossen tekst, eller (b) `:214` hoppes over, som etterlater **ærlighetsmarkørens
|
||||
§7-halvdel** (§3s ærlighetsmarkør-rad: «§1 `:34`, §7 `:214`») ukonvertert mens §1-halvdelen er
|
||||
O2. Tellingen «5 av 7» (§4.1, §5) står uendret — det var formen, ikke antallet, som var feil ført.
|
||||
|
||||
*Ingen normativ fil rørt av denne korreksjonen; `ingest-spec.md` står fortsatt på `bfa5a9b`.*
|
||||
|
||||
---
|
||||
|
||||
## 10. RATIFISERT 2026-08-02 — og en andre tabellrad som økt 6 ikke fanget
|
||||
|
||||
**Operatøren ratifiserte V1 2026-08-02**, ordrett: *«Jeg kan ta okf-kostnaden nå, men vi må
|
||||
starte i en ny sesjon.»* Utførelsen ligger dermed hos neste økt, ikke hos den som mottok
|
||||
vedtaket.
|
||||
|
||||
**Begge gater er oppløst, og den andre falt av seg selv.** okf-gaten var lukket fra før (pin
|
||||
`2504011`, økt 4). Ratifiseringsgaten er nå gitt. Den tredje betingelsen som har ligget i
|
||||
STATE — at V1 skulle vente på §9-amendment-pakken — var aldri en gate i egen rett: den var
|
||||
**batching** mot at endringen utløser `llm-ingestion-okf`s regenerering av fire DEFAULT-fasiter.
|
||||
Når operatøren tar den kostnaden nå, har batchingen ingenting å batche mot. V1 er frikoblet fra
|
||||
pakken, og S2.3 (`{type: "doc"}`, spurt `20260802T191837Z`) endrer ikke utfallet.
|
||||
|
||||
### Ankere re-målt 2026-08-02 (vår egen ferskvare-regel)
|
||||
|
||||
| Sted | Seksjon | Ordrett i dag | Behandling |
|
||||
|---|---|---|---|
|
||||
| `:34` | §1 Scope | «such (`generated: true` plus a manifest reference, §7) everywhere it is presented.» | prosa — mekanisk |
|
||||
| `:70` | §3 Layer separation | «the ingest stamp (`generated: true` plus an `ingest_manifest` reference, §7) and MUST NOT» | prosa — mekanisk |
|
||||
| `:82` | §3 Layer separation | «ownership stamp — `generated: true` together with an `ingest_manifest` reference — while» | prosa — mekanisk |
|
||||
| `:214` | §7 Provenance | «\| `generated` \| Literally `true` — the machine-generated marker (§1 honesty rule). \|» | feltrad — skriv om/splitt |
|
||||
| `:275` | §11 Load-bearing | «\| Stamp integrity (curated writers) \| … the complete ownership stamp (`generated: true` with `ingest_manifest`) stops being rejected … \|» | **rød-betingelse** |
|
||||
|
||||
### Korreksjonen: det er TO tabellrader, ikke én
|
||||
|
||||
Økt 6 korrigerte «de 5 linjene» fra homogene til 4 + 1 og pekte ut `:214`. Re-målingen viser at
|
||||
korreksjonen selv var ufullstendig: **`:275` er også en tabellrad, og den står i §11s
|
||||
load-bearing-tabell.** Det er ikke prosa som beskriver stempelet — det er en **rød-betingelse i
|
||||
konformanskontrakten**. Å endre den endrer hva en konformant implementasjon må bevise, og er
|
||||
derfor en sterkere handling enn å redigere §1- og §3-prosaen.
|
||||
|
||||
De «fire mekaniske» er i praksis **tre** (`:34`, `:70`, `:82`). `:214` og `:275` krever hver sin
|
||||
vurdering. `:152` og `:309` overlever (feltnavn, ikke literal).
|
||||
|
||||
Dette er andre gang en verifiseringsrad i denne planen påsto homogenitet som ikke fantes. Regelen
|
||||
står: **sjekk hva linjene FAKTISK bærer — og hvilken tabell de står i — før noe føres som
|
||||
mekanisk.**
|
||||
|
||||
### Varslingsplikt, utløst av utførelsen
|
||||
|
||||
Endringen utløser den lovede meldingen til `llm-ingestion-okf` — den setter i gang deres
|
||||
regenerering av de fire DEFAULT-fasitene. Den sendes i **samme økt** som tekstendringen, ikke
|
||||
senere. `portfolio-optimiser-claude` varsles samtidig; de vet ennå ikke at id-en er
|
||||
`process:okf-ingest`.
|
||||
|
||||
*`ingest-spec.md` er fortsatt urørt på `bfa5a9b` i det dette skrives.*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue