feat(navigation,validator): read_dir names the rung that reads a document, and a run can require its anchoring
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>
This commit is contained in:
parent
76b939b3b8
commit
9232f94041
8 changed files with 759 additions and 2 deletions
102
docs/2026-09-08-f3-f4-nekten-og-forankringen.md
Normal file
102
docs/2026-09-08-f3-f4-nekten-og-forankringen.md
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue