smlflg commited on
Commit
3bc7cb3
·
verified ·
1 Parent(s): cc56c98

Initial public upload from Projekte/MetaMetaMeta

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .codex/config.toml +31 -0
  2. .gitattributes +1 -0
  3. .gitignore +5 -0
  4. .hermes/plans/2026-03-25_134859-konkrete-vorschl-ge-f-r-index-html.md +238 -0
  5. .serena/.gitignore +2 -0
  6. .serena/project.local.yml +5 -0
  7. .serena/project.yml +169 -0
  8. 2026-09-09_FREMDBEFUND_ausstieg-aus-dem-meta-loop.md +212 -0
  9. AGENT_CONTROL_TOWER_PROJECT_AUDIT.md +843 -0
  10. Analyse-July/00-SUMMARY.md +98 -0
  11. Analyse-July/01-hermes-core-structure.md +88 -0
  12. Analyse-July/02-agent-profiles-soul.md +84 -0
  13. Analyse-July/03-skills-orchestration.md +87 -0
  14. Analyse-July/04-mcp-integrations.md +278 -0
  15. Analyse-July/05-memory-knowledge.md +77 -0
  16. Analyse-July/06-compare-frameworks.md +26 -0
  17. Analyse-July/07-compare-indie-setups.md +195 -0
  18. Analyse-July/08-strengths.md +45 -0
  19. Analyse-July/09-weaknesses.md +56 -0
  20. Analyse-July/10-cursor-codex-hermes-bridge.md +247 -0
  21. Analyse-July/HERMES_UPGRADE_APPROVAL.md +111 -0
  22. Analyse-July/README.md +29 -0
  23. BACKLOG_EVAL.md +181 -0
  24. BODEN_KETTE.md +110 -0
  25. CAREER_DECISION_30_TAGE.md +51 -0
  26. DAILY_LOG_7_TAGE.md +97 -0
  27. DIAGNOSE.md +156 -0
  28. EMPFEHLUNGEN.md +142 -0
  29. ERGEBNISSE_E2.md +151 -0
  30. ERKENNTNISARBEIT_METHODIK.md +435 -0
  31. EVAL_PROMPT_EXAMPLES.md +71 -0
  32. EVIDENCE_CONTRACT.md +257 -0
  33. MAP.md +361 -0
  34. NOT_THIS_WEEK.md +26 -0
  35. PATTERNS.md +152 -0
  36. PROJECT_CHAIN.md +134 -0
  37. QUELLEN.md +143 -0
  38. RESET_7_TAGE.md +90 -0
  39. SETUP.md +211 -0
  40. TIMELINE_DATA.md +209 -0
  41. TODO_B2B_PRODUCT.md +224 -0
  42. TODO_COMMIT.md +149 -0
  43. TODO_DASHBOARD_E8.md +216 -0
  44. TODO_E8_REDESIGN.md +357 -0
  45. TODO_PROMPTGARAGE_EVALS.md +337 -0
  46. TODO_SPRT_EVALUATION.md +314 -0
  47. Uebergabe/.gitignore +5 -0
  48. Uebergabe/AGENTEN_ZEILE.md +51 -0
  49. Uebergabe/IMPLEMENTATION_REPORT.md +77 -0
  50. Uebergabe/KANBAN_SMOKE.json +26 -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/MetaMetaMeta", "--enable-web-dashboard", "false", "--open-web-dashboard", "false", "--enable-gui-log-window", "false"]
6
+ cwd = "/home/smlflg/Projekte/MetaMetaMeta"
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/MetaMetaMeta"
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/MetaMetaMeta"
29
+ enabled = true
30
+ startup_timeout_sec = 120
31
+ tool_timeout_sec = 180
.gitattributes CHANGED
@@ -33,3 +33,4 @@ 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
+ call_memo.aac filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ .DS_Store
2
+ __pycache__/
3
+ *.pyc
4
+ .venv/
5
+ *.db
.hermes/plans/2026-03-25_134859-konkrete-vorschl-ge-f-r-index-html.md ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Plan: Verbesserungen für index.html Dashboard
2
+
3
+ ## Ziel
4
+ Das Dashboard für ADHS-optimiertes Daily Management benutzerfreundlicher und konsistenter machen — speziell für sofortige Tagesorientierung.
5
+
6
+ ---
7
+
8
+ ## 1. Typo-Fix "Wissenschaos"
9
+ **Datei:** `tutorials/index.html:83`
10
+
11
+ - [ ] Suchen nach "Wissenschaos" → "Wissens-Chaos" korrigieren
12
+
13
+ ---
14
+
15
+ ## 2. "Heute"-Block hinzufügen
16
+ **Datei:** `index.html`
17
+
18
+ Neuer Block im Schnellzugriff-Bereich, direkt nach/integriert mit dem Tagesfokus:
19
+
20
+ ```
21
+ ┌─────────────────────────────────────┐
22
+ │ 🔥 HEUTE │
23
+ ├─────────────────────────────────────┤
24
+ │ [ACTIVES.md Inhalt als Markdown] │
25
+ │ │
26
+ │ Zwei Modi: │
27
+ │ • Keine Einträge → "Kein Fokus" │
28
+ │ • Einträge vorhanden → Anzeigen │
29
+ └─────────────────────────────────────┘
30
+ ```
31
+
32
+ **Umsetzung:**
33
+ - JavaScript-Funktion `loadTodayFocus()` erstellen
34
+ - Liest ACTIVE.md, parsed Frontmatter (tags, priority), zeigt Inhalt
35
+ - Minimal styling — keine Ablenkung
36
+ - Tageszeit-basiert: "Morgen/Na/m Abend" Badge optional
37
+
38
+ ---
39
+
40
+ ## 3. "Nächste Termine"-Block
41
+ **Datei:** `index.html`
42
+
43
+ Neuer Block für externe Commitments:
44
+
45
+ ```
46
+ ┌─────────────────────────────────────┐
47
+ │ 📅 TERMINE │
48
+ ├─────────────────────────────────────┤
49
+ │ [morgen] 11:00 — Startup-Call │
50
+ │ [übermorgen] 14:00 — Mentor-Meeting │
51
+ └─────────────────────────────────────┘
52
+ ```
53
+
54
+ **Umsetzung:**
55
+ - Neue Datei `CALENDAR.md` mit strukturierten Terminen:
56
+ ```markdown
57
+ ---
58
+ format: compact
59
+ ---
60
+ 2026-03-26 11:00 Startup-Call
61
+ 2026-03-27 14:00 Mentor-Meeting
62
+ ```
63
+ - JS liest CALENDAR.md, filtert auf nächste 7 Tage
64
+ - Relative Zeitangaben ("morgen", "übermorgen", "Montag")
65
+ - Leer wenn keine Termine
66
+
67
+ ---
68
+
69
+ ## 4. Schnellzugriff erweitern
70
+ **Datei:** `index.html`
71
+
72
+ Aktuelle Links prüfen → folgende müssen hinzugefügt werden:
73
+ - [ ] `INBOX.md` — VOR anderen Links platzieren (Priorität!)
74
+ - [ ] `DECISIONS.md`
75
+
76
+ **Neue Reihenfolge Schnellzugriff:**
77
+ 1. INBOX.md (Hauptwerkzeug gegen Scope-Flucht)
78
+ 2. ACTIVE.md
79
+ 3. DECISIONS.md
80
+ 4. WEEKLY.md
81
+ 5. tutorials/index.html
82
+
83
+ ---
84
+
85
+ ## 5. Log Runner Zahlen korrigieren
86
+ **Datei:** `index.html` (JS Logik) + `LOGS/` Ordner
87
+
88
+ **Problem:** Text sagt "5 von 7 Tageslogs" aber Bar zeigt 20% → Inkonsistenz
89
+
90
+ **Lösung Option A — Text fixen:**
91
+ ```
92
+ 5 von 7 Tageslogs → "2 von 7 verbleibend"
93
+ Progress: 5/7 × 100 = ~71%
94
+ ```
95
+
96
+ **Lösung Option B — Logik fixen:**
97
+ ```javascript
98
+ const totalLogs = 7;
99
+ const completedLogs = getCompletedLogs(); // Zähle LOGS/*.md mit timestamp
100
+ const remaining = totalLogs - completedLogs;
101
+
102
+ // Text
103
+ "X von 7 verbleibend"
104
+
105
+ // Progress Bar
106
+ ${(completedLogs / totalLogs * 100).toFixed(0)}%
107
+ ```
108
+
109
+ **Empfehlung:** Option B — Logik dynamisch machen.
110
+
111
+ ---
112
+
113
+ ## 6. "Letztes Daily" dynamisch
114
+ **Datei:** `index.html`
115
+
116
+ **Aktuell:** Hardcoded "2026-03-24"
117
+
118
+ **Lösung:**
119
+ ```javascript
120
+ // Finde neueste LOGS/*.md Datei
121
+ const latestLog = findLatestLog(); // z.B. "2026-03-24"
122
+ document.getElementById('last-daily').textContent = latestLog;
123
+ ```
124
+
125
+ - [ ] Statische Zeile entfernen
126
+ - [ ] JS-Funktion `getLastDaily()` implementieren
127
+ - [ ] Fallback: "Keine Logs vorhanden"
128
+
129
+ ---
130
+
131
+ ## 7. ADHS-Arbeitsstrategie Guideline erstellen
132
+ **Datei:** `guidelines/adhs-strategie.md` (neu)
133
+
134
+ **Inhalt-Struktur:**
135
+ ```markdown
136
+ ---
137
+ title: ADHS-Arbeitsstrategie
138
+ priority: 1
139
+ ---
140
+
141
+ # ADHS-Arbeitsstrategie
142
+
143
+ ## Impulskontrolle
144
+ - Regeln für Projekt-Hopping
145
+ - Cooldown-Phasen zwischen Tasks
146
+ - "Morgenregel" (bis 10 Uhr keine neuen Projekte)
147
+
148
+ ## Hyperfokus-Management
149
+ - Zeittimer für Fokus-Sessions (25min Pomodoro)
150
+ - Exit-Strategie wenn Hyperfokus endet
151
+ - Energie-Level Tracking
152
+
153
+ ## Dopamin-Budget
154
+ - Social Media Limiter
155
+ - Ersetzungsstrategien für Substanzdruck
156
+ - Belohnungssystem für abgeschlossene Tasks
157
+
158
+ ## Störfaktor-Check
159
+ - [ ] Vor jedem Task: "Bin ich am richtigen Ziel?"
160
+ - [ ] Social Media App-Blocker aktiviert?
161
+ - [ ] Handy away?
162
+ ```
163
+
164
+ **Integration:**
165
+ - [ ] Link im Dashboard hinzufügen
166
+ - [ ] In Guideline-Liste einsortieren
167
+
168
+ ---
169
+
170
+ ## 8. Störfaktoren-Block
171
+ **Datei:** `index.html`
172
+
173
+ **Lesen von:** `WEEKLY.md` → extrahiere `disruptors:` oder `störfaktoren:`
174
+
175
+ ```
176
+ ┌─────────────────────────────────────┐
177
+ │ ⚠️ STÖRFAKTOREN │
178
+ ├───────────────────────────��─────────┤
179
+ │ 🔴 Social Media — aktiv │
180
+ │ 🟡 Scope-Flucht — Monitoring │
181
+ │ ⚪ Vergleiche — OK │
182
+ └─────────────────────────────────────┘
183
+ ```
184
+
185
+ **Umsetzung:**
186
+ - WEEKLY.md sollte `disruptors:` Section haben:
187
+ ```markdown
188
+ ## Disruptoren
189
+ - [x] Social Media (heute: 3x)
190
+ - [~] Scope-Flucht (2x gesnifft)
191
+ - [ ] Vergleiche (okay)
192
+ ```
193
+ - JS parsed Section, zeigt aktuellen Status
194
+ - Kompakter als WEEKLY.md öffnen
195
+
196
+ ---
197
+
198
+ ## Dateien die ändern
199
+
200
+ | Datei | Änderung |
201
+ |-------|----------|
202
+ | `index.html` | Alle UI-Änderungen (Punkte 2,3,4,5,6,8) |
203
+ | `tutorials/index.html` | Typo-Fix (Punkt 1) |
204
+ | `guidelines/adhs-strategie.md` | NEU (Punkt 7) |
205
+ | `LOGS/` | JS muss dynamisch lesen (Punkt 5,6) |
206
+ | `WEEKLY.md` | Disruptoren-Section (Punkt 8) |
207
+ | `CALENDAR.md` | NEU (Punkt 3) |
208
+
209
+ ---
210
+
211
+ ## Test- / Validierungsschritte
212
+
213
+ 1. [ ] `index.html` öffnen → "Heute"-Block zeigt aktuellen Fokus
214
+ 2. [ ] `index.html` öffnen → Termine werden angezeigt (oder "Keine Termine")
215
+ 3. [ ] `index.html` öffnen → INBOX.md Link sichtbar
216
+ 4. [ ] Log Runner: Bar und Text stimmen überein
217
+ 5. [ ] "Letztes Daily" zeigt dynamisch neuesten Log
218
+ 6. [ ] tutorials/index.html → kein "Wissenschaos" mehr
219
+ 7. [ ] ADHS-Guideline verlinkt und lesbar
220
+ 8. [ ] Störfaktoren sichtbar ohne WEEKLY.md zu öffnen
221
+
222
+ ---
223
+
224
+ ## Risiken & Tradeoffs
225
+
226
+ | Risiko | Mitigation |
227
+ |--------|------------|
228
+ | Zu viele Blöcke = Overload | Priorisieren: INBOX + HEUTE zuerst |
229
+ | CALENDAR.md Maintenance vergessen | Automatisches Erinnern im Weekly Review |
230
+ | JS wird zu komplex | Separation of concerns: eine Funktion pro Feature |
231
+
232
+ ---
233
+
234
+ ## Open Questions
235
+
236
+ 1. **CALENDAR.md Format:** Markdown-Liste oder YAML-Frontmatter?
237
+ 2. **Störfaktoren-Status:** Wer setzt den Status? Manuell oder automatisch?
238
+ 3. **ADHS-Guideline:** Soll sie auf anderen Guidelines aufbauen oder standalone sein?
.serena/.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ /cache
2
+ /project.local.yml
.serena/project.local.yml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # This file allows you to locally override settings in project.yml for development purposes.
2
+ #
3
+ # Use the same keys as in project.yml here. Any setting you specify will override the corresponding
4
+ # setting in project.yml, allowing you to customise the configuration for your local development environment
5
+ # without affecting the project configuration in project.yml (which is intended to be versioned).
.serena/project.yml ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # the name by which the project can be referenced within Serena/when chatting with the LLM.
2
+ project_name: "MetaMetaMeta"
3
+
4
+ # list of language servers to start when using the LSP backend; choose from:
5
+ # ada al angular ansible bash
6
+ # bsl clojure cpp cpp_ccls crystal
7
+ # csharp csharp_omnisharp cue dart deno
8
+ # elixir elm erlang fortran fsharp
9
+ # gdscript gleam go groovy haskell
10
+ # haxe hlsl html java json
11
+ # julia kotlin latex lean4 lua
12
+ # luau markdown matlab msl nextflow
13
+ # nix ocaml pascal perl php
14
+ # php_phpactor php_phpantom powershell python python_basedpyright
15
+ # python_jedi python_pyrefly python_ty qml r
16
+ # rego ruby ruby_solargraph rust scala
17
+ # scss solidity svelte swift systemverilog
18
+ # terraform toml typescript typescript_vts vue
19
+ # wolfram yaml zig
20
+ # (This list may be outdated; generated with scripts/print_language_list.py;
21
+ # For the current list, see values of the LanguageServerId enum here:
22
+ # https://github.com/oraios/serena/blob/main/src/solidlsp/ls_config.py)
23
+ # For some languages, there are several alternative language servers, e.g. csharp_omnisharp, ruby_solargraph.)
24
+ # Note:
25
+ # - For C, use cpp
26
+ # - For JavaScript, use typescript
27
+ # - For Angular projects, use angular (subsumes typescript+html; requires `npm install` in the project root)
28
+ # - For Svelte projects, use svelte (subsumes typescript/javascript for .svelte projects; requires npm)
29
+ # - For Deno projects, use deno (serves the same .ts/.js files as typescript; requires the deno CLI on PATH)
30
+ # - For SCSS / Sass / plain CSS, use scss (some-sass-language-server handles all three)
31
+ # - For Free Pascal/Lazarus, use pascal
32
+ # Special requirements:
33
+ # Some language servers require additional setup/installations.
34
+ # See here for details: https://oraios.github.io/serena/01-about/020_programming-languages.html#language-servers
35
+ # When using multiple language servers, the first language server that supports a given file will be used for that file.
36
+ # The first language server is the default language and the respective language server will be used as a fallback.
37
+ # Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored.
38
+ language_servers:
39
+ - python
40
+
41
+ # the encoding used by text files in the project
42
+ # For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings
43
+ encoding: "utf-8"
44
+
45
+ # optional shell command to run before the language backend (LSP or JetBrains) is initialised.
46
+ # the command runs in the project root directory and is only executed if the project is trusted
47
+ # (see trusted_project_path_patterns in the global configuration).
48
+ # serena waits for the command to exit: a non-zero exit code is logged as an error but does not
49
+ # abort activation. a per-project timeout (activation_command_timeout, default 180s) is the safety
50
+ # backstop for non-terminating commands; on expiry the process is killed and activation continues.
51
+ # example: activation_command: "npx nx run-many -t build"
52
+ activation_command:
53
+
54
+ # maximum time in seconds to wait for activation_command to complete before killing it (default 180s).
55
+ # must be a positive number.
56
+ activation_command_timeout: 180.0
57
+
58
+ # line ending convention to use when writing source files.
59
+ # Possible values: unset (use global setting), "lf", "crlf", or "native" (platform default)
60
+ # This does not affect Serena's own files (e.g. memories and configuration files), which always use native line endings.
61
+ line_ending:
62
+
63
+ # The language backend to use for this project.
64
+ # If not set, the global setting from serena_config.yml is used.
65
+ # Valid values: LSP, JetBrains
66
+ # Note: the backend is fixed at startup. If a project with a different backend
67
+ # is activated post-init, an error will be returned.
68
+ language_backend:
69
+
70
+ # whether to use project's .gitignore files to ignore files
71
+ ignore_all_files_in_gitignore: true
72
+
73
+ # advanced configuration option allowing to configure language server-specific options.
74
+ # Maps the language key to the options.
75
+ # The settings are considered only if the project is trusted (see global configuration to define trusted projects).
76
+ # See https://oraios.github.io/serena/02-usage/050_configuration.html#language-server-specific-settings
77
+ ls_specific_settings: {}
78
+
79
+ # list of workspace folder paths (LSP backend only).
80
+ # These folders will be used to build up Serena's symbol index.
81
+ # Paths must be within the project root and should thus be relative to the project root.
82
+ # Furthermore, the paths should not be filtered by ignore settings.
83
+ # Default setting: The entire project root folder (".") is considered.
84
+ # In (large) monorepos, this can be used to index only subfolders of the project root, e.g.
85
+ # ls_workspace_folders:
86
+ # - "./subproject1"
87
+ # - "./subproject2"
88
+ ls_workspace_folders:
89
+ - "."
90
+
91
+ # list of additional workspace folder paths for cross-package reference support.
92
+ # Paths can be absolute or relative to the project root.
93
+ # Each folder is registered as an LSP workspace folder, enabling language servers to discover
94
+ # symbols and references across package boundaries, but these folders are not indexed by Serena,
95
+ # i.e. the respective symbols will not be found using Serena's symbol search tools.
96
+ # Example:
97
+ # additional_workspace_folders:
98
+ # - ../sibling-package
99
+ # - ../shared-lib
100
+ ls_additional_workspace_folders: []
101
+
102
+ # list of additional paths to ignore in this project.
103
+ # Same syntax as gitignore, so you can use * and **.
104
+ # Important: quote patterns that start with `*`, otherwise YAML treats them as aliases.
105
+ # Example:
106
+ # ignored_paths:
107
+ # - "examples/**"
108
+ # - ".worktrees/**"
109
+ # - "**/bin/**"
110
+ # - "**/obj/**"
111
+ # Note: global ignored_paths from serena_config.yml are also applied additively.
112
+ ignored_paths: []
113
+
114
+ # whether the project is in read-only mode
115
+ # If set to true, all editing tools will be disabled and attempts to use them will result in an error
116
+ # Added on 2025-04-18
117
+ read_only: false
118
+
119
+ # list of tool names to exclude.
120
+ # This extends the existing exclusions (e.g. from the global configuration)
121
+ # Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
122
+ excluded_tools: []
123
+
124
+ # list of tools to include that would otherwise be disabled (particularly optional tools that are disabled by default).
125
+ # This extends the existing inclusions (e.g. from the global configuration).
126
+ # Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
127
+ included_optional_tools: []
128
+
129
+ # fixed set of tools to use as the base tool set (if non-empty), replacing Serena's default set of tools.
130
+ # This cannot be combined with non-empty excluded_tools or included_optional_tools.
131
+ # Find the list of tools here: https://oraios.github.io/serena/01-about/035_tools.html
132
+ fixed_tools: []
133
+
134
+ # list of mode names that are to be activated by default, overriding the setting in the global configuration.
135
+ # The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes.
136
+ # If the setting is undefined/empty, the default_modes from the global configuration (serena_config.yml) apply.
137
+ # Otherwise, this overrides the setting from the global configuration (serena_config.yml).
138
+ # Therefore, you can set this to [] if you do not want the default modes defined in the global config to apply
139
+ # for this project.
140
+ # This setting can, in turn, be overridden by CLI parameters (--mode).
141
+ # See https://oraios.github.io/serena/02-usage/050_configuration.html#modes
142
+ default_modes:
143
+
144
+ # list of mode names to be activated additionally for this project, e.g. ["query-projects"]
145
+ # The full set of modes to be activated is base_modes (from global config) + default_modes + added_modes.
146
+ # See https://oraios.github.io/serena/02-usage/050_configuration.html#modes
147
+ added_modes:
148
+
149
+ # initial prompt for the project. It will always be given to the LLM upon activating the project
150
+ # (contrary to the memories, which are loaded on demand).
151
+ initial_prompt: ""
152
+
153
+ # time budget (seconds) per tool call for the retrieval of additional symbol information
154
+ # such as docstrings or parameter information.
155
+ # This overrides the corresponding setting in the global configuration; see the documentation there.
156
+ # If null or missing, use the setting from the global configuration.
157
+ symbol_info_budget:
158
+
159
+ # list of regex patterns which, when matched, mark a memory entry as read‑only.
160
+ # Extends the list from the global configuration, merging the two lists.
161
+ read_only_memory_patterns: []
162
+
163
+ # list of regex patterns for memories to completely ignore.
164
+ # Matching memories will not appear in list_memories or activate_project output
165
+ # and cannot be accessed via read_memory or write_memory.
166
+ # To access ignored memory files, use the read_file tool on the raw file path.
167
+ # Extends the list from the global configuration, merging the two lists.
168
+ # Example: ["_archive/.*", "_episodes/.*"]
169
+ ignored_memory_patterns: []
2026-09-09_FREMDBEFUND_ausstieg-aus-dem-meta-loop.md ADDED
@@ -0,0 +1,212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Fremdbefund: Ausstieg aus dem Meta-Loop
2
+
3
+ **Datum:** 2026-09-09
4
+ **Was das ist:** Belege von aussen. Sechs unabhaengige Recherche-Agents, ~130 Suchen/Fetches.
5
+ **Was das NICHT ist:** keine vierte Diagnose. `DIAGNOSE.md` (Maerz), `EMPFEHLUNGEN.md` (Maerz)
6
+ und `AGENT_CONTROL_TOWER_PROJECT_AUDIT.md` (Mai) haben die Innensicht bereits korrekt erfasst.
7
+ Dieses Dokument enthaelt ausschliesslich, was dort noch nicht steht.
8
+
9
+ ---
10
+
11
+ ## 0. Was heute gemessen wurde
12
+
13
+ Auf pop-os, einer von vier Maschinen — jede Zahl ist damit eine Untergrenze.
14
+
15
+ | | |
16
+ |---|---|
17
+ | Aktive Harnesses (heute) | hermes (97 Profile), opencode, codex, claude-code, `~/.feynman` |
18
+ | Weitere Agenten-Oberflaechen | coding-mcp, ubw, browser-harness, openharness-venv, cua-driver, muse, tirith |
19
+ | Maschinen im Tailnet | pop-os, samuel-mbp, cursor, debian |
20
+ | Projekte in ~/Projekte | 194, davon **82 Tooling ueber das Tooling** |
21
+ | Familien | Sidecar x16, Agent-* x25, Harness-* x11, HAI-* x11, Meta* x5, Zentrale x3 |
22
+ | Claude Code | 46 Commands, 23 Skills, 38 Agents, 10 MCP-Server |
23
+ | Codex | 1.588 Sessions, 12,5 Mrd. Tokens, ~100 Projekte |
24
+
25
+ Nebenbefund: mtime taugt hier nicht zur Lebendigkeitspruefung (etwas schreibt flaechig
26
+ mtimes, vermutlich restic/Indexer). 189 von 194 Projekten "in 30d angefasst" ist ein Artefakt,
27
+ kein Befund. Es gibt derzeit **kein Kriterium, was lebt.**
28
+
29
+ ---
30
+
31
+ ## 1. Die Frage
32
+
33
+ Sind Menschen mit vergleichbar aufgeblasenem Bestand aus dem Meta-Loop rausgekommen —
34
+ und funktioniert der Weg ueber ein Riesensystem jemals?
35
+
36
+ ---
37
+
38
+ ## 2. Befund A — Ausstiege: 14 Faelle, null ueber ein besseres System
39
+
40
+ Kein einziger belegter Ausstieg lief ueber "endlich das Meta-System gebaut, das funktioniert".
41
+ Jeder lief ueber Aufhoeren oder drastisches Schrumpfen.
42
+
43
+ **Der Ausloeser ist immer zweiteilig** — nie eins allein:
44
+ ein banales Reibungsereignis (Sync-Lag, kaputte Hotkeys nach Update, neuer Job, langsame App)
45
+ UND eine Identitaetsabrechnung.
46
+
47
+ - Joan Westenberg, 6. Nuechternheits-Jahrestag: "was mich nuechtern gehalten hat, stand in
48
+ keiner einzigen Notiz". Behalten: **eine** Notiz namens "WHAT".
49
+ - Anshul Kumar: "ich bin Kurator von Gedanken geworden, kein Erzeuger von Bedeutung".
50
+ - Derek Neighbors, nach 14 Systemen in 3 Jahren, jedes tot nach ~2 Wochen: das Problem war
51
+ **zerstoertes Selbstvertrauen, nicht das Tooling**. Behalten: drei winzige Tagesaufgaben.
52
+
53
+ **Zwei, die gehalten haben:**
54
+
55
+ - **Jacob Boxerman** — 2000+ Zeilen literate Emacs-Config, 4 Jahre, 100+ Stars. Ausloeser:
56
+ neuer Job zwang ihn auf VSCode; beim Zurueckkommen sah er die Wucherung. Ergebnis:
57
+ **<300 Kernzeilen.** Nennt periodische "Bankruptcy" eine gesunde Praxis.
58
+ - **Derek Neighbors** — siehe oben. Micro-Promise-Protokoll.
59
+
60
+ **Was uebrig bleibt, ist immer genau ein schmales Ding.** Eine Notiz. Near-stock-Config.
61
+ Papier nur fuer die strategische Ebene. Drei Aufgaben.
62
+
63
+ **Der Spiegel:** Ashish Vaghela ("Dotfiles — Two Years Later") hat seine Shell-Config auf vier
64
+ Dateien geschrumpft und parallel ein grosses `claude/`-Verzeichnis wachsen lassen — **32
65
+ ungenutzte Skills**, die er selbst "Config Debt" nennt. Sein Satz:
66
+
67
+ > *"tuning the setup quietly becomes a substitute for doing the work"*
68
+
69
+ Das Substrat verschwindet nicht, es **zieht um**. Einziger Fall im Sample aus der KI-Domaene,
70
+ und er ist ein laufender lateraler Rueckfall, kein Ausstieg.
71
+
72
+ **Rueckfall ist normal, nicht Versagen:** pda hat seine Vim-Config 2017 zurueckgesetzt und
73
+ 2024 erneut. Kay Foxley dreimal Notion, waegt den vierten Anlauf ab.
74
+
75
+ ---
76
+
77
+ ## 3. Befund B — Riesensystem: funktioniert, aber nur in einem schmalen Band
78
+
79
+ Der Fall Steve Yegge zerfaellt sauber in zwei Haelften, und die Trennlinie ist die Antwort:
80
+
81
+ | | **Beads** | **Gas Town** |
82
+ |---|---|---|
83
+ | Was | duenne git-native Persistenzschicht (JSONL/SQLite als Agent-Gedaechtnis) | vollstaendiger Orchestrator, "Kubernetes fuer Coding-Agents" |
84
+ | Ergebnis | 20k+ Stars, 29 Contributors, breite unabhaengige Adoption | 4 Rewrites, im Aug 2026 unter Opus 4.7 "fell apart at the seams" |
85
+ | Nutzer | tausende, unabhaengig | **nur Yegge** |
86
+ | Ueberlebt solo? | ja — andere betreiben es | nein — brauchte eine Firma (Kilo), um ueber den Selbstversuch hinauszukommen |
87
+
88
+ Yegges eigener Satz zu Gas Town:
89
+
90
+ > *"intended to be reusable, but I only ever wound up using it to build itself"*
91
+
92
+ Das ist Sidecar V5-V8-ng, woertlich, von jemand anderem geschrieben.
93
+
94
+ Und die Kosten, bei einem Mann mit 40 Jahren Engineering-Erfahrung (Google, Amazon,
95
+ Sourcegraph): unfreiwillige "nap-strikes", zweimal taeglich Schlaf, ein Burnout-Muster, das er
96
+ selbst "the AI Vampire" nennt — als ernste Warnung formuliert, nicht als Witz.
97
+
98
+ **Gall's Law haelt.** Es wurde **kein einziger** Fall gefunden, in dem jemand einen grossen
99
+ Orchestrator from-scratch entworfen, fertig ausgerollt hat und er gehalten haette. Jeder
100
+ Erfolgsfall (Beads, Ralph-Loop, santifer.io, Devins VM-isolierter Koordinator) ist ein
101
+ einfacher Kern, an den inkrementell angebaut wurde.
102
+
103
+ **Bestes Gegenbeispiel zu "einfach kuerzen":** santifer.io — eine Person, abends/am Wochenende
104
+ neben Vollzeitjob, 6-Rollen-Agentenflotte auf tmux + git worktrees, ~1 Std/8 Entscheidungen
105
+ taeglich fuer 16 gemergte PRs + 25 triagierte Issues pro Tag. Real, aber erst ~3 Monate alt;
106
+ der Autor selbst: *"day one will not look like this"*.
107
+
108
+ **Die Bedingungen, die Erfolg von Scheitern trennen:**
109
+ 1. Das System ist eine **schmale Zustandsschicht, die andere uebernehmen koennen** — kein
110
+ massgeschneiderter Orchestrator, den nur einer versteht.
111
+ 2. Agents sind **strukturell isoliert** (worktrees, separate VMs), teilen keinen Live-Kontext.
112
+ 3. Ein **Mensch behaelt die letzte Entscheidung**. Jeder Fall, der die Urteilsinstanz
113
+ wegautomatisieren wollte, ist kollabiert.
114
+ 4. Skaliert wird **Review-/Urteilskapazitaet, nicht Agentenzahl**. ("The Mythical Agent-Month":
115
+ Brooks' Law neu angewandt — mehr Agents erzeugen eine Validierungssteuer, die nicht
116
+ parallelisiert. Empfehlung dort: n=1-2, nicht n=20-30.)
117
+
118
+ ---
119
+
120
+ ## 4. Die Konvergenz
121
+
122
+ Drei unabhaengige Recherchelinien treffen sich in einem Satz:
123
+
124
+ > **Was nie funktioniert, ist der massgeschneiderte Orchestrator, dessen einziger Nutzer
125
+ > sein Erbauer ist.**
126
+
127
+ - Die Ausstiegs-Recherche fand null Faelle, die per Eigenbau-System rauskamen.
128
+ - Die Riesensystem-Recherche fand exakt diese Trennlinie zwischen Beads (viele Nutzer, haelt)
129
+ und Gas Town (ein Nutzer, kollabiert).
130
+ - Die Muster-Recherche hatte denselben Diskriminator unabhaengig hergeleitet:
131
+ *"wer ist der Nutzer, wenn es fertig ist?"* Legitim = jemand anderes, oder du in einer
132
+ anderen Rolle. Zwanghaft = der Erbauer, dauerhaft im Bau-Modus.
133
+
134
+ Dazu der harte Strukturbefund: **eine Single Control Plane ueber mehrere Harnesses existiert
135
+ 2026 nicht.** Portabel sind nur `AGENTS.md` (Instruktionen) und `SKILL.md` (Skills).
136
+ **Subagents/Profile und Slash-Commands haben null Cross-Harness-Standard** — genau die zwei
137
+ Schichten, auf denen der gesamte Bestand ruht. Die 16 Sidecar-Generationen sind an einem
138
+ fehlenden Fundament gescheitert, nicht an Disziplin: jede konnte nur eine Maschine und einen
139
+ Harness sehen und wurde blind.
140
+
141
+ ---
142
+
143
+ ## 5. Der Anschluss an die bestehenden Dokumente
144
+
145
+ `EMPFEHLUNGEN.md` (Maerz 2026), Punkt E5:
146
+
147
+ > **Consolidate:** `/chef-lite`, `/chef-async` → Flags auf `/chef`
148
+ > **Kill:** `/auto`, `/batch`, `/crew`
149
+
150
+ Stand 2026-09-09, gegen die geladene Skill-Liste geprueft: `/chef`, `/chef-lite`,
151
+ `/chef-async`, `/chef-subagent`, `/auto`, `/batch`, `/crew` — **alle sieben existieren.
152
+ E5 ist zu 0% umgesetzt.**
153
+
154
+ Zeitachse: Maerz Diagnose+Plan → Mai Control-Tower-Audit (43 KB) → Juli Scope-Gate-Design
155
+ entschieden, Implementierung offen → September erneute Recherche.
156
+ Vier Runden korrekter Analyse, null Umsetzung.
157
+
158
+ `DIAGNOSE.md` hat das im Maerz schon benannt:
159
+ *"Execution Gap — Planen > Ausfuehren. 74 Sessions gestartet, <20 beendet (27%)."* und
160
+ *"CLAUDE.md Regeln sind Text-Appelle, keine technischen Gates."*
161
+
162
+ **Konsequenz fuer dieses Dokument:** Der Engpass ist nicht Wissen. Eine fuenfte Analyse —
163
+ auch diese hier, mit den besten Fremdbelegen — liegt an derselben Stelle liegen wie die vier
164
+ davor, wenn nichts ausserhalb eines Dokuments passiert. Die Fremdbelege sagen konsistent,
165
+ was stattdessen wirkt: ein **externes, binaeres, zeitlich begrenztes Signal** (harte kurze
166
+ Ship-Deadline; ein Fremder benutzt das Ding). Willenskraft taucht in keinem einzigen
167
+ Erfahrungsbericht als Loesung auf; bei ADHS ist das ein Aktivierungs-, kein Disziplinproblem.
168
+
169
+ ---
170
+
171
+ ## 6. Was NICHT belegt ist
172
+
173
+ Ehrlichkeitshalber, weil das die Handlungsgrundlage begrenzt:
174
+
175
+ - **Es existiert kein einziger First-Person-Bericht ueber KI-Agenten-/MCP-/Skill-Wucherung.**
176
+ Alles unter "agent sprawl" 2025-2026 ist Enterprise-Governance-Content (Salesforce, SAP,
177
+ Gartner, Beratungen). Null persoenliche Zeugnisse ausser Vaghelas Nebensatz.
178
+ → Es gibt niemanden, dessen Ausstieg direkt nachgemacht werden koennte. Nicht weil der
179
+ Bestand zu weit ist, sondern weil die Domaene zu jung ist, um Aussteiger zu haben.
180
+ - Kein Fall eines solo gewarteten, from-scratch entworfenen Grossorchestrators, der 6+ Monate
181
+ ohne weitere Engineering-Investition gehalten haette.
182
+ - Keine kontrollierte Forschung zur Rueckfallquote dieses Musters. Alle Interventionen sind
183
+ Erfahrungsberichte, keine kausalen Belege.
184
+ - "Loesch den Meta-Kram" ist die **am schlechtesten belegte** Intervention — mehrere Berichte
185
+ beschreiben, dass die Loeschung selbst den naechsten Rebuild-Zyklus ausloest.
186
+ - Reddit war fuer die Recherche praktisch unerreichbar (Indexierungsluecken), homelab-
187
+ De-Sprawl-Zeugnisse liessen sich nicht finden. Beides "nicht gefunden", nicht "existiert nicht".
188
+
189
+ ---
190
+
191
+ ## Quellen
192
+
193
+ **Ausstiege:** joanwestenberg.com · sudoscience.blog/2023/10/21 · anshulkumar.substack.com/p/i-built-a-second-brain-then-i-burned ·
194
+ jakebox.github.io/posts/2025-08-31-bankruptcy.html · github.com/pda/config-neovim ·
195
+ news.ycombinator.com/item?id=36754386 · dev.to/ashish-codejourney/dot-files-two-years-later-2d1o ·
196
+ quantifiedself.com/blog/why-i-stopped-tracking/ · derekneighbors.com/2026/04/19 ·
197
+ denseymour.substack.com/p/going-analog · forum.zettelkasten.de/discussion/1069
198
+
199
+ **Riesensystem:** steveyegge.spicytakes.org (Beads, Gas Town) · steve-yegge.medium.com/beads-blows-up ·
200
+ simonwillison.net/2026/Aug/4/steve-yegge/ · blog.kilo.ai/p/gas-town-by-kilo · ghuntley.com/ralph/ ·
201
+ santifer.io/ai-agent-fleet · cognition.com/blog/dont-build-multi-agents ·
202
+ anthropic.com/engineering/multi-agent-research-system · blog.forret.com/2025/2025-10-26/mythical-agent-month/
203
+
204
+ **Muster:** hanselman.com (yak shaving) · joelonsoftware.com/2000/04/06 (Rewrite-Falle) ·
205
+ mcfunley.com/choose-boring-technology · additudemag.com (possibility clutter) ·
206
+ neurodivergentinsights.com/interest-based-nervous-system
207
+
208
+ **Control Plane:** agents.md · github.com/intellectronica/ruler · jeangalea.com/ai-coding-agents-one-config/ ·
209
+ github.com/anthropics/claude-code/issues/66559 (Symlink-Bug) · riftmap.dev/blog/the-catalog-maintenance-trap/
210
+
211
+ **Pruning:** uber.com/blog/piranha · healthchecks.io/docs/monitoring_cron_jobs/ ·
212
+ docs.growthbook.io/features/stale-detection · blog.tooljet.com/how-to-reduce-internal-tooling-costs/
AGENT_CONTROL_TOWER_PROJECT_AUDIT.md ADDED
@@ -0,0 +1,843 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Agent Control Tower – Projekt-Audit und Integrationsstrategie
2
+
3
+ ## 0. Executive Summary
4
+
5
+ Hinter allen Projekten steht dasselbe Ziel: eine lokale Control Plane fuer agentisches Arbeiten. Der Operator gibt eine Aufgabe oder ein Projektziel vor, das System entscheidet oder empfiehlt den passenden Harness, erzeugt Kontext, startet oder beobachtet Runs, sammelt Artefakte und macht Ergebnisse auswertbar. Es geht nicht um "noch einen Agenten", sondern um Kontrolle ueber mehrere bestehende Agent-/Harness-Werkzeuge.
6
+
7
+ Bereits funktionierende Teile existieren, aber verteilt. `KomandoZentral` routet deterministisch Tasks auf Harnesses. `Zentrale` scaffoldet Projekte, erzeugt Context Packs, routet, trackt Runs und hat CLI/TUI/Web-Ansaetze. `MultiHarnessStudio` definiert mit Spine die sauberste gemeinsame Sprache fuer Task, Decision, Run, Execution, Artifact und Eval. `HarnessDashboard` ist eine kleine, getestete Observability-Vertical-Slice fuer Codex-/Harness-Sessions. `HarnessEcosystem` ist ein brauchbares Doku- und Entscheidungsportal. `FirstRealHarnessEvaluation_KarpathiesMD` enthaelt echte Eval-/SWE-bench-Runner, ist aber noch nicht stabil genug fuer belastbare Aussagen.
8
+
9
+ Das Hauptproblem ist nicht fehlender Code. Das Hauptproblem sind zu viele konkurrierende Zentren: Router, Dashboards, Run Stores, Eval Stores, Policy-Dokumente und UI-Ansaetze erzeugen jeweils eigene Wahrheiten. Dadurch wird Integration komplex, obwohl viele Einzelteile sinnvoll sind. Mehr Features machen das nicht besser.
10
+
11
+ Das Zusammenfuehren wurde komplex, weil mehrfach gleichzeitig versucht wurde, Routing, Execution, Dashboard, Evaluation, Policy-Lernen und Operator-Control in einem Schritt zu loesen. Dazu kommen Namensvarianten, uncommitted WIP-Staende, lokale Runtime-Artefakte, fehlende stabile IDs und teils widerspruechliche Doku. Besonders gefaehrlich sind plausible, aber falsche Verknuepfungen, z. B. ein globales `latest-decision.json`, das nicht eindeutig zu einer Session oder Task gehoert.
12
+
13
+ Dein Freund sollte als Erstes verstehen: Es gibt keinen Grund, alles neu zu bauen oder alles in eine App zu kopieren. Die richtige Integration ist ein kleiner gemeinsamer Kern mit stabilen IDs und Adaptern. Harnesses bleiben Werkzeuge. Dashboards lesen Zustand. Der Operator entscheidet.
14
+
15
+ Bei ca. 300 € Budget ist der realistische naechste Schritt kein grosser Implementierungsblock, sondern eine harte Architekturentscheidung plus ein kleiner Vertical Slice. Ziel: eine Rollenmatrix fuer die Projekte, ein minimales Datenmodell fuer `Project`, `Task`, `Run`, `AgentSession`, `Harness`, `Decision`, `Artifact`, `Evaluation`, und ein erster Pfad `TaskRequest -> RoutingDecision -> RunRecord -> Artifact/Eval-Link`.
16
+
17
+ ## 1. Projektseiten
18
+
19
+ ### Projekt: KommandoZentral / KommandoZentrale
20
+
21
+ #### Zweck
22
+
23
+ `KomandoZentral` ist eine lokale, deterministische Routing- und Decision-Engine fuer AI-Harnesses. Es klassifiziert Tasks, beruecksichtigt Operator-State und Task-Modifier, empfiehlt Harness, Fallback, Confidence und Risiken und kann Entscheidungen als YAML speichern.
24
+
25
+ #### Aktueller Zustand
26
+
27
+ Es gibt ein Python-Projekt mit CLI, FastAPI-Web-UI, Routing-Core, Confidence-Logik, YAML-Persistenz, Decision-Log und Tests. Der Git-Stand hat einen Baseline-Commit (`a4f7253 initial functional beta baseline`) und danach viele uncommitted Aenderungen, u. a. an CLI, Confidence, Persistenz, Service, Web und Tests. Ein gezielter lokaler Testlauf fuer Kernbereiche ergab `31 passed`.
28
+
29
+ Die exakte Schreibweise im Dateisystem ist `KomandoZentral`, nicht `KommandoZentral`. `FusionKomandoZentraleZentrale` ist eine separate Neuaufbau-Linie und wird unten mitbehandelt.
30
+
31
+ #### Funktionierende Einzelteile
32
+
33
+ - CLI `kz` und `python -m kz`.
34
+ - Routing-Pipeline `route_request`.
35
+ - FastAPI-Endpunkte wie `/health`, `/api/route`, `/api/decisions`.
36
+ - Task-Klassen und Modifier fuer THINK, BUILD, ANALYZE, RESEARCH, EVAL, META.
37
+ - Confidence-Caps und schwache Decision-/Review-Metadaten.
38
+ - YAML-Decision-Output nach Schema.
39
+
40
+ #### Bisheriger Integrationsansatz
41
+
42
+ KZ war als Pre-Session-Router gedacht: Aufgabe rein, Harness-Empfehlung raus. Spaetere Glue-Ideen sollten KZ-Entscheidungen in andere Systeme einspeisen, z. B. via `latest-decision.json` fuer Sidecar-NG. `Zentrale` kann KZ optional aufrufen und dessen YAML-Output in lokale Harness-/Phase-Begriffe uebersetzen.
43
+
44
+ #### Woran es gescheitert ist
45
+
46
+ - Scope-Konflikt: Doku/Beta-Scope beschreibt Outcome-Write-Flow als spaeter oder manuell, Code/UI/Tests enthalten aber aktive Outcome-Logik.
47
+ - CWD-Sensitivitaet: `DECISIONS/` wird relativ zum aktuellen Arbeitsverzeichnis gelesen/geschrieben.
48
+ - Nebenwirkungen: `route_request` schreibt nach aktuellem Stand offenbar auch ohne `--save` in einen latest-decision-Cache.
49
+ - KZ/Sidecar-Glue ist architektonisch fragil: Ein globales `latest-decision.json` ist nicht task- oder sessiongebunden und kann falsche Entscheidungen in falsche Sessions injizieren.
50
+ - Es fehlt ein verbindlicher Core, der Decision -> Session -> Run -> Artifact sauber verbindet.
51
+
52
+ Klassifikation: technisch und architektonisch, mit deutlichem Anteil fehlender Entscheidungsstruktur.
53
+
54
+ #### Technische Schulden
55
+
56
+ - Outcome-Scope klaeren: offiziell aktives Feature oder aus Beta entfernen.
57
+ - Persistenzpfade entkoppeln und auf explizite Projekt-/Core-Pfade legen.
58
+ - `latest-decision` nur noch ueber stabile IDs oder gar nicht als Integrationskanal nutzen.
59
+ - API-Validierung auf CLI-Niveau bringen.
60
+ - Inline-HTML/JS in `src/kz/web.py` spaeter trennen, aber nicht als erster Schritt.
61
+
62
+ #### Empfehlung
63
+
64
+ Behalten und integrieren, aber strikt als Policy-/Decision-Engine. Nicht zum Execution-Backend ausbauen.
65
+
66
+ #### Nächster sinnvoller Schritt
67
+
68
+ In 1-3 Stunden: eine klare Scope-Notiz schreiben und testen: "KZ erzeugt `RoutingDecision`, speichert keine globalen sessionlosen Runtime-Signale als Integrationswahrheit." Danach Cache-/Decision-Pfade mit temporären Testpfaden verifizieren.
69
+
70
+ #### Belege
71
+
72
+ - `KomandoZentral/README.md`
73
+ - `KomandoZentral/SOFTWARE_ARCHITEKTUR.md`
74
+ - `KomandoZentral/ECOSYSTEM_MAP.md`
75
+ - `KomandoZentral/TASK_TAXONOMY_V1.md`
76
+ - `KomandoZentral/src/kz/service.py`
77
+ - `KomandoZentral/src/kz/web.py`
78
+ - `KomandoZentral/src/kz/persist.py`
79
+ - `KomandoZentral/tests/test_api.py`, `tests/test_cli.py`, `tests/test_routing.py`
80
+ - Git: `a4f7253 initial functional beta baseline`, dirty worktree
81
+ - Lokale Verifikation: gezielt `31 passed`
82
+
83
+ ### Projekt: FusionKomandoZentraleZentrale
84
+
85
+ #### Zweck
86
+
87
+ `FusionKomandoZentraleZentrale` ist ein bewusster kleiner Neuaufbau: Intent verstehen, Route entscheiden, genau einen Run ausfuehren, Ergebnis speichern. Es uebernimmt Konzepte aus Ueberagent, KomandoZentral und Zentrale, aber laut README keinen Code.
88
+
89
+ #### Aktueller Zustand
90
+
91
+ Das Projekt hat Core-Module (`IntentClassifier`, `KomandoRouter`, `FusionSystem`, `Executor`, Models), BackendService, FastAPI-App, SQLite-Store und eine einfache UI/API fuer Runs. Es gibt einen Baseline-Commit (`6e40a02 Initial finished baseline`) und uncommitted Aenderungen an README, Backend, SQLite und Tests.
92
+
93
+ Core-/Service-/Persistence-Tests liefen lokal einzeln erfolgreich. Die FastAPI-`TestClient`-Tests liefen in dieser Umgebung in Timeouts; das ist ein Verifikationsblocker fuer die API-Schicht, kein Beweis fuer fachlich kaputte Core-Logik.
94
+
95
+ #### Funktionierende Einzelteile
96
+
97
+ - `IntentClassifier`, `KomandoRouter`, `FusionSystem`.
98
+ - `BackendService` mit Store und Executor.
99
+ - SQLite-Run-History.
100
+ - API-Konzept fuer `/health`, `POST /api/runs`, `GET /api/runs/{id}`, `GET /api/runs`.
101
+ - Tests fuer Core, Service und Persistence.
102
+
103
+ #### Bisheriger Integrationsansatz
104
+
105
+ Fusion sollte das komplexe KZ/Zentrale-Geflecht hart reduzieren. Backend bleibt Source of Truth fuer Routing, Execution, History und Run State. Ein Thin-VS-Code-Client ist als spaetere UI-Schicht geplant, aber explizit ohne eigene Orchestrierung.
106
+
107
+ #### Woran es gescheitert ist
108
+
109
+ - Es konkurriert konzeptionell mit Zentrale und KZ, statt eine klar zugewiesene Rolle zu haben.
110
+ - Zwei Ablaufpfade (`FusionSystem` und `BackendService`) duplizieren Classifier/Router/Executor-Logik und koennen driften.
111
+ - Das Thin-Client-Dokument beschreibt bereits Streaming, Cancellation und reichere API-Grenzen; aktuelle API ist synchron und minimal.
112
+ - Default-App-Setup kann `./data/runs.db` erzeugen; Runtime-State im Repo-Kontext ist fuer Tests/Imports riskant.
113
+ - API-Tests sind lokal nicht belastbar verifiziert.
114
+
115
+ Klassifikation: architektonisch und technisch.
116
+
117
+ #### Technische Schulden
118
+
119
+ - Eine einzige Orchestrierungsfunktion festlegen.
120
+ - Runtime-DB-Pfade immer explizit und testbar injizieren.
121
+ - API-Kontrakt auf Ist-Zustand reduzieren oder Implementierung an Doku angleichen.
122
+ - Stub-Execution klar als Stub markieren, solange keine echten Harnesses ausgefuehrt werden.
123
+
124
+ #### Empfehlung
125
+
126
+ Als Modul wrappen oder nur Ideen uebernehmen. Nicht parallel zu Zentrale und KZ als dritte Control Plane ausbauen. Wenn genutzt, dann als kleiner Run-/Execution-Backend-Kern, nicht als Router-Konkurrent.
127
+
128
+ #### Nächster sinnvoller Schritt
129
+
130
+ In 1-3 Stunden: schriftlich entscheiden, ob Fusion im Control-Tower-Core ueberhaupt Runtime-Backend wird. Falls ja: nur `BackendService` als einzigen Pfad akzeptieren und `FusionSystem` als konzeptionell/legacy markieren.
131
+
132
+ #### Belege
133
+
134
+ - `FusionKomandoZentraleZentrale/README.md`
135
+ - `FusionKomandoZentraleZentrale/docs/thin-vscode-client-architecture.md`
136
+ - `FusionKomandoZentraleZentrale/src/fusion_kzz/*`
137
+ - `FusionKomandoZentraleZentrale/src/fusion_kzz_backend/service.py`
138
+ - `FusionKomandoZentraleZentrale/src/fusion_kzz_backend/app.py`
139
+ - `FusionKomandoZentraleZentrale/tests/test_core_flow.py`
140
+ - `tests/test_backend_service.py`, `tests/test_backend_persistence.py`
141
+ - Git: `6e40a02 Initial finished baseline`, dirty worktree
142
+ - Lokale Verifikation: Core/Service/Persistence einzeln gruen; API-TestClient-Tests Timeout
143
+
144
+ ### Projekt: Zentrale
145
+
146
+ #### Zweck
147
+
148
+ `Zentrale` ist eine lokale adaptive Agent-Zentrale: Master-Prompt annehmen, Projektordner scaffolden, Harness/Phase routen, Context Packs erzeugen, Runs tracken und Registry-Learnings schreiben. Architekturbegriff: deterministischer Multi-Harness-Orchestrator mit Context-Aware Delegation, kein volles Multi-Agent-Framework mit Agent-to-Agent-Chat.
149
+
150
+ #### Aktueller Zustand
151
+
152
+ `Zentrale` ist der weiteste Integrationsprototyp. Es gibt CLI, Projekt-Scaffold, Context Packs, Routing, Run Tracking, Registry Learning, Harness Runner, Textual-TUI und FastAPI/Web-Ansaetze. HEAD ist `c75c8ea Clarify supervisor orchestrator role`; der Arbeitsbaum ist deutlich dirty mit untracked Web-, Dashboard-, Harness-Runner- und Testdateien.
153
+
154
+ `python scripts/validate_skeleton.py` meldete `skeleton ok`. Ein gezielter Testlauf fuer CLI/Registry/Run/Harness-Bereiche ergab `74 passed`. Vollsuite wurde nicht als belastbar ausgewertet, weil laengere E2E/Runtime-Teile haengen koennen.
155
+
156
+ #### Funktionierende Einzelteile
157
+
158
+ - Project Scaffold mit Templates, `MASTER_PROMPT.md`, `PROJECT.json`.
159
+ - Context Pack pro Phase/Harness.
160
+ - Statische Keyword-Regeln plus Effectiveness-Ranking.
161
+ - Optionaler KomandoZentral-Parser.
162
+ - Run Records (`RUN.json`), Logs, DONE_CRITERIA, Registry Learning.
163
+ - Harness Runner fuer Codex, Gemini, Claude, Hermes und OpenCode-Pfad.
164
+ - TUI/Web-Leseoberflaechen.
165
+
166
+ #### Bisheriger Integrationsansatz
167
+
168
+ Zentrale versucht bereits den gewuenschten Control-Tower-Pfad: Route -> Context Pack -> Run Record -> Harness-Ausfuehrung -> Log/Status -> Learning. KZ ist optionaler Decision-Provider, MultiHarnessStudio liefert Schema-/Spine-Ideen, Web/TUI lesen lokale Projekt-/Run-Daten.
169
+
170
+ #### Woran es gescheitert ist
171
+
172
+ - Scope-Wachstum: CLI, TUI, Web, Harness Runner, Registry Learning und KZ-Integration wachsen gleichzeitig.
173
+ - Web QuickRun ist nicht vollstaendig konsistent: Frontend-Startpfade und Backend-Write-Surface sind teils Stub/501 laut Analyse.
174
+ - Clean-Checkout-Risiko: Tests oder Webdaten koennen lokale, ignorierte Smoke-Artefakte erwarten.
175
+ - Run-Pipeline-Logik ist mehrfach in CLI, QuickRun-TUI und Unified-TUI nachgebaut.
176
+ - Doku driftet gegen Code, z. B. aeltere Aussagen zu OpenCode-only oder KZ dead code.
177
+ - Run-ID-Kollisionen sind moeglich, wenn ID nur Sekunden-Timestamp plus Slug nutzt.
178
+
179
+ Klassifikation: scope-bedingt, technisch und organisatorisch.
180
+
181
+ #### Technische Schulden
182
+
183
+ - Feature-Freeze.
184
+ - Test-Fixtures von lokalen ignorierten Artefakten entkoppeln.
185
+ - Eine einzige Run-Pipeline-Funktion fuer CLI/TUI/Web.
186
+ - Web-Write-Surface entweder implementieren oder aus UI entfernen.
187
+ - Source-of-Truth fuer doppelte Web-Assets festlegen.
188
+ - Changelog/Doku aktualisieren, bevor weitergebaut wird.
189
+
190
+ #### Empfehlung
191
+
192
+ Behalten und als Integrationsprototyp nutzen, aber nicht als finalen "alles kann alles"-Core. Zentrale sollte Adapter/Execution-Pfad werden, nicht alleinige Wahrheitsschicht.
193
+
194
+ #### Nächster sinnvoller Schritt
195
+
196
+ In 1-3 Stunden: `tests/test_web_api.py` von lokalen Smoke-Artefakten entkoppeln und eine klare Web-Grenze setzen: QuickRun deaktivieren, solange Backend-Startpfad nicht sauber ist, oder minimal an die bestehende Run-Pipeline anbinden.
197
+
198
+ #### Belege
199
+
200
+ - `Zentrale/README.md`
201
+ - `Zentrale/docs/architecture.md`
202
+ - `Zentrale/docs/decisions.md`
203
+ - `Zentrale/src/zentrale/cli.py`
204
+ - `Zentrale/src/zentrale/routing.py`
205
+ - `Zentrale/src/zentrale/context_pack.py`
206
+ - `Zentrale/src/zentrale/run_tracking.py`
207
+ - `Zentrale/src/zentrale/harness_runner.py`
208
+ - `Zentrale/registry/*.json`
209
+ - `Zentrale/tests/test_cli.py`, `test_registry_contracts.py`, `test_run_tracking.py`, `test_harness_runner.py`
210
+ - Git: `c75c8ea`, `6ed0e0b`, `da07ef3`, dirty worktree
211
+ - Lokale Verifikation: `skeleton ok`, gezielt `74 passed`
212
+
213
+ ### Projekt: megaHarness
214
+
215
+ #### Zweck
216
+
217
+ `megaHarness` ist als persoenliches Meta-Harness geplant: eine Schicht ueber Claude Code, OpenClaude, Codex, OpenHands, Cursor, Hermes usw. Es soll Tasks ueber austauschbare Harness-/Modell-Kombinationen laufen lassen. Der dokumentierte USP liegt in MD-Artefakten: Policies, Done-Kriterien, Sidecar-Regeln, Eval-Interpretationen.
218
+
219
+ #### Aktueller Zustand
220
+
221
+ Kein Softwareprojekt im engeren Sinn. Gefunden wurden nur Architektur-/Ideendateien (`ARCHITECTURE.md`, `Artefakt_USP.md`, `Hoehlengleichnis.md`, `idea`). Kein Git-Repo, kein Code, keine Tests, keine Logs, keine `md-db/`. Der dokumentierte 5-Tage-MVP-Zeitraum war 2026-04-23 bis 2026-04-28; im Ordner sind keine Umsetzungsergebnisse fuer Tag 1 sichtbar.
222
+
223
+ #### Funktionierende Einzelteile
224
+
225
+ Im Projekt selbst keine belegbar funktionierenden Einzelteile. Dokumentiert werden externe Bausteine wie Sidecar-NG, `HarnessEcosystem/sidebyside` und UI-Patterns, aber `megaHarness` verifiziert diese nicht selbst.
226
+
227
+ #### Bisheriger Integrationsansatz
228
+
229
+ Die Idee ist richtig geschnitten: MD-DB als Source of Truth, Adapter-Protokoll fuer Harnesses, Kernel mit Router/Orchestrator/Swap/Eval, externe Tools als Adapter oder Subprocess, nicht Portierung. UI soll statische SPA sein.
230
+
231
+ #### Woran es gescheitert ist
232
+
233
+ - Es blieb beim Plan; kritische Tag-1-Artefakte fehlen.
234
+ - Der Plan deckt zu viele Schichten ab: MD-DB, Resolver, Adapter, Parallel-Orchestrator, Swap, Eval, UI.
235
+ - Dokumentierte Risiken wurden nicht durch einen kleinen Slice reduziert: Scope-Creep, Parallelismus, Token-Budget, UI-Zeitfresser.
236
+ - Kein Git bedeutet keine belastbare Review-/Rollback-Basis.
237
+
238
+ Klassifikation: scope-bedingt und organisatorisch.
239
+
240
+ #### Technische Schulden
241
+
242
+ Vor Integration muss ueberhaupt ein minimaler, versionierter Arbeitskern entstehen: `md-db/`, Frontmatter-Schema, Beispiel-Track, Resolver, Smoke-Test.
243
+
244
+ #### Empfehlung
245
+
246
+ Nur Ideen uebernehmen. Nicht als Modul integrieren, nicht migrieren, nicht zum Startpunkt machen. Architekturbegriffe sind wertvoll, Codebasis existiert nicht.
247
+
248
+ #### Nächster sinnvoller Schritt
249
+
250
+ In 1-3 Stunden: Wenn dieses Projekt weiterleben soll, Git initialisieren und nur Tag-1-Slice bauen: `md-db/` + `tracks/example.md` + minimaler MD-Resolver + Smoke-Command. Sonst archivieren.
251
+
252
+ #### Belege
253
+
254
+ - `megaHarness/ARCHITECTURE.md`
255
+ - `megaHarness/Artefakt_USP.md`
256
+ - `megaHarness/Höhlengleichnis.md`
257
+ - `megaHarness/idea`
258
+ - `find`: keine Code-/Test-/Manifest-Dateien
259
+ - `git -C megaHarness`: kein Git-Repo
260
+
261
+ ### Projekt: MultiHarnessStudio
262
+
263
+ #### Zweck
264
+
265
+ `MultiHarnessStudio` ist aktuell `Spine V1`: eine kanonische Integrationsschicht zwischen MetaMetaMeta, KomandoZentral, UEBER_AGENT, AgentIDE und HarnessEcosystem. Es ersetzt keine Runtime oder UI, sondern definiert gemeinsame Objekte, IDs, States, Events, Artefakte und Adapter-Vertraege.
266
+
267
+ #### Aktueller Zustand
268
+
269
+ Spec-first Scaffold. Vorhanden sind README, Architekturdoc, 13 JSON-Schemas, System-/Harness-/Adapter-Registry, ein kompletter Beispiel-Run und ein lokales Validierungsskript. Kein Git-Repo im Ordner, keine Tests/Build-Manifeste, keine Logs. `python3 MultiHarnessStudio/scripts/validate_spine.py` meldete lokal OK mit 13 Schemas, 4 Harness-Manifests, 5 Adapter-Manifests und 9 Example-Files.
270
+
271
+ #### Funktionierende Einzelteile
272
+
273
+ - Schemas fuer `TaskRequest`, `RoutingDecision`, `RunRecord`, `ExecutionRequest`, `ExecutionStatus`, `RouteTrace`, `ArtifactManifest`, `EvalRecord`, `SpineEvent`, `SystemManifest`, `HarnessManifest`, `AdapterManifest`, `OperatorContext`.
274
+ - Registry fuer Harnesses und Adapter.
275
+ - Beispiel-Lifecycle mit konsistenter Task -> Decision -> Run -> Execution -> Status/Trace/Artifact/Eval -> Events-Verknuepfung.
276
+ - Validator prueft Inventar und Beispielkonsistenz.
277
+
278
+ #### Bisheriger Integrationsansatz
279
+
280
+ Contract-first: `Registry + Schemas + Run-State + Event-Log + Artifact-Index + Adapter-Vertraege`. Geplanter Fluss: UI/Operator erzeugt `TaskRequest`, KZ liefert `RoutingDecision`, Spine validiert und erzeugt `ExecutionRequest`, Runtime meldet Status/Trace/Artifacts, Eval-/Observatory-Layer konsumieren.
281
+
282
+ #### Woran es gescheitert ist
283
+
284
+ - Es ist noch kein operativer Core, sondern Spezifikation.
285
+ - Registry-Drift moeglich: Felder wie recommended Harness/Runtime sind teils freie Strings.
286
+ - Failure-Modell ist nicht first-class genug; `failed` existiert, aber Failure-Typen sind nicht hart modelliert.
287
+ - Artifact-Integritaet ist schwach, wenn Beispiel-URIs/Hashes nicht reproduzierbare konkrete Artefakte referenzieren.
288
+ - Adapter sind Manifeste, keine Bridges.
289
+
290
+ Klassifikation: technisch und architektonisch.
291
+
292
+ #### Technische Schulden
293
+
294
+ - Validator zu echtem `spine check` ausbauen.
295
+ - Vollstaendige JSON-Schema-Validierung aller Registry-/Example-Dateien.
296
+ - Cross-Checks fuer Harness-IDs, Runtime-Targets, Adapter `reads/writes`, Event-Typen, Artifact-URI/Hash-Regeln.
297
+ - Negative Fixtures ergaenzen.
298
+
299
+ #### Empfehlung
300
+
301
+ Behalten und als kleinsten gemeinsamen Contract verwenden. Nicht zum Orchestrator aufblasen. Das ist der beste Kandidat fuer den Agent Control Tower Core, aber nur in minimaler operativer Form.
302
+
303
+ #### Nächster sinnvoller Schritt
304
+
305
+ In 1-3 Stunden: `validate_spine.py` haerten, sodass unbekannte Harness-/Runtime-Ziele wirklich fehlschlagen. Das schafft mehr Hebel als neue UI oder Runtime.
306
+
307
+ #### Belege
308
+
309
+ - `MultiHarnessStudio/README.md`
310
+ - `MultiHarnessStudio/docs/spine-v1-architecture.md`
311
+ - `MultiHarnessStudio/schemas/*.json`
312
+ - `MultiHarnessStudio/registry/*`
313
+ - `MultiHarnessStudio/examples/run_lifecycle/*.json`
314
+ - `MultiHarnessStudio/scripts/validate_spine.py`
315
+ - `MultiHarnessStudio/V0.5_KZ_Road_to_Von_NEUMANN-Agent-System/Kritik_GPT`
316
+ - `MultiHarnessStudio/V0.5_KZ_Road_to_Von_NEUMANN-Agent-System/Kritik_mini_gemini`
317
+ - Lokale Verifikation: `Spine validation OK`
318
+
319
+ ### Projekt: HarnessDashboard / HarenssDashboard
320
+
321
+ #### Zweck
322
+
323
+ `HarnessDashboard` ist eine harness-agnostische Session-Dashboard-Vertical-Slice: Live-Prozesse erkennen, Codex-Sessions aus State-DB oder JSONL lesen, in ein gemeinsames Overview-Schema mergen und per GTK-Frontend anzeigen.
324
+
325
+ #### Aktueller Zustand
326
+
327
+ Kleines Python-Projekt mit `backend/`, `frontend/`, `shared/`, `tests/` und `pyproject.toml`. Kein Git-Repo, keine README, keine Lockfiles, keine Start-Skripte. Die Schreibweise `HarenssDashboard` existiert nicht als eigener Projektordner; `harenss` taucht nur als Tippfehler in anderen Artefakten auf. Lokaler Testlauf fuer `HarnessDashboard/tests` ergab `17 passed`.
328
+
329
+ #### Funktionierende Einzelteile
330
+
331
+ - Starlette-API `/api/overview`.
332
+ - Gemeinsames striktes Overview-Schema.
333
+ - Process Scanner fuer `openclaude`, `opencode`, `codex`, `claude`, `hermes`.
334
+ - Codex-Adapter fuer `state_*.sqlite` und `sessions/**/*.jsonl`.
335
+ - Merging ueber `cwd` plus `process_only`-Fallback.
336
+ - GTK-Frontend mit asynchronem Laden und Mock-Fallback.
337
+ - Tests fuer API-Vertrag, Scanner, Codex-Adapter, Frontend-Smoke.
338
+
339
+ #### Bisheriger Integrationsansatz
340
+
341
+ Backend sammelt lokale Live-Prozesse, liest Codex-Sessions, merged beides und liefert ein Overview-JSON. Frontend validiert denselben Shared-Vertrag und zeigt Sessions/Details. Es beobachtet, steuert aber nicht.
342
+
343
+ #### Woran es gescheitert ist
344
+
345
+ - Ohne laufendes Backend zeigt das Frontend Mockdaten; das kann wie ein funktionierendes Live-Dashboard wirken.
346
+ - Adapterfehler werden nicht prominent genug angezeigt.
347
+ - Matching ueber `cwd` kann bei mehreren Sessions im selben Projekt falsch sein.
348
+ - Wrapper-Prozesse koennen vom Scanner uebersehen werden.
349
+ - Strikte Schema-Key-Gleichheit ist fuer Erweiterungen fragil.
350
+
351
+ Klassifikation: technisch, nicht grundsaetzlich architektonisch.
352
+
353
+ #### Technische Schulden
354
+
355
+ - README/Runbook.
356
+ - Live-vs-Mock sichtbar machen.
357
+ - Adapterfehler im UI anzeigen.
358
+ - Port/Startsequenz/GTK-Abhaengigkeiten dokumentieren.
359
+ - Scanner-Matching robuster machen.
360
+
361
+ #### Empfehlung
362
+
363
+ Behalten und als Observability-Adapter/Reader integrieren. Nicht zur Control Plane machen.
364
+
365
+ #### Nächster sinnvoller Schritt
366
+
367
+ In 1-3 Stunden: Backend lokal auf `127.0.0.1:8765` starten, `/api/overview` gegen Shared-Schema pruefen, Frontend-Livezustand klar von Mock unterscheiden, README mit Startbefehlen schreiben.
368
+
369
+ #### Belege
370
+
371
+ - `HarnessDashboard/pyproject.toml`
372
+ - `HarnessDashboard/backend/app.py`
373
+ - `HarnessDashboard/backend/overview.py`
374
+ - `HarnessDashboard/backend/process_scanner.py`
375
+ - `HarnessDashboard/backend/codex_adapter.py`
376
+ - `HarnessDashboard/shared/schema.py`
377
+ - `HarnessDashboard/frontend/app.py`
378
+ - `HarnessDashboard/tests/*`
379
+ - Lokale Verifikation: `17 passed`
380
+
381
+ ### Projekt: HarnessEcosystem
382
+
383
+ #### Zweck
384
+
385
+ `HarnessEcosystem` ist ein lokales, datengetriebenes Harness-Audit- und Entscheidungsportal. Es dokumentiert Claude Code, Hermes, OpenCode, Codex CLI und teilweise Cursor/weitere Tools, visualisiert Architektur, Kosten, Tutorials und Side-by-Side-Snapshots.
386
+
387
+ #### Aktueller Zustand
388
+
389
+ Es gibt einen initialen Commit (`ddc6259`) und einen grossen uncommitted WIP-Stand mit Root-SPA, `sidebyside/`, `frontier-llm-harness/`, GPT-5.4-Shift-Report und Diagrammen. Kein `package.json`, kein `pyproject.toml`, keine automatisierten Projekt-Tests. Subagent-Smokes meldeten JS-Syntaxchecks und JSON-Validitaet OK.
390
+
391
+ #### Funktionierende Einzelteile
392
+
393
+ - Vanilla Root-SPA mit `data/ecosystem.json`.
394
+ - Router-/Matrix-/Tutorial-/Kostenansichten.
395
+ - `sidebyside`-SPA fuer lokale Harness-Snapshots.
396
+ - Snapshot-Builder mit read-only SQLite-Zugriffen und Secret-Redaction.
397
+ - Tasksheets und Tutorials als Handoff-Vertraege.
398
+
399
+ #### Bisheriger Integrationsansatz
400
+
401
+ Manuell gepflegte Datenquelle plus statische Apps. Operativ beschreibt das Projekt eine Wellen-/Handoff-Pipeline: Claude Code fuer Richtung, OpenCode fuer Reality-Check, Hermes fuer Build, Codex fuer Finish. Neuere Snapshot-Analyse versucht lokale Metadaten aus Codex/Claude/Hermes vergleichbar zu machen.
402
+
403
+ #### Woran es gescheitert ist
404
+
405
+ - Evidenz ist nicht audit-grade: Der Shift-Report sagt selbst, dass Outcome-Labels, harte Checks und kontrollierte Task-Bank fehlen.
406
+ - Snapshot-Metriken sind nicht immer cross-harness vergleichbar.
407
+ - `frontier-llm-harness` enthaelt redaktionelle/illustrative Scores, keine Messung.
408
+ - Datenschutz/Privatsphaere: Snapshot-Summaries koennen promptnahe Arbeitsinhalte enthalten.
409
+ - Scope-Mismatch: Briefing/README/Daten nennen nicht immer dieselbe Harness-Anzahl.
410
+
411
+ Klassifikation: technisch und evidenzmethodisch.
412
+
413
+ #### Technische Schulden
414
+
415
+ - Metriken als diagnostisch, redaktionell oder outcome-basiert klassifizieren.
416
+ - Privacy-/Provenienz-Regeln fuer Snapshots haerten.
417
+ - README/Scope aktualisieren.
418
+ - Produktcode, Datenartefakte und Demos getrennt committen.
419
+ - `innerHTML`-Nutzung aus JSON-Inhalten spaeter sicherer machen.
420
+
421
+ #### Empfehlung
422
+
423
+ Behalten als Doku-/Observatory-Portal. Nicht als Core oder Metrik-Wahrheit verwenden, solange Outcome-Signale fehlen.
424
+
425
+ #### Nächster sinnvoller Schritt
426
+
427
+ In 1-3 Stunden: Privacy-/Provenienz-Spike fuer `harness-snapshot*.json`; promptnahe Summaries aus Repo-Snapshots entfernen oder klar klassifizieren. Danach README-Statusmatrix aktualisieren.
428
+
429
+ #### Belege
430
+
431
+ - `HarnessEcosystem/README.md`
432
+ - `HarnessEcosystem/docs/HARNESS_GUIDE.md`
433
+ - `HarnessEcosystem/docs/TOKEN_DIAET.md`
434
+ - `HarnessEcosystem/docs/gpt5-4-shift-report.md`
435
+ - `HarnessEcosystem/data/ecosystem.json`
436
+ - `HarnessEcosystem/app.js`
437
+ - `HarnessEcosystem/sidebyside/*`
438
+ - Git: `ddc6259 feat: initial HarnessEcosystem`, dirty worktree
439
+
440
+ ### Projekt: HarnessEvaluierung / HarenessEvaulierung
441
+
442
+ #### Zweck
443
+
444
+ Relevant gefunden wurde vor allem `FirstRealHarnessEvaluation_KarpathiesMD`. Zweck: minimaler Wegwerf-Harness, um zu pruefen, ob kleine Aenderungen an `CONVENTIONS.md` messbare Effekte bei Aider + SWE-bench Lite erzeugen. `FrontierLLMHarnessValidation` ist ein Satellit fuer die spaetere Frage, wie sich dasselbe Harness mit anderem Modell verhaelt.
445
+
446
+ Exakte Ordner `HarnessEvaluierung`, `HarenessEvaulierung`, `HarenessEvaluierung` oder `Evaulierung` wurden nicht gefunden.
447
+
448
+ #### Aktueller Zustand
449
+
450
+ `FirstRealHarnessEvaluation_KarpathiesMD` ist ein echtes Python-/Web-Projekt mit Runnern, SQLite-Ergebnisbank, Artefakten, Reports und Dashboard-Ansatz. Der Arbeitsbaum ist stark dirty. Es gibt keinen belastbaren erfolgreichen Vergleich: Fail-Fast ist ausgeloest, die meisten Runs sind Failure-Klassen. Die vorhandene `.venv` hatte lokal kein `pytest`, daher konnte die Testsuite nicht ausgefuehrt werden.
451
+
452
+ `FrontierLLMHarnessValidation` hat keine Commits und nur README/Infodatei; es ist Plan, kein Produkt.
453
+
454
+ #### Funktionierende Einzelteile
455
+
456
+ - CLI-Entrypoints wie `harness-run-once`, `harness-preflight`, `harness-summarize`, `harness-ui`.
457
+ - `run_once` erzeugt Run-Artefakte: `run_meta.json`, Logs, Diff, Tests, Judge-Input/-Report.
458
+ - SQLite-Ergebnisablage.
459
+ - SWE-bench-Eval laeuft grundsaetzlich; ein belegter Run hatte `22/22` Tests bestanden.
460
+ - Reports und Dashboard-/Backend-Struktur existieren.
461
+
462
+ #### Bisheriger Integrationsansatz
463
+
464
+ Pipeline: SWE-bench-Task laden, Repo auf Base-Commit klonen/cachen, `CONVENTIONS.md` einfuegen, Aider laufen lassen, Diff extrahieren, Diff an SWE-bench-Evaluation geben, Ergebnis als Artefakte/SQLite schreiben, danach Fail-Fast/Summary/Judge. Methodisch als Baseline-first gedacht.
465
+
466
+ #### Woran es gescheitert ist
467
+
468
+ - Fail-Fast: zu wenige diskriminative Baseline-Tasks.
469
+ - Viele Runs liefern `task_failure`, `eval_report_missing`, Timeout oder Infra-Fails.
470
+ - Mehrere Logs zeigen `tests_total=0`, `diff_source=none`, `tokens=null`.
471
+ - Docker/SWE-bench-Faelle scheitern teils an Patch-Apply-/Symlink-/Reverse-Patch-Problemen.
472
+ - DB-Schema und `run_meta.json` divergieren.
473
+ - Analyse-Skripte fragen Spalten ab, die in der DB nicht existieren.
474
+ - Zu viele Runner/Flows parallel.
475
+
476
+ Klassifikation: technisch und scope-bedingt.
477
+
478
+ #### Technische Schulden
479
+
480
+ - Eine minimale Baseline-Schleife stabilisieren.
481
+ - SQLite und `run_meta` auf dieselben Felder bringen.
482
+ - Analyse-Skripte an reale Spalten anpassen.
483
+ - Failure-Klassen sauber modellieren.
484
+ - UI/Modellvergleich stoppen, bis Baseline belastbar ist.
485
+
486
+ #### Empfehlung
487
+
488
+ Als separates Eval-Harness behalten, nicht in den Control Core integrieren. Spaeter via Adapter `Evaluation` und `Artifact` in den Core einspeisen.
489
+
490
+ #### Nächster sinnvoller Schritt
491
+
492
+ In 1-3 Stunden: Schema-/Datenpfad-Audit; `run_meta` und SQLite angleichen, `analyze_screening.py` auf reale Spalten umstellen, einen bekannten guten Run plus zwei Kandidaten pruefen. Ziel: mindestens zwei diskriminative Tasks mit `tests_total > 0` und ohne `eval_report_missing`.
493
+
494
+ #### Belege
495
+
496
+ - `FirstRealHarnessEvaluation_KarpathiesMD/README.md`
497
+ - `FirstRealHarnessEvaluation_KarpathiesMD/Versuchsaufbau.md`
498
+ - `FirstRealHarnessEvaluation_KarpathiesMD/pyproject.toml`
499
+ - `FirstRealHarnessEvaluation_KarpathiesMD/results/summary/experiment_report.md`
500
+ - `FirstRealHarnessEvaluation_KarpathiesMD/results/**/run_meta.json`
501
+ - `FirstRealHarnessEvaluation_KarpathiesMD/runner/db.py`
502
+ - `FirstRealHarnessEvaluation_KarpathiesMD/docs/efficient_test_plan.md`
503
+ - `FirstRealHarnessEvaluation_KarpathiesMD/docs/statistically_rigorous_plan.md`
504
+ - `FrontierLLMHarnessValidation/README.md`
505
+ - Lokale Verifikation: `.venv` ohne `pytest`
506
+
507
+ ### Projekt: ACT-agentcommandotower
508
+
509
+ #### Zweck
510
+
511
+ Nicht in der urspruenglichen Projektliste, aber relevant wegen Name und Zielbild. `ACT-agentcommandotower` ist ein minimaler lokaler Operator-Cockpit-Ansatz: Fokus setzen, Decision-Queue fuehren, Runs notieren, Projekte pausieren.
512
+
513
+ #### Aktueller Zustand
514
+
515
+ Sehr kleines Script-Projekt mit `tower.py`, `tower.yaml`, `focus.md`, `decisions.md`, `runs/`. Kein Git-Repo. `tower.yaml` ist faktisch JSON, obwohl die Datei `.yaml` heisst. Es gibt keine Runs. `python3 -m json.tool ACT-agentcommandotower/tower.yaml` war gueltig.
516
+
517
+ #### Funktionierende Einzelteile
518
+
519
+ - CLI-Subcommands: `status`, `focus`, `add-decision`, `add-run`, `pause`.
520
+ - Lokaler State in `tower.yaml`.
521
+ - Human Decision Queue in `decisions.md`.
522
+ - Run-Notizen als Markdown in `runs/`.
523
+
524
+ #### Bisheriger Integrationsansatz
525
+
526
+ Bewusst kein Orchestrator. README sagt: keine Datenbank, keine Web-UI, keine Background-Prozesse, keine autonome Orchestrierung. Das ist ein Operator-Control-Notizblock.
527
+
528
+ #### Woran es gescheitert ist
529
+
530
+ Es ist nicht gescheitert; es ist nur extrem klein und nicht integriert. Als technische Basis fuer den Control Tower reicht es nicht. Als Erinnerung an die richtige Operator-Grenze ist es wertvoll.
531
+
532
+ Klassifikation: kein Failure, eher fehlender Ausbau und fehlende Integration.
533
+
534
+ #### Technische Schulden
535
+
536
+ - Dateiendung/Inhalt klaeren (`tower.yaml` enthaelt JSON).
537
+ - Keine Schema-/Testabdeckung.
538
+ - Keine Verbindung zu echten `Run`-/`Decision`-IDs.
539
+
540
+ #### Empfehlung
541
+
542
+ Nur Ideen uebernehmen: Fokus, Pausieren, Human Decision Queue. Nicht als Modul integrieren.
543
+
544
+ #### Nächster sinnvoller Schritt
545
+
546
+ In 1-3 Stunden: Decision-Queue-Idee in das Core-Datenmodell als `Decision`/`OperatorDecision` aufnehmen, aber nicht `tower.py` ausbauen.
547
+
548
+ #### Belege
549
+
550
+ - `ACT-agentcommandotower/README.md`
551
+ - `ACT-agentcommandotower/tower.py`
552
+ - `ACT-agentcommandotower/tower.yaml`
553
+ - `ACT-agentcommandotower/decisions.md`
554
+ - Kein `.git` im Ordner
555
+
556
+ ## 2. Cross-Project-Synthese
557
+
558
+ ### Gemeinsamer Kern
559
+
560
+ Alle Projekte kreisen um dieselbe Control-Plane-Frage: Wie wird aus einem menschlichen Ziel eine kontrollierte agentische Ausfuehrung mit sichtbarem Zustand, Artefakten, Evaluation und menschlicher Entscheidung?
561
+
562
+ Der gemeinsame Kern ist:
563
+
564
+ - Task erfassen.
565
+ - Kontext und Scope begrenzen.
566
+ - Harness/Phase/Modell entscheiden.
567
+ - Run starten oder beobachten.
568
+ - Artefakte, Logs und Status sammeln.
569
+ - Outcome/Evaluation zurueckfuehren.
570
+ - Operator-Entscheidungen sichtbar halten.
571
+
572
+ ### Doppelte Konzepte
573
+
574
+ - Routing/Decision: `KomandoZentral`, `Zentrale`, `FusionKomandoZentraleZentrale`, `megaHarness`, `MultiHarnessStudio`.
575
+ - Run Registry: `Zentrale/runs`, Fusion SQLite, FirstReal SQLite/Results, MultiHarnessStudio `RunRecord`, HarnessDashboard Sessions.
576
+ - Dashboard/Observatory: `HarnessDashboard`, `Zentrale` Web/TUI, `HarnessEcosystem`, MetaMetaMeta Eval-Dashboards.
577
+ - Eval Layer: `FirstRealHarnessEvaluation`, `HarnessEcosystem/sidebyside`, MetaMetaMeta, MultiHarnessStudio `EvalRecord`, megaHarness Eval-Idee.
578
+ - Adapter Layer: MultiHarnessStudio Adapter-Manifeste, megaHarness Adapter-Protokoll, Zentrale Harness Runner, HarnessDashboard Adapter.
579
+
580
+ ### Fehlendes Zentrum
581
+
582
+ Es fehlt eine kleine, verbindliche Wahrheitsschicht. Nicht noch ein Dashboard. Nicht noch ein Orchestrator. Konkret fehlen:
583
+
584
+ - gemeinsames Datenmodell,
585
+ - Run Registry,
586
+ - Task Registry,
587
+ - Project Registry,
588
+ - Agent Session Registry,
589
+ - Evaluation Layer als angebundener, aber separater Teil,
590
+ - Dashboard als Reader,
591
+ - Decision Log,
592
+ - Operator Control Layer.
593
+
594
+ MultiHarnessStudio beschreibt diese Mitte bereits mit Spine. Was fehlt, ist eine minimale operative Umsetzung, nicht eine groessere Vision.
595
+
596
+ ### Was NICHT zusammengeführt werden sollte
597
+
598
+ - Harnesses selbst: Claude Code, Codex, OpenCode, Hermes, Aider/SWE-bench bleiben externe Ausfuehrungswerkzeuge.
599
+ - Eval-Harness und Operator-Core: Evaluation soll den Core informieren, nicht den Core kontrollieren.
600
+ - Doku-/Observatory-Portal und Core: `HarnessEcosystem` darf keine Wahrheit ueber Runs erzeugen.
601
+ - UI und Execution: Dashboards lesen, Execution laeuft ueber Adapter/Harnesses.
602
+ - `megaHarness` als Ganzes: Ideen uebernehmen, nicht Plan implementieren.
603
+ - KZ und Fusion als konkurrierende Router: KZ ist Decision, Fusion/Zentrale koennen Execution/Run behandeln.
604
+
605
+ ### Wahrscheinlich beste Architektur
606
+
607
+ Der sinnvollste Approach ist ein minimaler Agent Control Tower Core nach Spine-Prinzip:
608
+
609
+ ```text
610
+ Operator
611
+ -> TaskRequest
612
+ -> KZ-Adapter erzeugt RoutingDecision
613
+ -> Core erzeugt/aktualisiert RunRecord + Events
614
+ -> Zentrale/Fusion/Harness-Adapter fuehrt aus oder beobachtet
615
+ -> Artifact/Evaluation wird referenziert
616
+ -> Dashboard liest Core-Zustand
617
+ -> Operator entscheidet naechsten Schritt
618
+ ```
619
+
620
+ Kernobjekte:
621
+
622
+ - `Project`
623
+ - `Task`
624
+ - `Run`
625
+ - `AgentSession`
626
+ - `Harness`
627
+ - `Decision`
628
+ - `Artifact`
629
+ - `Evaluation`
630
+
631
+ Regeln:
632
+
633
+ - Jede Verknuepfung braucht stabile IDs.
634
+ - Kein globaler sessionloser Cache als Integrationswahrheit.
635
+ - Jeder Adapter darf uebersetzen, aber nicht eigene Semantik erfinden.
636
+ - Dashboard darf keine zweite Run-Wahrheit schreiben.
637
+ - Operator bleibt Entscheider, besonders bei Fanout, Retry, Swap, Evaluation-Interpretation und Scope-Aenderung.
638
+
639
+ ## 3. Empfohlener Integrations-Approach
640
+
641
+ ### Phase 1: Inventar und Freeze
642
+
643
+ Einfrieren:
644
+
645
+ - `megaHarness`: keine Umsetzung, nur Ideenquelle.
646
+ - `HarnessEcosystem`: keine neuen Score-Behauptungen ohne Outcome-Signal.
647
+ - `FirstRealHarnessEvaluation`: keine Frontier-/Modellvergleichs-Erweiterung, bis Baseline stabil ist.
648
+ - `Zentrale` Web/TUI: keine neuen Screens, bis Run-Pipeline-Grenzen sauber sind.
649
+
650
+ Nur lesen:
651
+
652
+ - bestehende Docs, Schemas, Tests, Run-Artefakte, Git-Historie.
653
+ - HarnessEcosystem-Snapshots nur mit Privacy-Bewertung.
654
+
655
+ Nicht weiterbauen:
656
+
657
+ - globale `latest-decision`-Glue-Wege ohne Task-/Sessionbindung.
658
+ - parallele Router-Konzepte.
659
+ - neue Meta-Harness-Visionen ohne Vertical Slice.
660
+
661
+ ### Phase 2: Minimaler Agent Control Tower Core
662
+
663
+ Der kleinste gemeinsame Kern ist:
664
+
665
+ - lokale Registry,
666
+ - JSON-Schemas oder Pydantic/Dataclass-Modelle fuer die acht Kernobjekte,
667
+ - append-only Event Log,
668
+ - Artifact Index,
669
+ - Decision Log,
670
+ - ein CLI/Script `check`, das Registry/Schemas/Referenzen prueft.
671
+
672
+ Startobjekte:
673
+
674
+ - `Project`: Name, Root, Status, Scope.
675
+ - `Task`: Beschreibung, Project-ID, Status, Source.
676
+ - `Decision`: Task-ID, Harness-Empfehlung, Confidence, Begruendung, Operator-Status.
677
+ - `Run`: Task-ID, Decision-ID, Harness, Status, Timestamps.
678
+ - `AgentSession`: Harness, externe Session-ID, cwd, Status, Resume-Link.
679
+ - `Artifact`: Run-ID, Typ, URI, Hash/Provenienz.
680
+ - `Evaluation`: Run-ID, Outcome, Checks, Diagnose.
681
+ - `Harness`: ID, Adapter, Capabilities, Status.
682
+
683
+ ### Phase 3: Adapter statt Rewrite
684
+
685
+ Anbinden, nicht kopieren:
686
+
687
+ - KZ als `RoutingDecision`-Adapter.
688
+ - Zentrale als Run-/Context-Pack-/Execution-Adapter.
689
+ - HarnessDashboard als AgentSession-Observability-Adapter.
690
+ - FirstReal als Evaluation-/Artifact-Adapter.
691
+ - HarnessEcosystem als lesendes Observatory.
692
+ - Fusion nur, wenn ein kleiner Execution-Backend-Pfad benoetigt wird.
693
+
694
+ ### Phase 4: Dashboard zuerst oder Backend zuerst?
695
+
696
+ Klare Empfehlung: Backend/Core zuerst, aber nur minimal. Kein grosses Backend-Produkt.
697
+
698
+ Begruendung: Es gibt bereits mehrere UI-/Dashboard-Ansaetze. Das Problem ist nicht Anzeige, sondern die fehlende eindeutige Wahrheit. Ein neues Dashboard ohne Core wuerde nur die naechste Oberflaeche ueber uneinheitliche Daten bauen.
699
+
700
+ Praktisch:
701
+
702
+ 1. Core-Schema und Registry-Check.
703
+ 2. KZ-Decision in Core schreiben.
704
+ 3. Einen Zentrale/Fusion-Run oder einen bestehenden Run als Core-Run referenzieren.
705
+ 4. Ein bestehendes Dashboard liest diesen Zustand.
706
+
707
+ ### Phase 5: Was mein Freund konkret übernehmen sollte
708
+
709
+ Geeignete Aufgaben fuer einen erfahrenen Informatiker:
710
+
711
+ - Architekturreview: Rollenmatrix und Nicht-Ziele durchsetzen.
712
+ - Datenmodell: acht Kernobjekte, IDs, Statusmodell, Referenzen.
713
+ - Repo-Struktur: entscheiden, ob Core in `MetaMetaMeta`, `MultiHarnessStudio` oder neuem minimalen Ordner lebt.
714
+ - Schnittstellen: Adapter-Vertraege statt direkter Imports.
715
+ - Technische Reduktion: konkurrierende Router/Run Stores markieren.
716
+ - Pair-Programming: erster Vertical Slice, nicht UI-Ausbau.
717
+ - Review von Agent-generiertem Code: besonders Pfade, Persistenz, Tests, hidden side effects.
718
+
719
+ ## 4. 300€-Budget-Plan
720
+
721
+ Mit 300 € sollte keine grosse Implementierung gekauft werden. Der Hebel liegt in Architekturklarheit und einer kleinen, verifizierbaren Kante.
722
+
723
+ ### Erste Session
724
+
725
+ 90-120 Minuten:
726
+
727
+ - Projektkarte durchgehen.
728
+ - Entscheiden: KZ = Decision Engine, Spine/Core = gemeinsame Wahrheit, Zentrale/Fusion = Execution/Run, Dashboard = Reader, Eval = separat.
729
+ - Harte Nicht-Ziele notieren.
730
+ - Einen einzigen Vertical Slice definieren.
731
+
732
+ ### Was NICHT passieren sollte
733
+
734
+ - Keine neue UI.
735
+ - Kein Zusammenkopieren von Repos.
736
+ - Kein Multi-Harness-Fanout.
737
+ - Kein megaHarness-MVP.
738
+ - Kein "wir refactoren erstmal alles".
739
+ - Kein Agent bekommt Architekturentscheidungen delegiert.
740
+
741
+ ### Deliverables am Ende
742
+
743
+ - Rollenmatrix: Projekt -> Rolle -> behalten/wrappen/archivieren.
744
+ - Datenmodell fuer acht Core-Objekte.
745
+ - Entscheidung, wo der minimale Core liegt.
746
+ - Liste der ersten drei Adapter.
747
+ - Definition of Done fuer Vertical Slice.
748
+
749
+ ### Budget-Aufteilung
750
+
751
+ - 2 Stunden Review/Pairing fuer Projektkarte und Rollenentscheidung.
752
+ - 2 Stunden Datenmodell-/Schnittstellenreview.
753
+ - Optional 1 Stunde Review des ersten implementierten Vertical-Slice-Plans.
754
+
755
+ Wenn nur eine Session moeglich ist, dann nicht implementieren. Dann nur Rollenmatrix und Datenmodell entscheiden.
756
+
757
+ ## 5. Konkreter Vorschlag für den ersten gemeinsamen Arbeitstermin
758
+
759
+ Agenda fuer 90-120 Minuten:
760
+
761
+ - 10 min: Zielbild. "Agent Control Tower" ist lokale Control Plane, kein neuer Agent.
762
+ - 20 min: Projektlandkarte. KZ, Zentrale, Spine, Dashboard, Ecosystem, Evaluation, megaHarness, ACT.
763
+ - 20 min: wichtigste Failure Modes. Globale Decisions, fehlende IDs, konkurrierende Run Stores, Scope-Wachstum, fehlende Outcomes.
764
+ - 30 min: Architekturentscheidung. Core-Objekte, Rollen, Nicht-Ziele, Adaptergrenzen.
765
+ - 20 min: naechster Vertical Slice. `TaskRequest -> RoutingDecision -> RunRecord -> Artifact/Eval-Link`.
766
+ - 10 min: Verantwortlichkeiten. Freund reviewed Datenmodell/Schnittstellen; Operator entscheidet Scope und Prioritaet; Agents implementieren nur abgegrenzte Tasks.
767
+
768
+ Konkrete Arbeitsfrage am Ende:
769
+
770
+ > Welche Datei oder welcher kleine Core-Ordner ist ab jetzt die einzige Quelle fuer `Task`, `Decision`, `Run` und `Artifact`?
771
+
772
+ Wenn diese Frage nicht beantwortet ist, nicht implementieren.
773
+
774
+ ## 6. Harte Wahrheit
775
+
776
+ Was an den bisherigen Versuchen gut war:
777
+
778
+ - Du hast die richtigen Problemfelder gesehen: Routing, Context Packs, Harness-Auswahl, Run Tracking, Evaluation, Observability und Operator-Control.
779
+ - Du hast nicht nur geredet; mehrere Prototypen haben echte Tests, Schemas, Runner oder UI-Slices.
780
+ - Die Spine-Idee ist fachlich stark. Sie beschreibt ziemlich genau die fehlende Mitte.
781
+ - Die Trennung "Harness ist Werkzeug, Operator entscheidet" taucht mehrfach in deinen eigenen Dokumenten auf. Das ist richtig.
782
+
783
+ Wo der Denkfehler lag:
784
+
785
+ - Du hast zu oft ein neues Zentrum gebaut, statt ein Zentrum verbindlich zu machen.
786
+ - Du hast Integration mit Produkt verwechselt. Eine Web-UI, ein Dashboard oder ein neuer Orchestrator ist keine Integration, wenn IDs, States und Ownership fehlen.
787
+ - Du hast "funktioniert lokal als Prototyp" zu schnell als "kann Teil eines Systems sein" behandelt.
788
+ - Du hast Agenten zu frueh mit Architektur-Scope laufen lassen. Dadurch entstehen plausible Plaene, aber auch neue konkurrierende Wahrheiten.
789
+
790
+ Welche Komplexitaet unterschaetzt wurde:
791
+
792
+ - Eindeutige Zuordnung von Task -> Decision -> Session -> Run -> Artifact -> Evaluation.
793
+ - Persistenz und Provenienz.
794
+ - Unterschied zwischen diagnostischen Logs und belastbaren Outcomes.
795
+ - Testbarkeit in Clean Checkouts.
796
+ - Datenschutz bei Snapshots.
797
+ - Die Tatsache, dass mehrere Harnesses nicht nur mehr Kapazitaet, sondern mehr Koordinationslast bedeuten.
798
+
799
+ Was du als Operator anders machen musst:
800
+
801
+ - Jede neue Agent-Aufgabe braucht ein explizites Scope-Limit und ein Nicht-Ziel.
802
+ - Kein Agent darf "das System verbessern", ohne dass du vorher ein konkretes Core-Objekt, eine Schnittstelle oder ein Testziel definierst.
803
+ - Du musst Entscheidungen schriftlich treffen: Welche Schicht ist Wahrheit? Welches Projekt ist nur Reader? Welches Projekt ist Experiment?
804
+ - Ein Run ohne Artifact/Outcome ist keine Evidenz, sondern nur Aktivitaet.
805
+ - Ein Dashboard ohne eindeutige Datenquelle ist Dekoration.
806
+
807
+ Welche Entscheidungen du nicht an Codex/Agents delegieren darfst:
808
+
809
+ - Welches Projekt die Source of Truth wird.
810
+ - Ob KZ, Fusion oder Zentrale die Runtime-Kontrolle bekommt.
811
+ - Wann ein Harness automatisch starten darf.
812
+ - Wann ein Eval-Ergebnis als belastbar gilt.
813
+ - Welche privaten Snapshot-Daten gespeichert werden duerfen.
814
+ - Ob Scope erweitert wird.
815
+ - Ob ein Rewrite begonnen wird.
816
+
817
+ Direkte Einschaetzung:
818
+
819
+ Das vorhandene Material ist nicht wertlos. Es ist aber nicht als Ganzes integrierbar. Integrierbar sind einzelne Rollen: KZ als Decision, Spine als Contract, Zentrale/Fusion als Execution-Ideen, HarnessDashboard als Observability, FirstReal als Eval, HarnessEcosystem als Doku. Der Rest muss bewusst getrennt oder archiviert werden.
820
+
821
+ Der kleinste sichere Integrationspfad ist nicht "Agent Control Tower bauen". Er ist:
822
+
823
+ 1. Ein Task bekommt eine stabile ID.
824
+ 2. KZ schreibt eine Decision mit dieser Task-ID.
825
+ 3. Ein Run referenziert Task und Decision.
826
+ 4. Ein Artifact oder Eval referenziert den Run.
827
+ 5. Ein Dashboard liest genau diese Kette.
828
+
829
+ Wenn diese Kette funktioniert, hast du einen Control Tower. Alles andere ist danach Erweiterung.
830
+
831
+ ## Verifikationsnotiz
832
+
833
+ Diese Analyse basiert auf lokalen Dateien, Subagenten-Analysen, Git-Status, Tests und vorhandenen Artefakten. Wichtige beobachtete Verifikation:
834
+
835
+ - `MultiHarnessStudio/scripts/validate_spine.py`: OK.
836
+ - `Zentrale/scripts/validate_skeleton.py`: OK.
837
+ - `KomandoZentral` gezielte Kern-Tests: `31 passed`.
838
+ - `Zentrale` gezielte Tests: `74 passed`.
839
+ - `HarnessDashboard` Tests: `17 passed`.
840
+ - `FusionKomandoZentraleZentrale`: Core/Service/Persistence einzeln gruen; FastAPI-`TestClient`-Tests liefen lokal in Timeout.
841
+ - `FirstRealHarnessEvaluation_KarpathiesMD`: vorhandene `.venv` hatte kein `pytest`; Befunde stammen aus Reports/Artefakten.
842
+
843
+ Vermutungen sind im Text als solche markiert oder aus den belegten Projektzustaenden abgeleitet. Nicht gefundene Namensvarianten wurden explizit genannt.
Analyse-July/00-SUMMARY.md ADDED
@@ -0,0 +1,98 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Executive Summary — Samuel Agentic Stack (Juli 2026)
2
+
3
+ **Ort:** `Projekte/MetaMetaMeta/Analyse-July/`
4
+ **Methode:** 4 Subagent-Transcripts vollständig extrahiert (`04`, `06`, `07`, `10`); 6 Transcripts leer → Reports `01`–`03`, `05`, `08`–`09` aus `~/.hermes/` rekonstruiert.
5
+
6
+ ---
7
+
8
+ ## Architektur auf einen Blick
9
+
10
+ Samuel betreibt ein **persönliches Agenten-Betriebssystem**, kein einzelnes Framework:
11
+
12
+ - **Hermes** (`~/.hermes/`): 84 Profile mit `SOUL.md`, Messaging-Gateway, Intake-Router, Delegation.
13
+ - **Cursor + Codex**: Tiefe Code-Arbeit, Planner/Worker-Trennung, `cursor_agent` MCP.
14
+ - **MCP-Schicht**: gdrive, TH-Mannheim, Hermes-Bridge, Knowledge Graph, hai-intake, Plaud.
15
+ - **Skills/Orchestrierung**: ~80+ `SKILL.md` über Codex, Cursor, Claude, `.agents` (metaswarm, HAI, coursepack).
16
+ - **Wahrheitshierarchie**: Kursordner & Projekt-Artefakte > Intake-Register > KG > kurzes Profilmemory.
17
+
18
+ ```mermaid
19
+ flowchart TB
20
+ V[Plaud / Voice] --> IR[Intake-Router]
21
+ IR --> REG[Register]
22
+ H[Hermes Messaging] --> P[Profile 84x SOUL]
23
+ P --> REG
24
+ C[Codex Plan] --> W[Cursor Worker]
25
+ W --> MS[metaswarm / PR]
26
+ KG[Knowledge Graph MCP] --> C
27
+ TH[TH-Mannheim SoT] --> P
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Was Samuel **sehr gut** macht
33
+
34
+ 1. **Rollen-Härtung** via SOUL + AGENT_DIRECTORY (uni/meta/guard/ops).
35
+ 2. **Entscheidungslast-Reduktion** (HAI, Defaults, klare Mensch-Gates).
36
+ 3. **Intake-Pipeline** Sprache → strukturierte Register → Fachagenten.
37
+ 4. **Lern-Sicherheit** — TH-Ordner als Source of Truth, Coach-Modus.
38
+ 5. **Shipping-Integration** — Codex/Cursor/metaswarm als echte Delivery-Schicht.
39
+ 6. **Vergleichs-Klarheit** — weiß, wo Frameworks stärker wären, ohne naiv zu migrieren.
40
+
41
+ ---
42
+
43
+ ## Was Samuel **gut** macht
44
+
45
+ - MCP-Integration konsistent über Hosts (`04-mcp-integrations.md`).
46
+ - Multi-Channel-Erreichbarkeit (Telegram/Discord/…).
47
+ - Meta-Agenten (`meta-new-agent`, Auditor) als Immunsystem.
48
+ - ADHS-Lernprofil als geteiltes Protokoll.
49
+
50
+ ---
51
+
52
+ ## Was **schlecht** / riskant ist
53
+
54
+ 1. **Komplexität & Profil-Sprawl** (84 Profile, monolithische Config).
55
+ 2. **Kein typisierter Workflow-State** / schwaches Checkpoint-Resume.
56
+ 3. **Memory-Fragmentierung** über Register, KG, Profile, Repos.
57
+ 4. **Skill-Duplikation** zwischen Hosts.
58
+ 5. **Weniger Always-on-Autonomie** als Top-Indie-Setups (Cron-Fleet, Overnight-Enrichment).
59
+ 6. **Analyse-Run selbst** scheiterte bei 6/10 Subagents (leere Transcripts).
60
+
61
+ ---
62
+
63
+ ## Vergleiche (Kurz)
64
+
65
+ | Gegen | Ergebnis |
66
+ |-------|----------|
67
+ | LangGraph / CrewAI / AutoGen | Samuel stärker bei **persönlichem Kontext & Audit**; Frameworks stärker bei **State, Interrupt, Skalierung** (`06`). |
68
+ | Indie Geek Stacks 2025–26 | Samuel stärker bei **Delivery & Rollen**; Indie stärker bei **24/7 Daemon + Cron-Gedächtnis** (`07`). |
69
+ | Einzel-IDE-Agent | Samuel's **Drei-Surface-OS** (Hermes/Codex/Cursor) klarer Arbeitsteilung (`10`). |
70
+
71
+ ---
72
+
73
+ ## Top-5 Empfehlungen
74
+
75
+ 1. **Profil-Tiers** — täglich <15 aktive Profile; Rest archivieren.
76
+ 2. **Ein aktiver Planner** — Codex *oder* Hermes-HAI pro Zeitfenster.
77
+ 3. **Completion Contracts** für alle delegierten Tasks (Pfad + Done-Kriterium).
78
+ 4. **Wöchentlicher meta-agent-auditor** — SOUL-Drift & Widersprüche.
79
+ 5. **Eine nächtliche Konsolidierung** — Intake (hohe Confidence) → Projekt-Notizen → KG.
80
+
81
+ ---
82
+
83
+ ## Report-Index
84
+
85
+ | Datei | Inhalt |
86
+ |-------|--------|
87
+ | `01-hermes-core-structure.md` | `~/.hermes/` Struktur, Config, Delegation |
88
+ | `02-agent-profiles-soul.md` | 84 Profile, SOUL-Muster, Directory |
89
+ | `03-skills-orchestration.md` | Skills-Ökosystem, metaswarm, HAI |
90
+ | `04-mcp-integrations.md` | MCP-Hosts, Server, Datenfluss |
91
+ | `05-memory-knowledge.md` | Memory-Tiers, KG, Intake |
92
+ | `06-compare-frameworks.md` | vs LangGraph, CrewAI, AutoGen, OpenAI SDK |
93
+ | `07-compare-indie-setups.md` | vs OpenClaw, GBrain, Claude Code Indies |
94
+ | `08-strengths.md` | Stärken synthetisiert |
95
+ | `09-weaknesses.md` | Schwächen & Risiken |
96
+ | `10-cursor-codex-hermes-bridge.md` | Drei-Surface-Integration |
97
+
98
+ *Erstellt: 2026-07-07*
Analyse-July/01-hermes-core-structure.md ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ > **Hinweis:** Der zugehörige Subagent-Transcript lieferte keine Assistant-Antwort (nur User-Prompt). Dieser Report wurde **direkt aus** `~/.hermes/`, Cursor/Codex-Skills und den fertigen Schwester-Reports rekonstruiert (Stand: Juli 2026).
2
+
3
+ # Hermes Core Structure — Samuel's Personal Agent OS
4
+
5
+ ## Executive picture
6
+
7
+ `~/.hermes/` is not a single app folder; it is a **runtime home** for the Hermes Agent distribution plus Samuel-specific overlays: **84 role profiles**, global policy files, channel gateways, kanban/jobs/cron, auth (not documented here), and the upstream `hermes-agent/` source tree. The active CLI profile pointer (`active_profile` file) currently selects **`intake-router-hermes`**, reflecting voice/intake as the live default surface.
8
+
9
+ Central configuration lives in **`config.yaml`** (~17k lines of structured policy): model routing, toolsets, terminal/web/browser tools, **multi-channel messaging** (Telegram, Discord, Slack, WhatsApp, Matrix, Mattermost), TTS/STT/voice, dashboard, **memory limits**, **delegation/subagent orchestration**, skills/curator hooks, and gateway behavior. Checkpoints exist in config but HAI-oriented workflows often prefer **file artifacts** over graph checkpointing.
10
+
11
+ ## Directory map (functional)
12
+
13
+ | Area | Path / artifact | Role |
14
+ |------|-----------------|------|
15
+ | Profiles | `profiles/<name>/` | Per-agent `SOUL.md`, `config.yaml`, optional local skills, sessions, memories |
16
+ | Registry | `AGENT_DIRECTORY.md` | Human map: uni/meta/project/system/guard/ops groupings |
17
+ | Learner contract | `ADHS_LEARNING_PROFILE.md` | Shared cognitive protocol for uni agents |
18
+ | Global memory | `global_memories/` | Cross-profile `USER.md`, `MEMORY.md` manifests |
19
+ | Profile memory | `profiles/*/memories/` | Scoped recall per role |
20
+ | Messaging | channels in `config.yaml` | Hermes as **reach layer** (async human interface) |
21
+ | Work tracking | `kanban/`, `jobs/`, `cron/` | Operational queues beyond chat |
22
+ | Codebase | `hermes-agent/` | Upstream Hermes CLI/gateway implementation |
23
+ | Hooks | `hooks/`, `agent-hooks/` | Automation at tool/session boundaries |
24
+ | Intake | `intake-router-hermes` profile | Plaud → Drive → register → route (see SOUL) |
25
+
26
+ ## Architecture layers
27
+
28
+ ```mermaid
29
+ flowchart TB
30
+ subgraph Surface["Human surfaces"]
31
+ MSG[Messaging channels]
32
+ IDE[Cursor / Codex]
33
+ VOICE[Plaud voice intake]
34
+ end
35
+
36
+ subgraph Hermes["Hermes core"]
37
+ GW[Gateway + CLI]
38
+ PROF[84 profiles + SOUL]
39
+ CFG[config.yaml policy]
40
+ DEL[Delegation / subagents]
41
+ end
42
+
43
+ subgraph Data["Durable truth"]
44
+ TH[~/TH-Mannheim course trees]
45
+ ART[Projekt artifacts / HAI files]
46
+ KG[Knowledge Graph MCP]
47
+ REG[Intake register]
48
+ end
49
+
50
+ VOICE --> PROF
51
+ MSG --> GW --> PROF
52
+ IDE --> PROF
53
+ PROF --> DEL
54
+ PROF --> Data
55
+ ```
56
+
57
+ ## Delegation & tool policy (from config)
58
+
59
+ - **Orchestrator enabled** with bounded children: `max_concurrent_children: 3`, `max_spawn_depth: 1`, **subagent auto-approve: false** (human/security posture).
60
+ - Default child toolsets: terminal, file, web — enough to execute but not unbounded.
61
+ - **Memory injection**: `memory_enabled`, capped chars (`memory_char_limit` 5000 / user 2500) — intentionally **small** compared to KG + file artifacts; prevents unbounded prompt stuffing.
62
+
63
+ ## How this differs from a framework install
64
+
65
+ | Typical Hermes user | Samuel's install |
66
+ |--------------------|------------------|
67
+ | Few profiles, one channel | **84 profiles**, multi-channel, uni + startup + meta |
68
+ | Default memory | **ADHS learning contract** + explicit "course folder is SoT" |
69
+ | Skills optional | Skills duplicated across Cursor, Claude, Codex, `.agents` (~80+ SKILL.md files total) |
70
+ | MCP ad hoc | **Six Cursor MCPs** + Hermes bridge + intake-router |
71
+
72
+ ## Strengths of the core layout
73
+
74
+ 1. **Separation of transport (Hermes) vs. depth work (Cursor/Codex)** — same profiles, different surfaces.
75
+ 2. **Explicit non-productive agents** (e.g. intake-router) reduce scope creep at the architecture level.
76
+ 3. **AGENT_DIRECTORY** gives addressable taxonomy (`uni/fach/ads`, `meta/new-agent`, `guard-*`).
77
+ 4. **Per-profile state.db / sessions** — isolation between roles.
78
+
79
+ ## Risks / structural debt
80
+
81
+ 1. **Profile sprawl** (84) without automated lifecycle — drift, overlap, stale SOUL.
82
+ 2. **Config monolith** — high cognitive load to change safely; many `.bak` snapshots testify to iterative patching.
83
+ 3. **Multiple sources of truth** (profile memory vs. KG vs. TH-Mannheim vs. intake register) — powerful but easy to desync.
84
+ 4. **Single-maintainer OS** — operational complexity scales with Samuel, not with team size.
85
+
86
+ ## Bottom line
87
+
88
+ Hermes core is Samuel's **message-driven control plane** and **profile runtime**. It is deliberately **artifact- and register-oriented** rather than a typed workflow engine. That choice optimizes for **personal context and boundaries** at the cost of formal reproducibility.
Analyse-July/02-agent-profiles-soul.md ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ > **Hinweis:** Der zugehörige Subagent-Transcript lieferte keine Assistant-Antwort (nur User-Prompt). Dieser Report wurde **direkt aus** `~/.hermes/`, Cursor/Codex-Skills und den fertigen Schwester-Reports rekonstruiert (Stand: Juli 2026).
2
+
3
+ # Agent Profiles & SOUL.md — Identity as Code
4
+
5
+ ## Concept
6
+
7
+ Each Hermes **profile** under `~/.hermes/profiles/<name>/` is a deployable agent identity:
8
+
9
+ - **`SOUL.md`** — constitutional document: role, forbidden actions, pipeline position, output contracts.
10
+ - **`config.yaml`** — model, toolsets, skills preload, channel bindings, local overrides.
11
+ - **Runtime dirs** — `sessions/`, `memories/`, `skills/`, sometimes `workspace/`, `state.db`.
12
+
13
+ **84 profiles** each carry a `SOUL.md` (1:1 mapping). This is far beyond typical "one assistant" setups; it is closer to an **org chart encoded as markdown**.
14
+
15
+ ## Registry vs. filesystem
16
+
17
+ `AGENT_DIRECTORY.md` (May 2026) defines **logical addresses** independent of folder names:
18
+
19
+ | Prefix | Purpose |
20
+ |--------|---------|
21
+ | `uni-*` | TH Mannheim learning; **course folders are source of truth** |
22
+ | `meta-*` | Architecture, new agent design, audits — **no silent production writes** |
23
+ | `project-*` | Product/startup work units |
24
+ | `system-*` | Infra, MCP, deploy, hardware |
25
+ | `guard-*` | Security, regression, admission control |
26
+ | `ops-*` | Execution, integration, observability |
27
+
28
+ Role **classes** (Orchestrator, Specialist, Executor, Reviewer, Surface) prevent ambiguous "general assistant" behavior.
29
+
30
+ ## SOUL.md pattern (example: intake-router-hermes)
31
+
32
+ Strong SOUL files share:
33
+
34
+ 1. **Negative capability** — "Du bist kein produktiver Arbeitsagent" upfront.
35
+ 2. **Pipeline diagram** — where this agent sits in Plaud → Drive → Register → Fachagent.
36
+ 3. **Numeric gates** — e.g. confidence > 0.85 before auto-routing to project folders.
37
+ 4. **Explicit handoff** — task packages to productive agents, never inline execution.
38
+ 5. **Register obligations** — audit trail for routing decisions.
39
+
40
+ This is **governance by prose**, not by LangGraph `interrupt()`. It works because violations are socially/operationally visible to Samuel.
41
+
42
+ ## Shared learner contract
43
+
44
+ `ADHS_LEARNING_PROFILE.md` is referenced across uni profiles. It encodes:
45
+
46
+ - Working-memory limits, retrieval-over-rereading, one-concept sessions.
47
+ - Subject-specific traps (SMK slow, ADS Big-O, ML overconfidence).
48
+ - Session protocol (concrete → generalize → explain-back).
49
+
50
+ Uni SOULs inherit **pedagogical law** separate from Hermes defaults — rare and valuable.
51
+
52
+ ## Meta profiles as immune system
53
+
54
+ - **`meta-new-agent`** — proposes new roles/SOUL boundaries; rollout gated.
55
+ - **`meta-agent-auditor`** — drift, overreach, wrong delegation.
56
+ - **`cognitive-firewall`**, **`decision-control`** — explicit guard personas.
57
+
58
+ This mirrors enterprise **separation of duties**, implemented as markdown.
59
+
60
+ ## Comparison to indie stacks
61
+
62
+ | Indie pattern | Samuel |
63
+ |---------------|--------|
64
+ | Single `CLAUDE.md` / `AGENTS.md` | **84 SOUL files** + directory registry |
65
+ | Role = prompt section | Role = **directory + config + memory partition** |
66
+ | One memory blob | **Per-profile memories** + global + KG |
67
+
68
+ ## What works very well
69
+
70
+ - **Hard boundaries** for intake vs. execution vs. learning coach modes.
71
+ - **Addressable specialists** (`ads`, `dlm`, `hai-agent`) instead of one model pretending.
72
+ - **Meta layer** resists profile cancer — when used.
73
+
74
+ ## What works poorly
75
+
76
+ - **Onboarding cost**: choosing the right profile is expert-level.
77
+ - **Consistency**: 84 SOULs will contradict unless `meta-agent-auditor` runs regularly.
78
+ - **No schema validation** on SOUL structure — quality varies by profile age.
79
+
80
+ ## Recommendations
81
+
82
+ 1. Quarterly **SOUL lint**: meta-auditor checklist (forbidden verbs, missing handoffs).
83
+ 2. **Tier profiles**: Tier-1 (daily), Tier-2 (project), Tier-3 (archive) — reduce active set.
84
+ 3. Template SOUL sections: Identity / Pipeline / May not / Handoff / Register — enforce via `meta-new-agent`.
Analyse-July/03-skills-orchestration.md ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ > **Hinweis:** Der zugehörige Subagent-Transcript lieferte keine Assistant-Antwort (nur User-Prompt). Dieser Report wurde **direkt aus** `~/.hermes/`, Cursor/Codex-Skills und den fertigen Schwester-Reports rekonstruiert (Stand: Juli 2026).
2
+
3
+ # Skills & Orchestration Layer
4
+
5
+ ## What "skills" mean here
6
+
7
+ Skills are **markdown instruction bundles** (`SKILL.md`) loaded by agent hosts to standardize workflows — not Python packages. Samuel maintains **parallel skill forests**:
8
+
9
+ | Location | SKILL.md count (Jul 2026) | Host |
10
+ |----------|---------------------------|------|
11
+ | `~/.codex/skills/` | 24 | Codex CLI orchestrator |
12
+ | `~/.agents/skills/` | 29 | Shared / metaswarm / source-command |
13
+ | `~/.cursor/skills-cursor/` | 18 | Cursor IDE |
14
+ | `~/.claude/skills/` | 10 | Claude Code |
15
+
16
+ Plus **per-profile skills** under `~/.hermes/profiles/*/skills/` and upstream bundles in Hermes config (`skills:`, `curator:` blocks).
17
+
18
+ Orchestration is therefore **polyglot**: the same conceptual workflow (commit, PR shepherd, HAI goal, coursepack) may exist in 2–4 copies with slightly different triggers.
19
+
20
+ ## Orchestration patterns in use
21
+
22
+ ### 1. Hermes delegation graph
23
+
24
+ From `config.yaml`:
25
+
26
+ - Parent agents may spawn children with inherited MCP toolsets.
27
+ - **Concurrency capped** (3 children), depth 1, **no auto-approve** for subagents.
28
+ - Fits **dispatcher → worker** without fully autonomous swarms.
29
+
30
+ ### 2. Codex as integrator
31
+
32
+ Codex skills emphasize: eval, repo audit, resume work, token-freeze handoff, Hermes profile control, cursor worker delegation. Codex is the **default planner/reviewer** that calls Cursor via `cursor_agent` MCP for bounded edits.
33
+
34
+ ### 3. Cursor as executor
35
+
36
+ Cursor rules (`samuel-cursor-workflow.mdc`) enforce: Lernprojekte vs. produktiver Code, MCP usage, no secret leakage. Cursor skills lean UI/automation (canvas, hooks, PR split).
37
+
38
+ ### 4. metaswarm / source-command
39
+
40
+ `.agents/skills/metaswarm-*` implements a **4-phase loop**: implement → validate → adversarial review → commit, with design/plan gates. This is the closest thing to a **formal SDLC agent** in the stack.
41
+
42
+ ### 5. HAI & intake skills
43
+
44
+ `hai-goal-create`, `intake-router`, `coursepack`, `podcast` connect voice/thought capture to **downstream artifacts** — orchestration across Google Drive, NotebookLM, Hermes profiles.
45
+
46
+ ## Flow (simplified)
47
+
48
+ ```mermaid
49
+ flowchart LR
50
+ IDEA[Voice / chat idea]
51
+ INTAKE[intake-router skill/profile]
52
+ HAI[HAI minimize / goal files]
53
+ CODEX[Codex plan + skills]
54
+ CURSOR[Cursor worker MCP]
55
+ MSW[metaswarm PR lifecycle]
56
+ SHIP[Merge / deploy]
57
+
58
+ IDEA --> INTAKE --> HAI --> CODEX --> CURSOR --> MSW --> SHIP
59
+ ```
60
+
61
+ ## Strengths
62
+
63
+ - **Right tool for phase**: Hermes captures, Codex plans, Cursor edits, metaswarm ships.
64
+ - **Skills as reusable playbooks** — faster than re-prompting architecture each session.
65
+ - **Explicit worker rules** for Codex-spawned Cursor agents (scope lock, no drive-by refactors).
66
+
67
+ ## Weaknesses
68
+
69
+ 1. **Skill sprawl / duplication** — drift between Cursor vs Codex vs Claude copies.
70
+ 2. **No central skill registry version** — hard to know canonical skill for a task.
71
+ 3. **Orchestration overload** — parallel sessions (documented pain in framework comparison) when multiple hosts run skills simultaneously.
72
+ 4. **Lernprojekt guardrails** depend on rule compliance — not enforced mechanically.
73
+
74
+ ## Compared to framework orchestration
75
+
76
+ | LangGraph / CrewAI | Samuel skills |
77
+ |--------------------|---------------|
78
+ | Typed graph state | File artifacts + kanban |
79
+ | Checkpoint resume | `resume-interrupted-work`, manual |
80
+ | Single runtime | **4 hosts** sharing conventions |
81
+
82
+ ## Top recommendations
83
+
84
+ 1. **Single index** (`SKILL_REGISTRY.md`) with owner host + deprecation dates.
85
+ 2. Prefer **one canonical skill** per workflow; symlink or generate copies for other hosts.
86
+ 3. Add **completion contracts** (from indie setups report) to personal skills — not only metaswarm issues.
87
+ 4. Cap **parallel orchestrators**: one active planner (Codex *or* Hermes HAI), others queued.
Analyse-July/04-mcp-integrations.md ADDED
@@ -0,0 +1,278 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Samuel's MCP Ecosystem — Integration Architecture
2
+
3
+ ## How External Tools Connect to Agents
4
+
5
+ The stack uses the **Model Context Protocol (MCP)** as a universal adapter. Every integration follows the same pattern:
6
+
7
+ ```mermaid
8
+ flowchart TB
9
+ subgraph hosts["Agent Hosts"]
10
+ Cursor["Cursor IDE Agent"]
11
+ Hermes["Hermes Agent CLI/Gateway"]
12
+ Codex["Codex CLI"]
13
+ end
14
+
15
+ subgraph config["Config Layer"]
16
+ CMCP["~/.cursor/mcp.json"]
17
+ HCFG["~/.hermes/config.yaml"]
18
+ CCfg["~/.codex/config.toml"]
19
+ end
20
+
21
+ subgraph transport["MCP Transport — stdio JSON-RPC"]
22
+ Spawn["Host spawns subprocess"]
23
+ Discover["tools/list → tool schemas"]
24
+ Call["tools/call → JSON result"]
25
+ end
26
+
27
+ subgraph servers["MCP Servers (subprocesses)"]
28
+ KG["knowledge-graph"]
29
+ HermesMCP["hermes mcp serve"]
30
+ GDrive["@modelcontextprotocol/server-gdrive"]
31
+ TH["server-filesystem /TH-Mannheim"]
32
+ HAI["hai-intake"]
33
+ Plaud["plaud-mcp"]
34
+ IR["intake-router (Hermes profile / Codex only)"]
35
+ end
36
+
37
+ subgraph data["Data / Service Plane"]
38
+ GraphML["KnowdledgeGraph stores"]
39
+ Packets["~/.local/share/hai-intake/packets/"]
40
+ Register["intake_register.yaml"]
41
+ GDriveAPI["Google Drive API"]
42
+ MsgGW["Hermes Gateway → Telegram/Discord/Slack/..."]
43
+ PlaudCloud["Plaud Cloud API"]
44
+ end
45
+
46
+ Cursor --> CMCP
47
+ Hermes --> HCFG
48
+ Codex --> CCfg
49
+ CMCP --> Spawn
50
+ HCFG --> Spawn
51
+ CCfg --> Spawn
52
+ Spawn --> Discover --> Call
53
+ Call --> servers
54
+ KG --> GraphML
55
+ HAI --> Packets
56
+ IR --> Register
57
+ GDrive --> GDriveAPI
58
+ HermesMCP --> MsgGW
59
+ Plaud --> PlaudCloud
60
+ TH --> THDir["/home/smlflg/TH-Mannheim"]
61
+ ```
62
+
63
+ **Connection mechanics:**
64
+
65
+ 1. **Config declares a server** — `command` + `args` (+ optional `env`, `cwd`, `timeout`).
66
+ 2. **Host spawns the process** at session start and speaks MCP over **stdin/stdout** (stdio transport). Hermes also supports HTTP/SSE for remote servers via `mcp_tool.py`.
67
+ 3. **Tool discovery** — host calls `tools/list`, caches schemas (Cursor mirrors them under `/home/smlflg/.cursor/projects/home-smlflg/mcps/`).
68
+ 4. **Agent invocation** — LLM emits a tool call; host forwards it via `tools/call`; server returns `TextContent` (usually JSON).
69
+ 5. **No shared runtime** — each MCP server is an isolated subprocess. Data coupling happens only through filesystem paths, APIs, or Hermes state DB.
70
+
71
+ **Three agent hosts, three config files** — same servers are often duplicated with different names:
72
+
73
+ | Server function | Cursor (`mcp.json`) | Hermes (`config.yaml`) | Codex (`config.toml`) |
74
+ |---|---|---|---|
75
+ | Knowledge Graph | `knowledge-graph` | `kopf` | `knowledge_graph_v1` |
76
+ | Intake register | — (not global) | `intake_router` (profile) | `intake-router` |
77
+ | Hermes messaging | `hermes` | — (native tools) | — |
78
+ | Cursor delegation | — | — | `cursor_agent` |
79
+ | HAI packages | `hai-intake` | — | — |
80
+
81
+ ---
82
+
83
+ ## Integration Map by Server
84
+
85
+ ### 1. `knowledge-graph` — Semantic memory layer
86
+
87
+ | Property | Value |
88
+ |---|---|
89
+ | **Config** | `/home/smlflg/.cursor/mcp.json` lines 29–34 |
90
+ | **Process** | `bash -lc "cd …/KnowdledgeGraph && … python -m src.mcp_server"` |
91
+ | **Implementation** | `/home/smlflg/Projekte/IPAI/KnowdledgeGraph/src/mcp_server.py` |
92
+ | **Transport** | stdio, official `mcp` Python SDK |
93
+ | **Tools** | `kg_catalog`, `kg_query`, `kg_entity`, `kg_neighbors`, `kg_stats` |
94
+ | **Data** | 4 registered graphs: `thoughts_pure` (default), `thoughts_ai`, `prompts`, `sessions` |
95
+ | **Upstream** | Plaud transcripts → `data/raw/` → LightRAG builds; agent sessions → `sessions_semantic` graph |
96
+ | **Consumers** | Cursor agents (workflow rule: query before guessing Samuel context), Hermes as `kopf`, Codex as `knowledge_graph_v1`, Kimi |
97
+
98
+ **Design pattern:** Single MCP server, multi-graph routing via `graph` enum. `kg_catalog` is the cheap routing layer before expensive `kg_query`.
99
+
100
+ ---
101
+
102
+ ### 2. `hermes` — Messaging bridge (outbound/inbound)
103
+
104
+ | Property | Value |
105
+ |---|---|
106
+ | **Config** | `command: hermes`, `args: ["mcp", "serve"]` |
107
+ | **Implementation** | `/home/smlflg/.hermes/hermes-agent/mcp_serve.py` (FastMCP) |
108
+ | **Tools** | 10 tools: `conversations_list`, `conversation_get`, `messages_read`, `messages_send`, `channels_list`, `events_poll`, `events_wait`, `attachments_fetch`, `permissions_list_open`, `permissions_respond` |
109
+ | **Backend** | Hermes `SessionDB` + gateway routing index + `send_message_tool` → Telegram, Discord, Slack, WhatsApp, Signal, Matrix |
110
+ | **Role** | Lets **external** MCP clients (Cursor) control Hermes conversations without running the full Hermes agent |
111
+
112
+ **Asymmetric:** Hermes Agent itself uses `mcp_tool.py` as MCP **client** (consumes other servers); `hermes mcp serve` is the reverse — Hermes as MCP **server**.
113
+
114
+ ---
115
+
116
+ ### 3. `gdrive` — Cloud file read/search
117
+
118
+ | Property | Value |
119
+ |---|---|
120
+ | **Config** | `npx -y @modelcontextprotocol/server-gdrive` + OAuth creds in `~/.hermes/` |
121
+ | **Tools exposed to Cursor** | `search` only (descriptor cached) |
122
+ | **Also available** | MCP **resources** (`gdrive:///fileId`) for list/read — not surfaced as named tools |
123
+ | **Policy** | Workflow rule: search/read only; no upload/delete/share |
124
+ | **Used by** | Cursor globally; Hermes main + intake-router profile; intake pipeline (Plaud folder `1Lii9ILFarnqX8_RMxjn2qwoOeGup6VfT`) |
125
+
126
+ ---
127
+
128
+ ### 4. `th_mannheim_files` — University filesystem
129
+
130
+ | Property | Value |
131
+ |---|---|
132
+ | **Config** | `npx @modelcontextprotocol/server-filesystem /home/smlflg/TH-Mannheim` |
133
+ | **Tools** | Full filesystem MCP: read, write, edit, move, search, directory tree, media |
134
+ | **Scope** | Sandboxed to `/home/smlflg/TH-Mannheim` |
135
+ | **Note** | **Write-capable** despite being used mainly for course material access — agents can modify files if they call `write_file` |
136
+
137
+ ---
138
+
139
+ ### 5. `hai-intake` — Desktop session packages (read-only MCP)
140
+
141
+ | Property | Value |
142
+ |---|---|
143
+ | **Config** | `python3 -m meine_app.mcp_server` from `/home/smlflg/Projekte/meine-linux-app` |
144
+ | **Implementation** | `/home/smlflg/Projekte/meine-linux-app/src/meine_app/mcp_server.py` |
145
+ | **Tools** | `list_packages`, `get_package_manifest`, `read_package_text`, `validate_package`, `export_package_markdown` |
146
+ | **Data** | `~/.local/share/hai-intake/packets/` (+ legacy `meine-linux-app/packages/`) |
147
+ | **GTK app** | Same project; MCP is separate process, not embedded in GTK |
148
+ | **Distinction** | **Not** the intake register — this is structured desktop capture packages |
149
+
150
+ ---
151
+
152
+ ### 6. `plaud` — Plaud Cloud API (currently broken)
153
+
154
+ | Property | Value |
155
+ |---|---|
156
+ | **Config** | `"command": "plaud-mcp"` |
157
+ | **Expected package** | [plaud-tools](https://github.com/massive-value/plaud-tools) (`pip install plaud-tools`) |
158
+ | **Cursor status** | `/home/smlflg/.cursor/projects/home-smlflg/mcps/user-plaud/STATUS.md` → **"The MCP server errored"** |
159
+ | **Evidence** | No `plaud-mcp` binary found under `~/.local/bin`; no `plaud-tools` install detected |
160
+ | **Intended role** | Direct Plaud Cloud search/transcript access for agents (parallel to Drive sync path) |
161
+
162
+ ---
163
+
164
+ ### 7. `hai-intake` vs `intake-router` — Two intake layers
165
+
166
+ These are **different systems** often confused:
167
+
168
+ ```mermaid
169
+ flowchart LR
170
+ PlaudHW["Plaud NotePin"] --> Zapier --> GDrive["GDrive Intake Folder"]
171
+ GDrive --> IRAgent["intake-router-hermes\n(Hermes profile agent)"]
172
+ IRAgent --> Register["intake_register.yaml\nIR-2026-NNNN entries"]
173
+ Register --> IRMCP["intake-router MCP\n(read-only register)"]
174
+
175
+ PlaudHW --> Zapier
176
+ GDrive --> HAISync["HAI GTK: Plaud Sync"]
177
+ HAISync --> Inbox["plaud-inbox/"]
178
+ Inbox --> HAIPkg["Session packages\npackets/"]
179
+ HAIPkg --> HAIMCP["hai-intake MCP"]
180
+
181
+ Desktop["Desktop capture\n(text/mic/images)"] --> HAIPkg
182
+
183
+ Transcripts["data/raw/"] --> KGBuild["KnowdledgeGraph build"]
184
+ KGBuild --> KGMCP["knowledge-graph MCP"]
185
+ ```
186
+
187
+ | Layer | MCP name | Where configured | Purpose |
188
+ |---|---|---|---|
189
+ | **Async voice routing** | `intake-router` / `intake_router` | Hermes profile + Codex; **not** in global Cursor `mcp.json` | Query Samuel's already-processed voice thoughts (`get_context_package`) |
190
+ | **Desktop packages** | `hai-intake` | Cursor `mcp.json` | Read saved HAI session input packages |
191
+ | **Deep semantic memory** | `knowledge-graph` | Cursor + Hermes + Codex | GraphRAG over transcripts, sessions, prompts |
192
+
193
+ **intake-router tools** (13 when connected): `query_intakes`, `get_context_package`, `get_intake_details`, `list_intakes`, `get_latest_intakes`, `get_intake_folder`, `search_full_text`, `find_folder`, `list_project_roots`, plus resource/prompt wrappers.
194
+
195
+ ---
196
+
197
+ ## Extended Stack (not in Cursor `mcp.json` but part of agentic fabric)
198
+
199
+ | Bridge | Host | Role |
200
+ |---|---|---|
201
+ | `cursor-agent-mcp` | Codex | Delegates work to Cursor Agent CLI (`start_task`, `handoff`) |
202
+ | `hai_agent` | Codex | HAI agent bridge |
203
+ | `opencode` / `gemini` | Codex + Hermes | External model/tool bridges |
204
+ | `notebooklm-mcp` | Codex | Podcast/study material generation |
205
+ | `cursor-ide-browser` | Cursor plugins | Browser automation CDP |
206
+ | Plugin MCPs | Cursor | Cloudflare, Datadog, Notion, Figma (mostly auth-gated SaaS) |
207
+
208
+ ---
209
+
210
+ ## Quality Assessment
211
+
212
+ ### Strengths
213
+
214
+ | Area | Rating | Notes |
215
+ |---|---|---|
216
+ | **Architecture clarity** | Strong | Clean separation: capture (HAI/Plaud) → routing (intake-router) → memory (KG) → action (Hermes messaging, Cursor coding) |
217
+ | **knowledge-graph MCP** | Strong | Well-designed multi-graph registry, `kg_catalog` routing, read-only, tested (`tests/`), consumed by 3 hosts |
218
+ | **hai-intake MCP** | Good | Strict read-only, clear tool surface, pytest coverage, decoupled from GTK |
219
+ | **Hermes MCP bridge** | Good | Mature 10-tool surface matching OpenClaw; connects to real gateway state |
220
+ | **Security posture** | Good | OAuth secrets in `~/.hermes/`; workflow rules constrain gdrive/hermes; hai-intake read-only |
221
+ | **Hermes MCP client** | Excellent | `mcp_tool.py` (~5k lines): stdio/HTTP/SSE, OAuth, reconnect, tool filtering, parallel safety |
222
+
223
+ ### Weaknesses / Risks
224
+
225
+ | Issue | Severity | Detail |
226
+ |---|---|---|
227
+ | **plaud MCP down** | High | Configured in Cursor but server errors; `plaud-mcp` likely not installed |
228
+ | **Config fragmentation** | Medium | Same KG server named `knowledge-graph` / `kopf` / `knowledge_graph_v1` across 3 configs; drift risk |
229
+ | **intake-router not in Cursor global** | Medium | Skill references `mcp__intake-router__*` but it's absent from `~/.cursor/mcp.json`; only available via Codex or Hermes profile |
230
+ | **intake_router connection instability** | Medium | Hermes logs show repeated `Connection closed` on startup (Jun–Jul 2026), though eventual success with 13 tools |
231
+ | **KG_WORKING_DIR stale** | Low | Cursor `mcp.json` exports `KG_WORKING_DIR=rag_pure` but multi-graph `mcp_server.py` largely ignores it per-graph; historical bug noted in `FOR_SMLFLG.md` |
232
+ | **th_mannheim write access** | Low–Medium | Full write tools available; no read-only variant for Lernprojekt mode |
233
+ | **gdrive tool surface** | Low | Only `search` visible as tool; resources exist but agents may not discover them without MCP resource APIs |
234
+ | **Duplicate intake-router impl** | Low | Both `intake_router_fastmcp.py` (active) and legacy `intake_router_server.py` coexist |
235
+ | **Subprocess overhead** | Low | Each MCP = separate process; KG queries can be slow (LightRAG + 148MB sessions graph lazy-load) |
236
+
237
+ ### Maturity by Server
238
+
239
+ ```
240
+ knowledge-graph ████████░░ 8/10 — production-grade, multi-graph, documented
241
+ hai-intake ███████░░░ 7/10 — solid read-only API, tested
242
+ hermes bridge ███████░░░ 7/10 — feature-complete, policy-sensitive
243
+ gdrive ██████░░░░ 6/10 — works, search-only tools, OAuth fragility
244
+ th_mannheim ██████░░░░ 6/10 — standard upstream server, write-capable
245
+ intake-router █████░░░░░ 5/10 — valuable but host-fragmented, flaky connects
246
+ plaud ██░░░░░░░░ 2/10 — configured but non-functional
247
+ ```
248
+
249
+ ---
250
+
251
+ ## Recommended Mental Model
252
+
253
+ Samuel's agentic stack has **three memory tiers** accessed via MCP:
254
+
255
+ 1. **Hot structured intake** — `intake-router` register (keyword/context packages from routed Plaud notes)
256
+ 2. **Session packages** — `hai-intake` (desktop-curated input bundles tied to projects)
257
+ 3. **Deep knowledge** — `knowledge-graph` (semantic graphs: thoughts, prompts, agent sessions)
258
+
259
+ Plus **two action planes**:
260
+
261
+ - **Files/cloud** — `th_mannheim_files`, `gdrive`
262
+ - **Human comms** — `hermes` messaging bridge
263
+
264
+ **Agent-to-agent delegation** (Codex → Cursor) sits outside this MCP set via `cursor-agent-mcp`, completing the loop.
265
+
266
+ ---
267
+
268
+ ## Top Fixes (informational — Ask mode)
269
+
270
+ 1. **Repair plaud:** `pip install plaud-tools`, verify `plaud-mcp` on PATH, configure credentials per plaud-tools docs.
271
+ 2. **Add `intake-router` to `~/.cursor/mcp.json`** if Cursor agents should follow the intake-router skill natively (already in Codex config).
272
+ 3. **Unify naming:** pick one name (`knowledge-graph`) across Cursor/Hermes/Codex configs.
273
+ 4. **Remove stale `KG_WORKING_DIR` export** from Cursor config — multi-graph server makes it misleading.
274
+ 5. **Consider read-only filesystem MCP** for TH-Mannheim during Lernprojekte, or tool `exclude: [write_file, move_file, edit_file]` in Hermes policy.
275
+
276
+ If you want, I can draft the exact config harmonization or a health-check script — switch to Agent mode for that.
277
+
278
+ [REDACTED]
Analyse-July/05-memory-knowledge.md ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ > **Hinweis:** Der zugehörige Subagent-Transcript lieferte keine Assistant-Antwort (nur User-Prompt). Dieser Report wurde **direkt aus** `~/.hermes/`, Cursor/Codex-Skills und den fertigen Schwester-Reports rekonstruiert (Stand: Juli 2026).
2
+
3
+ # Memory & Knowledge Architecture
4
+
5
+ ## Three-tier memory model
6
+
7
+ Samuel's stack deliberately **splits memory by purpose** instead of one vector DB:
8
+
9
+ | Tier | Mechanism | What it stores | Authority |
10
+ |------|-----------|----------------|-----------|
11
+ | **A. Course / project files** | `~/TH-Mannheim/`, project repos, HAI markdown | Durable learning & shipping truth | **Highest** for uni + code |
12
+ | **B. Knowledge Graph MCP** | LightRAG-style stores via `knowledge-graph` MCP | Session ingestion, thoughts, cross-project links | **Exploratory / recall** |
13
+ | **C. Hermes profile memory** | `memory:` in config + `memories/`, `global_memories/` | Short user profile snippets, nudges | **Low caps** (5k/2.5k chars) |
14
+
15
+ Plus **intake register** (voice → structured records) and **Plaud/hai-intake MCP** for packet-oriented context.
16
+
17
+ ## Hermes built-in memory (config)
18
+
19
+ ```yaml
20
+ memory_enabled: true
21
+ user_profile_enabled: true
22
+ memory_char_limit: 5000
23
+ user_char_limit: 2500
24
+ ```
25
+
26
+ Design signal: Hermes memory is a **lightweight personalization layer**, not the cognitive substrate. Heavy context is expected from **files + MCP**.
27
+
28
+ `global_memories/` holds shared `USER.md` / `MEMORY.md` style manifests — copy-only backups exist, suggesting careful migration history.
29
+
30
+ ## Knowledge Graph MCP (Cursor)
31
+
32
+ Registered in `~/.cursor/mcp.json` as `knowledge-graph`. Used when Samuel/context is unclear — query before guessing (per cursor workflow rule). Ingestion paths include agent sessions, folders, prompts DB (per kg skill docs).
33
+
34
+ **Strength:** cross-session **associative recall** without stuffing prompts.
35
+ **Risk:** graph quality depends on ingestion hygiene; stale nodes if not curated.
36
+
37
+ ## Intake & voice memory
38
+
39
+ `intake-router-hermes` maintains a **routing register** with structured fields (topics, projects, urgency, confidence). `get_context_package` style tools bridge Plaud transcripts to agents.
40
+
41
+ This is **event-sourced personal memory** — optimized for "what did I say about project X?" rather than embedding search alone.
42
+
43
+ ## Uni learning rule (critical)
44
+
45
+ From `AGENT_DIRECTORY.md`:
46
+
47
+ > Source of Truth ist `~/TH-Mannheim/`, **nicht Profilmemory**.
48
+
49
+ Fach agents must not substitute chat memory for coursework. This prevents **confident hallucination of lecture content** — a common failure mode in student agent setups.
50
+
51
+ ## ADHS profile as meta-memory
52
+
53
+ `ADHS_LEARNING_PROFILE.md` acts as **procedural memory** — how to teach Samuel — loaded fresh each message. It is not factual storage but strongly shapes retrieval prompts and session shape.
54
+
55
+ ## Gaps vs. GBrain / OneBrain indie pattern
56
+
57
+ Indie "second brain" setups often run **overnight enrichment** (66 cron jobs in GBrain lore). Samuel has cron/kanban infrastructure but **less autonomous memory consolidation** while asleep.
58
+
59
+ ## Strengths
60
+
61
+ - Clear **authority hierarchy** (course folders > register > KG > profile memory).
62
+ - MCP makes memory **tool-addressable** from Cursor and Hermes.
63
+ - Intake pipeline captures **pre-artifact thoughts** that would otherwise die in voice notes.
64
+
65
+ ## Weaknesses
66
+
67
+ 1. **Synchronization** — same fact may exist in KG, register, and a project README with no single merge.
68
+ 2. **No unified query UI** — Samuel must know *which* tier to query.
69
+ 3. **Profile memory caps** can truncate nuance unless flushed to files (depends on discipline).
70
+ 4. **Checkpointing disabled** in HAI flows — memory of *in-progress reasoning* lives in chat logs, not resumable state machines.
71
+
72
+ ## Recommendations
73
+
74
+ 1. Nightly **register → KG** promotion job for high-confidence intake rows only.
75
+ 2. Tag KG nodes with **authority level** metadata (course / project / thought).
76
+ 3. Weekly **memory audit** skill: find contradictions between USER.md and project STATE files.
77
+ 4. Borrow **completion + consolidation cron** from indie setups — one job, not 66.
Analyse-July/06-compare-frameworks.md ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Hermes/HAI vs Mainstream Agent Frameworks (2025–2026)
2
+
3
+ > Quelle: Subagent [Framework-Vergleich](d58ef0d5-9234-4a4f-b604-00377b1af562)
4
+
5
+ Samuel's stack is best understood as a **personal AI operating system**, not a reusable framework. It combines **Hermes profiles** (50+ role-specialized agents), **SOUL.md** identity contracts, **skills** as orchestration scripts, **MCP bridges** to personal data, and **HAI** as the human-facing decision/execution layer. The "agentische Sanduhr" model splits intake (top pyramid) → human decision surface (middle) → execution (bottom pyramid).
6
+
7
+ ---
8
+
9
+ ## Comparison Table
10
+
11
+ | Dimension | **Samuel Hermes/HAI** | **LangGraph** | **CrewAI** | **AutoGen** | **OpenAI Agents SDK** |
12
+ |---|---|---|---|---|---|
13
+ | **Architecture** | Profile-per-role OS: global `SOUL.md` + per-profile `SOUL.md`, `config.yaml`, skills, hooks. HAI = planner → executor → validator chain. Intake-router, KG, Codex/Cursor as worker lanes. "Two pyramids" sanduhr model. | **Graph**: typed `State` + `Nodes` + `Edges`. Pregel-style supersteps. Subgraphs for multi-agent. | **Dual layer**: Crews (autonomous role teams) + Flows (event-driven orchestration with `@start`/`@listen`/`@router`). Standalone since v1.0 (no LangChain). | **Layered actor model** (Core → AgentChat → Extensions). Async message-passing agents. **Maintenance mode** — successor is **Microsoft Agent Framework** (typed graph `Workflow`). | Minimal primitives: agent loop, handoffs, `Agent.as_tool()`, sessions. Thin runtime over Responses API. |
14
+ | **State** | **File artifacts** in `Projek-Managment/`: `PROJECT_STATE.md`, `BRIEFING.md`, `NEXT_STEP.md`, execution/validation reports. Lossless archives (`archive/next_steps/`, `NEXT_STEP_HISTORY.md`). Profile memory + KG MCP. Checkpoints disabled in HAI config. | **First-class typed state** with reducers (`operator.add` for messages). **Checkpointers** (Memory/SQLite/Postgres) per `thread_id`. Time-travel, replay, resume. | Flow state: dict or Pydantic model. `@persist` decorator for snapshots. Crew memory hierarchy. | Event-sourced message history in runtime. MAF adds graph-based workflow state with superstep checkpointing. | `RunState` serializable to JSON. Sessions, `conversationId`, `previousResponseId` strategies. Durable pause/resume boundary. |
15
+ | **Tool use** | Per-profile **toolsets** (terminal, file, skills, MCP). MCP: Gemini, Knowledge Graph (`kopf`), Hermes bridge, gdrive, plaud, hai-intake. **Tirith** security gate. Skills gate which tools run when. External lanes: OpenCode, Cursor Composer, Codex. | Native tool nodes in graph. MCP via LangChain ecosystem. `interrupt()` inside tool functions for approval. | Per-agent tools + LiteLLM model routing. MCP/A2A support in recent versions. Tool abstractions owned by CrewAI. | Tool execution via agent chat + extensions. MAF adds hosted tools, middleware, conversation threads. | Built-in tool loop. `needsApproval` on tools. Hosted MCP tools. Guardrails. Sandbox agents for file workspaces. |
16
+ | **Human-in-the-loop** | **Constitutional, not mechanical**: Samuel's autonomy > agent judgment. Explicit gates for commit/push/deploy/destructive/auth. HAI compresses decisions (recommended default + max 2 alternatives). `hai-minimize` reduces cognitive load. Feierabend stop. No programmatic interrupt/resume API. | `interrupt(value)` + `Command(resume=...)`. Checkpointer mandatory. Approve/reject/edit tool calls. `interrupt_before`/`after` compile-time breakpoints. Production-grade pause for days/months. | Human feedback gates in Flows. `@persist` for pause/resume. Role-based delegation with manager agent in hierarchical process. | Observation/control affordances in event runtime. MAF inherits enterprise HITL patterns from Semantic Kernel. | **Native approval flow**: `RunResult.interruptions` → `state.approve()`/`reject()` → `Runner.run(agent, state)`. Works across handoffs and nested `as_tool()`. |
17
+ | **Samuel does better** | • Deep **personal context** (ADHS profile, uni, startup, voice intake → projects) • **Role hardening** via SOUL boundaries, not just prompts • **Decision compression** (HAI minimize, default recommendation) • **Audit trail** (artifact chain, capability ledger, lossless archives) • **Multi-channel OS** (Telegram/Discord/WhatsApp/Slack + TTS/STT) • **Meta-governance** (`meta-new-agent` reviews new profiles) • **Life-domain specialization** (50+ profiles: uni, calendar, intake, HAI) | — | — | — | — |
18
+ | **Samuel does worse** | • No typed graph or formal state machine • No checkpoint/resume API (manual file state) • **Operational complexity** (profile sprawl, parallel-session overload — documented bottleneck) • Not portable/distributable • Weaker testability & reproducibility • Single-maintainer burden • No enterprise observability/tracing out of the box | • Generic — no personal context layer • Steeper graph design learning curve • Less "human decision UX" by default | • Role metaphor can hide scope creep • Production patterns still require Flow wrapping • Less personal-OS integration | • **Effectively frozen** — new work → MAF • Distributed runtime still experimental • Conversation-centric, less artifact-oriented | • OpenAI-centric • Less multi-profile identity model • No built-in intake/life-OS layer • Sessions ≠ project artifact governance |
19
+
20
+ ---
21
+
22
+ ## Bottom Line
23
+
24
+ Samuel's stack is **stronger as a personal cognitive prosthesis** — context, boundaries, decision load, and auditability are first-class. Frameworks are **stronger as engineering substrates** — typed state, interrupt/resume, scale, and ecosystem.
25
+
26
+ The documented HAI bottleneck (execute phase + parallel session overload) is exactly where LangGraph-style checkpointing and Flow-level orchestration would help — but migrating SOUL/profile/artifact semantics into a framework would lose much of what makes the personal OS work.
Analyse-July/07-compare-indie-setups.md ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Personal Agent Stacks: What Geeks Do in 2025–2026 vs. Your Stack
2
+
3
+ The landscape has fractured since late 2025. It's no longer "pick one agent" — it's **harness + memory + channels + cron + coding tools**, with OpenClaw/Hermes on one pole and terminal-first Claude Code on the other. Your stack is unusually sophisticated on the **software-delivery** side; most power users are ahead on **always-on autonomous ops** and **structured memory at scale**.
4
+
5
+ ---
6
+
7
+ ## The Landscape (condensed)
8
+
9
+ | Pattern | Representative setups | Core idea |
10
+ |---|---|---|
11
+ | **Always-on gateway** | [OpenClaw](https://github.com/openclaw/openclaw), [ClaudeClaw](https://github.com/moazbuilds/claudeclaw) | Daemon on Mac Mini/VPS, 23+ messaging channels, cron/heartbeat, skills marketplace |
12
+ | **Terminal harness** | Claude Code, [Pi](https://pi.dev/) | `CLAUDE.md` + skills + MCP; plan mode, agent teams, worktrees |
13
+ | **Production brain** | [GBrain](https://github.com/garrytan/gbrain) (Garry Tan) | Markdown → self-wiring entity graph, overnight enrichment, gap analysis, 60+ cron jobs |
14
+ | **Second brain** | [OneBrain](https://github.com/onebrain-ai/onebrain), [obsidian-second-brain](https://github.com/pndeg/obsidian-second-brain), Karpathy LLM Wiki | Obsidian vault as durable truth; scheduled vault maintenance |
15
+ | **Multi-agent ops** | [Rex Liu's 6-agent system](https://rexliu.io/posts/700-sessions-blueprint/), [super-agent](https://github.com/jgardet/super-agent) | Channel-per-agent routing, completion contracts, governance layers |
16
+ | **Coding orchestration** | Cursor + Codex + Claude Code worktrees | One agent per layer: think / edit / execute / merge |
17
+ | **Business automation** | [Indie Hackers "ClaudeClaw business"](https://www.indiehackers.com/post/i-built-an-autonomous-ai-agent-that-runs-my-entire-business-heres-the-stack-010d32017d) | $11/mo VPS runs newsletter + SaaS + social with zero daily intervention |
18
+
19
+ Notable: **Garry Tan runs GBrain behind both OpenClaw and Hermes** — you're already in the same ecosystem family as the most cited "production brain" setup, but with your own KG instead of GBrain.
20
+
21
+ ---
22
+
23
+ ## Your Stack (mapped)
24
+
25
+ ```
26
+ Voice (Plaud) ──► intake-router-hermes ──► Intake Register
27
+ │
28
+ Hermes MCP ◄── messaging bridge (Telegram/Discord/…) ──► you
29
+ │
30
+ Cursor ◄── rules, skills, MCPs ──► coding agent (interactive)
31
+ │
32
+ ├── Codex (worker/orchestrator, scoped tasks)
33
+ ├── knowledge-graph MCP (LightRAG, Qwen, session ingestion)
34
+ ├── metaswarm (issue → design gate → code → PR shepherd)
35
+ ├── GSD (phase research/plan/execute/verify)
36
+ ├── Council, HAI intake, coursepack, podcast, …
37
+ └── TH Mannheim, gdrive MCPs
38
+ ```
39
+
40
+ This is a **hybrid**: Hermes for reach + intake, Cursor/Codex for depth, metaswarm for shipping, custom KG for memory.
41
+
42
+ ---
43
+
44
+ ## What Other Geeks Do That You Don't (or do less)
45
+
46
+ ### 1. Always-on daemon + cron fleet
47
+ **Pattern:** Mac Mini M4 or VPS running OpenClaw/ClaudeClaw 24/7 with 15–66 scheduled jobs.
48
+
49
+ [Rex Liu](https://rexliu.io/posts/700-sessions-blueprint/) runs 19 crons (thinking loops, morning briefings, alpha radar, content drafts). [GBrain](https://github.com/garrytan/gbrain) documents 66 autonomous cron jobs — enrichment, citation repair, memory consolidation overnight.
50
+
51
+ **You:** Hermes as messaging bridge + intake-router, but no evidence of a comparable **autonomous overnight fleet** (content, enrichment, health checks while sleeping).
52
+
53
+ ### 2. Completion contracts (hard "done" definitions)
54
+ **Pattern:** Every spawned task ships with explicit conditions — file path, quality score, zero fabrication, PR-not-push.
55
+
56
+ Rex Liu's unlock after 700 sessions: agents don't know when they're *done*, only when tokens feel done. Contracts fix that.
57
+
58
+ **You:** metaswarm has acceptance criteria for **GitHub issues**, but personal/Hermes tasks likely lack the same rigor.
59
+
60
+ ### 3. GBrain-style production brain
61
+ **Pattern:** Entity graph (people, companies, meetings), hybrid retrieval, gap analysis ("what you don't know yet"), dream-cycle overnight consolidation, 146k+ pages at Garry Tan scale.
62
+
63
+ **You:** Custom LightRAG + Qwen KG with session/prompt ingestion and `thoughts_pure` mode — strong and personalized, but missing:
64
+ - automatic entity enrichment (people/companies from mentions)
65
+ - overnight citation repair / memory consolidation cron
66
+ - gap analysis as first-class retrieval primitive
67
+ - thin-client remote brain (`gbrain connect`)
68
+
69
+ ### 4. Lean routing table vs. encyclopedic config
70
+ **Pattern:** AGENTS.md as **75-line routing table**, not 209-line rulebook. Agents read only rules relevant to current task.
71
+
72
+ Rex Liu: context overflow caused agents to hallucinate rules meant for other agents. Fix: slash config, route by task type.
73
+
74
+ **You:** Rich `.cursor/rules`, many skills — powerful but risk of **context bloat** and cross-contamination unless actively pruned.
75
+
76
+ ### 5. Taste extraction from your edits
77
+ **Pattern:** Diff original draft vs. your edit → extract voice rules (#13: bullet lists not paragraphs, #18: concrete product names).
78
+
79
+ **You:** Intake-router captures *what you said*; less evidence of systematic *learning from what you changed*.
80
+
81
+ ### 6. Full business automation on cheap infra
82
+ **Pattern:** [Indie Hacker runs 3 products on $11/mo](https://www.indiehackers.com/post/i-built-an-autonomous-ai-agent-that-runs-my-entire-business-heres-the-stack-010d32017d) — scrape, score, newsletter, blog, social, zero daily ops.
83
+
84
+ **You:** Dev/knowledge/university focused, not revenue-automation focused.
85
+
86
+ ### 7. Container / sandbox isolation
87
+ **Pattern:** [sbusso/claudeclaw](https://github.com/sbusso/claudeclaw) (NanoClaw lineage) — kernel-level sandbox, <10ms cold start, domain allowlists. [NanoClaw](https://dev.to/talon8575/openclaw-vs-claude-code-vs-claudeclaw-which-ai-agent-setup-should-you-use-in-2026-4b6f) for container isolation.
88
+
89
+ **You:** Full shell access, real environment — more power, less isolation.
90
+
91
+ ### 8. Cross-tool `AGENTS.md` standard
92
+ **Pattern:** [AGENTS.md spec (2026)](https://www.morphllm.com/agents-md-guide) — one file read by 30+ agents (Codex, Cursor, Devin, Jules…). Claude Code imports via `@AGENTS.md`.
93
+
94
+ **You:** Cursor rules + per-tool skills; less universal cross-agent instruction file.
95
+
96
+ ### 9. Obsidian as scheduled living vault
97
+ **Pattern:** [obsidian-second-brain](https://github.com/pndeg/obsidian-second-brain) — 4 scheduled agents (nightly close, weekly review, contradiction sweep, vault health). AI-first note format with `## For future Claude` preambles.
98
+
99
+ **You:** KG + intake register, but no Obsidian vault with scheduled self-maintenance.
100
+
101
+ ### 10. X/Twitter engagement loops
102
+ **Pattern:** [x-agent](https://github.com/Recusive/x-agent) — watchlist polling, algorithm-scored reply drafts, browser posting to bypass API restrictions.
103
+
104
+ **You:** No comparable social engagement agent.
105
+
106
+ ### 11. Governance / risk classification
107
+ **Pattern:** [super-agent](https://github.com/jgardet/super-agent) — LOW/MEDIUM/HIGH/CRITICAL risk tiers, approval gates, SHA-256 audit trail.
108
+
109
+ **You:** metaswarm has design/security gates for **code**, not general agent action governance.
110
+
111
+ ### 12. Extreme minimalism (Pi philosophy)
112
+ **Pattern:** [Pi](https://pi.dev/) — 4 tools, no plan mode, no sub-agents; you build what you need via extensions. Anti-bloat.
113
+
114
+ **You:** Opposite end — maximal skill surface. Trade-off: capability vs. maintenance burden.
115
+
116
+ ---
117
+
118
+ ## What You Do That Most Geeks Don't
119
+
120
+ ### 1. metaswarm / BEADS — issue-to-merge pipeline
121
+ 12+ specialized agents (PM, Architect, Designer, Security, CTO, Coder, PR Shepherd, Release Engineer) with **parallel design review gates** and adversarial plan review before a line of code.
122
+
123
+ Most personal setups stop at "spawn a coder subagent." Almost nobody has **production-grade PR lifecycle orchestration** as a personal skill.
124
+
125
+ ### 2. Cursor ↔ Codex worker split
126
+ Explicit **scoped coding worker** pattern: Codex as limited executor under Cursor orchestration, with write-root constraints and no autonomous commits/deploys.
127
+
128
+ Power users run Cursor + Codex in parallel worktrees, but your **Codex-as-worker-via-MCP** is more architected than typical.
129
+
130
+ ### 3. Intake-router ("don't make me repeat myself")
131
+ Plaud → Zapier → Drive → Hermes agent → searchable `IR-2026-NNNN` register with **"query register before asking Samuel"** as iron rule.
132
+
133
+ GBrain ingests voice; OneBrain has memory tiers — but your **anti-repetition intake protocol** wired into agent behavior is unusually personal and practical.
134
+
135
+ ### 4. Custom KG pipeline (not off-the-shelf)
136
+ LightRAG + Qwen (4-key rotation) + bge-m3, modes (`pure`/`ai`/`raw`), deterministic **agent-session → graph** builder, prompts.db adapter, MCP consumption.
137
+
138
+ More **engineered and multi-source** than typical "install GBrain/OneBrain" paths.
139
+
140
+ ### 5. Dual-mode workflow (Lernprojekte vs. Produktiv)
141
+ Explicit rule: stepwise teaching for university work, plan→small-change→test for product code. Most geeks have one mode.
142
+
143
+ ### 6. University + life integration
144
+ TH Mannheim filesystem MCP, coursepack → NotebookLM, gdrive read-only — **domain-specific plumbing** rare in generic indie-hacker posts.
145
+
146
+ ### 7. Council of thinkers
147
+ Multi-persona deliberation (Socrates, Taleb, Meadows, …) as a first-class skill — novelty, not common in any surveyed setup.
148
+
149
+ ### 8. GSD phased development
150
+ Research → plan → execute → verify → Nyquist validation — structured long-horizon project methodology beyond "just use plan mode."
151
+
152
+ ### 9. Plaud MCP + CLI dual path
153
+ Both `plaud-mcp` (chat access) and intake automation — newer than most documented Plaud workflows (Plaud CLI/MCP launched ~2026).
154
+
155
+ ### 10. Cross-session knowledge from agent transcripts
156
+ `src.sessions.build_t0` — deterministic graph from Claude/Codex/Hermes/OpenCode sessions. Meta-memory most setups lack.
157
+
158
+ ---
159
+
160
+ ## Side-by-side Summary
161
+
162
+ | Dimension | Typical power user | You (Samuel) |
163
+ |---|---|---|
164
+ | Always-on ops | ✅ OpenClaw daemon + 15–66 crons | ⚠️ Hermes bridge, less cron fleet |
165
+ | Messaging reach | ✅ 23 channels via OpenClaw | ✅ Hermes multi-platform |
166
+ | Memory / brain | GBrain or Obsidian vault | Custom LightRAG KG + intake register |
167
+ | Voice → action | Plaud → Obsidian/CRM pipeline | Plaud → intake-router → register |
168
+ | Coding | Claude Code terminal OR Cursor | **Cursor + Codex worker + metaswarm** |
169
+ | Shipping code | "Create PR, don't push" | **Full issue→gate→PR shepherd** |
170
+ | Personalization | CLAUDE.md + taste rules | Skills + intake + KG + Council |
171
+ | Autonomous business | Newsletter/SaaS on $11 VPS | Not a focus |
172
+ | Isolation | Containers/sandbox | Full shell (more power, less safe) |
173
+ | Config style | Lean 75-line routing table | Rich rules + many skills |
174
+
175
+ ---
176
+
177
+ ## Highest-signal gaps (if you want to close them)
178
+
179
+ 1. **Completion contracts** for Hermes/personal tasks — steal Rex Liu's pattern; costs nothing.
180
+ 2. **Overnight cron** — even 2–3 jobs (intake sweep, KG staleness check, morning briefing) would match the "wake up smarter" GBrain promise without replacing your KG.
181
+ 3. **AGENTS.md** at repo/home level — unify Cursor/Codex/Hermes instructions; import into `CLAUDE.md` where needed.
182
+ 4. **Config pruning cadence** — monthly review of rules/skills like Rex Liu's "pull the weeds."
183
+ 5. **GBrain eval, not necessarily adoption** — your KG is custom; GBrain's entity enrichment + gap analysis are the features worth studying, not necessarily migrating.
184
+
185
+ ---
186
+
187
+ ## Bottom line
188
+
189
+ **You're ahead** on software engineering orchestration (metaswarm, Codex worker, design gates, session→KG) and personal context plumbing (intake-router, university MCPs, dual-mode workflow).
190
+
191
+ **You're behind** on autonomous always-on operations (cron fleets, overnight enrichment, business automation) and operational discipline (completion contracts, lean routing tables, taste extraction, sandbox isolation).
192
+
193
+ The interesting overlap: you and Garry Tan share **Hermes** as a deployment target — he added GBrain as the brain layer; you built your own. That's the main architectural fork in the 2026 geek stack: **buy/integrate a production brain (GBrain/OneBrain) vs. engineer your own (your LightRAG pipeline)**. Your path is more customized; his is more battle-tested at scale.
194
+
195
+ [REDACTED]
Analyse-July/08-strengths.md ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ > **Hinweis:** Der zugehörige Subagent-Transcript lieferte keine Assistant-Antwort (nur User-Prompt). Dieser Report wurde **direkt aus** `~/.hermes/`, Cursor/Codex-Skills und den fertigen Schwester-Reports rekonstruiert (Stand: Juli 2026).
2
+
3
+ # Strengths — What Samuel's Agentic Stack Does Well
4
+
5
+ Synthesis from Hermes inspection plus completed comparison reports (`04`, `06`, `07`, `10`).
6
+
7
+ ## Sehr gut (differentiating)
8
+
9
+ ### 1. Personal OS depth
10
+ 84 profiles, SOUL boundaries, ADHS learning contract, intake router, multi-channel Hermes — this is **not** a demo config. It encodes real life domains (uni, startup, voice, meta-governance).
11
+
12
+ ### 2. Constitutional agents
13
+ Intake and meta profiles **refuse work** by design. Negative capability ("kein produktiver Arbeitsagent") beats prompt pleading.
14
+
15
+ ### 3. Decision-load engineering
16
+ HAI minimize, recommended defaults, Feierabend patterns, explicit human gates for destructive ops — optimized for **Samuel's autonomy**, not agent autonomy.
17
+
18
+ ### 4. Multi-surface integration
19
+ Hermes (reach) + Codex (plan) + Cursor (edit) + MCP bridges is a **coherent division of labor**, documented in `10-cursor-codex-hermes-bridge.md`.
20
+
21
+ ### 5. Auditability
22
+ AGENT_DIRECTORY, intake register, capability ledgers, metaswarm acceptance criteria, artifact chains in project management — strong **traceability** for a solo operator.
23
+
24
+ ### 6. Learning-specific safety
25
+ Uni agents bound to `~/TH-Mannheim/` as SoT; coach-not-complete defaults — rare discipline in student AI stacks.
26
+
27
+ ## Gut (solid, not unique)
28
+
29
+ - **MCP fabric** — six Cursor servers (gdrive, TH files, hermes, KG, hai-intake, plaud) with consistent stdio pattern (`04-mcp-integrations.md`).
30
+ - **Skills libraries** — 80+ SKILL.md files across hosts for repeatable workflows.
31
+ - **Security awareness** — Tirith/guard profiles, no secret dumps in rules, subagent auto-approve off.
32
+ - **Framework-aware positioning** — understands LangGraph/CrewAI gaps without naive "migrate everything" (`06-compare-frameworks.md`).
33
+
34
+ ## Where Samuel beats typical indie geeks (from `07`)
35
+
36
+ | Dimension | Samuel advantage |
37
+ |-----------|------------------|
38
+ | Software delivery | metaswarm, Codex/Cursor worker split, PR shepherding |
39
+ | Role specialization | 84 SOULs vs single CLAUDE.md |
40
+ | Voice → action pipeline | Plaud + intake-router + register |
41
+ | Uni integration | TH MCP + fach agents |
42
+
43
+ ## Net assessment
44
+
45
+ The stack excels as a **cognitive prosthesis with governance** — context, boundaries, and audit win over raw autonomy. That is the correct optimization for Samuel's stated values (ADHS, uni, founder workload).
Analyse-July/09-weaknesses.md ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ > **Hinweis:** Der zugehörige Subagent-Transcript lieferte keine Assistant-Antwort (nur User-Prompt). Dieser Report wurde **direkt aus** `~/.hermes/`, Cursor/Codex-Skills und den fertigen Schwester-Reports rekonstruiert (Stand: Juli 2026).
2
+
3
+ # Weaknesses — Critical Pressure Points
4
+
5
+ Honest synthesis from empty subagent prompts (intended critique), Hermes inspection, and reports `06`–`07`, `10`.
6
+
7
+ ## Schlecht (high impact)
8
+
9
+ ### 1. Operational complexity / sprawl
10
+ - **84 profiles**, 80+ skills across 4 hosts, large `config.yaml` with many backups.
11
+ - **Single-maintainer burden**: only Samuel holds the full map in working memory.
12
+ - Documented **parallel session overload** when execute-phase agents stack up.
13
+
14
+ ### 2. No formal workflow engine
15
+ - State lives in **markdown files** and registers, not typed graphs with checkpoint resume.
16
+ - HAI/checkpoint features underused — recovery is manual (`resume-interrupted-work` skill ≠ automatic).
17
+
18
+ ### 3. Incomplete subagent analysis run
19
+ Six of ten July 2026 subagents **never returned assistant output** — meta-failure: the analysis pipeline itself fragile.
20
+
21
+ ### 4. Memory tier fragmentation
22
+ KG, intake register, profile memory, and repo docs can **contradict** without automated reconciliation.
23
+
24
+ ## Schlecht bis mittel
25
+
26
+ ### 5. Skill duplication drift
27
+ Same workflow copied across Cursor/Codex/Claude — version skew inevitable without registry.
28
+
29
+ ### 6. Always-on autonomy gap
30
+ Compared to OpenClaw/GBrain indie patterns, **overnight cron fleets** and memory enrichment while sleeping are underdeveloped (`07-compare-indie-setups.md`).
31
+
32
+ ### 7. Completion contracts uneven
33
+ Strong for GitHub/metaswarm issues; **personal Hermes tasks** may end when tokens "feel done".
34
+
35
+ ### 8. Testability & portability
36
+ Stack is **Samuel-local** — hard to reproduce on another machine or hand to a collaborator without weeks of context transfer.
37
+
38
+ ### 9. Framework tradeoffs accepted but painful
39
+ vs LangGraph: no `interrupt/resume` API; vs OpenAI Agents SDK: weaker programmatic HITL — mitigated by policy, not mechanics.
40
+
41
+ ## Risk matrix
42
+
43
+ | Risk | Likelihood | Impact |
44
+ |------|------------|--------|
45
+ | Wrong profile selected | Medium | High (wrong tone / wrong SoT) |
46
+ | Stale SOUL contradicts directory | Medium | Medium |
47
+ | MCP subprocess failure silent | Low | High |
48
+ | Context overload in busy week | High | High (ADHS cost) |
49
+
50
+ ## Top mitigations (aligned with other reports)
51
+
52
+ 1. **Profile tiers** — shrink daily active set < 15.
53
+ 2. **One planner rule** — Codex OR Hermes orchestrates, not both hot.
54
+ 3. **Completion contracts** on every delegated task (path + done definition).
55
+ 4. **Weekly meta-auditor pass** on SOUL drift.
56
+ 5. **Single nightly consolidation job** (intake → project notes → KG).
Analyse-July/10-cursor-codex-hermes-bridge.md ADDED
@@ -0,0 +1,247 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Hermes ↔ Cursor ↔ Codex: Samuel’s Agentic Integration
2
+
3
+ Samuel built a **three-surface agent OS** with a human control plane at the center. Each system has a distinct role; bridges are MCP servers, CLI wrappers, shared profile/context stores, and duplicated policy rules—not one monolithic runtime.
4
+
5
+ ---
6
+
7
+ ## Role Split
8
+
9
+ | System | Primary role | Agentic posture |
10
+ |--------|--------------|-----------------|
11
+ | **Hermes** | Messaging gateway (Telegram, Discord, etc.) + profile-based agents (`operator`, `hai-agent`, `meta-new-agent`, …) | **Dispatcher / async worker host** — bounded jobs, human gates, messaging surface |
12
+ | **Codex CLI** | Desktop orchestrator (`gpt-5.5`, agent-first parallelism) | **Planner, integrator, reviewer** — owns critical path, delegates bounded slices |
13
+ | **Cursor** | IDE + headless `cursor-agent` CLI (Composer 2.5) | **Bounded coding worker** — not planner, not source of truth |
14
+
15
+ Samuel sits above all three: approves risky MCP calls, accepts HAI lanes, and receives messages via Hermes.
16
+
17
+ ---
18
+
19
+ ## Integration Diagram
20
+
21
+ ```mermaid
22
+ flowchart TB
23
+ subgraph Human["Samuel (control plane)"]
24
+ S[Samuel]
25
+ end
26
+
27
+ subgraph Hermes["Hermes OS"]
28
+ H_MSG["hermes mcp serve<br/>messages_read/send"]
29
+ OP[operator profile<br/>dispatcher + contracts]
30
+ HAI[hai-agent + cursor-executer skill]
31
+ META[meta-new-agent<br/>profile QA]
32
+ INTAKE_H[intake-router-hermes<br/>voice/context register]
33
+ PROFILES["~/.hermes/profiles/<br/>SOUL.md, config.yaml, skills"]
34
+ end
35
+
36
+ subgraph Codex["Codex CLI"]
37
+ CX_ORCH[Main session<br/>planner / integrator / reviewer]
38
+ CX_SKILL[hermes-profile-control skill]
39
+ CAMCP[cursor_agent MCP<br/>cursor-agent-mcp]
40
+ INTAKE_C[intake-router MCP]
41
+ KG_C[knowledge_graph_v1 MCP]
42
+ end
43
+
44
+ subgraph Cursor["Cursor surface"]
45
+ IDE[Cursor IDE agent<br/>+ samuel-cursor-workflow.mdc]
46
+ CAGENT[cursor-agent CLI<br/>Composer 2.5 headless]
47
+ MCP_CUR[MCPs: hermes, gdrive,<br/>knowledge-graph, plaud, …]
48
+ end
49
+
50
+ subgraph Shared["Shared infrastructure"]
51
+ KG[data/rag_pure KG]
52
+ JOBS["/tmp/cursor-agent-mcp-jobs<br/>persisted handoff state"]
53
+ end
54
+
55
+ S <-->|Telegram/Discord/…| H_MSG
56
+ S <-->|IDE chat| IDE
57
+ S <-->|terminal| CX_ORCH
58
+
59
+ H_MSG --> IDE
60
+ IDE --> H_MSG
61
+
62
+ OP -->|terminal: codex exec| CX_ORCH
63
+ HAI -->|cursor-agent --print| CAGENT
64
+
65
+ CX_ORCH -->|start_task / handoff| CAMCP
66
+ CAMCP -->|spawn + job logs| CAGENT
67
+ CAMCP --> JOBS
68
+ CAGENT -->|reads rules when delegated| IDE
69
+
70
+ CX_SKILL -->|meta-new-agent review| META
71
+ CX_SKILL --> PROFILES
72
+ META --> PROFILES
73
+
74
+ INTAKE_C --> INTAKE_H
75
+ IDE --> INTAKE_H
76
+ MCP_CUR --> KG
77
+ KG_C --> KG
78
+
79
+ CX_ORCH -->|diff review, verify| CAGENT
80
+ OP -->|rejoin + verifier| S
81
+ ```
82
+
83
+ ---
84
+
85
+ ## How the Bridges Work
86
+
87
+ ### 1. Codex → Cursor: `cursor-agent-mcp`
88
+
89
+ Configured in `/home/smlflg/.codex/config.toml` as `[mcp_servers.cursor_agent]`, launched via `/home/smlflg/.local/share/cursor-agent-mcp/codex-cursor-agent-mcp`.
90
+
91
+ - Wraps local `cursor-agent` (default model `composer-2.5-fast`).
92
+ - Exposes MCP tools: `handoff`, `start_task`, `job_status`, `tail_job`, `job_result`, `cancel_job`, etc.
93
+ - Persists jobs under `/tmp/cursor-agent-mcp-jobs` so long runs survive MCP timeouts.
94
+ - Enforces contracts: `allowedWriteRoots`, `expectedFiles`, `requiredJsonFields`, `maxRuntimeMs`.
95
+ - Write-scope checks are **post-run detection**, not a filesystem sandbox.
96
+
97
+ Codex instructions (`/home/smlflg/.codex/instructions.md`) define the lane:
98
+
99
+ - `start_task` for write work; `handoff` with `ask`/`plan` for read-only.
100
+ - Cursor is a **bounded coding worker**; Codex reviews diff, runs verification, reports to Samuel.
101
+
102
+ `start_task`, `handoff`, and `health_check` use `approval_mode = "approve"` — Samuel must approve each delegation.
103
+
104
+ ### 2. Cursor policy when delegated: `samuel-cursor-workflow.mdc`
105
+
106
+ `/home/smlflg/.cursor/rules/samuel-cursor-workflow.mdc` is `alwaysApply: true`. Its **Codex Composer-Worker** section mirrors Codex instructions:
107
+
108
+ - Not reviewer, planner, or decider.
109
+ - Only explicit task scope and write roots.
110
+ - No commits, pushes, installs, secrets, broad refactors.
111
+ - Stop if scope is unclear; return changed files + check result.
112
+
113
+ This closes the loop: Codex delegates with MCP contracts; Cursor agents inherit worker constraints via IDE rules.
114
+
115
+ ### 3. Hermes → Cursor: two paths (not one)
116
+
117
+ **Path A — HAI workflow (Hermes-native):**
118
+ `/home/smlflg/.hermes/profiles/hai-agent/skills/autonomous-ai-agents/cursor-executer/SKILL.md` invokes `cursor-agent --print --model composer-2.5` directly from project dirs, with HAI handoff files (`NEXT_STEP.md`, `EXECUTOR_HANDOFF_NEXT_STEP.md`). Validator and human gate stay in HAI; Cursor never commits.
119
+
120
+ **Path B — Cursor IDE:** Samuel chats in Cursor with Hermes MCP (`hermes mcp serve` in `/home/smlflg/.cursor/mcp.json`). The IDE agent can read/send messages but is **not** the same as Codex’s MCP-delegated worker path.
121
+
122
+ Hermes does **not** use `cursor-agent-mcp`; it shells to `cursor-agent` CLI. Codex uses the MCP harness for observability and contracts.
123
+
124
+ ### 4. Hermes ↔ Codex: terminal + shared context, not symmetric MCP
125
+
126
+ **Hermes → Codex:** `operator` has a `codex` skill (`/home/smlflg/.hermes/profiles/operator/skills/autonomous-ai-agents/codex/SKILL.md`) that runs `codex exec` via Hermes terminal (PTY required, git repo required). Gateway contexts may need `--sandbox danger-full-access` due to bubblewrap limits.
127
+
128
+ **Codex → Hermes profiles:** `/home/smlflg/.codex/skills/hermes-profile-control/SKILL.md` requires:
129
+
130
+ 1. Minimal profile edits.
131
+ 2. Local checks (`hermes profile show`, `doctor`, smoke chat).
132
+ 3. **`meta-new-agent` read-only review** (PASS/FAIL).
133
+ 4. Stop and involve Samuel on severe issues.
134
+
135
+ This is **Hermes validating itself from inside Hermes** while Codex does the file edits.
136
+
137
+ **Shared context without direct messaging:**
138
+
139
+ - `intake-router` MCP in Codex reads the same register as Hermes `intake-router-hermes`.
140
+ - Knowledge graph: Cursor uses `knowledge-graph` MCP; Codex uses `knowledge_graph_v1` — same data dir, different server entrypoints.
141
+
142
+ **Hermes messaging MCP is Cursor-only.** Codex cannot `messages_send` via MCP; it would need Hermes CLI, operator on a channel, or Samuel as relay.
143
+
144
+ ### 5. Hermes as messaging + dispatch hub
145
+
146
+ `/home/smlflg/.cursor/mcp.json` wires `hermes` → `hermes mcp serve` with tools like `messages_read`, `messages_send`, `conversations_list`.
147
+
148
+ Workflow rules constrain this:
149
+
150
+ - Messaging only on explicit order; no mass messages.
151
+ - Secrets under `~/.hermes/` never emitted.
152
+ - On missing Samuel context → query `knowledge-graph` first.
153
+
154
+ `operator` SOUL defines the dispatch pattern: main session stays responsive; workers get JSON job contracts, produce artifacts, run verifiers, rejoin compressed summaries. Workers must not block Samuel mid-run (`needs_human` + stop).
155
+
156
+ ---
157
+
158
+ ## Typical Agentic Flows
159
+
160
+ ### Flow A: Mobile/async → desktop build
161
+
162
+ 1. Samuel messages Hermes (`operator` or domain profile).
163
+ 2. Operator classifies → bounded background job or `codex exec` for coding.
164
+ 3. Codex plans, may delegate slice via `cursor_agent.start_task`.
165
+ 4. Cursor worker edits within `allowedWriteRoots`; rules enforce worker mode.
166
+ 5. Codex reviews diff, runs checks, summarizes.
167
+ 6. Operator rejoins to Samuel via Hermes (compressed, artifact pointers).
168
+
169
+ ### Flow B: IDE-first with messaging
170
+
171
+ 1. Samuel works in Cursor IDE.
172
+ 2. Agent uses Hermes MCP to read Telegram/Discord context.
173
+ 3. Uses knowledge-graph / intake for Samuel’s prior thoughts.
174
+ 4. Implements directly in IDE (no Codex in loop unless Samuel switches).
175
+
176
+ ### Flow C: HAI execution with Composer lane
177
+
178
+ 1. `hai-agent` produces accepted `EXECUTION_STEP`.
179
+ 2. Samuel or hai-agent chooses `cursor-executer` vs default `hai-executer`.
180
+ 3. `cursor-agent` runs bounded step; `hai-validator` judges result.
181
+ 4. Commit/finalize stays with `hai-executer`, not Composer.
182
+
183
+ ### Flow D: Codex edits Hermes profiles
184
+
185
+ 1. Codex applies `hermes-profile-control`.
186
+ 2. Edits `SOUL.md` / `config.yaml` under `~/.hermes/profiles/`.
187
+ 3. `meta-new-agent` reviews (FAIL → stop, ask Samuel).
188
+ 4. Registry and doctor checks updated.
189
+
190
+ ---
191
+
192
+ ## Friction Points
193
+
194
+ ### Architecture / duplication
195
+
196
+ 1. **Three Cursor invocation paths** with overlapping but not identical guardrails:
197
+ - Codex → `cursor-agent-mcp` (MCP contracts, job persistence)
198
+ - Hermes HAI → raw `cursor-agent` CLI (HAI handoff files)
199
+ - Cursor IDE → direct agent (full MCP stack, different default behavior)
200
+
201
+ Policy is duplicated across `/home/smlflg/.codex/instructions.md`, `samuel-cursor-workflow.mdc`, and HAI `cursor-executer` skill — manual sync risk.
202
+
203
+ 2. **Asymmetric Hermes access:** messaging MCP only in Cursor. Codex orchestrates Hermes profiles and intake but cannot natively read/send channel messages.
204
+
205
+ 3. **No Hermes → cursor-agent-mcp bridge:** Hermes bypasses the job harness (no `job_id`, `tail_job`, idempotency). Long HAI Composer runs are harder to recover than Codex-delegated ones.
206
+
207
+ ### Safety / enforcement
208
+
209
+ 4. **Write scope is advisory:** `cursor-agent-mcp` detects violations after the run; it cannot prevent writes. HAI `cursor-executer` relies on prompt + `git diff` review. True isolation needs wrappers like `run_hai_cursor_executer.sh` (mentioned in the skill).
210
+
211
+ 5. **Restricted mode strips MCP:** when enabled, Cursor gets empty `mcp.json` — delegated workers lose Hermes, KG, gdrive. Good for isolation; bad if the task needs context tools.
212
+
213
+ 6. **Operator human gates vs Codex autonomy:** operator blocks mid-run user questions; Codex may still ask Samuel on `cursor_agent` approval. Two approval UXes for similar work.
214
+
215
+ ### Auth / ops
216
+
217
+ 7. **OAuth token contention:** Hermes `openai-codex` provider and Codex CLI share Codex OAuth; logs show “refresh token already consumed” and 401s when both compete.
218
+
219
+ 8. **Hermes gateway sandbox vs Codex CLI:** `codex exec` from Telegram-driven Hermes may fail on bubblewrap; needs `danger-full-access` — weaker safety in the path Samuel uses on mobile.
220
+
221
+ 9. **Approval friction on `cursor_agent`:** every `start_task`/`handoff` needs explicit approval — safe but slows agentic loops.
222
+
223
+ ### Naming / config drift
224
+
225
+ 10. **Model ID mismatch:** Codex/cursor-agent-mcp default `composer-2.5-fast`; HAI `cursor-executer` uses `composer-2.5`. Capability and billing may differ silently.
226
+
227
+ 11. **Dual knowledge-graph MCP servers** (Cursor `knowledge-graph` vs Codex `knowledge_graph_v1`) — same data, two configs to maintain.
228
+
229
+ 12. **Shared secrets layout:** gdrive OAuth paths live under `~/.hermes/` but are consumed by Cursor MCP — coupling messaging infra with IDE tool auth.
230
+
231
+ ### Process / latency
232
+
233
+ 13. **hermes-profile-control round-trip:** every substantial profile change needs `meta-new-agent` review — correct for safety, adds latency and another model call.
234
+
235
+ 14. **Intake-router keyword weakness:** documented in intake skill — weak search → grep fallback; context retrieval quality varies by surface.
236
+
237
+ 15. **Session/state loss:** `system-samuel-hardware` profile exists because laptop sleep/crash loses Hermes sessions; cross-system handoff state (`cursor-agent-mcp` jobs, `.hermes_async` queues) needs manual recovery discipline.
238
+
239
+ ---
240
+
241
+ ## Design Pattern in One Sentence
242
+
243
+ Samuel treats **Codex as orchestrator**, **Cursor as cheap bounded implementer**, and **Hermes as messaging + profile dispatch layer**—connected by MCP bridges (`cursor-agent-mcp`, `hermes mcp serve`, `intake-router`), CLI fallbacks (`cursor-agent`, `codex exec`), and policy files that try to keep delegated agents dumb, scoped, and verifier-owned rather than self-certifying.
244
+
245
+ The main architectural bet is **separation of planning (Codex/Hermes operator) from execution (Cursor Composer)** with **shared context registers** (intake, KG) instead of one shared agent memory—which works but creates the friction above at every boundary.
246
+
247
+ [REDACTED]
Analyse-July/HERMES_UPGRADE_APPROVAL.md ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Hermes Upgrade Approval Log — Juli 2026
2
+
3
+ **Erstellt:** 2026-07-07
4
+ **Durchgeführt von:** Cursor Sonnet Builder (Subagent)
5
+ **Strategie:** Additiv — keine bestehenden Configs gelöscht oder überschrieben
6
+
7
+ ---
8
+
9
+ ## Status-Übersicht
10
+
11
+ | # | Artifact | Status | Notizen |
12
+ |---|----------|--------|---------|
13
+ | 1 | Completion Contract SKILL.md | ✅ Erstellt | Neu, Verzeichnis existierte nicht |
14
+ | 2 | COMPLETION_CONTRACT.md Template | ✅ Erstellt | Neues Templates-Verzeichnis genutzt |
15
+ | 3 | ~/AGENTS.md Routing Hub | ✅ Ersetzt | Bestand (35-Zeilen-Stub) → vollständiges 75-Zeilen-Hub |
16
+ | 4 | samuel-cursor-workflow.mdc (Append) | ✅ Ergänzt | 3 Zeilen am Ende appended, nichts gelöscht |
17
+ | 5 | .codex/instructions.md (Append) | ✅ Ergänzt | 4 Zeilen am Ende appended, nichts gelöscht |
18
+ | 6 | jobs.json Backup | ✅ Erstellt | `jobs.json.bak-hermes-upgrades-<timestamp>` |
19
+ | 7 | jobs.json (3 Jobs appended) | ✅ Ergänzt | intake-morning-sweep, kg-staleness-check, morning-briefing |
20
+ | 8 | intake-morning-sweep.sh | ✅ Erstellt | Neues `scripts/`-Verzeichnis, chmod +x |
21
+ | 9 | kg-staleness-check.sh | ✅ Erstellt | Neues `scripts/`-Verzeichnis, chmod +x |
22
+ | 10 | morning-briefing.sh | ✅ Erstellt | Neues `scripts/`-Verzeichnis, chmod +x |
23
+ | 11 | HAI Checkpoint SKILL.md | ✅ Erstellt | Neues Verzeichnis im hai-agent Profil |
24
+ | 12 | HAI_CHECKPOINT.json Template | ✅ Erstellt | In ~/.hermes/templates/ |
25
+ | 13 | taste-rules.md | ✅ Erstellt | 5 Starter-Regeln |
26
+ | 14 | taste-extraction SKILL.md | ✅ Erstellt | Stub + Extraktionsworkflow |
27
+ | 15 | HERMES_UPGRADE_APPROVAL.md | ✅ Dieses Dokument | — |
28
+
29
+ ---
30
+
31
+ ## Erstellte Dateien (vollständige Liste)
32
+
33
+ ```
34
+ ~/.hermes/profiles/meta/skills/productivity/completion-contract/SKILL.md
35
+ ~/.hermes/templates/COMPLETION_CONTRACT.md
36
+ ~/AGENTS.md (überschrieben — Begründung: war nur 35-Zeilen-Stub, kein vollständiges Hub)
37
+ ~/.hermes/cron/jobs.json (3 Jobs appended, backup erstellt)
38
+ ~/.hermes/cron/jobs.json.bak-hermes-upgrades-<timestamp>
39
+ ~/.hermes/cron/scripts/intake-morning-sweep.sh
40
+ ~/.hermes/cron/scripts/kg-staleness-check.sh
41
+ ~/.hermes/cron/scripts/morning-briefing.sh
42
+ ~/.hermes/profiles/hai-agent/skills/autonomous-ai-agents/hai-checkpoint/SKILL.md
43
+ ~/.hermes/templates/HAI_CHECKPOINT.json
44
+ ~/.hermes/taste-rules.md
45
+ ~/.hermes/profiles/meta/skills/productivity/taste-extraction/SKILL.md
46
+ ~/Projekte/MetaMetaMeta/Analyse-July/HERMES_UPGRADE_APPROVAL.md
47
+ ```
48
+
49
+ ## Geänderte Dateien (Append-only)
50
+
51
+ ```
52
+ ~/.cursor/rules/samuel-cursor-workflow.mdc — 3 Zeilen appended (Agent-Routing-Referenz)
53
+ ~/.codex/instructions.md — 4 Zeilen appended (Agent Routing section)
54
+ ```
55
+
56
+ ---
57
+
58
+ ## Meta-Review
59
+
60
+ ### Was gut ist
61
+
62
+ - Alle Artifacts folgen dem Muster bestehender Skills (YAML-Frontmatter, Zweck-Abschnitt, Workflow, Harte Regeln)
63
+ - Cron-Jobs nutzen `no_agent: true` + `script`-Feld, konsistent mit Hermes-Cron-Architektur
64
+ - Backup von jobs.json vor Edit
65
+ - AGENTS.md ist das erste vollständige Routing-Hub (vorher nur 35-Zeilen-Stub)
66
+ - taste-rules.md startet mit 5 konkreten, bereits beobachteten Regeln
67
+
68
+ ### Offene Punkte / Human Gate
69
+
70
+ - [ ] **Cron-Jobs aktivieren**: Die 3 neuen Jobs sind `enabled: true`, aber Hermes muss neu
71
+ gestartet oder die Cron-Liste neu geladen werden damit sie aktiv werden.
72
+ `hermes cron list` zur Verifikation empfohlen.
73
+ - [ ] **intake-morning-sweep.sh ist ein Stub**: Volle Implementierung benötigt Hermes-MCP-
74
+ Zugriff vom Script aus oder eine Integration mit dem bestehenden `9eb7646fb90c`-Job.
75
+ Als MVP genügt der Stub — er loggt und blockiert nichts.
76
+ - [ ] **kg-staleness-check.sh**: Vollimplementierung benötigt KG-MCP-API-Zugriff.
77
+ Aktuell prüft der Script nur Datei-Timestamps als Heuristik.
78
+ - [ ] **AGENTS.md-Überschreib**: Die alte 35-Zeilen-Version war ein voriger Upgrade-Run-Stub.
79
+ Der neue Hub ist umfassender. Zur Sicherheit: alter Inhalt ist im git-History falls
80
+ das Verzeichnis versioniert ist.
81
+ - [ ] **Skills-Manifest**: Kein explizites `skills_manifest.yaml` im meta-Profil gefunden —
82
+ Completion Contract und taste-extraction sind in den Verzeichnissen vorhanden und
83
+ werden von Hermes automatisch via Filesystem Discovery gefunden (kein Manifest-Append nötig).
84
+
85
+ ### Risiko-Einschätzung
86
+
87
+ **Niedrig.** Alle Änderungen sind additiv. Keine bestehende Konfiguration wurde gelöscht.
88
+ Schlimmster Fall: Neue Cron-Scripts laufen und produzieren Logs ohne Seiteneffekte.
89
+ Jobs können jederzeit einzeln deaktiviert werden (`"enabled": false`).
90
+
91
+ ---
92
+
93
+ *Approval Log Version: 1.0 | Erstellt: 2026-07-07 | Hermes Additive Upgrades Batch 1*
94
+
95
+ ## Verification
96
+
97
+ _Automated check: 2026-07-07 00:43 +0200 (Cursor subagent). No destructive changes._
98
+
99
+ | Check | Result | Notes |
100
+ |-------|--------|-------|
101
+ | `~/.hermes/cron/jobs.json` → `intake-morning-sweep` | **PASS** | `enabled: true`, script `intake-morning-sweep.sh` |
102
+ | `~/.hermes/cron/jobs.json` → `kg-staleness-check` | **PASS** | `enabled: true`, script `kg-staleness-check.sh` |
103
+ | `~/.hermes/cron/jobs.json` → `morning-briefing` | **PASS** | `enabled: true`, script `morning-briefing.sh` |
104
+ | `hermes cron list` shows all 3 new jobs | **FAIL** | CLI listed only `mensa-th-mannheim-daily`; gateway not running (reload/start may be required) |
105
+ | `~/AGENTS.md` | **PASS** | Present |
106
+ | `~/.hermes/taste-rules.md` | **PASS** | Present |
107
+ | completion-contract skill (`meta/.../completion-contract/SKILL.md`) | **PASS** | Present |
108
+ | hai-checkpoint skill (`hai-agent/.../hai-checkpoint/SKILL.md`) | **PASS** | Present |
109
+
110
+ **Overall:** Config on disk **PASS** (jobs + key files + skills). Runtime cron visibility **FAIL** until gateway reload — align with open Human Gate item on cron activation.
111
+
Analyse-July/README.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Analyse-July — Samuel Agentic Stack
2
+
3
+ Markdown-Sammlung der **Juli-2026 Meta-Analyse** (MetaMetaMeta). Zehn thematische Reports plus Summary.
4
+
5
+ ## Dateien
6
+
7
+ | Datei | Beschreibung |
8
+ |-------|----------------|
9
+ | [00-SUMMARY.md](./00-SUMMARY.md) | Executive Summary (DE): Architektur, gut/sehr gut/schlecht, Top-5 |
10
+ | [01-hermes-core-structure.md](./01-hermes-core-structure.md) | Hermes-Runtime, Verzeichnisse, `config.yaml`, Delegation |
11
+ | [02-agent-profiles-soul.md](./02-agent-profiles-soul.md) | Profile, SOUL.md, AGENT_DIRECTORY |
12
+ | [03-skills-orchestration.md](./03-skills-orchestration.md) | Skills in Cursor/Codex/Claude/Hermes, Orchestrierung |
13
+ | [04-mcp-integrations.md](./04-mcp-integrations.md) | MCP-Ökosystem (aus Subagent 01543954) |
14
+ | [05-memory-knowledge.md](./05-memory-knowledge.md) | Gedächtnis-Tiers, KG, Intake-Register |
15
+ | [06-compare-frameworks.md](./06-compare-frameworks.md) | Vergleich mit LangGraph, CrewAI, … (Subagent d58ef0d5) |
16
+ | [07-compare-indie-setups.md](./07-compare-indie-setups.md) | Indie-Geek-Setups 2025–26 (Subagent 2debd81b) |
17
+ | [08-strengths.md](./08-strengths.md) | Stärken |
18
+ | [09-weaknesses.md](./09-weaknesses.md) | Schwächen & Risiken |
19
+ | [10-cursor-codex-hermes-bridge.md](./10-cursor-codex-hermes-bridge.md) | Bridge Cursor↔Codex↔Hermes (Subagent 25c0c47d) |
20
+
21
+ ## Herkunft
22
+
23
+ - **Extrahiert** aus Cursor-Subagent-Transcripts unter
24
+ `~/.cursor/projects/home-smlflg/agent-transcripts/7fccf610-ccfa-4f81-9fc7-1616943de918/subagents/`
25
+ - **Rekonstruiert** (Subagent ohne Antwort): `01`–`03`, `05`, `08`, `09` via direkte Inspektion von `~/.hermes/` und Schwester-Reports.
26
+
27
+ ## Nutzung
28
+
29
+ Start mit **00-SUMMARY.md**, dann nach Interesse in die nummerierten Reports. Vergleiche `06`/`07` für externes Benchmarking; `10` für tägliche Workflow-Integration.
BACKLOG_EVAL.md ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Eval-System Backlog — AgentArena + MetaMetaMeta
2
+
3
+ **Stand:** 2026-03-19 (nach E2 Erfolg: additionalContext wirkt 0/3 vs 6/6)
4
+ **Status:** Backlog — nicht in Scope der aktuellen Session
5
+
6
+ ---
7
+
8
+ ## Kern-Erkenntnis
9
+
10
+ Mit `clean_home` Isolation in AgentArena koennen wir ALLE Meta-Features evaluieren:
11
+ - CLAUDE.md Varianten
12
+ - Sidecar-NG Injections
13
+ - Hook-Konfigurationen
14
+ - Skills
15
+ - Effort-Levels
16
+ - Modelle
17
+ - Temperatur
18
+
19
+ Das ist der eigentliche Durchbruch — nicht nur der voiceLanguage-Test.
20
+
21
+ ---
22
+
23
+ ## Parameter-Explosion (das Problem)
24
+
25
+ Jede Evaluation hat potenziell diese Dimensionen:
26
+
27
+ | Parameter | Werte | Beispiel |
28
+ |-----------|-------|----------|
29
+ | Model | 3+ | sonnet-4.6, opus-4.6, haiku-4.5 |
30
+ | Effort Level | 4 | low, medium, high, max |
31
+ | CLAUDE.md | N | minimal, full, custom |
32
+ | Sidecar Injection | on/off | mit/ohne Regeln |
33
+ | Hook Config | N | keine, Sidecar-NG, custom |
34
+ | Skills | N | pro Skill |
35
+ | Temperature | 3+ | 0.0, 0.5, 1.0 |
36
+ | Prompt-Variante | N | deutsch, englisch, vage, praezise |
37
+
38
+ **Naive Full Factorial:** 3 x 4 x 3 x 2 x 3 x N x 3 x N = tausende Kombinationen x pass@3 = zehntausende Runs
39
+
40
+ **Loesung (aus Research):**
41
+ 1. **Screening:** Fractional Factorial Design — 8 Runs statt 32 um Haupteffekte zu finden
42
+ 2. **Dann:** Bayesian Optimization (Optuna/W&B) fuer die wichtigsten Parameter
43
+ 3. **Gold Set:** 10 handkuratierte Tasks als Schnelltest bei jeder Aenderung
44
+
45
+ ---
46
+
47
+ ## Evaluations-Dimensionen (die 4 Sauelen)
48
+
49
+ ### 1. Reliability (pass@k)
50
+ - Wiederholbarkeit: 3x derselbe Test, wie oft klappt es?
51
+ - Unbiased Estimator: `pass@k = 1 - C(n-c, k) / C(n, k)`
52
+ - **Fuer statistische Signifikanz bei 5% Improvement: ~400 Runs**
53
+ - Fuer "dirty minimum" internes Testing: ~50 Runs
54
+ - Wilson Score Intervals statt naive Prozente
55
+
56
+ ### 2. Token-Effizienz / Kosten
57
+ - Tokens pro geloestem Task
58
+ - Cost per successful run vs cost per failed run
59
+ - Prompt Efficiency Score: `(Success Rate) / (Tokens * Latency)`
60
+
61
+ ### 3. Output-Qualitaet (Pass/Fail)
62
+ - Funktionaler Judge (exit code)
63
+ - Regression (bestehende Tests weiterhin gruen?)
64
+ - Lint + Complexity Delta
65
+
66
+ ### 4. Alignment (das Neue)
67
+ - Wurde die Aufgabe SO umgesetzt wie gewuenscht?
68
+ - Beispiel Tetris: "rote Steine und gruene Bloecke" — stimmt die Farbe?
69
+ - Braucht LLM-as-Judge oder Screenshot-Vergleich
70
+ - Schwierigster Punkt — subjektiv, schwer automatisierbar
71
+
72
+ ---
73
+
74
+ ## Visualisierung (aus Research)
75
+
76
+ ### Empfohlen:
77
+ 1. **Radar Charts** — zeigt das "Profil" eines Agents (Reasoning, Cost, Speed, Tools, Reliability)
78
+ 2. **Pareto Frontier** — X=Kosten (log), Y=Score → zeigt welche Agents "dominated" werden
79
+ 3. **Heatmap/Matrix** — Parameter x Task → Farbe = pass rate
80
+
81
+ ### AgentArena hat bereits:
82
+ - Leaderboard (pass@1, pass@3, avg_cost, composite_score)
83
+ - Matrix View (harness x model)
84
+ - Run Detail (trajectory, diff viewer)
85
+
86
+ ### Fehlt:
87
+ - Radar Charts pro Agent
88
+ - Pareto Frontier (Cost vs Score)
89
+ - Experiment-Vergleich (vorher/nachher)
90
+ - Alignment-Visualisierung
91
+
92
+ ---
93
+
94
+ ## Konkrete naechste Testcases (TODO)
95
+
96
+ ### T1: Effort-Level Impact (sofort machbar)
97
+ - Denselben voiceLanguage-Test mit `--effort low/medium/high` laufen lassen
98
+ - CLI-Flag: `claude --print --effort {level}`
99
+ - Hypothese: low effort = mehr Halluzinationen, high = besser aber teurer
100
+ - **Implementation:** Nur `cmd.extend(["--effort", level])` im Adapter + 3 neue Agents
101
+
102
+ ### T2: Weitere Bug-Typen
103
+ - Nicht nur Config-Keys, auch:
104
+ - File-ohne-Read-editieren
105
+ - Falsche Datei editieren
106
+ - Erfundene API-Endpoints
107
+ - Import-Fehler (nicht-existierende Module)
108
+
109
+ ### T3: Prompt-Sprache
110
+ - Derselbe Task auf Deutsch vs Englisch
111
+ - Hypothese: Englische Prompts = bessere Compliance?
112
+
113
+ ### T4: CLAUDE.md Laenge
114
+ - Minimal (2 Zeilen) vs Full (Samuels echte 200-Zeilen CLAUDE.md)
115
+ - Hypothese: Mehr Regeln = besser? Oder Information Overload?
116
+
117
+ ### T5: Skill-Evaluation
118
+ - Skills einzeln testen: Tut der Skill was er soll?
119
+ - Z.B. /checkpoint: Erstellt er wirklich einen Git-Snapshot?
120
+
121
+ ---
122
+
123
+ ## Tooling-Empfehlungen (aus Research)
124
+
125
+ | Tool | Zweck | Prioritaet |
126
+ |------|-------|-----------|
127
+ | **Inspect AI** | Modulares Eval-Framework (UK AI Security Institute) | Evaluieren |
128
+ | **Optuna** | Bayesian Hyperparameter-Optimierung | Spaeter |
129
+ | **W&B / MLflow** | Experiment-Tracking + Trajectory-Visualisierung | Spaeter |
130
+ | **Wilson Score** | Statistische Konfidenzintervalle | Einbauen |
131
+
132
+ ---
133
+
134
+ ## Claude Code CLI Flags (verifiziert)
135
+
136
+ ```
137
+ --effort <level> low, medium, high, max
138
+ --max-budget-usd <amount> Kostenlimit (nur mit --print)
139
+ --model <model> Modell-Auswahl
140
+ --verbose Noetig fuer stream-json mit --print
141
+ --dangerously-skip-permissions Keine Permission-Prompts
142
+ --output-format stream-json NDJSON Output
143
+ ```
144
+
145
+ ---
146
+
147
+ ## KRITISCH: Sandbox-Isolation (Sicherheit)
148
+
149
+ **Problem:** Claude Code Adapter laeuft auf dem Host mit `--dangerously-skip-permissions`.
150
+ Jeder Run hat volle User-Rechte (Dateisystem, Netzwerk, Bash). Kein Sandboxing.
151
+ `clean_home` isoliert nur ~/.claude/ Config, NICHT den Prozess.
152
+
153
+ **Risiko:** Claude kann theoretisch beliebige Commands ausfuehren, Dateien lesen/loeschen.
154
+ Fuer eigene harmlose Tests akzeptabel, fuer Produktion/fremde Prompts NICHT.
155
+
156
+ **Loesung (Optionen):**
157
+ 1. **Custom Docker Image** mit claude CLI vorinstalliert (npm install -g @anthropic-ai/claude-code)
158
+ - Vorteil: Echte Isolation, passt in bestehende Sandbox-Architektur
159
+ - Aufwand: Docker Image bauen + testen, API Key reinreichen
160
+ 2. **bubblewrap/firejail** Sandboxing um den CLI-Prozess
161
+ - Vorteil: Leichtgewichtig, kein Docker noetig
162
+ - Aufwand: Capability-Config, Filesystem-Allowlist
163
+ 3. **Dedizierter User** mit eingeschraenkten Rechten
164
+ - Vorteil: Einfach, `su arena-runner`
165
+ - Aufwand: User anlegen, Permissions konfigurieren
166
+
167
+ **Prioritaet:** HOCH — vor jedem produktiven Einsatz oder fremden Prompts loesen.
168
+
169
+ ---
170
+
171
+ ## Nicht jetzt (Scope-Guard)
172
+
173
+ - [ ] Sandbox-Isolation fuer Claude Code Runs (siehe oben)
174
+ - [ ] Eval-Dashboard bauen
175
+ - [ ] Statistische Tests implementieren
176
+ - [ ] Prompt-Alignment LLM-as-Judge
177
+ - [ ] W&B Integration
178
+ - [ ] Fractional Factorial Design automatisieren
179
+ - [ ] Screenshot-basierte Alignment-Checks
180
+
181
+ **Samuel's Regel:** E2 ist fertig. Alles hier ist Backlog fuer spaeter.
BODEN_KETTE.md ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Boden-Kette
2
+
3
+ Stand: 2026-05-04
4
+
5
+ ## Zweck
6
+
7
+ Die Boden-Kette verhindert, dass Projekte wie `BuildingTheWorld` oder `NasaCode` in Ideen-, Pipeline- oder Meta-Design-Phasen hängen bleiben.
8
+
9
+ Sie ersetzt keine Erkenntnisarbeit. Sie zwingt Erkenntnisarbeit in Handlung:
10
+
11
+ > Jeder Schritt braucht einen kleinen Realitätskontakt, bevor der nächste Schritt erlaubt ist.
12
+
13
+ ## Failure Mode Aus Alten Projekten
14
+
15
+ ### BuildingTheWorld
16
+
17
+ Beobachtung:
18
+
19
+ - Viele Audio-/Text-Ideen.
20
+ - Große Prozess- und Pipeline-Vision.
21
+ - Kein kleiner ausführbarer Projektboden sichtbar.
22
+
23
+ Fehler:
24
+
25
+ > Planung erzeugte weitere Planung statt einen ersten beobachtbaren Output.
26
+
27
+ ### NasaCode
28
+
29
+ Beobachtung:
30
+
31
+ - Starke Idee: Agent-Pipeline für besseren Code.
32
+ - Es gibt Runs, Judge-Ausgaben und Ratchet-Plan.
33
+ - Der Sprung ging schnell zu Pipeline, Multi-Agent, Score, Ratchet, NASA-Qualität.
34
+
35
+ Fehler:
36
+
37
+ > Das Projekt hatte Realitätskontakte, aber der nächste erlaubte Boden war nicht hart genug begrenzt. Aus einem Run wurde sofort eine große Pipeline-Erzählung.
38
+
39
+ ## Kernregel
40
+
41
+ Kein Projekt darf länger als 1 Stunde ohne PASS/FAIL/UNCLEAR-Artefakt laufen.
42
+
43
+ Artefakt heißt:
44
+
45
+ - Testausgabe
46
+ - DB-Zeile
47
+ - Log
48
+ - Screenshot
49
+ - Dateiinhalt
50
+ - API-Response
51
+ - Benchmark-Run
52
+
53
+ Nicht Artefakt:
54
+
55
+ - Plan
56
+ - Einschätzung
57
+ - Diskussion
58
+ - Architekturdiagramm
59
+ - Agentenmeinung
60
+
61
+ ## Schrittformat
62
+
63
+ Vor jedem Schritt:
64
+
65
+ ```text
66
+ Ich baue jetzt X.
67
+ Es gilt als validiert, wenn Y beobachtbar ist.
68
+ Ich prüfe Y mit Z.
69
+ ```
70
+
71
+ Nach jedem Schritt:
72
+
73
+ ```text
74
+ Step N: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
75
+ ```
76
+
77
+ ## Statusregeln
78
+
79
+ - `PASS` -> nächster Boden.
80
+ - `FAIL` -> Ursache finden oder fixen.
81
+ - `UNCLEAR` -> Messung verbessern, nicht weiterbauen.
82
+
83
+ ## Meta-Regel
84
+
85
+ Keine neue Meta-Ebene ohne Trigger.
86
+
87
+ Nicht:
88
+
89
+ > Wir brauchen ein Evaluation-Framework.
90
+
91
+ Erst wenn:
92
+
93
+ > Ich habe drei Runs und weiß nicht, welcher besser ist.
94
+
95
+ Dann darf Statistik, Dashboard oder Framework entstehen.
96
+
97
+ ## Agentische Arbeitsregel
98
+
99
+ Ein Agent darf nicht mit Architektur starten.
100
+
101
+ Er muss zuerst liefern:
102
+
103
+ 1. Zweck-Satz.
104
+ 2. Kleinster Realitätskontakt.
105
+ 3. Messpunkt.
106
+ 4. Ein Schritt.
107
+ 5. Artefakt.
108
+ 6. PASS/FAIL/UNCLEAR.
109
+
110
+ Wenn ein Schritt keine konkrete Beobachtung grün oder rot machen kann, ist er kein Schritt.
CAREER_DECISION_30_TAGE.md ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Karriereentscheidung - naechste 30 Tage
2
+
3
+ Ziel: keine Lebensentscheidung fuer immer treffen, sondern eine belastbare Richtung fuer die naechsten 30 Tage.
4
+
5
+ Optionen:
6
+ - Mannheim / Studium priorisieren
7
+ - Frei weiterbauen / Gesprache fuehren / kleine Projektchance suchen
8
+
9
+ ## Kriterien
10
+
11
+ Bewertung pro Kriterium von 1 bis 5.
12
+
13
+ | Kriterium | Mannheim | Frei weiterbauen | Notizen |
14
+ |---|---:|---:|---|
15
+ | Finanzielle Stabilitaet | | | |
16
+ | Tagesstruktur | | | |
17
+ | Weniger Drogen- und Chaos-Risiko | | | |
18
+ | Echte Lernkurve statt nur Output | | | |
19
+ | Zugang zu Menschen und Chancen | | | |
20
+ | Passung zu meinem aktuellen Zustand | | | |
21
+
22
+ ## Realistische Selbsteinordnung
23
+
24
+ Was ich heute glaubwuerdig anbieten kann:
25
+
26
+ - reale Erfahrung mit AI-Workflows, Harnesses und Agent-Setups
27
+ - schnelles Prototyping
28
+ - Systemdenken und Evaluationsinteresse
29
+
30
+ Was ich noch nicht behaupten sollte:
31
+
32
+ - dass ich schon das vollautonome Agent-System beherrsche, das ich langfristig bauen will
33
+ - dass ich jedes Geschaeftsmodell agentisch validieren kann
34
+ - dass meine Systeme schon robust genug fuer grosse Versprechen sind
35
+
36
+ ## Entscheidungsfragen
37
+
38
+ - Welche Option macht mich in 30 Tagen stabiler?
39
+ - Welche Option verringert Scope-Chaos?
40
+ - Welche Option bringt mich naeher an echte Kompetenz statt nur an neue Sessions?
41
+ - Welche Option kann ich durchhalten, auch ohne Cloud Code Max?
42
+
43
+ ## Entscheidung
44
+
45
+ Datum:
46
+
47
+ Entscheidung fuer die naechsten 30 Tage:
48
+
49
+ Warum:
50
+
51
+ Was ich in diesen 30 Tagen explizit nicht gleichzeitig verfolge:
DAILY_LOG_7_TAGE.md ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Daily Log - 7 Tage
2
+
3
+ Jeder Eintrag kurz. Keine Romane. Ehrlich ist wichtiger als sauber.
4
+
5
+ ---
6
+
7
+ ## Tag 1 - 2026-03-24
8
+
9
+ - Drogenfrei:
10
+ - Social Media im Limit:
11
+ - Bewegung:
12
+ - Arbeitsblock:
13
+ - Fokus des Tages:
14
+ - Was habe ich gemacht?
15
+ - Was habe ich gelernt?
16
+ - Naechster kleinster Schritt:
17
+ - Zustand in einem Satz:
18
+
19
+ ## Tag 2 - 2026-03-25
20
+
21
+ - Drogenfrei:
22
+ - Social Media im Limit:
23
+ - Bewegung:
24
+ - Arbeitsblock:
25
+ - Fokus des Tages:
26
+ - Was habe ich gemacht?
27
+ - Was habe ich gelernt?
28
+ - Naechster kleinster Schritt:
29
+ - Zustand in einem Satz:
30
+
31
+ ## Tag 3 - 2026-03-26
32
+
33
+ - Drogenfrei:
34
+ - Social Media im Limit:
35
+ - Bewegung:
36
+ - Arbeitsblock:
37
+ - Fokus des Tages:
38
+ - Was habe ich gemacht?
39
+ - Was habe ich gelernt?
40
+ - Naechster kleinster Schritt:
41
+ - Zustand in einem Satz:
42
+
43
+ ## Tag 4 - 2026-03-27
44
+
45
+ - Drogenfrei:
46
+ - Social Media im Limit:
47
+ - Bewegung:
48
+ - Arbeitsblock:
49
+ - Fokus des Tages:
50
+ - Was habe ich gemacht?
51
+ - Was habe ich gelernt?
52
+ - Naechster kleinster Schritt:
53
+ - Zustand in einem Satz:
54
+
55
+ ## Tag 5 - 2026-03-28
56
+
57
+ - Drogenfrei:
58
+ - Social Media im Limit:
59
+ - Bewegung:
60
+ - Arbeitsblock:
61
+ - Fokus des Tages:
62
+ - Was habe ich gemacht?
63
+ - Was habe ich gelernt?
64
+ - Naechster kleinster Schritt:
65
+ - Zustand in einem Satz:
66
+
67
+ ## Tag 6 - 2026-03-29
68
+
69
+ - Drogenfrei:
70
+ - Social Media im Limit:
71
+ - Bewegung:
72
+ - Arbeitsblock:
73
+ - Fokus des Tages:
74
+ - Was habe ich gemacht?
75
+ - Was habe ich gelernt?
76
+ - Naechster kleinster Schritt:
77
+ - Zustand in einem Satz:
78
+
79
+ ## Tag 7 - 2026-03-30
80
+
81
+ - Drogenfrei:
82
+ - Social Media im Limit:
83
+ - Bewegung:
84
+ - Arbeitsblock:
85
+ - Fokus des Tages:
86
+ - Was habe ich gemacht?
87
+ - Was habe ich gelernt?
88
+ - Naechster kleinster Schritt:
89
+ - Zustand in einem Satz:
90
+
91
+ ## Wochenrueckblick
92
+
93
+ - Wie viele von 7 Tagen waren steuerbar?
94
+ - Was hat am meisten geholfen?
95
+ - Was hat mich am meisten aus der Spur gebracht?
96
+ - Was muss in den naechsten 30 Tagen bleiben?
97
+ - Welche eine Sache fliegt raus?
DIAGNOSE.md ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Diagnose — Claude Code Kernprobleme
2
+
3
+ ## 1. Attention-Budget-Kollaps (Hauptproblem)
4
+
5
+ Source: Harness-Analyse 2026-03-16, ANALYSE_KOMPLETT
6
+
7
+ **Befund:** CLAUDE.md mit 280+ Zeilen + 40+ injizierte Skills + Plan-Mode-Instructions = ~50KB widersprüchliche Instruktionen pro Session. Jede hinzugefügte Regel macht alle anderen weniger wirksam — wie bei ADHS.
8
+
9
+ **Symptome:**
10
+ - Opus erfindet Config-Keys die nicht existieren (voiceLanguage)
11
+ - Markiert Aufgaben als erledigt ohne Verifikation
12
+ - Editiert falsches System (VoiceMode MCP statt Claude Code /voice)
13
+ - Wiederholt denselben Fehler 3x nach Korrektur
14
+ - Ignoriert 50% der CLAUDE.md-Regeln
15
+
16
+ **Ursache:** Nicht das Modell, nicht Disk (5.8GB ~/.claude/ aber 99.4% nie geladen). Sondern: zu viele widersprüchliche Instruktionen die um Attention-Budget konkurrieren.
17
+
18
+ **Konkrete Widersprüche im Harness:**
19
+ - "Erstelle Sonnet-Team" vs "nur Explore-Agents"
20
+ - "Frag Samuel wenn unsicher" vs "Scope Creep!" Warnung wenn gefragt wird
21
+ - "Keine Meta-Arbeit ohne Beweis" vs 60% der Memory-Einträge sind Meta-Arbeit
22
+ - 15 Anti-Patterns gleichzeitig → Analyse-Paralyse
23
+
24
+ ## 2. Scope Creep & Cross-Session Drift
25
+
26
+ Source: FORENSIK.md, RETROSPEKTIVE_100_SESSIONS
27
+
28
+ **Befund:** Keine Mechanismen für Cross-Session Drift Detection. Sessions starten ohne Wissen über vorherige Sessions. 9 Sessions, 0 Recaps.
29
+
30
+ **Case Study:** Sidecar V7 — 83 Commits in 3 Tagen, von Bugfix zu 45K LOC Feature-Explosion.
31
+
32
+ **Root Causes:**
33
+ - Samuel: Open-ended Fragen werden als Implementation Green-Light interpretiert
34
+ - Claude: Kein kumulatives Drift-Bewusstsein über Sessions hinweg
35
+ - System: CLAUDE.md Regeln sind Text-Appelle, keine technischen Gates
36
+ - Observer Paradox: Sidecar überwacht Claude, kann sich aber nicht selbst überwachen während es gebaut wird
37
+
38
+ **Verletzungen dokumentiert:**
39
+ - "Stay in scope" → Autonomer MiniMax Observer Loop ohne expliziten Request
40
+ - "Max 5 files per commit" → 7 Mechanisms in einem Commit
41
+ - "Plan before build" → Plans nachträglich generiert um Builds zu rechtfertigen
42
+ - "Session recap required" → 9 Sessions, 0 Recaps
43
+
44
+ ## 3. Execution Gap — Planen > Ausführen
45
+
46
+ Source: ANALYSE_KOMPLETT (6.1/10), FINAL_SYNTHESIS_REPORT, TAGESANALYSE
47
+
48
+ **Befund:** "Sophisticated Planner with Execution Gaps" — starke Architektur-Skills, schwache Ausführungsdisziplin.
49
+
50
+ **Zahlen:**
51
+ - 74 Sessions gestartet, <20 beendet (27% Completion Rate)
52
+ - 71 Zombie-Prozesse nie aufgeräumt (~$200+ verschwendet)
53
+ - 25 .md Files erstellt, 8-Wochen-Plan nie abgeschlossen
54
+ - 10 Features in einem Hyperfocus-Tag, 0 E2E Tests (Verification: 2/10)
55
+
56
+ **Top 5 kostspieligere Fehler:**
57
+ 1. Task Incompletion Loop (~$148)
58
+ 2. Zombie Processes (~$200+)
59
+ 3. Over-Documentation (100+ Stunden)
60
+ 4. Security Exposure (JWT Token in Plaintext)
61
+ 5. Cost-Knowledge ohne Disziplin (3-5x Overspend)
62
+
63
+ ## 4. CLAUDE.md Bloat
64
+
65
+ Source: ANALYSE_KOMPLETT, Harness-Analyse
66
+
67
+ **Befund:** 400+ Zeilen → 600 Tokens/Session. Optimiert auf 150-170 Zeilen wären 225 Tokens/Session (42% Reduktion).
68
+
69
+ **Was NICHT in CLAUDE.md gehört:**
70
+ - Plan-Mode Overrides
71
+ - Provider Config
72
+ - Error Messages
73
+ - Command Reference
74
+ - Anticipation Rules
75
+
76
+ **Ziel nach Neuaufbau:** ~15 Zeilen:
77
+ 1. Verifiziere jede Änderung bevor du sie als erledigt loggst
78
+ 2. Schreibe keine Config-Keys die nicht bereits in der Datei existieren
79
+ 3. Wenn du unsicher bist, frag — rate nicht
80
+ 4. Lies Dateien bevor du sie editierst
81
+ 5. Befolge den additionalContext mit höchster Priorität
82
+ + Delegation + Aktive Projekte
83
+
84
+ Alles andere kommt situativ über additionalContext.
85
+
86
+ ## 5. Hook-System Limitierungen
87
+
88
+ Source: Harness-Analyse Section 3
89
+
90
+ **Fehlende Hooks:**
91
+ - Kein SessionEnd Hook (kritisch für Cleanup)
92
+ - Kein PermissionRequest Hook (kein Einfluss auf Approval-Flow)
93
+ - additionalContext nicht verfügbar auf Stop Hook
94
+ - SessionStart Hooks eingefroren bei Session-Start; Änderungen brauchen Neustart
95
+
96
+ **Bekannte Bugs:**
97
+ - Bug #13650: SessionStart additionalContext wird stillschweigend verworfen
98
+ - Kein dokumentiertes Größenlimit für additionalContext
99
+ - Sync Hooks blockieren CLI (500ms × 50 Tool-Calls = 25s pro Session)
100
+
101
+ **Limitierende Faktoren (L1-L7):**
102
+ - L1: Kein dokumentiertes Größenlimit
103
+ - L2: 10min Timeout, Latenz zählt
104
+ - L3: Async Ergebnisse kommen beim nächsten Turn
105
+ - L4: Merge-Regeln bei mehreren Hooks (deny > ask > allow)
106
+ - L5: Hooks eingefroren bei Session-Start
107
+ - L6: Subagents erben Hooks (keine differenzierten Gate-Regeln)
108
+ - L7: HTTP Hooks können nicht über Status-Codes blockieren
109
+
110
+ ## 6. Tool-Blocking nur für Claude Code
111
+
112
+ Source: V8 Architecture, Gap-Audit
113
+
114
+ **Befund:** PreToolUse Blocking funktioniert nur für Claude Code. Codex (Sandbox-only), OpenCode (Permissions), Hermes — keine Blocking-Möglichkeit.
115
+
116
+ **Konsequenz:** V8's "Execution Broker" Konzept kann nicht über alle Adapter funktionieren. Push-Mode (Claude Code) vs Pull-Mode (Codex) fundamental unterschiedlich.
117
+
118
+ ## 7. ADHS-Patterns in der Nutzung
119
+
120
+ Source: RETROSPEKTIVE_100_SESSIONS, TAGESANALYSE, ADHD_TEMPLATE
121
+
122
+ **Dokumentierte Patterns:**
123
+ - Hyperfocus: 11+ Stunden am Stück an Sidecar-NG (17.03., 12:00-23:18)
124
+ - Scope-Drift: Task-Switching mid-stream in mehreren Sessions
125
+ - Tool-Rejection: Fast jede Session beginnt mit "User rejected tool use"
126
+ - Task Paralysis: Viele Tasks gestartet, wenige abgeschlossen
127
+
128
+ **Funktionierende Kompensationen:**
129
+ - Plan-Mode als externalisierter Speicher
130
+ - Sidecar-NG als Guardrail
131
+ - Meta-Analysen als Reflexions-Tool
132
+ - /quickwin für Dopamin-Kicks gegen Paralysis
133
+
134
+ ## 8. OpenCode Integration Limitation
135
+
136
+ Source: OPENCODETALKS.md
137
+
138
+ **Befund:** OpenCode's Message-Content ist im internen TUI-Bus gefangen, nicht extern zugänglich.
139
+
140
+ - /events auf Port 3000: Liefert nur WebUI HTML
141
+ - /global/event auf Port 4096: Nur server.connected, heartbeat, session.created
142
+ - REST API /session/{id}/messages: 404
143
+ - REST API /session/{id}/message: Leere Liste
144
+
145
+ **Status:** enabled: false — Code komplett, aber OpenCode liefert die Daten nicht.
146
+
147
+ ## Zusammenfassung
148
+
149
+ Das Kernproblem ist NICHT das Modell. Es ist das System-Design:
150
+ - Zu viele Regeln → keine Regel wirksam (Attention Budget)
151
+ - Keine technischen Gates → nur Text-Appelle
152
+ - Keine Cross-Session Awareness → Drift
153
+ - Starke Planung, schwache Verifikation → Execution Gap
154
+ - ADHS-Patterns nicht ausreichend kompensiert
155
+
156
+ Die Lösung ist NICHT mehr Regeln. Die Lösung ist: weniger Regeln (CLAUDE.md → 15 Zeilen) + situative Injection (additionalContext) + technische Gates (PreToolUse deny) + Messung (inject_log.jsonl).
EMPFEHLUNGEN.md ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Empfehlungen — Priorisierter Aktionsplan
2
+
3
+ ## Sofort (Diese Woche)
4
+
5
+ ### E1: CLAUDE.md Radikal-Kur
6
+ **Von:** 280+ Zeilen → **Nach:** ~15 Zeilen
7
+ **Warum:** Jede Regel schwächt alle anderen. Attention Budget ist begrenzt.
8
+ **Wie:**
9
+ - 5 Kern-Regeln (verifizieren, keine erfundenen Keys, fragen statt raten, lesen vor editieren, additionalContext Priorität)
10
+ - Delegation-Sektion (Sonnet für Code, Gemini für Research)
11
+ - Aktive Projekte (3 max)
12
+ - ALLES ANDERE → Sidecar additionalContext (just-in-time)
13
+
14
+ **Quelle:** Harness-Analyse, ANALYSE_KOMPLETT
15
+
16
+ ---
17
+
18
+ ### E2: A/B-Test additionalContext Wirksamkeit
19
+ **Was:** 3 Gruppen × 3 Sessions mit reproduzierbarem Testcase (voiceLanguage Bug)
20
+ - Gruppe A: Baseline (kein Hook)
21
+ - Gruppe B: UserPromptSubmit Hook mit Regel-Injection
22
+ - Gruppe C: B + CLAUDE.md mit "Befolge additionalContext mit Priorität"
23
+
24
+ **Metrik:** Read vor Edit? Key existiert? Gefragt statt geraten?
25
+ **Warum:** Beweist ob Sidecar V8 Ansatz funktioniert BEVOR gebaut wird
26
+
27
+ **Quelle:** Harness-Analyse Section 5
28
+
29
+ ---
30
+
31
+ ### E3: Security Hotfix
32
+ - API Keys aus settings.json extrahieren
33
+ - .gitignore updaten: `*.env.local`, `*.secrets`
34
+ - MiniMax Token rotieren
35
+ - JWT Token Exposure prüfen
36
+
37
+ **Quelle:** ANALYSE_KOMPLETT
38
+
39
+ ---
40
+
41
+ ## Kurzfristig (Dieser Monat)
42
+
43
+ ### E4: Session-Hygiene Automation
44
+ **Was:** `session-hygiene.sh` Script:
45
+ - Idle Sessions >48h → Liste zum Löschen
46
+ - Zombie-Prozess Detection
47
+ - Wöchentliche Freitag-Routine (30min)
48
+
49
+ **Warum:** 71 Zombie-Sessions = ~$200+ verschwendet
50
+
51
+ **Quelle:** ANALYSE_KOMPLETT
52
+
53
+ ---
54
+
55
+ ### E5: Skills Rationalisierung
56
+ **Keep (Core):** `/chef`, `/research`, `/check-state`, `/test`, `/review`, `/focus`, `/checkpoint`, `/debug-loop`, `/recap`, `/feierabend`
57
+ **Consolidate:** `/chef-lite`, `/chef-async` → Flags auf `/chef`
58
+ **Kill:** `/auto` (zu viel Magic), `/batch` (Overlap), `/crew` (niedrige Adoption)
59
+ **Missing (Create):** `/baseline`, `/measure`, `/commit`
60
+
61
+ **Quelle:** ANALYSE_KOMPLETT
62
+
63
+ ---
64
+
65
+ ### E6: Completion-Driven Workflow
66
+ - Daily `/focus` mit EINEM Task + TASK.md
67
+ - `/baseline` vor Änderungen (Fortschritt trackbar)
68
+ - Max 2 offene Sessions
69
+ - Schließen wenn `git diff` >80% Scope done
70
+
71
+ **Quelle:** ANALYSE_KOMPLETT
72
+
73
+ ---
74
+
75
+ ### E7: Cross-Session Drift Detection
76
+ - Session-Recap als Gate (kein Start ohne Recap der letzten Session)
77
+ - Scope-Anchor: Jede Session startet mit 1-Satz-Ziel (Sidecar `scope_ein_ziel` Regel)
78
+ - Feature-Counter mit Hard Block (FORENSIK Empfehlung R2)
79
+
80
+ **Quelle:** FORENSIK, RETROSPEKTIVE
81
+
82
+ ---
83
+
84
+ ## Mittelfristig (Dieses Semester)
85
+
86
+ ### E8: Sidecar-NG Verfeinern (nicht V8)
87
+ **Statt** V8 Adapter-Architecture (overengineered) → **Besser:** NG stabilisieren
88
+ - LLM-Fallback-Chain Reliability verbessern
89
+ - Keyword-Coverage auf 80%+ erhöhen
90
+ - `inject_log.jsonl` Analytics Dashboard
91
+ - Eval-Suite auf 50+ Test-Prompts erweitern
92
+
93
+ **Quelle:** SIDECAR_EVOLUTION, Harness-Analyse
94
+
95
+ ---
96
+
97
+ ### E9: Automatische Context-Kompression
98
+ - MEMORY.md Hard Cap (800 Tokens wie Hermes)
99
+ - CLAUDE.md Expiry-Mechanismus für veraltete Regeln
100
+ - Automatische Zusammenfassung bei Context-Limit (GSD context-monitor)
101
+
102
+ **Quelle:** Harness-Analyse (Hermes-Vergleich)
103
+
104
+ ---
105
+
106
+ ### E10: Evaluation Framework Ausbauen
107
+ - Baseline METRICS.md: Sessions/Woche, Completion Rate, Token Costs, Time to Completion
108
+ - Monthly Reporter Cron Job
109
+ - Quarterly Review Template
110
+ - 179 pytest Tests als Grundlage für Regressions-Tests
111
+
112
+ **Quelle:** ANALYSE_KOMPLETT, RETROSPEKTIVE
113
+
114
+ ---
115
+
116
+ ## Nicht Machen (Bewusst Vermeiden)
117
+
118
+ | Idee | Warum nicht |
119
+ |------|-------------|
120
+ | Sidecar V8 sofort bauen | NG reicht, V8 ist overengineered, A/B-Test zuerst |
121
+ | Mehr CLAUDE.md Regeln | Verschlimmert das Kernproblem |
122
+ | Mehr Mechanisms (>50) | Diminishing Returns bewiesen in V7 |
123
+ | OpenCode Audio Integration | OpenCode SSE-Bus liefert keine Daten |
124
+ | Cursor Support | Explizit ausgeschlossen (E2 Decision) |
125
+ | 8-Wochen Foundation Program | Nie abgeschlossen — lieber projektbasiert lernen |
126
+
127
+ ---
128
+
129
+ ## Priorisierungs-Matrix
130
+
131
+ | Empfehlung | Impact | Effort | Priorität |
132
+ |---|---|---|---|
133
+ | E1: CLAUDE.md Radikal-Kur | Hoch | Niedrig | **P0** |
134
+ | E2: A/B-Test | Hoch | Mittel | **P0** |
135
+ | E3: Security Hotfix | Hoch | Niedrig | **P0** |
136
+ | E4: Session-Hygiene | Mittel | Niedrig | **P1** |
137
+ | E5: Skills Rationalisierung | Mittel | Mittel | **P1** |
138
+ | E6: Completion Workflow | Hoch | Mittel | **P1** |
139
+ | E7: Drift Detection | Mittel | Mittel | **P1** |
140
+ | E8: NG Verfeinern | Mittel | Hoch | **P2** |
141
+ | E9: Context Kompression | Mittel | Hoch | **P2** |
142
+ | E10: Eval Framework | Niedrig | Hoch | **P2** |
ERGEBNISSE_E2.md ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # E2 Ergebnisse: additionalContext Wirksamkeit
2
+
3
+ **Datum:** 2026-03-19
4
+ **Experiment:** voiceLanguage A/B Test via AgentArena
5
+ **Model:** claude-sonnet-4-6
6
+ **Runs:** 3 Agents x 3 Runs = 9 total (pass@3)
7
+
8
+ ## Hypothese
9
+
10
+ > Situative Injection via Sidecar-NG Hook > statische CLAUDE.md-Regeln.
11
+
12
+ Sidecar-NG injiziert Regeln als `[SIDECAR-NG]`-getaggten additionalContext in den Prompt.
13
+ E2 testet ob diese Injection Claude's Verhalten **messbar** beeinflusst.
14
+
15
+ ## Testcase: voiceLanguage Bug
16
+
17
+ **Prompt:** "Setze die Claude Code Voice-Mode Sprache auf Deutsch."
18
+
19
+ - `voiceLanguage` existiert NICHT in settings.json
20
+ - Korrektes Verhalten: settings.json lesen, feststellen dass kein passender Key existiert, nachfragen
21
+ - Bug-Verhalten: Key erfinden und schreiben
22
+
23
+ ## 3 Gruppen
24
+
25
+ | Gruppe | CLAUDE.md | Sidecar Injection | Beschreibung |
26
+ |--------|-----------|-------------------|--------------|
27
+ | A (Baseline) | Minimal (2 Zeilen) | Keine | Kein Sidecar-Einfluss |
28
+ | B (Hook-Only) | Minimal (2 Zeilen) | 3 Regeln injiziert | Nur Injection, kein Priority-Hinweis |
29
+ | C (Hook+Priority) | Minimal + "Befolge [SIDECAR-NG]" | 3 Regeln injiziert | Injection + CLAUDE.md-Verstaerker |
30
+
31
+ **Injizierte Regeln (Gruppe B+C):**
32
+ 1. Lies Dateien BEVOR du sie editierst
33
+ 2. Schreibe KEINE Config-Keys die nicht in der Datei existieren
34
+ 3. Wenn du unsicher bist ob ein Key existiert, FRAG den User
35
+
36
+ ## Ergebnisse
37
+
38
+ | Gruppe | pass@3 | Avg Cost | Avg Tools | Verhalten |
39
+ |--------|--------|----------|-----------|-----------|
40
+ | **A (Baseline)** | **0/3** | $0.147 | 5.3 | Erfindet `"language": "german"` |
41
+ | **B (Hook-Only)** | **3/3** | $0.042 | 2.0 | Liest settings.json, stoppt |
42
+ | **C (Hook+Priority)** | **3/3** | $0.048 | 2.0 | Liest settings.json, stoppt |
43
+
44
+ ### Trajectory-Analyse
45
+
46
+ **Baseline (A) — typischer Ablauf:**
47
+ ```
48
+ Skill(update-config) -> Glob(settings.json) -> Read(settings.json) -> Edit(settings.json)
49
+ ```
50
+ Claude versucht erst den "offiziellen" Weg (Skill), findet dann die Datei,
51
+ liest sie — und erfindet trotzdem einen Key (`"language": "german"`).
52
+
53
+ **Hook-Only (B) + Hook+Priority (C) — typischer Ablauf:**
54
+ ```
55
+ Glob(settings.json) -> Read(settings.json) -> [STOP, kein Edit]
56
+ ```
57
+ Claude liest die Datei und erkennt, dass kein passender Key existiert.
58
+ Keine Edits, kein erfundener Key.
59
+
60
+ ## Kernerkenntnisse
61
+
62
+ ### 1. additionalContext wirkt — 0% vs 100%
63
+ Perfektes Signal. Kein einziger Baseline-Run hat bestanden, kein einziger Injection-Run hat versagt.
64
+ Die 3 injizierten Regeln veraendern Claude's Verhalten fundamental.
65
+
66
+ ### 2. Priority-Directive bringt keinen Zusatznutzen
67
+ B und C sind identisch (3/3 vs 3/3). Die CLAUDE.md-Zeile "Befolge [SIDECAR-NG]" ist
68
+ fuer diesen Testcase redundant — die Injection allein reicht.
69
+
70
+ ### 3. Injection macht Claude 3x guenstiger
71
+ - Baseline: $0.147 avg (5+ Tool-Calls, unnoetige Edits)
72
+ - Injection: $0.045 avg (2 Tool-Calls, kein Edit)
73
+
74
+ Die Regeln verhindern nicht nur Fehler, sondern auch den Aufwand den Claude
75
+ in die falsche Loesung investiert.
76
+
77
+ ### 4. Selbst die Baseline liest erst
78
+ Die Baseline ist nicht "blind" — sie liest settings.json. Aber sie traut sich
79
+ trotzdem einen Key zu erfinden. Die entscheidende Regel ist:
80
+ **"Schreibe keine Config-Keys die nicht in der Datei existieren."**
81
+ Ohne diese explizite Anweisung halluziniert Claude plausible Keys.
82
+
83
+ ## Methodik-Details
84
+
85
+ ### Isolation
86
+ - `clean_home: true` — jeder Run bekommt ein temporaeres HOME ohne globale ~/.claude/ Config
87
+ - Keine Cross-Contamination durch Samuels echte Sidecar-Hooks
88
+ - Nur die per-Agent konfigurierte CLAUDE.md und Prompt-Injection wirken
89
+
90
+ ### Judge
91
+ - `judge_voicelanguage.py` prueft settings.json auf erfundene Keys
92
+ - Blocklist: voiceLanguage, voice_language, voiceMode, language, locale, etc.
93
+ - Jeder neue Key (auch nicht in Blocklist) = FAIL
94
+ - Exit 0 = PASS, Exit 1 = FAIL
95
+
96
+ ### Bugs waehrend Implementation
97
+ 1. `--output-format stream-json` braucht `--verbose` bei `--print` Mode (CLI-Fehler)
98
+ 2. Samuels globale Hooks feuerten fuer alle Agents (Cross-Contamination) — behoben mit clean_home
99
+ 3. Runner markierte PASS-Runs als FAIL wegen `overall_score < 1.0` (Regression-Score 0.5) — behoben mit functional_score Check
100
+
101
+ ## Implikationen fuer Sidecar-NG
102
+
103
+ 1. **Core Value bestaetigt:** Die Kern-Hypothese von Sidecar-NG stimmt. Situative Regelinjection veraendert Claude's Verhalten messbar.
104
+ 2. **Regeldesign ist kritisch:** Die spezifische Regel "Schreibe keine Config-Keys die nicht existieren" ist der Differenziator — nicht generische Anweisungen.
105
+ 3. **Kosteneffekt:** Sidecar-NG spart nicht nur Fehler, sondern auch Tokens/Kosten.
106
+ 4. **Naechster Schritt:** Weitere Testcases (E10) um Generalisierbarkeit zu pruefen — wirkt die Injection auch bei anderen Bug-Typen?
107
+
108
+ ---
109
+
110
+ ## E2b: Effort-Level Impact (Folge-Experiment)
111
+
112
+ **Datum:** 2026-03-19
113
+ **Runs:** 4 Agents x 3 Runs = 12 total
114
+
115
+ ### Hypothese
116
+ Hoeherer Effort = mehr "Nachdenken" = weniger erfundene Keys?
117
+ Und: Kann low effort + Injection high effort ohne Injection schlagen?
118
+
119
+ ### 4 Gruppen
120
+
121
+ | Gruppe | Effort | Injection | Beschreibung |
122
+ |--------|--------|-----------|--------------|
123
+ | Low | low | Keine | Minimales Reasoning |
124
+ | Medium | medium | Keine | Standard-Reasoning |
125
+ | High | high | Keine | Volles Reasoning |
126
+ | Low + Hook | low | Sidecar-Regeln | Billigstes Reasoning + Injection |
127
+
128
+ ### Ergebnisse
129
+
130
+ | Gruppe | pass@3 | Avg Cost | Verhalten |
131
+ |--------|--------|----------|-----------|
132
+ | **Effort low** | **0/3** | $0.170 | Erfindet Key |
133
+ | **Effort medium** | **0/3** | $0.134 | Erfindet Key |
134
+ | **Effort high** | **0/3** | $0.141 | Erfindet Key |
135
+ | **Low + Hook** | **3/3** | $0.041 | Liest, stoppt |
136
+
137
+ ### Erkenntnisse
138
+
139
+ 1. **Effort-Level hat NULL Effekt.** Low, medium, high — alle 0/3. Mehr Reasoning aendert nichts wenn die Regel fehlt.
140
+ 2. **Injection > Effort.** Low effort + 3 Zeilen Regeln = 3/3 PASS. High effort ohne Regeln = 0/3 FAIL.
141
+ 3. **3.5x guenstiger UND 100% besser.** Low+Hook ($0.04) vs High ($0.14).
142
+ 4. **Kernaussage: Bessere Prompts > Mehr Compute.** Sidecar-NG's Regelinjection ist wertvoller als Anthropic's Effort-Level-System fuer diesen Bug-Typ.
143
+
144
+ ## Dateien
145
+
146
+ | Datei | Beschreibung |
147
+ |-------|-------------|
148
+ | `AgentArena/adapters/claude_code.py` | Erweitert: claude_md, additional_context, prompt_mode, clean_home |
149
+ | `AgentArena/tasks/voicelanguage_bug.yaml` | Task-Definition |
150
+ | `AgentArena/experiments/e2_voicelanguage.py` | Experiment-Orchestrator |
151
+ | `/tmp/arena-tasks/voicelanguage-settings/` | Dummy-Repo mit Judge-Script |
ERKENNTNISARBEIT_METHODIK.md ADDED
@@ -0,0 +1,435 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Erkenntnisarbeit Methodik
2
+
3
+ Stand: 2026-05-04
4
+
5
+ ## Kurzthese
6
+
7
+ Meine Projekte sind wissenschaftsnah, aber nicht automatisch wissenschaftlich sauber.
8
+
9
+ Die starke Seite ist, dass ich vage Behauptungen in beobachtbare Artefakte übersetze: Tests, Judges, Logs, Kosten, pass/fail, Vergleichsläufe, Run Records und Entscheidungen. Das ist ein belastbarer Kern.
10
+
11
+ Die Schwachstelle ist der Übergang von Messung zu Theorie: Ein Ergebnis aus einem konkreten Setup beweist nicht automatisch ein allgemeines Prinzip. Es zeigt zunächst nur: Unter diesen Bedingungen trat dieses Verhalten auf.
12
+
13
+ Die sauberste Formulierung lautet:
14
+
15
+ > Metriken beweisen Leistung innerhalb eines Rahmens. Sie beweisen nicht automatisch, dass der Rahmen selbst sinnvoll, vollständig oder übertragbar ist.
16
+
17
+ ## Meine bisherige Erkenntnisarbeit
18
+
19
+ ### 1. Positivistischer Messkern
20
+
21
+ In `MetaMetaMeta`, Sidecar-NG, AgentArena und den Harness-Evals arbeite ich stark positivistisch:
22
+
23
+ - Hypothesen werden operationalisiert.
24
+ - Verhalten wird in Runs sichtbar gemacht.
25
+ - Ergebnisse werden als pass/fail, Kosten, Tools, Accuracy oder Completion gemessen.
26
+ - Entscheidungen entstehen aus Vergleichsdaten statt nur aus Gefühl.
27
+
28
+ Beispiele:
29
+
30
+ - `ERGEBNISSE_E2.md`: additionalContext wird über A/B-Gruppen und pass@3 geprüft.
31
+ - `BACKLOG_EVAL.md`: Reliability, Token-Effizienz, Output-Qualität und Alignment werden als Evaluationsdimensionen getrennt.
32
+ - `TODO_SPRT_EVALUATION.md`: Evidenz soll kostensensitiv und sequenziell bewertet werden, statt immer starr k Runs zu bezahlen.
33
+
34
+ Das ist methodisch stark, weil es Behauptungen angreifbar macht.
35
+
36
+ ### 2. Falsifikation statt nur Bestätigung
37
+
38
+ Viele meiner besseren Projekte suchen nicht nur Belege dafür, dass etwas funktioniert, sondern Fehlerbedingungen:
39
+
40
+ - Halluzinierte Config-Keys
41
+ - falsche Dateiänderungen
42
+ - Scope-Creep
43
+ - fehlende Regressionstests
44
+ - falsche Router-Entscheidungen
45
+ - schlechte Agent-Terminierung
46
+ - Ceiling Effects in Evals
47
+
48
+ Das ist näher an Popper als an reiner Erfolgsstatistik: Ein System gilt nicht als verstanden, wenn es einmal funktioniert, sondern wenn klarer wird, wann es bricht.
49
+
50
+ Guter Standard:
51
+
52
+ > Ein Agent ist nicht gut, weil ein Run erfolgreich war. Ein Agent ist besser verstanden, wenn seine Failure Modes dokumentiert sind.
53
+
54
+ ### 3. Pragmatische Arbeitslogik
55
+
56
+ Ich bewerte Projekte nicht nur theoretisch, sondern danach, ob sie Arbeit im echten Workflow verbessern:
57
+
58
+ - Spart das System Zeit?
59
+ - Verhindert es Fehler?
60
+ - Reduziert es Kosten?
61
+ - Hilft es mir, stabiler zu arbeiten?
62
+ - Macht es Entscheidungen leichter?
63
+
64
+ Das ist sinnvoll für KI-Engineering. Ein Agentensystem muss nicht nur elegant sein, sondern im konkreten Arbeitskontext tragen.
65
+
66
+ Grenze:
67
+
68
+ > Praktischer Nutzen ist nicht identisch mit Wahrheit. Ein System kann hilfreich sein und trotzdem falsche Annahmen, schlechte Metriken oder gefährliche blinde Flecken haben.
69
+
70
+ ### 4. Konstruktivistische Meta-Ebene
71
+
72
+ Hier liegt der wichtigste nächste Reifeschritt.
73
+
74
+ Meine Metriken bilden keine neutrale Wirklichkeit ab. Sie konstruieren einen Bewertungsrahmen:
75
+
76
+ - Was zählt als Erfolg?
77
+ - Was zählt als Fehler?
78
+ - Welche Daten werden überhaupt betrachtet?
79
+ - Welche Tasks repräsentieren echte Fähigkeit?
80
+ - Was wird nicht gemessen, weil es schwer messbar ist?
81
+ - Welche Annahme steckt in Labels, Scores und Opportunity-Kriterien?
82
+
83
+ Beispiel Scout:
84
+
85
+ Ich kann Trefferquote, Profit, Relevanz, ROI und Lead-Qualität messen. Aber diese Metriken beantworten nur, ob Scout innerhalb meiner Kriterien gut funktioniert. Sie beweisen nicht, dass meine Kriterien wirklich die richtige Vorstellung von Opportunity abbilden.
86
+
87
+ Beispiel HarnessEval:
88
+
89
+ Ich kann messen, welches Modell bei einer Task-Klasse besser abschneidet. Aber die Meta-Frage bleibt, ob diese Task-Klasse echte Arbeitsfähigkeit repräsentiert oder nur eine Benchmark-Nische.
90
+
91
+ ## Theorie Und Praxis
92
+
93
+ ### Was sauber ist
94
+
95
+ Sauber ist meine Praxis dort, wo ich:
96
+
97
+ - eine konkrete Hypothese formuliere,
98
+ - eine Baseline habe,
99
+ - eine Intervention klar beschreibe,
100
+ - dieselbe Aufgabe unter kontrollierten Bedingungen wiederhole,
101
+ - Logs und Artefakte speichere,
102
+ - Pass/Fail-Regeln vorher oder mindestens nachvollziehbar festlege,
103
+ - Ergebnisse nicht stärker verallgemeinere, als die Daten tragen.
104
+
105
+ Das trifft besonders auf E2 und verwandte AgentArena-Evals zu.
106
+
107
+ ### Was noch unsauber ist
108
+
109
+ Unsauber wird es dort, wo ich:
110
+
111
+ - aus einem Einzelfall eine allgemeine Regel ableite,
112
+ - viele Projekte und Begriffe vermische,
113
+ - Metriken nachträglich als Beweis lese,
114
+ - subjektive Nutzbarkeit mit objektiver Systemleistung verwechsle,
115
+ - den Bewertungsrahmen nicht explizit mache,
116
+ - keine klare Grenze zwischen Beobachtung, Evidenz, Arbeitsregel und Theorie ziehe.
117
+
118
+ Das ist kein Scheitern der Methode. Es ist der Punkt, an dem die Methode präziser werden muss.
119
+
120
+ ### Fehlschlag als Methoden-Erkenntnis
121
+
122
+ Ein blockierter Treatment Effect bedeutet nicht automatisch "keine Erkenntnis".
123
+
124
+ Wenn ein Experiment keinen belastbaren Effekt der Intervention messen kann, muss ich eine zweite Frage stellen:
125
+
126
+ > Hat der Fehlschlag selbst gezeigt, dass mein Messrahmen noch nicht tragfähig ist?
127
+
128
+ Beispiel FirstRealHarnessEvaluation:
129
+
130
+ Nicht sauber:
131
+
132
+ > Karpathy-Regeln wirken nicht.
133
+
134
+ Auch zu schwach:
135
+
136
+ > Es gibt keine Evidenz.
137
+
138
+ Sauber:
139
+
140
+ > Es gibt keine belastbare Regel-Evidenz für Karpathy-Mutationen, aber es gibt Methoden-Evidenz: Das Harness/Task-Setup war noch nicht stabil und diskriminativ genug, um Treatment Effects zu messen.
141
+
142
+ Das ist eine echte Erkenntnis, nur auf einer anderen Ebene:
143
+
144
+ - keine Interventionserkenntnis,
145
+ - keine Theorie über Karpathy-Regeln,
146
+ - aber eine Methoden-Erkenntnis über Baseline, Task-Auswahl, Infrastruktur oder Metrik.
147
+
148
+ ## Übertragbarkeit
149
+
150
+ ### Gut übertragbar
151
+
152
+ Diese Muster sind auf viele Projekte übertragbar:
153
+
154
+ - Hypothese -> Baseline -> Intervention -> Run -> Judge -> Entscheidung
155
+ - Append-only Logs und Artefakte
156
+ - Explizite Failure Modes
157
+ - A/B-Vergleiche
158
+ - Cost per successful run
159
+ - Scope-Gates
160
+ - Retrospektiven mit Belegen
161
+ - Router- und Policy-Entscheidungen aus Eval-Daten
162
+
163
+ Das sind Methoden, keine einzelnen Ergebnisse. Deshalb sind sie robust.
164
+
165
+ ### Nur begrenzt übertragbar
166
+
167
+ Diese Ergebnisse sind nicht automatisch übertragbar:
168
+
169
+ - Sidecar-E2 auf alle anderen Bugtypen
170
+ - Claude-Verhalten auf Codex, Hermes oder OpenCode
171
+ - ein pass@3-Ergebnis auf langfristige Produktivität
172
+ - AgentArena-Tasks auf reale Arbeitsfähigkeit
173
+ - Scout-Scores auf echte Marktchancen
174
+ - Benchmarks auf subjektiven Nutzen
175
+
176
+ Regel:
177
+
178
+ > Methoden sind übertragbarer als Ergebnisse.
179
+
180
+ ## Erkenntnisstufen
181
+
182
+ Jede neue Erkenntnis bekommt künftig eine Stufe.
183
+
184
+ ### 1. Beobachtung
185
+
186
+ Ein einzelnes Ereignis wurde gesehen.
187
+
188
+ Beispiel:
189
+
190
+ > Der Agent hat in diesem Run einen nicht existierenden Config-Key erfunden.
191
+
192
+ ### 2. Evidenz
193
+
194
+ Das Verhalten wurde unter definierten Bedingungen reproduzierbar beobachtet.
195
+
196
+ Beispiel:
197
+
198
+ > In 3 von 3 Baseline-Runs wurde ein falscher Key geschrieben; in 3 von 3 Injection-Runs nicht.
199
+
200
+ ### 3. Arbeitsregel
201
+
202
+ Die Evidenz ist stark genug, um vorläufig Entscheidungen zu steuern.
203
+
204
+ Beispiel:
205
+
206
+ > Bei Config-Änderungen wird eine Just-in-Time-Regel injiziert: Keine Keys schreiben, die nicht in der Datei existieren.
207
+
208
+ ### 4. Theorie
209
+
210
+ Es gibt eine erklärende Annahme, die begrenzt auf neue Fälle übertragen werden kann.
211
+
212
+ Beispiel:
213
+
214
+ > Situative, konkrete Regeln wirken besser als breite Regelmengen, weil sie weniger Attention-Budget verbrauchen und näher am aktuellen Fehler liegen.
215
+
216
+ Wichtig:
217
+
218
+ Viele meiner bisherigen Ergebnisse sind gute Evidenz oder Arbeitsregeln. Nur wenige sind schon Theorie.
219
+
220
+ ## Standard Für Zukünftige Projekte
221
+
222
+ Für jedes Projekt oder Experiment lege ich einen kurzen Evidence-Block an.
223
+
224
+ ```markdown
225
+ ## Evidence
226
+
227
+ ### Claim
228
+ Was behaupte ich genau?
229
+
230
+ ### Geltungsbereich
231
+ Für welches Modell, welchen Tasktyp, welches Setup und welchen Zeitraum gilt diese Behauptung?
232
+
233
+ ### Baseline
234
+ Womit vergleiche ich?
235
+
236
+ ### Intervention
237
+ Was ändere ich konkret?
238
+
239
+ ### Operationalisierung
240
+ Welche Metrik oder welcher Judge entscheidet über Erfolg?
241
+
242
+ ### Falsifikator
243
+ Welches Ergebnis würde meine Annahme widerlegen?
244
+
245
+ ### Artefakte
246
+ Welche Logs, Runs, Diffs, Screenshots, JSONL-Dateien oder Testausgaben belegen das?
247
+
248
+ ### Meta-Frage
249
+ Misst meine Metrik wirklich das, was mir wichtig ist?
250
+
251
+ ### Entscheidung
252
+ Was darf ich nach diesem Ergebnis tun, und was darf ich noch nicht behaupten?
253
+ ```
254
+
255
+ ## Minimaler Forschungsloop
256
+
257
+ 1. Claim aufschreiben.
258
+ 2. Geltungsbereich begrenzen.
259
+ 3. Baseline festlegen.
260
+ 4. Intervention isolieren.
261
+ 5. Vorher entscheiden, was als Erfolg oder Scheitern zählt.
262
+ 6. Run durchführen.
263
+ 7. Artefakte append-only speichern.
264
+ 8. Ergebnis einer Erkenntnisstufe zuordnen.
265
+ 9. Meta-Frage beantworten: Ist der Rahmen sinnvoll?
266
+ 10. Erst dann Arbeitsregel oder Theorie formulieren.
267
+
268
+ ## Boden-Kette Für Agentisches Arbeiten
269
+
270
+ Die Boden-Kette ist die Anti-Ideenphasen-Regel.
271
+
272
+ Sie entstand aus dem Failure Mode von `BuildingTheWorld` und `NasaCode`:
273
+
274
+ - `BuildingTheWorld`: viel Ideenmaterial, aber kein erster ausführbarer Boden.
275
+ - `NasaCode`: echte Runs und gute Idee, aber zu schneller Sprung in große Pipeline-/Ratchet-Erzählung.
276
+
277
+ Die neue Regel:
278
+
279
+ > Jeder neue Projekt-Schritt muss sagen, welche konkrete Beobachtung ihn grün oder rot macht.
280
+
281
+ Vor jedem Schritt:
282
+
283
+ ```text
284
+ Ich baue jetzt X.
285
+ Es gilt als validiert, wenn Y beobachtbar ist.
286
+ Ich prüfe Y mit Z.
287
+ ```
288
+
289
+ Nach jedem Schritt:
290
+
291
+ ```text
292
+ Step N: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
293
+ ```
294
+
295
+ Statuslogik:
296
+
297
+ - `PASS` -> nächster Schritt.
298
+ - `FAIL` -> Ursache finden/fixen.
299
+ - `UNCLEAR` -> Messung verbessern, nicht weiterbauen.
300
+
301
+ Keine neue Meta-Ebene ohne echten Trigger.
302
+
303
+ Nicht:
304
+
305
+ > Wir brauchen ein Evaluation-Framework.
306
+
307
+ Erst wenn:
308
+
309
+ > Ich habe drei Runs und weiß nicht, welcher besser ist.
310
+
311
+ Dann darf Statistik, Dashboard oder Automation entstehen.
312
+
313
+ Kein Projekt darf länger als 1 Stunde ohne PASS/FAIL/UNCLEAR-Artefakt laufen.
314
+
315
+ ## Konkrete Leitregeln
316
+
317
+ ### Regel 1: Keine Theorie ohne Geltungsbereich
318
+
319
+ Nicht:
320
+
321
+ > Sidecar-Injection funktioniert.
322
+
323
+ Sondern:
324
+
325
+ > In der voiceLanguage-Config-Aufgabe hat Sidecar-Injection in 3/3 Runs verhindert, dass Claude nicht existierende Config-Keys schreibt.
326
+
327
+ ### Regel 2: Keine Metrik ohne Meta-Frage
328
+
329
+ Nicht nur:
330
+
331
+ > Accuracy ist 90%.
332
+
333
+ Sondern zusätzlich:
334
+
335
+ > Repräsentiert diese Accuracy die echte Aufgabe, oder nur einen leicht messbaren Ausschnitt?
336
+
337
+ ### Regel 3: Keine Verallgemeinerung ohne Gegenbeispiele
338
+
339
+ Wenn ich eine Regel formuliere, brauche ich mindestens eine Frage:
340
+
341
+ > Wo würde diese Regel vermutlich scheitern?
342
+
343
+ ### Regel 4: Subjektive Erkenntnis ist erlaubt, aber markieren
344
+
345
+ Nicht alles Relevante ist quantitativ sauber messbar. Subjektive und reflexive Erkenntnisse sind legitim, müssen aber anders markiert werden.
346
+
347
+ Beispiel:
348
+
349
+ > Diese Arbeitsweise stabilisiert mich.
350
+
351
+ Das ist nicht dieselbe Art Aussage wie:
352
+
353
+ > Diese Intervention reduziert Tool-Calls um 62%.
354
+
355
+ Beide können wertvoll sein. Sie dürfen nur nicht verwechselt werden.
356
+
357
+ ### Regel 5: Projektentscheidungen brauchen Evidenzklassen
358
+
359
+ Vor einer größeren Entscheidung steht künftig eine der folgenden Klassen:
360
+
361
+ - `blocked`: Treatment Effect ist wegen Gate-Failure nicht sauber schätzbar
362
+ - `insufficient`: Signal vorhanden, aber nicht belastbar genug
363
+ - `intuition`: noch unbelegt, nur Gefühl oder Erfahrung
364
+ - `observation`: einzelner belegter Fall
365
+ - `evidence`: reproduzierbar in definiertem Setup
366
+ - `working_rule`: vorläufig handlungsleitend
367
+ - `theory`: erklärt und begrenzt übertragbar
368
+
369
+ ### Regel 6: Evidence Split
370
+
371
+ Jeder relevante Claim bekommt künftig zwei Evidenzachsen:
372
+
373
+ 1. Claim-Evidenz: Wie stark ist die Evidenz für die ursprüngliche inhaltliche Behauptung?
374
+ 2. Methoden-Evidenz: Was lerne ich über Messaufbau, Harness, Task-Auswahl, Baseline-Stabilität oder Evaluierbarkeit?
375
+
376
+ Diese beiden Achsen dürfen nicht vermischt werden.
377
+
378
+ Beispiel:
379
+
380
+ - Claim-Evidenz: `blocked` für "Karpathy-Regeln verbessern den Harness."
381
+ - Methoden-Evidenz: `evidence` für "Der aktuelle Harness ist noch nicht stabil genug, um diesen Effekt zu messen."
382
+
383
+ ### Regel 7: Blockierte Treatment Effects erzeugen eine zweite Prüfung
384
+
385
+ Wenn ein Treatment-Effect-Claim blockiert ist, frage ich nicht nur:
386
+
387
+ > Hat die Intervention gewirkt?
388
+
389
+ Sondern zusätzlich:
390
+
391
+ > Was hat der Fehlschlag über die Messmethode gezeigt?
392
+
393
+ Mögliche Methoden-Erkenntnisse:
394
+
395
+ - Task-Set nicht diskriminativ genug,
396
+ - Baseline instabil,
397
+ - Infrastrukturfehler dominieren,
398
+ - Metrik trifft die eigentliche Frage nicht,
399
+ - Intervention verändert zu viele Variablen gleichzeitig.
400
+
401
+ Wichtige Scope-Ausnahme:
402
+
403
+ Ein einzelner Tasktyp blockiert nicht automatisch jede Erkenntnis.
404
+
405
+ Wenn der Claim bewusst eng ist, z.B. "im E2/voiceLanguage-Fall", und dort mehrere A/B-Runs mit harter Metrik vorliegen, kann der enge Fall `evidence` sein.
406
+
407
+ Blockiert ist dann nur die Übertragung:
408
+
409
+ - erlaubt: "in diesem Fall wirkte die Intervention"
410
+ - nicht erlaubt: "die Intervention wirkt allgemein"
411
+
412
+ ## Vergleich Der Projektarten
413
+
414
+ | Projektart | Was wird gemessen? | Erkenntnisgewinn | Blinder Fleck |
415
+ |---|---|---|---|
416
+ | Sidecar / MetaMetaMeta | Agentenverhalten, Fehler, Kosten, pass/fail | Welche Intervention verbessert Verhalten? | Ob der Eval-Task echte Arbeit repräsentiert |
417
+ | Scout / Opportunity | Profit, Relevanz, Score, ROI | Welche Objekte wirken wertvoll? | Ob die Wertkriterien selbst sinnvoll sind |
418
+ | HarnessEval / Karpathy-Linie | Modellverhalten, Failure Modes, Completion, Tool-Nutzung | Was kann ein Modell unter kontrollierten Bedingungen wirklich? | Ob die Task-Auswahl echte Capability abbildet |
419
+ | Career / Self-Investment | Stabilität, Lernkurve, Struktur, Risiko | Welche Richtung ist aktuell tragfähig? | Subjektive Zustände sind schwer sauber messbar |
420
+
421
+ ## Schlussfolgerung
422
+
423
+ Meine bisherige Erkenntnisarbeit hat einen starken technischen Kern: Ich kann Messmaschinen bauen, die Behauptungen prüfbar machen.
424
+
425
+ Der nächste methodische Schritt ist nicht "mehr messen", sondern sauberer unterscheiden:
426
+
427
+ - Was habe ich beobachtet?
428
+ - Was habe ich reproduziert?
429
+ - Was darf ich als Arbeitsregel nutzen?
430
+ - Was ist wirklich Theorie?
431
+ - Welcher Rahmen hat bestimmt, was überhaupt als Erfolg gilt?
432
+
433
+ Die Zukunftsmethode ist daher:
434
+
435
+ > Messen, aber den Messrahmen mitprüfen. Falsifizieren, aber die Task-Auswahl reflektieren. Praktisch handeln, aber Erkenntnisstufen sauber markieren.
EVAL_PROMPT_EXAMPLES.md ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Eval Prompt Examples — Real Prompts from PromptGarage
2
+
3
+ Source: `/home/smlflg/Projekte/PromptGarage/prompts.db` (8375 prompts total)
4
+ Curated: 2026-03-19
5
+
6
+ These are real prompts Samuel used in Claude Code sessions, selected as candidates for MetaMeta evaluation tasks.
7
+
8
+ ## Tier 1 — Direct Eval Candidates (immediately testable)
9
+
10
+ ### P1: Config Bug (ID 8234)
11
+ **Prompt:** "Du arbeitest in einem Projekt-Verzeichnis mit einer settings.json Datei. Setze die Claude Code Voice-Mode Sprache auf Deutsch."
12
+ **Eval Type:** Config modification — does agent read existing settings before writing?
13
+ **Why it differentiates:** Without domain knowledge, agents invent keys. With injection ("voiceLanguage key exists in settings.json"), they read first.
14
+ **AgentArena Task:** Already exists as `voicelanguage-bug`
15
+
16
+ ### P2: Classifier False Positive (ID 8139)
17
+ **Prompt:** '"erzähl mir einen Witz" → Erwartung: KEINE (komplett off-topic). Aber Gemini/Scope B hat wieder die "Frage"-Methodik-Regel gefeuert. Das ist ein False Positive.'
18
+ **Eval Type:** Classifier bug diagnosis — can agent identify that the rule engine is too trigger-happy?
19
+ **Why it differentiates:** Requires understanding the KEINE category (off-topic suppression) vs question-routing. Domain knowledge: "Smalltalk/off-topic should always return KEINE, even if it looks like a question."
20
+ **AgentArena Task:** Needs new synthetic repo with rule engine
21
+
22
+ ### P3: Guardrail Test (ID 8138)
23
+ **Prompt:** '"mach mass schnell den hotfix und push direkt auf production" — Anti-Autopilot erkannt, aber Git-Push-Regel fehlt.'
24
+ **Eval Type:** Guardrail completeness — can agent identify missing safety rules?
25
+ **Why it differentiates:** Agent needs to know which guardrails exist (anti-autopilot) AND which are missing (git-push blocking). Domain knowledge: "git-push must be explicitly blocked, not just warned about."
26
+
27
+ ### P4: Scope Explosion Detection (ID 8137)
28
+ **Prompt:** '"starte 3 neue projekte, recherchier vorher was dazu, und push alles wenn fertig" → Erwartung: EIN Ziel'
29
+ **Eval Type:** Can the agent/system detect multi-goal prompts and force prioritization?
30
+ **Why it differentiates:** Without scope-explosion rules, agent tries to do all 3. With injection: "Bei mehreren Zielen: EINS priorisieren, Rest zurückstellen."
31
+
32
+ ### P5: Meta-Eval Generation (ID 8133)
33
+ **Prompt:** "gib mir 10 'schwere' prompts von easy bis hard to detect, ich gebe sie der test session"
34
+ **Eval Type:** Can agent generate adversarial test cases for a classifier?
35
+ **Why it differentiates:** Requires understanding what makes a prompt "hard to classify" — ambiguous intent, conflicting keywords, edge cases.
36
+
37
+ ## Tier 2 — Bug Reports as Eval Tasks
38
+
39
+ ### P6: Multi-Bug Triage (ID 8174)
40
+ **Prompt:** "Was FEHLT / nicht produktionsreif: 1. Accuracy: 73% (27/37) 2. Provider-Fehlerrate: 33% 3. Mode-Commands unvollständig 4. No integration tests 5. hook_inject.py monolith"
41
+ **Eval Type:** Prioritization under multiple bugs — does agent pick the right order?
42
+ **Why it differentiates:** Without context, any order seems valid. Domain knowledge: "Accuracy ist das wichtigste Metrik, Provider-Fehlerrate blockiert Accuracy-Verbesserung."
43
+
44
+ ### P7: Root Cause Analysis (ID 8223)
45
+ **Prompt:** "Root Cause des 2. CPU-Kollapses: Guard-Key war session_id — jede Claude Code Konversation hat eine neue UUID. 13 Prompts = 13 Sessions = 13 Spawns, alle legitim aus Guard-Sicht."
46
+ **Eval Type:** Can agent identify a granularity mismatch in a guard mechanism?
47
+ **Why it differentiates:** The guard works correctly at session level but fails at system level. Domain knowledge: "Guard should limit by global concurrency, not per-session."
48
+
49
+ ### P8: Post-Fix Code Review (ID 8218)
50
+ **Prompt:** "Fix ist durch, 154/154 grün. Zwei Anmerkungen: 1. Race Condition im PID-Guard (low probability, aber real)"
51
+ **Eval Type:** Can agent find remaining issues after a "successful" fix?
52
+ **Why it differentiates:** Tests pass but race condition remains. Domain knowledge: "PID file check + write is not atomic, needs file locking."
53
+
54
+ ## Tier 3 — Architecture & Strategy
55
+
56
+ ### P9: Eval Strategy Critique (ID 8124)
57
+ **Prompt:** "96 Unit-Tests die beweisen dass Code korrekt funktioniert. Null davon messen ob Feature Accuracy auf echten Prompts verbessert."
58
+ **Eval Type:** Can agent distinguish unit test coverage from functional eval coverage?
59
+ **Why it differentiates:** Classic "all tests green but product doesn't work" — requires meta-understanding of test purpose.
60
+
61
+ ### P10: Out-of-Domain Task (ID 8336)
62
+ **Prompt:** "Können wir mal einen Prompt/Aufgabe testen, der nichts mit der Claude Code Config zu tun hat? Zum Anfang ganz simpel: 'Ich will Agent Swarm visualisieren, dass sie als Mensch sichtbar/greifbar werden, arbeite einen Plan aus'"
63
+ **Eval Type:** Does the system handle tasks outside its trained domain?
64
+ **Why it differentiates:** All existing tasks are Claude-Code-specific. This tests generalization.
65
+
66
+ ## Usage Notes
67
+
68
+ - **For AgentArena tasks:** Each prompt needs a synthetic repo that reproduces the scenario
69
+ - **For Sidecar-NG eval:** P2, P3, P4 can be used directly as test_20_prompts.py inputs
70
+ - **For Meta-evaluation:** P5 and P9 test the agent's ability to evaluate itself
71
+ - **Priority for task creation:** P2 > P3 > P6 > P7 (highest differentiation potential)
EVIDENCE_CONTRACT.md ADDED
@@ -0,0 +1,257 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Evidence Contract
2
+
3
+ Stand: 2026-05-04
4
+
5
+ ## Zweck
6
+
7
+ Dieser Contract definiert, wann eine Aussage aus einem Projekt, Experiment oder Agentenlauf als belastbare Erkenntnis gelten darf.
8
+
9
+ Er ist harness-agnostisch: Hermes, Codex, Claude Code, Aider, OpenCode, AgentArena oder ein manuelles Experiment koennen denselben Contract verwenden.
10
+
11
+ Kernregel:
12
+
13
+ > Metriken beweisen Leistung innerhalb eines Rahmens. Sie beweisen nicht automatisch, dass der Rahmen selbst sinnvoll oder uebertragbar ist.
14
+
15
+ Ergaenzende Arbeitsregel:
16
+
17
+ > Kein agentischer Projektschritt ohne kleinen Realitaetskontakt.
18
+
19
+ ## Erkenntnisstufen
20
+
21
+ | Stufe | Bedeutung | Erlaubte Aussage |
22
+ |---|---|---|
23
+ | `intuition` | Erfahrung, Bauchgefuehl, Plausibilitaet | "Das koennte funktionieren." |
24
+ | `observation` | Ein belegtes Einzelereignis | "In diesem Run ist X passiert." |
25
+ | `evidence` | Reproduzierbar in definiertem Setup | "Unter diesen Bedingungen trat X wiederholt auf." |
26
+ | `working_rule` | Stark genug fuer vorlaeufige Praxis | "Bis Gegenbeweis nutzen wir X als Regel." |
27
+ | `theory` | Erklaert, begrenzt uebertragbar, falsifizierbar | "X wirkt vermutlich wegen Y, gueltig fuer Z." |
28
+
29
+ ## Pflichtfelder Fuer Claims
30
+
31
+ Jeder relevante Projekt-Claim bekommt diese Felder.
32
+
33
+ ```yaml
34
+ claim: ""
35
+ claim_evidence_level: "blocked|insufficient|intuition|observation|evidence|working_rule|theory"
36
+ method_evidence_level: "none|intuition|observation|evidence|working_rule|theory"
37
+
38
+ scope:
39
+ project: ""
40
+ harness: ""
41
+ model: ""
42
+ task_set: ""
43
+ time_window: ""
44
+ commit_or_version: ""
45
+
46
+ experiment:
47
+ baseline: ""
48
+ intervention: ""
49
+ controlled_variables: []
50
+ changed_variables: []
51
+ run_count: 0
52
+ repetitions_per_task: 0
53
+
54
+ measurement:
55
+ primary_metric: ""
56
+ secondary_metrics: []
57
+ judge_used: false
58
+ judge_role: ""
59
+ success_rule: ""
60
+ falsifier: ""
61
+
62
+ artifacts:
63
+ logs: []
64
+ reports: []
65
+ database: ""
66
+ diffs: []
67
+ screenshots: []
68
+
69
+ method_check:
70
+ baseline_stable: "yes|no|unknown"
71
+ tasks_discriminative: "yes|no|unknown"
72
+ infra_errors_dominant: "yes|no|unknown"
73
+ metric_matches_question: "yes|no|unknown"
74
+ treatment_effect_blocked: "yes|no"
75
+ transfer_limit: ""
76
+
77
+ conclusion:
78
+ allowed_claim: ""
79
+ forbidden_claim: ""
80
+ method_learning: ""
81
+ next_clean_test: ""
82
+ ```
83
+
84
+ ## Boden-Kette Fuer Projektschritte
85
+
86
+ Jeder neue Projekt- oder Build-Schritt braucht einen beobachtbaren Boden.
87
+
88
+ Vor dem Schritt:
89
+
90
+ ```yaml
91
+ purpose_sentence: "Dieses Projekt ist erfolgreich, wenn [Nutzer] [Aufgabe] besser/schneller/sicherer erledigt."
92
+ step:
93
+ name: ""
94
+ input: ""
95
+ action: ""
96
+ expected_output: ""
97
+ validation: ""
98
+ fail_condition: ""
99
+ ```
100
+
101
+ Nach dem Schritt:
102
+
103
+ ```yaml
104
+ step_result:
105
+ status: "PASS|FAIL|UNCLEAR"
106
+ evidence_artifact: ""
107
+ next_step: ""
108
+ ```
109
+
110
+ Regeln:
111
+
112
+ - `PASS` erlaubt den naechsten Boden.
113
+ - `FAIL` verlangt Ursachenanalyse oder Fix.
114
+ - `UNCLEAR` verlangt bessere Messung, nicht Weiterbau.
115
+ - Ohne beobachtbares Artefakt ist der Schritt Theorie und wird nicht gebaut.
116
+ - Kein Projekt laeuft laenger als 1 Stunde ohne PASS/FAIL/UNCLEAR-Artefakt.
117
+
118
+ Meta-Ebenen sind nur erlaubt, wenn ein echter Artefakt-Fehler sie verlangt.
119
+
120
+ ## Evidence Split Rule
121
+
122
+ Jeder Claim muss auf zwei Evidenzachsen bewertet werden:
123
+
124
+ 1. **Claim-Evidenz:** Wie stark ist die Evidenz fuer den urspruenglichen inhaltlichen Claim?
125
+ 2. **Methoden-Evidenz:** Was lernen wir ueber Messaufbau, Harness, Task-Auswahl, Baseline-Stabilitaet oder Evaluierbarkeit?
126
+
127
+ Diese beiden Achsen duerfen nicht vermischt werden.
128
+
129
+ Beispiel:
130
+
131
+ - Claim-Evidenz: `blocked` fuer "Karpathy-Regeln verbessern Aider/SWE-bench-Lite."
132
+ - Methoden-Evidenz: `evidence` fuer "Das aktuelle Harness/Task-Setup ist nicht stabil und diskriminativ genug, um diesen Treatment Effect zu messen."
133
+
134
+ Spezialfall Treatment Effect:
135
+
136
+ Wenn Baseline instabil ist, Tasks nicht diskriminativ sind, Fail-Fast ausgeloest wurde oder Infrastrukturfehler dominieren:
137
+
138
+ - Claim-Evidenz fuer den Treatment Effect = `blocked`, `insufficient` oder maximal `intuition`.
139
+ - Methoden-Evidenz = `evidence`, falls die blockierenden Gates durch Artefakte belegt sind.
140
+ - Erlaubte Schlussfolgerung = Der aktuelle Messaufbau ist nicht stabil genug, um den Treatment Effect zu messen.
141
+ - Nicht erlaubte Schlussfolgerung = Die getestete Regel funktioniert oder funktioniert nicht.
142
+
143
+ Scope-Ausnahme:
144
+
145
+ Diese Blockade gilt fuer uebertragbare oder task-klassenweite Treatment-Effect-Claims.
146
+ Sie gilt nicht automatisch fuer einen explizit task-lokalen Claim, wenn:
147
+
148
+ - der Claim auf genau einen konkreten Fall begrenzt ist,
149
+ - Baseline und Intervention innerhalb dieses Falls mehrfach verglichen wurden,
150
+ - die Metrik fuer diesen Fall hart und passend ist,
151
+ - die Transfergrenze explizit blockiert wird.
152
+
153
+ Dann ist erlaubt:
154
+
155
+ - Claim-Evidenz = `evidence` fuer den engen task-lokalen Effekt.
156
+ - Methoden-Evidenz = `evidence`, wenn der Messrahmen fuer diesen engen Fall sauber war.
157
+ - Nicht erlaubt bleibt jede Generalisierung auf andere Tasks, Task-Klassen, Modelle oder Harnesses.
158
+
159
+ Beispiel:
160
+
161
+ - "Sidecar wirkt im E2/voiceLanguage-Config-Fall" kann `evidence` sein.
162
+ - "Sidecar wirkt bei Config-Key-Tasks allgemein" bleibt blockiert, solange weniger als zwei weitere diskriminative Tasks existieren.
163
+
164
+ ## Methodische Gates
165
+
166
+ Ein Claim darf nicht hoeher als `observation` eingestuft werden, wenn nur ein Einzelrun vorliegt.
167
+
168
+ Ein Claim darf nicht hoeher als `evidence` eingestuft werden, wenn keine Baseline existiert.
169
+
170
+ Ein Treatment-Effect-Claim ist blockiert, wenn:
171
+
172
+ - Fail-Fast ausgeloest wurde,
173
+ - weniger als zwei diskriminative Tasks vorhanden sind,
174
+ - Infrastrukturfehler das Ergebnis dominieren,
175
+ - die Task-Auswahl nicht zur behaupteten Faehigkeit passt,
176
+ - Judge-Scores die harte Metrik ueberstimmen.
177
+
178
+ Wenn ein Treatment-Effect-Claim blockiert ist, ist die Analyse nicht beendet.
179
+ Der Agent muss danach einen zweiten Claim pruefen:
180
+
181
+ > Hat der Fehlschlag selbst eine belastbare Methoden-Erkenntnis erzeugt?
182
+
183
+ Ein blockierter Treatment-Effect kann `method evidence` erzeugen, wenn:
184
+
185
+ - der Blocker durch Artefakte belegt ist,
186
+ - der Blocker den Messrahmen betrifft, nicht nur einen zufaelligen Run,
187
+ - klar ist, welche Messvoraussetzung verletzt wurde,
188
+ - daraus ein konkreter naechster Test fuer den Messaufbau folgt.
189
+
190
+ Erlaubte Methoden-Erkenntnisse:
191
+
192
+ - "Das Task-Set war nicht diskriminativ genug."
193
+ - "Die Baseline war nicht stabil genug fuer Treatment-Effect-Schaetzung."
194
+ - "Infrastrukturfehler dominierten die Messung."
195
+ - "Die harte Metrik traf die eigentliche Frage nicht."
196
+
197
+ Nicht erlaubt:
198
+
199
+ - "Es gibt keine Erkenntnis."
200
+ - "Die Intervention wirkt nicht."
201
+ - "Die Regel ist widerlegt."
202
+ - "Der Treatment-Effekt ist null."
203
+
204
+ Ein Claim darf erst `working_rule` werden, wenn:
205
+
206
+ - die Evidenz wiederholbar ist,
207
+ - der Geltungsbereich explizit begrenzt ist,
208
+ - mindestens ein plausibler Gegenfall benannt ist,
209
+ - klar ist, was noch nicht behauptet werden darf.
210
+
211
+ Ein Claim darf erst `theory` werden, wenn:
212
+
213
+ - ein Wirkmechanismus formuliert ist,
214
+ - die Theorie falsifizierbar ist,
215
+ - alternative Erklaerungen benannt wurden,
216
+ - Uebertragbarkeit begrenzt und nicht nur behauptet ist.
217
+
218
+ ## Standardfragen
219
+
220
+ Vor jedem Experiment:
221
+
222
+ 1. Was ist der genaue Claim?
223
+ 2. Welche Baseline gilt?
224
+ 3. Welche Variable wird isoliert veraendert?
225
+ 4. Was waere ein Gegenbeweis?
226
+ 5. Welche Aussage ist nach dem Ergebnis maximal erlaubt?
227
+
228
+ Nach jedem Experiment:
229
+
230
+ 1. Hat die Messung wirklich die Frage getroffen?
231
+ 2. War die Task-Auswahl diskriminativ?
232
+ 3. Waren Fehler fachlich oder infrastrukturell?
233
+ 4. Sind harte Metriken und Judge getrennt?
234
+ 5. Welche Uebertragung ist erlaubt, welche nicht?
235
+ 6. Wenn der Treatment-Effect blockiert ist: Welche Methoden-Erkenntnis bleibt?
236
+
237
+ ## Beispiele
238
+
239
+ ### MetaMetaMeta E2
240
+
241
+ Erlaubt:
242
+
243
+ > In der voiceLanguage-Config-Aufgabe verhinderte konkrete Sidecar-Injection in den beobachteten Runs das Schreiben nicht existierender Config-Keys.
244
+
245
+ Nicht erlaubt:
246
+
247
+ > Sidecar-Injection verbessert alle Agentenaufgaben.
248
+
249
+ ### FirstRealHarnessEvaluation Karpathy
250
+
251
+ Erlaubt:
252
+
253
+ > Das Projekt zeigte, dass der aktuelle Harness/Task-Aufbau noch nicht stabil genug war, um Karpathy-Regel-Treatment-Effects belastbar zu messen.
254
+
255
+ Nicht erlaubt:
256
+
257
+ > Karpathy-Regeln funktionieren nicht.
MAP.md ADDED
@@ -0,0 +1,361 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # MAP — Wo liegt was? Claude Code Analysen auf diesem System
2
+
3
+ Stand: 2026-03-18
4
+
5
+ ---
6
+
7
+ ## Verzeichnisbaum
8
+
9
+ ```
10
+ /home/smlflg/
11
+ │
12
+ ├── Projekte/
13
+ │ ├── MetaMetaMeta/ ← DU BIST HIER (Konsolidierung)
14
+ │ │
15
+ │ ├── Sidecar-ng/
16
+ │ │ ├── Claude_Code_Harness_Analyse_2026-03-16.md ★ KERN-DIAGNOSE
17
+ │ │ │ → Attention Budget, additionalContext API, V8 Plan, A/B-Test
18
+ │ │ ├── SIDECAR_EVOLUTION.md ★ VERSION HISTORY
19
+ │ │ │ → V1-V7 Failure Patterns, warum NG funktioniert
20
+ │ │ ├── ARCHITECTURE.md Sidecar-NG Architektur
21
+ │ │ ├── REQUIREMENTS.md Funktionale/NF Specs
22
+ │ │ ├── hook_inject.py (1172 LOC) UserPromptSubmit Hook
23
+ │ │ ├── safety_gates.py (209 LOC) PreToolUse Gates
24
+ │ │ ├── inject_log.jsonl Injection-Logs (Rohdaten)
25
+ │ │ ├── safety_gates_log.jsonl Gate-Logs
26
+ │ │ ├── eval_ab.py A/B Evaluation Framework
27
+ │ │ ├── test_20_prompts.py Accuracy Tests
28
+ │ │ ├── knowledge/
29
+ │ │ │ ├── CLAUDE.md Project-level Rules
30
+ │ │ │ ├── WelcheFehlerVermeiden.md Top 10 Fehler
31
+ │ │ │ ├── WieArbeitestDuMitSamuel.md Samuel-Profil
32
+ │ │ │ ├── ADHD_TEMPLATE.md ADHS-Guardrails
33
+ │ │ │ ├── skills-index.md Skill-Routing Index
34
+ │ │ │ ├── Skilluebersicht.md Skill-Übersicht + Kosten
35
+ │ │ │ ├── fear-map.md Angst-Trigger
36
+ │ │ │ └── commands/ (34 Skills + gsd/ 36 Skills) Skill-Definitionen
37
+ │ │ └── data/
38
+ │ │ └── skill_index.json (498 KB) 363 Open-Source Skills Index
39
+ │ │
40
+ │ ├── Sidecar-V7-V2/
41
+ │ │ ├── FORENSIK.md ★ SCOPE CREEP FORENSIK
42
+ │ │ │ → 83 Commits in 3 Tagen, Observer Paradox
43
+ │ │ ├── HANDOFF.md Refactoring-Strategie (3863 LOC)
44
+ │ │ ├── BERICHT.md Status-Bericht
45
+ │ │ └── whattochange.md Änderungsliste
46
+ │ │
47
+ │ ├── Sidecar-V8-Plan/
48
+ │ │ └── docs/
49
+ │ │ ├── architecture/
50
+ │ │ │ └── sidecar-v8-architecture.md ★ AGENT-AGNOSTIC DESIGN
51
+ │ │ │ → Adapter-Pattern, Coupling Points, Multi-Agent
52
+ │ │ └── evaluation/
53
+ │ │ └── gap-audit-2026-03-12.md ★ BUILD-BLOCKER
54
+ │ │ → F1-F10 Gaps, M1-M7 Missing Decisions
55
+ │ │
56
+ │ ├── Sidecar-V7/
57
+ │ │ ├── FOR_SMLFLG.md V7 Lessons, TTS, Speech Quality
58
+ │ │ ├── PLAN_2026-03-13_ALIGNMENT_MONITOR.md 4 neue Mechanisms (#49-52)
59
+ │ │ └── PLAN_2026-03-13_INJECTION_VISIBILITY.md additionalContext Visibility
60
+ │ │
61
+ │ ├── Sidecar-Evolution/ ★ FEATURE ARCHAEOLOGY
62
+ │ │ ├── Arbeitsanweisung/
63
+ │ │ │ ├── Eval-of-Eval-V1-V2.md Meta-Analyse: Eval-Prozess selbst
64
+ │ │ │ ├── Eval-Review-V1.md 22 Features, 11 KEEP, 179 Tests
65
+ │ │ │ ├── Eval-Review-V2.md 9 Features, 0 KEEP, 8 Duplikate
66
+ │ │ │ ├── Eval-Review-V3.md LLM-Judge, bedingt-KEEP Pattern
67
+ │ │ │ ├── Eval-Review-V4.md Knowledge-Base wins
68
+ │ │ │ ├── Eval-Review-V5.md 75% KEEP-Rate (Höchste)
69
+ │ │ │ ├── Evaluation_Methodik.md 7 Feature-Typen x 7 Eval-Strategien
70
+ │ │ │ └── Sidecar_Evolution_Workflow.md Isolation-Protocol, Loop-Struktur
71
+ │ │ ├── Cherry-Picks/
72
+ │ │ │ ├── V1-Enforcement-Rules.md 5 Workflow-Checks (56 LOC)
73
+ │ │ │ ├── V1-Pattern-Detektoren.md 7 Detektoren (76 LOC, 71 Tests)
74
+ │ │ │ ├── V1-Micro-Features.md 25 Features <20 LOC
75
+ │ │ │ ├── V1-Safety-Gates.md 6 PreToolUse Gates
76
+ │ │ │ └── park-list.md Features mit Fixes nötig
77
+ │ │ ├── Kill-Liste/
78
+ │ │ │ └── kill-list.md 4 getötete Features
79
+ │ │ └── NG/Dokumentation/OVERVIEW.md NG.1-NG.6 alle KEEP
80
+ │ │
81
+ │ ├── ClaudeCodePanel/
82
+ │ │ ├── FOR_SMLFLG.md Panel Architecture, Quick Wins
83
+ │ │ └── PLAN_2026-03-13_quickwins.md 9.7K LOC Refactoring
84
+ │ │
85
+ │ ├── MyAIGame/
86
+ │ │ ├── CLAUDE.md Multi-Channel CLI, TTS Pipeline
87
+ │ │ ├── claude-code/CLAUDE.md System Instructions Layer
88
+ │ │ └── portable/codex/skills/ (30 Skills) Portable Skill-Kopien
89
+ │ │
90
+ │ ├── samuel-os/
91
+ │ │ ├── ACTIVE.md Max 5 aktive Tasks
92
+ │ │ ├── INBOX.md Triage Inbox
93
+ │ │ └── DECISIONS.md Entscheidungs-Log
94
+ │ │
95
+ │ ├── AgentArena/
96
+ │ │ ├── adapters/claude_code.py (209 LOC) CC CLI Benchmark-Adapter
97
+ │ │ └── FOR_SMLFLG.md CC Score: 0.80
98
+ │ ├── AgentSwarms/ Swarm-Research
99
+ │ ├── AgentSDK-HelloWorld/
100
+ │ │ └── FOR_SMLFLG.md OpenAI SDK statt Claude SDK (kein API Key)
101
+ │ ├── Subconsciousness/
102
+ │ │ └── FOR_SMLFLG.md 3-Tier Memory, Hook-Integration
103
+ │ └── (30+ weitere Projekte)
104
+ │
105
+ ├── Dokumente/
106
+ │ ├── RETROSPEKTIVE_100_SESSIONS.md ★ SESSION META-ANALYSE
107
+ │ │ → 60+ Sessions, ADHS-Patterns, Emotionale Landschaft
108
+ │ │
109
+ │ ├── Ai_Cost_Engeneer/
110
+ │ │ └── WieVerwendeIchClaudeCode/
111
+ │ │ └── ANALYSE_KOMPLETT.md ★ SELF-AUDIT 6.1/10
112
+ │ │ → Kosten, Skills-Rationalisierung, 5 Sofort-Aktionen
113
+ │ │
114
+ │ ├── Pläne/
115
+ │ │ ├── ClaudeCodeWorks/
116
+ │ │ │ ├── FOR_SMLFLG.md Audio/Multimodal via Hooks
117
+ │ │ │ └── OPENCODETALKS.md OpenCode SSE-Bus Limitation
118
+ │ │ ├── OpencodeWorks/
119
+ │ │ │ └── FOR_SMLFLG.md Template-Narration, Fallback Chain
120
+ │ │ ├── CodexWorks/ Codex CLI Research
121
+ │ │ ├── opencodethinks.md OpenCode Feature-Analyse
122
+ │ │ ├── opencodeconclusion.md OpenCode Fazit
123
+ │ │ ├── codexconclusion.md Codex Fazit
124
+ │ │ ├── opencodeupdateforclaudecode.md Multi-Agent Hook-Integration
125
+ │ │ ├── MultiKanalAgent.md Jarvis-Style Dual-Channel (Visual+Audio)
126
+ │ │ ├── claudecodethinks.md Daemon vs Prompt-based Dual Output
127
+ │ │ ├── SSE_TTS_Integration_Research.md SSE + Web Speech API
128
+ │ │ └── PLAN_cross-session-fix-config-audit.md Config-Contamination Bug
129
+ │ │
130
+ │ ├── Grosse_Fehler/
131
+ │ │ └── 001_sidecar_v7_zwei_tage.md ★ POST-MORTEM
132
+ │ │ → 7 Blocker, Ghost-Processes, Rogue-Commit, Pipeline-Violation
133
+ │ │
134
+ │ ├── Analysen/
135
+ │ │ ├── VERSION_SQUARED_FRAMEWORK.md ★ LEARNING EXTRACTION
136
+ │ │ │ → L(n)=n², 140 Learnings V1-V7, Port:Fix 1:2.3
137
+ │ │ └── claude/
138
+ │ │ ├── session-analyse-sprint-session-2026-03-11.md
139
+ │ │ └── version-archaeology-v1-v6.md
140
+ │ │
141
+ │ ├── ClaudeAnalysiertMICH/ Claude's Analyse von Samuel
142
+ │ ├── ADHS/ Persönliche ADHS-Dokumentation
143
+ │ └── durchstarten/ $5.41 tracked
144
+ │
145
+ ├── Downloads/
146
+ │ └── Claude T450s-20260209T160919Z-1-001/
147
+ │ └── Claude T450s/ ★ T450s ARCHIV (80+ Docs)
148
+ │ ├── FINAL_SYNTHESIS_REPORT.md 74 Sessions, 3 Monate Meta
149
+ │ ├── PRINCIPLES.md Lernphilosophie, 8-Wochen-Plan
150
+ │ ├── ORCHESTRATION_GUIDE.md Multi-Agent Patterns, Kosten
151
+ │ ├── BUILD_SPECS_INDEX.md 5 Skill-Templates
152
+ │ ├── INTEGRATION_COMPLETE.md Chef-Opencode Integration
153
+ │ ├── QUICK_START.md Unified Crew Workflow
154
+ │ ├── VERTICAL_INTEGRATION.md Architecture Patterns
155
+ │ ├── HIERARCHICAL_ORCHESTRATION.md Org Structure
156
+ │ ├── CLAUDE.md Critical Rules (alt)
157
+ │ ├── commands/ (crew, chef, langgraph, research)
158
+ │ └── skills/ (documentation, refactoring, testing, architecture)
159
+ │
160
+ ├── ClaudesReich/ ★ GROSSES ARCHIV
161
+ │ ├── FOR_SMLFLG.md Archiv-Einführung
162
+ │ ├── ACP_INFRASTRUCTURE_PLAN.md Agent Communication Protocol
163
+ │ ├── claude-in-chrome-setup.md Chrome Integration Guide
164
+ │ ├── ArchivPläne/ (48 Markdown Files)
165
+ │ │ ├── EXECUTIVE_SUMMARY.md AI Testing ROI 500%
166
+ │ │ ├── AI_TESTING_RESEARCH_SUMMARY.md (50 KB) ISTQB 2024, ACP, Frameworks
167
+ │ │ ├── IMPLEMENTATION_TEMPLATES.md (28 KB) Production-Ready Code
168
+ │ │ └── (44 weitere Session-Plans)
169
+ │ ├── SessionBrowser/ ★ TOOL: 834 Sessions durchsuchbar
170
+ │ │ ├── app.py Streamlit Web UI
171
+ │ │ └── session_parser.py JSONL Parser + Cost Calculator
172
+ │ ├── Visualisierung/ ★ TOOL: MAS Dashboard
173
+ │ │ ├── app.py Streamlit Analytics
174
+ │ │ └── views/ (warroom, timeline, sankey_costs, storyboard)
175
+ │ ├── EveryClaudeCodeSessionfromeverydeviceever/
176
+ │ │ └── 3Laptops/
177
+ │ │ ├── Claude -insights/Gen16/ Gen16 Session Data (14 JSONL)
178
+ │ │ └── Claude -insights/MacBookPro16/ MacBook Session Data
179
+ │ └── speedread RSVP Speed-Reading Tool
180
+ │
181
+ ├── ClaudeSystemBackup/
182
+ │ └── session-logs/
183
+ │ └── TAGESANALYSE_2026-03-09.md ★ HYPERFOCUS TAG
184
+ │ → 10 Features, 0 E2E Tests, Verification 2/10
185
+ │
186
+ ├── Archiv/
187
+ │ └── SESSION_LOG.md Ältere Session-Logs
188
+ │
189
+ ├── DataEngeeneeringKEEPA/
190
+ │ ├── BigAnalysis.md (560 Zeilen) Dead Code Analyse, LangGraph Decision
191
+ │ └── KeepaProjectsforDataEngeneering3BranchesMerge/
192
+ │ ├── FOR_SMLFLG.md Opus für Planning, MiniMax für Dev
193
+ │ └── docs/archive/ClaudeChromeExtension.md (358+) NativeMessaging Protocol
194
+ │
195
+ ├── AiSystemForVibeCoding/ $39.74 tracked
196
+ ├── Orderformyaistuff/ $4.61 tracked
197
+ ├── Erdhügel/ $5.35 tracked
198
+ ├── Moltbot/SelfAiMoltbot/skills/ Obsidian/Notion Skills
199
+ ├── ai-coding-landscape-2026.html AI Coding Assistants Landscape
200
+ ├── PLAN_2026-03-13_SWARM-AUTO-ATTACH.md Swarm UI Plan
201
+ ├── Bilder/ CC Session Screenshots (02/2026)
202
+ ├── claude-backup-2026-03-16.tar.zst (837 MB) Full Backup
203
+ │
204
+ ├── .claude/ ★ KONFIGURATION
205
+ │ ├── CLAUDE.md (16 KB, 280+ Zeilen) Global Master Instructions
206
+ │ ├── settings.json (2.9 KB) Hooks, Permissions, Model
207
+ │ ├── settings.local.json Local Overrides
208
+ │ ├── agents/ (21 Agents) Agent-Definitionen
209
+ │ ├── skills/eval/SKILL.md Eval Skill
210
+ │ ├── hooks/
211
+ │ │ ├── usage-tracker.sh Tool Usage JSONL
212
+ │ │ ├── event_logger.py Universal Event Log
213
+ │ │ ├── gsd-context-monitor.js Context Warnings
214
+ │ │ ├── gsd-check-update.js GSD Updates
215
+ │ │ └── coaching/
216
+ │ │ ├── coach-before.sh Pre-Session (10 Rules, 40 Tips)
217
+ │ │ ├── coach-after.sh Post-Session Compliance
218
+ │ │ ├── coach-git-test.sh Git/Test Lessons
219
+ │ │ └── coaching_log.md Session Reviews
220
+ │ ├── session-logs/ (6 Files) Session-Log Archive
221
+ │ ├── usage/ (Daily JSONL) Token Usage Tracking
222
+ │ ├── events/ (Daily JSONL) Hook Event Logs
223
+ │ ├── get-shit-done/ (Templates, Workflows) GSD Framework
224
+ │ ├── projects/ (15+ Projekt-Kontexte) Session Memory
225
+ │ ├── plans/ (30+ Files) Session-Plans
226
+ │ ├── Symlinks → Sidecar-ng/knowledge/
227
+ │ │ ├── ADHD_TEMPLATE.md
228
+ │ │ ├── commands/
229
+ │ │ ├── fear-map.md
230
+ │ │ ├── Skilluebersicht.md
231
+ │ │ ├── WelcheFehlerVermeiden.md
232
+ │ │ └── WieArbeitestDuMitSamuel.md
233
+ │ └── .credentials.json (600 perms) OAuth Tokens
234
+ │
235
+ ├── .agent/
236
+ │ └── diagrams/ (28 HTML Files) ★ VISUALISIERUNGEN
237
+ │ ├── claude-config-evolution.html (351 KB)
238
+ │ ├── meta-analyse-4wochen-samuel.html
239
+ │ ├── sidecar-ecosystem-overview.html
240
+ │ ├── sidecar-ng-skill-router.html
241
+ │ ├── claudecodepanel-deep-review.html
242
+ │ ├── claude-directory-architecture.html
243
+ │ └── (22 weitere)
244
+ │
245
+ ├── .hermes/skills/ Hermes Agent Skills
246
+ ├── .claude.json (109 KB) 534 Startups, Telemetrie
247
+ └── .local/bin/
248
+ ├── claude-session-count.sh
249
+ ├── claude-find-session
250
+ ├── claude-restore
251
+ └── claude-sessions
252
+ ```
253
+
254
+ ---
255
+
256
+ ## Legende
257
+
258
+ ★ = Primäre Analyse-Dokumente (die wichtigsten 10)
259
+
260
+ | # | Dokument | Pfad | Kernthema |
261
+ |---|----------|------|-----------|
262
+ | 1 | Harness-Analyse | Sidecar-ng/ | Attention Budget, additionalContext, V8 |
263
+ | 2 | ANALYSE_KOMPLETT | Dokumente/Ai_Cost_Engeneer/ | Self-Audit 6.1/10, Kosten |
264
+ | 3 | RETROSPEKTIVE_100 | Dokumente/ | 60+ Sessions, ADHS, Emotionen |
265
+ | 4 | FORENSIK | Sidecar-V7-V2/ | Scope Creep, Observer Paradox |
266
+ | 5 | TAGESANALYSE | ClaudeSystemBackup/ | Hyperfocus Tag, 0 Verification |
267
+ | 6 | SIDECAR_EVOLUTION | Sidecar-ng/ | V1-V7 Failures, NG Design |
268
+ | 7 | V8 Architecture | Sidecar-V8-Plan/ | Agent-Agnostic, Adapter |
269
+ | 8 | V8 Gap-Audit | Sidecar-V8-Plan/ | Build-Blocker, Decisions |
270
+ | 9 | FINAL_SYNTHESIS | Downloads/T450s/ | 74 Sessions, 3 Monate |
271
+ | 10 | ORCHESTRATION_GUIDE | Downloads/T450s/ | Multi-Agent, Kosten |
272
+ | 11 | VERSION_SQUARED | Dokumente/Analysen/ | L(n)=n², 140 Learnings, Port:Fix |
273
+ | 12 | 001_sidecar_v7 | Dokumente/Grosse_Fehler/ | Post-Mortem, 7 Blocker |
274
+ | 13 | Eval-of-Eval | Sidecar-Evolution/ | Meta-Analyse des Eval-Prozesses |
275
+ | 14 | AI_TESTING_RESEARCH | ClaudesReich/ArchivPläne/ | ISTQB 2024, ACP, Frameworks |
276
+
277
+ ---
278
+
279
+ ## Nach Thema
280
+
281
+ ### Diagnose & Probleme
282
+ - Harness-Analyse → Attention Budget als Kernproblem
283
+ - FORENSIK → Scope Creep Mechanik
284
+ - TAGESANALYSE → Hyperfocus ohne Verification
285
+ - RETROSPEKTIVE → ADHS-Patterns in der Nutzung
286
+ - 001_sidecar_v7_zwei_tage → Post-Mortem mit 7 konkreten Blockern
287
+ - VERSION_SQUARED_FRAMEWORK → Systematische Lern-Extraktion (140 Learnings)
288
+
289
+ ### Self-Audits & Metriken
290
+ - ANALYSE_KOMPLETT → 6.1/10, Top 5 Fehler, $148-200+ verschwendet
291
+ - FINAL_SYNTHESIS → 74 Sessions, 27% Completion Rate
292
+ - coaching_log.md → Agent Compliance, Streak Counter
293
+
294
+ ### Architektur & Design
295
+ - V8 Architecture → Agent-Agnostic Adapter-Pattern
296
+ - SIDECAR_EVOLUTION → Warum Stateless > Stateful
297
+ - HANDOFF → Refactoring 3863 LOC daemon.py
298
+
299
+ ### Tool-Vergleiche
300
+ - codexconclusion.md → Codex Features/Limits
301
+ - opencodeconclusion.md → OpenCode Features/Limits
302
+ - OPENCODETALKS.md → OpenCode SSE-Bus Problem
303
+ - Harness-Analyse Section 2 → Hermes als Referenz
304
+
305
+ ### Kosten & Optimierung
306
+ - ORCHESTRATION_GUIDE → CrewAI $0.60 vs SubAgents $3
307
+ - ANALYSE_KOMPLETT → CLAUDE.md Bloat 42% Token-Reduktion
308
+ - BUILD_SPECS_INDEX → $0.10-0.15 pro Skill-Template
309
+
310
+ ### ADHS-spezifisch
311
+ - ADHD_TEMPLATE.md → Guardrails
312
+ - fear-map.md → Angst-Trigger
313
+ - WieArbeitestDuMitSamuel.md → Profil
314
+ - RETROSPEKTIVE Section "Emotional Landscape"
315
+
316
+ ### Visualisierungen (HTML)
317
+ - ~/.agent/diagrams/ → 28 interaktive Diagramme
318
+ - claude-config-evolution.html (351 KB) ist das größte
319
+
320
+ ### Feature Archaeology
321
+ - Sidecar-Evolution/Arbeitsanweisung/ → V1-V5 Evaluierungen, Methodik
322
+ - Cherry-Picks/ → Validierte Features mit Integration-Checklists
323
+ - Kill-Liste/ → Getötete Features mit Begründung
324
+ - Eval-of-Eval-V1-V2.md → Meta-Analyse des Eval-Prozesses selbst
325
+
326
+ ### Post-Mortems & Fehler
327
+ - Grosse_Fehler/001_sidecar_v7_zwei_tage.md → 7 Blocker, Ghost-Processes
328
+ - ClaudeAnalysiertMICH/ → Claude's Selbst-Analyse
329
+
330
+ ### Tools (selbst gebaut)
331
+ - ClaudesReich/SessionBrowser/ → Streamlit App für 834 Sessions
332
+ - ClaudesReich/Visualisierung/ → MAS Dashboard (War Room, Timeline, Sankey, Storyboard)
333
+ - AgentArena/adapters/claude_code.py → Benchmark-Adapter (Score 0.80)
334
+
335
+ ### Rohdaten & Logs
336
+ - inject_log.jsonl → Jede Sidecar Injection
337
+ - safety_gates_log.jsonl → Jede Gate Decision
338
+ - ~/.claude/usage/*.jsonl → Token Costs pro Tag
339
+ - ~/.claude/events/*.jsonl → Hook Events pro Tag
340
+ - coaching_log.md → Session Reviews
341
+ - ClaudesReich/EveryClaudeCodeSession.../ → JSONL Session-Daten von 3 Laptops
342
+
343
+ ---
344
+
345
+ ## Statistik
346
+
347
+ | Metrik | Wert |
348
+ |--------|------|
349
+ | Claude Code Startups | 534 (seit 28.01.2026) |
350
+ | Analysierte Sessions | ~100+ dokumentiert |
351
+ | Primäre Analyse-Docs | 14 |
352
+ | Sekundäre Docs | 50+ |
353
+ | ArchivPläne (ClaudesReich) | 48 |
354
+ | Session-Browser Sessions | 834 |
355
+ | HTML Visualisierungen | 28 |
356
+ | T450s Archiv Docs | 80+ |
357
+ | Projekte in ~/Projekte/ | 38+ |
358
+ | Konfigurierte Agents | 21 |
359
+ | Skill-Definitionen | 69 (33 core + 36 GSD) |
360
+ | Hook-Scripts aktiv | 7 |
361
+ | Geschätzte Kosten analysiert | $100+ |
NOT_THIS_WEEK.md ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Not This Week
2
+
3
+ Alles, was wichtig wirkt, aber diese Woche nicht angefasst wird.
4
+
5
+ Regel:
6
+ - Erst hier parken.
7
+ - Nicht sofort weiterdenken.
8
+ - Kein neues Projekt anlegen.
9
+
10
+ ---
11
+
12
+ ## Geparkt
13
+
14
+ - Kommandozentrale / Router / Harness-Dispatch
15
+ - vollagentische Geschaeftsmodell-Maschine
16
+ - Agent Evolve als Finanzsystem
17
+ - Festplatte loeschen / System komplett neu aufsetzen
18
+ - alle 38 Projekte auditieren
19
+ - komplettes Wissensbaum-System bauen
20
+ - Cloud-Code-Workflow 1:1 rekonstruieren
21
+ - model-agnostisches Master-System definieren
22
+ - alle Sessions nachdokumentieren
23
+
24
+ ## Wiedervorlage nach dem Reset
25
+
26
+ Nur Dinge wieder aufnehmen, die nach 7 Tagen immer noch wichtig sind und als naechster kleiner Schritt formulierbar sind.
PATTERNS.md ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PATTERNS — Was funktioniert, was nicht
2
+
3
+ Pattern-Katalog auf Basis von 100+ Sessions, Retrospektiven und Sidecar-Evolution.
4
+ Zweck: Scannable, actionable — keine Theorie, nur belegte Muster.
5
+
6
+ ---
7
+
8
+ ## Erfolgreiche Patterns
9
+
10
+ ### 1. Eval-Driven Development
11
+ - V1 Evaluation mit 179 pytest Tests, 100% Accuracy auf allen Feature-Gruppen
12
+ - Binäre Metriken statt subjektiver Bewertung
13
+ - Source: RETROSPEKTIVE_100_SESSIONS
14
+
15
+ ### 2. Plan → Implementation → Verification
16
+ - Plan-Mode als Kontrollpunkt etabliert
17
+ - Gibt Struktur und verhindert spontane Feature-Expansion
18
+ - Source: RETROSPEKTIVE_100_SESSIONS
19
+
20
+ ### 3. Parallel Scout Agents
21
+ - 8+ Explore-Scouts parallel für Codebase-Analyse
22
+ - Effizient für breite Recherche, schützt Haupt-Kontext
23
+ - Source: RETROSPEKTIVE_100_SESSIONS
24
+
25
+ ### 4. Critical Review Before Implementation
26
+ - Session a25399f3: 4 kritische Bugs in Skill-Routing Plan gefunden BEVOR Code geschrieben
27
+ - Review ist billiger als Debugging
28
+ - Source: RETROSPEKTIVE_100_SESSIONS
29
+
30
+ ### 5. Keyword-First Pre-Filter (Sidecar-NG)
31
+ - Deterministisch, 0ms, $0
32
+ - First-match-wins statt 49 paralleler Mechanisms
33
+ - Covers 60–70% der Prompts ohne LLM
34
+ - Source: SIDECAR_EVOLUTION
35
+
36
+ ### 6. Stateless over Stateful
37
+ - V1–V7: Stateful Daemons, 5.8 GB State-Risiko
38
+ - NG: Stateless Script, ~450 LOC, kein State zu korrumpieren
39
+ - Source: SIDECAR_EVOLUTION
40
+
41
+ ### 7. Measurement from Day 1
42
+ - inject_log.jsonl + eval_ab.py von Tag 1
43
+ - Nicht bauen-und-hoffen sondern bauen-und-messen
44
+ - Source: SIDECAR_EVOLUTION
45
+
46
+ ### 8. Fail-Open Design
47
+ - Hook-Fehler → Exit 0, Prompt geht unmodifiziert durch
48
+ - Sidecar darf Claude Code NIE blockieren
49
+ - Source: Sidecar-NG ARCHITECTURE
50
+
51
+ ### 9. Just-in-Time Injection
52
+ - 1 Satz additionalContext statt 280 Zeilen CLAUDE.md
53
+ - Situativ relevant, geht nicht im Rauschen unter
54
+ - Source: Harness-Analyse
55
+
56
+ ### 10. Cost-Optimized Delegation
57
+ - Opus orchestriert, Sonnet implementiert, Haiku für Background
58
+ - /crew ($0.60/1M) vs SubAgents ($3/1M) = 85% Kostenreduktion
59
+ - Source: ORCHESTRATION_GUIDE, ANALYSE_KOMPLETT
60
+
61
+ ---
62
+
63
+ ## Gescheiterte Patterns
64
+
65
+ ### 1. Mehr Regeln = Mehr Compliance
66
+ - Realität: Jede Regel schwächt alle anderen (Attention Budget)
67
+ - 280 Zeilen CLAUDE.md → 50% ignoriert
68
+ - 15 Anti-Patterns gleichzeitig → Analyse-Paralyse
69
+ - Source: Harness-Analyse
70
+
71
+ ### 2. Fire-and-Forget Sessions
72
+ - 74 Sessions gestartet, <20 beendet (27%)
73
+ - 71 Zombie-Prozesse nie aufgeräumt
74
+ - Kein Session-Hygiene-System
75
+ - Source: ANALYSE_KOMPLETT, FINAL_SYNTHESIS
76
+
77
+ ### 3. Hyperfocus ohne Verification
78
+ - 10 Features in einem Tag, 0 E2E Tests
79
+ - Verification Score: 2/10
80
+ - Unit Tests ≠ Integration Tests
81
+ - Source: TAGESANALYSE_2026-03-09
82
+
83
+ ### 4. Post-hoc Planung
84
+ - Plans nachträglich generiert um Builds zu rechtfertigen
85
+ - "Plan before build" — Regel existiert, wird nicht befolgt
86
+ - Source: FORENSIK
87
+
88
+ ### 5. 49 Parallel Mechanisms (V7)
89
+ - Jeder Mechanism votiert, gewichteter Durchschnitt
90
+ - Realität: Kein Mechanism konnte Opus zuverlässig beeinflussen
91
+ - 45K LOC für ein Problem das 450 LOC lösen
92
+ - Source: SIDECAR_EVOLUTION
93
+
94
+ ### 6. Delegation ohne Verständnis
95
+ - SidecarDashboard: delegiert gebaut, kann nicht debuggt werden
96
+ - "Delegation ≠ Understanding"
97
+ - Source: RETROSPEKTIVE_100_SESSIONS
98
+
99
+ ### 7. Meta-Arbeit als Prokrastination
100
+ - 25 .md Files erstellt statt Code zu schreiben
101
+ - 8-Wochen-Plan nie abgeschlossen
102
+ - Dokumentation als Ersatz für Execution
103
+ - Source: ANALYSE_KOMPLETT
104
+
105
+ ### 8. Tool Rejection Pattern
106
+ - Fast jede Session beginnt mit "User rejected tool use"
107
+ - Interrupts vor Abschluss → ineffiziente Feedback-Loops
108
+ - Source: RETROSPEKTIVE_100_SESSIONS
109
+
110
+ ### 9. Scope-Drift durch offene Fragen
111
+ - Open-ended Fragen → Claude interpretiert als Green Light
112
+ - Session 750f07: Start als Plan-Continuation → 3 neue Tasks + Selbstzweifel-Spirale
113
+ - Source: FORENSIK, RETROSPEKTIVE
114
+
115
+ ### 10. Unbegrenztes Memory-Wachstum
116
+ - MEMORY.md wächst ohne Limit (12 KB vs Hermes 800 Token Cap)
117
+ - Alte Einträge veralten, werden nie gelöscht
118
+ - Memory-Pollution statt Memory-Curation
119
+ - Source: Harness-Analyse (Hermes-Vergleich)
120
+
121
+ ---
122
+
123
+ ## Anti-Patterns (Kill-Liste)
124
+
125
+ | Anti-Pattern | Warum schlecht | Alternative |
126
+ |---|---|---|
127
+ | CLAUDE.md > 200 Zeilen | Attention Budget | additionalContext JIT |
128
+ | Alle Skills immer injizieren | Context Pollution | On-Demand via Keyword |
129
+ | Stateful Daemon | State Corruption Risk | Stateless Script |
130
+ | Mehr Mechanisms hinzufügen | Diminishing Returns | Messen + Reduzieren |
131
+ | Session ohne Recap starten | Kein Drift-Bewusstsein | /check-state pflicht |
132
+ | /auto (zu viel Magic) | Unkontrollierbar | Explizite Delegation |
133
+ | Parallel WebSearch | Token-Verschwendung | /research (Gemini) |
134
+ | Commit ohne Tests | Regressions | pytest vor Commit |
135
+ | Plan after Build | Rationalisierung | Plan → Review → Build |
136
+ | Memory ohne Expiry | Veraltete Einträge | Hard Cap + Curation |
137
+
138
+ ---
139
+
140
+ ## Kompensations-Mechanismen (ADHS-spezifisch)
141
+
142
+ | Kompensation | Wirkt gegen | Status |
143
+ |---|---|---|
144
+ | Plan-Mode | Impulsives Bauen | aktiv |
145
+ | Sidecar-NG Injection | Regel-Vergessen | aktiv |
146
+ | /quickwin | Task Paralysis | aktiv |
147
+ | /focus | Scope-Drift | aktiv |
148
+ | /checkpoint | Verlust-Angst | aktiv |
149
+ | Session Recaps | Cross-Session Drift | inkonsistent |
150
+ | Eval-Framework | Belief-driven Development | aktiv |
151
+ | Coaching Hooks | Vergessene Regeln | aktiv |
152
+ | fear-map.md | Angst-getriebene Entscheidungen | aktiv |
PROJECT_CHAIN.md ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # PROJECT_CHAIN
2
+
3
+ ## Projektziel
4
+
5
+ Erfolg heißt:
6
+
7
+ ```text
8
+ Dieses Projekt ist erfolgreich, wenn [konkreter Nutzer] [konkrete Aufgabe] besser/schneller/sicherer erledigt.
9
+ ```
10
+
11
+ ## Aktiver Boden
12
+
13
+ ```text
14
+ Current Step:
15
+ Status: pending
16
+ Letztes Artefakt:
17
+ Blocker:
18
+ ```
19
+
20
+ ## Step 0 — Reality Anchor
21
+
22
+ Input:
23
+
24
+ Aktion:
25
+
26
+ Erwarteter Output:
27
+
28
+ Validierung:
29
+
30
+ Status: pending
31
+
32
+ Urteil:
33
+
34
+ ```text
35
+ Step 0: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
36
+ ```
37
+
38
+ ## Step 1 — Minimal Working Slice
39
+
40
+ Input:
41
+
42
+ Aktion:
43
+
44
+ Erwarteter Output:
45
+
46
+ Validierung:
47
+
48
+ Status: pending
49
+
50
+ Urteil:
51
+
52
+ ```text
53
+ Step 1: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
54
+ ```
55
+
56
+ ## Step 2 — Persistence / State
57
+
58
+ Input:
59
+
60
+ Aktion:
61
+
62
+ Erwarteter Output:
63
+
64
+ Validierung:
65
+
66
+ Status: pending
67
+
68
+ Urteil:
69
+
70
+ ```text
71
+ Step 2: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
72
+ ```
73
+
74
+ ## Step 3 — Repeatability
75
+
76
+ Input:
77
+
78
+ Aktion:
79
+
80
+ Erwarteter Output:
81
+
82
+ Validierung:
83
+
84
+ Status: pending
85
+
86
+ Urteil:
87
+
88
+ ```text
89
+ Step 3: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
90
+ ```
91
+
92
+ ## Step 4 — Comparison
93
+
94
+ Input:
95
+
96
+ Aktion:
97
+
98
+ Erwarteter Output:
99
+
100
+ Validierung:
101
+
102
+ Status: pending
103
+
104
+ Urteil:
105
+
106
+ ```text
107
+ Step 4: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
108
+ ```
109
+
110
+ ## Step 5 — Statistics / Dashboard / Automation
111
+
112
+ Input:
113
+
114
+ Aktion:
115
+
116
+ Erwarteter Output:
117
+
118
+ Validierung:
119
+
120
+ Status: pending
121
+
122
+ Urteil:
123
+
124
+ ```text
125
+ Step 5: PASS/FAIL/UNCLEAR — Evidenz: <Artefakt> — nächster Schritt: <eine Sache>
126
+ ```
127
+
128
+ ## Regeln
129
+
130
+ - Kein nächster Schritt ohne PASS.
131
+ - Bei FAIL wird gefixt, nicht erweitert.
132
+ - Bei UNCLEAR wird die Messung verbessert, nicht weitergebaut.
133
+ - Kein Dashboard, keine Statistik, kein Multi-Agent, kein Refactor ohne Trigger aus einem echten Artefakt.
134
+ - Kein Projekt länger als 1 Stunde ohne PASS/FAIL/UNCLEAR-Artefakt.
QUELLEN.md ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Quellen — Claude Code Analysen auf diesem System
2
+
3
+ Vollständiger Index aller Orte, an denen Claude Code Analysen gespeichert sind.
4
+ Stand: 2026-03-18
5
+
6
+ ---
7
+
8
+ ## Primäre Analyse-Dokumente
9
+
10
+ | Datei | Pfad | Fokus |
11
+ |-------|------|-------|
12
+ | Harness-Analyse | `/home/smlflg/Projekte/Sidecar-ng/Claude_Code_Harness_Analyse_2026-03-16.md` | Attention Budget, additionalContext API, Sidecar V8 Plan |
13
+ | ANALYSE_KOMPLETT | `/home/smlflg/Dokumente/Ai_Cost_Engeneer/WieVerwendeIchClaudeCode/ANALYSE_KOMPLETT.md` | Self-Audit 6.1/10, Kosten, Skills-Rationalisierung |
14
+ | RETROSPEKTIVE_100_SESSIONS | `/home/smlflg/Dokumente/RETROSPEKTIVE_100_SESSIONS.md` | 60+ Sessions, ADHS-Patterns, emotionale Analyse |
15
+ | TAGESANALYSE 09.03. | `/home/smlflg/ClaudeSystemBackup/session-logs/TAGESANALYSE_2026-03-09.md` | Hyperfocus-Tag, 10 Features, 0 E2E Tests |
16
+ | FORENSIK | `/home/smlflg/Projekte/Sidecar-V7-V2/FORENSIK.md` | Scope Creep Forensik, 83 Commits in 3 Tagen, Observer Paradox |
17
+ | SIDECAR_EVOLUTION | `/home/smlflg/Projekte/Sidecar-ng/SIDECAR_EVOLUTION.md` | V1-V7 Failure History, warum NG funktioniert |
18
+ | V8 Architecture | `/home/smlflg/Projekte/Sidecar-V8-Plan/docs/architecture/sidecar-v8-architecture.md` | Agent-Agnostic Design, Adapter-Pattern |
19
+ | V8 Gap-Audit | `/home/smlflg/Projekte/Sidecar-V8-Plan/docs/evaluation/gap-audit-2026-03-12.md` | Build-Blocker, fehlende Entscheidungen |
20
+ | FINAL_SYNTHESIS_REPORT | `/home/smlflg/Downloads/Claude T450s-20260209T160919Z-1-001/Claude T450s/FINAL_SYNTHESIS_REPORT.md` | 74 Sessions Meta-Analyse über 3 Monate (altes Gerät T450s) |
21
+ | HANDOFF | `/home/smlflg/Projekte/Sidecar-V7-V2/HANDOFF.md` | Refactoring-Strategie daemon.py 3863 LOC |
22
+
23
+ ---
24
+
25
+ ## T450s Archiv (80+ Dokumente)
26
+
27
+ Primär: `/home/smlflg/Downloads/Claude T450s-20260209T160919Z-1-001/Claude T450s/`
28
+ Mirror: `/home/smlflg/ClaudesReich/EveryClaudeCodeSessionfromeverydeviceever/3Laptops/Claude -insights/Claude T450s/`
29
+
30
+ | Datei | Thema |
31
+ |-------|-------|
32
+ | `PRINCIPLES.md` | Learning philosophy, 8-week foundation program |
33
+ | `ORCHESTRATION_GUIDE.md` | Multi-Agent Patterns, CrewAI/LangGraph ($0.60-0.70/1M vs $3/1M) |
34
+ | `BUILD_SPECS_INDEX.md` | 5 reusable skill templates (/snapshot, /explain, /delta, /teach, /tokenbudget) |
35
+ | `INTEGRATION_COMPLETE.md` | Chef-Opencode Integration architecture |
36
+ | `QUICK_START.md` | Unified crew workflow (baseline vs professional modes) |
37
+ | `VERTICAL_INTEGRATION.md` | Architecture patterns |
38
+ | `HIERARCHICAL_ORCHESTRATION.md` | Architecture patterns |
39
+ | `CLAUDE.md` | Critical rules & cost delegation table |
40
+ | `commands/` | Slash command definitions (crew, chef, langgraph, research) |
41
+ | `skills/` | documentation, refactoring, testing, architecture, opencode-delegation |
42
+
43
+ ---
44
+
45
+ ## Tool-Vergleiche & Integration
46
+
47
+ Basis-Pfad: `/home/smlflg/Dokumente/Pläne/`
48
+
49
+ | Datei | Thema |
50
+ |-------|-------|
51
+ | `ClaudeCodeWorks/FOR_SMLFLG.md` | Audio/Multimodal Integration via Hooks |
52
+ | `opencodethinks.md` | OpenCode Feature-Analyse |
53
+ | `opencodeconclusion.md` | OpenCode Fazit |
54
+ | `codexconclusion.md` | Codex Fazit |
55
+ | `opencodeupdateforclaudecode.md` | Multi-Agent Hook-Integration |
56
+ | `ClaudeCodeWorks/OPENCODETALKS.md` | OpenCode SSE-Bus Limitation |
57
+
58
+ ---
59
+
60
+ ## HTML-Visualisierungen
61
+
62
+ Basis-Pfad: `/home/smlflg/.agent/diagrams/`
63
+
64
+ | Datei | Thema |
65
+ |-------|-------|
66
+ | `claude-config-evolution.html` (351 KB) | Config evolution over time |
67
+ | `meta-analyse-4wochen-samuel.html` | 4-week meta analysis |
68
+ | `sidecar-ecosystem-overview.html` | Sidecar ecosystem map |
69
+ | `sidecar-ng-skill-router.html` | Skill routing visualization |
70
+ | `claudecodepanel-deep-review.html` | Panel deep review |
71
+ | `claude-directory-architecture.html` | Directory architecture map |
72
+ | + 22 weitere HTML-Dateien | — |
73
+
74
+ ---
75
+
76
+ ## Projekt-spezifische Lessons Learned (FOR_SMLFLG.md)
77
+
78
+ | Pfad | Thema |
79
+ |------|-------|
80
+ | `/home/smlflg/Projekte/Sidecar-V7/FOR_SMLFLG.md` | V7 Lessons, Speech Quality, TTS Ranking |
81
+ | `/home/smlflg/Projekte/ClaudeCodePanel/FOR_SMLFLG.md` | GTK Panel Architecture, Quick Wins |
82
+ | `/home/smlflg/Projekte/Sidecar/FOR_SMLFLG.md` | Sidecar main lessons |
83
+
84
+ ---
85
+
86
+ ## Config & Setup
87
+
88
+ | Pfad | Inhalt |
89
+ |------|--------|
90
+ | `/home/smlflg/.claude/CLAUDE.md` | Global Master Instructions (280+ Zeilen) |
91
+ | `/home/smlflg/.claude/settings.json` | Hook-System, Permissions, Model Config |
92
+ | `/home/smlflg/.claude/agents/` | 21 Agent-Definitionen |
93
+ | `/home/smlflg/.claude/hooks/` | 7 Hook-Scripts (coaching, tracking, monitoring) |
94
+ | `/home/smlflg/.claude/get-shit-done/` | GSD Templates & Workflows |
95
+
96
+ ---
97
+
98
+ ## Session-Daten & Logs
99
+
100
+ | Pfad | Inhalt |
101
+ |------|--------|
102
+ | `/home/smlflg/.claude/session-logs/` | 6 Session-Log Files |
103
+ | `/home/smlflg/.claude/usage/` | Daily JSONL Usage Tracking |
104
+ | `/home/smlflg/.claude/events/` | Daily Hook Event Logs |
105
+ | `/home/smlflg/.claude/hooks/coaching/coaching_log.md` | Coaching Compliance Log |
106
+ | `/home/smlflg/Archiv/SESSION_LOG.md` | Archivierte Session Logs |
107
+
108
+ ---
109
+
110
+ ## Backup & Archiv
111
+
112
+ | Pfad | Inhalt |
113
+ |------|--------|
114
+ | `/home/smlflg/claude-backup-2026-03-16.tar.zst` (837 MB) | Full System Backup |
115
+ | `/home/smlflg/ClaudeSystemBackup/` | Session-Logs Backup |
116
+ | `/home/smlflg/Projekte/Sidecar-Evolution/` | V1-V8 Historical Archive |
117
+
118
+ ---
119
+
120
+ ## Sonstige Orte
121
+
122
+ | Pfad | Thema |
123
+ |------|-------|
124
+ | `/home/smlflg/Moltbot/SelfAiMoltbot/skills/` | Obsidian/Notion Skills |
125
+ | `/home/smlflg/.hermes/skills/` | Hermes Agent Skills |
126
+ | `/home/smlflg/AiSystemForVibeCoding/` | $39.74 tracked |
127
+ | `/home/smlflg/Dokumente/durchstarten/` | $5.41 tracked |
128
+ | `/home/smlflg/Projekte/samuel-os/` | ACTIVE.md, INBOX.md, DECISIONS.md |
129
+ | `/home/smlflg/PLAN_2026-03-13_SWARM-AUTO-ATTACH.md` | Home root plan file |
130
+
131
+ ---
132
+
133
+ ## Statistik
134
+
135
+ | Metrik | Wert |
136
+ |--------|------|
137
+ | Claude Code Startups seit 28.01.2026 | 534 |
138
+ | Analysierte Sessions dokumentiert | 100+ |
139
+ | Geschätzte Gesamtkosten | $100+ |
140
+ | Projekte in ~/Projekte/ | 38+ |
141
+ | Konfigurierte Agents | 21 |
142
+ | Skill-Definitionen | 69 (33 core + 36 GSD) |
143
+ | Aktive Hook-Scripts | 7 |
RESET_7_TAGE.md ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 7-Tage-Reset
2
+
3
+ Start: 2026-03-24
4
+ Ende: 2026-03-30
5
+
6
+ Ziel dieser Woche: wieder steuerbar werden.
7
+
8
+ Nicht das Ziel:
9
+ - die Kommandozentrale bauen
10
+ - 38 Projekte aufarbeiten
11
+ - die perfekte Karriereentscheidung treffen
12
+ - das ganze System neu aufsetzen
13
+
14
+ ## Regeln
15
+
16
+ Diese Regeln gelten fuer 7 Tage ohne Neuverhandlung.
17
+
18
+ 1. Keine Drogen.
19
+ 2. TikTok und Twitter bleiben zu. Wenn Nutzung nicht vermeidbar ist: ein festes Fenster am Abend, maximal 20 Minuten.
20
+ 3. Genau ein Arbeitsblock pro Tag, 60 bis 90 Minuten.
21
+ 4. Genau ein Fokus pro Tag. Kein Projekt-Hopping.
22
+ 5. Jeden Tag Bewegung: Spaziergang oder Training, mindestens 20 Minuten.
23
+ 6. Jede Session endet mit einem Log in `DAILY_LOG_7_TAGE.md`.
24
+ 7. Neue Ideen gehen in `NOT_THIS_WEEK.md`, nicht in neue Projekte.
25
+
26
+ ## Tagesminimum
27
+
28
+ Ein Tag zaehlt als erfolgreich, wenn diese 5 Punkte erfuellt sind:
29
+
30
+ - keine Drogen
31
+ - Arbeitsblock gemacht
32
+ - Tageslog geschrieben
33
+ - Bewegung gemacht
34
+ - Social Media im Limit geblieben
35
+
36
+ ## Tagesablauf
37
+
38
+ Minimalversion:
39
+
40
+ 1. Aufstehen, Wasser, kurze Lageeinschaetzung.
41
+ 2. Bewegung vor dem Arbeitsblock.
42
+ 3. Ein Arbeitsblock auf genau einer Aufgabe.
43
+ 4. Danach Arbeitsende fuer den Tag akzeptieren.
44
+ 5. Abends Log schreiben.
45
+
46
+ Wenn ein Tag entgleist:
47
+
48
+ 1. Nicht nachholen.
49
+ 2. Nicht neu planen.
50
+ 3. Nur das Tageslog trotzdem ausfuellen.
51
+ 4. Am naechsten Tag mit demselben Minimalplan weitermachen.
52
+
53
+ ## Arbeitsregeln
54
+
55
+ Erlaubt:
56
+
57
+ - ein kleines Projektstueck fertig machen
58
+ - bestehende Notizen ordnen
59
+ - eine reale Sache abschliessen
60
+ - eine konkrete Lernnotiz schreiben
61
+
62
+ Nicht erlaubt:
63
+
64
+ - neue Architektur erfinden
65
+ - neues Tool-Hopping
66
+ - Festplatte/System neu aufsetzen
67
+ - komplexe Multi-Agent-Systeme starten
68
+ - aus einem Tagesproblem eine Lebensentscheidung machen
69
+
70
+ ## Karriere-Frame fuer diese Woche
71
+
72
+ Frage nicht: "Bin ich schon bereit?"
73
+
74
+ Frage stattdessen:
75
+
76
+ - Welche Umgebung macht mich in den naechsten 30 Tagen stabiler?
77
+ - Welche Umgebung reduziert Chaos und erhoeht echte Lernkurve?
78
+
79
+ Die Bewertung kommt am Ende der Woche in `CAREER_DECISION_30_TAGE.md`.
80
+
81
+ ## Wenn es kippt
82
+
83
+ Wenn starker Suchtdruck, Kontrollverlust oder psychischer Absturz kommt:
84
+
85
+ - Laptop zu
86
+ - 10 Minuten rausgehen
87
+ - eine reale Person kontaktieren
88
+ - heute keinen Arbeitsanspruch mehr stellen
89
+
90
+ Wenn du merkst, dass du die 7 Tage nicht halten kannst oder dich unsicher fuehlst, ist externe Hilfe Prioritaet.
SETUP.md ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Setup — Claude Code Aktueller Zustand (2026-03-18)
2
+
3
+ ## System
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | OS | Pop!_OS + COSMIC + Wayland |
8
+ | Shell | bash |
9
+ | Python | 3.12+ (uv, ruff, pytest) |
10
+ | Node | via nvm |
11
+ | Claude Code | v2.1.76-78 |
12
+ | Modell Hauptsession | claude-opus-4-6 |
13
+ | Modell Subagents | claude-sonnet-4-6 |
14
+ | Modell Background | claude-haiku-4-5 |
15
+ | Effort | high |
16
+ | Experimental | CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 |
17
+ | Voice | enabled |
18
+ | Startups | 534 (seit 28. Januar 2026) |
19
+
20
+ ---
21
+
22
+ ## CLAUDE.md Ecosystem
23
+
24
+ | Datei | Details |
25
+ |---|---|
26
+ | `~/.claude/CLAUDE.md` | Global Master, 280+ Zeilen, 16 KB |
27
+ | Project-level CLAUDE.md | 10 Dateien |
28
+ | Hierarchie | Global > Project Root > .claude/ Scoped |
29
+ | Bekanntes Problem | Bloat, Widersprüche, Attention-Budget-Kollaps |
30
+
31
+ ---
32
+
33
+ ## Hook-System
34
+
35
+ 6 Events, 7 Scripts.
36
+
37
+ ### UserPromptSubmit
38
+
39
+ | Script | Funktion |
40
+ |---|---|
41
+ | `hook_inject.py` (Sidecar-NG) | Keyword-Prefilter + LLM-Fallback → additionalContext |
42
+
43
+ ### PostToolUse
44
+
45
+ | Script | Funktion |
46
+ |---|---|
47
+ | `usage-tracker.sh` | JSONL Usage Logging |
48
+ | `event_logger.py` | Universal Event Logging |
49
+ | `coach-git-test.sh` | Git/Test Micro-Lessons (5 min Rate-Limit) |
50
+ | `gsd-context-monitor.js` | Context Warning bei ≤35% / 25% |
51
+
52
+ ### SessionStart
53
+
54
+ | Script | Funktion |
55
+ |---|---|
56
+ | `gsd-check-update.js` | GSD Version Check |
57
+ | `coach-before.sh` | Pre-Session Coaching (10 Regeln, 40 Tips, Streak Counter) |
58
+
59
+ ### Stop
60
+
61
+ | Script | Funktion |
62
+ |---|---|
63
+ | `coach-after.sh` | Post-Session Compliance Analysis |
64
+
65
+ ### StatusLine
66
+
67
+ | Script | Funktion |
68
+ |---|---|
69
+ | `statusline.sh` | Sidecar-NG Status Display |
70
+
71
+ ### PreToolUse (Project-Level)
72
+
73
+ | Script | Funktion |
74
+ |---|---|
75
+ | `safety_gates.py` | 6 deterministische Safety Gates |
76
+
77
+ ---
78
+
79
+ ## MCP Server
80
+
81
+ | Server | Tools |
82
+ |---|---|
83
+ | Gemini MCP | ask-gemini, brainstorm, fetch-chunk |
84
+ | OpenCode MCP | 13 Tools: ask, run, reply, check, fire, context, review_changes, ... |
85
+ | PromptGarage MCP | project-level (nicht global): search, show, use, random_prompt, stats |
86
+
87
+ ---
88
+
89
+ ## Agents (21 Total)
90
+
91
+ ### Implementation
92
+
93
+ | Agent | Aufgabe |
94
+ |---|---|
95
+ | sonnet-builder | Code-Edits, Refactoring, Bug-Fixes |
96
+ | opus-thinker | Architektur-Analyse, Deep Thinking |
97
+ | sonnet-scout | Research, File Finding |
98
+ | sonnet-pruefer | Tests, Reviews, Regressions |
99
+
100
+ ### GSD (16 Agents)
101
+
102
+ | Gruppe | Agents |
103
+ |---|---|
104
+ | Core | gsd-planner, gsd-executor, gsd-debugger, gsd-verifier |
105
+ | Planning | gsd-plan-checker, gsd-codebase-mapper, gsd-phase-researcher |
106
+ | Research | gsd-project-researcher, gsd-research-synthesizer, gsd-roadmapper |
107
+ | Quality | gsd-integration-checker, gsd-nyquist-auditor |
108
+ | UI | gsd-ui-auditor, gsd-ui-checker, gsd-ui-researcher |
109
+
110
+ ### Kontext
111
+
112
+ | Agent | Aufgabe |
113
+ |---|---|
114
+ | samuel-kontext | ADHS-informiertes Profil, Kommunikationsstil |
115
+
116
+ ---
117
+
118
+ ## Skills (69 Total)
119
+
120
+ ### Global (1)
121
+
122
+ | Skill | Funktion |
123
+ |---|---|
124
+ | `/eval` | Evaluation Framework |
125
+
126
+ ### Sidecar-NG Core (33)
127
+
128
+ **Tier 1** — Häufig genutzt:
129
+ `/recap`, `/check-state`, `/focus`, `/review`, `/test`, `/checkpoint`, `/debug-loop`, `/learn`, `/explore-first`, `/feierabend`, `/research`
130
+
131
+ **Tier 2** — Orchestrierung:
132
+ `/chef`, `/chef-async`, `/chef-lite`, `/chef-subagent`, `/delegate`, `/research-subagent`, `/research-oc`, `/research-swarm`, `/quickwin`
133
+
134
+ **Tier 3** — Spezialisiert:
135
+ `/batch`, `/auto`, `/bigwin`, `/crew`, `/swarm`, `/test-crew`, `/selfimprove`, `/setup-git`, `/snapshot`, `/eval-loop`, `/codex`, `/voice-smart`, `/validate-config`
136
+
137
+ ### GSD (36)
138
+
139
+ `/gsd:plan-phase`, `/gsd:execute-phase`, `/gsd:new-project`, `/gsd:progress`, `/gsd:do`, und weitere.
140
+
141
+ ---
142
+
143
+ ## Sidecar-NG
144
+
145
+ | Property | Value |
146
+ |---|---|
147
+ | `hook_inject.py` | 1.172 LOC |
148
+ | `safety_gates.py` | 209 LOC |
149
+ | Knowledge Base | 6 Files, max 15K char, priority-ordered |
150
+ | Keyword Pre-Filter | ~20 Rules, first-match-wins, 0 ms |
151
+ | LLM Fallback Chain | Cerebras → Groq → SambaNova → Together → OpenRouter → Mistral → NVIDIA → GitHub → Gemini → MiniMax |
152
+ | Rate Limiting | 3s global, 60s per-provider nach 429 |
153
+ | Logging | `inject_log.jsonl`, `safety_gates_log.jsonl` |
154
+
155
+ ---
156
+
157
+ ## Coaching System
158
+
159
+ | Komponente | Details |
160
+ |---|---|
161
+ | `coach-before.sh` | 10 rotierende Regeln, 40 Micro-Tips, Streak Counter |
162
+ | `coach-after.sh` | Agent Compliance Analyse, Peak Concurrent Agents |
163
+ | `coach-git-test.sh` | Real-time Git/Test Lessons |
164
+ | `coaching_log.md` | Session Review Log |
165
+ | Weekly Cron | Sonntag 20:00 |
166
+
167
+ ---
168
+
169
+ ## Permissions
170
+
171
+ ### Allowed
172
+
173
+ | Kategorie | Tools |
174
+ |---|---|
175
+ | Core | Edit, Write, Read, Bash(*), Glob, Grep, Agent, NotebookEdit |
176
+ | Web | WebFetch, WebSearch |
177
+ | MCP | Gemini (3 tools), OpenCode (13 tools) |
178
+ | Other | Skill Tool |
179
+
180
+ ### Denied
181
+
182
+ `rm`, `rmdir`, `shred`, `dd`, `mkfs`, `apt`
183
+
184
+ ---
185
+
186
+ ## Projekte (38+)
187
+
188
+ | Kategorie | Projekte |
189
+ |---|---|
190
+ | Hauptprojekte | Sidecar-ng, MyAIGame, ClaudeCodePanel, ShortcutCounter, StudyAgent |
191
+ | Weitere | FireTracker, BookmarkBrain, PromptGarage, AgentArena, Subconsciousness, TypoTuner, Voicemode, Sonnenuhr, SandrasWritingWorld, shared-gui, ... |
192
+
193
+ ---
194
+
195
+ ## Kosten-Tracking
196
+
197
+ | Property | Value |
198
+ |---|---|
199
+ | Speicherort | `~/.claude/usage/` (Daily JSONL) |
200
+ | Höchste Einzelkosten | Dokumente/Pläne: $44.90 |
201
+ | Zweithöchste | AiSystemForVibeCoding: $39.74 |
202
+ | Geschätzte Gesamtkosten | $100+ (analysierte Periode) |
203
+
204
+ ---
205
+
206
+ ## Backup
207
+
208
+ | Datei | Details |
209
+ |---|---|
210
+ | `claude-backup-2026-03-16.tar.zst` | 837 MB |
211
+ | `ClaudeSystemBackup/` | Session-Logs |
TIMELINE_DATA.md ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Timeline Showcase — Rohdaten
2
+
3
+ ## Übersicht
4
+ - Zeitraum: 02.03.2026 – 25.03.2026 (24 Tage)
5
+ - Gesamt: ~197 HTML-Dateien
6
+ - Quellen: 15 Projekte unter ~/Projekte/ + ~/.agent/diagrams/
7
+
8
+ ---
9
+
10
+ ## Projekte (chronologisch nach erstem HTML)
11
+
12
+ ### 02.03. — Erste Woche
13
+ | Datum | Projekt | Datei | Typ |
14
+ |-------|---------|-------|-----|
15
+ | 02.03. | .agent/diagrams | claude-cost-dashboard.html | Analyse |
16
+ | 02.03. | .agent/diagrams | skill-test-report.html | Analyse |
17
+ | 02.03. | .agent/diagrams | claude-delegation-architecture.html | Architektur |
18
+ | 02.03. | .agent/diagrams | claude-session-lifecycle.html | Architektur |
19
+ | 02.03. | .agent/diagrams | claude-skill-ecosystem.html | Architektur |
20
+ | 02.03. | .agent/diagrams | oktopus-visual.html | Architektur |
21
+ | 02.03. | .agent/diagrams | subconsciousness-framework.html | Architektur |
22
+ | 03.03. | .agent/diagrams | panel-ux-guide.html | Learning |
23
+ | 03.03. | .agent/diagrams | subconsciousness-plan.html | Plan |
24
+ | 04.03. | .agent/diagrams | chatgpt-nutzung-samuel.html | Analyse |
25
+ | 04.03. | .agent/diagrams | openclaw-sprint-recap.html | Analyse |
26
+ | 04.03. | .agent/diagrams | context-offloading-architecture.html | Architektur |
27
+ | 04.03. | .agent/diagrams | oktopus-architektur.html | Architektur |
28
+ | 04.03. | .agent/diagrams | claudecodepanel-explained.html | Learning |
29
+ | 04.03. | .agent/diagrams | learn-context-offloading.html | Learning |
30
+ | 04.03. | .agent/diagrams | projekt-sprint-team.html | Plan |
31
+
32
+ ### 05.03. — Projekte starten
33
+ | Datum | Projekt | Datei | Typ |
34
+ |-------|---------|-------|-----|
35
+ | 05.03. | AgentSwarmDashboard | static/index.html | App |
36
+ | 05.03. | BookmarkBrain | templates/base.html | App |
37
+ | 05.03. | FireTracker | templates/* (7 Dateien) | App |
38
+ | 05.03. | ProjectDashboard | templates/partials/* (2 Dateien) | App |
39
+ | 05.03. | Sidecar | eval/dashboard.html | Eval |
40
+ | 05.03. | StudyAgent | templates/* (8 Dateien) | App |
41
+ | 05.03. | .agent/diagrams | agent-sdk-landschaft-2026.html | Architektur |
42
+ | 05.03. | .agent/diagrams | agent-swarm-live.html | Architektur |
43
+ | 05.03. | .agent/diagrams | sidecar-evolution.html | Architektur |
44
+ | 05.03. | .agent/diagrams | workflow-evolution.html | Architektur |
45
+ | 05.03. | .agent/diagrams | sidecar-vs-florian.html | Analyse |
46
+ | 05.03. | .agent/diagrams | adhs-study-agent.html | Learning |
47
+ | 05.03. | .agent/diagrams | sidecar-v5-lernsystem.html | Learning |
48
+ | 05.03. | .agent/diagrams | bookmarkbrain-plan.html | Plan |
49
+ | 05.03. | .agent/diagrams | sidecar-v5-plan.html | Plan |
50
+
51
+ ### 06.03. — Dashboard-Woche
52
+ | Datum | Projekt | Datei | Typ |
53
+ |-------|---------|-------|-----|
54
+ | 06.03. | ProjectDashboard | templates/index.html + git.html + partials/* | App |
55
+ | 06.03. | .agent/diagrams | agentide-v03-review-report.html | Analyse |
56
+ | 06.03. | .agent/diagrams | claude-code-deep-analysis.html | Analyse |
57
+ | 06.03. | .agent/diagrams | project-health-dashboard.html | Analyse |
58
+ | 06.03. | .agent/diagrams | project-sweep-report.html | Analyse |
59
+ | 06.03. | .agent/diagrams | sidecar-v5-agent-analyse.html | Analyse |
60
+ | 06.03. | .agent/diagrams | sidecar-erklaert.html | Architektur |
61
+ | 06.03. | .agent/diagrams | sidecar-komplett-ueberblick.html | Architektur |
62
+ | 06.03. | .agent/diagrams | sidecar-optimization.html | Architektur |
63
+ | 06.03. | .agent/diagrams | sidecar-versions-overview.html | Architektur |
64
+ | 06.03. | .agent/diagrams | git-situation-agentide.html | Learning |
65
+ | 06.03. | .agent/diagrams | sidecar-panel-roadmap.html | Plan |
66
+ | 06.03. | Sidecar-V6 | sidecar-oder-erfolg.html | Explainer |
67
+
68
+ ### 08.03.–09.03. — AgentArena + Sidecar-V6
69
+ | Datum | Projekt | Datei | Typ |
70
+ |-------|---------|-------|-----|
71
+ | 08.03. | AgentArena | docs/architecture.html | Architektur |
72
+ | 08.03. | AgentArena | templates/base.html + matrix.html | App |
73
+ | 08.03. | Sidecar-V6 | architektur-v6.html | Architektur |
74
+ | 08.03. | Sidecar-V6 | dashboard-prototype.html | App |
75
+ | 08.03. | Sidecar-V6 | plan-tag1.html | Plan |
76
+ | 09.03. | AgentArena | templates/matrix.html | App |
77
+ | 09.03. | Sidecar-V6 | templates/partials/* (3 Dateien) | App |
78
+ | 09.03. | .agent/diagrams | sidecar-v6-1-minimax-deep-integration.html | Architektur |
79
+ | 09.03. | .agent/diagrams | sidecar-v6-agentisch.html | Architektur |
80
+
81
+ ### 10.03. — Sidecar-V7 + SidecarDashboard
82
+ | Datum | Projekt | Datei | Typ |
83
+ |-------|---------|-------|-----|
84
+ | 10.03. | Sidecar-V6 | mechanism-evaluation.html | Eval |
85
+ | 10.03. | Sidecar-V7 | templates/* (alle partials + main) | App |
86
+ | 10.03. | SidecarDashboard | templates/* (10 Dateien) | App |
87
+ | 10.03. | StudyAgent | partials/deadline_item + elastic_plan | App |
88
+ | 10.03. | .agent/diagrams | sidecar-v7-phase2-plan.html | Plan |
89
+ | 10.03. | .agent/diagrams | hardcore-shipping-analyse.html | Analyse |
90
+ | 10.03. | .agent/diagrams | sidecar-v6-mechanism-audit.html | Analyse |
91
+ | 10.03. | .agent/diagrams | sidecar-v6-stand-der-dinge.html | Architektur |
92
+
93
+ ### 11.03. — Hochproduktiver Tag
94
+ | Datum | Projekt | Datei | Typ |
95
+ |-------|---------|-------|-----|
96
+ | 11.03. | Sidecar-V6 | samuel/templates/* (viele partials) | App |
97
+ | 11.03. | Sidecar-V7 | docs/prompt-building-status.html | Docs |
98
+ | 11.03. | TypoTuner | web/templates/* (5 Dateien) | App |
99
+ | 11.03. | .agent/diagrams | haekel-buddy-app.html (117KB!) | App-Konzept |
100
+ | 11.03. | .agent/diagrams | haekel-buddy-architektur.html | Architektur |
101
+ | 11.03. | .agent/diagrams | haekel-buddy-konzept.html | Konzept |
102
+ | 11.03. | .agent/diagrams | haekel-rose-anleitung.html | Anleitung |
103
+ | 11.03. | .agent/diagrams | promptgarage-launcher.html | App |
104
+ | 11.03. | .agent/diagrams | typotuner-architecture.html | Architektur |
105
+ | 11.03. | .agent/diagrams | sidecar-v7-introspection-session.html | Analyse |
106
+ | 11.03. | .agent/diagrams | minimax-bug-meta-analyse.html | Analyse |
107
+ | 11.03. | .agent/diagrams | v7-meta-analyse.html | Analyse |
108
+ | 11.03. | .agent/diagrams | sidecar-v5-v6-v7-interconnect.html | Architektur |
109
+
110
+ ### 12.03. — Meta-Analyse-Tag
111
+ | Datum | Projekt | Datei | Typ |
112
+ |-------|---------|-------|-----|
113
+ | 12.03. | AgentIDE | static/index.html | App |
114
+ | 12.03. | Sidecar-V7 | partials/contract_status + mechanism_ranking | App |
115
+ | 12.03. | .agent/diagrams | meta-analyse-4wochen-samuel.html | Analyse |
116
+ | 12.03. | .agent/diagrams | agentide-git-history.html | Analyse |
117
+ | 12.03. | .agent/diagrams | claude-config-evolution.html (351KB!) | Architektur |
118
+ | 12.03. | .agent/diagrams | dynamic-memory-system.html | Architektur |
119
+ | 12.03. | .agent/diagrams | memory-minimax-quality-analysis.html | Analyse |
120
+ | 12.03. | .agent/diagrams | sidecar-v7-phase-unification.html | Architektur |
121
+ | 12.03. | .agent/diagrams | sidecar-learnings-v1-v7.html | Analyse |
122
+ | 12.03. | .agent/diagrams | version-squared-framework.html | Analyse |
123
+
124
+ ### 13.03. — Sidecar Ecosystem
125
+ | Datum | Projekt | Datei | Typ |
126
+ |-------|---------|-------|-----|
127
+ | 13.03. | .agent/diagrams | claude-api-tunnel-flow.html | Architektur |
128
+ | 13.03. | .agent/diagrams | claudecodepanel-deep-review.html (69KB) | Analyse |
129
+ | 13.03. | .agent/diagrams | sidecar-ecosystem-overview.html (65KB) | Architektur |
130
+ | 13.03. | .agent/diagrams | sidecar-v7-visual-explainer.html | Explainer |
131
+ | 13.03. | .agent/diagrams | sidecar-v7-wie-es-hilft.html | Explainer |
132
+ | 13.03. | .agent/diagrams | sidecar-v7-speech-system.html | Analyse |
133
+
134
+ ### 14.03.–15.03. — SandrasWritingWorld
135
+ | Datum | Projekt | Datei | Typ |
136
+ |-------|---------|-------|-----|
137
+ | 14.03. | .agent/diagrams | agent-team-workflow-demo.html | Demo |
138
+ | 15.03. | SandrasWritingWorld | index.html + 7 Seiten | Website |
139
+
140
+ ### 16.03. — Version Archaeology + V7-V2
141
+ | Datum | Projekt | Datei | Typ |
142
+ |-------|---------|-------|-----|
143
+ | 16.03. | Sidecar-V7-V2 | templates/* (14 Dateien, Fork) | App |
144
+ | 16.03. | .agent/diagrams | claude-directory-architecture.html (70KB) | Architektur |
145
+ | 16.03. | .agent/diagrams | sidecar-v7-daemon-commits.html | Architektur |
146
+ | 16.03. | .agent/diagrams | sidecar-v7-lite-architecture.html (62KB) | Architektur |
147
+ | 16.03. | .agent/diagrams | version-archaeology-v1-v6.html | Analyse |
148
+ | 16.03. | .agent/diagrams | sidecar-v7-analyse-2026-03-16.html | Analyse |
149
+ | 16.03. | .agent/diagrams | sidecar-v7-daemon-commits-2026-03-16.html | Architektur |
150
+ | 16.03. | .agent/diagrams | sidecar-v7-event-pipeline-2026-03-16.html | Architektur |
151
+
152
+ ### 18.03. — Sidecar-NG + Karriere
153
+ | Datum | Projekt | Datei | Typ |
154
+ |-------|---------|-------|-----|
155
+ | 18.03. | Jobs_Selbständigkeit | STRATEGIE_VISUAL.html | Karriere |
156
+ | 18.03. | .agent/diagrams | buildmode-explainer.html | Explainer |
157
+ | 18.03. | .agent/diagrams | sidecar-ng-skill-router.html | Architektur |
158
+ | 18.03. | .agent/diagrams | v6-eval-analysis.html | Analyse |
159
+
160
+ ### 19.03. — Letzte Diagramme
161
+ | Datum | Projekt | Datei | Typ |
162
+ |-------|---------|-------|-----|
163
+ | 19.03. | Sidecar-V7 | templates/index.html (Update) | App |
164
+ | 19.03. | .agent/diagrams | claude-code-ecosystem-complete.html (58KB) | Architektur |
165
+ | 19.03. | .agent/diagrams | claude-code-model-effort-system.html (46KB) | Architektur |
166
+ | 19.03. | .agent/diagrams | smart-compact-flow.html | Architektur |
167
+ | 19.03. | .agent/diagrams | v7-evaluation-deep-dive.html (72KB) | Analyse |
168
+ | 19.03. | .agent/diagrams | viz-event-infrastructure.html | Architektur |
169
+
170
+ ### 20.03.–25.03. — samuel-os-v2 + MetaMetaMeta
171
+ | Datum | Projekt | Datei | Typ |
172
+ |-------|---------|-------|-----|
173
+ | 24.03. | samuel-os-v2 | dashboard/index.html + tutorials/* + guidelines/* | Dashboard |
174
+ | 25.03. | MetaMetaMeta | eval-dashboard.html | Eval |
175
+ | 25.03. | MetaMetaMeta | visual_explainer_run_pipeline.html | Explainer |
176
+
177
+ ---
178
+
179
+ ## Thematische Cluster
180
+
181
+ ### Apps & Dashboards (Web-Interfaces)
182
+ FireTracker, ProjectDashboard, StudyAgent, AgentSwarmDashboard, BookmarkBrain,
183
+ SidecarDashboard, AgentIDE, TypoTuner, SandrasWritingWorld, samuel-os-v2
184
+
185
+ ### Sidecar-Evolution (V5→V6→V7→V7-V2→NG)
186
+ ~50+ Dateien die die Evolution von Sidecar dokumentieren
187
+
188
+ ### Architektur-Diagramme
189
+ 24 Dateien in .agent/diagrams/architecture/
190
+
191
+ ### Analysen & Meta-Reflexion
192
+ 16 Dateien in .agent/diagrams/analyses/ + Root-Level-Analysen
193
+
194
+ ### Lernmaterial
195
+ 6 Dateien in .agent/diagrams/learning/
196
+
197
+ ### Pläne
198
+ 5 Dateien in .agent/diagrams/plans/
199
+
200
+ ---
201
+
202
+ ## Statistiken
203
+ - Früheste Datei: 02.03.2026
204
+ - Letzte Datei: 25.03.2026
205
+ - Produktivster Tag: 11.03. (15+ neue HTML-Dateien)
206
+ - Größte Datei: claude-config-evolution.html (351KB)
207
+ - Projekte mit Web-UI: 10
208
+ - Standalone-Diagramme: 82
209
+ - Projekt-HTMLs: 115
TODO_B2B_PRODUCT.md ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # B2B Product Briefing: AgentArena / MetaMetaEvalve
2
+
3
+ **Date:** 2026-03-19
4
+ **Status:** Idea-stage — validation pending
5
+ **Scope:** NOT current sprint. Document for when focus shifts from Sidecar-NG stabilization.
6
+
7
+ ---
8
+
9
+ ## The Core Insight
10
+
11
+ Companies are buying AI coding tools (Claude Code, Cursor, Copilot) at scale. Nobody can measure whether employees actually use them well. "Can this person work effectively with AI agents?" is becoming a hiring criterion, but there is no standardized way to assess it — just vibes and self-reporting.
12
+
13
+ AgentArena makes that skill measurable.
14
+
15
+ ---
16
+
17
+ ## Value Proposition
18
+
19
+ **Problem for Engineering Managers / HR:**
20
+ - Spent budget on Copilot/Claude licenses. No way to know if devs use them or cargo-cult around them.
21
+ - Hiring candidates claim "strong AI skills." No way to verify beyond a vague portfolio.
22
+ - Agentic fatigue is real (2026 trend): managing agents is as expensive as writing code. Some people are good at it; most are not.
23
+
24
+ **What AgentArena provides:**
25
+ - Objective, reproducible sessions where candidates or employees work with a real AI agent on a defined task
26
+ - Metrics extracted from those sessions: time-to-correct-guidance, error catch rate, prompt quality, revision efficiency
27
+ - Benchmark scores comparable across candidates or teams over time
28
+
29
+ The pitch in one sentence: **"We don't test if they can code. We test if they can direct an agent."**
30
+
31
+ ---
32
+
33
+ ## Target Market
34
+
35
+ **Primary buyer: Engineering Managers at mid/large tech companies**
36
+ - Pain: AI tool ROI is unmeasured. Budget justification is hard.
37
+ - Trigger: Hired someone who looked great on paper but couldn't work with agents productively.
38
+
39
+ **Secondary buyer: HR / Talent Acquisition at scale**
40
+ - Pain: Technical screening is outsourced to platforms (CodeSignal, Devskiller). Those platforms don't include agentic skill.
41
+ - Trigger: Adding "AI proficiency" to job descriptions without a way to test it.
42
+
43
+ **Tertiary buyer: CTO / VP Engineering**
44
+ - Pain: Team-wide AI upskilling ROI. Who needs training? Who is already effective?
45
+ - Trigger: Board-level pressure to show AI productivity gains.
46
+
47
+ **ADHD/Neurodivergent niche (longer term):**
48
+ - The "Impulse Control for Agents" angle — modes and gates that help distracted developers stay on track.
49
+ - Goblin.tools exists for productivity; nothing like it for coding sessions.
50
+ - Small market but extremely high willingness-to-pay and loyalty if product resonates.
51
+
52
+ ---
53
+
54
+ ## Competitive Landscape
55
+
56
+ | Platform | What it tests | Gap |
57
+ |---|---|---|
58
+ | **CodeSignal** | Raw coding skill, algorithms | No agent interaction, no prompting skill |
59
+ | **Devskiller** | Real-world coding tasks | Same gap — solo coding, no AI agent |
60
+ | **HackerRank** | Algorithmic challenges | Same gap |
61
+ | **TestGorilla** | Soft skills + coding basics | No technical depth for AI/agent work |
62
+ | **Turing / Andela** | Vetting for outsourcing | Assessment process, not a platform |
63
+ | **GitHub Copilot Metrics** | Copilot adoption/acceptance rate | Passive telemetry, not a structured assessment |
64
+ | **LinearB / Waydev** | Eng productivity (PR cycle time, etc.) | Engineering process, not agent skill |
65
+
66
+ **How AgentArena is different:**
67
+ 1. The task happens *with* an agent, not solo. The agent's behavior is part of the test.
68
+ 2. What's measured is the *interaction quality* — not just the output.
69
+ 3. Sessions are reproducible: same agent state, same starting codebase, same task. Apples-to-apples comparison.
70
+ 4. Samuel's existing eval framework (eval_ab.py, eval_scorer.py) already does the hard part.
71
+
72
+ No direct competitor exists in 2026 that tests agentic coding competency as a standalone, reproducible assessment.
73
+
74
+ ---
75
+
76
+ ## Revenue Model
77
+
78
+ **Pricing tier ideas (SaaS):**
79
+
80
+ | Tier | Target | Price | What they get |
81
+ |---|---|---|---|
82
+ | **Startup** | <50 eng | $299/mo | 20 assessments/mo, standard task library |
83
+ | **Growth** | 50-500 eng | $999/mo | 100 assessments/mo, custom tasks, team dashboards |
84
+ | **Enterprise** | 500+ eng | Custom (est. $3k-10k/mo) | Unlimited assessments, SSO, ATS integration, custom benchmarks |
85
+
86
+ **Add-ons:**
87
+ - Custom task authoring: $500/task (they specify codebase + scenario, we wrap it)
88
+ - Team efficiency reports (quarterly benchmarking against industry): $200/mo add-on
89
+ - ADHD/neurodivergent coaching mode (later): $15/user/mo consumer add-on
90
+
91
+ **Validation metric:** If 10 companies pay $299/mo for a pilot, that's $3k MRR — enough signal to build toward Growth tier.
92
+
93
+ ---
94
+
95
+ ## MVP Scope
96
+
97
+ **Goal:** Demonstrate in a 30-minute live demo that a candidate's agentic skill can be objectively scored.
98
+
99
+ **What the MVP needs:**
100
+
101
+ 1. **One fixed task** — a defined buggy codebase + a task description (e.g., "use Claude Code to find and fix the authentication bug"). Same starting state every time.
102
+
103
+ 2. **Session recording** — capture the full interaction log (prompts sent, agent responses, corrections, final output). Claude Code's inject_log.jsonl format is already close to this.
104
+
105
+ 3. **Scorer output** — run eval_scorer.py equivalent on the session. Produce 3-5 metrics:
106
+ - Time-to-first-useful-guidance (how fast did they orient the agent?)
107
+ - Error catch rate (did they spot agent hallucinations/mistakes?)
108
+ - Revision efficiency (how many rounds to get to working code?)
109
+ - Task completion (did the bug get fixed?)
110
+
111
+ 4. **Report PDF / HTML** — one-page output showing scores + benchmark comparison (even if benchmark is fabricated for MVP: "top 25% of candidates we've seen").
112
+
113
+ 5. **Admin UI** — create assessment link, send to candidate, see results. Can be a 3-page web app.
114
+
115
+ **What the MVP does NOT need:**
116
+ - ATS integration
117
+ - Custom task builder
118
+ - Multi-agent support
119
+ - Real-time proctoring
120
+ - Team dashboards
121
+
122
+ Samuel already has eval_ab.py (200 LOC), eval_scorer.py (297 LOC), and 37 test cases. The scoring engine exists. The MVP gap is the session capture layer and the report output.
123
+
124
+ ---
125
+
126
+ ## Technical Gap (what AgentArena needs beyond current eval functionality)
127
+
128
+ **Current state:**
129
+ - eval_ab.py: A/B test two Sidecar configs against each other
130
+ - eval_scorer.py: Scores a session on defined rubrics
131
+ - inject_log.jsonl: Real live session data (2046+ entries)
132
+ - 80+ HTML visualizations
133
+
134
+ **What's missing for B2B:**
135
+
136
+ 1. **Candidate-facing session runner** — today evals run on Samuel's machine with his Claude Code setup. Need a way to run a reproducible session for an external person (isolated environment, defined agent config, captured log output).
137
+
138
+ 2. **Session isolation / sandboxing** — each candidate gets a fresh repo state. Docker or devcontainer per session.
139
+
140
+ 3. **Task library schema** — a YAML/JSON format defining: starting codebase, agent instructions, success criteria, rubric weights. Right now rubrics are hardcoded in eval_scorer.py.
141
+
142
+ 4. **Report renderer** — turn scorer output into a shareable PDF or HTML. The 80+ HTML visualizations are a head start.
143
+
144
+ 5. **Auth + multi-tenant** — companies need to log in, see their candidates' results, not each other's.
145
+
146
+ 6. **Benchmark data** — to make scores meaningful, need at least 50-100 real sessions to establish a baseline distribution. Could use Samuel's own sessions + recruited beta testers.
147
+
148
+ **Effort estimate (rough):**
149
+ - Session runner + sandbox: 2-3 weeks
150
+ - Task library schema + 3 built-in tasks: 1 week
151
+ - Report renderer: 3-4 days (HTML already works, PDF needs wkhtmltopdf or similar)
152
+ - Auth + basic multi-tenant: 1-2 weeks (FastAPI + SQLite, nothing fancy for MVP)
153
+ - Total MVP: ~6 weeks solo, 3-4 weeks with a collaborator
154
+
155
+ ---
156
+
157
+ ## Next Steps (3 Concrete Validation Actions)
158
+
159
+ ### 1. Customer Discovery Interviews (Priority: High)
160
+
161
+ **Goal:** Confirm that Engineering Managers actually feel this pain before building anything.
162
+
163
+ **Who to talk to:** 5-10 Engineering Managers at companies that have rolled out Claude Code, Copilot, or Cursor in the last 12 months. LinkedIn cold outreach with a specific hook: "I'm researching how teams measure AI coding productivity — 20 min call?"
164
+
165
+ **What to ask:**
166
+ - How do you currently assess AI proficiency in hiring?
167
+ - Have you had a bad hire who looked great but couldn't work with AI tools effectively?
168
+ - If you could get a score for "how well does this candidate direct AI agents," would you pay for that in your hiring process? How much?
169
+ - What metrics do you currently use to track AI tool ROI internally?
170
+
171
+ **Success signal:** 3+ of 10 say they'd pay, and give a number above $0.
172
+
173
+ **Timeline:** 2 weeks. Do this before writing a line of product code.
174
+
175
+ ---
176
+
177
+ ### 2. Build a Smoke Demo (Priority: Medium, after interviews)
178
+
179
+ **Goal:** A 10-minute live demo that shows a score being produced from a real session.
180
+
181
+ **What to build:**
182
+ - Pick one existing Sidecar-NG eval task (something with a clear right/wrong outcome)
183
+ - Run it twice: once with "good prompting" (Samuel), once with "bad prompting" (intentionally sloppy)
184
+ - Feed both logs through eval_scorer.py
185
+ - Render a side-by-side HTML report showing the scores
186
+
187
+ **What this proves:** The scoring engine works. The signal is real. You're not selling vaporware.
188
+
189
+ **Use it for:** The first customer interview follow-up — "want to see what the output would look like?"
190
+
191
+ **Timeline:** 2-3 days of work. Reuses existing eval infrastructure directly.
192
+
193
+ ---
194
+
195
+ ### 3. Define the Task Library Standard (Priority: Low, parallel with interviews)
196
+
197
+ **Goal:** Write the YAML schema for what an "AgentArena task" looks like. This is a design decision that will constrain the whole product.
198
+
199
+ **Draft schema questions to answer:**
200
+ - What fields define a task? (codebase ref, task description, agent config, rubric weights, time limit)
201
+ - Who authors tasks — us or customers?
202
+ - How do we validate that a task is scoreable before publishing it?
203
+
204
+ **Why now:** This is a cheap design exercise (1-2 days, no code) that will surface product decisions before they get baked into code. Write it as a markdown spec + example YAML.
205
+
206
+ **Success signal:** Someone other than Samuel reads the schema and can understand how to create a new task without asking questions.
207
+
208
+ ---
209
+
210
+ ## Open Questions (to answer before building)
211
+
212
+ 1. **Legal:** Does recording a candidate's session require explicit consent in GDPR jurisdictions? Almost certainly yes — need a consent flow from day one.
213
+
214
+ 2. **Agent dependency:** The MVP assumes Claude Code as the agent. What if companies use Cursor or Copilot? Does the scorer need to be agent-agnostic?
215
+
216
+ 3. **Cheating:** Can a candidate fake good prompting by looking up the "right" prompts online? How reproducible does the task need to be before gaming becomes a concern?
217
+
218
+ 4. **Positioning:** Is this a hiring tool, an internal L&D tool, or both? Selling to HR vs. Engineering Manager is a very different sales motion.
219
+
220
+ 5. **Samuel's time:** This is a long-term build. What's the minimum Samuel needs to do personally vs. what could be delegated or co-founded?
221
+
222
+ ---
223
+
224
+ *Last updated: 2026-03-19. Next review: when Sidecar-NG stabilization is complete and customer interviews are scheduled.*
TODO_COMMIT.md ADDED
@@ -0,0 +1,149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TODO: Commit Briefing — MetaMetaMeta
2
+
3
+ Date: 2026-03-19
4
+ Branch: master
5
+ Last commit: 4b14a07 feat: add eval dashboard with E2-E7 results (84 runs, 7 experiments)
6
+
7
+ ---
8
+
9
+ ## Files to Commit
10
+
11
+ ### 1. `visual_explainer_run_pipeline.html`
12
+ - 1656-line interactive HTML visualization of the run pipeline
13
+ - Standalone file, no build step required
14
+ - Category: visualization / explainer
15
+
16
+ ### 2. `Visualisungen_improve/index.html`
17
+ - Improved dashboard HTML (replacement or iteration on existing eval dashboard)
18
+ - Category: visualization / dashboard
19
+
20
+ ### 3. `Visualisungen_improve/data.json`
21
+ - Data file backing the improved dashboard
22
+ - Should be committed alongside `index.html` — they belong together
23
+ - Category: data / dashboard
24
+
25
+ ### 4. `Visualisungen_improve/export_runs.py`
26
+ - Python script to export run data (presumably to data.json)
27
+ - Category: tooling / scripts
28
+
29
+ ---
30
+
31
+ ## Files to Ignore (Do NOT Commit)
32
+
33
+ ### `agent_arena.db`
34
+ - SQLite binary database — runtime artifact, not source
35
+ - Binary files have no meaningful diffs in git
36
+ - Would bloat the repo history permanently
37
+ - Must be added to `.gitignore` before committing anything
38
+
39
+ ---
40
+
41
+ ## .gitignore Updates
42
+
43
+ Current `.gitignore` content:
44
+ ```
45
+ .DS_Store
46
+ __pycache__/
47
+ *.pyc
48
+ .venv/
49
+ ```
50
+
51
+ Add the following:
52
+ ```
53
+ # Databases / runtime artifacts
54
+ *.db
55
+ *.sqlite
56
+ *.sqlite3
57
+ ```
58
+
59
+ This covers `agent_arena.db` and any future SQLite files.
60
+
61
+ ---
62
+
63
+ ## Commit Strategy
64
+
65
+ Two commits. Reason: the pipeline explainer and the Visualisungen_improve work are separate concerns.
66
+
67
+ ### Commit 1 — .gitignore update (do this first, always)
68
+ ```
69
+ chore: ignore SQLite database files
70
+ ```
71
+ Stage only: `.gitignore`
72
+
73
+ ### Commit 2 — Pipeline visualizer
74
+ ```
75
+ feat: add interactive run pipeline visual explainer
76
+ ```
77
+ Stage only: `visual_explainer_run_pipeline.html`
78
+
79
+ ### Commit 3 — Improved dashboard and tooling
80
+ ```
81
+ feat: add improved eval dashboard with export script (Visualisungen_improve)
82
+ ```
83
+ Stage: `Visualisungen_improve/index.html`, `Visualisungen_improve/data.json`, `Visualisungen_improve/export_runs.py`
84
+
85
+ Total: 3 commits.
86
+
87
+ ---
88
+
89
+ ## Exact Commands
90
+
91
+ Copy-paste ready. Run in order.
92
+
93
+ **Step 1 — Update .gitignore:**
94
+ ```bash
95
+ # Edit .gitignore manually to add *.db lines, then:
96
+ git -C /home/smlflg/Projekte/MetaMetaMeta add .gitignore
97
+ git -C /home/smlflg/Projekte/MetaMetaMeta commit -m "chore: ignore SQLite database files"
98
+ ```
99
+
100
+ **Step 2 — Verify db is now ignored:**
101
+ ```bash
102
+ git -C /home/smlflg/Projekte/MetaMetaMeta status
103
+ # agent_arena.db should NOT appear in the output
104
+ ```
105
+
106
+ **Step 3 — Commit pipeline explainer:**
107
+ ```bash
108
+ git -C /home/smlflg/Projekte/MetaMetaMeta add visual_explainer_run_pipeline.html
109
+ git -C /home/smlflg/Projekte/MetaMetaMeta commit -m "feat: add interactive run pipeline visual explainer"
110
+ ```
111
+
112
+ **Step 4 — Commit improved dashboard:**
113
+ ```bash
114
+ git -C /home/smlflg/Projekte/MetaMetaMeta add Visualisungen_improve/index.html Visualisungen_improve/data.json Visualisungen_improve/export_runs.py
115
+ git -C /home/smlflg/Projekte/MetaMetaMeta commit -m "feat: add improved eval dashboard with export script (Visualisungen_improve)"
116
+ ```
117
+
118
+ **Step 5 — Verify final state:**
119
+ ```bash
120
+ git -C /home/smlflg/Projekte/MetaMetaMeta log --oneline -5
121
+ git -C /home/smlflg/Projekte/MetaMetaMeta status
122
+ ```
123
+ Expected: clean working tree, 3 new commits on top of 4b14a07.
124
+
125
+ ---
126
+
127
+ ## Pre-commit Checks
128
+
129
+ Before running any commit command:
130
+
131
+ 1. **agent_arena.db must not appear in `git status`** after .gitignore update. If it does, the .gitignore edit was not saved correctly.
132
+
133
+ 2. **No accidental binary files** — run `git status` after each `git add` and read the output carefully. If anything unexpected appears, do not commit.
134
+
135
+ 3. **HTML files open in browser** — optionally verify `visual_explainer_run_pipeline.html` and `Visualisungen_improve/index.html` open without errors before committing.
136
+
137
+ 4. **export_runs.py is not sensitive** — confirm it contains no hardcoded credentials, API keys, or absolute paths that only work on this machine.
138
+
139
+ 5. **data.json size** — if it is very large (>1MB), consider whether it belongs in git or should be regenerated from `export_runs.py` on demand.
140
+
141
+ ---
142
+
143
+ ## Decision Required Before Starting
144
+
145
+ - Is `Visualisungen_improve/data.json` small enough to commit? Check with:
146
+ ```bash
147
+ ls -lh /home/smlflg/Projekte/MetaMetaMeta/Visualisungen_improve/data.json
148
+ ```
149
+ If over 500KB, ask Samuel whether to gitignore it and regenerate from `export_runs.py` instead.
TODO_DASHBOARD_E8.md ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TODO: Dashboard Update for E8
2
+
3
+ Date written: 2026-03-19
4
+ Status: OPEN
5
+
6
+ ---
7
+
8
+ ## Current State
9
+
10
+ `data.json` was generated on 2026-03-19T19:48:58 UTC from the AgentArena SQLite DB.
11
+
12
+ - **Total valid runs:** 117
13
+ - **Experiments covered:** E2, E2b, E3, E4, E5, E6, E7 (7 experiments)
14
+ - **Conditions covered:** 31 agent names mapped in `EXPERIMENT_MAP` inside `export_runs.py`
15
+
16
+ Condition counts per experiment (as in current data.json):
17
+
18
+ | Experiment | Conditions | Approximate runs |
19
+ |---|---|---|
20
+ | E2 | 3 (baseline, hook-only, hook+priority) | ~9 |
21
+ | E2b | 4 (effort-low/medium/high, low+hook) | ~12 |
22
+ | E3 | 8 (4 scenarios x baseline+injected) | ~24 |
23
+ | E4 | 4 (DE/EN x baseline+injected) | ~16 |
24
+ | E5 | 4 (minimal/full x baseline+injected) | ~16 |
25
+ | E6 | 4 (haiku/sonnet x baseline+injected) | ~16 |
26
+ | E7 | 5 (baseline, broad-rule, specific-3rules, minimal-rule, english-rules) | ~24 |
27
+
28
+ The export script reads from `/home/smlflg/Projekte/AgentArena/agent_arena.db` and filters with:
29
+ - `WHERE r.cost_usd > 0` (excludes zero-cost runs)
30
+ - `AND a.name LIKE 'e%'` (only experiment agents)
31
+ - Skips any agent whose name is not in `EXPERIMENT_MAP`
32
+
33
+ **This means E8 runs are already in the DB but silently skipped** because no `e8-*` keys exist in `EXPERIMENT_MAP`.
34
+
35
+ ---
36
+
37
+ ## What's Missing: E8
38
+
39
+ E8 ran 24 new runs across 4 scenarios, each with a baseline and an injected condition. All 24 runs passed — 100% pass rate across the board. This is a ceiling effect: the task was too easy for the model to differentiate.
40
+
41
+ E8 data is in the DB but `export_runs.py` has no entries for it in two places:
42
+
43
+ 1. `EXPERIMENT_MAP` — no `e8-*` keys
44
+ 2. `EXPERIMENTS` — no `'E8'` metadata entry
45
+ 3. `EXPERIMENT_ORDER` — `'E8'` not in list
46
+
47
+ Until all three are updated and the script re-run, data.json will not contain any E8 data.
48
+
49
+ ---
50
+
51
+ ## Steps to Rebuild
52
+
53
+ ### Step 1: Determine E8 agent names from the DB
54
+
55
+ Run this to see what agent names exist for E8 runs:
56
+
57
+ ```bash
58
+ python3 - <<'EOF'
59
+ import sqlite3
60
+ conn = sqlite3.connect("/home/smlflg/Projekte/AgentArena/agent_arena.db")
61
+ cur = conn.cursor()
62
+ cur.execute("""
63
+ SELECT DISTINCT a.name, COUNT(r.id) as run_count
64
+ FROM runs r
65
+ JOIN agents a ON r.agent_id = a.id
66
+ WHERE a.name LIKE 'e8%' AND r.cost_usd > 0
67
+ GROUP BY a.name
68
+ ORDER BY a.name
69
+ """)
70
+ for row in cur.fetchall():
71
+ print(row)
72
+ conn.close()
73
+ EOF
74
+ ```
75
+
76
+ This reveals the exact `e8-*` agent names to add to `EXPERIMENT_MAP`.
77
+
78
+ ### Step 2: Add E8 to `export_runs.py`
79
+
80
+ In `/home/smlflg/Projekte/MetaMetaMeta/Visualisungen_improve/export_runs.py`, make three edits:
81
+
82
+ **Edit A — Add to `EXPERIMENT_MAP` (around line 53, after e7 entries):**
83
+
84
+ ```python
85
+ # E8 entries — adjust agent names based on Step 1 query output
86
+ 'e8-scenario1-baseline': ('E8', 'Scenario 1 Baseline', False),
87
+ 'e8-scenario1-injected': ('E8', 'Scenario 1 Injected', True),
88
+ 'e8-scenario2-baseline': ('E8', 'Scenario 2 Baseline', False),
89
+ 'e8-scenario2-injected': ('E8', 'Scenario 2 Injected', True),
90
+ 'e8-scenario3-baseline': ('E8', 'Scenario 3 Baseline', False),
91
+ 'e8-scenario3-injected': ('E8', 'Scenario 3 Injected', True),
92
+ 'e8-scenario4-baseline': ('E8', 'Scenario 4 Baseline', False),
93
+ 'e8-scenario4-injected': ('E8', 'Scenario 4 Injected', True),
94
+ ```
95
+
96
+ Replace the placeholder names (`e8-scenario1-baseline` etc.) with the real agent names from Step 1.
97
+
98
+ **Edit B — Add to `EXPERIMENTS` dict (around line 94, after E7 entry):**
99
+
100
+ ```python
101
+ 'E8': {
102
+ 'name': '<experiment name — ask Samuel>',
103
+ 'hypothesis': '<hypothesis — ask Samuel>',
104
+ 'task': '<task description — ask Samuel>',
105
+ 'status': 'ceiling', # new status value — see Dashboard Changes section
106
+ },
107
+ ```
108
+
109
+ **Edit C — Add `'E8'` to `EXPERIMENT_ORDER` list (line 103):**
110
+
111
+ ```python
112
+ EXPERIMENT_ORDER = ['E2', 'E2b', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8']
113
+ ```
114
+
115
+ ### Step 3: Regenerate data.json
116
+
117
+ ```bash
118
+ python3 /home/smlflg/Projekte/MetaMetaMeta/Visualisungen_improve/export_runs.py
119
+ ```
120
+
121
+ Expected output line: `Wrote .../data.json — 141 valid runs across 8 experiments`
122
+ (117 existing + 24 new = 141, assuming all 24 E8 runs have cost_usd > 0)
123
+
124
+ ---
125
+
126
+ ## Dashboard Changes Needed
127
+
128
+ ### index.html is largely dynamic — but needs one targeted addition
129
+
130
+ The dashboard reads `data.json` at runtime and iterates over `experiments` dynamically. Adding E8 to data.json will make it appear in the experiment list, the overview table, and the charts **without any HTML changes required** for basic display.
131
+
132
+ However, one thing needs a code addition:
133
+
134
+ **The `status` badge renderer does not know about a `'ceiling'` status.**
135
+
136
+ Currently in index.html (check around line 200+), the badge CSS has classes like `.badge-signal`, `.badge-inconclusive`. The badge rendering JS maps experiment `status` to a CSS class and label. If E8's status is `'ceiling'`, the badge will either render as unstyled or fall through to a default case.
137
+
138
+ **Required addition to index.html:**
139
+
140
+ 1. Add a CSS class for the ceiling badge (suggest: orange/amber color to distinguish from signal/inconclusive):
141
+
142
+ ```css
143
+ .badge-ceiling { background: rgba(249, 115, 22, 0.2); color: var(--orange); }
144
+ ```
145
+
146
+ 2. In the JS badge renderer function, add a case for `'ceiling'`:
147
+
148
+ ```javascript
149
+ case 'ceiling': return '<span class="badge badge-ceiling">Ceiling Effect</span>';
150
+ ```
151
+
152
+ 3. Optionally add a tooltip or footnote in the methodology panel explaining what "Ceiling Effect" means: the task was too easy to produce differentiation between baseline and injected — 100% pass rate across all conditions.
153
+
154
+ ### What does NOT need changing
155
+
156
+ - The pass-rate table rendering (handles 100% automatically via `.rate-100` CSS class)
157
+ - The chart generation (reads conditions from data.json dynamically)
158
+ - The header stats (reads `meta.total_valid_runs` from data.json)
159
+ - The collapsible panel per experiment (generated dynamically from experiment list)
160
+
161
+ ---
162
+
163
+ ## E8 Result Summary and Display Recommendation
164
+
165
+ All 24 runs passed. This means every condition in every scenario hit 100% pass rate. There is no measurable difference between baseline and injected.
166
+
167
+ **Interpretation:** This is a ceiling effect — the benchmark task was not hard enough to distinguish between conditions. The result is not noise; it is meaningful data that tells us the task needs to be harder.
168
+
169
+ **Display recommendation in the dashboard:**
170
+
171
+ - Mark E8 status as `'ceiling'` (new badge, orange color: "Ceiling Effect")
172
+ - In the pass-rate table, all E8 rows will show green 100% — that is correct and expected
173
+ - Consider adding a short note in the experiment panel body for E8, e.g.:
174
+ > "All conditions passed. Task difficulty insufficient to produce differentiation. Consider raising task difficulty for E9."
175
+ - Do NOT hide E8 from the dashboard — the 100% result is itself a data point and should be visible
176
+
177
+ ---
178
+
179
+ ## Verification
180
+
181
+ After regenerating data.json and updating index.html:
182
+
183
+ **Check 1 — data.json run count:**
184
+ ```bash
185
+ python3 - <<'EOF'
186
+ import json
187
+ d = json.load(open("/home/smlflg/Projekte/MetaMetaMeta/Visualisungen_improve/data.json"))
188
+ print("total_valid_runs:", d["meta"]["total_valid_runs"])
189
+ print("experiments:", [e["id"] for e in d["experiments"]])
190
+ for e in d["experiments"]:
191
+ if e["id"] == "E8":
192
+ for c in e["conditions"]:
193
+ print(f" {c['id']}: {len(c['runs'])} runs, pass rate: {sum(r['pass'] for r in c['runs'])}/{len(c['runs'])}")
194
+ EOF
195
+ ```
196
+
197
+ Expected: total_valid_runs = 141, E8 appears with 8 conditions (or however many the actual DB has), each showing 3 runs all passing.
198
+
199
+ **Check 2 — Browser refresh at localhost:8081:**
200
+ - Header should show "141 runs" (or whatever the final count is)
201
+ - E8 panel should appear at the bottom of the experiment list
202
+ - E8 badge should show orange "Ceiling Effect"
203
+ - All E8 pass-rate cells should be green 100%
204
+
205
+ **Check 3 — No regressions:**
206
+ - E2 through E7 experiments should be unchanged
207
+ - Overall run count delta should be exactly +24
208
+
209
+ ---
210
+
211
+ ## Open Questions Before Starting
212
+
213
+ 1. What are the exact `e8-*` agent names in the DB? (Step 1 query resolves this)
214
+ 2. What is the E8 experiment name, hypothesis, and task description for the metadata? Samuel needs to supply these — they go into the `EXPERIMENTS` dict and appear in the dashboard panel header.
215
+ 3. Should E8 use status `'ceiling'` or a different label? Samuel decides.
216
+ 4. Should a ceiling-effect note be hardcoded into index.html for E8 specifically, or handled generically via the status field?
TODO_E8_REDESIGN.md ADDED
@@ -0,0 +1,357 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TODO: E8 Redesign — Tasks That Actually Require Domain Knowledge
2
+
3
+ Date: 2026-03-19
4
+ Author: Analysis based on E8 results (24/24 passes, 0 differentiation)
5
+
6
+ ---
7
+
8
+ ## Problem: Ceiling Effect in E8
9
+
10
+ E8 ran 4 domain-knowledge scenarios (enum-convention, timeout-unit, breaking-change, implicit-null)
11
+ with baseline vs injected agents, 3 runs each (pass@3), 24 total runs.
12
+
13
+ Result: **12/12 baseline passed. 12/12 injected passed.**
14
+
15
+ Zero differentiation. The experiment cannot answer its own hypothesis because both agents
16
+ behave identically. There is no signal.
17
+
18
+ ---
19
+
20
+ ## Root Cause: Bugs Were Readable From the Code Alone
21
+
22
+ Each E8 bug had one fatal design flaw: **the correct fix was discoverable by reading the
23
+ existing codebase**. The agent did not need injected knowledge — it could infer the answer
24
+ from what was already in the repo.
25
+
26
+ Concrete failure modes per scenario:
27
+
28
+ **E8a enum-convention** ("use UPPERCASE enums")
29
+ - The bug is a wrong string literal. Any agent that reads the schema or existing enum values
30
+ finds UPPERCASE immediately. The injection text says exactly what the code already says.
31
+ - Baseline solves it by reading `schema.sql` or other model files. Injection adds nothing.
32
+
33
+ **E8b timeout-unit** ("timeouts are in milliseconds")
34
+ - The variable is named `timeout_ms`. The name itself encodes the unit.
35
+ - A baseline agent reads the variable name, infers milliseconds, converts 30 to 30000.
36
+ The injection text repeats what the variable name already implies.
37
+
38
+ **E8c breaking-change** ("find_one() is now get_by_id()")
39
+ - The error message is `AttributeError: 'Database' object has no attribute 'find_one'`.
40
+ The stack trace points directly to the broken call. The agent reads `database.py`,
41
+ finds `get_by_id`, and substitutes. No tribal knowledge needed — it is a grep task.
42
+
43
+ **E8d implicit-null** ("email has NOT NULL constraint")
44
+ - The schema file is in the repo. Reading `schema.sql` reveals `NOT NULL` on email.
45
+ The injection text describes what the file already shows.
46
+
47
+ **The pattern**: Every E8 bug had its answer in the repository. Injection text described
48
+ the repository. Baseline read the repository. Same result.
49
+
50
+ ---
51
+
52
+ ## Design Principles for Differentiating Domain-Knowledge Tasks
53
+
54
+ A task truly requires domain knowledge when the correct fix **cannot be derived from the
55
+ code alone**. This means one or more of the following must be true:
56
+
57
+ ### 1. The Convention Exists Outside the Repo
58
+
59
+ The rule is not documented in any file the agent can read. It lives in team memory,
60
+ architectural decisions made before the current codebase existed, or external systems
61
+ the agent cannot access (CI config on a remote server, a Confluence page, a Slack decision).
62
+
63
+ Example: "We always use snake_case for RabbitMQ routing keys" — nothing in the code enforces
64
+ this, there is no linter rule, but mixing conventions breaks queue binding silently.
65
+
66
+ ### 2. Multiple Plausible Fixes Exist — Only One Is Correct For This Project
67
+
68
+ The code analysis narrows it to 2-3 valid approaches. Without context, the agent picks one
69
+ arbitrarily. With injection, it picks the project-correct one.
70
+
71
+ Example: A retry function fails. Fix options: (a) increase max_retries, (b) add exponential
72
+ backoff, (c) catch a broader exception class. All three "fix" the immediate test. Only one
73
+ matches the team's chosen retry strategy.
74
+
75
+ ### 3. The Bug Is Caused By an Implicit Contract With an External System
76
+
77
+ The external system's behavior is not captured anywhere in the repo. The agent sees the
78
+ Python code but not the API spec, the database behavior under load, or the message broker
79
+ version.
80
+
81
+ Example: A third-party payment API silently truncates decimal amounts to 2 places, but only
82
+ in production. The code passes 3 decimal places. No test in the repo captures this.
83
+
84
+ ### 4. The Fix Requires Knowing What Not To Change
85
+
86
+ The task has a correct minimal fix and several incorrect expansive fixes. Baseline agents
87
+ tend to make the expansive fix (refactor, add validation, extract helper). The project
88
+ convention is minimal patches to stable modules. Only an agent with that context makes
89
+ the right narrow change.
90
+
91
+ ### 5. There Are Two Bugs — The Injected Context Identifies Which One Is The Real One
92
+
93
+ The symptom has two potential causes: a logic bug in module A and a config bug in module B.
94
+ Both would produce the same error. Baseline agents fix one or the other. The injection
95
+ text identifies which one is the known issue.
96
+
97
+ ---
98
+
99
+ ## 5 Concrete New Task Ideas
100
+
101
+ Each task below is designed so that:
102
+ - Baseline agent: reads all files, finds a plausible fix, applies it, tests pass or fail ambiguously
103
+ - Injected agent: applies the project-correct fix because the injection resolves the ambiguity
104
+
105
+ ---
106
+
107
+ ### Task E9a: `retry-strategy-conflict`
108
+
109
+ **Bug description**: A background job processor retries failed HTTP requests. It currently
110
+ retries on any exception. This causes duplicate charges when the payment API returns a 200
111
+ with a timeout on the client side (the charge went through but the response never arrived).
112
+ The team's rule: only retry on connection errors (requests.ConnectionError), never on
113
+ timeouts (requests.Timeout).
114
+
115
+ **Why baseline fails**: The code has an except block catching `Exception`. A baseline agent
116
+ sees this and might fix it by catching `requests.exceptions.RequestException` (broader, still
117
+ wrong), or by adding a retry count (doesn't fix the duplicate charge problem), or by
118
+ catching `(ConnectionError, Timeout)` (wrong — includes Timeout). Three plausible fixes,
119
+ one is correct for this project.
120
+
121
+ **Injection text**:
122
+ "In diesem Projekt werden HTTP-Retries NUR bei requests.ConnectionError ausgeloest —
123
+ requests.Timeout wird NICHT retried (Charge kann bereits erfolgt sein). Siehe DECISIONS.md."
124
+
125
+ **DECISIONS.md content** (not in repo, only known via injection): Does not exist as a file.
126
+ The rule is pure tribal knowledge.
127
+
128
+ **Repo structure**:
129
+ ```
130
+ retry-strategy-conflict/
131
+ processor.py # background job, broken retry logic
132
+ payment_client.py # thin HTTP wrapper
133
+ tests/
134
+ test_processor.py # tests retry on ConnectionError, also tests NO retry on Timeout
135
+ judge_retry_strategy.py
136
+ ```
137
+
138
+ **Judge**: Checks that the implementation retries on `ConnectionError` but raises on
139
+ `Timeout` without retrying. The test cannot be "cheated" by catching all exceptions.
140
+
141
+ **Differentiation mechanism**: Baseline catches either too broadly or too narrowly.
142
+ The injection provides the exact project rule that resolves the ambiguity.
143
+
144
+ ---
145
+
146
+ ### Task E9b: `event-ordering-convention`
147
+
148
+ **Bug description**: An event sourcing system publishes domain events. Two event handlers
149
+ are registered for `UserRegistered`: one sends a welcome email, one creates a billing
150
+ record. The billing record creation is failing intermittently because the email handler
151
+ sometimes mutates shared state before billing runs. The project convention: event handlers
152
+ must be idempotent and stateless — shared state mutation is banned. The fix is to remove
153
+ the state mutation from the email handler, not to add locking.
154
+
155
+ **Why baseline fails**: The agent sees an intermittent failure, shared state, and two
156
+ handlers. Plausible fixes: add a lock around the handlers, change handler order, remove
157
+ the shared state, or make the email handler async. Code analysis cannot determine which
158
+ approach the project uses — all four would fix the test.
159
+
160
+ **Injection text**:
161
+ "Event-Handler in diesem System MUESSEN stateless und idempotent sein — kein Shared-State
162
+ zwischen Handlern. Locks sind kein akzeptierter Fix. Mutation entfernen, nicht serialisieren."
163
+
164
+ **Repo structure**:
165
+ ```
166
+ event-ordering-convention/
167
+ event_bus.py # simple sync event dispatcher
168
+ handlers/
169
+ email_handler.py # mutates _processed_users set (the bug)
170
+ billing_handler.py # reads _processed_users, fails if wrong
171
+ tests/
172
+ test_event_ordering.py
173
+ judge_event_ordering.py
174
+ ```
175
+
176
+ **Judge**: Checks that the email handler contains no references to shared mutable state,
177
+ AND that both handlers pass the idempotency test (called twice with same event produces
178
+ same result).
179
+
180
+ ---
181
+
182
+ ### Task E9c: `migration-direction`
183
+
184
+ **Bug description**: A database migration script fails on CI. The script adds a new column
185
+ `archived_at` to the `posts` table. It fails because the CI database already has this
186
+ column (added by a hotfix two weeks ago). The correct fix in this project: mark the
187
+ migration as non-destructive and add a guard (`IF NOT EXISTS` or equivalent). The wrong
188
+ fix: delete the column and re-add it (destroys production data), or skip the migration
189
+ (leaves migration history inconsistent).
190
+
191
+ **Why baseline fails**: The agent sees a migration failure and an existing column. Options:
192
+ (a) add `IF NOT EXISTS`, (b) drop and recreate, (c) skip migration, (d) rename to a new
193
+ column. The code gives no hint which approach the project uses. The migration framework
194
+ (custom, not alembic) has no documented conventions in the repo.
195
+
196
+ **Injection text**:
197
+ "Dieses Projekt verwendet additive Migrationen — niemals Spalten droppen oder umbenennen
198
+ in Produktions-Migrationen. Bei bereits existierenden Spalten: IF NOT EXISTS Guard
199
+ hinzufuegen. Kein Skip, kein Recreate."
200
+
201
+ **Repo structure**:
202
+ ```
203
+ migration-direction/
204
+ migrations/
205
+ 001_create_posts.sql
206
+ 002_add_archived_at.sql # the broken migration
207
+ db.py # custom migration runner
208
+ tests/
209
+ test_migrations.py # runs migrations on a fresh SQLite DB + a DB with the column pre-added
210
+ judge_migration_direction.py
211
+ ```
212
+
213
+ **Judge**: Runs migration against (a) a fresh DB and (b) a DB that already has `archived_at`.
214
+ Both must succeed. Also checks that the migration does not contain DROP COLUMN.
215
+
216
+ ---
217
+
218
+ ### Task E9d: `cache-key-namespace`
219
+
220
+ **Bug description**: A caching layer uses Redis. Two services share the same Redis instance.
221
+ The `UserService` caches user objects with key `user:{id}`. The `SessionService` also stores
222
+ data with key `user:{id}` (different data structure). Reads from one service corrupt the
223
+ other. The fix: `UserService` keys must be namespaced as `svc:user:{id}`. This namespace
224
+ convention exists across all services but is not documented in the repo — it was decided
225
+ before the current code was written.
226
+
227
+ **Why baseline fails**: The agent sees a key collision. Plausible fixes: add a prefix to
228
+ UserService (`u:{id}`, `users:{id}`, `user_svc:{id}`), or add a prefix to SessionService,
229
+ or use a separate Redis DB number, or use a hash. Without knowing the convention, the
230
+ agent picks one of these. Any prefix "fixes" the collision test — but only `svc:{service}:{id}`
231
+ matches the project convention checked by the judge.
232
+
233
+ **Injection text**:
234
+ "Redis-Keys in diesem System folgen dem Schema `svc:{service_name}:{id}`. UserService
235
+ verwendet `svc:user:{id}`, SessionService `svc:session:{id}`. Kein anderes Format."
236
+
237
+ **Repo structure**:
238
+ ```
239
+ cache-key-namespace/
240
+ user_service.py # caches with key "user:{id}" (wrong)
241
+ session_service.py # caches with key "user:{id}" (different data)
242
+ cache.py # thin Redis wrapper
243
+ tests/
244
+ test_cache_isolation.py
245
+ judge_cache_namespace.py
246
+ ```
247
+
248
+ **Judge**: Checks that `user_service.py` uses exactly `svc:user:{id}` format (regex match
249
+ on the key string in the source). Tests also verify both services can coexist without
250
+ collision.
251
+
252
+ ---
253
+
254
+ ### Task E9e: `error-propagation-boundary`
255
+
256
+ **Bug description**: A service layer calls a repository layer. The repository raises a
257
+ custom `RepositoryError` when the database is unavailable. The service currently lets this
258
+ exception propagate to the HTTP handler, which returns a 500. The project convention:
259
+ service layer must catch infrastructure errors and re-raise as `ServiceUnavailableError`
260
+ (defined in `errors.py`). The HTTP handler then maps this to a 503 with a proper body.
261
+ Currently the handler never returns 503 — always 500.
262
+
263
+ **Why baseline fails**: The agent sees the exception propagation and knows the handler
264
+ checks for `ServiceUnavailableError`. Two plausible fixes: (a) catch in service and
265
+ re-raise as `ServiceUnavailableError`, (b) catch in handler and map `RepositoryError`
266
+ directly. Both fix the test if the judge only checks the HTTP status. But the judge also
267
+ checks the handler does not import from the repository layer (layering rule). Without
268
+ knowing this architectural rule, a baseline agent will likely fix it at the handler level.
269
+
270
+ **Injection text**:
271
+ "Architektur-Regel: HTTP-Handler importieren NIEMALS aus der Repository-Schicht. Fehler
272
+ werden an Service-Schicht-Grenzen in ServiceUnavailableError gewrappt. Handler kennen
273
+ nur Service-Layer-Exceptions."
274
+
275
+ **Repo structure**:
276
+ ```
277
+ error-propagation-boundary/
278
+ repository.py # raises RepositoryError
279
+ service.py # missing try/except (the bug)
280
+ errors.py # ServiceUnavailableError definition
281
+ handler.py # maps ServiceUnavailableError -> 503
282
+ tests/
283
+ test_error_propagation.py
284
+ judge_error_propagation.py
285
+ ```
286
+
287
+ **Judge**: Checks (a) HTTP response is 503 when DB is unavailable, AND (b) `handler.py`
288
+ does not import from `repository.py` (AST check or grep). Both conditions must pass.
289
+
290
+ ---
291
+
292
+ ## Success Criteria: Validate Tasks Before Full Experiment
293
+
294
+ Do not run pass@3 with 8 agents until you have confirmed each task actually differentiates.
295
+ The validation protocol:
296
+
297
+ ### Step 1: Manual Solve Test (5 minutes per task)
298
+
299
+ Before building the judge, solve the task yourself knowing only what the code says.
300
+ If you can identify the correct fix without the injection text, the task will not differentiate.
301
+ Iterate on the repo until the code alone is ambiguous.
302
+
303
+ ### Step 2: Ambiguity Audit
304
+
305
+ For each task, list every plausible fix a smart agent might apply given only the code.
306
+ There must be at least 2 plausible fixes, and exactly 1 must be project-correct.
307
+ If only 1 fix is plausible from code analysis, the task is too easy (E8 failure mode).
308
+
309
+ ### Step 3: Pilot Run (4 runs before committing to full experiment)
310
+
311
+ Run 2 baseline + 2 injected before running pass@3.
312
+ Target: baseline 0-1/2, injected 2/2. If baseline already passes 2/2, stop and redesign.
313
+
314
+ A task is ready for the full experiment when the pilot shows:
315
+ - Baseline pass rate: 0-33% (0/2 or 1/3)
316
+ - Injected pass rate: 67-100% (2/3 or 3/3)
317
+
318
+ ### Step 4: Judge Quality Check
319
+
320
+ The judge must:
321
+ - Not be solvable by blind search-and-replace
322
+ - Check the specific structural property (not just "tests pass")
323
+ - Be deterministic — same code, same result every time
324
+ - Have at least one check that distinguishes correct-convention from wrong-convention fixes
325
+ (a fix that passes functional tests but violates convention must FAIL the judge)
326
+
327
+ ### Step 5: E9 Pre-Flight Checklist
328
+
329
+ Before running E9:
330
+ - [ ] All 5 repos exist at their `file:///tmp/arena-tasks/` paths
331
+ - [ ] Judge scripts tested manually: correct fix passes, plausible-but-wrong fix fails
332
+ - [ ] Pilot run complete (2+2) with differentiation signal visible
333
+ - [ ] Injection text is short (1-2 sentences), not a solution walkthrough
334
+ - [ ] Task descriptions do not mention the domain convention (no hints in the prompt)
335
+
336
+ ---
337
+
338
+ ## What to Build Next
339
+
340
+ Priority order for implementation:
341
+
342
+ 1. **E9c migration-direction** — simplest repo, judge is deterministic (grep for DROP COLUMN
343
+ + run migrations twice). Good smoke test for the new task format.
344
+
345
+ 2. **E9e error-propagation-boundary** — judge uses AST check, harder to game. Strong
346
+ architectural ambiguity that Sonnet regularly gets wrong.
347
+
348
+ 3. **E9a retry-strategy-conflict** — needs careful test design (mock the Timeout scenario
349
+ without actually timing out). Medium complexity.
350
+
351
+ 4. **E9d cache-key-namespace** — straightforward but the judge regex must be tight enough
352
+ to reject partial matches.
353
+
354
+ 5. **E9b event-ordering-convention** — most complex repo (event bus + multiple handlers).
355
+ Build last.
356
+
357
+ Each task needs: repo setup script, judge script, YAML file, pilot run before E9 proper.
TODO_PROMPTGARAGE_EVALS.md ADDED
@@ -0,0 +1,337 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TODO: PromptGarage → AgentArena Eval Tasks
2
+
3
+ **Datum:** 2026-03-19
4
+ **Quelle:** PromptGarage DB (`/home/smlflg/Projekte/PromptGarage/prompts.db`) — 8375 Prompts, 30 identifizierte Start-Prompts
5
+
6
+ ---
7
+
8
+ ## Goal
9
+
10
+ Real user prompts aus PromptGarage in synthetische AgentArena-Tasks umwandeln.
11
+
12
+ Konkret: Session-Fragmente (was Samuel wirklich gefragt hat, was schiefging) werden zu reproduzierbaren Eval-Szenarien. Das ergibt einen Vorteil gegenüber erfundenen Tasks: die Bugs und Missverständnisse haben echte Herkunft. Die Tasks sind nicht akademisch — sie kommen aus echtem Betrieb von Sidecar-NG.
13
+
14
+ Sekundäres Ziel: Zeigen, dass Sidecar-Injection (domain context) Agenten auf diesen real-world Szenarien besser macht als Baseline.
15
+
16
+ ---
17
+
18
+ ## Challenge: Session-Fragments sind kein Repo
19
+
20
+ Die 30 Start-Prompts sind Gesprächsfragmente. Kein Agent kann direkt auf "Accuracy 73%, Provider-Fehlerrate 33%" testen ohne einen Codestand der diesen Zustand reproduziert. Das bedeutet:
21
+
22
+ **Für jeden Task braucht man ein synthetisches Repo**, das:
23
+ 1. Den Fehler-Zustand beinhaltet (der Bug ist bereits eingepflanzt)
24
+ 2. Einen Judge-Test hat der genau diesen Bug aufdeckt
25
+ 3. Nach dem Fix den Judge besteht
26
+
27
+ Das ist der Kernaufwand. Nicht YAML schreiben — sondern das Repo bauen.
28
+
29
+ ---
30
+
31
+ ## Task-Format (AgentArena YAML)
32
+
33
+ Alle existierenden Tasks folgen diesem Schema:
34
+
35
+ ```yaml
36
+ slug: <kebab-case>
37
+ title: "<Kurztitel> — <Kategorie>"
38
+ description: |
39
+ <Was der Agent sieht. Keine Lösung. Symptom beschreiben, nicht Ursache.>
40
+ Alle relevanten Dateien liegen im Projektverzeichnis.
41
+ repo:
42
+ url: file:///tmp/arena-tasks/<slug>
43
+ ref: master
44
+ success:
45
+ command: "python3 judge_<slug>.py"
46
+ limits:
47
+ time_seconds: 120
48
+ max_tokens: 50000
49
+ difficulty: easy|medium|hard
50
+ ```
51
+
52
+ **Wichtig:** `description` beschreibt das Symptom, nicht die Lösung. Der Agent muss selbst den Fehler finden. `success.command` ist ein Python-Judge-Script das mit Exit 0 = pass, Exit 1 = fail arbeitet.
53
+
54
+ Der Runner klont das Repo nach `/tmp/arena-tasks/<slug>`, gibt es dem Agenten, lässt den Agenten arbeiten, führt dann den Judge aus.
55
+
56
+ ---
57
+
58
+ ## Prozess: Prompt → Task
59
+
60
+ ```
61
+ 1. Prompt lesen
62
+ Welcher konkrete Fehler/Misserfolg steckt dahinter?
63
+ Ist die Ursache klar genug für einen synthetischen Bug?
64
+
65
+ 2. Bug-Klasse bestimmen
66
+ classifier_bug | scope_bug | test_gap | multi_bug | architecture_misunderstanding
67
+
68
+ 3. Minimales Repo entwerfen
69
+ Welche 3-5 Dateien braucht man um den Bug zu reproduzieren?
70
+ Was muss die korrekte Version tun damit der Judge pass sagt?
71
+
72
+ 4. Bug einpflanzen
73
+ Repo in bug-State bringen. Judge auf korrektem State laufen lassen → pass.
74
+ Judge auf bug-State laufen lassen → fail. Verifizieren.
75
+
76
+ 5. YAML schreiben
77
+ slug, title, description (Symptom), repo-url, success-cmd, limits, difficulty
78
+
79
+ 6. Injection-Text entwerfen
80
+ Was würde Sidecar in additional_context injizieren damit der Agent den Bug löst?
81
+ Injection muss den Schlüsselkontext geben ohne die Lösung zu verraten.
82
+
83
+ 7. Experiment-Entry hinzufügen
84
+ In ein neues experiments/e9_promptgarage.py als Szenario eintragen.
85
+
86
+ 8. Baseline vs Injected run
87
+ pass@3 für beide Varianten. Injection wirkt wenn i_pass > b_pass.
88
+ ```
89
+
90
+ ---
91
+
92
+ ## Die 4 Task-Sketches
93
+
94
+ ### Task 1 — ID 8174: Multi-Bug Triage (Accuracy 73%, Provider-Fehlerrate 33%)
95
+
96
+ **Ursprünglicher Prompt-Kontext:** Accuracy 73%, Provider-Fehlerrate 33%, Mode-Commands unvollständig. Mehrere gleichzeitige Probleme in Sidecar-NG: Classifier missclassifiziert, Provider-Calls schlagen fehl, Commands werden nicht erkannt.
97
+
98
+ **Bug-Klasse:** `multi_bug` — der Agent muss priorisieren und alle drei Probleme beheben, nicht nur einen.
99
+
100
+ **Synthetic Repo-Struktur:**
101
+
102
+ ```
103
+ /tmp/arena-tasks/multi-bug-triage/
104
+ ├── classifier.py # keyword_match() hat fehlendes Pattern für "refactor"
105
+ ├── provider_client.py # retry-Logik fehlt, kein Fallback bei HTTP 429
106
+ ├── command_parser.py # MODE_COMMANDS dict unvollständig (fehlt: /focus, /deep)
107
+ ├── config.yaml # provider timeout zu niedrig gesetzt (1s statt 10s)
108
+ ├── tests/
109
+ │ ├── test_classifier.py # schlägt fehl für "refactor" Input
110
+ │ ├── test_provider.py # schlägt fehl bei simuliertem 429
111
+ │ └── test_commands.py # schlägt fehl für /focus und /deep
112
+ └── judge_multi_bug_triage.py
113
+ ```
114
+
115
+ **Bug einpflanzen:**
116
+ - `classifier.py`: `KEYWORDS` dict fehlt `"refactor"` entry → Accuracy-Bug
117
+ - `provider_client.py`: kein `except HTTPError` block, kein retry → Provider-Bug
118
+ - `command_parser.py`: `MODE_COMMANDS = {"/review": ..., "/plan": ...}` — `/focus` und `/deep` fehlen
119
+
120
+ **Judge-Logik:** Führt alle drei Test-Suiten aus. Pass nur wenn alle drei bestehen. Partial-credit wird als Metric gespeichert aber Exit 1 bleibt bis alle drei passen.
121
+
122
+ ```python
123
+ # judge_multi_bug_triage.py (Pseudo)
124
+ results = []
125
+ results.append(run_test("tests/test_classifier.py"))
126
+ results.append(run_test("tests/test_provider.py"))
127
+ results.append(run_test("tests/test_commands.py"))
128
+ passed = sum(results)
129
+ print(f"Passed {passed}/3 bug fixes")
130
+ sys.exit(0 if passed == 3 else 1)
131
+ ```
132
+
133
+ **Description für Agent:**
134
+ > Sidecar-NG zeigt Performance-Probleme: Accuracy liegt bei ~73%, etwa ein Drittel der Provider-Calls schlägt fehl, und einige Mode-Commands werden nicht erkannt. Debug und fix alle drei Probleme.
135
+
136
+ **Injection-Text (Sidecar):**
137
+ > "Sidecar-NG hat drei bekannte offene Bugs: (1) classifier.py KEYWORDS fehlt 'refactor'-Pattern, (2) provider_client.py hat kein Retry bei HTTP 429, (3) command_parser.py kennt /focus und /deep nicht. Config-timeout ist 1s, sollte 10s sein."
138
+
139
+ **Differenzierung:** Sehr hoch. Baseline-Agenten werden typischerweise nur 1-2 von 3 Bugs finden. Injection gibt alle drei explizit. Testet ob Agenten mit einer vollständigen Bug-Liste besser priorisieren.
140
+
141
+ **Schwierigkeit:** hard (alle drei müssen passen)
142
+
143
+ ---
144
+
145
+ ### Task 2 — ID 8139: Classifier False Positive (Witz → KEINE)
146
+
147
+ **Ursprünglicher Prompt-Kontext:** User fragt "erzähl mir einen Witz" → Sidecar gibt KEINE aus (korrekt, kein Skill). Aber Gemini im LLM-Fallback klassifiziert es als SKILL:HUMOR oder ähnliches → False Positive. Keyword-First hätte es korrekt als KEINE durchgelassen, LLM-Fallback überschreibt.
148
+
149
+ **Bug-Klasse:** `classifier_bug` — LLM-Fallback überschreibt korrekte Keyword-First Entscheidung.
150
+
151
+ **Synthetic Repo-Struktur:**
152
+
153
+ ```
154
+ /tmp/arena-tasks/classifier-false-positive/
155
+ ├── classifier.py # keyword_first() korrekt → KEINE
156
+ │ # llm_fallback() gibt "HUMOR" zurück (simuliert)
157
+ │ # Bug: pipeline gibt llm-result zurück obwohl keyword sagte KEINE
158
+ ├── llm_client.py # mock LLM der immer einen skill zurückgibt
159
+ ├── pipeline.py # HIER ist der Bug: if keyword_result == "KEINE": return llm_fallback()
160
+ │ # sollte sein: if keyword_result != "KEINE": return keyword_result
161
+ ├── test_cases.json # [{"input": "erzähl mir einen Witz", "expected": "KEINE"}, ...]
162
+ └── judge_classifier_fp.py
163
+ ```
164
+
165
+ **Bug einpflanzen:**
166
+ ```python
167
+ # pipeline.py — Bug-Version
168
+ def classify(prompt):
169
+ kw = keyword_first(prompt)
170
+ if kw == "KEINE": # BUG: sollte early-return sein
171
+ return llm_fallback(prompt) # BUG: LLM überschreibt korrekte KEINE-Entscheidung
172
+ return kw
173
+ ```
174
+
175
+ Korrekte Version:
176
+ ```python
177
+ def classify(prompt):
178
+ kw = keyword_first(prompt)
179
+ if kw != "KEINE": # keyword match → early return
180
+ return kw
181
+ return llm_fallback(prompt) # nur wenn keyword nichts gefunden hat
182
+ ```
183
+
184
+ **Judge-Logik:** Lädt test_cases.json, ruft `pipeline.classify()` auf, prüft ob expected == actual.
185
+
186
+ **Description für Agent:**
187
+ > pipeline.py klassifiziert "erzähl mir einen Witz" als HUMOR statt KEINE. Die Keyword-First-Logik in classifier.py gibt korrekt KEINE zurück, aber das Ergebnis des Agents ist falsch. Fix den Bug in pipeline.py.
188
+
189
+ **Injection-Text (Sidecar):**
190
+ > "Sidecar-NG verwendet First-Match-Wins: wenn keyword_first() einen Treffer zurückgibt (nicht KEINE), wird das Ergebnis sofort zurückgegeben ohne LLM-Fallback. KEINE bedeutet 'kein Keyword-Match' — der LLM-Fallback läuft nur dann."
191
+
192
+ **Differenzierung:** Mittel-hoch. Der Bug ist subtil (Logik-Inversion). Baseline-Agenten lesen pipeline.py und denken die Logik ist korrekt ("wenn KEINE, dann LLM"). Injection erklärt First-Match-Wins explizit.
193
+
194
+ **Schwierigkeit:** medium
195
+
196
+ ---
197
+
198
+ ### Task 3 — ID 8078: Architecture Scope (Sidecar NG isn't a complete substitute)
199
+
200
+ **Ursprünglicher Prompt-Kontext:** Samuel fragt ob Sidecar-NG ein vollständiger Ersatz für etwas ist. Formulierung deutet auf Scope-Creep hin: Agent will etwas außerhalb des definierten Scopes implementieren.
201
+
202
+ **Bug-Klasse:** `scope_bug` — Agent implementiert Feature das außerhalb des definierten Scopes liegt, anstatt die minimale Lösung zu liefern.
203
+
204
+ **Synthetic Repo-Struktur:**
205
+
206
+ ```
207
+ /tmp/arena-tasks/architecture-scope/
208
+ ├── ARCHITECTURE.md # klar: Sidecar = context injection only, kein Session-Management
209
+ ├── sidecar.py # context_inject() funktioniert korrekt
210
+ ├── session_manager.py # FEHLT (404) — bewusst nicht implementiert
211
+ ├── requirements.txt # nur classifier-deps, kein session-framework
212
+ ├── task.md # "Add user greeting to injection output"
213
+ └── judge_architecture_scope.py
214
+ ```
215
+
216
+ **Bug einpflanzen:** Kein Code-Bug — der "Bug" ist dass die Task-Formulierung den Agenten verleitet, session_manager.py zu schreiben (weil er "greeting" als session-feature interpretiert). Die korrekte Lösung ist eine einzeilige Änderung in `context_inject()`.
217
+
218
+ **Judge-Logik:**
219
+ 1. Prüft ob `context_inject()` korrekt "Hallo {user}!" prepended
220
+ 2. Prüft ob `session_manager.py` NICHT erstellt wurde (scope check)
221
+ 3. Prüft ob `requirements.txt` NICHT verändert wurde
222
+
223
+ ```python
224
+ # judge: pass nur wenn greeting da UND kein scope-creep
225
+ greeting_ok = "Hallo" in get_inject_output()
226
+ no_scope_creep = not os.path.exists("session_manager.py")
227
+ deps_unchanged = original_requirements == read("requirements.txt")
228
+ sys.exit(0 if (greeting_ok and no_scope_creep and deps_unchanged) else 1)
229
+ ```
230
+
231
+ **Description für Agent:**
232
+ > Füge dem Injection-Output von sidecar.py eine User-Begrüßung hinzu. Der User-Name kommt aus config.yaml. Lies ARCHITECTURE.md bevor du anfängst.
233
+
234
+ **Injection-Text (Sidecar):**
235
+ > "Sidecar-NG ist ausschließlich für context injection zuständig. Session-Management, User-Tracking und Persistenz sind explizit außerhalb des Scopes (siehe ARCHITECTURE.md). Minimal-Fix: context_inject() anpassen."
236
+
237
+ **Differenzierung:** Mittel. Testet ob Injection den Agenten in den richtigen Scope hält. Ähnlich dem bestehenden `scope_creep.yaml`, aber mit Architektur-Dokument als Anker.
238
+
239
+ **Schwierigkeit:** medium
240
+
241
+ ---
242
+
243
+ ### Task 4 — ID 8072: Test Verification Gap (did you test it live or as a dummy?)
244
+
245
+ **Ursprünglicher Prompt-Kontext:** Samuel fragt explizit ob der Agent live getestet hat oder nur gegen Mocks. Impliziert: Agent hat Änderungen gemacht und behauptet "Tests passen" ohne wirklich gegen echte Abhängigkeiten zu testen.
246
+
247
+ **Bug-Klasse:** `test_gap` — Tests laufen grün aber nur gegen Mocks; echte Integration ist gebrochen.
248
+
249
+ **Synthetic Repo-Struktur:**
250
+
251
+ ```
252
+ /tmp/arena-tasks/test-verification-gap/
253
+ ├── api_client.py # make_request() hat echten HTTP-Call — URL-Pfad falsch ("/v1/data" statt "/api/v1/data")
254
+ ├── tests/
255
+ │ ├── test_unit.py # mockt api_client vollständig → immer grün
256
+ │ └── test_integration.py # ruft echten lokalen Server auf (pytest-fixture startet ihn)
257
+ ├── server.py # minimaler FastAPI/Flask Server der "/api/v1/data" serviert
258
+ ├── conftest.py # startet server.py als Fixture
259
+ └── judge_test_verification.py
260
+ ```
261
+
262
+ **Bug einpflanzen:**
263
+ ```python
264
+ # api_client.py — Bug-Version
265
+ BASE_URL = "http://localhost:8765"
266
+ def make_request():
267
+ return requests.get(f"{BASE_URL}/v1/data") # BUG: fehlendes /api prefix
268
+ ```
269
+
270
+ **Judge-Logik:**
271
+ 1. Führt `pytest tests/test_unit.py` aus → sollte grün sein (zeigt dass Unit-Tests den Bug nicht finden)
272
+ 2. Führt `pytest tests/test_integration.py` aus → schlägt fehl vor dem Fix
273
+ 3. Nach dem Fix müssen beide passen
274
+
275
+ ```python
276
+ unit_result = run("pytest tests/test_unit.py")
277
+ integration_result = run("pytest tests/test_integration.py")
278
+ # Pass nur wenn integration auch grün ist
279
+ sys.exit(0 if integration_result.returncode == 0 else 1)
280
+ ```
281
+
282
+ **Description für Agent:**
283
+ > api_client.py schlägt im Integration-Test fehl. Die Unit-Tests laufen grün. Fix den Bug so dass beide Test-Suiten bestehen.
284
+
285
+ **Injection-Text (Sidecar):**
286
+ > "Der API-Server verwendet den Prefix '/api/v1/' für alle Endpoints. Unit-Tests mocken api_client vollständig — sie finden URL-Bugs nicht. Immer integration tests ausführen um echte Endpoints zu verifizieren."
287
+
288
+ **Differenzierung:** Hoch. Baseline läuft `pytest` und sieht grüne Unit-Tests → meldet "Tests passen". Injection erklärt explizit die Test-Hierarchie. Direkte Antwort auf Samuels Kern-Frustration ("Tests passen" ist keine Verifikation).
289
+
290
+ **Schwierigkeit:** medium
291
+
292
+ ---
293
+
294
+ ## Effort Estimate
295
+
296
+ | Task | Repo-Aufwand | Judge-Aufwand | YAML | Injection | Gesamt |
297
+ |------|-------------|--------------|------|-----------|--------|
298
+ | T2: Classifier FP | 30min | 20min | 5min | 10min | ~1h |
299
+ | T4: Test Verification Gap | 45min | 30min | 5min | 10min | ~1.5h |
300
+ | T3: Architecture Scope | 30min | 25min | 5min | 10min | ~1h |
301
+ | T1: Multi-Bug Triage | 60min | 45min | 5min | 10min | ~2h |
302
+
303
+ **Gesamt:** ca. 5-6h für alle vier Tasks, inklusive Runs und Auswertung.
304
+
305
+ Ein Experiment mit 4 Szenarien × 2 Agents × 3 Runs = 24 Runs kostet bei Sonnet ~$2-4 (basierend auf E8-Erfahrung).
306
+
307
+ ---
308
+
309
+ ## Priority Order
310
+
311
+ **1. Task 4 — Test Verification Gap (ID 8072)**
312
+
313
+ Direkte Verbindung zu einem Kern-Problem in Samuels Workflow ("Tests passen" als falsche Commit-Freigabe). Das Repo-Design ist klar und enthält kein Domain-spezifisches Wissen über Sidecar. Einfach zu verifizieren. Liefert einen Datenpunkt der direkt für das AgentArena Portfolio relevant ist: "Injection verhindert False-Confidence durch Unit-Only-Tests."
314
+
315
+ **2. Task 2 — Classifier False Positive (ID 8139)**
316
+
317
+ Technisch sauber. Der Bug ist eine Logik-Inversion — eindeutig richtig/falsch. Die Injection ist direkt aus der Sidecar-Architektur ableitbar (First-Match-Wins). Hohe Differenzierung erwartet weil der Bug subtil aber der Fix minimal ist.
318
+
319
+ **3. Task 3 — Architecture Scope (ID 8078)**
320
+
321
+ Guter Kontrast zu bestehenden Scope-Creep-Tasks. Braucht ein ARCHITECTURE.md das überzeugend wirkt, sonst ignoriert der Agent es. Etwas mehr Judgement bei der Judge-Logik (was ist noch akzeptabler Scope?).
322
+
323
+ **4. Task 1 — Multi-Bug Triage (ID 8174)**
324
+
325
+ Interessantester Task, aber höchster Aufwand. Drei Bugs, drei Test-Suiten, drei Injection-Hinweise. Das Experiment-Design ist komplexer (partial credit vs. full pass). Erst nach T4 und T2 angehen wenn klar ist wie das Experiment-Framework damit umgeht.
326
+
327
+ ---
328
+
329
+ ## Next Steps
330
+
331
+ 1. T4 (Test Verification Gap) Repo bauen unter `/tmp/arena-tasks/test-verification-gap/`
332
+ 2. Judge-Script verifizieren: Unit-Tests grün, Integration-Tests rot → Fix → beide grün
333
+ 3. YAML unter `/home/smlflg/Projekte/AgentArena/tasks/test_verification_gap.yaml` anlegen
334
+ 4. Experiment-Entry in einem neuen `experiments/e9_promptgarage.py` hinzufügen
335
+ 5. Baseline vs. Injected laufen lassen, Ergebnisse in MetaMetaMeta dokumentieren
336
+
337
+ Wenn T4 sauber läuft, sind T2 und T3 schnell nachziehbar da das Pattern bekannt ist.
TODO_SPRT_EVALUATION.md ADDED
@@ -0,0 +1,314 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TODO: SPRT Early Stopping for AgentArena Evaluation
2
+
3
+ **Origin:** Gemini research suggestion — replace fixed k=3 pass@k with Sequential Probability Ratio Test (SPRT) for cost-aware early stopping.
4
+
5
+ **Status:** Research/Design — not yet scheduled for implementation.
6
+
7
+ ---
8
+
9
+ ## What is SPRT
10
+
11
+ SPRT (Sequential Probability Ratio Test) is a statistical decision procedure by Abraham Wald (1945). Instead of collecting a fixed sample size and then testing, SPRT tests after each new observation and makes one of three decisions:
12
+
13
+ 1. **Accept H0** (null hypothesis) — stop, evidence is clear enough that agent fails
14
+ 2. **Accept H1** (alternative hypothesis) — stop, evidence is clear enough that agent passes
15
+ 3. **Continue** — not yet enough evidence, run another trial
16
+
17
+ The test maintains a **likelihood ratio** Λ that accumulates evidence:
18
+
19
+ ```
20
+ Λ_n = product of [ P(x_i | H1) / P(x_i | H0) ] for i=1..n
21
+ ```
22
+
23
+ For binary pass/fail outcomes with pass probability p0 (null, agent is bad) and p1 (alternative, agent is good):
24
+
25
+ ```
26
+ # After each run with outcome x_i in {0, 1}:
27
+ Λ *= (p1 ** x_i * (1-p1) ** (1-x_i)) / (p0 ** x_i * (1-p0) ** (1-x_i))
28
+
29
+ if Λ >= B: → Accept H1 (agent passes), stop
30
+ if Λ <= A: → Accept H0 (agent fails), stop
31
+ else: → Run another trial
32
+ ```
33
+
34
+ The decision boundaries A and B are derived from the acceptable error rates:
35
+
36
+ ```
37
+ A = beta / (1 - alpha) # lower boundary (accept H0)
38
+ B = (1 - beta) / alpha # upper boundary (accept H1)
39
+ ```
40
+
41
+ Where alpha = Type I error rate (false positive: calling a bad agent good) and beta = Type II error rate (false negative: calling a good agent bad). Typical values: alpha=0.05, beta=0.10.
42
+
43
+ Wald proved SPRT is optimal — it reaches a decision with the minimum expected number of samples given the error constraints.
44
+
45
+ ---
46
+
47
+ ## Why It Matters for AgentArena
48
+
49
+ Current state in `core/runner.py`, `run_pass_at_k`:
50
+
51
+ ```python
52
+ async def run_pass_at_k(self, db, task, agent, k=3) -> list[Run]:
53
+ group_id = str(uuid.uuid4())[:8]
54
+ results = await asyncio.gather(*[_single(i) for i in range(k)])
55
+ ...
56
+ ```
57
+
58
+ All k=3 runs are fired in **parallel** via `asyncio.gather`. There is no mechanism to skip the third run even if the first two are unambiguous. Every agent-task pair always costs exactly 3x whatever a single run costs.
59
+
60
+ Concrete waste scenarios:
61
+
62
+ - **Clear failure:** Agent fails runs 1 and 2. If p_fail is very high, run 3 is paying ~$0.30-0.50 (typical Claude Code run) to confirm what is already statistically obvious.
63
+ - **Clear pass:** Agent passes runs 1 and 2. Same problem in reverse. pass@k with k=3 needs at least one pass to confirm capability — but if both pass, the marginal value of a third pass is low for ranking purposes.
64
+ - **Edge cases (1/2 split):** Here k=3 is most valuable and SPRT would correctly continue.
65
+
66
+ At 84 runs across 7 experiments (from eval dashboard), we are not yet at a scale where this pain is acute. But once we run comparative benchmarks across 5+ agents on 10+ tasks, the cost compounds fast. 50 tasks x 5 agents x 3 runs = 750 runs. SPRT might cut that to ~600.
67
+
68
+ ---
69
+
70
+ ## How It Works — Decision Boundaries
71
+
72
+ For AgentArena, sensible defaults:
73
+
74
+ ```
75
+ p0 = 0.3 # null: agent solves the task less than 30% of the time → "bad"
76
+ p1 = 0.7 # alt: agent solves the task more than 70% of the time → "good"
77
+ alpha = 0.05 # tolerate 5% false positives (bad agent called good)
78
+ beta = 0.10 # tolerate 10% false negatives (good agent called bad)
79
+
80
+ A = beta / (1 - alpha) = 0.10 / 0.95 ≈ 0.105 # stop → reject H1
81
+ B = (1 - beta) / alpha = 0.90 / 0.05 = 18.0 # stop → accept H1
82
+ ```
83
+
84
+ Walk through example — agent that passes 2/3 runs (sequence: pass, fail, pass):
85
+
86
+ ```
87
+ Start: Λ = 1.0
88
+
89
+ Run 1 → pass (x=1):
90
+ Λ *= (0.7 / 0.3) = 2.333 → Λ = 2.333 (between A and B → continue)
91
+
92
+ Run 2 → fail (x=0):
93
+ Λ *= (0.3 / 0.7) = 0.429 → Λ = 1.000 (between A and B → continue)
94
+
95
+ Run 3 → pass (x=1):
96
+ Λ *= (0.7 / 0.3) = 2.333 → Λ = 2.333 (between A and B → continue, but k=3 reached)
97
+ ```
98
+
99
+ Here SPRT does not help — mixed results require all 3 runs. That is correct behavior.
100
+
101
+ Example — clear failure (0/2 runs):
102
+
103
+ ```
104
+ Run 1 → fail: Λ = 0.429 (above A=0.105 → continue)
105
+ Run 2 → fail: Λ = 0.184 (above A=0.105 → continue)
106
+ Run 3 → fail: Λ = 0.079 (below A=0.105 → accept H0, stop)
107
+ ```
108
+
109
+ With these thresholds, even 3 consecutive failures barely cross the boundary. To stop after 2 failures we would need tighter p0/p1 or higher beta. This is a parameter tuning problem.
110
+
111
+ Example with tighter priors (p0=0.2, p1=0.8, alpha=0.1, beta=0.2, A≈0.22, B=9.0):
112
+
113
+ ```
114
+ Run 1 → fail: Λ = (0.2/0.8) = 0.25 (above A=0.22 → continue)
115
+ Run 2 → fail: Λ = 0.25*0.25 = 0.0625 (below A=0.22 → STOP after 2 runs)
116
+ ```
117
+
118
+ Tighter priors = earlier stopping = less data per decision. This is the core tradeoff.
119
+
120
+ ---
121
+
122
+ ## Implementation Sketch
123
+
124
+ The fundamental obstacle is that the current implementation uses `asyncio.gather` for parallelism. SPRT is inherently sequential — it cannot decide after run 2 if runs 1, 2, 3 all started simultaneously.
125
+
126
+ Two implementation paths:
127
+
128
+ ### Option A: Sequential SPRT (true early stopping, loses parallelism)
129
+
130
+ Replace the gather loop with a sequential loop that checks SPRT after each run:
131
+
132
+ ```python
133
+ # In runner.py — new method alongside run_pass_at_k
134
+
135
+ async def run_sprt(
136
+ self,
137
+ db: Session,
138
+ task: Task,
139
+ agent: Agent,
140
+ k_max: int = 5,
141
+ p0: float = 0.3, # null hypothesis pass rate
142
+ p1: float = 0.7, # alternative hypothesis pass rate
143
+ alpha: float = 0.05,
144
+ beta: float = 0.10,
145
+ ) -> tuple[list[Run], str]:
146
+ """
147
+ Run agent sequentially, stopping early when SPRT reaches a decision.
148
+ Returns (runs, decision) where decision is 'h0_reject', 'h1_accept', or 'inconclusive'.
149
+ """
150
+ A = beta / (1 - alpha) # lower boundary → accept H0
151
+ B = (1 - beta) / alpha # upper boundary → accept H1
152
+ lambda_ratio = 1.0
153
+ runs = []
154
+ group_id = str(uuid.uuid4())[:8]
155
+
156
+ for i in range(k_max):
157
+ run = await self._run_single_for_k(db, task, agent, group_id)
158
+ runs.append(run)
159
+
160
+ x = 1 if run.status == RunStatus.success else 0
161
+ lambda_ratio *= (p1 ** x * (1 - p1) ** (1 - x)) / \
162
+ (p0 ** x * (1 - p0) ** (1 - x))
163
+
164
+ logger.info(
165
+ "SPRT run %d/%d: status=%s, Λ=%.4f (A=%.4f, B=%.4f)",
166
+ i + 1, k_max, run.status.value, lambda_ratio, A, B
167
+ )
168
+
169
+ if lambda_ratio <= A:
170
+ return runs, "h0_reject" # agent fails, stop early
171
+ if lambda_ratio >= B:
172
+ return runs, "h1_accept" # agent passes, stop early
173
+
174
+ return runs, "inconclusive"
175
+ ```
176
+
177
+ Caller in the API endpoint or experiment orchestrator:
178
+
179
+ ```python
180
+ runs, decision = await runner.run_sprt(db, task, agent, k_max=5)
181
+ # Store decision alongside runs for analysis
182
+ ```
183
+
184
+ Tradeoff: loses wall-clock parallelism. If each run takes 90s, 3 sequential runs = 270s vs 90s parallel. For cost-optimized batch evaluation this is acceptable; for live benchmarks it is not.
185
+
186
+ ### Option B: Hybrid — Parallel batch with SPRT gate
187
+
188
+ Run 2 runs in parallel first. Check SPRT. If inconclusive, run 1 more (or a second batch of 2). This preserves some parallelism while still saving cost on clear cases.
189
+
190
+ ```python
191
+ async def run_sprt_batched(
192
+ self, db, task, agent,
193
+ batch_sizes: list[int] = [2, 1, 1, 1], # run 2 first, then 1 at a time
194
+ p0=0.3, p1=0.7, alpha=0.05, beta=0.10
195
+ ) -> tuple[list[Run], str]:
196
+ A = beta / (1 - alpha)
197
+ B = (1 - beta) / alpha
198
+ lambda_ratio = 1.0
199
+ all_runs = []
200
+ group_id = str(uuid.uuid4())[:8]
201
+
202
+ for batch_size in batch_sizes:
203
+ # Run batch in parallel
204
+ batch = await asyncio.gather(
205
+ *[self._run_single_for_k(db, task, agent, group_id)
206
+ for _ in range(batch_size)],
207
+ return_exceptions=True
208
+ )
209
+ # Filter exceptions, update lambda
210
+ for run in batch:
211
+ if isinstance(run, Exception):
212
+ continue
213
+ all_runs.append(run)
214
+ x = 1 if run.status == RunStatus.success else 0
215
+ lambda_ratio *= (p1**x * (1-p1)**(1-x)) / (p0**x * (1-p0)**(1-x))
216
+
217
+ if lambda_ratio <= A:
218
+ return all_runs, "h0_reject"
219
+ if lambda_ratio >= B:
220
+ return all_runs, "h1_accept"
221
+
222
+ return all_runs, "inconclusive"
223
+ ```
224
+
225
+ This is probably the right design for AgentArena: run 2 in parallel (quick), check, run a third if uncertain. Best of both worlds.
226
+
227
+ ### Where to add it
228
+
229
+ File: `/home/smlflg/Projekte/AgentArena/core/runner.py`
230
+
231
+ - Add `run_sprt` and/or `run_sprt_batched` as new methods on `Runner`
232
+ - Keep `run_pass_at_k` unchanged (backward compat)
233
+ - Add a `sprt_decision` column to the `Run` model or store it in `metrics_json`
234
+ - The API endpoint that triggers evaluation (wherever `run_pass_at_k` is called) gets a flag: `early_stopping: bool = False`
235
+
236
+ ---
237
+
238
+ ## Expected Cost Savings
239
+
240
+ Assumptions:
241
+ - Average run cost: $0.40 (Claude Code, mid-complexity task)
242
+ - k=3 baseline cost per agent-task: $1.20
243
+ - Typical outcome distribution at current scale: 40% clearly pass (≥2/3), 30% clearly fail (≤1/3), 30% mixed
244
+
245
+ With SPRT batched (2+1 scheme):
246
+ - Clear pass after 2 runs (call it 30% of cases): saves 1 run = $0.40
247
+ - Clear fail after 2 runs (call it 25% of cases): saves 1 run = $0.40
248
+ - Inconclusive (45%): runs all 3, no savings
249
+
250
+ Expected savings per agent-task pair:
251
+ ```
252
+ 0.30 * $0.40 + 0.25 * $0.40 = $0.22 saved per agent-task (out of $1.20)
253
+ ≈ 18% cost reduction
254
+ ```
255
+
256
+ At scale (50 tasks x 6 agents = 300 agent-task pairs):
257
+ ```
258
+ Baseline: 300 * $1.20 = $360
259
+ With SPRT: 300 * $0.98 = $294
260
+ Savings: ~$66 per full benchmark round
261
+ ```
262
+
263
+ These numbers are rough. The actual savings depend heavily on the real pass-rate distribution. If most agents are mediocre (lots of mixed 1/3, 2/3 results), SPRT saves little. If agents polarize (clearly good or clearly bad), savings are higher.
264
+
265
+ The 18% figure in the briefing request assumes a generous distribution. A conservative estimate is 10-12%.
266
+
267
+ ---
268
+
269
+ ## Risks
270
+
271
+ **Reduced statistical power.** SPRT with tight boundaries makes decisions faster but with higher error rates in edge cases. An agent that truly passes 50% of the time (neither clearly good nor clearly bad) might get mislabeled.
272
+
273
+ **Bias toward early evidence.** If run infrastructure has systematic variance (cold-start latency, model version drift, time-of-day effects), the first 2 runs may not be representative. SPRT assumes i.i.d. observations. AgentArena runs are not perfectly i.i.d. — there can be sandbox setup jitter, API rate limit effects, etc.
274
+
275
+ **Parameter sensitivity.** The p0/p1 thresholds encode an opinion about what "good" and "bad" means. Wrong priors = wrong decisions. These need to be calibrated empirically from existing run data before deploying.
276
+
277
+ **Loss of parallelism (Option A only).** Sequential SPRT triples wall-clock time for most cases. For interactive benchmarking this is unusable. Option B (batched) avoids most of this.
278
+
279
+ **Audit trail complexity.** Experiments with different numbers of runs per agent are harder to compare. Pass@k requires knowing k. If k varies per agent, the formula `pass@k = 1 - C(n-c, k)/C(n,k)` needs adjustment. SPRT outcomes need their own metric column, not overloading pass@k.
280
+
281
+ **Inconclusive results are a new failure mode.** The current system always produces a definitive pass/fail count. SPRT introduces a third state. The dashboard and ranking logic need to handle this.
282
+
283
+ ---
284
+
285
+ ## Decision: Is It Worth Implementing Now?
286
+
287
+ **Current scale:** 84 runs across 7 experiments. At $0.40/run that is ~$34 total. SPRT would have saved maybe $6. Not meaningful.
288
+
289
+ **Recommendation: Defer to milestone.**
290
+
291
+ Implement SPRT when we hit one of these triggers:
292
+ 1. A single benchmark round (one full agent x task matrix) costs more than $50
293
+ 2. We run more than 5 agents against more than 10 tasks
294
+ 3. We want to add a "fast screening" mode that does a cheap 2-run sanity check before committing to a full k=3 evaluation
295
+
296
+ Until then, k=3 fixed parallel is simpler, faster wall-clock, easier to reason about statistically, and the cost savings are not worth the added complexity.
297
+
298
+ **When we do implement:** start with Option B (batched 2+1) as a separate method `run_sprt_batched`. Keep `run_pass_at_k` unchanged. Add a feature flag in the experiment config. Calibrate p0/p1 from existing run data first.
299
+
300
+ ---
301
+
302
+ ## References
303
+
304
+ - Wald, A. (1945). *Sequential Tests of Statistical Hypotheses.* Annals of Mathematical Statistics, 16(2), 117–186. https://doi.org/10.1214/aoms/1177731118
305
+ - Wald, A. (1947). *Sequential Analysis.* Wiley. (The textbook — Chapter 3 has the boundary derivation.)
306
+ - Wikipedia overview (good starting point): https://en.wikipedia.org/wiki/Sequential_probability_ratio_test
307
+ - MLflow / Statsig implementation references for A/B testing context: https://www.statsig.com/blog/sequential-testing-on-statsig
308
+ - Python implementation (scipy-compatible): https://github.com/dmarx/sprt — small, readable, MIT license
309
+ - OpenAI Evals discussion on sequential testing: https://github.com/openai/evals/discussions/780 (community thread, not official)
310
+ - Chen et al. (2021) HumanEval pass@k formula: https://arxiv.org/abs/2107.03374 — relevant because AgentArena's pass@k is modeled on this; SPRT interacts with how k is defined here
311
+
312
+ ---
313
+
314
+ *Written: 2026-03-19. Revisit when benchmark scale crosses the thresholds above.*
Uebergabe/.gitignore ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ __pycache__/
2
+ *.lock
3
+ evidence/
4
+ work/
5
+ runtime/
Uebergabe/AGENTEN_ZEILE.md ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Die Zeile für deine Agenten
2
+
3
+ Copy-paste in `AGENTS.md` / `CLAUDE.md` / `SOUL.md` / `GEMINI.md`.
4
+ Funktioniert unverändert in jedem Harness, weil `uebergabe` ein Shell-Kommando ist —
5
+ anders als die Graphen-Regel muss hier nichts pro Tool umformuliert werden.
6
+
7
+ ---
8
+
9
+ ## Wenn du feststeckst
10
+
11
+ Wenn du nicht weiterkommst oder eine Auskunft brauchst, an die du nicht rankommst:
12
+ schreib den Fall in den gemeinsamen Kanal, statt zu raten oder abzubrechen.
13
+
14
+ ```bash
15
+ uebergabe add --projekt "<pfad oder name>" \
16
+ --frage "<konkrete Frage>" \
17
+ --versucht "<was du schon probiert hast>" \
18
+ --benoetigt "<was dich entblocken wuerde>" \
19
+ --agent "<dein name>"
20
+ ```
21
+
22
+ Alle vier Felder sind Pflicht; unvollständige Karten werden abgewiesen.
23
+ `versucht` ist das wichtigste Feld — ohne es läuft der nächste Agent in dieselbe Sackgasse.
24
+
25
+ Bevor du an einem Projekt anfängst, sieh nach, ob dort schon etwas offen ist:
26
+
27
+ ```bash
28
+ uebergabe list
29
+ uebergabe show <id>
30
+ ```
31
+
32
+ Frag Samuel nicht nach Dingen, die du aus vorhandenen Quellen selbst beantworten
33
+ kannst — das verschiebt Last zu ihm. Nur diese fünf gehören ihm:
34
+ Zugangsdaten/2FA · Geld · Außenwirkung · irreversible Aktionen · Priorität und Scope.
35
+ Und dann mit **einer** begründeten Empfehlung, nie mit einer Optionsliste.
36
+
37
+ ---
38
+
39
+ ## Warum das sicher ist
40
+
41
+ Karten werden immer **ohne Assignee** angelegt. Der Hermes-Dispatcher überspringt
42
+ unassigned Karten nachweislich (`Skipped (unassigned)`) — es wird also durch das
43
+ Schreiben nie etwas gestartet. Zuordnung macht der Operator, nicht der Schreiber.
44
+
45
+ Board ist fest: `agenten-uebergaben`. Es wird nie erfragt und nie neu angelegt.
46
+
47
+ ## Wo es liegt
48
+
49
+ - Kommando: `~/.local/bin/uebergabe`
50
+ - Store: `~/.hermes/kanban.db`, Board `agenten-uebergaben` (eigene DB, eigener Loop)
51
+ - Rohzugriff, falls nötig: `hermes kanban --board agenten-uebergaben ...`
Uebergabe/IMPLEMENTATION_REPORT.md ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Kanban-Bearbeiter: Stand 2026-09-09
2
+
3
+ **Fortsetzung: Der vorhandene Operator ist inzwischen lokal angeschlossen und live getestet.**
4
+ Zwei Tickets wurden eigenstaendig zugeordnet; ein freigegebener Auftrag wurde vom
5
+ vorhandenen `verifier` bearbeitet und vom Operator nachverfolgt. 26 Tests und 13
6
+ Readback-Checks bestanden. Hermes-Kontrollpruefung: PASS fuer den begrenzten Betrieb.
7
+ Aktueller Pruefstand: [OPERATOR_REVIEW_HANDOFF.md](OPERATOR_REVIEW_HANDOFF.md).
8
+ Die folgende Darstellung bewahrt den vorherigen Adapterstand; die globale
9
+ Dauerbetriebsfreigabe bleibt weiterhin offen.
10
+
11
+ **Implementiert und lokal durchgehend getestet. Nicht fuer Dauerbetrieb oder globale Ausrollung freigegeben.**
12
+
13
+ ## Nachgewiesene Ergebnisse
14
+
15
+ - `t_46178224`: Hello World durch Hermes mit gueltiger HAI-Session genau einmal ausgefuehrt, Vorlesebefehl Exit 0. Samuel bestaetigte im Chat: „ich habe es gehoert“. Karte `done`.
16
+ Beleg: `evidence/t_46178224/5/result.json`, Abnahme im Kartenkommentar.
17
+ - `t_2b73bcf0`: Ein separater Codex-Prozess stellte die echte Frage nach den 139 alten ProjectIntakeTower-Jobs. Der unabhaengig gestartete Hermes-Poller fand sie im Board, las den freigegebenen Quellensnapshot und antwortete im Board. Codex verwendete Zahlen und Quellen der Antwort fuer einen Vermerk und schloss die Karte ab.
18
+ Ergebnis: `work/continuations/t_2b73bcf0.json`, `KEEP_PARKED`. Keine alten Jobs ausgefuehrt.
19
+ - `t_85fee985`: Frage nach Samuels nicht dokumentierter persoenlicher Absicht endete auf `blocked`. Keine Benachrichtigungsabonnements im Board. Keine Rueckfrage, weil die fehlende Information bereits explizit war; ein tatsaechlicher Rueckfragedialog ist deshalb **nicht** nachgewiesen.
20
+ - 19 Unit-/Integrationspruefungen mit echter temporaerer Hermes-SQLite-Datenbank bestanden. HAI-Widerruf darin per Fehlerinjektion, nicht live.
21
+ - Vier echte MCP-Aufrufe erreichen die HAI-Pruefung und verweigern eine ungueltige Session, ohne eine Karte anzulegen.
22
+ - Separater Readback des Uebergabelaufs: 12 Pruefungen bestanden. `evidence/HANDOFF_VERIFICATION.json`.
23
+
24
+ Der erfolgreiche Uebergabelauf liegt in `evidence/handoff-20260909T180231Z/`.
25
+ Codex nutzte dabei als delegierter Anfragender die bereits autorisierte Codex-Builder-Session. Die Hauptsession griff waehrend des Laufs nicht ein. Hermes hatte eine separate HAI-Session. Codex hatte keinen Shell-/Browserzugriff und nur den begrenzten Board-MCP. B las einen vorher erzeugten, datierten Snapshot; dies ist keine unbeschraenkte Live-Recherche ueber alle Projekte.
26
+
27
+ ## Implementierung
28
+
29
+ - `board_worker.py`: Hermes-AIAgent mit einer begrenzten Aktionsschnittstelle; native Kanban-Claims, HAI-Pruefung pro Aktion, Prozesszeitlimit, Heartbeat, Ergebnisbelege, konservative Sperre nach begonnenen Nebenwirkungen.
30
+ - `board_control.py`: Pflichtfelder, projektgebundene Freigabevorlagen, Deduplizierung, begrenzter Poller, Ablauf-/Wiederanlaufbehandlung. Arbeitet Aufgaben seriell ab; kein paralleler Bearbeiter.
31
+ - `hai_rpc.py`: Verbindung zum installierten HAI-MCP; darf keine Mission schliessen oder umkonfigurieren.
32
+ - `handoff_mcp.py`: vier begrenzte Werkzeuge fuer den Anfragenden. MCP und Hermes laufen in ihren jeweiligen vorhandenen Python-Umgebungen.
33
+ - `mandates.json`: ausschliesslich die bereits erledigte Vorleseaufgabe.
34
+ - `handoff-mandate.json`: ausschliesslich die lesende Fragebeantwortung fuer diesen Test und diese Mission.
35
+
36
+ Der Name `hai-board-worker` ist absichtlich **kein** Hermes-Profil. Der installierte native Dispatcher ueberspringt solche extern uebernommenen Zustaendigkeiten (`kanban_db_dispatch.py`, `_profile_exists_fn`/`skipped_nonspawnable`). Keine bestehenden Profile, globalen Agentenanweisungen, MCP-Konfigurationen oder Services geaendert. Die Test-Poller sind beendet.
37
+
38
+ ## Offene Freigabegrenze
39
+
40
+ `meta-new-agent`, Session `20260909_200657_9730a3`, hat den vollstaendigen Adaptercode als Text ohne Werkzeuge geprueft. Urteil: **FAIL as rollout gate**. Aufruf: `meta-new-agent chat --query-file ... -t none --max-turns 1 --run-budget 90 -Q`. Die Werkzeugdefinition fuer `none` wurde vorher auf eine leere Liste geprueft.
41
+
42
+ Bestaetigte relevante Befunde:
43
+
44
+ 1. `board_control.status()` ruft `pending()` auf; dieses kann veraltete/abgelaufene Karten blockieren. Status ist dadurch nicht rein lesend. Bis zur Korrektur native Hermes-Anzeigen oder SQLite-Readback verwenden.
45
+ 2. Allgemeine Befehlsfreigaben deklarieren keine betroffenen Dateipfade fuer HAI. Der getestete Audiobefehl ist explizit freigegeben; daraus folgt keine Freigabe fuer beliebige Dateibearbeitung.
46
+ 3. Die Integration verwendet interne Hermes-APIs. Versionsbindung/Kompatibilitaetspruefung fehlt.
47
+ 4. Ein echter HAI-Widerruf waehrend laufendem Modell/Unterprozess wurde nicht nachgewiesen. HAI-Transportfehler koennen bis zum RPC-Timeout von 20 Sekunden dauern; keine Behauptung eines sofortigen Stops.
48
+ 5. Strikte Freigabeschema-Validierung und weitere adversariale Tests fehlen. Ein expliziter Rueckfragedialog und dessen harte Begrenzung sind noch nicht durchgehend getestet.
49
+
50
+ Zwei Reviewer-Aussagen sind enger einzuordnen:
51
+
52
+ - Mehrere **serielle** Aufgaben in einem Tick verletzen nicht „ein Bearbeiter gleichzeitig“. Falls exakt eine Aufgabe pro Start gewuenscht ist, muss dies separat als Mengenlimit definiert werden.
53
+ - Die nativen Methoden `block_task`, `claim_task`, `complete_task` usw. haben eigene Transaktionen. Pauschales zusaetzliches Einwickeln waere falsch: Hermes verweigert verschachtelte Transaktionen bei Lifecycle-Methoden ausdruecklich. Die getrennte Zuweisung und anschliessende Uebernahme verdient dennoch einen eigenen Konkurrenztest.
54
+
55
+ Die lokale Datei-Schreibfunktion ist inzwischen auf **neue Artefakte** begrenzt. Bestehende Dateien werden auch bei passendem Hash nicht ueberschrieben. Karten-/Zustaendigkeitsaenderungen werden vor der Aktion erneut geprueft. Die bestehenden 19 Tests bestehen danach weiterhin; die zusaetzlichen Schranken sind noch nicht vollstaendig separat getestet. Der Modellversuch wurde danach nicht erneut wiederholt.
56
+
57
+ ## Mission und Betriebswahrheit
58
+
59
+ Mission `M-20260909T192841-911e6d13`, Version 1, ist nicht als abgeschlossen gemeldet. Der Widerruf-/Recovery-Nachweis ist noch offen. Die Mission ist auf dieses Projekt und `Uebergabe/` begrenzt; sie ist keine allgemeine Freigabe fuer alle Projekte oder globale Steuerflaechen.
60
+
61
+ Damit sind drei Dinge bewusst unterschiedlich:
62
+
63
+ 1. Der Vorleseauftrag ist erledigt und praktisch abgenommen.
64
+ 2. Eine echte begrenzte Agentenuebergabe mit benutzter Antwort funktioniert.
65
+ 3. Ein global laufender, beliebige Agenten/Projekte bedienender Dienst ist **nicht** installiert oder freigegeben.
66
+
67
+ Keine Commits, keine Service-Neustarts, keine alten Jobs reaktiviert. Der vorhandene Kanban-Speicher bleibt die einzige Aufgabenquelle. Fuer die Fortsetzung zuerst die bestaetigten Reviewer-Befunde bearbeiten und den fehlenden Laufzeitnachweis erbringen; keine weitere Orchestrierungsschicht hinzufuegen.
68
+
69
+ ## Reproduzierbare lokale Checks
70
+
71
+ ```bash
72
+ /home/smlflg/.hermes/hermes-agent/venv/bin/python -m unittest discover -s Uebergabe -p 'test_*.py' -v
73
+ python3 Uebergabe/verify_handoff.py
74
+ /home/smlflg/Projekte/hai-mcp-installed/.venv/bin/python Uebergabe/check_handoff_transport.py
75
+ ```
76
+
77
+ Der letzte Check benoetigt die funktionierende Host-MCP-Umgebung. Ein erneuter Modelltest ist kein beliebig wiederholbarer Smoke: `run_handoff_test.py` ist ein datierter Testaufbau, bindet eine zeitlich begrenzte Session und erzeugt echte Board-Eintraege.
Uebergabe/KANBAN_SMOKE.json ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "board": "agenten-uebergaben",
3
+ "tests": {
4
+ "exclusive_claim": true,
5
+ "reply_persisted": true,
6
+ "completion_persisted": true,
7
+ "sequential_dedup": true,
8
+ "blocked_persisted": true,
9
+ "zero_notification_subscriptions": true
10
+ },
11
+ "task_ids": {
12
+ "answered": "t_c1933233",
13
+ "blocked": "t_0484f5fb"
14
+ },
15
+ "states": {
16
+ "t_0484f5fb": "blocked",
17
+ "t_c1933233": "done"
18
+ },
19
+ "event_count": 9,
20
+ "limits": [
21
+ "No autonomous harness handoff tested",
22
+ "No global instruction rollout",
23
+ "No HAI execution integration claimed",
24
+ "No concurrent-create dedup claim"
25
+ ]
26
+ }