feat(p22): stage 0's unknown-code refusal NAMES the codes the project buys
P21 was the first ANCHORED stress round and it bought something real -- must_refuse 5/5, all five caught on stage0-baseline. It cost something measured just as clearly: 0 of 20 approaches validated, and 26 of 26 rejections (20 approach rows plus 6 own-proposals -- a LARGER population than the 20) read `unknown cost code '<invention>': not in project P's cost baseline (5 known codes)`. The model invented signalregulering_konstruksjon, VENTIL_IMP, RIGG01, baerelag_asfalt and 22 more, and it could not have done otherwise: the price schedule reaches the VALIDATOR and never the proposer, and the refusal stated the COUNT of known codes, not one name. Step 5 feeds that sentence verbatim into the next attempt -- and "you guessed wrong, there are five right answers" carries nothing to correct towards. The contrast already lived in the same stage: the MAGNITUDE half NAMES the baseline value, and that is the half that let the loop converge in session 94. This gives that property to the other half, in one place, and Step 5 carries it forward for free. The window is a FIXED COUNT of whole codes (20), never a share, and it counts codes rather than characters because a character cut can sever a code mid-name and hand the proposer an identifier that exists nowhere. The cut is announced; a schedule that fits is not marked truncated; the order is the schedule's own. Measured with denominators: every cost baseline in this repo or its measured corpora is at most six codes, and the largest real delivered price schedule measured is K2's prissammenstilling at 14 priced rows. Nothing measured reaches the window; it exists for the R761-style mengdebeskrivelse. Load-bearing MEASURED (tests/test_named_known_codes_loadbearing.py, 10 arms), eight mutations all red against the WHOLE suite + green control 1873/5 (from 1863/5, superset, 0 removed) and golden demo-transcript.stdout BYTE-UNCHANGED (shasum -a 1 of the CONTENT = ea8c534773acdbe41ae68f2c55724d69aaf8be4f): A1 revert to the bare count (7 red) - A2 a share instead of a fixed window (6) - A3 sorted (1) - A4 silent cut (2) - A5 character slice (3) - A6 no bound at all (3) - A7 break the rejection_stage marker (2, one an OLDER independent witness) - A8 grow the magnitude half with a code list (2, one an OLDER independent witness). Honesty limits, stated: no paid run yet confirms this changes the outcome live (that is DEL D); the truncation branch is exercised only synthetically because nothing measured reaches the window; and the schedule still does not reach the prompt, so the first attempt guesses as before. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
f751a66bbe
commit
0a81de2d76
4 changed files with 302 additions and 3 deletions
40
CLAUDE.md
40
CLAUDE.md
|
|
@ -2971,6 +2971,46 @@ Python ≥3.10. MAF (`agent-framework-core` 1.16.0, `-orchestrations` 1.1.1 —
|
|||
lesninger teller mot gulvet — regelen måler at kjøringen SÅ seg om, ikke at den forsto; ingen
|
||||
LEVENDE modell har møtt noen av de to nektene (structured-output-grensens klasse); og C2 er
|
||||
hjelpetekst, ikke en gate — den kan ikke gjøre en gjettet sti riktig, bare billigere å rette.
|
||||
- **Stadium 0s ukjent-kode-nekt NAVNGIR kodene prosjektet faktisk kjoeper, i et FAST vindu
|
||||
(P22 DEL A, 15.09):** P21 var den foerste FORANKREDE runden, og den kostet noe maalt like tydelig
|
||||
som den kjoepte: **0 av 20** tilnaerminger validerte (runde 4: 4 av 20), og **26 av 26**
|
||||
avvisninger — 20 approach-rader PLUSS 6 egne forslag, altsaa en STOERRE populasjon enn de 20 —
|
||||
leste `unknown cost code '<paafunn>': not in project P's cost baseline (5 known codes)`. Modellen
|
||||
fant paa `signalregulering_konstruksjon`, `VENTIL_IMP`, `RIGG01`, `baerelag_asfalt` og 22 til, og
|
||||
den KUNNE ikke gjort annet: prisskjemaet naar VALIDATOREN og aldri proposeren, og nekten oppga
|
||||
ANTALLET kjente koder, ikke ett eneste navn. Steg 5 mater setningen ORDRETT inn i neste forsoeks
|
||||
prompt, saa «du gjettet feil, det finnes fem riktige» baerer ingenting aa korrigere mot.
|
||||
**Kontrasten bodde allerede i samme stadium:** MAGNITUDE-halvdelen NAVNGIR baseline-verdien, og
|
||||
DET er halvdelen som lot loekka konvergere i oekt 94. `_known_codes_clause` er den ene
|
||||
renderingen, og magnitude-halvdelen faar den IKKE — der er setningen alt korrigerbar, og en
|
||||
kodeliste paa begge ville gjort de to halvdelene uskillbare for en leser (M A8 → 2 roede, hvorav
|
||||
ett ELDRE uavhengig vitne, `test_stage0_all_violations::test_a_single_violation_is_byte_identical`).
|
||||
**Vinduet er et FAST ANTALL, aldri en andel** (`_CATALOGUE_EXCERPT_CHARS`-regelen; M A2 → 6 roede,
|
||||
M A6 → 3), **og det teller KODER, ikke tegn**, av en maalt grunn: et tegn-kutt kan kappe en kode
|
||||
midt i navnet og gi proposeren en identifikator som finnes ingen steder — `_index_excerpt`-regelen
|
||||
invertert (M A5 → 3 roede paa hel-kode-armen). **Kuttet ANNONSERES** (`first N:`) mens nevneren
|
||||
staar i begge grener, og et skjema som PASSER merkes ikke avkortet (`index_truncated`s regel;
|
||||
M A4 → 2 roede). **Rekkefoelgen er skjemaets egen** — en sortering ville oppfunnet en rangering
|
||||
prosjektet aldri uttalte (M A3 → 1 roed, den armen ALENE). Vinduet er 20, valgt ved MAALING med
|
||||
nevner: hver kostbaseline i repoet eller dets maalte korpora er hoeyst SEKS koder (kontekstsettene
|
||||
5/5/5/5/6, de to `shared/examples` 1 hver, MAJOR-4s avledning av det syntetiske K2-prisskjemaet 3),
|
||||
og det stoerste EKTE leverte prisskjemaet maalt er K2s `prissammenstilling-sheet-1.md` med 14
|
||||
prisede rader av 118 linjer — ingenting maalt naar vinduet; det finnes for den umaalte
|
||||
R761-formede mengdebeskrivelsen, der korpuset erklaerer 2 727 `prosessnr`.
|
||||
**`rejection_stage` er koblingen P21s «a4 5/5 paa stage0-baseline» hviler paa** og noekler paa
|
||||
delstrengen `cost baseline (` — hadde den nye klausulen flyttet den, ville hver stadium-0-nekt
|
||||
blitt omdoept til `other` i stillhet (M A7 → 2 roede, hvorav ett ELDRE uavhengig vitne).
|
||||
**IKKE GJORT, og det er en beslutning:** skjemaet rendres ALDRI inn i proposer-prompten — en ny
|
||||
prompt-flate med egen kostnad per kjoering som dessuten ikke fjerner behovet for at nekten er
|
||||
korrigerbar. Load-bearing MAALT (`tests/test_named_known_codes_loadbearing.py`, 10 armer), **aatte
|
||||
mutasjoner alle roede mot HELE suiten** + groenn kontroll **1873/5** (fra 1863/5, supersett,
|
||||
0 fjernet) og golden `demo-transcript.stdout` BYTE-UENDRET (`shasum -a 1` av INNHOLDET =
|
||||
`ea8c534773acdbe41ae68f2c55724d69aaf8be4f`): A1 tilbake til det bare antallet (7) · A2 andel (6) ·
|
||||
A3 sortert (1) · A4 stille kutt (2) · A5 tegn-slice (3) · A6 ingen binding (3) · A7 bryt
|
||||
stage-markoeren (2) · A8 la magnitude-halvdelen vokse en kodeliste (2). **AErlighets-grenser,
|
||||
uttalt:** ingen betalt kjoering bekrefter ennaa at nekten endrer utfallet levende (DEL D er
|
||||
maalingen); vinduet er aldri naadd av noe maalt, saa avkortnings-grenen er oevd kun syntetisk; og
|
||||
skjemaet naar fortsatt ikke prompten, saa foerste forsoek gjetter som foer.
|
||||
- **STATE.md er local-only** (gitignored). Voyage session-state er efemert; STATE.md er kanonisk kontinuitet.
|
||||
- Prosess: Voyage-plugin (`/trekbrief → /trekplan → /trekexecute → /trekreview`) per større fase.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue