smlflg commited on
Commit
d45fedb
·
verified ·
1 Parent(s): 0741aea

Initial public upload from Projekte/hai-version-explainer

Browse files
.codex/config.toml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Coding MCPs: project-local registration (2026-09-07).
2
+
3
+ [mcp_servers.serena]
4
+ command = "/home/smlflg/.local/share/coding-mcp/serena/.venv/bin/serena"
5
+ args = ["start-mcp-server", "--context=codex", "--project", "/home/smlflg/Projekte/hai-version-explainer", "--enable-web-dashboard", "false", "--open-web-dashboard", "false", "--enable-gui-log-window", "false"]
6
+ cwd = "/home/smlflg/Projekte/hai-version-explainer"
7
+ enabled = true
8
+ startup_timeout_sec = 120
9
+ tool_timeout_sec = 180
10
+
11
+ [mcp_servers.serena.env]
12
+ "SERENA_HOME" = "/home/smlflg/.local/share/coding-mcp/serena/state"
13
+
14
+ [mcp_servers.gitnexus]
15
+ command = "/home/smlflg/.nvm/versions/node/v24.13.0/bin/node"
16
+ args = ["/home/smlflg/.local/share/coding-mcp/gitnexus/node_modules/gitnexus/dist/cli/index.js", "mcp"]
17
+ cwd = "/home/smlflg/Projekte/hai-version-explainer"
18
+ enabled = true
19
+ startup_timeout_sec = 120
20
+ tool_timeout_sec = 180
21
+
22
+ [mcp_servers.gitnexus.env]
23
+ "GITNEXUS_HOME" = "/home/smlflg/.local/share/coding-mcp/gitnexus/runtime"
24
+
25
+ [mcp_servers.context7]
26
+ command = "/home/smlflg/.nvm/versions/node/v24.13.0/bin/node"
27
+ args = ["/home/smlflg/.local/share/coding-mcp/context7/node_modules/@upstash/context7-mcp/dist/index.js"]
28
+ cwd = "/home/smlflg/Projekte/hai-version-explainer"
29
+ enabled = true
30
+ startup_timeout_sec = 120
31
+ tool_timeout_sec = 180
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ assets/reference/hai-intake-cockpit-dark.png filter=lfs diff=lfs merge=lfs -text
37
+ assets/reference/hai-intake-cockpit-light.png filter=lfs diff=lfs merge=lfs -text
assets/app.js ADDED
@@ -0,0 +1,782 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const VERSION_DATA = {
2
+ "v1-0": {
3
+ number: "V1.0",
4
+ title: "Ordnungs-Agent mit menschlichem Gate",
5
+ status: "gesicherter Snapshot",
6
+ oneLine: "V1.0 macht HAI erstmals wiederholbar: Projektlage, naechster Schritt und Ausfuehrung laufen durch ein menschliches Gate.",
7
+ skillstand: [
8
+ "Projektlage, Idee, Codezustand, Briefing, Minimierung und Execution-Loop werden als Artefakt-Kette gebaut.",
9
+ "Der Executor arbeitet nur auf akzeptierten EXECUTION_STEPs; der Validator prueft danach read-only."
10
+ ],
11
+ skills: ["project-state", "idea-spec", "code-state", "briefing", "minimize", "execution-loop"],
12
+ stand: "Erster gespeicherter agentischer HAI-Workflow vom 2026-05-08; praktisch brauchbar, aber aus BahnAgent/Testfall entstanden.",
13
+ problem: "Unklar, ob der Workflow ausserhalb des Ursprungstests generalisiert. Die alte Ordnung war noch nicht als wiederholbarer Projektmanagement-Prozess bewiesen.",
14
+ proposal: "V1 sichern, Rollen trennen und danach mit fremden Projekten pruefen. Nicht die Basis umbauen, bevor Generalisierung messbar ist.",
15
+ implementation: "HAI-Agent erzeugt PROJECT_STATE, PROMPT, CODE_STATE, BRIEFING und NEXT_STEP; akzeptierte EXECUTION_STEPs laufen ueber Executer und Validator.",
16
+ test: "Nachfolgender V1.1-Dreierlauf auf WerBinIch, NasaCode und PromptBoost.",
17
+ validationText: "2 PASS, 1 PARTIAL; kein BahnAgent-Overfit sichtbar, aber Root-Bindung und Reporting bleiben offen.",
18
+ method: "Methodischer Kern: erst reproduzierbaren Baseline-Snapshot sichern, dann Generalisierung getrennt evaluieren.",
19
+ good: ["Klare Trennung: planen, ausfuehren, validieren.", "Samuel bleibt Gate vor jeder Ausfuehrung."],
20
+ weak: ["Noch stark aus BahnAgent/Testfall geboren.", "Root-Bindung und dauerhafte Reports fehlen."],
21
+ next: "V1.1 muss beweisen, dass HAI auch ausserhalb des Ursprungstests den kleinsten sinnvollen Schritt findet.",
22
+ background: "Der erste Fortschritt ist nicht Autonomie, sondern Wiederherstellbarkeit.",
23
+ proof: ["EXECUTION_STEP Gate", "read-only Validator", "2 PASS / 1 PARTIAL"],
24
+ sources: [
25
+ { label: "V1 README", href: "../../V1/README.md" },
26
+ { label: "V1 Manifest", href: "../../V1/MANIFEST.md" }
27
+ ],
28
+ matrix: ["Artefakt-Kette", "Briefing entsteht", "Validator", "kaum", "hartes Execution-Gate"],
29
+ asciiArt: String.raw`
30
+ V1.0 BASELINE / OWNER-GATE
31
+
32
+ MENSCH / OWNER
33
+ Zustand + Absicht
34
+ |
35
+ v
36
+ +------------------+ +------------------+
37
+ | PROJECT_STATE | ---> | BRIEFING |
38
+ +------------------+ +------------------+
39
+ | |
40
+ v v
41
+ +------------------+ +------------------+
42
+ | CODE_STATE | ---> | NEXT_STEP |
43
+ +------------------+ +---------+--------+
44
+ |
45
+ HUMAN ACCEPT?
46
+ no | yes
47
+ v
48
+ +-------------------+
49
+ | hai-executer |
50
+ +---------+---------+
51
+ |
52
+ v
53
+ +-------------------+
54
+ | hai-validator |
55
+ +---------+---------+
56
+ |
57
+ v
58
+ EVIDENZ -> OWNER`,
59
+ website: {
60
+ storyTitle: "Vom Chaos zum ersten Owner-Gate",
61
+ storyLead: "V1.0 ist die erste HAI-Website ueber Wiederholbarkeit: nicht mehr Agent macht irgendwas, sondern Mensch akzeptiert einen konkreten Schritt.",
62
+ before: "Agentische Arbeit war moeglich, aber nicht stabil als Prozess greifbar.",
63
+ after: "PROJECT_STATE, BRIEFING, NEXT_STEP, Executer und Validator bilden eine kontrollierte Linie.",
64
+ ownerQuestion: "Hat Samuel nach dem Ruecklauf mehr Klarheit als vor dem Start?"
65
+ }
66
+ },
67
+ "v1-1": {
68
+ number: "V1.1",
69
+ title: "Generalisierung statt Demo-Fit",
70
+ status: "PARTIAL, Richtung stimmt",
71
+ oneLine: "V1.1 loest HAI vom Demo-Fit: Projektabsicht wird breiter gelesen, PromptGarage bleibt read-only, Human Gate bleibt hart.",
72
+ skillstand: [
73
+ "project-state -> user-wishlist -> idea-spec -> code-state -> briefing -> minimize -> execution-loop.",
74
+ "V1 bleibt stabil; Executor und Validator werden nicht umgebaut."
75
+ ],
76
+ skills: ["project-state", "user-wishlist", "idea-spec", "code-state", "briefing", "minimize"],
77
+ stand: "V1.1 ist der Generalization-Lernstand nach drei fremden Projekten: semantisch besser, aber noch PARTIAL.",
78
+ problem: "HAI hing zu stark an README/IDEA und schrieb bei PromptBoost Artefakte in den falschen Root-Kontext.",
79
+ proposal: "Intent-Quellen breiter lesen, PromptGarage nur read-only als historisches Quellenmaterial nutzen und Root-Bindung haerten.",
80
+ implementation: "Neuer Pre-Briefing-Schritt hai-user-wishlist; hai-idea-spec akzeptiert idea-aehnliche Dateien statt nur feste Dateinamen.",
81
+ test: "Manuelle Evaluation: WerBinIch PASS, NasaCode PASS, PromptBoost PARTIAL.",
82
+ validationText: "Generalisiert semantisch ueber drei Projekte; nicht clean PASS wegen Project-Root-Ambiguitaet und fehlendem durable Verification-Report.",
83
+ method: "Overfit-Test gegen neue Projektklassen statt Vertrauen in einen gelungenen Demo-Fall.",
84
+ good: ["HAI erkennt Projektabsicht breiter.", "PromptGarage wird nur read-only als Kontext genutzt."],
85
+ weak: ["Root-Bindung ist noch nicht sauber genug.", "Momentum und Verifikationsreport bleiben zu schwach."],
86
+ next: "V1.2 muss aus sicherem PARTIAL einen klareren PASS machen: Root bestaetigen, Verifikation dokumentieren, Nutzen zeigen.",
87
+ background: "Generalisierung heisst: Kontext nutzen, ohne ihn als Auftrag zu missverstehen.",
88
+ proof: ["2 PASS", "1 PARTIAL", "PromptGarage read-only"],
89
+ sources: [
90
+ { label: "V1.1 README", href: "../../V1.1/README.md" },
91
+ { label: "V1.1 Final Report", href: "../../docs/hai-architecture/v1_1_generalization_manual_eval_2026-05-08_1835/FINAL_GENERALIZATION_REPORT.md" }
92
+ ],
93
+ matrix: ["breiter Intent", "mehr Kontext", "manueller 3-Projekt-Test", "kaum", "Human Gate bleibt"],
94
+ asciiArt: String.raw`
95
+ V1.1 INTENT-DISCOVERY / WISHLIST
96
+
97
+ MENSCH / OWNER
98
+ |
99
+ aktuelle Anweisung | bleibt hoechste Quelle
100
+ v
101
+ +-----------+ +---------------+ +-------------+
102
+ | README | | idea-aehnlich | | Projektspur |
103
+ +-----+-----+ +-------+-------+ +------+------+
104
+ \ | /
105
+ \ | /
106
+ v v v
107
+ +-------------------------------------+
108
+ | hai-user-wishlist |
109
+ | PromptGarage nur READ-ONLY |
110
+ +------------------+------------------+
111
+ |
112
+ v
113
+ +-------------------------------------+
114
+ | idea-spec liest Intent breiter |
115
+ +------------------+------------------+
116
+ |
117
+ v
118
+ BRIEFING -> NEXT_STEP
119
+ |
120
+ v
121
+ alte Spuren erklaeren, befehlen nicht`,
122
+ website: {
123
+ storyTitle: "Intent breiter lesen, ohne alte Prompts zu befehligen",
124
+ storyLead: "V1.1 zeigt HAI als Uebersetzer zwischen aktuellem Projekt und historischen Wunsch-Spuren.",
125
+ before: "HAI war zu abhaengig von README/IDEA und konnte fremde Projektformen misslesen.",
126
+ after: "Wishlist und breitere Intent-Discovery machen Kontext nuetzlich, aber PromptGarage bleibt read-only.",
127
+ ownerQuestion: "Bleibt die aktuelle menschliche Absicht hoeher priorisiert als alte Spuren?"
128
+ }
129
+ },
130
+ "v1-2": {
131
+ number: "V1.2",
132
+ title: "Von Projekt-Verstehen zu stabiler Ausfuehrung",
133
+ status: "validierter Zwischenschritt",
134
+ oneLine: "V1.2 verbessert Intent; die Bruchstelle wird Umsetzung.",
135
+ skillstand: [
136
+ "HAI erkennt mehr Quellen als IDEA/README und behandelt fehlende Standarddateien nur als Signal.",
137
+ "Gehaertet werden handoff, minimize, execution-loop, user-wishlist und idea-spec."
138
+ ],
139
+ skills: ["project-state", "wishlist", "idea", "code", "briefing", "minimize", "executor-handoff", "loop"],
140
+ stand: "V1.2 verbessert Projektwahrnehmung deutlich; die Hauptbruchstelle verschiebt sich zur Ausfuehrung.",
141
+ problem: "Sonnenuhr bekam einen zu grossen README-Step; schloss_PDF zeigte fragile Executor/Validator-Loop-Zustaende.",
142
+ proposal: "Atomization Gate haerten, NEXT_STEP fuer Menschen knapp lassen und daraus ein executor-klares Handoff erzeugen.",
143
+ implementation: "hai-minimize verlangt Step IDs und kleinere bounded surfaces; hai-executor-handoff erzeugt EXECUTOR_HANDOFF_NEXT_STEP; loop bekommt Timeout/No-Report-Zustaende.",
144
+ test: "Dreierlauf auf WG-Agent, Sonnenuhr und schloss_PDF; zusaetzlich meta-new-agent Review, doctor und Chat-Smoke.",
145
+ validationText: "Intent ca. 60 -> 85; PromptGarage 0 -> 80 brauchbar; Loop bleibt nur ca. 55-60 robust.",
146
+ method: "Methodisch: Fehlerklasse isolieren. Wenn Verstehen besser wird, wird die naechste Hypothese Ausfuehrungsrobustheit.",
147
+ good: ["Intent-Erkennung grob 60 -> 85.", "PromptGarage-Nutzung 0 -> 80, weiter immutable/read-only."],
148
+ weak: ["Loop nur 55-60 robust.", "Steps teils noch zu gross fuer saubere Ausfuehrung."],
149
+ next: "V1.3 muss pruefen, ob ein Schritt menschlich sinnvoll ist, nicht nur klein.",
150
+ background: "Projektverstehen generalisiert; jetzt muss HAI schlechte Arbeit aktiv verhindern.",
151
+ proof: ["Intent 60 -> 85", "PromptGarage 0 -> 80", "Loop 55-60", "3 Testprojekte"],
152
+ sources: [
153
+ { label: "V1.2 Report", href: "../../V1.2/V1_2_GENERALIZATION_REPORT.md" },
154
+ { label: "V1.2 Changelog", href: "../../V1.2/CHANGELOG.md" }
155
+ ],
156
+ matrix: ["85% grob", "Executor-Handoff", "doctor + meta PASS", "Loop-Gates", "weiter hart"],
157
+ asciiArt: String.raw`
158
+ V1.2 HANDOFF / ATOMIZATION ARCHITECTURE
159
+
160
+ MENSCHLICH KNAPPER NEXT_STEP
161
+ |
162
+ v
163
+ +-------------------------------+
164
+ | Step-ID + Allowed Changes |
165
+ | Atomizitaets-Gate |
166
+ +---------------+---------------+
167
+ |
168
+ scope-identisch uebersetzen
169
+ v
170
+ +-------------------------------+
171
+ | EXECUTOR_HANDOFF_NEXT_STEP |
172
+ +---------------+---------------+
173
+ |
174
+ +--------------+--------------+
175
+ | |
176
+ v v
177
+ +----------------+ +----------------+
178
+ | hai-executer | | watchdog gates |
179
+ +-------+--------+ | timeout/no rpt |
180
+ | +----------------+
181
+ v
182
+ +----------------+
183
+ | hai-validator |
184
+ +-------+--------+
185
+ |
186
+ v
187
+ ACCEPT / REJECT / BLOCKED mit Beweis`,
188
+ website: {
189
+ storyTitle: "Kleiner Schritt heisst noch nicht ausfuehrbarer Schritt",
190
+ storyLead: "V1.2 ist die Website ueber Handoff: aus menschlich knappem NEXT_STEP wird executor-klare Arbeit.",
191
+ before: "Verstehen wurde besser, aber die Ausfuehrung blieb fragil.",
192
+ after: "Step-ID, Handoff, Timeout und No-Report-Gates machen Failure sichtbar.",
193
+ ownerQuestion: "Kann Samuel erkennen, ob die Maschine wirklich im erlaubten Scope blieb?"
194
+ }
195
+ },
196
+ "v1-3": {
197
+ number: "V1.3",
198
+ title: "Projekt-Sinn vor Agenten-Arbeit",
199
+ status: "eingefrorene akzeptierte Baseline",
200
+ oneLine: "V1.3 fragt nicht nur, ob ein Schritt klein ist, sondern ob er fuer Samuel ueberhaupt Sinn macht.",
201
+ skillstand: [
202
+ "HAI unterscheidet Build, Verify, Goal reached, Archive/Maintain und menschliche Entscheidung.",
203
+ "Neu: explain-better, Lifecycle-Gates, executor handoff und canonical NEXT_STEP refresh."
204
+ ],
205
+ skills: ["project-state", "explain-better", "minimize", "executor-handoff", "execution-loop", "lifecycle-gates"],
206
+ stand: "V1.3 ist die akzeptierte Baseline nach V1.4-PASS; installiert, gesichert und eingefroren.",
207
+ problem: "V1.2 konnte kleine Schritte erzeugen, die technisch korrekt, aber menschlich schlecht, stale oder sinnlos waren.",
208
+ proposal: "Vor NEXT_STEP nicht nur Atomizitaet pruefen, sondern Lifecycle und Human-Payoff: already works, goal reached, event passed, archive/maintain.",
209
+ implementation: "hai-explain-better zwischen Briefing und Minimize; Lifecycle-Gates; canonical NEXT_STEP refresh/blocking nach Human Redirect.",
210
+ test: "V1.3-Eval auf TypoTuner, PseudoLogikPyhthonCPP und HeumandenParty; danach V1.4-Proof-Run als Regression.",
211
+ validationText: "V1.3-Eval PARTIAL mit zwei Patches; V1.4-Proof danach PASS und keine Pflicht-Patches.",
212
+ method: "Nicht nur Output-Qualitaet messen, sondern menschlichen Nutzen und Stop-Bedingungen als Erfolgskriterium.",
213
+ good: ["Weniger Busywork und klarere NEXT_STEPs.", "Bessere Gates vor Deploy, Commit, Push und externem Zugriff."],
214
+ weak: ["Kein Produkt-Autopilot.", "Bei Auth, Hosting oder Entscheidung blockt HAI statt zu raten."],
215
+ next: "V1.4 muss die Baseline an frischen Projekten pruefen, ohne schon wieder umzubauen.",
216
+ background: "HAI wird ein Sinn-Filter vor kontrollierter Agentenarbeit.",
217
+ proof: ["V1.4 PASS", "No mandatory patch", "Lifecycle Gates", "Human Gate"],
218
+ sources: [
219
+ { label: "V1.3 Freeze", href: "../../V1.3/BASELINE_FREEZE.md" },
220
+ { label: "V1.3 Eval", href: "../../docs/hai-architecture/v1_3_generalization_manual_eval_2026-05-08_1953/FINAL_GENERALIZATION_REPORT.md" }
221
+ ],
222
+ matrix: ["Sinn statt nur klein", "NEXT_STEP refresh", "V1.4 PASS", "Blocken korrekt", "stark"],
223
+ asciiArt: String.raw`
224
+ V1.3 LIFECYCLE-BREMSE / SINN-FILTER
225
+
226
+ BRIEFING
227
+ |
228
+ v
229
+ +-----------------------------+
230
+ | hai-explain-better |
231
+ | Warum hilft dieser Schritt? |
232
+ +--------------+--------------+
233
+ |
234
+ v
235
+ +----------------+
236
+ | Lifecycle Gate |
237
+ +--------+-------+
238
+ |
239
+ +-------------------+-------------------+
240
+ | | |
241
+ v v v
242
+ ALREADY_WORKS GOAL_REACHED EVENT_PASSED
243
+ | | |
244
+ +---------+----------+---------+---------+
245
+ | |
246
+ v v
247
+ DECISION / STOP ARCHIVE_OR_MAINTAIN
248
+ |
249
+ v
250
+ nur wenn sinnvoll: NEXT_STEP -> Execution
251
+
252
+ Erfolg = Arbeit verhindern, wenn Arbeit falsch ist`,
253
+ website: {
254
+ storyTitle: "Sinn-Bremse vor Busywork",
255
+ storyLead: "V1.3 macht HAI zur Scope-Maschine, die nicht nur Arbeit erzeugt, sondern schlechte Arbeit verhindert.",
256
+ before: "Ein kleiner technischer Schritt konnte trotzdem menschlich sinnlos sein.",
257
+ after: "Lifecycle-Gates erkennen ALREADY_WORKS, GOAL_REACHED und ARCHIVE_OR_MAINTAIN.",
258
+ ownerQuestion: "Wurde Samuel vor unnoetiger Agentenarbeit geschuetzt?"
259
+ }
260
+ },
261
+ "v1-4": {
262
+ number: "V1.4",
263
+ title: "Proof-Run fuer V1.3",
264
+ status: "Proof-Run, nicht installierbare Version",
265
+ oneLine: "V1.4 ist der Generalization-Proof: drei neue Projekte, drei Zustandslagen, kein neuer Agentenbau.",
266
+ skillstand: [
267
+ "Getestet wird die global installierte V1.3-Baseline, nicht eine neue installierbare Version.",
268
+ "Fokus: Lifecycle Gate, Explain-Better Gate, NEXT_STEP Refresh und Human Decision vor Deploy/Push."
269
+ ],
270
+ skills: ["v1.3-baseline", "lifecycle-test", "explain-better", "redirect-refresh", "regression-check"],
271
+ stand: "V1.4 ist Proof-Run, keine installierbare Version. Getestet wurde die global installierte V1.3-Baseline.",
272
+ problem: "Offen war, ob Lifecycle/Human-Payoff nur auf bekannten Faellen gut klingt oder in echten Projekten Busywork verhindert.",
273
+ proposal: "Drei neue Projektzustaende pruefen: unfertig aber low-payoff, deploy-gated Website, nahezu fertiges Portfolio.",
274
+ implementation: "Keine neue Runtime; Codex liest die von Samuel erzeugten Projek-Managment-Artefakte und Scorecards gegen definierte Fokusfragen.",
275
+ test: "BookmarkBrain, SandrasWritingWorld und PortfolioTimeline im manuellen V1.4-Eval vom 2026-05-10.",
276
+ validationText: "Gesamt PASS: BookmarkBrain PASS, SandrasWritingWorld BLOCKED_BUT_CORRECT, PortfolioTimeline PASS; keine Pflicht-Patches.",
277
+ method: "Methodisch: Proof-Run statt Feature-Run. Die Hypothese ist, ob HAI Arbeit stoppen kann, wenn Arbeit nicht mehr sinnvoll ist.",
278
+ good: ["HAI erkennt Build, Parken, Publizieren und menschliche Entscheidung besser.", "Der Run vermeidet stale oder low-payoff Busywork."],
279
+ weak: ["Kein Installationsstand.", "Proof ist manuell evaluiert und haengt an Projektartefakten."],
280
+ next: "V1.5 darf nur einen engen Repair-Pfad ergaenzen, ohne die akzeptierte Linie umzubauen.",
281
+ background: "Proof ist hier wichtiger als neue Features.",
282
+ proof: ["3 reale Projekte", "Gesamt PASS", "0 Pflicht-Patches", "Proof-only"],
283
+ sources: [
284
+ { label: "V1.4 Final Report", href: "../../docs/hai-architecture/v1_4_generalization_manual_eval_2026-05-10_1747/FINAL_GENERALIZATION_REPORT.md" },
285
+ { label: "V1.4 Run Notes", href: "../../docs/hai-architecture/v1_4_generalization_manual_eval_2026-05-10_1747/RUN_NOTES.md" }
286
+ ],
287
+ matrix: ["Proof statt Feature", "Baseline belegt", "3 reale Projekte", "indirekt", "entscheidet vor Deploy"],
288
+ asciiArt: String.raw`
289
+ V1.4 PROOF-RUN / BASELINE TEST
290
+
291
+ V1.3 BASELINE (frozen)
292
+ |
293
+ v
294
+ +-----------------------------------+
295
+ | Keine neue Runtime, nur Beweis |
296
+ +-----------------+-----------------+
297
+ |
298
+ +---------------------+----------------------+
299
+ | | |
300
+ v v v
301
+ +----------------+ +--------------------+ +----------------+
302
+ | BookmarkBrain | | SandrasWritingWorld| | PortfolioLine |
303
+ | PASS | | BLOCKED_BUT_CORRECT| | PASS |
304
+ +-------+--------+ +---------+----------+ +--------+-------+
305
+ \ | /
306
+ \ | /
307
+ v v v
308
+ +-----------------------------------+
309
+ | Generalization Verdict: PASS |
310
+ | Pflichtpatches: 0 |
311
+ +-----------------------------------+
312
+
313
+ Version als Produktbeweis, nicht Feature-Hype`,
314
+ website: {
315
+ storyTitle: "Proof-Website statt Feature-Website",
316
+ storyLead: "V1.4 ist die Website des Beweises: keine neue Magie, sondern frische Faelle gegen V1.3.",
317
+ before: "Unklar war, ob die Sinn-Bremse nur auf bekannten Faellen gut klingt.",
318
+ after: "Drei Projekte zeigen PASS/BLOCKED_BUT_CORRECT/PASS ohne Pflichtpatch.",
319
+ ownerQuestion: "Wird korrektes Stoppen als Erfolg anerkannt?"
320
+ }
321
+ },
322
+ "v1-5": {
323
+ number: "V1.5",
324
+ title: "Eskalieren, ohne Kontrolle abzugeben",
325
+ status: "zufriedenstellender aktueller Stand",
326
+ oneLine: "V1.5 bleibt eine testbare PM-Baseline: Gemini darf helfen, wenn ein Loop scheitert, aber nicht die Kontrolle uebernehmen.",
327
+ skillstand: [
328
+ "Stabile V1.3/V1.4-Linie plus Gemini-MCP Escalation Review.",
329
+ "Trigger: BLOCKED, REJECT, UNCLEAR, Timeouts, Step-ID- und Finalization-Konflikte."
330
+ ],
331
+ skills: ["native-mcp", "gemini-escalation", "execution-loop", "human-gate", "no-fanout"],
332
+ stand: "V1.5 ist ein kleiner Patch auf der akzeptierten V1.3/V1.4-Linie und aktuell zufriedenstellender PM-Stand.",
333
+ problem: "Execution-Loop-Failures brauchen Repair-Analyse, aber ein zweiter autonomer Validator oder breiter Agenten-Fanout wuerde Kontrolle verschieben.",
334
+ proposal: "Gemini-MCP nur bei BLOCKED, REJECT, UNCLEAR, Timeout, No-Report, Step-ID- oder Finalization-Konflikt als Escalation Review nutzen.",
335
+ implementation: "hai-execution-loop bekommt GEMINI_ESCALATION_REVIEW_NEXT_STEP als Artefaktvertrag; Gemini darf Repair triggern, aber nicht Scope erweitern.",
336
+ test: "V1.5-Eval am 2026-05-25 auf FireTracker, miniZentrale und ShortcutCounter; Score 36/39.",
337
+ validationText: "PM-Baseline PASS_WITH_FINDING: 3/3 brauchbare PM-Pakete; Gemini-Pfad selbst NOT_MEASURED.",
338
+ method: "Wissenschaftlicher Caveat: Der Patch darf als nicht-regressiv gelten, aber die neue Gemini-Hypothese ist noch nicht kausal gemessen.",
339
+ good: ["3/3 Projekte erzeugten brauchbare PM-Pakete.", "Human Gate, NEXT_STEP und Executer-Validator-Kette bleiben erhalten."],
340
+ weak: ["Gemini-Pfad ist noch nicht gemessen.", "Der Repair-Pfad wurde noch nicht hart gegen Failure-Faelle getestet."],
341
+ next: "Kein breiter V1.6-Umbau; erst Report-to-NEXT_STEP-Canonicalization, dann gezielte Gemini-Failure-Eval.",
342
+ background: "Repair darf helfen, aber nicht die Besitzrechte am Prozess verschieben.",
343
+ proof: ["36/39", "92.3%", "3/3 PM-Pakete", "Gemini NOT_MEASURED"],
344
+ sources: [
345
+ { label: "V1.5 Final Report", href: "../../docs/hai-architecture/v1_5_generalization_manual_eval_2026-05-25_1630/FINAL_GENERALIZATION_REPORT.md" },
346
+ { label: "V1.5 README", href: "../../V1.5/README.md" }
347
+ ],
348
+ matrix: ["PM-Baseline stabil", "Repair-Eskalation", "36/39", "Gemini angelegt", "bleibt fuehrend"],
349
+ asciiArt: String.raw`
350
+ V1.5 FAILURE-REPAIR / GEMINI ESCALATION
351
+
352
+ normaler Execution Loop
353
+ NEXT_STEP -> executer -> validator -> ACCEPT
354
+ |
355
+ nur bei Fehler/Unklarheit
356
+ v
357
+ +-----------------------------------------------+
358
+ | BLOCKED | REJECT | UNCLEAR | TIMEOUT | NO RPT |
359
+ +----------------------+------------------------+
360
+ |
361
+ v
362
+ +-----------------------------------------------+
363
+ | GEMINI_ESCALATION_REVIEW_NEXT_STEP |
364
+ | analysiert Failure, erweitert Scope NICHT |
365
+ +----------------------+------------------------+
366
+ |
367
+ +----------------+----------------+
368
+ | |
369
+ v v
370
+ scope-identischer Repair zurueck zu Samuel
371
+ |
372
+ v
373
+ normaler Validator bleibt Wahrheitsinstanz
374
+
375
+ Mehr Intelligenz, aber kein zweiter Owner`,
376
+ website: {
377
+ storyTitle: "Repair darf helfen, aber nicht uebernehmen",
378
+ storyLead: "V1.5 ist die Website fuer enge Eskalation: Gemini darf bei Failure analysieren, aber nicht Scope ausweiten.",
379
+ before: "Loop-Failures waren sichtbar, aber Repair-Analyse war nicht sauber kontrahiert.",
380
+ after: "Gemini-MCP ist nur Failure-/Unklarheits-Review, kein zweiter Autopilot.",
381
+ ownerQuestion: "Bleibt Samuel trotz zusaetzlicher Intelligenz der Kontrollpunkt?"
382
+ }
383
+ },
384
+ "v1-6": {
385
+ number: "V1.6",
386
+ title: "Zwei Lanes, ein Owner",
387
+ status: "Pair-Modus Patchlinie",
388
+ oneLine: "V1.6 erlaubt maximal zwei unabhaengige EXECUTION_STEP-Lanes, aber nur wenn Scope, Worktrees und Join-Vertrag Samuels Ownership erhalten.",
389
+ skillstand: [
390
+ "Stabile V1.5-Linie plus eng begrenzter Pair-Modus.",
391
+ "Zwei unabhaengige Lanes laufen isoliert in Git-Worktrees und werden erst nach Validator-ACCEPT zusammengefuehrt."
392
+ ],
393
+ skills: ["pair-plan", "pair-execution-loop", "worktrees", "validator-accept", "pair-join"],
394
+ stand: "V1.6 ist ein kleiner Patch auf V1.5: kein breiter Agenten-Fanout, sondern maximal zwei sichere unabhaengige Lanes.",
395
+ problem: "HAI soll fluessiger arbeiten, ohne bei paralleler Ausfuehrung Kontrolle, Scope oder menschliche Stop-Fragen zu verlieren.",
396
+ proposal: "Pair-Modus nur bei Pair Autonomy Verdict: AUTO_EXECUTION_ALLOWED. Gleiche Dateien, Lockfiles, Migrationen, globale Config, Produktfragen und externe Side Effects blocken Pair-Ausfuehrung.",
397
+ implementation: "Neuer hai-pair-plan erzeugt PAIR_PLAN.md; neuer hai-pair-execution-loop fuehrt Lane A/B in isolierten Worktrees aus und schreibt PAIR_STATUS.md sowie PAIR_JOIN_REPORT.md.",
398
+ test: "Noch zu messen: gezielter Pair-Modus-Canary mit zwei wirklich unabhaengigen atomaren Steps und einem Negativfall mit ueberlappendem Scope.",
399
+ validationText: "README beschreibt die Guardrails; kausale Pair-Evaluation steht noch aus.",
400
+ method: "Methodisch: Durchsatz nur dort erhoehen, wo Unabhaengigkeit beweisbar ist. Ownership-Fragen stoppen weiterhin beim Menschen.",
401
+ good: ["Maximal zwei Lanes statt beliebigem Batch-N-System.", "Join erst nach Validator-ACCEPT und Scope-Pruefung."],
402
+ weak: ["Pair-Modus braucht harte Negativtests.", "Mehr Parallelitaet erhoeht Merge- und Scope-Risiko, wenn Gates lax werden."],
403
+ next: "V1.6 braucht einen Pair-Canary: ein Positivfall mit zwei unabhaengigen Lanes und ein Negativfall, der korrekt auf Single-Step oder Samuel zurueckfaellt.",
404
+ background: "Mehr Durchsatz ist nur Fortschritt, wenn der Mensch danach mehr Owner ist, nicht weniger.",
405
+ proof: ["2-Lane-Limit", "Worktree-Isolation", "Validator-ACCEPT", "Pair-Join"],
406
+ sources: [
407
+ { label: "V1.6 README", href: "../../V1.6/README.md" },
408
+ { label: "V1.6 Changelog", href: "../../V1.6/CHANGELOG.md" }
409
+ ],
410
+ matrix: ["Pair-Autonomie", "Lane A/B Handoff", "Stop-Fragen bleiben", "Gemini bleibt Failure-Repair", "Owner vor Durchsatz"],
411
+ asciiArt: String.raw`
412
+ V1.6 PAIR-MODE / TWO-LANE JOIN
413
+
414
+ NEXT_STEP Kandidaten
415
+ |
416
+ v
417
+ +------------------------------+
418
+ | hai-pair-plan |
419
+ | Unabhaengigkeit beweisen |
420
+ +---------------+--------------+
421
+ |
422
+ AUTO_EXECUTION_ALLOWED?
423
+ no | | yes
424
+ v v
425
+ Single Step +-------------+
426
+ oder Samuel | 2-Lane Max |
427
+ +------+------+
428
+ |
429
+ +------------------------+------------------------+
430
+ | |
431
+ v v
432
+ +------------------+ +------------------+
433
+ | Worktree A | | Worktree B |
434
+ | executer+val | | executer+val |
435
+ +--------+---------+ +--------+---------+
436
+ | |
437
+ +------------------------+------------------------+
438
+ |
439
+ beide Validator ACCEPT?
440
+ no | | yes
441
+ v v
442
+ STOP PAIR_JOIN_REPORT
443
+ |
444
+ v
445
+ mehr Evidenz -> Owner`,
446
+ website: {
447
+ storyTitle: "Zwei Lanes, kein Kontrollverlust",
448
+ storyLead: "V1.6 ist die Website fuer begrenzten Durchsatz: genau zwei unabhaengige Lanes, wenn Autonomie beweisbar ist.",
449
+ before: "Single-Step war sicher, aber manchmal langsamer als noetig.",
450
+ after: "Pair-Plan, Worktrees und Join nach Validator-ACCEPT erlauben parallele Arbeit ohne Fanout.",
451
+ ownerQuestion: "Hat Samuel nach zwei Lanes mehr Evidenz, ohne weniger Owner zu sein?"
452
+ }
453
+ }
454
+ };
455
+
456
+ const ORDER = ["v1-0", "v1-1", "v1-2", "v1-3", "v1-4", "v1-5", "v1-6"];
457
+ const MATRIX_ROWS = ["Verstehen", "Handoff", "Lifecycle-Stop", "Repair", "Human Gate"];
458
+
459
+ const VISUAL_DATA = {
460
+ "v1-0": {
461
+ label: "Owner-Gate Baseline",
462
+ thesis: "V1.0 verwandelt unklare Projektlage in einen akzeptierten, validierten Schritt.",
463
+ layers: [
464
+ { title: "Mensch", items: ["Zustand", "Absicht", "Risiko"] },
465
+ { title: "HAI-Kette", items: ["Project State", "Briefing", "NEXT_STEP"] },
466
+ { title: "Execution", items: ["Human Accept", "Executer", "Validator"] }
467
+ ],
468
+ deltas: ["erstes Gate", "Rollen getrennt", "Evidenz-Ruecklauf"],
469
+ warning: "Ohne ACCEPT keine Ausfuehrung."
470
+ },
471
+ "v1-1": {
472
+ label: "Intent Source Discovery",
473
+ thesis: "V1.1 macht aus verstreuten Absichtsspuren einen kontrollierten Kontext, ohne alte Prompts zu befehligen.",
474
+ layers: [
475
+ { title: "Quellen", items: ["README", "Idea-like Files", "Projektspuren"] },
476
+ { title: "Read-only Kontext", items: ["PromptGarage", "Wishlist", "Priorisierung"] },
477
+ { title: "Kanon", items: ["Idea Spec", "Briefing", "NEXT_STEP"] }
478
+ ],
479
+ deltas: ["Wishlist neu", "Intent breiter", "History != Auftrag"],
480
+ warning: "Aktuelle Samuel-Anweisung bleibt hoeher als alte Treffer."
481
+ },
482
+ "v1-2": {
483
+ label: "Handoff Contract",
484
+ thesis: "V1.2 trennt menschliche Knappheit von maschineller Praezision: ein Step wird zum pruefbaren Vertrag.",
485
+ layers: [
486
+ { title: "Kanonischer Step", items: ["Step-ID", "Allowed Changes", "Atomizitaet"] },
487
+ { title: "Handoff", items: ["Executor Contract", "Scope Match", "Status Gates"] },
488
+ { title: "Loop Watch", items: ["Timeout", "No Report", "Validator Verdict"] }
489
+ ],
490
+ deltas: ["Executor-Handoff", "Step-ID Lock", "Failure sichtbar"],
491
+ warning: "Wenn Handoff != NEXT_STEP, stoppt der Loop."
492
+ },
493
+ "v1-3": {
494
+ label: "Lifecycle Brake",
495
+ thesis: "V1.3 fuegt vor Arbeit eine Sinn-Bremse ein: Nicht jeder kleine Schritt ist ein guter Schritt.",
496
+ layers: [
497
+ { title: "Projektlage", items: ["Already works?", "Goal reached?", "Event passed?"] },
498
+ { title: "Bremse", items: ["Explain Better", "Lifecycle Gate", "Human Payoff"] },
499
+ { title: "Ausgang", items: ["Decision Step", "Archive/Maintain", "Execution Step"] }
500
+ ],
501
+ deltas: ["Sinn vor Arbeit", "Stale Step Block", "Stop ist Erfolg"],
502
+ warning: "HAI darf korrekt blocken, auch wenn Technik moeglich waere."
503
+ },
504
+ "v1-4": {
505
+ label: "Proof, not Feature",
506
+ thesis: "V1.4 ist ein Beweis-Release: dieselbe Baseline wird gegen drei frische Projektlagen gehalten.",
507
+ layers: [
508
+ { title: "Frozen Baseline", items: ["V1.3", "keine Runtime-Aenderung", "Hypothese"] },
509
+ { title: "Eval Cases", items: ["BookmarkBrain", "WritingWorld", "Portfolio"] },
510
+ { title: "Verdict", items: ["PASS", "BLOCKED_BUT_CORRECT", "0 Pflichtpatches"] }
511
+ ],
512
+ deltas: ["Proof-Run", "3 reale Faelle", "Baseline bestaetigt"],
513
+ warning: "Produktvalidierung ist hier wichtiger als neue Features."
514
+ },
515
+ "v1-5": {
516
+ label: "Scoped Repair",
517
+ thesis: "V1.5 baut eine zweite Analyse-Brille ein, aber nicht einen zweiten Owner.",
518
+ layers: [
519
+ { title: "Normal Loop", items: ["NEXT_STEP", "Executer", "Validator"] },
520
+ { title: "Failure Trigger", items: ["BLOCKED", "REJECT", "UNCLEAR", "Timeout"] },
521
+ { title: "Repair Review", items: ["Gemini MCP", "Scope bleibt", "Repair oder Samuel"] }
522
+ ],
523
+ deltas: ["Gemini nur Failure", "kein Fanout", "Repair-Vertrag"],
524
+ warning: "Gemini darf analysieren, aber keinen Scope erfinden."
525
+ },
526
+ "v1-6": {
527
+ label: "Two-Lane Join",
528
+ thesis: "V1.6 erhoeht Durchsatz nur dort, wo Unabhaengigkeit beweisbar und der Join kontrolliert ist.",
529
+ layers: [
530
+ { title: "Pair Plan", items: ["Lane A/B", "Unabhaengigkeitsbeweis", "AUTO_EXECUTION_ALLOWED"] },
531
+ { title: "Isolation", items: ["Worktree A", "Worktree B", "Validator je Lane"] },
532
+ { title: "Join Gate", items: ["beide ACCEPT", "PAIR_JOIN_REPORT", "sonst Stop"] }
533
+ ],
534
+ deltas: ["2-Lane Max", "Worktree-Isolation", "Join nach ACCEPT"],
535
+ warning: "Bei Scope-Ueberlappung zurueck zu Single-Step oder Samuel."
536
+ }
537
+ };
538
+
539
+ const PROFILE_DATA = {
540
+ "v1-0": {
541
+ role: "Baseline-Agent / Owner-Gate",
542
+ positioning: "HAI V1.0 wird als erstes Produktprofil gezeigt: ein reproduzierbarer Agenten-Workflow, nicht nur ein loses Profil- und Skill-Buendel.",
543
+ inputs: ["Projektzustand", "IDEA/README-Signale", "Codezustand", "Samuels akzeptierter EXECUTION_STEP"],
544
+ process: "HAI baut eine Artefakt-Kette aus Project State, Idea Spec, Code State, Briefing und NEXT_STEP. Erst nach menschlicher Akzeptanz wird ausgefuehrt.",
545
+ outputs: ["PROJECT_STATE.md", "PROMPT.md", "CODE_STATE.md", "BRIEFING.md", "NEXT_STEP.md", "Validator-Ruecklauf"],
546
+ mentalModel: "Der Nutzer ist Owner, aber braucht eine Scope-Maschine, die aus unklarer Lage einen kleinsten verantwortbaren Schritt macht.",
547
+ changes: ["Erster gesicherter agentischer HAI-Snapshot", "Rollen getrennt: HAI-Agent, Executer, Validator", "Human Gate vor Ausfuehrung etabliert"],
548
+ functions: ["Artefakt-Kette", "EXECUTION_STEP Gate", "read-only Validator", "Change-Log/Commit-Regel nach ACCEPT"],
549
+ governance: "V1.0 darf ausfuehren, aber nicht ohne akzeptierten Step. Produktversprechen: Kontrolle vor Geschwindigkeit."
550
+ },
551
+ "v1-1": {
552
+ role: "Intent-Reader / Wishlist-Agent",
553
+ positioning: "V1.1 positioniert HAI als Agentenprodukt, das Nutzerabsicht breiter erkennt und historische Wunsch-Spuren kontrolliert nutzt.",
554
+ inputs: ["Projektdateien", "idea-aehnliche Intent-Dateien", "PromptGarage read-only", "aktuelle Samuel-Anweisung"],
555
+ process: "Vor dem Briefing wird User-Wishlist-Kontext rekonstruiert. Alte Prompts werden Quellenmaterial, aber nicht neue aktuelle Entscheidung.",
556
+ outputs: ["WISHLIST.md", "breiteres PROMPT.md", "robusteres Briefing", "kanonischer NEXT_STEP"],
557
+ mentalModel: "Der Nutzer hat Absichten ueber Zeit verteilt. HAI darf diese Spuren lesen, muss aber aktuelle Ownership priorisieren.",
558
+ changes: ["hai-user-wishlist in die Pre-Briefing-Kette aufgenommen", "idea-spec liest mehr als nur IDEA/README", "fehlende Standarddateien werden Signal, kein Fehler"],
559
+ functions: ["PromptGarage read-only Rekonstruktion", "Intent Source Discovery", "Wishlist-Artefakt", "Prioritaetsregel: aktuelle Anweisung vor alten Treffern"],
560
+ governance: "V1.1 verhindert Prompt-Archaeologie als Autopilot: Historie erklaert, aber befiehlt nicht."
561
+ },
562
+ "v1-2": {
563
+ role: "Handoff-Agent / Atomisierungsmaschine",
564
+ positioning: "V1.2 zeigt HAI als Produkt, das nicht nur versteht, sondern Uebergaben ausfuehrbar und pruefbar macht.",
565
+ inputs: ["NEXT_STEP.md", "Step-ID", "Allowed Changes", "Executor-/Validator-Reports", "Timeout/No-Report-Signale"],
566
+ process: "Der menschlich knappe Step wird in ein scope-identisches Executor-Handoff uebersetzt; der Loop bekommt explizite Status- und Konfliktzustaende.",
567
+ outputs: ["EXECUTOR_HANDOFF_NEXT_STEP.md", "Step-ID-Abgleich", "Timeout-/No-Report-Status", "archivierter NEXT_STEP-Verlauf"],
568
+ mentalModel: "Der Nutzer will nicht Mikromanagement betreiben; HAI muss beweisen, dass der Agent genau das erlaubte Ding macht.",
569
+ changes: ["Atomizitaets-Gate geschaerft", "Executor-Handoff Skill eingefuehrt", "Execution-Loop mit Status-Gates gehaertet"],
570
+ functions: ["Scope-identisches Handoff", "Step-ID-Konflikterkennung", "Timeout-Gates", "No-Report-Gates"],
571
+ governance: "V1.2 macht Failure sichtbar statt still weiterzulaufen. Unklare Uebergaben werden blockiert oder eskaliert."
572
+ },
573
+ "v1-3": {
574
+ role: "Lifecycle-Bremse / Sinn-Filter",
575
+ positioning: "V1.3 ist die Produktversion, die HAI vom Task-Erzeuger zum Sinn-Filter weiterentwickelt.",
576
+ inputs: ["Briefing", "Projektlebenszyklus", "Human Redirects", "Goal-/Archive-Signale", "Deploy-/Side-Effect-Risiken"],
577
+ process: "Vor dem NEXT_STEP prueft HAI, ob Arbeit ueberhaupt sinnvoll ist: already works, goal reached, event passed, archive/maintain oder Entscheidung noetig.",
578
+ outputs: ["bessere NEXT_STEP-Begruendung", "Lifecycle-Verdict", "Human-Decision-Step", "stale NEXT_STEP Blocking/Refresh"],
579
+ mentalModel: "Der Nutzer ist nicht Auftraggeber fuer Busywork. HAI muss Arbeit stoppen, wenn Stoppen die bessere Produktentscheidung ist.",
580
+ changes: ["hai-explain-better hinzugefuegt", "Lifecycle-Gates eingefuehrt", "Canonical NEXT_STEP Refresh nach Human Redirect"],
581
+ functions: ["ALREADY_WORKS Gate", "GOAL_REACHED Gate", "EVENT_PASSED Gate", "ARCHIVE_OR_MAINTAIN Gate", "Explain-Better"],
582
+ governance: "V1.3 bewertet menschlichen Nutzen vor technischer Machbarkeit. Das Produkt darf korrekt blocken."
583
+ },
584
+ "v1-4": {
585
+ role: "Proof-Run / Produktvalidierung",
586
+ positioning: "V1.4 ist keine neue Runtime, sondern eine Produktvorstellung des Beweises: HAI V1.3 funktioniert auf frischen Projektlagen.",
587
+ inputs: ["drei neue Projektartefakte", "V1.3-Baseline", "Scorecards", "Lifecycle-/Explain-Fokusfragen"],
588
+ process: "Die bestehende Baseline wird gegen neue Projekte evaluiert. Der Wert liegt im Nachweis, nicht im Feature-Ausbau.",
589
+ outputs: ["PASS/BLOCKED_BUT_CORRECT/PASS", "Final Report", "Regressionserkenntnis", "keine Pflichtpatches"],
590
+ mentalModel: "Der Nutzer braucht Vertrauen in die Produktlinie. Eine Version darf ein Beweis sein, nicht nur ein neues Feature.",
591
+ changes: ["Proof-Run als Versionsstufe dokumentiert", "drei reale Projekte evaluiert", "V1.3 als Baseline bestaetigt"],
592
+ functions: ["Generalization Proof", "Lifecycle-Regression", "Human-Payoff-Review", "Stop-Erfolg als Messpunkt"],
593
+ governance: "V1.4 trennt Produktvalidierung von Produktveraenderung. Keine Aenderung ohne Pflichtbefund."
594
+ },
595
+ "v1-5": {
596
+ role: "Repair-Agent / Eskalationsreview",
597
+ positioning: "V1.5 stellt HAI als Produkt mit engem Repair-Kanal vor: mehr Intelligenz bei Failure, aber keine Kontrollabgabe.",
598
+ inputs: ["BLOCKED", "REJECT", "UNCLEAR", "Timeout", "No-Report", "Step-ID-/Finalization-Konflikte"],
599
+ process: "Gemini-MCP wird nur bei Loop-Problemen als Escalation Review genutzt. Gemini darf Repair ausloesen, aber Scope nicht erweitern.",
600
+ outputs: ["GEMINI_ESCALATION_REVIEW_NEXT_STEP", "Repair-Verdict", "dokumentierter Ausfall wenn MCP fehlt", "kanonischer NEXT_STEP bleibt fuehrend"],
601
+ mentalModel: "Der Nutzer akzeptiert Hilfe bei Sackgassen, aber nicht einen zweiten autonomen Entscheider neben sich.",
602
+ changes: ["Gemini-MCP in hai-execution-loop verdrahtet", "NEXT_STEP-Historie verlustfrei gehaertet", "SOUL/Registry auf Repair-Pfad aktualisiert"],
603
+ functions: ["Gemini Failure Review", "Scope-erhaltender Repair", "Archivierte NEXT_STEP-History", "MCP Availability Handling"],
604
+ governance: "V1.5 ist kein Fanout. Repair ist Assistenz im Fehlerfall, nicht ein neuer Autopilot."
605
+ },
606
+ "v1-6": {
607
+ role: "Pair-Agent / Zwei-Lane-Orchestrator",
608
+ positioning: "V1.6 stellt HAI als begrenzt paralleles Agentenprodukt vor: Durchsatz steigt nur, wenn Ownership und Scope beweisbar stabil bleiben.",
609
+ inputs: ["PAIR_PLAN.md", "Lane A/B Kandidaten", "Unabhaengigkeitsbeweis", "Git-Worktree-Isolation", "Validator-ACCEPT pro Lane"],
610
+ process: "HAI darf genau zwei unabhaengige EXECUTION_STEP-Lanes vorbereiten und in isolierten Worktrees ausfuehren; Join erst nach beidseitiger Validierung.",
611
+ outputs: ["PAIR_PLAN.md", "PAIR_STATUS.md", "PAIR_JOIN_REPORT.md", "Lane Reports", "geparkte Restkandidaten"],
612
+ mentalModel: "Der Nutzer will mehr Fluss, aber nicht den Preis von Batch-Chaos. HAI muss beweisen, dass Parallelitaet sicher ist.",
613
+ changes: ["hai-pair-plan eingefuehrt", "hai-pair-execution-loop eingefuehrt", "2-Lane-Limit und Worktree-Grenzen definiert"],
614
+ functions: ["Pair Autonomy Verdict", "Lane A/B Worktrees", "Validator-ACCEPT pro Lane", "Pair Join", "Stop bei Scope-/Taste-/Risk-Fragen"],
615
+ governance: "V1.6 ist maximal zwei Lanes, kein N-Agenten-Fanout. Wenn Unabhaengigkeit nicht beweisbar ist, faellt HAI auf Single-Step oder Samuel zurueck."
616
+ }
617
+ };
618
+
619
+
620
+ function esc(value) {
621
+ return String(value ?? "").replace(/[&<>"']/g, (char) => ({
622
+ "&": "&amp;",
623
+ "<": "&lt;",
624
+ ">": "&gt;",
625
+ '"': "&quot;",
626
+ "'": "&#39;"
627
+ }[char]));
628
+ }
629
+
630
+ function list(items) {
631
+ return `<ul>${items.map((item) => `<li>${esc(item)}</li>`).join("")}</ul>`;
632
+ }
633
+
634
+ function chips(items, className = "skill-chip") {
635
+ return items.map((item) => `<span class="${className}">${esc(item)}</span>`).join("");
636
+ }
637
+
638
+
639
+
640
+ function renderAdaptedVisual(visual, id) {
641
+ if (!visual) return "";
642
+ const layers = (visual.layers ?? []).map((layer, index) => `
643
+ <section class="adapted-lane" style="--lane-index:${index}">
644
+ <div class="lane-head">
645
+ <span>${esc(String(index + 1))}</span>
646
+ <h4>${esc(layer.title)}</h4>
647
+ </div>
648
+ <div class="adapted-card-stack">
649
+ ${(layer.items ?? []).map((item) => `<article class="adapted-card"><p>${esc(item)}</p></article>`).join("")}
650
+ </div>
651
+ </section>
652
+ `).join("");
653
+ const deltas = (visual.deltas ?? []).map((delta) => `<span>${esc(delta)}</span>`).join("");
654
+ return `<div class="adapted-visual" data-version-visual="${esc(id)}">
655
+ <div class="adapted-toolbar">
656
+ <span>HAI Version Cockpit</span>
657
+ <strong>${esc(id.toUpperCase())}</strong>
658
+ </div>
659
+ <div class="adapted-title">
660
+ <h3>${esc(visual.label)}</h3>
661
+ <p>${esc(visual.thesis)}</p>
662
+ </div>
663
+ <div class="adapted-board">
664
+ ${layers}
665
+ <section class="adapted-lane owner-lane" style="--lane-index:3">
666
+ <div class="lane-head">
667
+ <span>4</span>
668
+ <h4>Owner Gate</h4>
669
+ </div>
670
+ <div class="adapted-card-stack">
671
+ <article class="adapted-card adapted-card-lock">
672
+ <p>${esc(visual.warning)}</p>
673
+ </article>
674
+ </div>
675
+ </section>
676
+ </div>
677
+ <div class="delta-row adapted-deltas" aria-label="Was neu ist">${deltas}</div>
678
+ </div>`;
679
+ }
680
+
681
+ function sourceLinks(items) {
682
+ return items.map((item) => `<span class="source-link" title="${esc(item.href)}">${esc(item.label)}</span>`).join("");
683
+ }
684
+
685
+ function hrefFor(id) {
686
+ return `./versions/${id}/`;
687
+ }
688
+
689
+ function renderIndex() {
690
+ const evolution = document.querySelector("[data-evolution]");
691
+ const matrix = document.querySelector("[data-matrix]");
692
+ if (!evolution || !matrix) return;
693
+
694
+ evolution.innerHTML = ORDER.map((id, index) => {
695
+ const item = VERSION_DATA[id];
696
+ return `
697
+ <a class="process-node" href="${hrefFor(id)}">
698
+ <span class="node-dot">${index + 1}</span>
699
+ <span class="node-number">${esc(item.number)}</span>
700
+ <h3>${esc(item.title)}</h3>
701
+ <p>${esc(item.oneLine)}</p>
702
+ <span class="node-status">${esc(item.status)}</span>
703
+ </a>
704
+ `;
705
+ }).join("");
706
+
707
+ const header = `<tr><th scope="col">Faehigkeit</th>${ORDER.map((id) => `<th scope="col">${esc(VERSION_DATA[id].number)}</th>`).join("")}</tr>`;
708
+ const rows = MATRIX_ROWS.map((row, rowIndex) => `
709
+ <tr>
710
+ <th scope="row">${esc(row)}</th>
711
+ ${ORDER.map((id) => `<td data-version="${esc(VERSION_DATA[id].number)}"><strong>${esc(VERSION_DATA[id].matrix[rowIndex])}</strong></td>`).join("")}
712
+ </tr>
713
+ `).join("");
714
+ matrix.innerHTML = header + rows;
715
+ }
716
+
717
+ function renderVersion() {
718
+ const id = document.body.dataset.version;
719
+ if (!id) return;
720
+ const item = VERSION_DATA[id];
721
+ if (!item) return;
722
+ const profile = PROFILE_DATA[id] ?? {};
723
+
724
+ document.title = `${item.number} | HAI Version Dossier`;
725
+ document.querySelectorAll("[data-version-number]").forEach((node) => { node.textContent = item.number; });
726
+ document.querySelectorAll("[data-version-title]").forEach((node) => { node.textContent = item.title; });
727
+ document.querySelectorAll("[data-version-status]").forEach((node) => { node.textContent = item.status; });
728
+ document.querySelectorAll("[data-version-one-line]").forEach((node) => { node.textContent = item.oneLine; });
729
+
730
+ const targets = {
731
+ "[data-skillstand]": list(item.skillstand),
732
+ "[data-skill-chain]": chips(item.skills),
733
+ "[data-stand]": esc(item.stand),
734
+ "[data-problem]": esc(item.problem),
735
+ "[data-proposal]": esc(item.proposal),
736
+ "[data-implementation]": esc(item.implementation),
737
+ "[data-test]": esc(item.test),
738
+ "[data-validation-text]": esc(item.validationText),
739
+ "[data-method]": esc(item.method),
740
+ "[data-good]": list(item.good),
741
+ "[data-weak]": list(item.weak),
742
+ "[data-next]": esc(item.next),
743
+ "[data-background]": esc(item.background),
744
+ "[data-proof]": chips(item.proof, "proof-chip"),
745
+ "[data-sources]": sourceLinks(item.sources ?? []),
746
+ "[data-ascii-art]": esc(item.asciiArt ?? ""),
747
+ "[data-story-title]": esc(item.website?.storyTitle ?? ""),
748
+ "[data-story-lead]": esc(item.website?.storyLead ?? ""),
749
+ "[data-story-before]": esc(item.website?.before ?? ""),
750
+ "[data-story-after]": esc(item.website?.after ?? ""),
751
+ "[data-owner-question]": esc(item.website?.ownerQuestion ?? ""),
752
+ "[data-agent-role]": esc(profile.role ?? ""),
753
+ "[data-product-positioning]": esc(profile.positioning ?? ""),
754
+ "[data-system-inputs]": list(profile.inputs ?? []),
755
+ "[data-system-process]": esc(profile.process ?? ""),
756
+ "[data-system-outputs]": list(profile.outputs ?? []),
757
+ "[data-mental-model]": esc(profile.mentalModel ?? ""),
758
+ "[data-version-changes]": list(profile.changes ?? []),
759
+ "[data-version-functions]": list(profile.functions ?? []),
760
+ "[data-profile-governance]": esc(profile.governance ?? "")
761
+ };
762
+
763
+ Object.entries(targets).forEach(([selector, html]) => {
764
+ const node = document.querySelector(selector);
765
+ if (node) node.innerHTML = html;
766
+ });
767
+
768
+
769
+ const visualNode = document.querySelector("[data-adapted-visual]");
770
+ if (visualNode) visualNode.innerHTML = renderAdaptedVisual(VISUAL_DATA[id], id);
771
+
772
+ const currentIndex = ORDER.indexOf(id);
773
+ const prev = document.querySelector("[data-prev]");
774
+ const next = document.querySelector("[data-next-link]");
775
+ if (prev && currentIndex > 0) prev.href = `../${ORDER[currentIndex - 1]}/`;
776
+ if (prev && currentIndex === 0) prev.hidden = true;
777
+ if (next && currentIndex < ORDER.length - 1) next.href = `../${ORDER[currentIndex + 1]}/`;
778
+ if (next && currentIndex === ORDER.length - 1) next.hidden = true;
779
+ }
780
+
781
+ renderIndex();
782
+ renderVersion();
assets/reference/hai-intake-cockpit-dark.png ADDED

Git LFS Details

  • SHA256: df6492087855a31d51d59e583877205c1beb4cc94ceed1b3f88db1e586ef94f8
  • Pointer size: 132 Bytes
  • Size of remote file: 1.32 MB
assets/reference/hai-intake-cockpit-light.png ADDED

Git LFS Details

  • SHA256: aec7b70dbe9fdd4d24df1921902b0e47a775660650e496852899d5f2be2c4acc
  • Pointer size: 132 Bytes
  • Size of remote file: 5.39 MB
assets/styles.css ADDED
@@ -0,0 +1,1262 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ color-scheme: dark;
3
+ --ink: #f7f1df;
4
+ --muted: #b9af99;
5
+ --quiet: #837967;
6
+ --void: #080907;
7
+ --charcoal: #11110d;
8
+ --panel: rgba(247, 241, 223, 0.065);
9
+ --panel-strong: rgba(247, 241, 223, 0.11);
10
+ --line: rgba(247, 241, 223, 0.18);
11
+ --line-strong: rgba(247, 241, 223, 0.34);
12
+ --signal: #a7ff4f;
13
+ --copper: #ff9f5f;
14
+ --cyan: #83dbc8;
15
+ --red: #ff6b5f;
16
+ --max: 1180px;
17
+ --pad: clamp(18px, 4vw, 56px);
18
+ --display: Georgia, "Times New Roman", serif;
19
+ --body: "Aptos", "Segoe UI", "Helvetica Neue", sans-serif;
20
+ --mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;
21
+ }
22
+
23
+ * {
24
+ box-sizing: border-box;
25
+ }
26
+
27
+ html {
28
+ scroll-behavior: smooth;
29
+ background: var(--void);
30
+ }
31
+
32
+ body {
33
+ margin: 0;
34
+ min-width: 320px;
35
+ color: var(--ink);
36
+ background:
37
+ linear-gradient(90deg, rgba(247, 241, 223, 0.055), transparent 1px),
38
+ linear-gradient(180deg, rgba(247, 241, 223, 0.035), transparent 1px),
39
+ linear-gradient(135deg, rgba(167, 255, 79, 0.08), transparent 34%),
40
+ linear-gradient(225deg, rgba(255, 159, 95, 0.075), transparent 38%),
41
+ linear-gradient(180deg, #080907 0%, #11110d 54%, #070806 100%);
42
+ background-size: 84px 84px, 84px 84px, auto, auto, auto;
43
+ font-family: var(--body);
44
+ line-height: 1.5;
45
+ overflow-x: hidden;
46
+ }
47
+
48
+ body::before {
49
+ content: "";
50
+ position: fixed;
51
+ inset: 0;
52
+ z-index: 20;
53
+ pointer-events: none;
54
+ opacity: 0.18;
55
+ background-image:
56
+ linear-gradient(rgba(247, 241, 223, 0.05) 1px, transparent 1px),
57
+ linear-gradient(90deg, rgba(247, 241, 223, 0.035) 1px, transparent 1px);
58
+ background-size: 72px 72px;
59
+ mask-image: linear-gradient(180deg, black, transparent 74%);
60
+ }
61
+
62
+ a {
63
+ color: inherit;
64
+ text-decoration: none;
65
+ }
66
+
67
+ p,
68
+ h1,
69
+ h2,
70
+ h3 {
71
+ margin: 0;
72
+ }
73
+
74
+ ul {
75
+ margin: 0;
76
+ padding-left: 18px;
77
+ }
78
+
79
+ li + li {
80
+ margin-top: 7px;
81
+ }
82
+
83
+ .topbar {
84
+ position: sticky;
85
+ top: 0;
86
+ z-index: 40;
87
+ display: flex;
88
+ justify-content: center;
89
+ padding: 14px var(--pad) 0;
90
+ pointer-events: none;
91
+ }
92
+
93
+ .topbar-inner {
94
+ width: min(var(--max), 100%);
95
+ display: flex;
96
+ justify-content: space-between;
97
+ align-items: center;
98
+ gap: 18px;
99
+ padding: 12px 14px;
100
+ border: 1px solid rgba(247, 241, 223, 0.13);
101
+ background: rgba(8, 9, 7, 0.78);
102
+ backdrop-filter: blur(18px);
103
+ box-shadow: 0 18px 70px rgba(0, 0, 0, 0.28);
104
+ pointer-events: auto;
105
+ }
106
+
107
+ .brand {
108
+ display: inline-flex;
109
+ align-items: center;
110
+ min-width: 0;
111
+ gap: 10px;
112
+ color: var(--muted);
113
+ font-family: var(--mono);
114
+ font-size: 12px;
115
+ letter-spacing: 0.08em;
116
+ text-transform: uppercase;
117
+ }
118
+
119
+ .brand-mark {
120
+ width: 30px;
121
+ height: 30px;
122
+ display: grid;
123
+ place-items: center;
124
+ border: 1px solid var(--line-strong);
125
+ color: var(--signal);
126
+ flex: 0 0 auto;
127
+ }
128
+
129
+ .nav {
130
+ display: flex;
131
+ align-items: center;
132
+ justify-content: flex-end;
133
+ gap: clamp(10px, 2vw, 22px);
134
+ color: var(--muted);
135
+ font-family: var(--mono);
136
+ font-size: 11px;
137
+ letter-spacing: 0.06em;
138
+ text-transform: uppercase;
139
+ flex-wrap: wrap;
140
+ }
141
+
142
+ .nav a {
143
+ opacity: 0.82;
144
+ border-bottom: 1px solid transparent;
145
+ }
146
+
147
+ .nav a:hover,
148
+ .nav a:focus-visible {
149
+ color: var(--ink);
150
+ opacity: 1;
151
+ border-color: var(--signal);
152
+ outline: none;
153
+ }
154
+
155
+ .shell {
156
+ width: min(var(--max), calc(100vw - 2 * var(--pad)));
157
+ margin: 0 auto;
158
+ }
159
+
160
+ .intro-board {
161
+ min-height: 58svh;
162
+ display: grid;
163
+ grid-template-columns: minmax(0, 1fr) minmax(280px, 0.36fr);
164
+ align-items: end;
165
+ gap: clamp(28px, 6vw, 78px);
166
+ padding: clamp(78px, 12vw, 132px) 0 52px;
167
+ }
168
+
169
+ .intro-copy {
170
+ max-width: 850px;
171
+ }
172
+
173
+ .eyebrow,
174
+ .label,
175
+ .kicker {
176
+ color: var(--copper);
177
+ font-family: var(--mono);
178
+ font-size: 12px;
179
+ letter-spacing: 0.08em;
180
+ text-transform: uppercase;
181
+ }
182
+
183
+ .eyebrow {
184
+ display: inline-flex;
185
+ gap: 10px;
186
+ align-items: center;
187
+ margin-bottom: 18px;
188
+ }
189
+
190
+ .eyebrow::before {
191
+ content: "";
192
+ width: 42px;
193
+ height: 1px;
194
+ background: var(--copper);
195
+ }
196
+
197
+ h1 {
198
+ max-width: 920px;
199
+ font-family: var(--display);
200
+ font-weight: 500;
201
+ font-size: clamp(3rem, 7.2vw, 7rem);
202
+ line-height: 0.94;
203
+ letter-spacing: 0;
204
+ text-wrap: balance;
205
+ }
206
+
207
+ .lead {
208
+ max-width: 760px;
209
+ margin-top: 24px;
210
+ color: var(--muted);
211
+ font-size: clamp(1.05rem, 2vw, 1.35rem);
212
+ line-height: 1.45;
213
+ }
214
+
215
+ .current-state,
216
+ .hero-card,
217
+ .panel,
218
+ .mini-card,
219
+ .metric-card {
220
+ min-width: 0;
221
+ border: 1px solid var(--line);
222
+ background: linear-gradient(180deg, var(--panel-strong), rgba(247, 241, 223, 0.042));
223
+ box-shadow: 0 24px 90px rgba(0, 0, 0, 0.24);
224
+ }
225
+
226
+ .current-state {
227
+ padding: 20px;
228
+ }
229
+
230
+ .status {
231
+ display: inline-flex;
232
+ align-items: center;
233
+ min-height: 30px;
234
+ padding: 5px 9px;
235
+ border: 1px solid rgba(167, 255, 79, 0.34);
236
+ color: var(--signal);
237
+ font-family: var(--mono);
238
+ font-size: 11px;
239
+ letter-spacing: 0.08em;
240
+ text-transform: uppercase;
241
+ }
242
+
243
+ .current-state p,
244
+ .hero-card p,
245
+ .panel p,
246
+ .mini-card p,
247
+ .metric-card p,
248
+ .patch-cell p,
249
+ .dossier-note {
250
+ color: var(--muted);
251
+ overflow-wrap: anywhere;
252
+ }
253
+
254
+ .current-state p {
255
+ margin-top: 16px;
256
+ }
257
+
258
+ .section {
259
+ padding: 44px 0;
260
+ border-top: 1px solid var(--line);
261
+ }
262
+
263
+ .version-site {
264
+ padding-bottom: clamp(48px, 8vw, 110px);
265
+ }
266
+
267
+ .section-head {
268
+ display: grid;
269
+ grid-template-columns: minmax(0, 0.62fr) minmax(260px, 0.38fr);
270
+ gap: 28px;
271
+ align-items: end;
272
+ margin-bottom: 24px;
273
+ }
274
+
275
+ .section h2 {
276
+ margin-top: 10px;
277
+ font-family: var(--display);
278
+ font-weight: 500;
279
+ font-size: clamp(2rem, 4vw, 4rem);
280
+ line-height: 1;
281
+ text-wrap: balance;
282
+ }
283
+
284
+ .section-note {
285
+ color: var(--muted);
286
+ }
287
+
288
+ .process-line {
289
+ position: relative;
290
+ display: grid;
291
+ grid-template-columns: repeat(7, minmax(0, 1fr));
292
+ gap: 10px;
293
+ }
294
+
295
+ .process-line::before {
296
+ content: "";
297
+ position: absolute;
298
+ left: 4%;
299
+ right: 4%;
300
+ top: 25px;
301
+ height: 1px;
302
+ background: linear-gradient(90deg, transparent, rgba(167, 255, 79, 0.58), transparent);
303
+ }
304
+
305
+ .process-node {
306
+ position: relative;
307
+ min-height: 245px;
308
+ display: grid;
309
+ align-content: start;
310
+ gap: 12px;
311
+ padding: 14px;
312
+ border: 1px solid var(--line);
313
+ background: rgba(8, 9, 7, 0.56);
314
+ transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
315
+ }
316
+
317
+ .process-node:hover,
318
+ .process-node:focus-visible {
319
+ transform: translateY(-3px);
320
+ border-color: rgba(167, 255, 79, 0.5);
321
+ background: rgba(247, 241, 223, 0.075);
322
+ outline: none;
323
+ }
324
+
325
+ .node-dot {
326
+ width: 24px;
327
+ height: 24px;
328
+ display: grid;
329
+ place-items: center;
330
+ border: 1px solid rgba(167, 255, 79, 0.5);
331
+ background: #0b0d08;
332
+ color: var(--signal);
333
+ font-family: var(--mono);
334
+ font-size: 10px;
335
+ }
336
+
337
+ .node-number {
338
+ color: var(--signal);
339
+ font-family: var(--mono);
340
+ font-size: 12px;
341
+ letter-spacing: 0.08em;
342
+ }
343
+
344
+ .process-node h3 {
345
+ font-family: var(--display);
346
+ font-size: 1.38rem;
347
+ font-weight: 500;
348
+ line-height: 1.06;
349
+ }
350
+
351
+ .process-node p {
352
+ color: var(--muted);
353
+ font-size: 0.92rem;
354
+ }
355
+
356
+ .node-status {
357
+ margin-top: auto;
358
+ color: var(--copper);
359
+ font-family: var(--mono);
360
+ font-size: 10px;
361
+ letter-spacing: 0.06em;
362
+ text-transform: uppercase;
363
+ }
364
+
365
+ .matrix-wrap {
366
+ overflow-x: auto;
367
+ border: 1px solid var(--line);
368
+ background: rgba(8, 9, 7, 0.52);
369
+ }
370
+
371
+ .comparison-matrix {
372
+ width: 100%;
373
+ min-width: 830px;
374
+ border-collapse: collapse;
375
+ }
376
+
377
+ .comparison-matrix caption {
378
+ position: absolute;
379
+ width: 1px;
380
+ height: 1px;
381
+ overflow: hidden;
382
+ clip: rect(0 0 0 0);
383
+ }
384
+
385
+ .comparison-matrix th,
386
+ .comparison-matrix td {
387
+ border-bottom: 1px solid var(--line);
388
+ border-right: 1px solid var(--line);
389
+ padding: 12px;
390
+ text-align: left;
391
+ vertical-align: top;
392
+ }
393
+
394
+ .comparison-matrix tr:last-child th,
395
+ .comparison-matrix tr:last-child td {
396
+ border-bottom: 0;
397
+ }
398
+
399
+ .comparison-matrix th {
400
+ color: var(--ink);
401
+ font-family: var(--mono);
402
+ font-size: 11px;
403
+ letter-spacing: 0.06em;
404
+ text-transform: uppercase;
405
+ background: rgba(247, 241, 223, 0.06);
406
+ }
407
+
408
+ .comparison-matrix td {
409
+ color: var(--muted);
410
+ font-size: 0.92rem;
411
+ }
412
+
413
+ .comparison-matrix td strong {
414
+ color: var(--signal);
415
+ font-family: var(--mono);
416
+ font-size: 0.78rem;
417
+ font-weight: 500;
418
+ }
419
+
420
+ .version-hero {
421
+ min-height: 48svh;
422
+ display: grid;
423
+ align-items: end;
424
+ padding: clamp(70px, 10vw, 120px) 0 38px;
425
+ }
426
+
427
+ .hero-grid {
428
+ display: grid;
429
+ grid-template-columns: minmax(0, 1fr) minmax(280px, 0.36fr);
430
+ gap: clamp(24px, 5vw, 70px);
431
+ align-items: end;
432
+ }
433
+
434
+ .hero-card {
435
+ padding: 20px;
436
+ }
437
+
438
+ .ascii-section {
439
+ margin-top: clamp(22px, 4vw, 44px);
440
+ }
441
+
442
+ .ascii-panel {
443
+ position: relative;
444
+ overflow: hidden;
445
+ border-color: rgba(167, 255, 79, 0.28);
446
+ background:
447
+ linear-gradient(135deg, rgba(167, 255, 79, 0.08), transparent 34%),
448
+ linear-gradient(225deg, rgba(131, 219, 200, 0.08), transparent 42%),
449
+ var(--panel);
450
+ }
451
+
452
+ .ascii-head {
453
+ display: flex;
454
+ align-items: end;
455
+ justify-content: space-between;
456
+ gap: 18px;
457
+ margin-bottom: 18px;
458
+ }
459
+
460
+ .ascii-head h2,
461
+ .story-panel h2 {
462
+ font-family: var(--display);
463
+ font-size: clamp(22px, 3vw, 34px);
464
+ font-weight: 500;
465
+ }
466
+
467
+
468
+
469
+ .ascii-visual-grid {
470
+ display: grid;
471
+ grid-template-columns: minmax(0, 1.08fr) minmax(280px, 0.92fr);
472
+ gap: 16px;
473
+ align-items: stretch;
474
+ }
475
+
476
+ .adapted-key-visual {
477
+ margin: 0;
478
+ min-width: 0;
479
+ }
480
+
481
+ .adapted-visual {
482
+ height: 100%;
483
+ min-height: 430px;
484
+ display: flex;
485
+ flex-direction: column;
486
+ gap: 14px;
487
+ padding: clamp(16px, 2.6vw, 22px);
488
+ border: 1px solid rgba(131, 219, 200, 0.26);
489
+ background:
490
+ linear-gradient(180deg, rgba(247, 241, 223, 0.055), transparent 42%),
491
+ radial-gradient(circle at 16% 0%, rgba(68, 158, 255, 0.14), transparent 31%),
492
+ radial-gradient(circle at 86% 8%, rgba(167, 255, 79, 0.11), transparent 28%),
493
+ rgba(8, 9, 7, 0.72);
494
+ box-shadow: inset 0 0 36px rgba(0, 0, 0, 0.32), 0 24px 80px rgba(0, 0, 0, 0.18);
495
+ }
496
+
497
+ .adapted-toolbar {
498
+ display: flex;
499
+ align-items: baseline;
500
+ justify-content: space-between;
501
+ gap: 12px;
502
+ font-family: var(--mono);
503
+ text-transform: uppercase;
504
+ letter-spacing: 0.08em;
505
+ }
506
+
507
+ .adapted-toolbar span {
508
+ color: var(--quiet);
509
+ font-size: 11px;
510
+ }
511
+
512
+ .adapted-toolbar strong {
513
+ color: var(--signal);
514
+ font-size: 13px;
515
+ }
516
+
517
+ .adapted-title {
518
+ max-width: 720px;
519
+ }
520
+
521
+ .adapted-title h3 {
522
+ margin: 0 0 8px;
523
+ color: var(--ink);
524
+ font-family: var(--display);
525
+ font-size: clamp(25px, 3.2vw, 38px);
526
+ font-weight: 500;
527
+ line-height: 1.02;
528
+ }
529
+
530
+ .adapted-title p {
531
+ color: var(--ink);
532
+ font-size: clamp(15px, 1.8vw, 18px);
533
+ line-height: 1.38;
534
+ }
535
+
536
+ .adapted-board {
537
+ display: grid;
538
+ grid-template-columns: repeat(4, minmax(0, 1fr));
539
+ gap: 10px;
540
+ align-items: stretch;
541
+ margin-top: 4px;
542
+ }
543
+
544
+ .adapted-lane {
545
+ min-width: 0;
546
+ padding: 12px;
547
+ border: 1px solid color-mix(in srgb, var(--lane-color, var(--cyan)) 42%, transparent);
548
+ background:
549
+ linear-gradient(180deg, color-mix(in srgb, var(--lane-color, var(--cyan)) 13%, transparent), transparent 50%),
550
+ rgba(247, 241, 223, 0.045);
551
+ }
552
+
553
+ .adapted-lane:nth-child(1) {
554
+ --lane-color: #449eff;
555
+ }
556
+
557
+ .adapted-lane:nth-child(2) {
558
+ --lane-color: #ffd52e;
559
+ }
560
+
561
+ .adapted-lane:nth-child(3) {
562
+ --lane-color: #59d985;
563
+ }
564
+
565
+ .owner-lane {
566
+ --lane-color: #b870ff;
567
+ }
568
+
569
+ .lane-head {
570
+ display: flex;
571
+ align-items: center;
572
+ gap: 8px;
573
+ min-height: 32px;
574
+ margin-bottom: 10px;
575
+ }
576
+
577
+ .lane-head span {
578
+ display: grid;
579
+ place-items: center;
580
+ width: 24px;
581
+ height: 24px;
582
+ color: var(--lane-color);
583
+ border: 1px solid color-mix(in srgb, var(--lane-color) 55%, transparent);
584
+ background: color-mix(in srgb, var(--lane-color) 13%, transparent);
585
+ font-family: var(--mono);
586
+ font-size: 11px;
587
+ }
588
+
589
+ .lane-head h4 {
590
+ margin: 0;
591
+ color: var(--lane-color);
592
+ font-family: var(--mono);
593
+ font-size: 11px;
594
+ letter-spacing: 0.08em;
595
+ text-transform: uppercase;
596
+ }
597
+
598
+ .adapted-card-stack {
599
+ display: grid;
600
+ gap: 8px;
601
+ }
602
+
603
+ .adapted-card {
604
+ min-width: 0;
605
+ padding: 10px;
606
+ border: 1px solid rgba(247, 241, 223, 0.12);
607
+ background: rgba(8, 9, 7, 0.38);
608
+ box-shadow: 0 12px 26px rgba(0, 0, 0, 0.14);
609
+ }
610
+
611
+ .adapted-card p {
612
+ color: var(--muted);
613
+ font-size: 13px;
614
+ line-height: 1.35;
615
+ overflow-wrap: anywhere;
616
+ }
617
+
618
+ .adapted-card-lock {
619
+ border-color: color-mix(in srgb, var(--lane-color) 38%, transparent);
620
+ }
621
+
622
+ .adapted-deltas {
623
+ margin-top: auto;
624
+ padding-top: 2px;
625
+ }
626
+
627
+ .kv-frame {
628
+ height: 100%;
629
+ min-height: 330px;
630
+ display: flex;
631
+ flex-direction: column;
632
+ justify-content: space-between;
633
+ padding: clamp(16px, 3vw, 24px);
634
+ border: 1px solid rgba(131, 219, 200, 0.22);
635
+ background:
636
+ radial-gradient(circle at 22% 18%, rgba(131, 219, 200, 0.16), transparent 32%),
637
+ radial-gradient(circle at 82% 70%, rgba(255, 159, 95, 0.14), transparent 34%),
638
+ rgba(8, 9, 7, 0.62);
639
+ box-shadow: inset 0 0 34px rgba(0, 0, 0, 0.24);
640
+ }
641
+
642
+ .kv-meta {
643
+ display: flex;
644
+ align-items: baseline;
645
+ justify-content: space-between;
646
+ gap: 12px;
647
+ font-family: var(--mono);
648
+ text-transform: uppercase;
649
+ letter-spacing: 0.08em;
650
+ }
651
+
652
+ .kv-meta span {
653
+ color: var(--quiet);
654
+ font-size: 11px;
655
+ }
656
+
657
+ .kv-meta strong {
658
+ color: var(--cyan);
659
+ font-size: 13px;
660
+ }
661
+
662
+ .kv-svg {
663
+ width: 100%;
664
+ height: auto;
665
+ margin: 18px 0;
666
+ overflow: visible;
667
+ }
668
+
669
+ .kv-svg rect {
670
+ fill: rgba(247, 241, 223, 0.025);
671
+ stroke: rgba(247, 241, 223, 0.14);
672
+ }
673
+
674
+ .kv-path {
675
+ fill: none;
676
+ stroke-width: 3;
677
+ stroke-linecap: round;
678
+ stroke-dasharray: 8 7;
679
+ opacity: 0.78;
680
+ }
681
+
682
+ .kv-node circle {
683
+ fill: rgba(8, 9, 7, 0.9);
684
+ stroke: var(--cyan);
685
+ stroke-width: 2;
686
+ }
687
+
688
+ .kv-node text {
689
+ fill: var(--ink);
690
+ font-family: var(--mono);
691
+ font-size: 12px;
692
+ }
693
+
694
+ .kv-node .kv-label {
695
+ fill: var(--muted);
696
+ font-size: 10px;
697
+ }
698
+
699
+ .kv-frame figcaption {
700
+ color: var(--muted);
701
+ font-size: 14px;
702
+ }
703
+
704
+ .ascii-art {
705
+ max-width: 100%;
706
+ margin: 0;
707
+ padding: clamp(16px, 3vw, 28px);
708
+ overflow-x: auto;
709
+ white-space: pre;
710
+ color: var(--ink);
711
+ border: 1px solid rgba(247, 241, 223, 0.16);
712
+ background: rgba(8, 9, 7, 0.62);
713
+ box-shadow: inset 0 0 34px rgba(0, 0, 0, 0.26);
714
+ font-family: var(--mono);
715
+ font-size: clamp(10px, 1.35vw, 13px);
716
+ line-height: 1.35;
717
+ letter-spacing: 0;
718
+ }
719
+
720
+ .ascii-art::selection {
721
+ color: #080907;
722
+ background: var(--signal);
723
+ }
724
+
725
+
726
+
727
+ .product-profile {
728
+ margin-top: clamp(26px, 5vw, 58px);
729
+ }
730
+
731
+ .profile-panel {
732
+ border-color: rgba(131, 219, 200, 0.26);
733
+ background:
734
+ linear-gradient(135deg, rgba(131, 219, 200, 0.08), transparent 36%),
735
+ linear-gradient(225deg, rgba(255, 159, 95, 0.06), transparent 42%),
736
+ var(--panel);
737
+ }
738
+
739
+ .profile-kicker {
740
+ display: flex;
741
+ align-items: center;
742
+ justify-content: space-between;
743
+ gap: 14px;
744
+ margin-bottom: 12px;
745
+ flex-wrap: wrap;
746
+ }
747
+
748
+ .profile-badge {
749
+ display: inline-flex;
750
+ align-items: center;
751
+ min-height: 30px;
752
+ padding: 6px 10px;
753
+ border: 1px solid rgba(131, 219, 200, 0.34);
754
+ color: var(--cyan);
755
+ background: rgba(131, 219, 200, 0.08);
756
+ font-family: var(--mono);
757
+ font-size: 11px;
758
+ letter-spacing: 0.06em;
759
+ text-transform: uppercase;
760
+ }
761
+
762
+ .profile-lead {
763
+ max-width: 860px;
764
+ margin-top: 10px;
765
+ color: var(--muted);
766
+ font-size: clamp(17px, 2vw, 22px);
767
+ }
768
+
769
+ .profile-grid {
770
+ display: grid;
771
+ grid-template-columns: repeat(2, minmax(0, 1fr));
772
+ gap: 14px;
773
+ margin-top: 24px;
774
+ }
775
+
776
+ .profile-card {
777
+ min-width: 0;
778
+ padding: 16px;
779
+ border: 1px solid var(--line);
780
+ background: rgba(8, 9, 7, 0.38);
781
+ }
782
+
783
+ .profile-card-wide {
784
+ grid-column: 1 / -1;
785
+ }
786
+
787
+ .profile-card h3,
788
+ .profile-card h4 {
789
+ font-family: var(--mono);
790
+ letter-spacing: 0.08em;
791
+ text-transform: uppercase;
792
+ }
793
+
794
+ .profile-card h3 {
795
+ margin-bottom: 10px;
796
+ color: var(--signal);
797
+ font-size: 12px;
798
+ }
799
+
800
+ .profile-card h4 {
801
+ margin-bottom: 7px;
802
+ color: var(--cyan);
803
+ font-size: 11px;
804
+ }
805
+
806
+ .system-stack {
807
+ display: grid;
808
+ grid-template-columns: repeat(3, minmax(0, 1fr));
809
+ gap: 12px;
810
+ }
811
+
812
+ .system-stack > div,
813
+ .profile-card ul,
814
+ .profile-card div {
815
+ min-width: 0;
816
+ }
817
+
818
+ .profile-card p,
819
+ .profile-card li {
820
+ color: var(--muted);
821
+ overflow-wrap: anywhere;
822
+ }
823
+
824
+ .version-story {
825
+ margin-top: clamp(26px, 5vw, 58px);
826
+ }
827
+
828
+ .story-panel {
829
+ border-color: rgba(255, 159, 95, 0.24);
830
+ background:
831
+ linear-gradient(135deg, rgba(255, 159, 95, 0.08), transparent 34%),
832
+ var(--panel);
833
+ }
834
+
835
+ .story-lead {
836
+ max-width: 760px;
837
+ margin-top: 10px;
838
+ color: var(--muted);
839
+ font-size: clamp(17px, 2vw, 22px);
840
+ }
841
+
842
+ .story-grid {
843
+ display: grid;
844
+ grid-template-columns: repeat(3, minmax(0, 1fr));
845
+ gap: 14px;
846
+ margin-top: 24px;
847
+ }
848
+
849
+ .story-grid > div {
850
+ padding: 16px;
851
+ border: 1px solid var(--line);
852
+ background: rgba(8, 9, 7, 0.36);
853
+ }
854
+
855
+ .story-grid h3 {
856
+ margin-bottom: 8px;
857
+ color: var(--signal);
858
+ font-family: var(--mono);
859
+ font-size: 12px;
860
+ letter-spacing: 0.08em;
861
+ text-transform: uppercase;
862
+ }
863
+
864
+ .dossier-grid {
865
+ display: grid;
866
+ grid-template-columns: minmax(0, 0.58fr) minmax(300px, 0.42fr);
867
+ gap: 16px;
868
+ }
869
+
870
+ .panel,
871
+ .mini-card,
872
+ .metric-card {
873
+ padding: 18px;
874
+ }
875
+
876
+ .panel h3,
877
+ .mini-card h3,
878
+ .metric-card h3,
879
+ .patch-cell h3 {
880
+ color: var(--copper);
881
+ font-family: var(--mono);
882
+ font-size: 12px;
883
+ letter-spacing: 0.08em;
884
+ text-transform: uppercase;
885
+ margin: 0 0 12px;
886
+ }
887
+
888
+ .pipeline {
889
+ display: flex;
890
+ flex-wrap: wrap;
891
+ align-items: center;
892
+ gap: 8px;
893
+ }
894
+
895
+ .skill-chip,
896
+ .proof-chip {
897
+ display: inline-flex;
898
+ align-items: center;
899
+ max-width: 100%;
900
+ min-height: 30px;
901
+ border: 1px solid var(--line);
902
+ background: rgba(8, 9, 7, 0.32);
903
+ color: var(--ink);
904
+ padding: 5px 9px;
905
+ font-family: var(--mono);
906
+ font-size: 11px;
907
+ overflow-wrap: anywhere;
908
+ }
909
+
910
+ .skill-chip::after {
911
+ content: ">";
912
+ margin-left: 8px;
913
+ color: var(--quiet);
914
+ }
915
+
916
+ .skill-chip:last-child::after {
917
+ content: "";
918
+ margin: 0;
919
+ }
920
+
921
+ .patch-diagram,
922
+ .evidence-grid {
923
+ display: grid;
924
+ grid-template-columns: repeat(3, minmax(0, 1fr));
925
+ gap: 12px;
926
+ }
927
+
928
+ .patch-cell {
929
+ min-height: 180px;
930
+ padding: 18px;
931
+ border: 1px solid var(--line);
932
+ background: rgba(247, 241, 223, 0.052);
933
+ overflow-wrap: anywhere;
934
+ }
935
+
936
+ .patch-cell.problem {
937
+ border-color: rgba(255, 107, 95, 0.35);
938
+ }
939
+
940
+ .patch-cell.change {
941
+ border-color: rgba(131, 219, 200, 0.36);
942
+ }
943
+
944
+ .patch-cell.validation {
945
+ border-color: rgba(167, 255, 79, 0.34);
946
+ }
947
+
948
+ .patch-cell.stand {
949
+ border-color: rgba(247, 241, 223, 0.28);
950
+ }
951
+
952
+ .patch-cell.proposal,
953
+ .patch-cell.implementation {
954
+ border-color: rgba(131, 219, 200, 0.34);
955
+ }
956
+
957
+ .patch-cell.test {
958
+ border-color: rgba(255, 159, 95, 0.36);
959
+ }
960
+
961
+ .patch-cell.method {
962
+ grid-column: 1 / -1;
963
+ min-height: 120px;
964
+ border-color: rgba(167, 255, 79, 0.34);
965
+ background: linear-gradient(90deg, rgba(167, 255, 79, 0.06), rgba(247, 241, 223, 0.045));
966
+ }
967
+
968
+ .patch-arrow {
969
+ color: var(--signal);
970
+ font-family: var(--mono);
971
+ font-size: 11px;
972
+ }
973
+
974
+ .two-column {
975
+ display: grid;
976
+ grid-template-columns: repeat(2, minmax(0, 1fr));
977
+ gap: 14px;
978
+ }
979
+
980
+ .mini-card.good {
981
+ border-color: rgba(167, 255, 79, 0.35);
982
+ }
983
+
984
+ .mini-card.bad {
985
+ border-color: rgba(255, 107, 95, 0.34);
986
+ }
987
+
988
+ .proof-strip {
989
+ display: flex;
990
+ flex-wrap: wrap;
991
+ gap: 9px;
992
+ }
993
+
994
+ .proof-chip {
995
+ color: var(--signal);
996
+ border-color: rgba(167, 255, 79, 0.32);
997
+ }
998
+
999
+ .source-list {
1000
+ display: flex;
1001
+ flex-wrap: wrap;
1002
+ gap: 8px;
1003
+ margin-top: 14px;
1004
+ padding-top: 14px;
1005
+ border-top: 1px solid var(--line);
1006
+ }
1007
+
1008
+ .source-link {
1009
+ display: inline-flex;
1010
+ align-items: center;
1011
+ max-width: 100%;
1012
+ min-height: 28px;
1013
+ padding: 4px 8px;
1014
+ border: 1px solid rgba(131, 219, 200, 0.28);
1015
+ color: var(--cyan);
1016
+ font-family: var(--mono);
1017
+ font-size: 10px;
1018
+ letter-spacing: 0.04em;
1019
+ text-transform: uppercase;
1020
+ overflow-wrap: anywhere;
1021
+ }
1022
+
1023
+ .source-link:hover,
1024
+ .source-link:focus-visible {
1025
+ border-color: rgba(167, 255, 79, 0.48);
1026
+ color: var(--signal);
1027
+ outline: none;
1028
+ }
1029
+
1030
+ .next-jump {
1031
+ border-left: 2px solid var(--cyan);
1032
+ }
1033
+
1034
+ .footer {
1035
+ border-top: 1px solid var(--line);
1036
+ padding: 36px var(--pad);
1037
+ color: var(--quiet);
1038
+ font-family: var(--mono);
1039
+ font-size: 11px;
1040
+ text-align: center;
1041
+ }
1042
+
1043
+ @media (max-width: 1080px) {
1044
+ .intro-board,
1045
+ .hero-grid,
1046
+ .section-head,
1047
+ .dossier-grid {
1048
+ grid-template-columns: 1fr;
1049
+ }
1050
+
1051
+ .process-line {
1052
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1053
+ }
1054
+ }
1055
+
1056
+ @media (max-width: 780px) {
1057
+ .process-line,
1058
+ .patch-diagram,
1059
+ .evidence-grid,
1060
+ .two-column,
1061
+ .story-grid,
1062
+ .profile-grid,
1063
+ .system-stack,
1064
+ .ascii-visual-grid,
1065
+ .explain-flow,
1066
+ .adapted-board {
1067
+ grid-template-columns: 1fr;
1068
+ }
1069
+
1070
+ .flow-arrow {
1071
+ transform: rotate(90deg);
1072
+ }
1073
+
1074
+ .process-line::before {
1075
+ display: none;
1076
+ }
1077
+
1078
+ .matrix-wrap {
1079
+ overflow: visible;
1080
+ }
1081
+
1082
+ .comparison-matrix {
1083
+ display: block;
1084
+ min-width: 0;
1085
+ }
1086
+
1087
+ .comparison-matrix tbody,
1088
+ .comparison-matrix tr,
1089
+ .comparison-matrix th,
1090
+ .comparison-matrix td {
1091
+ display: block;
1092
+ }
1093
+
1094
+ .comparison-matrix tr:first-child {
1095
+ display: none;
1096
+ }
1097
+
1098
+ .comparison-matrix tr {
1099
+ border-bottom: 1px solid var(--line);
1100
+ }
1101
+
1102
+ .comparison-matrix tr:last-child {
1103
+ border-bottom: 0;
1104
+ }
1105
+
1106
+ .comparison-matrix th,
1107
+ .comparison-matrix td {
1108
+ border-right: 0;
1109
+ }
1110
+
1111
+ .comparison-matrix td::before {
1112
+ content: attr(data-version);
1113
+ display: block;
1114
+ margin-bottom: 4px;
1115
+ color: var(--quiet);
1116
+ font-family: var(--mono);
1117
+ font-size: 10px;
1118
+ letter-spacing: 0.06em;
1119
+ text-transform: uppercase;
1120
+ }
1121
+
1122
+ .topbar {
1123
+ position: relative;
1124
+ }
1125
+
1126
+ .topbar-inner {
1127
+ align-items: flex-start;
1128
+ flex-direction: column;
1129
+ }
1130
+
1131
+ .shell {
1132
+ width: min(var(--max), calc(100vw - 36px));
1133
+ }
1134
+
1135
+ .intro-board,
1136
+ .version-hero {
1137
+ min-height: auto;
1138
+ padding-top: 42px;
1139
+ }
1140
+ }
1141
+
1142
+
1143
+ .explain-visual {
1144
+ height: 100%;
1145
+ min-height: 430px;
1146
+ display: flex;
1147
+ flex-direction: column;
1148
+ gap: 16px;
1149
+ padding: clamp(16px, 3vw, 24px);
1150
+ border: 1px solid rgba(131, 219, 200, 0.24);
1151
+ background:
1152
+ linear-gradient(135deg, rgba(131, 219, 200, 0.12), transparent 36%),
1153
+ linear-gradient(225deg, rgba(255, 159, 95, 0.10), transparent 42%),
1154
+ rgba(8, 9, 7, 0.64);
1155
+ box-shadow: inset 0 0 34px rgba(0, 0, 0, 0.24);
1156
+ }
1157
+
1158
+ .explain-head {
1159
+ display: flex;
1160
+ align-items: baseline;
1161
+ justify-content: space-between;
1162
+ gap: 12px;
1163
+ font-family: var(--mono);
1164
+ text-transform: uppercase;
1165
+ letter-spacing: 0.08em;
1166
+ }
1167
+
1168
+ .explain-head span {
1169
+ color: var(--quiet);
1170
+ font-size: 11px;
1171
+ }
1172
+
1173
+ .explain-head strong {
1174
+ color: var(--cyan);
1175
+ font-size: 13px;
1176
+ }
1177
+
1178
+ .explain-thesis {
1179
+ color: var(--ink);
1180
+ font-family: var(--display);
1181
+ font-size: clamp(18px, 2vw, 24px);
1182
+ line-height: 1.22;
1183
+ }
1184
+
1185
+ .explain-flow {
1186
+ display: grid;
1187
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
1188
+ gap: 10px;
1189
+ align-items: stretch;
1190
+ }
1191
+
1192
+ .explain-layer {
1193
+ position: relative;
1194
+ min-width: 0;
1195
+ padding: 18px 14px 14px;
1196
+ border: 1px solid rgba(247, 241, 223, 0.16);
1197
+ background: rgba(247, 241, 223, 0.045);
1198
+ }
1199
+
1200
+ .layer-num {
1201
+ position: absolute;
1202
+ top: -11px;
1203
+ left: 12px;
1204
+ display: grid;
1205
+ place-items: center;
1206
+ width: 24px;
1207
+ height: 24px;
1208
+ border: 1px solid rgba(131, 219, 200, 0.44);
1209
+ background: #080907;
1210
+ color: var(--signal);
1211
+ font-family: var(--mono);
1212
+ font-size: 11px;
1213
+ }
1214
+
1215
+ .explain-layer h4 {
1216
+ margin: 0 0 10px;
1217
+ color: var(--cyan);
1218
+ font-family: var(--mono);
1219
+ font-size: 11px;
1220
+ letter-spacing: 0.08em;
1221
+ text-transform: uppercase;
1222
+ }
1223
+
1224
+ .explain-layer ul {
1225
+ padding-left: 15px;
1226
+ }
1227
+
1228
+ .explain-layer li {
1229
+ color: var(--muted);
1230
+ font-size: 13px;
1231
+ }
1232
+
1233
+ .flow-arrow {
1234
+ display: grid;
1235
+ place-items: center;
1236
+ color: var(--copper);
1237
+ font-family: var(--mono);
1238
+ font-size: 24px;
1239
+ }
1240
+
1241
+ .delta-row {
1242
+ display: flex;
1243
+ flex-wrap: wrap;
1244
+ gap: 8px;
1245
+ }
1246
+
1247
+ .delta-row span {
1248
+ padding: 6px 9px;
1249
+ border: 1px solid rgba(167, 255, 79, 0.24);
1250
+ color: var(--signal);
1251
+ background: rgba(167, 255, 79, 0.065);
1252
+ font-family: var(--mono);
1253
+ font-size: 11px;
1254
+ }
1255
+
1256
+ .visual-warning {
1257
+ margin-top: auto;
1258
+ padding-top: 12px;
1259
+ border-top: 1px solid var(--line);
1260
+ color: var(--muted);
1261
+ font-size: 14px;
1262
+ }
index.html ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI Versionspfad</title>
7
+ <meta name="description" content="Lokaler visueller Explainer fuer die HAI-Versionen V1.0 bis V1.6.">
8
+ <link rel="stylesheet" href="./assets/styles.css">
9
+ </head>
10
+ <body>
11
+ <header class="topbar">
12
+ <div class="topbar-inner">
13
+ <a class="brand" href="./" aria-label="HAI Versionspfad">
14
+ <span class="brand-mark">HAI</span>
15
+ <span>Version Dossiers</span>
16
+ </a>
17
+ <nav class="nav" aria-label="Navigation">
18
+ <a href="#evolution">Evolution</a>
19
+ <a href="#matrix">Matrix</a>
20
+ <a href="./versions/v1-6/">V1.6</a>
21
+ </nav>
22
+ </div>
23
+ </header>
24
+
25
+ <main class="shell">
26
+ <section class="intro-board" aria-labelledby="page-title">
27
+ <div class="intro-copy">
28
+ <p class="eyebrow">Lokaler Review-Prototyp</p>
29
+ <h1 id="page-title">HAI Versionspfad</h1>
30
+ <p class="lead">
31
+ Der Pfad zeigt, wie HAI von Projekt-Verstehen zu kontrollierter
32
+ Ausfuehrung, sinnvollen Stops, engem Repair und begrenztem Pair-Modus gewachsen ist.
33
+ </p>
34
+ </div>
35
+ <div class="current-state" aria-label="Aktueller Stand">
36
+ <span class="status">V1.6: Pair-Modus Patchlinie</span>
37
+ <p>Zwei unabhaengige Lanes sind erlaubt, aber nur mit Scope-Beweis, Worktree-Isolation und Join nach Validator-ACCEPT.</p>
38
+ </div>
39
+ </section>
40
+
41
+ <section class="section" id="evolution">
42
+ <div class="section-head">
43
+ <div>
44
+ <p class="label">Evolution Board</p>
45
+ <h2>Sieben Stufen, eine Prozesslinie.</h2>
46
+ </div>
47
+ <p class="section-note">
48
+ Jede Version beantwortet denselben Dossier-Satz: Skillstand,
49
+ Bruchstelle, Aenderung, Validierung und naechster Sprung.
50
+ </p>
51
+ </div>
52
+ <div class="process-line" data-evolution></div>
53
+ </section>
54
+
55
+ <section class="section" id="matrix">
56
+ <div class="section-head">
57
+ <div>
58
+ <p class="label">Vergleichsmatrix</p>
59
+ <h2>Was pro Version besser wurde.</h2>
60
+ </div>
61
+ <p class="section-note">
62
+ Die Matrix ist absichtlich grob: sie zeigt die Reife der HAI-Faehigkeit,
63
+ nicht interne Changelog-Details.
64
+ </p>
65
+ </div>
66
+ <div class="matrix-wrap">
67
+ <table class="comparison-matrix" data-matrix>
68
+ <caption>HAI Faehigkeiten von V1.0 bis V1.6</caption>
69
+ </table>
70
+ </div>
71
+ </section>
72
+ </main>
73
+
74
+ <footer class="footer">
75
+ Lokaler Prototyp: /home/smlflg/Projekte/HAI/hai-version-explainers
76
+ </footer>
77
+
78
+ <script src="./assets/app.js"></script>
79
+ </body>
80
+ </html>
tests/smoke-ascii.mjs ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+
4
+ const root = path.resolve("hai-version-explainers");
5
+ const appPath = path.join(root, "assets", "app.js");
6
+ const app = fs.readFileSync(appPath, "utf8");
7
+ const versions = ["v1-0", "v1-1", "v1-2", "v1-3", "v1-4", "v1-5", "v1-6"];
8
+ const storyMarkers = [
9
+ "data-story-title",
10
+ "data-story-lead",
11
+ "data-story-before",
12
+ "data-story-after",
13
+ "data-owner-question"
14
+ ];
15
+ const productMarkers = [
16
+ "data-agent-role",
17
+ "data-product-positioning",
18
+ "data-system-inputs",
19
+ "data-system-process",
20
+ "data-system-outputs",
21
+ "data-mental-model",
22
+ "data-version-changes",
23
+ "data-version-functions",
24
+ "data-profile-governance"
25
+ ];
26
+
27
+ for (const version of versions) {
28
+ const page = path.join(root, "versions", version, "index.html");
29
+ if (!fs.existsSync(page)) throw new Error(`missing page: ${page}`);
30
+ const html = fs.readFileSync(page, "utf8");
31
+ if (!html.includes(`data-version="${version}"`)) throw new Error(`wrong data-version in ${page}`);
32
+ if (!html.includes('class="shell version-site"')) throw new Error(`missing standalone version-site shell in ${page}`);
33
+ if ((html.match(/data-ascii-art/g) || []).length !== 1) throw new Error(`ascii target must appear exactly once in ${page}`);
34
+ if ((html.match(/data-adapted-visual/g) || []).length !== 1) throw new Error(`adapted visual target must appear exactly once in ${page}`);
35
+ if (html.includes("data-reference-visual")) throw new Error(`old reference visual target still present in ${page}`);
36
+ if (html.includes("data-ai-visual")) throw new Error(`old ai visual target still present in ${page}`);
37
+ const heroIndex = html.indexOf('class="version-hero"');
38
+ const asciiIndex = html.indexOf('class="section ascii-section"');
39
+ const storyIndex = html.indexOf('class="section version-story"');
40
+ if (!(heroIndex !== -1 && heroIndex < asciiIndex && asciiIndex < storyIndex)) {
41
+ throw new Error(`ascii/story order is wrong in ${page}`);
42
+ }
43
+ for (const marker of storyMarkers) {
44
+ if (!html.includes(marker)) throw new Error(`missing ${marker} in ${page}`);
45
+ }
46
+ for (const marker of productMarkers) {
47
+ if (!html.includes(marker)) throw new Error(`missing ${marker} in ${page}`);
48
+ }
49
+ if (!app.includes(`"${version}":`)) throw new Error(`missing VERSION_DATA for ${version}`);
50
+ }
51
+
52
+ const asciiCount = (app.match(/asciiArt:\s*String\.raw`/g) || []).length;
53
+ if (asciiCount !== versions.length) {
54
+ throw new Error(`expected ${versions.length} asciiArt entries, got ${asciiCount}`);
55
+ }
56
+
57
+ const websiteCount = (app.match(/website:\s*{/g) || []).length;
58
+ if (websiteCount !== versions.length) {
59
+ throw new Error(`expected ${versions.length} website blocks, got ${websiteCount}`);
60
+ }
61
+
62
+ for (const marker of ["const PROFILE_DATA = {", "const VISUAL_DATA = {", "function renderAdaptedVisual", "data-agent-role", "data-version-functions"]) {
63
+ if (!app.includes(marker)) throw new Error(`missing profile renderer/data marker: ${marker}`);
64
+ }
65
+
66
+ const expectedOrder = 'const ORDER = ["v1-0", "v1-1", "v1-2", "v1-3", "v1-4", "v1-5", "v1-6"]';
67
+ if (!app.includes(expectedOrder)) {
68
+ throw new Error("ORDER does not include all versions through v1-6");
69
+ }
70
+
71
+ if (app.includes('<a class="source-link"')) {
72
+ throw new Error("source labels must not render as links under the local http.server root");
73
+ }
74
+
75
+ console.log(`OK: ${versions.length} HAI version websites configured with distinct ASCII + adapted visual slots`);
versions/v1-0/index.html ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI V1.0</title>
7
+ <link rel="stylesheet" href="../../assets/styles.css">
8
+ </head>
9
+ <body data-version="v1-0">
10
+ <header class="topbar">
11
+ <div class="topbar-inner">
12
+ <a class="brand" href="../../"><span class="brand-mark">HAI</span><span>Version Dossier</span></a>
13
+ <nav class="nav" aria-label="Version Navigation">
14
+ <a href="../../">Index</a>
15
+ <a data-prev href="../v1-0/">Zurueck</a>
16
+ <a data-next-link href="../v1-1/">Weiter</a>
17
+ </nav>
18
+ </div>
19
+ </header>
20
+ <main class="shell version-site">
21
+ <section class="version-hero">
22
+ <div class="hero-grid">
23
+ <div>
24
+ <p class="eyebrow" data-version-number></p>
25
+ <h1 data-version-title></h1>
26
+ <p class="lead" data-version-one-line></p>
27
+ </div>
28
+ <aside class="hero-card">
29
+ <span class="status" data-version-status></span>
30
+ <p data-background></p>
31
+ </aside>
32
+ </div>
33
+ </section>
34
+
35
+ <section class="section ascii-section" aria-labelledby="ascii-title">
36
+ <article class="panel ascii-panel">
37
+ <div class="ascii-head">
38
+ <p class="label">Owner-Loop</p>
39
+ <h2 id="ascii-title">ASCII-Art dieser Version</h2>
40
+ </div>
41
+ <div class="ascii-visual-grid">
42
+ <pre class="ascii-art" data-ascii-art aria-label="HAI Owner-Loop ASCII-Art"></pre>
43
+ <figure class="adapted-key-visual" data-adapted-visual aria-label="Angepasstes Versionsvisual"></figure>
44
+ </div>
45
+ </article>
46
+ </section>
47
+
48
+ <section class="section version-story" aria-labelledby="story-title">
49
+ <article class="panel story-panel">
50
+ <p class="label">Version Story</p>
51
+ <h2 id="story-title" data-story-title></h2>
52
+ <p class="story-lead" data-story-lead></p>
53
+ <div class="story-grid">
54
+ <div>
55
+ <h3>Vorher</h3>
56
+ <p data-story-before></p>
57
+ </div>
58
+ <div>
59
+ <h3>Nachher</h3>
60
+ <p data-story-after></p>
61
+ </div>
62
+ <div>
63
+ <h3>Owner-Frage</h3>
64
+ <p data-owner-question></p>
65
+ </div>
66
+ </div>
67
+ </article>
68
+ </section>
69
+
70
+ <section class="section product-profile" aria-labelledby="profile-title">
71
+ <article class="panel profile-panel">
72
+ <div class="profile-kicker">
73
+ <p class="label">Agenten-Steckbrief</p>
74
+ <span class="profile-badge" data-agent-role></span>
75
+ </div>
76
+ <h2 id="profile-title">Systematik, mentales Modell, Versions-Diff</h2>
77
+ <p class="profile-lead" data-product-positioning></p>
78
+ <div class="profile-grid">
79
+ <section class="profile-card profile-card-wide">
80
+ <h3>Systematik</h3>
81
+ <div class="system-stack">
82
+ <div>
83
+ <h4>Inputs</h4>
84
+ <div data-system-inputs></div>
85
+ </div>
86
+ <div>
87
+ <h4>Prozesslogik</h4>
88
+ <p data-system-process></p>
89
+ </div>
90
+ <div>
91
+ <h4>Outputs</h4>
92
+ <div data-system-outputs></div>
93
+ </div>
94
+ </div>
95
+ </section>
96
+ <section class="profile-card">
97
+ <h3>Mentales Nutzermodell</h3>
98
+ <p data-mental-model></p>
99
+ </section>
100
+ <section class="profile-card">
101
+ <h3>Änderungen</h3>
102
+ <div data-version-changes></div>
103
+ </section>
104
+ <section class="profile-card">
105
+ <h3>Neue Funktionen / Skills</h3>
106
+ <div data-version-functions></div>
107
+ </section>
108
+ <section class="profile-card profile-card-wide">
109
+ <h3>Grenzen & Governance</h3>
110
+ <p data-profile-governance></p>
111
+ </section>
112
+ </div>
113
+ </article>
114
+ </section>
115
+
116
+ <section class="section">
117
+ <div class="dossier-grid">
118
+ <article class="panel">
119
+ <h3>Skillstand</h3>
120
+ <div data-skillstand></div>
121
+ </article>
122
+ <article class="panel">
123
+ <h3>Skill-Pipeline</h3>
124
+ <div class="pipeline" data-skill-chain></div>
125
+ </article>
126
+ </div>
127
+ </section>
128
+
129
+ <section class="section">
130
+ <div class="evidence-grid">
131
+ <article class="patch-cell stand"><h3>Stand</h3><p data-stand></p></article>
132
+ <article class="patch-cell problem"><h3>Problem</h3><p data-problem></p></article>
133
+ <article class="patch-cell proposal"><h3>Verbesserungsvorschlag</h3><p data-proposal></p></article>
134
+ <article class="patch-cell implementation"><h3>Umsetzung</h3><p data-implementation></p></article>
135
+ <article class="patch-cell test"><h3>Test</h3><p data-test></p></article>
136
+ <article class="patch-cell validation"><h3>Validierung</h3><p data-validation-text></p></article>
137
+ <article class="patch-cell method"><h3>Methodischer Fokus</h3><p data-method></p></article>
138
+ </div>
139
+ </section>
140
+
141
+ <section class="section">
142
+ <div class="two-column">
143
+ <article class="mini-card good">
144
+ <h3>Gut</h3>
145
+ <div data-good></div>
146
+ </article>
147
+ <article class="mini-card bad">
148
+ <h3>Schlecht</h3>
149
+ <div data-weak></div>
150
+ </article>
151
+ </div>
152
+ </section>
153
+
154
+ <section class="section">
155
+ <div class="dossier-grid">
156
+ <article class="panel next-jump">
157
+ <h3>Geplanter naechster Sprung</h3>
158
+ <p data-next></p>
159
+ </article>
160
+ <article class="panel">
161
+ <h3>Proof Strip</h3>
162
+ <div class="proof-strip" data-proof></div>
163
+ <div class="source-list" data-sources></div>
164
+ </article>
165
+ </div>
166
+ </section>
167
+ </main>
168
+ <footer class="footer">Lokaler Review-Prototyp. Noch nicht Teil des Produktrepos.</footer>
169
+ <script src="../../assets/app.js"></script>
170
+ </body>
171
+ </html>
versions/v1-1/index.html ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI V1.1</title>
7
+ <link rel="stylesheet" href="../../assets/styles.css">
8
+ </head>
9
+ <body data-version="v1-1">
10
+ <header class="topbar">
11
+ <div class="topbar-inner">
12
+ <a class="brand" href="../../"><span class="brand-mark">HAI</span><span>Version Dossier</span></a>
13
+ <nav class="nav" aria-label="Version Navigation">
14
+ <a href="../../">Index</a>
15
+ <a data-prev href="../v1-0/">Zurueck</a>
16
+ <a data-next-link href="../v1-2/">Weiter</a>
17
+ </nav>
18
+ </div>
19
+ </header>
20
+ <main class="shell version-site">
21
+ <section class="version-hero">
22
+ <div class="hero-grid">
23
+ <div>
24
+ <p class="eyebrow" data-version-number></p>
25
+ <h1 data-version-title></h1>
26
+ <p class="lead" data-version-one-line></p>
27
+ </div>
28
+ <aside class="hero-card">
29
+ <span class="status" data-version-status></span>
30
+ <p data-background></p>
31
+ </aside>
32
+ </div>
33
+ </section>
34
+
35
+ <section class="section ascii-section" aria-labelledby="ascii-title">
36
+ <article class="panel ascii-panel">
37
+ <div class="ascii-head">
38
+ <p class="label">Owner-Loop</p>
39
+ <h2 id="ascii-title">ASCII-Art dieser Version</h2>
40
+ </div>
41
+ <div class="ascii-visual-grid">
42
+ <pre class="ascii-art" data-ascii-art aria-label="HAI Owner-Loop ASCII-Art"></pre>
43
+ <figure class="adapted-key-visual" data-adapted-visual aria-label="Angepasstes Versionsvisual"></figure>
44
+ </div>
45
+ </article>
46
+ </section>
47
+
48
+ <section class="section version-story" aria-labelledby="story-title">
49
+ <article class="panel story-panel">
50
+ <p class="label">Version Story</p>
51
+ <h2 id="story-title" data-story-title></h2>
52
+ <p class="story-lead" data-story-lead></p>
53
+ <div class="story-grid">
54
+ <div>
55
+ <h3>Vorher</h3>
56
+ <p data-story-before></p>
57
+ </div>
58
+ <div>
59
+ <h3>Nachher</h3>
60
+ <p data-story-after></p>
61
+ </div>
62
+ <div>
63
+ <h3>Owner-Frage</h3>
64
+ <p data-owner-question></p>
65
+ </div>
66
+ </div>
67
+ </article>
68
+ </section>
69
+
70
+ <section class="section product-profile" aria-labelledby="profile-title">
71
+ <article class="panel profile-panel">
72
+ <div class="profile-kicker">
73
+ <p class="label">Agenten-Steckbrief</p>
74
+ <span class="profile-badge" data-agent-role></span>
75
+ </div>
76
+ <h2 id="profile-title">Systematik, mentales Modell, Versions-Diff</h2>
77
+ <p class="profile-lead" data-product-positioning></p>
78
+ <div class="profile-grid">
79
+ <section class="profile-card profile-card-wide">
80
+ <h3>Systematik</h3>
81
+ <div class="system-stack">
82
+ <div>
83
+ <h4>Inputs</h4>
84
+ <div data-system-inputs></div>
85
+ </div>
86
+ <div>
87
+ <h4>Prozesslogik</h4>
88
+ <p data-system-process></p>
89
+ </div>
90
+ <div>
91
+ <h4>Outputs</h4>
92
+ <div data-system-outputs></div>
93
+ </div>
94
+ </div>
95
+ </section>
96
+ <section class="profile-card">
97
+ <h3>Mentales Nutzermodell</h3>
98
+ <p data-mental-model></p>
99
+ </section>
100
+ <section class="profile-card">
101
+ <h3>Änderungen</h3>
102
+ <div data-version-changes></div>
103
+ </section>
104
+ <section class="profile-card">
105
+ <h3>Neue Funktionen / Skills</h3>
106
+ <div data-version-functions></div>
107
+ </section>
108
+ <section class="profile-card profile-card-wide">
109
+ <h3>Grenzen & Governance</h3>
110
+ <p data-profile-governance></p>
111
+ </section>
112
+ </div>
113
+ </article>
114
+ </section>
115
+
116
+ <section class="section">
117
+ <div class="dossier-grid">
118
+ <article class="panel">
119
+ <h3>Skillstand</h3>
120
+ <div data-skillstand></div>
121
+ </article>
122
+ <article class="panel">
123
+ <h3>Skill-Pipeline</h3>
124
+ <div class="pipeline" data-skill-chain></div>
125
+ </article>
126
+ </div>
127
+ </section>
128
+
129
+ <section class="section">
130
+ <div class="evidence-grid">
131
+ <article class="patch-cell stand"><h3>Stand</h3><p data-stand></p></article>
132
+ <article class="patch-cell problem"><h3>Problem</h3><p data-problem></p></article>
133
+ <article class="patch-cell proposal"><h3>Verbesserungsvorschlag</h3><p data-proposal></p></article>
134
+ <article class="patch-cell implementation"><h3>Umsetzung</h3><p data-implementation></p></article>
135
+ <article class="patch-cell test"><h3>Test</h3><p data-test></p></article>
136
+ <article class="patch-cell validation"><h3>Validierung</h3><p data-validation-text></p></article>
137
+ <article class="patch-cell method"><h3>Methodischer Fokus</h3><p data-method></p></article>
138
+ </div>
139
+ </section>
140
+
141
+ <section class="section">
142
+ <div class="two-column">
143
+ <article class="mini-card good">
144
+ <h3>Gut</h3>
145
+ <div data-good></div>
146
+ </article>
147
+ <article class="mini-card bad">
148
+ <h3>Schlecht</h3>
149
+ <div data-weak></div>
150
+ </article>
151
+ </div>
152
+ </section>
153
+
154
+ <section class="section">
155
+ <div class="dossier-grid">
156
+ <article class="panel next-jump">
157
+ <h3>Geplanter naechster Sprung</h3>
158
+ <p data-next></p>
159
+ </article>
160
+ <article class="panel">
161
+ <h3>Proof Strip</h3>
162
+ <div class="proof-strip" data-proof></div>
163
+ <div class="source-list" data-sources></div>
164
+ </article>
165
+ </div>
166
+ </section>
167
+ </main>
168
+ <footer class="footer">Lokaler Review-Prototyp. Noch nicht Teil des Produktrepos.</footer>
169
+ <script src="../../assets/app.js"></script>
170
+ </body>
171
+ </html>
versions/v1-2/index.html ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI V1.2</title>
7
+ <link rel="stylesheet" href="../../assets/styles.css">
8
+ </head>
9
+ <body data-version="v1-2">
10
+ <header class="topbar">
11
+ <div class="topbar-inner">
12
+ <a class="brand" href="../../"><span class="brand-mark">HAI</span><span>Version Dossier</span></a>
13
+ <nav class="nav" aria-label="Version Navigation">
14
+ <a href="../../">Index</a>
15
+ <a data-prev href="../v1-1/">Zurueck</a>
16
+ <a data-next-link href="../v1-3/">Weiter</a>
17
+ </nav>
18
+ </div>
19
+ </header>
20
+ <main class="shell version-site">
21
+ <section class="version-hero">
22
+ <div class="hero-grid">
23
+ <div>
24
+ <p class="eyebrow" data-version-number></p>
25
+ <h1 data-version-title></h1>
26
+ <p class="lead" data-version-one-line></p>
27
+ </div>
28
+ <aside class="hero-card">
29
+ <span class="status" data-version-status></span>
30
+ <p data-background></p>
31
+ </aside>
32
+ </div>
33
+ </section>
34
+
35
+ <section class="section ascii-section" aria-labelledby="ascii-title">
36
+ <article class="panel ascii-panel">
37
+ <div class="ascii-head">
38
+ <p class="label">Owner-Loop</p>
39
+ <h2 id="ascii-title">ASCII-Art dieser Version</h2>
40
+ </div>
41
+ <div class="ascii-visual-grid">
42
+ <pre class="ascii-art" data-ascii-art aria-label="HAI Owner-Loop ASCII-Art"></pre>
43
+ <figure class="adapted-key-visual" data-adapted-visual aria-label="Angepasstes Versionsvisual"></figure>
44
+ </div>
45
+ </article>
46
+ </section>
47
+
48
+ <section class="section version-story" aria-labelledby="story-title">
49
+ <article class="panel story-panel">
50
+ <p class="label">Version Story</p>
51
+ <h2 id="story-title" data-story-title></h2>
52
+ <p class="story-lead" data-story-lead></p>
53
+ <div class="story-grid">
54
+ <div>
55
+ <h3>Vorher</h3>
56
+ <p data-story-before></p>
57
+ </div>
58
+ <div>
59
+ <h3>Nachher</h3>
60
+ <p data-story-after></p>
61
+ </div>
62
+ <div>
63
+ <h3>Owner-Frage</h3>
64
+ <p data-owner-question></p>
65
+ </div>
66
+ </div>
67
+ </article>
68
+ </section>
69
+
70
+ <section class="section product-profile" aria-labelledby="profile-title">
71
+ <article class="panel profile-panel">
72
+ <div class="profile-kicker">
73
+ <p class="label">Agenten-Steckbrief</p>
74
+ <span class="profile-badge" data-agent-role></span>
75
+ </div>
76
+ <h2 id="profile-title">Systematik, mentales Modell, Versions-Diff</h2>
77
+ <p class="profile-lead" data-product-positioning></p>
78
+ <div class="profile-grid">
79
+ <section class="profile-card profile-card-wide">
80
+ <h3>Systematik</h3>
81
+ <div class="system-stack">
82
+ <div>
83
+ <h4>Inputs</h4>
84
+ <div data-system-inputs></div>
85
+ </div>
86
+ <div>
87
+ <h4>Prozesslogik</h4>
88
+ <p data-system-process></p>
89
+ </div>
90
+ <div>
91
+ <h4>Outputs</h4>
92
+ <div data-system-outputs></div>
93
+ </div>
94
+ </div>
95
+ </section>
96
+ <section class="profile-card">
97
+ <h3>Mentales Nutzermodell</h3>
98
+ <p data-mental-model></p>
99
+ </section>
100
+ <section class="profile-card">
101
+ <h3>Änderungen</h3>
102
+ <div data-version-changes></div>
103
+ </section>
104
+ <section class="profile-card">
105
+ <h3>Neue Funktionen / Skills</h3>
106
+ <div data-version-functions></div>
107
+ </section>
108
+ <section class="profile-card profile-card-wide">
109
+ <h3>Grenzen & Governance</h3>
110
+ <p data-profile-governance></p>
111
+ </section>
112
+ </div>
113
+ </article>
114
+ </section>
115
+
116
+ <section class="section">
117
+ <div class="dossier-grid">
118
+ <article class="panel">
119
+ <h3>Skillstand</h3>
120
+ <div data-skillstand></div>
121
+ </article>
122
+ <article class="panel">
123
+ <h3>Skill-Pipeline</h3>
124
+ <div class="pipeline" data-skill-chain></div>
125
+ </article>
126
+ </div>
127
+ </section>
128
+
129
+ <section class="section">
130
+ <div class="evidence-grid">
131
+ <article class="patch-cell stand"><h3>Stand</h3><p data-stand></p></article>
132
+ <article class="patch-cell problem"><h3>Problem</h3><p data-problem></p></article>
133
+ <article class="patch-cell proposal"><h3>Verbesserungsvorschlag</h3><p data-proposal></p></article>
134
+ <article class="patch-cell implementation"><h3>Umsetzung</h3><p data-implementation></p></article>
135
+ <article class="patch-cell test"><h3>Test</h3><p data-test></p></article>
136
+ <article class="patch-cell validation"><h3>Validierung</h3><p data-validation-text></p></article>
137
+ <article class="patch-cell method"><h3>Methodischer Fokus</h3><p data-method></p></article>
138
+ </div>
139
+ </section>
140
+
141
+ <section class="section">
142
+ <div class="two-column">
143
+ <article class="mini-card good">
144
+ <h3>Gut</h3>
145
+ <div data-good></div>
146
+ </article>
147
+ <article class="mini-card bad">
148
+ <h3>Schlecht</h3>
149
+ <div data-weak></div>
150
+ </article>
151
+ </div>
152
+ </section>
153
+
154
+ <section class="section">
155
+ <div class="dossier-grid">
156
+ <article class="panel next-jump">
157
+ <h3>Geplanter naechster Sprung</h3>
158
+ <p data-next></p>
159
+ </article>
160
+ <article class="panel">
161
+ <h3>Proof Strip</h3>
162
+ <div class="proof-strip" data-proof></div>
163
+ <div class="source-list" data-sources></div>
164
+ </article>
165
+ </div>
166
+ </section>
167
+ </main>
168
+ <footer class="footer">Lokaler Review-Prototyp. Noch nicht Teil des Produktrepos.</footer>
169
+ <script src="../../assets/app.js"></script>
170
+ </body>
171
+ </html>
versions/v1-3/index.html ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI V1.3</title>
7
+ <link rel="stylesheet" href="../../assets/styles.css">
8
+ </head>
9
+ <body data-version="v1-3">
10
+ <header class="topbar">
11
+ <div class="topbar-inner">
12
+ <a class="brand" href="../../"><span class="brand-mark">HAI</span><span>Version Dossier</span></a>
13
+ <nav class="nav" aria-label="Version Navigation">
14
+ <a href="../../">Index</a>
15
+ <a data-prev href="../v1-2/">Zurueck</a>
16
+ <a data-next-link href="../v1-4/">Weiter</a>
17
+ </nav>
18
+ </div>
19
+ </header>
20
+ <main class="shell version-site">
21
+ <section class="version-hero">
22
+ <div class="hero-grid">
23
+ <div>
24
+ <p class="eyebrow" data-version-number></p>
25
+ <h1 data-version-title></h1>
26
+ <p class="lead" data-version-one-line></p>
27
+ </div>
28
+ <aside class="hero-card">
29
+ <span class="status" data-version-status></span>
30
+ <p data-background></p>
31
+ </aside>
32
+ </div>
33
+ </section>
34
+
35
+ <section class="section ascii-section" aria-labelledby="ascii-title">
36
+ <article class="panel ascii-panel">
37
+ <div class="ascii-head">
38
+ <p class="label">Owner-Loop</p>
39
+ <h2 id="ascii-title">ASCII-Art dieser Version</h2>
40
+ </div>
41
+ <div class="ascii-visual-grid">
42
+ <pre class="ascii-art" data-ascii-art aria-label="HAI Owner-Loop ASCII-Art"></pre>
43
+ <figure class="adapted-key-visual" data-adapted-visual aria-label="Angepasstes Versionsvisual"></figure>
44
+ </div>
45
+ </article>
46
+ </section>
47
+
48
+ <section class="section version-story" aria-labelledby="story-title">
49
+ <article class="panel story-panel">
50
+ <p class="label">Version Story</p>
51
+ <h2 id="story-title" data-story-title></h2>
52
+ <p class="story-lead" data-story-lead></p>
53
+ <div class="story-grid">
54
+ <div>
55
+ <h3>Vorher</h3>
56
+ <p data-story-before></p>
57
+ </div>
58
+ <div>
59
+ <h3>Nachher</h3>
60
+ <p data-story-after></p>
61
+ </div>
62
+ <div>
63
+ <h3>Owner-Frage</h3>
64
+ <p data-owner-question></p>
65
+ </div>
66
+ </div>
67
+ </article>
68
+ </section>
69
+
70
+ <section class="section product-profile" aria-labelledby="profile-title">
71
+ <article class="panel profile-panel">
72
+ <div class="profile-kicker">
73
+ <p class="label">Agenten-Steckbrief</p>
74
+ <span class="profile-badge" data-agent-role></span>
75
+ </div>
76
+ <h2 id="profile-title">Systematik, mentales Modell, Versions-Diff</h2>
77
+ <p class="profile-lead" data-product-positioning></p>
78
+ <div class="profile-grid">
79
+ <section class="profile-card profile-card-wide">
80
+ <h3>Systematik</h3>
81
+ <div class="system-stack">
82
+ <div>
83
+ <h4>Inputs</h4>
84
+ <div data-system-inputs></div>
85
+ </div>
86
+ <div>
87
+ <h4>Prozesslogik</h4>
88
+ <p data-system-process></p>
89
+ </div>
90
+ <div>
91
+ <h4>Outputs</h4>
92
+ <div data-system-outputs></div>
93
+ </div>
94
+ </div>
95
+ </section>
96
+ <section class="profile-card">
97
+ <h3>Mentales Nutzermodell</h3>
98
+ <p data-mental-model></p>
99
+ </section>
100
+ <section class="profile-card">
101
+ <h3>Änderungen</h3>
102
+ <div data-version-changes></div>
103
+ </section>
104
+ <section class="profile-card">
105
+ <h3>Neue Funktionen / Skills</h3>
106
+ <div data-version-functions></div>
107
+ </section>
108
+ <section class="profile-card profile-card-wide">
109
+ <h3>Grenzen & Governance</h3>
110
+ <p data-profile-governance></p>
111
+ </section>
112
+ </div>
113
+ </article>
114
+ </section>
115
+
116
+ <section class="section">
117
+ <div class="dossier-grid">
118
+ <article class="panel">
119
+ <h3>Skillstand</h3>
120
+ <div data-skillstand></div>
121
+ </article>
122
+ <article class="panel">
123
+ <h3>Skill-Pipeline</h3>
124
+ <div class="pipeline" data-skill-chain></div>
125
+ </article>
126
+ </div>
127
+ </section>
128
+
129
+ <section class="section">
130
+ <div class="evidence-grid">
131
+ <article class="patch-cell stand"><h3>Stand</h3><p data-stand></p></article>
132
+ <article class="patch-cell problem"><h3>Problem</h3><p data-problem></p></article>
133
+ <article class="patch-cell proposal"><h3>Verbesserungsvorschlag</h3><p data-proposal></p></article>
134
+ <article class="patch-cell implementation"><h3>Umsetzung</h3><p data-implementation></p></article>
135
+ <article class="patch-cell test"><h3>Test</h3><p data-test></p></article>
136
+ <article class="patch-cell validation"><h3>Validierung</h3><p data-validation-text></p></article>
137
+ <article class="patch-cell method"><h3>Methodischer Fokus</h3><p data-method></p></article>
138
+ </div>
139
+ </section>
140
+
141
+ <section class="section">
142
+ <div class="two-column">
143
+ <article class="mini-card good">
144
+ <h3>Gut</h3>
145
+ <div data-good></div>
146
+ </article>
147
+ <article class="mini-card bad">
148
+ <h3>Schlecht</h3>
149
+ <div data-weak></div>
150
+ </article>
151
+ </div>
152
+ </section>
153
+
154
+ <section class="section">
155
+ <div class="dossier-grid">
156
+ <article class="panel next-jump">
157
+ <h3>Geplanter naechster Sprung</h3>
158
+ <p data-next></p>
159
+ </article>
160
+ <article class="panel">
161
+ <h3>Proof Strip</h3>
162
+ <div class="proof-strip" data-proof></div>
163
+ <div class="source-list" data-sources></div>
164
+ </article>
165
+ </div>
166
+ </section>
167
+ </main>
168
+ <footer class="footer">Lokaler Review-Prototyp. Noch nicht Teil des Produktrepos.</footer>
169
+ <script src="../../assets/app.js"></script>
170
+ </body>
171
+ </html>
versions/v1-4/index.html ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI V1.4</title>
7
+ <link rel="stylesheet" href="../../assets/styles.css">
8
+ </head>
9
+ <body data-version="v1-4">
10
+ <header class="topbar">
11
+ <div class="topbar-inner">
12
+ <a class="brand" href="../../"><span class="brand-mark">HAI</span><span>Version Dossier</span></a>
13
+ <nav class="nav" aria-label="Version Navigation">
14
+ <a href="../../">Index</a>
15
+ <a data-prev href="../v1-3/">Zurueck</a>
16
+ <a data-next-link href="../v1-5/">Weiter</a>
17
+ </nav>
18
+ </div>
19
+ </header>
20
+ <main class="shell version-site">
21
+ <section class="version-hero">
22
+ <div class="hero-grid">
23
+ <div>
24
+ <p class="eyebrow" data-version-number></p>
25
+ <h1 data-version-title></h1>
26
+ <p class="lead" data-version-one-line></p>
27
+ </div>
28
+ <aside class="hero-card">
29
+ <span class="status" data-version-status></span>
30
+ <p data-background></p>
31
+ </aside>
32
+ </div>
33
+ </section>
34
+
35
+ <section class="section ascii-section" aria-labelledby="ascii-title">
36
+ <article class="panel ascii-panel">
37
+ <div class="ascii-head">
38
+ <p class="label">Owner-Loop</p>
39
+ <h2 id="ascii-title">ASCII-Art dieser Version</h2>
40
+ </div>
41
+ <div class="ascii-visual-grid">
42
+ <pre class="ascii-art" data-ascii-art aria-label="HAI Owner-Loop ASCII-Art"></pre>
43
+ <figure class="adapted-key-visual" data-adapted-visual aria-label="Angepasstes Versionsvisual"></figure>
44
+ </div>
45
+ </article>
46
+ </section>
47
+
48
+ <section class="section version-story" aria-labelledby="story-title">
49
+ <article class="panel story-panel">
50
+ <p class="label">Version Story</p>
51
+ <h2 id="story-title" data-story-title></h2>
52
+ <p class="story-lead" data-story-lead></p>
53
+ <div class="story-grid">
54
+ <div>
55
+ <h3>Vorher</h3>
56
+ <p data-story-before></p>
57
+ </div>
58
+ <div>
59
+ <h3>Nachher</h3>
60
+ <p data-story-after></p>
61
+ </div>
62
+ <div>
63
+ <h3>Owner-Frage</h3>
64
+ <p data-owner-question></p>
65
+ </div>
66
+ </div>
67
+ </article>
68
+ </section>
69
+
70
+ <section class="section product-profile" aria-labelledby="profile-title">
71
+ <article class="panel profile-panel">
72
+ <div class="profile-kicker">
73
+ <p class="label">Agenten-Steckbrief</p>
74
+ <span class="profile-badge" data-agent-role></span>
75
+ </div>
76
+ <h2 id="profile-title">Systematik, mentales Modell, Versions-Diff</h2>
77
+ <p class="profile-lead" data-product-positioning></p>
78
+ <div class="profile-grid">
79
+ <section class="profile-card profile-card-wide">
80
+ <h3>Systematik</h3>
81
+ <div class="system-stack">
82
+ <div>
83
+ <h4>Inputs</h4>
84
+ <div data-system-inputs></div>
85
+ </div>
86
+ <div>
87
+ <h4>Prozesslogik</h4>
88
+ <p data-system-process></p>
89
+ </div>
90
+ <div>
91
+ <h4>Outputs</h4>
92
+ <div data-system-outputs></div>
93
+ </div>
94
+ </div>
95
+ </section>
96
+ <section class="profile-card">
97
+ <h3>Mentales Nutzermodell</h3>
98
+ <p data-mental-model></p>
99
+ </section>
100
+ <section class="profile-card">
101
+ <h3>Änderungen</h3>
102
+ <div data-version-changes></div>
103
+ </section>
104
+ <section class="profile-card">
105
+ <h3>Neue Funktionen / Skills</h3>
106
+ <div data-version-functions></div>
107
+ </section>
108
+ <section class="profile-card profile-card-wide">
109
+ <h3>Grenzen & Governance</h3>
110
+ <p data-profile-governance></p>
111
+ </section>
112
+ </div>
113
+ </article>
114
+ </section>
115
+
116
+ <section class="section">
117
+ <div class="dossier-grid">
118
+ <article class="panel">
119
+ <h3>Skillstand</h3>
120
+ <div data-skillstand></div>
121
+ </article>
122
+ <article class="panel">
123
+ <h3>Skill-Pipeline</h3>
124
+ <div class="pipeline" data-skill-chain></div>
125
+ </article>
126
+ </div>
127
+ </section>
128
+
129
+ <section class="section">
130
+ <div class="evidence-grid">
131
+ <article class="patch-cell stand"><h3>Stand</h3><p data-stand></p></article>
132
+ <article class="patch-cell problem"><h3>Problem</h3><p data-problem></p></article>
133
+ <article class="patch-cell proposal"><h3>Verbesserungsvorschlag</h3><p data-proposal></p></article>
134
+ <article class="patch-cell implementation"><h3>Umsetzung</h3><p data-implementation></p></article>
135
+ <article class="patch-cell test"><h3>Test</h3><p data-test></p></article>
136
+ <article class="patch-cell validation"><h3>Validierung</h3><p data-validation-text></p></article>
137
+ <article class="patch-cell method"><h3>Methodischer Fokus</h3><p data-method></p></article>
138
+ </div>
139
+ </section>
140
+
141
+ <section class="section">
142
+ <div class="two-column">
143
+ <article class="mini-card good">
144
+ <h3>Gut</h3>
145
+ <div data-good></div>
146
+ </article>
147
+ <article class="mini-card bad">
148
+ <h3>Schlecht</h3>
149
+ <div data-weak></div>
150
+ </article>
151
+ </div>
152
+ </section>
153
+
154
+ <section class="section">
155
+ <div class="dossier-grid">
156
+ <article class="panel next-jump">
157
+ <h3>Geplanter naechster Sprung</h3>
158
+ <p data-next></p>
159
+ </article>
160
+ <article class="panel">
161
+ <h3>Proof Strip</h3>
162
+ <div class="proof-strip" data-proof></div>
163
+ <div class="source-list" data-sources></div>
164
+ </article>
165
+ </div>
166
+ </section>
167
+ </main>
168
+ <footer class="footer">Lokaler Review-Prototyp. Noch nicht Teil des Produktrepos.</footer>
169
+ <script src="../../assets/app.js"></script>
170
+ </body>
171
+ </html>
versions/v1-5/index.html ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI V1.5</title>
7
+ <link rel="stylesheet" href="../../assets/styles.css">
8
+ </head>
9
+ <body data-version="v1-5">
10
+ <header class="topbar">
11
+ <div class="topbar-inner">
12
+ <a class="brand" href="../../"><span class="brand-mark">HAI</span><span>Version Dossier</span></a>
13
+ <nav class="nav" aria-label="Version Navigation">
14
+ <a href="../../">Index</a>
15
+ <a data-prev href="../v1-4/">Zurueck</a>
16
+ <a data-next-link href="../../">Weiter</a>
17
+ </nav>
18
+ </div>
19
+ </header>
20
+ <main class="shell version-site">
21
+ <section class="version-hero">
22
+ <div class="hero-grid">
23
+ <div>
24
+ <p class="eyebrow" data-version-number></p>
25
+ <h1 data-version-title></h1>
26
+ <p class="lead" data-version-one-line></p>
27
+ </div>
28
+ <aside class="hero-card">
29
+ <span class="status" data-version-status></span>
30
+ <p data-background></p>
31
+ </aside>
32
+ </div>
33
+ </section>
34
+
35
+ <section class="section ascii-section" aria-labelledby="ascii-title">
36
+ <article class="panel ascii-panel">
37
+ <div class="ascii-head">
38
+ <p class="label">Owner-Loop</p>
39
+ <h2 id="ascii-title">ASCII-Art dieser Version</h2>
40
+ </div>
41
+ <div class="ascii-visual-grid">
42
+ <pre class="ascii-art" data-ascii-art aria-label="HAI Owner-Loop ASCII-Art"></pre>
43
+ <figure class="adapted-key-visual" data-adapted-visual aria-label="Angepasstes Versionsvisual"></figure>
44
+ </div>
45
+ </article>
46
+ </section>
47
+
48
+ <section class="section version-story" aria-labelledby="story-title">
49
+ <article class="panel story-panel">
50
+ <p class="label">Version Story</p>
51
+ <h2 id="story-title" data-story-title></h2>
52
+ <p class="story-lead" data-story-lead></p>
53
+ <div class="story-grid">
54
+ <div>
55
+ <h3>Vorher</h3>
56
+ <p data-story-before></p>
57
+ </div>
58
+ <div>
59
+ <h3>Nachher</h3>
60
+ <p data-story-after></p>
61
+ </div>
62
+ <div>
63
+ <h3>Owner-Frage</h3>
64
+ <p data-owner-question></p>
65
+ </div>
66
+ </div>
67
+ </article>
68
+ </section>
69
+
70
+ <section class="section product-profile" aria-labelledby="profile-title">
71
+ <article class="panel profile-panel">
72
+ <div class="profile-kicker">
73
+ <p class="label">Agenten-Steckbrief</p>
74
+ <span class="profile-badge" data-agent-role></span>
75
+ </div>
76
+ <h2 id="profile-title">Systematik, mentales Modell, Versions-Diff</h2>
77
+ <p class="profile-lead" data-product-positioning></p>
78
+ <div class="profile-grid">
79
+ <section class="profile-card profile-card-wide">
80
+ <h3>Systematik</h3>
81
+ <div class="system-stack">
82
+ <div>
83
+ <h4>Inputs</h4>
84
+ <div data-system-inputs></div>
85
+ </div>
86
+ <div>
87
+ <h4>Prozesslogik</h4>
88
+ <p data-system-process></p>
89
+ </div>
90
+ <div>
91
+ <h4>Outputs</h4>
92
+ <div data-system-outputs></div>
93
+ </div>
94
+ </div>
95
+ </section>
96
+ <section class="profile-card">
97
+ <h3>Mentales Nutzermodell</h3>
98
+ <p data-mental-model></p>
99
+ </section>
100
+ <section class="profile-card">
101
+ <h3>Änderungen</h3>
102
+ <div data-version-changes></div>
103
+ </section>
104
+ <section class="profile-card">
105
+ <h3>Neue Funktionen / Skills</h3>
106
+ <div data-version-functions></div>
107
+ </section>
108
+ <section class="profile-card profile-card-wide">
109
+ <h3>Grenzen & Governance</h3>
110
+ <p data-profile-governance></p>
111
+ </section>
112
+ </div>
113
+ </article>
114
+ </section>
115
+
116
+ <section class="section">
117
+ <div class="dossier-grid">
118
+ <article class="panel">
119
+ <h3>Skillstand</h3>
120
+ <div data-skillstand></div>
121
+ </article>
122
+ <article class="panel">
123
+ <h3>Skill-Pipeline</h3>
124
+ <div class="pipeline" data-skill-chain></div>
125
+ </article>
126
+ </div>
127
+ </section>
128
+
129
+ <section class="section">
130
+ <div class="evidence-grid">
131
+ <article class="patch-cell stand"><h3>Stand</h3><p data-stand></p></article>
132
+ <article class="patch-cell problem"><h3>Problem</h3><p data-problem></p></article>
133
+ <article class="patch-cell proposal"><h3>Verbesserungsvorschlag</h3><p data-proposal></p></article>
134
+ <article class="patch-cell implementation"><h3>Umsetzung</h3><p data-implementation></p></article>
135
+ <article class="patch-cell test"><h3>Test</h3><p data-test></p></article>
136
+ <article class="patch-cell validation"><h3>Validierung</h3><p data-validation-text></p></article>
137
+ <article class="patch-cell method"><h3>Methodischer Fokus</h3><p data-method></p></article>
138
+ </div>
139
+ </section>
140
+
141
+ <section class="section">
142
+ <div class="two-column">
143
+ <article class="mini-card good">
144
+ <h3>Gut</h3>
145
+ <div data-good></div>
146
+ </article>
147
+ <article class="mini-card bad">
148
+ <h3>Schlecht</h3>
149
+ <div data-weak></div>
150
+ </article>
151
+ </div>
152
+ </section>
153
+
154
+ <section class="section">
155
+ <div class="dossier-grid">
156
+ <article class="panel next-jump">
157
+ <h3>Geplanter naechster Sprung</h3>
158
+ <p data-next></p>
159
+ </article>
160
+ <article class="panel">
161
+ <h3>Proof Strip</h3>
162
+ <div class="proof-strip" data-proof></div>
163
+ <div class="source-list" data-sources></div>
164
+ </article>
165
+ </div>
166
+ </section>
167
+ </main>
168
+ <footer class="footer">Lokaler Review-Prototyp. Noch nicht Teil des Produktrepos.</footer>
169
+ <script src="../../assets/app.js"></script>
170
+ </body>
171
+ </html>
versions/v1-6/index.html ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!doctype html>
2
+ <html lang="de">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>HAI V1.6</title>
7
+ <link rel="stylesheet" href="../../assets/styles.css">
8
+ </head>
9
+ <body data-version="v1-6">
10
+ <header class="topbar">
11
+ <div class="topbar-inner">
12
+ <a class="brand" href="../../"><span class="brand-mark">HAI</span><span>Version Dossier</span></a>
13
+ <nav class="nav" aria-label="Version Navigation">
14
+ <a href="../../">Index</a>
15
+ <a data-prev href="../v1-5/">Zurueck</a>
16
+ <a data-next-link href="../../">Weiter</a>
17
+ </nav>
18
+ </div>
19
+ </header>
20
+ <main class="shell version-site">
21
+ <section class="version-hero">
22
+ <div class="hero-grid">
23
+ <div>
24
+ <p class="eyebrow" data-version-number></p>
25
+ <h1 data-version-title></h1>
26
+ <p class="lead" data-version-one-line></p>
27
+ </div>
28
+ <aside class="hero-card">
29
+ <span class="status" data-version-status></span>
30
+ <p data-background></p>
31
+ </aside>
32
+ </div>
33
+ </section>
34
+
35
+ <section class="section ascii-section" aria-labelledby="ascii-title">
36
+ <article class="panel ascii-panel">
37
+ <div class="ascii-head">
38
+ <p class="label">Owner-Loop</p>
39
+ <h2 id="ascii-title">ASCII-Art dieser Version</h2>
40
+ </div>
41
+ <div class="ascii-visual-grid">
42
+ <pre class="ascii-art" data-ascii-art aria-label="HAI Owner-Loop ASCII-Art"></pre>
43
+ <figure class="adapted-key-visual" data-adapted-visual aria-label="Angepasstes Versionsvisual"></figure>
44
+ </div>
45
+ </article>
46
+ </section>
47
+
48
+ <section class="section version-story" aria-labelledby="story-title">
49
+ <article class="panel story-panel">
50
+ <p class="label">Version Story</p>
51
+ <h2 id="story-title" data-story-title></h2>
52
+ <p class="story-lead" data-story-lead></p>
53
+ <div class="story-grid">
54
+ <div>
55
+ <h3>Vorher</h3>
56
+ <p data-story-before></p>
57
+ </div>
58
+ <div>
59
+ <h3>Nachher</h3>
60
+ <p data-story-after></p>
61
+ </div>
62
+ <div>
63
+ <h3>Owner-Frage</h3>
64
+ <p data-owner-question></p>
65
+ </div>
66
+ </div>
67
+ </article>
68
+ </section>
69
+
70
+ <section class="section product-profile" aria-labelledby="profile-title">
71
+ <article class="panel profile-panel">
72
+ <div class="profile-kicker">
73
+ <p class="label">Agenten-Steckbrief</p>
74
+ <span class="profile-badge" data-agent-role></span>
75
+ </div>
76
+ <h2 id="profile-title">Systematik, mentales Modell, Versions-Diff</h2>
77
+ <p class="profile-lead" data-product-positioning></p>
78
+ <div class="profile-grid">
79
+ <section class="profile-card profile-card-wide">
80
+ <h3>Systematik</h3>
81
+ <div class="system-stack">
82
+ <div>
83
+ <h4>Inputs</h4>
84
+ <div data-system-inputs></div>
85
+ </div>
86
+ <div>
87
+ <h4>Prozesslogik</h4>
88
+ <p data-system-process></p>
89
+ </div>
90
+ <div>
91
+ <h4>Outputs</h4>
92
+ <div data-system-outputs></div>
93
+ </div>
94
+ </div>
95
+ </section>
96
+ <section class="profile-card">
97
+ <h3>Mentales Nutzermodell</h3>
98
+ <p data-mental-model></p>
99
+ </section>
100
+ <section class="profile-card">
101
+ <h3>Änderungen</h3>
102
+ <div data-version-changes></div>
103
+ </section>
104
+ <section class="profile-card">
105
+ <h3>Neue Funktionen / Skills</h3>
106
+ <div data-version-functions></div>
107
+ </section>
108
+ <section class="profile-card profile-card-wide">
109
+ <h3>Grenzen & Governance</h3>
110
+ <p data-profile-governance></p>
111
+ </section>
112
+ </div>
113
+ </article>
114
+ </section>
115
+
116
+ <section class="section">
117
+ <div class="dossier-grid">
118
+ <article class="panel">
119
+ <h3>Skillstand</h3>
120
+ <div data-skillstand></div>
121
+ </article>
122
+ <article class="panel">
123
+ <h3>Skill-Pipeline</h3>
124
+ <div class="pipeline" data-skill-chain></div>
125
+ </article>
126
+ </div>
127
+ </section>
128
+
129
+ <section class="section">
130
+ <div class="evidence-grid">
131
+ <article class="patch-cell stand"><h3>Stand</h3><p data-stand></p></article>
132
+ <article class="patch-cell problem"><h3>Problem</h3><p data-problem></p></article>
133
+ <article class="patch-cell proposal"><h3>Verbesserungsvorschlag</h3><p data-proposal></p></article>
134
+ <article class="patch-cell implementation"><h3>Umsetzung</h3><p data-implementation></p></article>
135
+ <article class="patch-cell test"><h3>Test</h3><p data-test></p></article>
136
+ <article class="patch-cell validation"><h3>Validierung</h3><p data-validation-text></p></article>
137
+ <article class="patch-cell method"><h3>Methodischer Fokus</h3><p data-method></p></article>
138
+ </div>
139
+ </section>
140
+
141
+ <section class="section">
142
+ <div class="two-column">
143
+ <article class="mini-card good">
144
+ <h3>Gut</h3>
145
+ <div data-good></div>
146
+ </article>
147
+ <article class="mini-card bad">
148
+ <h3>Schlecht</h3>
149
+ <div data-weak></div>
150
+ </article>
151
+ </div>
152
+ </section>
153
+
154
+ <section class="section">
155
+ <div class="dossier-grid">
156
+ <article class="panel next-jump">
157
+ <h3>Geplanter naechster Sprung</h3>
158
+ <p data-next></p>
159
+ </article>
160
+ <article class="panel">
161
+ <h3>Proof Strip</h3>
162
+ <div class="proof-strip" data-proof></div>
163
+ <div class="source-list" data-sources></div>
164
+ </article>
165
+ </div>
166
+ </section>
167
+ </main>
168
+ <footer class="footer">Lokaler Review-Prototyp. Noch nicht Teil des Produktrepos.</footer>
169
+ <script src="../../assets/app.js"></script>
170
+ </body>
171
+ </html>