feat(deck): arkitekturen som kretsløp — ny slide 6 i kort-presentasjonen

Decket beskrev arkitekturen i prosa og tegnet den stykkevis (slide 8 som
lagdeling, slide 9 som åtte steg), men aldri som ÉN krets. Ny slide 6 åpner
«Slik virker det» med hele maskinen på ett bilde: kunnskapsbasen → KI-debatten
(foreslår/utfordrer) → regnekoden → fagpersonen → porten → tilbake i basen.

Håndskrevet tema-bevisst SVG etter slide 7-mønsteret (økt 29): null eksterne
avhengigheter, alle farger fra CSS-variablene, ingen fargeliteraler. Ingen nye
påstander — hver boks og hver pil står allerede som prosa et annet sted i
decket. Retur-pilene er `svg-line-hi` og forover-pilene `svg-line`, samme
konvensjon som åtte-stegs-sliden, så «tilbake» leses likt på tvers av decket.

MÅLT i nettleser over lokal HTTP (127.0.0.1, ikke file://), .inner + padding —
aldri section (100vh gir samme tall for hver slide): ny slide 852 px, taket er
900, og høyeste er fortsatt slide 7 med 864. Identisk i begge temaer via
data-theme. Første plassering av «avvist — nytt forsøk» lå UNDER regnekode-
boksens kant (fanget ved zoom, ikke ved full skjermdump) og er flyttet.

«Ærlig status» → «Status» (kicker + data-part): overskriften annonserte sin
egen ærlighet, og alle de andre delene bærer ett nøytralt substantiv
(Problemet, Grepet, Menneskene, Verdien). Kortformen føyer seg inn i mønsteret.

Følgeendringer, grepet FØR commit: «Elleve sider» → «Tolv sider», README
«11 slides» → «12», seksjonskommentarene renummerert. Telleren i baren er
avledet av slides.length og viser 6/12 og 12/12 uten endring.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015Cgm9YYHEyTFEz6pc6JgmH
This commit is contained in:
Kjell Tore Guttormsen 2026-08-14 11:59:22 +02:00
commit d371475ec9
2 changed files with 68 additions and 10 deletions

View file

@ -20,7 +20,7 @@ decides the numbers; domain experts judge the outcomes (human-in-the-loop); and
*AI-generated: all code produced by Claude Code through dialog-driven development, with human
review, test and judgement before anything ships.*
A short visual introduction — 11 slides, in Norwegian, for a general audience — ships with the
A short visual introduction — 12 slides, in Norwegian, for a general audience — ships with the
repo: open [docs/kort-presentasjon.html](docs/kort-presentasjon.html) in any browser.
## Install

View file

@ -125,7 +125,7 @@
<div class="kicker">portfolio-optimiser · åpen kildekode</div>
<h1>Pengene inne i porteføljen</h1>
<p class="lead-sub">Et åpent rammeverk som leter etter kostnadsbesparelser i hvert enkelt prosjekt — og som ikke får lov til å godkjenne sine egne funn.</p>
<p class="foot-note">Elleve sider. Kjøringstallene underveis er hentet fra en eksempelkjøring som følger med i repoet — du kan gjenta den selv, uten kostnad.</p>
<p class="foot-note">Tolv sider. Kjøringstallene underveis er hentet fra en eksempelkjøring som følger med i repoet — du kan gjenta den selv, uten kostnad.</p>
</div>
</section>
@ -247,7 +247,65 @@
</div>
</section>
<!-- ============ 6 · KUNNSKAPSBASENE ============ -->
<!-- ============ 6 · ARKITEKTUREN SOM KRETSLOEP ============ -->
<section class="slide" data-part="Slik virker det">
<div class="inner">
<div class="kicker">Slik virker det</div>
<h2>Systemet er et kretsløp med fem deler</h2>
<div class="fig">
<svg viewBox="0 0 900 282" role="img" aria-label="Fem deler i et kretsløp: kunnskapsbasen, KI-debatten, regnekoden, fagpersonen og porten som skriver godkjente dommer tilbake i basen">
<rect class="svg-box-hi" x="8" y="100" width="206" height="76" rx="3"/>
<text class="svg-ink" x="111" y="126" font-size="14.5" font-weight="650" text-anchor="middle">Kunnskapsbasen</text>
<text class="svg-muted" x="111" y="146" font-size="11" text-anchor="middle">dokumentene fagfolk eier</text>
<text class="svg-muted" x="111" y="162" font-size="11" text-anchor="middle">start for hver kjøring</text>
<rect x="306" y="4" width="288" height="94" rx="3" fill="var(--surface-2)" stroke="var(--line)" stroke-width="1.5"/>
<text class="svg-muted" x="450" y="24" font-size="13.5" font-weight="650" text-anchor="middle">KI-debatten</text>
<rect class="svg-box" x="318" y="34" width="132" height="54" rx="3"/>
<text class="svg-ink" x="384" y="56" font-size="13" font-weight="650" text-anchor="middle">Foreslår</text>
<text class="svg-muted" x="384" y="74" font-size="10.5" text-anchor="middle">finner kandidattiltak</text>
<rect class="svg-box" x="462" y="34" width="120" height="54" rx="3"/>
<text class="svg-ink" x="522" y="56" font-size="13" font-weight="650" text-anchor="middle">Utfordrer</text>
<text class="svg-muted" x="522" y="74" font-size="10.5" text-anchor="middle">angriper begrunnelsen</text>
<rect x="686" y="100" width="206" height="76" rx="3" fill="var(--warn-bg)" stroke="var(--accent)" stroke-width="2.5"/>
<text x="789" y="126" font-size="14.5" font-weight="650" text-anchor="middle" fill="var(--warn-fg)">Regnekoden</text>
<text x="789" y="146" font-size="11" text-anchor="middle" fill="var(--warn-fg)">avstemmer mot prosjektets tall</text>
<text x="789" y="162" font-size="11" text-anchor="middle" fill="var(--warn-fg)">blokkerer resten</text>
<rect x="560" y="200" width="232" height="72" rx="3" fill="var(--ok-bg)" stroke="var(--ok-fg)" stroke-width="2.5"/>
<text x="676" y="226" font-size="14.5" font-weight="650" text-anchor="middle" fill="var(--ok-fg)">Fagpersonen</text>
<text x="676" y="246" font-size="11" text-anchor="middle" fill="var(--ok-fg)">ser bare det som overlevde</text>
<text x="676" y="262" font-size="11" text-anchor="middle" fill="var(--ok-fg)">godkjenner eller avviser</text>
<rect class="svg-box-hi" x="222" y="200" width="228" height="72" rx="3"/>
<text class="svg-ink" x="336" y="226" font-size="14.5" font-weight="650" text-anchor="middle">Porten</text>
<text class="svg-muted" x="336" y="246" font-size="11" text-anchor="middle">bare en godkjent dom</text>
<text class="svg-muted" x="336" y="262" font-size="11" text-anchor="middle">skrives inn i basen</text>
<path class="svg-line" d="M 150 100 C 198 66 240 56 296 60" marker-end="url(#mA)"/>
<path class="svg-line" d="M 598 60 C 656 60 700 74 746 96" marker-end="url(#mA)"/>
<path class="svg-line" d="M 788 176 C 788 190 782 196 770 197" marker-end="url(#mA)"/>
<path class="svg-line" d="M 556 236 H 460" marker-end="url(#mA)"/>
<path class="svg-line-hi" d="M 218 236 C 158 236 111 226 111 184" marker-end="url(#mAh)"/>
<path class="svg-line-hi" d="M 682 138 C 640 134 610 120 594 102" stroke-dasharray="5 4" marker-end="url(#mAh)"/>
<text class="svg-muted" x="674" y="184" font-size="11.5" text-anchor="end">avvist — nytt forsøk</text>
<text class="svg-muted" x="450" y="136" font-size="12.5" text-anchor="middle">ingenting når fagpersonen uten å ha passert regnekoden</text>
<text class="svg-accent" x="450" y="156" font-size="12.5" font-weight="650" text-anchor="middle">ingenting går inn i basen uten en dom</text>
<defs>
<marker id="mA" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0 L8 4 L0 8 z" class="svg-muted"/></marker>
<marker id="mAh" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0 0 L8 4 L0 8 z" class="svg-accent"/></marker>
</defs>
</svg>
</div>
<p class="say">Alt starter i kunnskapsbasen. Derfra leser KI-modellene seg fram til et kandidattiltak og angriper hverandres begrunnelse. Regnekoden avstemmer tallene mot prosjektets egne kostlinjer og slipper bare gjennom det som lar seg bekrefte — fagpersonen får aldri se noe som ikke har passert der.</p>
<p class="say dim">De to veiene tilbake er det som lukker kretsen: et avvist forslag går tilbake til modellene for et nytt forsøk, i et begrenset antall runder, og en dom et menneske har felt går gjennom porten og inn i basen igjen. Neste kjøring starter dermed på et litt bedre grunnlag enn den forrige.</p>
</div>
</section>
<!-- ============ 7 · KUNNSKAPSBASENE ============ -->
<section class="slide" data-part="Slik virker det">
<div class="inner">
<div class="kicker">Slik virker det</div>
@ -312,7 +370,7 @@
</div>
</section>
<!-- ============ 7 · ARKITEKTUREN ============ -->
<!-- ============ 8 · ARKITEKTUREN ============ -->
<section class="slide" data-part="Slik virker det">
<div class="inner">
<div class="kicker">Slik virker det</div>
@ -348,7 +406,7 @@
</div>
</section>
<!-- ============ 8 · DE ÅTTE STEGENE ============ -->
<!-- ============ 9 · DE ÅTTE STEGENE ============ -->
<section class="slide" data-part="Slik virker det">
<div class="inner">
<div class="kicker">Slik virker det</div>
@ -408,7 +466,7 @@
</div>
</section>
<!-- ============ 9 · MENNESKENE ============ -->
<!-- ============ 10 · MENNESKENE ============ -->
<section class="slide" data-part="Menneskene">
<div class="inner">
<div class="kicker">Menneskene</div>
@ -441,7 +499,7 @@
</div>
</section>
<!-- ============ 10 · VERDIEN ============ -->
<!-- ============ 11 · VERDIEN ============ -->
<section class="slide" data-part="Verdien">
<div class="inner">
<div class="kicker">Verdien</div>
@ -468,10 +526,10 @@
</div>
</section>
<!-- ============ 11 · ÆRLIG STATUS ============ -->
<section class="slide" data-part="Ærlig status">
<!-- ============ 12 · STATUS ============ -->
<section class="slide" data-part="Status">
<div class="inner">
<div class="kicker">Ærlig status</div>
<div class="kicker">Status</div>
<h2>Hva som er bevist — og hva som ikke er</h2>
<div class="cards">
<div class="card good">