portfolio-optimiser/contexts/tunnel-hauglia-2027/fasit.json
Kjell Tore Guttormsen 7b4f85d77c feat(p21): the PROJECT carries the price, so a run against a road normal can be anchored
Four paid stress rounds ran entirely UN-ANCHORED, all of them, because the one file
loader reads cost-baseline.json out of the BUNDLE and no vegnormal ships one: N100,
N200, N500 and R761 are knowledge, and knowledge carries requirements, never amounts.
The validator's stage 0 -- the one stage that tells an invented cost line from a line
this project actually buys -- was skipped in every single run, so "validated" could not
mean what it says. P20 G1/G2 measured real R761 process numbers (12.11 three times on
Soraasen, 1.1.1 on Lindaas) validating with amounts nobody had anywhere.

--cost-baseline FILE is PM decision (e), taken over the three alternatives P20 wrote
down. A LOADED object, never a path (prepass_payload's rule): the CLI owns the file and
loads it ONCE, so the notice, the stamp and every base of an --across-bundle pass all
descend from one read. ONE parse, two doors -- load_cost_baseline delegates to
load_cost_baseline_file -- while safe_resolve stays on the bundle door alone, because a
project's own schedule is legitimately outside every base. No tolerant twin: this path
exists only because an operator NAMED a file.

DEL B: five anchored context sets, a1-a3 with their line and a4 with none, so stage 0 is
what catches the falsification arm. THE ORDER'S OWN ARM (h) WAS FELLED BY MEASUREMENT:
"no baseline code is a requirement number the base declares" is measured 0 of 4 on the
project-coded sets and 5 of 5 on kontrakt-sorasen -- which is what R761 Prosesskoden IS,
a bill of quantities priced BY process code. The complement keeps both, and the order's
own mutation still bites.

DEL B3: the judge reports anchored (off the run's own stamp), priced per row, and WHICH
falsifier caught the falsification arm.

Load-bearing MEASURED, five mutations all red against the WHOLE suite, green control
1850/5 (from 1809/5, superset, 0 removed), golden byte-unchanged:
A3(i) the flag is read but the baseline is unused (3 red) . A3(ii) only the first base
gets it (1) . A3(iii) report_forbidden drops it (1) . B2(i) a4 gets a line (1, arm (g)
alone) . B2(ii) a code swapped to 12.11 (2, arms (f) and (h)).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 10:49:10 +02:00

79 lines
4.2 KiB
JSON

{
"project_id": "tunnel-hauglia-2027",
"bundle": "n500-2024",
"bundle_id": "vegnormal-n500-2024",
"must_cite": [
{
"approach_id": "a1-ventilasjon-dimensjonering",
"rationale": "Prosjekteringsgrunnlaget forutsetter full lengdeventilasjon over hele profilet. Vi vil vite om N500 tillater en lavere installert effekt for dette tunnelprofilet og denne ÅDT-en.",
"concepts": [
{
"path": "krav/N500/id-bfb0edb4-15ad-4fb1-96e8-a1ffb65f2b40.md",
"title": "Krav 10.4.3—1 Mekanisk ventilasjon (impulsventilator)",
"ref": "Krav 10.4.3—1"
},
{
"path": "krav/N500/id-e897fcb1-36ab-4198-ee5f-764833cce9d2.md",
"title": "Krav 10.4.3—2 Mekanisk ventilasjon (impulsventilator)",
"ref": "Krav 10.4.3—2"
},
{
"path": "krav/N500/id-15ccfe60-c88c-4174-8b28-5c660e6a7d9e.md",
"title": "Krav 10.4.3—3 Mekanisk ventilasjon (impulsventilator)",
"ref": "Krav 10.4.3—3"
}
]
},
{
"approach_id": "a2-frostsikring-lengde",
"rationale": "Frostsikringen er lagt 180 m inn fra hver portal. Spørsmålet er hva N500 faktisk krever av frostmengde og isolasjonsløsning.",
"concepts": [
{
"path": "krav/N500/id-92e2836a-90af-4797-df73-981ab02da81d.md",
"title": "Krav 8.1.2—1 Frostdimensjonering",
"ref": "Krav 8.1.2—1"
},
{
"path": "krav/N500/id-7c24c166-3659-414c-fe81-07373f33b2b5.md",
"title": "Krav 8.4.2—1 Frostisolering med PE-skum eller XPS",
"ref": "Krav 8.4.2—1"
},
{
"path": "krav/N500/id-2b68ddbd-2037-469f-a181-b5db969dc829.md",
"title": "Krav 8.4.2—2 Frostisolering med PE-skum eller XPS",
"ref": "Krav 8.4.2—2"
}
]
},
{
"approach_id": "a3-belysning-adaptiv",
"rationale": "Belysningsanlegget er dimensjonert for konstant nivå. Vi vil vite hvilke kvalitetskrav N500 stiller før vi kan kutte installert effekt.",
"concepts": [
{
"path": "krav/N500/id-dc16192f-4ef6-41e7-b47f-be8f1cd581fb.md",
"title": "Krav 10.3.2—5 Belysningens kvalitet",
"ref": "Krav 10.3.2—5"
},
{
"path": "krav/N500/id-d77adb34-725c-4826-eb26-5fc72f27e711.md",
"title": "Krav 10.3.3—1 Belysning av tunnelveggene",
"ref": "Krav 10.3.3—1"
}
]
}
],
"honesty": "Prosjektet Hauglia-tunnelen er KONSTRUERT av meg: navn, lengde, ÅDT og alle tre kostlinjene (TUN-VENT-01, TUN-FROST-01, TUN-LYS-01) er oppdiktet, og de tre beløpene er plausible størrelsesordener jeg har satt, ikke tall fra et prosjekt. Det som IKKE er konstruert er kravene: hver konsept-sti, tittel og kravnummer i must_cite er lest ordrett ut av n500-2024-basens egen frontmatter. N500 bærer ingen priser, så kodene finnes ikke i basen — settet er derfor bevisst IKKE kjørbart via --proposals-from-mandate. P16: den fjerde tilnaermingen a4-enhetspris-ventilator og dens kostkode TUN-VENT-ENHET er ogsaa KONSTRUERT, og med vilje: den er falsifiseringsarmen, en kostlinje basen ikke baerer grunnlaget for. Beloepet er en satt stoerrelsesorden. P21: settet har naa sin egen cost-baseline.json (6 linjer) — prosjektets prisskjema. Mengdene og enhetsprisene der er OPPDIKTEDE stoerrelsesordener, satt slik at hver av a1-a3 har sin kostlinje og a4 IKKE har en; N500 baerer ingen priser, saa ingen av tallene er lest noe sted.",
"must_refuse": [
{
"approach_id": "a4-enhetspris-ventilator",
"anchors": [
"driftskostnad",
"enhetspris",
"markedspris",
"nåverdi",
"timepris"
],
"rationale": "N500 er en vegnormal og baerer ingen priser, ingen markedspriser, ingen timepriser og ingen naverdiberegning. Et belop pa denne linja har intet grunnlag i basen. Spoersmaalene denne approachen staar for: Hva koster en impulsventilator per stk levert og montert i norsk tunnelentreprise? | Hva er nåverdien over 20 år av å velge adaptiv LED framfor fast belysningsnivå? | Hvilken timepris skal legges til grunn for elektromontør i dette prosjektet?"
}
]
}