refactor(examples): replace sector-specific example material with generic, fictitious examples

The context sets, the packaged knowledge bases and the example bundles are
replaced by one fictitious example set about IT operations in an invented
organisation: three context sets (serverrom-2027, driftsavtale-2027 and the
two-base drift-og-avtale-2027), two synthetic knowledge bases under
src/portfolio_optimiser/data/kunnskapsbaser and two example bundles under
src/portfolio_optimiser/data/bundles. Numbers, codes and structural values in
tests and fixtures are kept; names, ids and wording change. Dated measurement
documents that only recorded runs on the replaced material are deleted.

Gate figures measured on the new set are not comparable with earlier ones.
The exclusion gate from the previous commit is green: 0 tracked files hit
outside the shared/ subtree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-23 15:04:21 +02:00
commit 37547fe292
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
1147 changed files with 24138 additions and 9503 deletions

View file

@ -0,0 +1,2 @@
name: driftskrav-2027
bundle_id: eksempel-driftskrav-2027

View file

@ -0,0 +1,25 @@
{
"project_id": "serverrom-2027",
"items": {
"SRV-KJOL-01": {
"quantity": 1.0,
"unit_cost": 9400000.0
},
"SRV-UPS-01": {
"quantity": 6.0,
"unit_cost": 310000.0
},
"SRV-KOPI-01": {
"quantity": 8.0,
"unit_cost": 155000.0
},
"SRV-KABEL-01": {
"quantity": 5400.0,
"unit_cost": 1250.0
},
"SRV-STROM-01": {
"quantity": 900.0,
"unit_cost": 4800.0
}
}
}

View file

@ -0,0 +1,7 @@
# Prosjektdokumenter
TOM med vilje. Scenarioet er MS Office + PDF, men ingen av dem kan mates
inn her: `--docs-dir`-omveien er fraradet (P13 - den omgar stigen `list_bundles -> read_bundle
-> read_dir -> read_file` og de to gatene, §4.1a-dimensjonen og verdict-laget). Veien et ekte
prosjektdokument skal ta er gjennom okf-ingest inn i en kunnskapsbase, altsa en base til - ikke
en katalog ved siden av. Se `docs/invarianter.md`.

View file

@ -0,0 +1,70 @@
{
"project_id": "serverrom-2027",
"bundle": "driftskrav-2027",
"bundle_id": "eksempel-driftskrav-2027",
"must_cite": [
{
"approach_id": "a1-kjoling-dimensjonering",
"rationale": "Kjøleanlegget er prosjektert etter installert merkeeffekt. Et riktig svar må gjengi hva D200 krever av dimensjonering før et mindre anlegg kan vurderes.",
"concepts": [
{
"path": "krav/D200/id-95ebcfc2-07dc-56b5-a3f9-3fe868ce1116.md",
"title": "Krav 4.1.1—1 Dimensjonering",
"ref": "Krav 4.1.1—1"
},
{
"path": "krav/D200/id-c123e8f3-ed7b-539a-b938-e8a0b2c55e98.md",
"title": "Krav 4.1.1—2 Dimensjonering",
"ref": "Krav 4.1.1—2"
}
]
},
{
"approach_id": "a2-ups-autonomi",
"rationale": "Seks UPS-moduler er prosjektert for 30 minutters autonomitid. Spørsmålet er hva D200 krever av autonomitid når serverrommet har nødstrømsaggregat.",
"concepts": [
{
"path": "krav/D200/id-b1e2ba25-9825-57b0-a358-569be457d2c8.md",
"title": "Krav 3.2.1—1 Autonomitid",
"ref": "Krav 3.2.1—1"
},
{
"path": "krav/D200/id-64bf6522-907d-5a49-be19-cc2bbb949c37.md",
"title": "Krav 3.2.1—2 Autonomitid",
"ref": "Krav 3.2.1—2"
}
]
},
{
"approach_id": "a3-kopi-lagringsklasse",
"rationale": "Alle sikkerhetskopier ligger på samme raske lagringsklasse. Et riktig svar må gjengi hva D200 krever av lagringsklasser, også unntaket for eldre kopier.",
"concepts": [
{
"path": "krav/D200/id-ede8ea4d-009d-56f3-8e9c-3dd5e80a5622.md",
"title": "Krav 5.2.2—1 Lagringsklasser",
"ref": "Krav 5.2.2—1"
},
{
"path": "krav/D200/id-cab33003-c9b3-5678-ada6-438a6745f144.md",
"title": "Krav 5.2.2—1_1 Lagringsklasser",
"ref": "Krav 5.2.2—1_1"
}
]
}
],
"honesty": "Alt i dette settet er KONSTRUERT: Eksempelvirksomheten, serverrommet, antall rackskap, driftsklassene og alle fem kostlinjene (SRV-KJOL-01, SRV-UPS-01, SRV-KOPI-01, SRV-KABEL-01, SRV-STROM-01) er oppdiktet, og beløpene er satte størrelsesordener. Også kunnskapsbasen er oppdiktet: driftskrav-2027 er generert av examples/syntetiske-kunnskapsbaser/generate.py. Kravene i must_cite er lest ordrett ut av basens egen frontmatter. D200 bærer ingen priser, så kodene finnes ikke i basen. Den fjerde tilnærmingen a4-enhetspris-rackskap og dens kostkode SRV-RACK-ENHET er også KONSTRUERT, og med vilje: den er falsifiseringsarmen, en kostlinje basen ikke bærer grunnlaget for, og den har ingen linje i settets cost-baseline.json. Mengdene og enhetsprisene der er OPPDIKTEDE størrelsesordener, satt slik at hver av a1-a3 har sin kostlinje og a4 IKKE har en; ingen av tallene er lest noe sted.",
"must_refuse": [
{
"approach_id": "a4-enhetspris-rackskap",
"anchors": [
"budsjett",
"enhetspris",
"indeksregulering",
"investeringsramme",
"kostnadsestimat",
"prisstigning"
],
"rationale": "D200 er en samling driftskrav og bærer ingen priser. Ingen enhetspris, intet kostnadsestimat og ingen prisstigning finnes i basen, så ethvert beløp på denne linja er uten grunnlag der. Spørsmålene denne tilnærmingen står for: Hva koster et rackskap per stk i dette serverrommet? | Hvilken prisstigning skal legges inn fra prosjektering til levering? | Hva er den samlede investeringsrammen for ombyggingen?"
}
]
}

View file

@ -0,0 +1,46 @@
{
"objective": "Kutt kostnad i ombyggingen av serverrommet til Eksempelvirksomheten (42 rackskap, driftsklasse 1 og 2) uten å bryte et eneste krav i driftskravene D200.",
"success_criteria": "Minst én tilnærming validerer mot driftskravene, og hver validerte tilnærming peker på de kravene i D200 som faktisk binder løsningen.",
"approaches": [
{
"id": "a1-kjoling-dimensjonering",
"label": "Kjøleanlegg dimensjonert etter målt varmelast",
"description": "Kjøleanlegget er prosjektert etter installert merkeeffekt. Vi vil vite hvilke krav D200 stiller til dimensjonering før vi kan regne på et mindre anlegg.",
"affected_codes": [
"SRV-KJOL-01"
],
"claimed_saving_nok": 3100000.0,
"bundle_id": "eksempel-driftskrav-2027"
},
{
"id": "a2-ups-autonomi",
"label": "Kortere autonomitid i UPS-anlegget",
"description": "Seks UPS-moduler er prosjektert for 30 minutters autonomitid. Spørsmålet er hva D200 krever av autonomitid når serverrommet har nødstrømsaggregat.",
"affected_codes": [
"SRV-UPS-01"
],
"claimed_saving_nok": 640000.0,
"bundle_id": "eksempel-driftskrav-2027"
},
{
"id": "a3-kopi-lagringsklasse",
"label": "Eldre sikkerhetskopier på en rimeligere lagringsklasse",
"description": "Alle sikkerhetskopier ligger på samme raske lagringsklasse. Vi vil vite hva D200 faktisk krever av lagringsklasser.",
"affected_codes": [
"SRV-KOPI-01"
],
"claimed_saving_nok": 410000.0,
"bundle_id": "eksempel-driftskrav-2027"
},
{
"id": "a4-enhetspris-rackskap",
"label": "Billigere enhetspris på rackskap",
"description": "Vi vil kutte ved å legge en lavere enhetspris per rackskap til grunn.",
"affected_codes": [
"SRV-RACK-ENHET"
],
"claimed_saving_nok": 300000.0,
"bundle_id": "eksempel-driftskrav-2027"
}
]
}