Initial public upload from Projekte/hai-version-explainer
Browse files- .codex/config.toml +31 -0
- .gitattributes +2 -0
- assets/app.js +782 -0
- assets/reference/hai-intake-cockpit-dark.png +3 -0
- assets/reference/hai-intake-cockpit-light.png +3 -0
- assets/styles.css +1262 -0
- index.html +80 -0
- tests/smoke-ascii.mjs +75 -0
- versions/v1-0/index.html +171 -0
- versions/v1-1/index.html +171 -0
- versions/v1-2/index.html +171 -0
- versions/v1-3/index.html +171 -0
- versions/v1-4/index.html +171 -0
- versions/v1-5/index.html +171 -0
- versions/v1-6/index.html +171 -0
.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 |
+
"&": "&",
|
| 623 |
+
"<": "<",
|
| 624 |
+
">": ">",
|
| 625 |
+
'"': """,
|
| 626 |
+
"'": "'"
|
| 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
|
assets/reference/hai-intake-cockpit-light.png
ADDED
|
Git LFS Details
|
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>
|