docs(plan): D-B ankret, D-A#3s årsak er repo-avhengig, V1 utvidet med oppstrøms-evidens

Tre innkomne meldinger behandlet, alle premisser verifisert mot kilden.

amendment-underlag:
- §7.1 NY: D-B-substansen levert av portfolio-optimiser. D-B er en SCOPE-
  beslutning, ikke spec-tekst. S2.2 (mcp) + S2.3 (doc) krever kildefamilie-
  utvidelser; S2.4 trolig ingen. Den blanke raden er ikke lenger blank.
- FUNN i frossen tekst ingen har nevnt: :29-31 sier at http-typen MAY
  implementeres "via an MCP-based connector" UTEN spec-endring. Om mcp er en
  fjerde familie eller en transport under http avgjør om S2.2 er gated på oss
  i det hele tatt. Ingen stilling tatt.
- D-A#3s årsak er REPO-AVHENGIG: drift hos po-claude, målt okf.py-avvik hos
  portfolio-optimiser. Begge svarte, begge har rett om eget tre. Første utgave
  ga én universell årsak, korreksjonen ga en annen — begge for brede.

V1-underlag:
- Evidens FOR O1 tilført: oppstrøms referanseagent bruker selv
  by: reference_agent/gemini-2.5-pro. O1 er den idiomatiske, O2 det bevisste
  avviket. :29-funnet står uendret ved siden av.
- Akse-funnet empirisk bekreftet: generated: { by: human:jsmith@acme } på en
  håndskrevet fil oppstrøms → "generated finnes" kan aldri være eierskaps-
  predikat, uansett opsjon.
- §5-påstanden presisert: målt på generated ALENE. sources er blokkliste og
  bryter :158 — utenfor V1, men commons' å svare på.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XYkLsRfSBBUjULS219Fy8X
This commit is contained in:
Kjell Tore Guttormsen 2026-07-26 20:23:08 +02:00
commit e984d51a6c
2 changed files with 140 additions and 12 deletions

View file

@ -68,6 +68,17 @@ oppstrøms i noen versjon — bærer fortsatt uforfalskbarhet-mot-uhell, så ste
ikke. Men `:82`s «permitting either field alone» må omformuleres: under v0.2 vil *kurert*
innhold legitimt kunne bære en `generated`-mapping med en helt annen `by`.
> **Empirisk bekreftet 2026-07-26, ikke lenger bare utledet.** Oppstrøms skriver `generated` på
> **håndskrevet** innhold. Verifisert her:
> `generated: { by: human:jsmith@acme, at: 2024-01-15T10:00:00Z }`
> (`okf/bundles/acme_retail/metrics/gross-margin-legacy.md`, en menneskeskrevet metrikkdefinisjon).
>
> **Konsekvensen gjelder uansett hvilken opsjon som vedtas:** en implementasjon som utleder «er
> dette maskingenerert?» eller «eier vi denne fila?» fra at `generated` **finnes**, er feil under
> v0.2. Under O1/O2 må predikatet derfor være `generated.by == <vår aktør>` **og**
> `ingest_manifest` — aldri nøkkelens tilstedeværelse. Under O0 og O3 er poenget uten virkning,
> siden markøren vår da ikke deler navn med et oppstrømsfelt som brukes slik.
## 4. Spørsmålet
> Skal `generated` i ingest-spec §5/§7 forbli den literale `true`, anta v0.2-formen
@ -79,11 +90,26 @@ innhold legitimt kunne bære en `generated`-mapping med en helt annen `by`.
Kostnad er talt som **kontraktslinjer som må skrives om** av de 7 (`:34`, `:70`, `:82`, `:152`,
`:214`, `:275`, `:309`).
**Det som ikke koster noe i noen opsjon:** §5s formkrav overlever uendret. Prefikset er «OKF
line-oriented `key: value`» (`:150`) og «All values MUST be single-line» (`:158`) — v0.2s
kanoniske form for `generated` er en **inline flow mapping** på én linje, så den er single-line
og line-oriented allerede. `:153` («additional frontmatter keys MAY follow») er heller ikke i
veien. Ingen opsjon tvinger fram en rikere frontmatter-modell i *specen*.
**Det som ikke koster noe i noen opsjon:** §5s formkrav overlever uendret **for `generated`**.
Prefikset er «OKF line-oriented `key: value`» (`:150`) og «All values MUST be single-line»
(`:158`) — v0.2s kanoniske form for `generated` er en **inline flow mapping** på én linje, så den
er single-line og line-oriented allerede (verifisert oppstrøms:
`generated: { by: reference_agent/gemini-2.5-pro, at: 2026-06-30T14:00:00Z }`). `:153`
(«additional frontmatter keys MAY follow») er heller ikke i veien. Ingen opsjon tvinger fram en
rikere frontmatter-modell i *specen*.
> **Presisering 2026-07-26** (`llm-ingestion-okf`): setningen over er målt på `generated` **alene**,
> og skal ikke leses som at `:158` overlever v0.2 i sin helhet. Det gjør den ikke. `sources` —
> et annet nytt v0.2-felt — er kanonisk en **blokkliste**, verifisert oppstrøms:
> ```yaml
> sources:
> - id: margin-standard
> resource: policies/margin-standard.md
> author: human:jsmith@acme
> ```
> Den formen bryter `:158` direkte. Det er **utenfor V1**, som bare gjelder `generated`, og
> DEFAULT-profilen emitterer ikke `sources` — men det er et reelt §5-spørsmål den dagen noen vil
> emittere v0.2s øvrige felter, og det er commons' å svare på. Ikke i køen, ikke meldt videre.
### O0 — la `generated: true` stå, dokumentér avviket
@ -106,6 +132,17 @@ og overlever.
**Denne opsjonen kolliderer med en eksisterende normativ setning — se §6.** Kostnaden er ikke
bare fikstur-regenerering.
> **Evidens FOR O1, tilført 2026-07-26.** `llm-ingestion-okf` korrigerte sin egen anbefaling da de
> hadde lest oppstrøms' *bundles* og ikke bare SPEC.md: **oppstrøms referanseimplementasjon bruker
> selv produsent/versjon-formen.** Verifisert her, uavhengig:
> `generated: { by: reference_agent/gemini-2.5-pro, at: 2026-06-30T14:00:00Z }`
> (`okf/bundles/acme_retail/metrics/gross-margin.md`). `<produsent>/<versjon>` er altså ikke en
> avvikende lesning av §7 — det er den **kanoniske formen for et verktøy**, brukt av spec-eieren.
> O1 er dermed den v0.2-*idiomatiske* opsjonen, og O2 er det bevisste avviket fra idiomet.
> Funnet i §6 står uendret ved siden av dette: oppstrøms' bundles er utdata fra én agent, ikke
> delte konformansfiksturer, så de to fakta er ikke i motstrid. **Det er nettopp byttet
> operatøren skal ta stilling til:** v0.2-idiomatikk mot reproduserbar delt fasit.
**Reverserbar.** Nei — frossen normativ tekst.
### O2 — v0.2-form med produsent-nøytral aktør
@ -251,5 +288,9 @@ line-oriented-krav, og `ingest_manifest` som stempelets andre halvdel. Ingen ops
| To disjunkte fasitsett finnes | `comm -12` over begge trærs `expected-bundle/*.md` | kun `index.md`-navn felles |
| …og de felles `index.md` er ulike | `cmp` på `ingest-golden-file/.../index.md` | ULIKE |
| §1 sier «**the shared** golden extractions» | `ingest-spec.md:29` | bestemt form, én mengde forutsatt |
| Oppstrøms bruker selv `<produsent>/<versjon>` | `okf/bundles/acme_retail/metrics/gross-margin.md` | `by: reference_agent/gemini-2.5-pro` |
| Oppstrøms skriver `generated` på HÅNDSKREVET fil | `…/gross-margin-legacy.md` | `by: human:jsmith@acme` |
| `sources` er blokkliste, ikke inline flow | samme fil, `sources:` | `- id:` + 4 nøkler, flerlinjes → bryter `:158` |
| SPEC.md er endret ETTER v0.2-migreringen | okf-melding, deres pin `3fcbb9f` | «v0.2-commiten» ≠ «dagens spec-tekst» — uverifisert av oss |
| `ingested_at` har ingen wall-clock-default | `ingest-spec.md:141` | «there is NO wall-clock default» |
| Spec-tekst uendret siden 07-21 | `git log --oneline -- ingest-spec.md` | `bfa5a9b`, forrige `7aa53fc` — ingen commit etter |