docs(s11): brief + plan for S11 sammenligningen — trippel-reviewet, klar for exec
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AaQCFnfsh3tfq1VfzdJpoi
This commit is contained in:
parent
aec95eb0da
commit
695c7590b5
2 changed files with 624 additions and 0 deletions
181
.claude/projects/2026-07-03-s11-sammenligning-rapport/brief.md
Normal file
181
.claude/projects/2026-07-03-s11-sammenligning-rapport/brief.md
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
---
|
||||
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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue