portfolio-optimiser/.claude/projects/2026-07-04-i7-program-avslutning/brief.md
Kjell Tore Guttormsen 3957354408 docs(i7): trekbrief + trekplan for program-avslutning — execute parked (fresh session)
Brief (framing=preserve, 0 research, validator PASS, brief-reviewer PROCEED) +
plan (3 steg, v1.7 strict PASS). plan-critic fanget 1 BLOCKER (README real-source
overclaim) → adressert; scope-guardian ALIGNED. Execute parkert til fersk økt på
20% kontekst. README/extending URØRT denne økta.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JJET4jzpqykqEaQKQDqbS6
2026-07-04 20:41:02 +02:00

123 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
type: trekbrief
brief_version: "2.2"
created: 2026-07-04
task: "I7 — program-avslutning ingest: README/extending.md-finpuss (MAF) + felles norsk statusrapport"
slug: i7-program-avslutning
project_dir: .claude/projects/2026-07-04-i7-program-avslutning/
research_topics: 0
research_status: skipped
auto_research: false
interview_turns: 3
source: interview
framing: preserve
phase_signals:
- phase: research
effort: high
model: opus
- phase: plan
effort: high
model: opus
- phase: execute
effort: high
model: opus
- phase: review
effort: high
model: opus
---
# Task: I7 — program-avslutning (ingest): dokumentasjon + felles statusrapport
> Generated by `/trekbrief` on 2026-07-04.
> This brief is the contract between requirements and planning. `/trekplan`
> reads it to produce the implementation plan. Every decision in the plan must
> trace back to content in this brief.
## TL;DR
- I7 lukker ingest-programmet: finpuss `README.md` + `docs/extending.md` (MAF-stacken) og skriv **én felles norsk statusrapport** (bevist/ikke-bevist + verifiseringslogg) som dekker begge stacker.
- **Framing: preserve** — planlagt siste steg (§I7) i den frosne, godkjente ingest-sesjonsplanen; ingen scope-endring.
- Bindende: **ærlighets-regelen** (målbilde §11 «Stack-mapping (ærlighets-avgrenset)» + §0) — dokumentér KUN det koden gjør. D7-omtale avgrenset til CSV+SQL; HTTP/MCP kun pekere; ingen live-kilde-påstand.
- Docs-økt: ingen produksjonskode, ingen D7-repo-commit (polyrepo-grense), null modell-spend.
## Intent
Ingest-programmet (I1I6) bygde og load-bearing-testet ingest-laget på tvers av begge stacker: den framework-nøytrale spec-en i commons, CSV/filkatalog og SQL på begge repo (bit-identiske golden-uttrekk fra delt spec), og HTTP/MCP demonstrert som extension point MAF-only mot lokal mock. I7 er det planlagte avslutningssteget: gjøre dokumentasjonen sannferdig og komplett, og produsere én ærlig norsk statusrapport av hva programmet faktisk beviste — og hva det ikke beviste. Motivasjonen er tillit: rammeverket publiseres på Forgejo for alle som har MAF, og en artefakt som overselger (antyder at D7 har HTTP/MCP-støtte, eller at en live-kilde er integrert) eroderer tilliten operatøren lever av. Ærlighets-regelen (målbilde §11 «Stack-mapping (ærlighets-avgrenset)» — som eksplisitt sier «HTTP/MCP demonstrert som extension point KUN på MAF-siden» og «Ingen live-kilde forekommer noensinne i programmet»; scope-ærlighet i §0) er den bindende føringen — den skriptede offline-simuleringen beviser rørlegging og deterministisk ryggrad, ikke levende LLM-atferd, og rapporten må si nettopp det.
## Goal
Når I7 er ferdig: (1) `README.md` + `docs/extending.md` i DETTE repoet (MAF-stacken) er finpusset slik at all D7-omtale er strengt avgrenset til det D7 faktisk har (CSV + SQL); HTTP/MCP omtales KUN som MAF-demonstrert extension point / D7-krok-peker, aldri som D7-kapabilitet. (2) Én felles norsk program-statusrapport bor i `docs/rapport/` og dekker BEGGE stacker i hybrid form — kort leder-/executive-sammendrag øverst (for KI-seksjon/ledelse), så en teknisk verifiseringslogg-seksjon under (hver påstand → kommando/kilde), med en eksplisitt «bevist / ikke bevist»-inndeling. (3) Ingen artefakt i repoet påstår mer enn koden gjør. Begge suiter er verifisert offline (MAF grønn; D7 read-only — rødt/ikke-kjørbart rapporteres som «ikke bevist», ikke fikset her).
## Non-Goals
- **Ingen endring i D7-søskenrepoet** (`portfolio-optimiser-claude`) fra denne økta — polyrepo-grense. Søskenets README/`extending.md` gjøres i søskenets EGEN økt, drevet av dets egen STATE. (D7-suiten verifiseres her kun read-only og siteres.)
- **Ingen egen D7-lokal statusrapport** — operatør valgte «én felles rapport her».
- **Ingen produksjonskode / ingen TDD** — ren docs-økt (Iron Law gjelder produksjonskode, ikke dokumentasjon).
- **Ingen spec-/commons-endring** — spec er frossen, PULL-ONLY.
- **Ingen S12/release** — uavhengig av ingest-programmet, eget klarsignal.
- **Ingen endring i `okf.py` / `shared/`** — framework-nøytral kjerne forblir urørt.
- **Ingen påstand om live-kilde-integrasjon eller D7 HTTP/MCP-støtte** noe sted.
## Constraints
- **Språk:** statusrapporten på **norsk** (docs-språkregel: forretnings-/leder-docs norsk); `README.md` forblir **engelsk** (utvikler-vendt).
- **Ærlighets-regel (målbilde §11 + §0; CLAUDE.md framework-/simulering-invariant):** dokumentér kun det koden gjør; skriptet offline-sim beviser plumbing, ikke levende LLM-atferd.
- **Commons PULL-ONLY** — aldri subtree push.
- **Offline, null modell-spend** (D6 kostnadsdisiplin) — ingen nettverk, ingen nøkkel.
- **Modell:** Opus 4.8 xhigh alle faser/subagenter; **aldri Fable 5** (stående global regel).
## Preferences
- Named markdown-lenker til lokale filer (`[navn](file:///absolutt/sti)`) per CLAUDE.md communication-pattern.
- Referér eksisterende docs (`docs/rapport/2026-07-03-sammenligningsrapport.md`, målbilde, sesjonsplan) framfor å duplisere innhold.
- Rapporten skal tåle å bli lest av noen som ikke kjenner koden — men uten salgsspråk (KTG-verifiseringsplikt: ingen «fullt ut», «uten unntak»).
## Non-Functional Requirements
- MAF-repoets suite grønn offline: `uv run pytest` → 0 failed, uten nøkkel/nettverk (baseline: 237 passed / 4 skipped).
- `uv run ruff check .` og `uv run mypy src` exit 0 i MAF-repoet.
- D7-søskensuiten grønn offline — verifisert read-only + sitert (ingen commit der).
## Success Criteria
- **SC1 — Ingen overselgende artefakt (grep-gate):** `grep -rniE '(d7|claude[- ]?sdk).{0,60}(http|mcp)' README.md docs/` gjennomgått manuelt → hvert treff er enten (a) eksplisitt «MAF-only / demonstrert extension point», eller (b) en ren D7-krok-peker (`create_sdk_mcp_server`) — INGEN treff påstår D7 HTTP/MCP-*støtte*. I tillegg: `grep -rniE '(live|produksjon|production).{0,30}(kilde|source|integrasjon|integration)' README.md docs/rapport/ docs/extending.md` → ingen påstand om live-kilde-integrasjon.
- **SC2 — Statusrapport eksisterer og har rett form:** `docs/rapport/2026-07-04-program-statusrapport-ingest.md` finnes og inneholder (a) executive-sammendrag, (b) eksplisitt «bevist / ikke bevist»-seksjon, (c) verifiseringslogg-seksjon.
- **SC3 — Hver påstand er sporet:** hver rad i rapportens verifiseringslogg har enten en kjørbar kommando ELLER en fil-/commit-sitering (ingen ubelagte påstander). Sjekkes ved gjennomlesning: 0 påstander uten kilde.
- **SC4 — MAF-suite grønn offline:** `uv run pytest` exit 0, 0 failed (uten nøkkel/nettverk).
- **SC5 — Lint/type rent:** `uv run ruff check .` exit 0 og `uv run mypy src` exit 0.
- **SC6 — D7-suite grønn offline (read-only, sitert):** i `/Users/ktg/repos/portfolio-optimiser-claude`: `uv run pytest` exit 0 offline, forutsatt repoet er `uv sync`-et — ellers skiller rapporten eksplisitt «suite rød» fra «kunne ikke kjøres offline». Kjørt read-only og sitert i rapporten; INGEN commit i søsknet. Hvis rød/ikke-kjørbar: flagges som «ikke bevist», ikke fikset her.
## Research Plan
No external research needed — the codebase and this brief contain sufficient context for planning. (Operatør bekreftet: alt kildemateriale er internt — kode, git-historikk, eksisterende docs. Ingen nye teknologi-/bibliotekvalg.)
## Open Questions / Assumptions
- **[ASSUMPTION]** D7-søskenrepoets suite er for tiden grønn offline. I7 verifiserer dette read-only og siterer det; hvis rødt, rapporteres det som «ikke bevist» framfor å fikses her (søsknets egen økt eier fikser). SC6 dekker dette.
- **[ASSUMPTION]** Eksisterende `sammenligningsrapport.md` (2026-07-03) dekker stack-sammenligningen; den nye I7-rapporten er program-avslutnings-rapporten (bevist/ikke-bevist på tvers av I1I7) som REFERERER, ikke duplisererer, sammenligningsrapporten.
- **[ASSUMPTION]** README/`extending.md` trenger «finpuss», ikke omskriving — I6 la allerede http-familien + D7-peker i `extending.md`. Planfasen bekrefter faktisk delta ved å lese begge filene først.
## Prior Attempts
None — fresh task. I7 er det planlagte siste steget i ingest-sesjonsplanen; I1I6 er levert (se STATE.md-loggen og git-historikk).
## Metadata
- **Created:** 2026-07-04
- **Interview turns:** 3
- **Auto-research opted in:** no
- **Source:** trekbrief interview
---
## How to continue
Manual (default):
```bash
# No research topics — go straight to planning:
/trekplan --project .claude/projects/2026-07-04-i7-program-avslutning
# Then execute:
/trekexecute --project .claude/projects/2026-07-04-i7-program-avslutning
```