Coord-runde 2026-07-25, ingen kodeendring (gate urørt: 603 passed, ruff+mypy rene). - brief §7: projeksjons-kontrakten over hovedboken som spec-gap, meldt uavhengig fra BEGGE stacker. MAF-søskenets ordlyd bevart verbatim; våre tre skjønnsvalg målt mot kode (runding av kronebeløp: ingen hos oss, én hos dem — reell divergens på identiske inndata). Anbefalt inn i D-A-bolken. - paritetsplan rad 24/25: STALE «Gjenstår i MAF» rettet etter at MAF eksplisitt frigav vårt planverk. Rad 25 merket «hash ikke oppgitt — spurt» framfor antatt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQu2xxwedckjU56byu1aUG
157 lines
9.7 KiB
Markdown
157 lines
9.7 KiB
Markdown
# Beslutningsbrief til operatøren — hva som venter på deg, og hva det låser opp her (2026-07-16)
|
||
|
||
> Skrevet i klarspråk, uten funn-ID-er i selve spørsmålene (ID-er kun i fotnoter).
|
||
> Beslutningene tas i HOVEDREPOETS delte kø — ingenting under besluttes i dette repoet.
|
||
> Kontekst: operatør-mandatet 2026-07-16 er full paritet med MAF-repoet; den nye
|
||
> [sesjonsplanen](2026-07-16-sesjonsplan-paritet.md) planlegger rundt gatene under, aldri
|
||
> forbi dem. Alt ugatet arbeid (16 sesjoner) kan kjøres uavhengig av alle punktene her.
|
||
|
||
## 1. Spec-rettelsene i regelverket (den delte «D-A»-bolken)
|
||
|
||
**Hva det gjelder:** Fire kjente svakheter i det delte regelverket begge søsken bygger fra:
|
||
(1) validatoren har en beregnet «maksimalt gjennomførbar besparelse»-grense som aldri
|
||
håndheves, og modellen forfatter selv usikkerhetsbåndene som kan blåse den; (2) det finnes
|
||
ingen forankring mot prosjektets faktiske kostlinjer, så oppdiktede kostlinjer kan passere
|
||
validering; (3) lenkeformen med ledende skråstrek, som standardformatet anbefaler, hoppes over
|
||
i stedet for å forstås; (4) læringslageret nøkler alle dommer i en bundle på ett og samme
|
||
kandidat-tiltak, så dommer om ulike tiltak blandes.
|
||
|
||
**Hva det låser opp her:** fire ferdig-spesifiserte byggesesjoner med kjørte moteksempler som
|
||
test-fixtures.¹ Rettelse (2) er i tillegg et absolutt krav FØR en eventuell ny live-kjøring.
|
||
|
||
**Anbefaling:** godkjenn alle fire som én bolk. Kompatibiliteten er ferdig verifisert på denne
|
||
siden: regel-strammingen (1) bryter verken fasit-eksemplet eller noen eksisterende testdata.
|
||
Etter godkjenning: rettelsene skrives i fellesrepoet, BEGGE søsken henter dem, og BEGGE
|
||
testsuiter kjøres — aldri én side alene.
|
||
|
||
**Ta samtidig stilling til en kollisjon vi har flagget:** planen for semantisk henting (egen
|
||
beslutning, se pkt. 5) står i dag i direkte konflikt med regelverkets frosne krav om at
|
||
likhets-rangering aldri skal bygge på overflatetekst. Enten må regelverket bevisst amenderes
|
||
på det punktet (som del av denne bolken), eller så må semantisk henting re-scopes til å bygge
|
||
på strukturelle kjennetegn alene.² **Anbefaling:** re-scoping — det bevarer det frosne
|
||
prinsippet og er implementerbart uten regelendring.
|
||
|
||
## 2. Innholdsmodell-amendmenten (kunnskapsbibliotek + dimensjonskatalog)
|
||
|
||
**Hva det gjelder:** Utkastet fra 14. juli (ligger klart i hovedrepoet³) som gir regelverket
|
||
et kildebelagt kunnskapsbibliotek (tiltaksmønstre/erfaringsnotater/faglige råd), en
|
||
dimensjonskatalog som konfig, og «sammendrag først»-lesing så biblioteket kan vokse uten å
|
||
drukne prompten. Venter kun på din godkjenning av teksten.
|
||
|
||
**Hva det låser opp her:** hele bibliotek-/katalog-sesjonen i dette repoet (K13 i den nye
|
||
planen) — som også er dette repoets eneste planlagte kilde til dimensjons-begrepet, som igjen
|
||
gir ruting og scoping full verdi. Tilsvarende sesjon på MAF-siden (S3.5) venter på det samme.
|
||
|
||
**Anbefaling:** godkjenn utkastet. Det er konstruert for å holde begge repoenes
|
||
spec-integritetsvakter grønne, og fasit-eksemplene endres ikke. Merk at dette repoets egen
|
||
spec-vakt bygges i første ugatede sesjon (C1.1) med samme robusthet, så amendmenten kan landes
|
||
før eller etter den — rekkefølgen er likegyldig.
|
||
|
||
## 3. Verktøykasse-repoet (okf-toolkit)
|
||
|
||
**Hva det gjelder:** Besluttet 14. juli: felles formatverktøykasse i eget repo. Repoet finnes
|
||
ennå ikke (verifisert i dag), og briefens fire åpne spørsmål venter på deg: endelig navn,
|
||
lisens (MIT-presedens), publiseringsrekkefølge (kjerne først?), og bekreftelse på eget
|
||
Forgejo-repo.⁴
|
||
|
||
**Hva det låser opp her:** skrive-halvdelen av formatlaget, som dette repoet mangler og
|
||
MAF-repoet har — selve hovedgevinsten i «minst like godt»-mandatet ditt. Adopsjonssesjonen
|
||
(K20) er planlagt og venter kun på at verktøykassa finnes og at du godkjenner koordinert
|
||
migrering i begge søsken samtidig.
|
||
|
||
**Anbefaling:** svar på de fire spørsmålene og kjør repo-init-prompten i briefen. Inntil da
|
||
er skrive-halvdelen udekket her, og skråstrek-lenkerettelsen (pkt. 1.3) bygges lokalt med en
|
||
eksplisitt merknad om senere flytting inn i verktøykassa.
|
||
|
||
## 4. Omfanget for ekte datakilder (den delte «D-B»-beslutningen)
|
||
|
||
**Hva det gjelder:** Om (og hvordan) ingest-laget skal utvides mot virkeligheten:
|
||
MCP-kildefamilie, PDF-dokumentkilde, og http/live-kilde med herding — som i dag er bevisst
|
||
avvist i begge søsken og krever en bevisst amendment av det frosne ingest-målbildet.
|
||
|
||
**Hva det låser opp her:** tre konnektor-sesjoner (K14–K16). Merk endringen fra forrige plan:
|
||
paritetsmandatet ditt betyr at disse nå SKAL speiles her når beslutningen lander — den gamle
|
||
planens «ingen HTTP/MCP-økt i dette repoet» er opphevet. Sikkerhetsvakten
|
||
(llm-ingestion-guard) wires inn i samme økt som http-kilden — det er dens hovedplass.⁵
|
||
|
||
**Anbefaling:** som MAF-planens anbefaling (nedskop til mock-herding nå; SQL som første
|
||
live-kilde senere) — men med eksplisitt tillegg om at amendmenten skrives felles så begge
|
||
søsken bygger samme kildefamilier.
|
||
|
||
## 5. De øvrige delte beslutningene (vektor-lager, samtidighet, mål/paritet)
|
||
|
||
**Hva det gjelder / låser opp her:**
|
||
- **Vektor-lager** (semantisk henting): låser opp K17 her — MEN se kollisjonen i pkt. 1.
|
||
- **Samtidighet/feilmodell:** låser opp K18/K19 her (parallell porteføljekjøring +
|
||
kostnadsstyring på tvers). Blir først aktuelt etter at porteføljefundamentet (K1–K3, ugatet)
|
||
er bygget — ingen hast fra dette repoets side.
|
||
- **Mål-semantikk + stack-paritet for ekte kjøring:** låser opp prosentmål-delen av
|
||
målkontrakten her, og avgjør om dette repoet i det hele tatt skal kjøre live igjen
|
||
(M2-analogen). Uten den beslutningen bygges alt live-forberedende (estimat, preflight,
|
||
drill) ferdig offline — og stopper der.
|
||
|
||
**Anbefaling:** ingen hast på noen av disse tre fra dette repoets side; ta dem når MAF-løpet
|
||
trenger dem. Kun koblingen i pkt. 1 (semantisk henting vs. frossen rangeringsregel) bør tas
|
||
NÅ, fordi den hører hjemme i samme bolk som spec-rettelsene.
|
||
|
||
## 6. NYTT beslutningsbehov avdekket av paritetsplanen (foreslås inn i den delte køen)
|
||
|
||
**Hva det gjelder:** Paritetsplanen gir dette repoet en besparelses-hovedbok, målkontrakt og
|
||
outbox (K1/K5) som MAF allerede har — men formatene er i dag stack-lokale på begge sider.
|
||
Skal de to søsknenes hovedbok-/outbox-artefakter være SAMMENLIGNBARE på filnivå (delt format i
|
||
fellesrepoet), eller holder det at kapabiliteten er lik mens formatene divergerer?
|
||
|
||
**Hvorfor det er ditt valg:** delt format krever en commons-amendment (mer koordinering, men
|
||
direkte sammenlignbare kjøringsartefakter til sammenligningsprotokollen og verdirapporten);
|
||
stack-lokalt er raskere og kan konvergeres senere via verktøykasse-repoet.
|
||
|
||
**Anbefaling:** stack-lokalt NÅ (K1/K5 bygger uten å vente), med eksplisitt
|
||
konvergens-vurdering når verktøykassa (pkt. 3) og verdirapportene på begge sider finnes.
|
||
Foreslås protokollert som nytt punkt i den delte køen i hovedrepoet — ikke besluttet her.
|
||
|
||
## 7. SPEC-GAP: projeksjons-kontrakten over hovedboken (meldt uavhengig fra BEGGE stacker)
|
||
|
||
**Hva det gjelder:** Verdirapporten (K11 her, S5.4 i MAF) er en projeksjon over hovedbok +
|
||
outbox + kostestimat. Spec-en sier hva hovedboken INNEHOLDER, men ikke hva en projeksjon over
|
||
den må GARANTERE. Begge søsken traff samme hull uavhengig, samme døgn, og måtte ta samme tre
|
||
skjønnsvalg — som en spec-tro implementasjon kunne avgjort motsatt. MAF-søskenets ordlyd,
|
||
bevart verbatim (coord 2026-07-25T05:09:23Z):
|
||
|
||
> - Rounding and units in a derived monetary figure: where rounding happens (per row vs on
|
||
> the total) is unspecified, and the two give different totals. We picked one.
|
||
> - Whether a run with zero qualifying rows produces an empty report or no report at all.
|
||
> - Whether the report is a pure projection or may restate provenance fields; we kept it
|
||
> pure, but nothing in the spec forces that.
|
||
|
||
**Ikke gapet:** selve FORM-sjekken av hovedboken. Den finnes på begge sider (gyldig-JSON-men-
|
||
feil-shape avvises fail-fast, `valuereport.py:292-297`) — gapet er kontrakten som sitter OVER
|
||
den.
|
||
|
||
**Våre valg, målt mot kode (så divergensen er etterprøvbar, ikke antatt):**
|
||
- **Runding:** kronebeløp rundes IKKE i det hele tatt; kun deriverte andeler, til 6 siffer
|
||
(`_SHARE_DIGITS`, `valuereport.py:61`). MAF rundet et monetært beløp — reell divergens på
|
||
et punkt spec-en ikke uttaler seg om.
|
||
- **Null kvalifiserende rader:** rapport produseres ALLTID; hver ekspert-figur står UMERKET
|
||
(`None`), aldri en null som ser dømt ut (`valuereport.py:310-328`).
|
||
- **Renhet:** payloaden restater ingen provenance-felt (`report_payload`, `valuereport.py:427`)
|
||
— samme valg som MAF, men intet i spec-en tvinger det.
|
||
|
||
**Hvorfor det er ditt valg:** rettelsen hører i det delte regelverket (commons), ikke i to
|
||
lokale rapporter. Uten den er «samme kapabilitet» på papiret forenlig med ulike totaler på
|
||
identiske inndata — nøyaktig det sammenligningsprotokollen skal måle.
|
||
|
||
**Anbefaling:** legg punktet i D-A-bolken (samme mal: amendment i commons → koordinert
|
||
subtree-pull i BEGGE repo → begge suiter). Ingen av søsknene retter ensidig. Meldt hit fra
|
||
begge stacker uavhengig, ikke som ett repos preferanse.
|
||
|
||
---
|
||
|
||
**Fotnoter (pekere for etterprøving):**
|
||
¹ D-A pkt. 1–4 ↔ funn C-F2/C-F3/C-F4/C-F5 (`review-2026-07.md` §1) → sesjonene
|
||
C2.7/C4.0/C2.8/C3.2 (`2026-07-16-sesjonsplan-paritet.md` §4).
|
||
² C-P1 (`review-2026-07.md` §1) — method-spec §3 Steg 1 «structural, never textual» vs
|
||
MAF-planens S3.1/D-C.
|
||
³ `portfolio-optimiser/docs/plan/2026-07-14-commons-amendment-utkast.md` (§5.2 flagger
|
||
D7-speilingen eksplisitt).
|
||
⁴ `portfolio-optimiser/docs/plan/2026-07-14-toolkit-repo-brief.md` §8.
|
||
⁵ `docs/2026-07-16-llm-ingestion-guard-plan.md` §4 G1; K16 i den nye sesjonsplanen.
|