83 lines
3.6 KiB
Markdown
83 lines
3.6 KiB
Markdown
# Funn-notat — §11 ankrer ikke §8 (og heller ikke §10)
|
|
|
|
**Status:** FUNN, registrert. **Ikke et underlag, ikke et forslag, ikke bestilt.**
|
|
Køplassering er operatørens. Commons forbereder underlaget, operatøren ratifiserer — og vi
|
|
bestiller ikke vår egen kø, heller ikke for funn vi selv gjør.
|
|
|
|
**Foranledning:** `portfolio-optimiser` meldte 2026-08-01 (`20260801T175832Z`) at `method-spec.md`
|
|
§11 mangler en rad for deres portefølje-brede budsjettsøm (S3.4/F10: globalt token-tak håndhevet
|
|
før kall, wave-admission med reservasjon, oppstartsnekt). Undersøkelsen av den forespørselen ga
|
|
to atskilte resultater, og bare det ene er vårt.
|
|
|
|
---
|
|
|
|
## 1. Forespørselen: avvist på akse
|
|
|
|
§1 (Scope and conformance) definerer metoden ordrett som «a swarm of agents generates candidate
|
|
cost-saving measures for **one project at a time**». §8 (Budget and stop criteria) er følgelig
|
|
den **per-run** termineringskontrakten.
|
|
|
|
Globalt tak på tvers av prosjekter, wave-admission med reservasjon og oppstartsnekt for et
|
|
prosjekt som ikke kan finansieres er **orkestrering over metoden**, ikke en søm i den. Deres
|
|
S3.4/F10 er riktig plassert hos dem, og at de bærer den som
|
|
`tests/test_portfolio_budget_loadbearing.py` (6 målte røde mutasjoner) er sømmen dokumentert der
|
|
den hører hjemme.
|
|
|
|
Konsekvensen av å legge raden inn likevel er konkret og var avgjørende: §11 er en MUST-tabell.
|
|
En konformant implementasjon som kjører ett prosjekt uten portefølje-orkestrering ville blitt
|
|
**ikke-konform på en søm spec-ens egen scope-klausul ikke governerer**.
|
|
|
|
Svar sendt `20260802T190344Z`.
|
|
|
|
## 2. Det undersøkelsen faktisk fant, og det er vårt
|
|
|
|
§11 har **tolv rader**. Ingen av dem ankrer **§8**:
|
|
|
|
- fail-closed når `usage` mangler i et svar (MÅ feile, aldri stille slutte å telle),
|
|
- det strukturerte stop-eventet med breached kind + limit + observed value,
|
|
- cap-objektenes nekt av ikke-positive verdier.
|
|
|
|
**§10** (Startup contracts) har heller ingen rad.
|
|
|
|
Samtidig sier §1 punkt 3 ordrett:
|
|
|
|
> proves **every** load-bearing seam with a test that FAILS when that seam is detached (§11).
|
|
|
|
Enten er §11-tabellen enumereringen av «every» — og da mangler §8 og §10 — eller så er den det
|
|
ikke, og da har «every» ingen enumerering i spec-en. **Spenningen er intern i vår egen frosne
|
|
tekst.** Den er vår å løse, ikke konsumentens.
|
|
|
|
## 3. Verifisering (målt, ikke antatt)
|
|
|
|
```
|
|
$ sed -n '421,435p' method-spec.md | grep -ciE 'budget|token|meter|usage|cap|startup|max_rounds'
|
|
1
|
|
```
|
|
|
|
Det ene treffet er en **substring-falsk-positiv**: «es**cap**ing» i navigasjons-raden. Reelt
|
|
antall §11-rader som nevner budsjett, måler eller oppstart er **null**.
|
|
|
|
```
|
|
$ sed -n '423,434p' method-spec.md | grep -c '^|'
|
|
12
|
|
$ sed -n '24p' method-spec.md
|
|
3. proves every load-bearing seam with a test that FAILS when that seam is detached (§11).
|
|
```
|
|
|
|
## 4. Åpent spørsmål stilt til `portfolio-optimiser`
|
|
|
|
Av de 6 målte røde mutasjonene i `test_portfolio_budget_loadbearing.py` — hvor mange treffer
|
|
**per-run-målerens** søm (usage mangler → feil; cap krysses → strukturert stop), og hvor mange
|
|
treffer portefølje-admissionen? Den første halvdelen er in-scope for §8 og kunne vært
|
|
referansetest-kolonnen i en rad vi faktisk kan skrive. Den andre halvdelen forblir deres.
|
|
|
|
Ubesvart per 2026-08-02. Ingen purring — de sa selv at det ikke blokkerer noe hos dem.
|
|
|
|
## 5. Hva som IKKE er gjort her
|
|
|
|
- Ingen rad er skrevet.
|
|
- Ingen ordlyd er foreslått.
|
|
- `method-spec.md` er ikke rørt.
|
|
|
|
En §8-rad ville vært en endring i frossen, subtree-konsumert tekst og krever operatørens
|
|
ratifisering på lik linje med V1.
|