portfolio-optimiser-claude/docs/2026-07-16-beslutningsbrief.md
Kjell Tore Guttormsen 8d5554ba3f docs(portfolio): spec-gap §7 i operatør-køen + paritetsrad 24/25 rettet
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
2026-07-25 07:41:52 +02:00

9.7 KiB
Raw Blame History

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 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 (K14K16). 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 (K1K3, 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. 14 ↔ 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.