docs(scope): the independence claim gets a date instead of a future it cannot keep

Operator decision 2026-08-09: the two implementations are developed in the open
against each other. Reading the sibling is permitted and exchange may go both ways;
code is copied only where it genuinely serves the solution, never as a shortcut. The
constraint that remains is what the Microsoft Agent Framework and the Claude Agent
SDK each actually offer — which is the difference the comparison exists to measure.

The old rule lived in three places and two of them would have started lying:

- CLAUDE.md carried the prohibition, and it is read at every session start — left
  alone it would have made the next session refuse exactly what was authorised.
- README stated in the present tense that this repo is "built from the shared spec
  alone" and "deliberately does not reverse-engineer the MAF sibling". True for
  every line written so far, and untrue for anything written from today.

So the README claim is DATED rather than deleted. Through 2026-08-09 the
independence is real and stays claimed; from 2026-08-09 the open-competition rule
applies and is stated plainly, with the consequence spelled out: anything comparing
the two implementations as INDEPENDENT evidence must be scoped to work on or before
that date. The honesty rule (method spec §1) does not let a claim outrun what was
actually done, and that applies to the README's claim about itself.

CHANGELOG is deliberately UNTOUCHED. It describes what was true at that release, and
it was true — 73 commits through 3e91072 were built from the spec alone. A changelog
records history; it is not rewritten because a forward rule changed.

What did NOT change, and is restated in the README so the dating cannot be misread as
a loosening of the method: the spec is still normative and the golden suite is still
the validator's only oracle.

787 tests green, ruff clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYWMfPKmJtv7JvYnpomkdV
This commit is contained in:
Kjell Tore Guttormsen 2026-08-09 12:56:30 +02:00
commit 3bdf7f0669
2 changed files with 30 additions and 9 deletions

View file

@ -3,8 +3,14 @@
## Kontekst
Søsken-implementasjon (beslutning D7) av portfolio-optimiser-metoden på **Claude Agent SDK**:
generisk, åpent Python-rammeverk som finner kostnadsbesparelser INNI hvert prosjekt i en
portefølje. Bygges **fra metode-spec-en alene** (`shared/method-spec.md`) — aldri ved
reverse-engineering av MAF-søskenet (`~/repos/portfolio-optimiser`). Program-planer
portefølje. Bygges på **metode-spec-en** (`shared/method-spec.md`) som normativ kilde.
**Åpen konkurranse med MAF-søskenet** (`~/repos/portfolio-optimiser`, operatørbeslutning
2026-08-09): alle tilgjengelige midler er lov for å nå den beste løsningen, inkludert å lese
søskenets kode, og utvekslingen kan gå begge veier. **Grensen er hensikten, ikke kilden:**
kopiér kun der det faktisk gir mening for løsningen — **aldri som snarvei**. De reelle
begrensningene er hva MAF og Claude Agent SDK hver for seg tilbyr, og det er nettopp den
forskjellen sammenligningen skal måle. Fram til 2026-08-09 ble repoet bygget fra speccen
alene; det er datert i README og skal ikke påstås om arbeid etter den datoen. Program-planer
(sesjonsplan S5S12, sammenligningsprotokoll, frossent målbilde) bor i hovedrepoets
`docs/plan/`. Løpende state: `STATE.md` (local-only).

View file

@ -53,22 +53,37 @@ pretending otherwise.
- **No query-time retrieval over the bundle.** Data reaches the model only as a
pre-materialized OKF bundle (method-spec §3 Step 1); there is no RAG index and no
keyword chunk-stuffing.
- **Not a port of the MAF sibling.** It is built from the shared spec alone; the two
implementations exist to be compared, not to converge by copying.
- **Not a port of the MAF sibling.** The two implementations exist to be compared. Nothing
here is a shortcut around the spec — see the dated note below on what changed 2026-08-09.
- **Not a continuously running service.** Everything below the run layer is deterministic
and offline, and the programme budgeted exactly one live model run (S10, below).
## Built from the spec, not the sibling
## Built from the spec — and, since 2026-08-09, in the open against the sibling
The method itself is framework-neutral and lives in
[`portfolio-optimiser-commons`](https://git.fromaitochitta.com/open/portfolio-optimiser-commons)
(consumed here as a git subtree under [`shared/`](shared/)): the normative method spec
(RFC 2119), the OKF bundle-navigation contract, the golden/conformance suite — the *only*
oracle for the validator — and the shared expert-reviewer persona skill. This repo
implements that spec on the Claude Agent SDK; it deliberately does **not**
reverse-engineer the MAF sibling
([`open/portfolio-optimiser`](https://git.fromaitochitta.com/open/portfolio-optimiser)).
Two independent implementations of one spec, compared afterwards, is the point of D7.
implements that spec on the Claude Agent SDK. That much has not changed and does not
change: the spec is normative, and the golden suite is the validator's only oracle.
What *did* change is the relationship to the MAF sibling
([`open/portfolio-optimiser`](https://git.fromaitochitta.com/open/portfolio-optimiser)),
and the date matters because the honesty rule (method spec §1) does not let a claim outrun
what was actually done:
- **Through 2026-08-09** — every line here was written from the shared spec alone, without
reading the sibling's implementation. Two independent implementations of one spec was
the point of D7, and for that period the independence is real.
- **From 2026-08-09** — the two implementations are developed **in the open against each
other**. Reading the sibling is permitted, and exchange may go both ways. Code is copied
only where it genuinely serves the solution, **never as a shortcut**; the constraint that
remains is what the Microsoft Agent Framework and the Claude Agent SDK each actually
offer, which is the difference the comparison is meant to measure.
So the independence claim is dated on purpose. Anything comparing the two implementations
as *independent* evidence must be scoped to work done on or before 2026-08-09.
## Architecture — the seams