Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AaQCFnfsh3tfq1VfzdJpoi
181 lines
8.4 KiB
Markdown
181 lines
8.4 KiB
Markdown
---
|
||
type: trekbrief
|
||
brief_version: "2.2"
|
||
created: 2026-07-03
|
||
task: "S11 — Sammenligningen + rapport: begge stacker målt på pinned commons-ref etter S3-protokollen; norsk forretningsrapport med verifiseringslogg"
|
||
slug: s11-sammenligning-rapport
|
||
project_dir: .claude/projects/2026-07-03-s11-sammenligning-rapport/
|
||
research_topics: 0
|
||
research_status: skipped
|
||
auto_research: false
|
||
interview_turns: 11
|
||
source: interview
|
||
framing: preserve
|
||
phase_signals:
|
||
- phase: research
|
||
effort: high
|
||
model: fable
|
||
- phase: plan
|
||
effort: high
|
||
model: fable
|
||
- phase: execute
|
||
effort: high
|
||
model: fable
|
||
- phase: review
|
||
effort: high
|
||
model: fable
|
||
---
|
||
|
||
# Task: S11 — Sammenligningen + rapport (program-leveransen)
|
||
|
||
> Generated by `/trekbrief` on 2026-07-03.
|
||
> 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
|
||
|
||
S11 er sesjonsplanens neste steg, uendret (framing: preserve): mål begge stacker
|
||
(MAF her + Claude SDK-søskenet) på identisk pinned commons-ref `db86e15` etter den
|
||
forhåndsbundne S3-protokollen (M1–M4), sammenstill med S10-artefaktene i søskenets
|
||
`runs/s10/`, og skriv én norsk forretningsrapport med verifiseringslogg der hver
|
||
tallpåstand har reproduserende kommando/kilde. Ingen kode-endringer i noen stack.
|
||
|
||
## Intent
|
||
|
||
S11 er program-SLUTTLEVERANSEN (målbilde §1): en rettferdig sammenligning av to
|
||
uavhengige implementasjoner av samme metode — MAF-stacken i dette repoet og Claude
|
||
Agent SDK-søskenet i `~/repos/portfolio-optimiser-claude` — på identisk delt kjerne.
|
||
Resultatet dokumenteres i en norsk forretningsrapport som operatøren kan dele.
|
||
Troverdigheten hviler på to ting: målestokken (sammenligningsprotokollen fra S3) ble
|
||
definert FØR begge stacker fantes, slik at ingen stack kunne forme metrikken etter
|
||
eget resultat, og hver tallpåstand i rapporten bærer sin egen reproduserende
|
||
kommando/kilde (verifiseringslogg). Operatøren lever av tillit; rapporten må derfor
|
||
være nøktern, uten salgsspråk, og aldri påstå mer enn bevisene bærer.
|
||
|
||
## Goal
|
||
|
||
Når S11 er ferdig finnes én norsk forretningsrapport i dette repoet
|
||
(`docs/rapport/2026-07-03-sammenligningsrapport.md`) som måler begge stacker på
|
||
pinned commons-ref `db86e15` etter protokollens fire metrikker (M1 validator-samsvar
|
||
mot golden, M2 konvergens/runder, M3 tokenforbruk mot tak, M4 kvalitativ vurdering),
|
||
gjengir liveness-asymmetri-erklæringen ordrett, sammenstiller S10-artefaktene fra
|
||
søskenets `runs/s10/` (kun Claude-siden merket som live-observasjon), og har en
|
||
verifiseringslogg der HVER tallpåstand peker på kommandoen/kilden som reproduserer
|
||
den. Begge repo er verifisert grønne (pytest + ruff + mypy) på pinned ref som del av
|
||
økta, og MAF offline-sim + D7 offline-speil er kjørt på samme ref som tallkilde for
|
||
M1–M3 (offline-kategorien).
|
||
|
||
## Non-Goals
|
||
|
||
- **Ingen re-kjøring av S10.** Artefaktene i `runs/s10/` er fasit (protokoll §4.2/§4.5);
|
||
re-kjøring er kun tillatt ved teknisk transportfeil, som ikke foreligger — kjøringen
|
||
lyktes 2026-07-03.
|
||
- **Ingen S12-/release-arbeid** (LICENSE, `[project.scripts]`, CHANGELOG-polering) —
|
||
gated på operatør-enighet, egen økt.
|
||
- **Ingen endringer i delt kjerne/commons og ingen re-pinning** — `db86e15` står.
|
||
(Endres kjernen måtte begge sider re-pinnes og re-kjøres; det gjør vi ikke.)
|
||
- **Ingen nye features eller refaktorering i noen av stackene** — S11 måler det som ER.
|
||
- **Ingen statistiske påstander om modellatferd** — S10 er én kjøring; den beviser
|
||
eksistens, ikke tendens (protokoll §4.1).
|
||
|
||
## Constraints
|
||
|
||
- **Protokollen er normativ og fryst i økta:** `docs/plan/2026-07-03-sammenligningsprotokoll.md`
|
||
kan ikke justeres under S11 — endring ville ugyldiggjøre «definert før begge
|
||
stacker»-premisset som bærer rapportens troverdighet.
|
||
- **Kostnadsdisiplin D6:** alt i S11 kjøres offline; null API-spend.
|
||
- **Språk:** rapporten er norsk (forretningsdokument, jf. dokumentspråk-preferansen);
|
||
kode, kommandoer og filnavn i verifiseringsloggen er engelsk som de er.
|
||
- **Kategori-disiplin (protokoll §2):** M2/M3-tall fra offline-kjøringer sammenlignes
|
||
KUN med offline-tall på motparten; kryss-kategori-sammenligning (offline vs live)
|
||
er forbudt i rapporten.
|
||
- **Skrivearbeid skjer i DETTE repoet.** Søskenrepoet er read-only i S11; eneste
|
||
unntak er STATE.md-oppdatering der ved sesjonslutt (local-only fil).
|
||
- **Push til Forgejo per driftsmodellen.** Push-frysen fra 2026-07-03 er observert
|
||
opphevet (søskenets S10-commits er pushet; Forgejo 15.0.3 oppe) — dette repoets
|
||
stale STATE.md korrigeres ved sesjonslutt.
|
||
|
||
## Preferences
|
||
|
||
- Rapport plasseres under `docs/rapport/` i dette repoet (ny katalog er akseptabelt).
|
||
- Metrikk-tall i tabellform; begrunnelse og tolkning i prosa rundt tabellene.
|
||
- Nøkternt språk uten superlativer — «fullt ut», «uten unntak» o.l. er røde flagg
|
||
(verifiseringsplikten).
|
||
|
||
## Non-Functional Requirements
|
||
|
||
- **Reproducerbarhet:** hver M1–M3-tallrad i verifiseringsloggen skal kunne kjøres på
|
||
nytt av en leser med begge repo klonet, og gi samme tall (deterministisk kjerne +
|
||
fangede artefakter).
|
||
- **Ærlighet:** ingen påstand i rapporten (eller i README/STATE etterpå) skal påstå
|
||
mer enn koden/bevisene gjør — spesielt ingen antydning om live-atferd på MAF-siden.
|
||
|
||
## Success Criteria
|
||
|
||
- **SC1 — Rapport med ordrett erklæring:** `docs/rapport/2026-07-03-sammenligningsrapport.md`
|
||
finnes, og liveness-asymmetri-erklæringen fra protokoll §3 gjengis ordrett —
|
||
verifiserbart ved at blokksitatets tekst diff-er tomt mot protokollens §3-blokk.
|
||
- **SC2 — Begge repo grønne på pinned ref:** `uv run pytest`, `uv run ruff check .`
|
||
og `uv run mypy src` avslutter alle med exit 0 i BEGGE repo, og commons-ref er
|
||
verifisert identisk på begge sider (subtree-commits fra `db86e15` — `git log
|
||
--grep="db86e15"` viser squash-committen i begge).
|
||
- **SC3 — Offline-kjøringer utført på pinned ref:** MAF offline-sim
|
||
(`uv run python -m portfolio_optimiser.simulation`) og søskenets D7 offline-speil
|
||
er kjørt i økta; M1–M3-tallene i rapporten stammer fra disse kjøringene og fra de
|
||
committede S10-artefaktene (`runs/s10/*.json`) — aldri fra hukommelse.
|
||
- **SC4 — Verifiseringslogg komplett:** hver tallpåstand i rapporten har en rad i
|
||
verifiseringsloggen med reproduserende kommando/kilde; stikkprøve: hver M1–M3-rad
|
||
kan kjøres på nytt og gir samme tall.
|
||
- **SC5 — Kategori- og liveness-disiplin:** rapporten inneholder ingen påstand om
|
||
live-atferd på MAF-siden og ingen kryss-kategori-sammenligning — kontrollert
|
||
eksplisitt mot protokoll §2/§4 i review-fasen.
|
||
|
||
## Research Plan
|
||
|
||
No external research needed — the codebase and this brief contain sufficient
|
||
context for planning. (Alle kilder er lokale og committet: begge repo, protokollen,
|
||
sesjonsplanen §S11, `shared/method-spec.md`, S10-artefaktene i søskenets `runs/s10/`.
|
||
Lokal kodeoppdagelse — f.eks. nøyaktig invokasjon av D7-offline-speilet i søskenrepoet —
|
||
håndteres av /trekplan-utforskningen.)
|
||
|
||
## Open Questions / Assumptions
|
||
|
||
- **[ASSUMPTION] «D7 offline-speil»** antas å være søskenrepoets offline to-runs-bevis
|
||
(sim-ekvivalenten fra S9-laget); eksakt kjørekommando avdekkes i plan-utforskningen
|
||
av søskenrepoet — den er ikke navngitt i sesjonsplanen.
|
||
- **[ASSUMPTION] Push-frysen er opphevet** — avledet av at søskenets S10-commits er
|
||
pushet til Forgejo (0/0 mot origin) og at Forgejo 15.0.3 svarer. Om antakelsen er
|
||
feil, parkeres push og operatør varsles; commits skjer uansett lokalt.
|
||
- **[ASSUMPTION] Dette repoets STATE.md er stale** (sier «S6 er neste»); søskenets
|
||
STATE (S10 fullført, S11 neste, arbeidssted = dette repoet) er autoritativ og lagt
|
||
til grunn. Korrigeres ved sesjonslutt.
|
||
|
||
## Prior Attempts
|
||
|
||
None — fresh task. (Målestokken ble bevisst definert i S3, før begge stacker fantes;
|
||
det er en forutsetning, ikke et tidligere forsøk.)
|
||
|
||
## Metadata
|
||
|
||
- **Created:** 2026-07-03
|
||
- **Interview turns:** 11
|
||
- **Auto-research opted in:** no
|
||
- **Source:** trekbrief interview
|
||
|
||
---
|
||
|
||
## How to continue
|
||
|
||
Manual (default):
|
||
|
||
```bash
|
||
# No research topics — go straight to plan:
|
||
/trekplan --project .claude/projects/2026-07-03-s11-sammenligning-rapport/
|
||
|
||
# Then execute:
|
||
/trekexecute --project .claude/projects/2026-07-03-s11-sammenligning-rapport/
|
||
```
|
||
|
||
Auto (opt-in during `/trekbrief`): research and planning run
|
||
automatically; only execution is manual.
|