F3 and F4, the two findings the S7 acid test (session 98) reported and left. The order required both descriptions to be treated as PREMISES. One held; the other was felled before anything was built on it. F3 -- premise FELLED, asymmetry real. The order read arm C's two refused calls as "the path names a document that EXISTS". Measured against the base that ran: its root holds 27 directories named del-ii-bilag-N-... and 12 documents named inbox-del-ii-bilag-N-....md, and the requested path matches NEITHER -- it is the directory naming convention applied to a document whose real name carries an inbox- prefix. So the two live rounds were the UNKNOWN-path class, and this delivery does NOT recover them (gated). What IS real: read_file on a directory has named read_dir since session 95, while read_dir on a document named neither the rung nor the path. okf.DocumentPathRefused closes that one direction -- a ValueError, a SIBLING of BundlePathNotFound rather than a subclass, built from context_files (never files) and through the same in_dimension predicate the listing uses, quoting the document's REAL name so what it hands back resolves. F4 -- premise HELD, option (c) felled by measurement. All four live artefacts stamped cost_baseline_anchored: False and each arm invented its cost codes. derive_cost_baseline refuses against the delivered base: K2's price schedule is a pandoc SIMPLE table with ONE column header, so making --derive-cost-baseline reachable there would mean inventing a rule for an unmeasured form -- MAJOR-4's own honesty limit. Chose (b) over (a): --require-cost-baseline / run_project(require_cost_baseline=...), OPT-IN and never default, so every bundle without a cost-baseline.json runs unchanged. The gate sits where both branches have bound baseline and ABOVE the dry-run cut, so it fires on the free trip too and, on the paid one, before the first model call. Three CLI refusals by name, each with an rc-0 control. 12 mutations, all red against the WHOLE suite. Green control 1493/5 -> 1511/5 (+18 node-ids, 0 removed); golden demo-transcript.stdout BYTE-UNCHANGED (shasum -a 1 of the CONTENT = ea8c534773acdbe41ae68f2c55724d69aaf8be4f). No paid run: both findings measured offline. Measurement: docs/2026-09-08-f3-f4-nekten-og-forankringen.md Order: 20260908T020419Z-5837110336-from-portfolio-optimiser Co-Authored-By: Claude <Opus 5>
102 lines
5.2 KiB
Markdown
102 lines
5.2 KiB
Markdown
# F3 og F4 — måling før bygging (økt 100, 08.09.2026)
|
|
|
|
Ordre `20260908T020419Z-5837110336`. De to funnene S7-syretesten (økt 98) rapporterte og ikke
|
|
fikset. Ordren krevde at begge beskrivelser ble behandlet som **premisser**, ikke fakta. Det ene
|
|
holdt; det andre ble felt.
|
|
|
|
## 1. F3 — premisset er FELT, asymmetrien er ekte
|
|
|
|
**Ordrens premiss:** «når stien navngir et dokument som FINNES (med eller uten `.md`)» — altså at
|
|
de to nektede kallene i arm C var *feil rung*, ikke *ukjent sti*.
|
|
|
|
**Målt mot basen som faktisk kjørte** (`scratchpad/s7-prepass/k2-bundle-s7`, den samme
|
|
`{run_id}-debate.json` § 4 siterer):
|
|
|
|
```
|
|
read_dir(del-ii-bilag-6-teknisk-oppsett) NEKTET
|
|
read_dir(del-ii-bilag-6-teknisk-oppsett.md) NEKTET
|
|
```
|
|
|
|
Basens rotnivå holder **27 kataloger** navngitt `del-ii-bilag-N-…` og **12 rotdokumenter**
|
|
navngitt `inbox-del-ii-bilag-N-….md`. Det eneste dokumentet i nærheten heter
|
|
`inbox-del-ii-bilag-6-teknisk-oppsett.md`. Stien modellen ba om matcher **verken** en katalog
|
|
**eller** et dokument — den er katalog-navnekonvensjonen anvendt på et dokument hvis ekte navn
|
|
bærer et `inbox-`-prefiks.
|
|
|
|
**Følgen:** de to live-rundene var UKJENT-sti-klassen, ikke feil-rung-klassen. Ingenting i denne
|
|
leveransen ville reddet dem, og det står gatet i `test_the_measured_live_path_is_still_the_unknown_class`
|
|
så ingen senere leser kan lese dette som en fiks av den målte kostnaden. Å resolvere den ville
|
|
vært å gjette hvilket dokument en kaller MENTE — invensjon, ikke validering.
|
|
|
|
**Det som ER ekte:** symmetrien ordren pekte på finnes i koden i nøyaktig ÉN retning.
|
|
`read_file` på en katalog → `explore.DirectoryPathRefused`, som navngir `read_dir`. `read_dir` på
|
|
et dokument → den generiske «has no directory», som navngir verken rungen som leser det eller
|
|
stien den ville tatt. Det gapet er lukket (`okf.DocumentPathRefused`).
|
|
|
|
## 2. F4 — premisset HOLDER, og (c) er felt av måling
|
|
|
|
**Målt på nytt mot de fire artefaktene den betalte kjøringen etterlot:**
|
|
|
|
| arm | `cost_baseline_anchored` | kostkoder i forslaget |
|
|
|---|---|---|
|
|
| A | `False` | `ENGRAVE_MARK` |
|
|
| B | `False` | `RITB-HOURS`, `SYSINT-HOURS` |
|
|
| B1 | `False` | `RITB-consultancy`, `system-integrator` |
|
|
| C | `False` | `Material_Cost_Concrete`, `Material_Cost_Steel`, `Construction_Heating_Fuel` |
|
|
|
|
Stage 0 hoppes over når `baseline is None` (`validator.validate_proposal`), og ingen av linjene er
|
|
knyttet til K2.
|
|
|
|
**Opsjon (c) er felt, med måling.** `okf.derive_cost_baseline` mot den leverte basen:
|
|
|
|
```
|
|
REFUSED: no cost table found in bundle '…/k2-bundle-s7': no concept file carries a markdown table
|
|
whose header names all three of ['code', 'quantity', 'unit_cost']
|
|
```
|
|
|
|
K2s leverte prisskjema (`del-ii-bilag-7-prisskjema/prissammenstilling-sheet-1.md`) er en pandoc
|
|
**simple table med ÉN kolonneoverskrift** (`Prisskjema`) og hver verdi kollapset i den. Å gjøre
|
|
`--derive-cost-baseline` nåbart der ville krevd en regel for en form ingen har målt — nøyaktig den
|
|
ærlighets-grensen MAJOR-4 skrev ned for seg selv.
|
|
|
|
**Valgt: (b), og hvorfor ikke (a).** Synligheten (`cost_baseline_notice`) finnes og er ærlig; det
|
|
den ikke kan er å stoppe et maskinlesbart artefakt som sier `validator_decision: validated` over
|
|
linjer ingenting forankret. Et **opt-in**-flagg lar hver base uten `cost-baseline.json` — hver
|
|
commons-eid golden — kjøre nøyaktig som før, som er dét (a) beskyttet, mens en kaller som trenger
|
|
garantien ber om den ved navn. Målt: mutasjonen som lar gaten fyre uten flagget gir **171 røde**.
|
|
|
|
## 3. Battteriet
|
|
|
|
Grønn kontroll **1493/5** ved øktstart → **1511/5** etter (**+18 node-ider, 0 fjernet**), golden
|
|
`demo-transcript.stdout` BYTE-UENDRET (`shasum -a 1` av INNHOLDET =
|
|
`ea8c534773acdbe41ae68f2c55724d69aaf8be4f`). **12 mutasjoner, alle røde mot HELE suiten:**
|
|
|
|
| # | mutasjon | røde |
|
|
|---|---|---|
|
|
| M1 | detach dokument-grenen | 4 |
|
|
| M2 | bygg oppslaget fra `files` | 1 |
|
|
| M3 | ignorer dimensjonen i oppslaget | 1 |
|
|
| M4 | navngi `read_file` i ukjent-sti-meldingen òg | 4 |
|
|
| M5 | ekko kallerens sti i stedet for det ekte navnet | 2 |
|
|
| M6 | detach forankrings-gaten | 3 |
|
|
| M7 | flytt gaten UNDER dry-run-kuttet | 1 |
|
|
| M8 | dropp fra `report_forbidden` | 1 |
|
|
| M9 | dropp fra portefølje-partisjonen | 1 |
|
|
| M10 | detach `--bundle-dir`-kravet | 1 |
|
|
| M11 | detach fullkjørings-wiringen | 1 |
|
|
| M12 | gaten fyrer uansett flagg | 171 |
|
|
|
|
M9s signatur er egen: uten nekten ved navn STARTER mutanten et porteføljepass og når modellen
|
|
(`ChatClientException`) — altså er nekten dét som holder en argv fra å koste noe.
|
|
|
|
**Ingen betalt kjøring.** Begge funn er målt offline mot artefaktene og basen økt 98 etterlot.
|
|
|
|
## 4. Ærlighets-grenser, uttalt
|
|
|
|
- F3 gjenoppretter **ikke** de to målte rundene (§ 1); den lukker asymmetrien.
|
|
- Ingen LEVENDE modell har lest den nye nekten — at den faktisk endrer neste trekk er ikke bevist
|
|
(structured-output-grensens klasse).
|
|
- Den hostede flaten er **bevisst urørt** for `--require-cost-baseline` (feltet er i ingen av
|
|
hostings tre sett, så den generiske 400-en svarer og Fase 4es to halvdeler står) — MAJOR-4s eget
|
|
valg, gjentatt.
|
|
- Stempelet sier fortsatt AT en kjøring var forankret, aldri HVILKEN projeksjon som forankret den.
|