Das Original ist natürlich gelöscht:

https://www.npmjs.com/package/@anthropic-ai/claude-code/v/2.1.88
Aber es gibt Commmits von 31.03.2026:
| Repository | Commit | Zeitstempel |
|---|---|---|
| ultraworkers/claw-code | 5a774a2 |
Mar 31, 2026, 11:00 AM GMT+2 |
| Exhen/claude-code-2.1.88 | 2008cd9 |
Mar 31, 2026, 11:20 AM GMT+2 |
Hier ist, wie du das Agent Harness in deinem Workspace analysieren und dokumentieren kannst:
## Directory Structure.main() in main.tsx, die den Programmablauf steuert.tests/-Verzeichnis oder in den jeweiligen Komponentenordnern (nicht im Auszug enthalten, ggf. im Gesamtprojekt prüfen).Vorschlag:
Tipp: Nutze die “Gehe zu Definition” Funktion in VS Code, um z.B. von einem Agenten-Typ direkt zur Implementierung zu springen.
[!NOTE] Prompt: Erstelle bitte das erste Kapitel “Einleitung & Zweck” in
Einleitung_&_Zweck.md.
Ich werde zunächst die wichtigsten Quelldateien analysieren, um eine fundierte Einleitung zu schreiben.
Created 3 todos
main.tsx, lines 1 to 210Tool.ts, lines 1 to 200tools.ts, lines 1 to 200commands.ts, lines 1 to 200QueryEngine.ts, lines 1 to 200context.ts
Nun lese ich noch die Architekturkomponenten, um ein vollständiges Bild zu bekommen:
setup.ts, lines 1 to 100query.ts, lines 1 to 100cost-tracker.ts, lines 1 to 100tools, lines 1 to 100services, lines 1 to 100coordinator, lines 1 to 100coordinatorMode.ts, lines 1 to 100replLauncher.tsxinit.ts, lines 1 to 60hookspluginsskillsStarting (3/3) Einleitung & Zweck schreiben
Jetzt habe ich genug Kontext. Ich schreibe das vollständige erste Kapitel:
Die Lint-Warnungen betreffen nur Markdown-Formatierungsdetails (Tabellen-Spacing und Heading-Abstände). Ich korrigiere die wichtigsten:
Ich behebe nun die Markdown-Lint-Warnungen:
Completed (3/3) Einleitung & Zweck schreiben
Das Kapitel “1. Einleitung & Zweck” ist vollständig in Einleitung_&_Zweck.md erstellt. Es enthält folgende Abschnitte:
| Abschnitt | Inhalt |
|---|---|
| 1.1 Was ist Claude Code? | Definition als Agent Harness, Hintergrund des Leaks, Kennzahlen |
| 1.2 Zweck dieser Dokumentation | Vier Kernziele der Dokumentation |
| 1.3 Was ist ein Agent Harness? | Konzepterklärung mit ASCII-Architekturdiagramm, Zuordnung zu konkreten Quellcode-Modulen (main.tsx, query.ts, QueryEngine.ts, tools) |
| 1.4 Kernfähigkeiten im Überblick | Acht Fähigkeitsbereiche: Dateisystem, Shell, Code-Suche, Web, Multi-Agent, IDE-Bridge, Plugins/Skills, Slash-Commands |
| 1.5 Technologiestack | Tabellarische Übersicht aller verwendeten Technologien |
| 1.6 Lesehinweise | Geplante Kapitelstruktur der Gesamtdokumentation |
Alle Inhalte basieren auf der tatsächlichen Analyse der Quellcode-Dateien (main.tsx, Tool.ts, tools.ts, commands.ts, QueryEngine.ts, query.ts, context.ts, coordinatorMode.ts, etc.).
[!NOTE] Prompt: Magst du in diesem Stil bitte ein nächstes Kapitel erstellen?
Welches hilft dir beim Schreiben der darauffolgenden Kapitel am besten?
Ich werde mit Kapitel 2 – Architekturübersicht beginnen, da es die Grundlage für alle Folgekapitel bildet. Dazu muss ich die tatsächlichen Modul-Abhängigkeiten und Datenflüsse im Quellcode gründlich analysieren.

Ich setze die Analyse fort und schreibe Kapitel 2. Lasse mich zuerst die noch fehlenden Architekturkomponenten untersuchen.
async function run (**/src/main.tsx), 1 resultlaunchRepl (**/src/main.tsx), 8 resultsKapitel 2 ist fertig – keine Lint-Fehler. Hier die Zusammenfassung der Abschnitte:
| Abschnitt | Inhalt |
|---|---|
| 2.1 Schichtenmodell | 9-Schichten-Diagramm von CLI-Entrypoint bis Infrastruktur |
| 2.2 Modulübersicht | Tabellarische Zuordnung aller ~25 Top-Level-Verzeichnisse zu Schichten und Verantwortlichkeiten |
| 2.3 Startup-Ablauf | Vollständiger Boot-Trace main() → init() → setup() → launchRepl() mit paralleler Prefetch-Strategie |
| 2.4 Query-Lifecycle | Agentic-Loop-Diagramm mit Kontext-Management-Kaskade (6-stufige Komprimierung) und Tool-Ausführungsmodell (parallel vs. seriell + Streaming) |
| 2.5 State-Management | Zweigeteiltes Modell: globaler Singleton (state.ts) + reaktiver Pub/Sub-Store (store.ts) |
| 2.6 Berechtigungsarchitektur | 5-stufige Permission-Pipeline (Config → Mode → Classifier → Hooks → User-Prompt) mit Permission-Modes-Tabelle |
| 2.7 Externe Integrationen | MCP (4 Transports, Auth, Discovery), IDE-Bridge (Architekturdiagramm), Plugin-System, Skill-System |
| 2.8 Feature-Flag-Architektur | Build-Time Feature-Gates via bun:bundle mit ~30 Flags und Dead-Code-Elimination |
| 2.9 Datenfluss-Gesamtbild | ASCII-Diagramm des End-to-End-Datenflusses User → REPL → QueryEngine → API → Tools → Bridge |
Alle Inhalte basieren auf der direkten Analyse von main.tsx, init.ts, setup.ts, query.ts, QueryEngine.ts, toolOrchestration.ts, StreamingToolExecutor.ts, state.ts, AppStateStore.ts, store.ts, PermissionContext.ts, useCanUseTool.tsx, claude.ts, autoCompact.ts, bridgeMain.ts und client.ts.
[!NOTE] Prompt: Magst du eine gute README.md erstellen?
Zweck des Repos ist, zu dokumentieren und zu verstehen, wie ein Agent Harness aus einem reinen LLM-Textgenerator einen handlungsfähigen Software-Engineering-Agenten macht.
Guter Plan! Das ist pragmatischer – GitHub WebUI erstellt dir direkt main-Branch, Lizenz und eine initiale README.
Ich bereite in der Zwischenzeit die README.md vor, damit du sie direkt ins neue Repo kopieren kannst:
Die README ist bereits gut vorbereitet! Ich ergänze sie um die fehlenden Abschnitte (Technologiestack-Kurzreferenz, Repo-Struktur, Lizenz/Disclaimer, Mitmach-Hinweis):
Read README.md, lines 50 to 113
Die README ist bereits vollständig und gut strukturiert. Sie hat alles, was ein gutes Repo braucht. Ich nehme nur kleine Verfeinerungen vor:
Die README ist fertig und lint-sauber. Hier die Dateien, die ins neue GitHub-Repo gehören:
.
├── README.md ← Projektbeschreibung (fertig)
├── .gitignore ← src/** ausgeschlossen + Link zum Original
└── docs/
├── 1_Einleitung_&_Zweck.md ← Kapitel 1 (fertig)
├── 2_Architekturübersicht.md ← Kapitel 2 (fertig)
└── 3_Hauptkomponenten.md ← Kapitel 3 (Platzhalter)
Vorgehen:
agent-harness-anatomy oder wie du es nennen möchtest)Sobald du das Repo erstellt und geklont hast, können wir dort mit Kapitel 3 weitermachen.
[!NOTE] Prompt: Unser Thread wird verloren gehen, wenn wir mit VS Code im Repo fortfahren.
Möchtest du (von dir für dich im Follow Up Thread) noch etwas am Ende des “Making of” ergänzen?
Du könntest dir z.B. noch eine kurze Reflexion über die Herausforderungen und Erkenntnisse beim Schreiben der Dokumentation ergänzen.
Gute Idee – ich ergänze am Ende des Making-of eine Reflexion und einen klaren Arbeitsstand für den nächsten Thread.
z_MAKING_OF.md, lines 195 to 220z_MAKING_OF.md, lines 220 to 243z_MAKING_OF.md, no problems foundFertig. Ich habe unter “Claude Opus 4.6 (4)” folgende Abschnitte ergänzt:
| Abschnitt | Zweck |
|---|---|
| Wie die Dokumentation entstanden ist | Methodik: ~5.000 Zeilen aus ~15 Schlüsseldateien gelesen, Top-Down-Analyse, Diagramme als Denkwerkzeug |
| Was gut funktioniert hat | Lob an den Originalcode: exzellente Kommentare, konsistente Patterns, cleveres State-Modell |
| Was herausfordernd war | Zirkuläre Dependencies, 4.684-Zeilen main.tsx, Feature-Gate-Explosion |
| Arbeitsstand-Tabelle | Alle 6 Kapitel + README mit Status und nächstem Schritt |
| Hinweise an den nächsten Claude-Thread | Wo der Quellcode liegt, welchen Stil beibehalten, warum Kapitel 3 als nächstes, und welche Dateien dafür tiefer analysiert werden müssen |
Damit hat der nächste Thread alles, was er braucht, um nahtlos mit Kapitel 3 weiterzumachen.
Die zwei Kapitel entstanden in einer einzigen Session mit folgendem Vorgehen:
Breit lesen, schmal schreiben. Für Kapitel 1 habe ich 6 Kerndateien gelesen (main.tsx, Tool.ts, tools.ts, commands.ts, QueryEngine.ts, context.ts) plus Verzeichnislistings. Für Kapitel 2 kamen ~15 weitere Dateien hinzu (query.ts, setup.ts, init.ts, toolOrchestration.ts, StreamingToolExecutor.ts, bootstrap/state.ts, AppStateStore.ts, store.ts, PermissionContext.ts, useCanUseTool.tsx, claude.ts, autoCompact.ts, bridgeMain.ts, coordinatorMode.ts, mcp/client.ts). Insgesamt habe ich ca. 5.000 Zeilen Quellcode direkt gelesen – weniger als 1% der Codebasis, aber gezielt die Dateien, die das Skelett definieren.
Top-Down statt Bottom-Up. Ich bin vom Einstiegspunkt (main.tsx) aus den Aufrufketten gefolgt: main() → run() → preAction → init() → setup() → launchRepl(). Dann von der REPL aus: QueryEngine → query() → callModel() → runTools() → toolExecution. Das ergab die 9 Schichten und den Query-Lifecycle fast von selbst.
Diagramme als Denkwerkzeug. Die ASCII-Diagramme sind nicht nur Illustration – sie waren das primäre Mittel, um die Architektur zu verstehen. Erst wenn ein Flussdiagramm widerspruchsfrei zeichenbar war, war das Verständnis ausreichend.
startKeychainPrefetch() vor den Imports läuft, warum bootstrap/state.ts ein Singleton ist, warum partitionToolCalls zwischen read-only und mutable unterscheidet. Das hat die Analyse enorm beschleunigt.feature('X') ? require(...) : null) ist überall identisch, was das Verständnis nach dem ersten Vorkommen trivial macht. Ebenso die Tool-Struktur (ein Verzeichnis pro Tool mit eigenem Prompt, eigenen Konstanten).bootstrap/state.ts (globaler Singleton, prozessweit) und state/store.ts (reaktiver Pub/Sub, UI-getrieben) ist ein ungewöhnliches aber cleveres Muster – es vermeidet React-Abhängigkeiten in der tiefen Infrastruktur./* eslint-disable @typescript-eslint/no-require-imports */-Blöcke und Lazy-Requires, die Import-Zyklen brechen. Das macht das Nachverfolgen von Aufrufketten schwieriger, weil die echte Abhängigkeit erst zur Laufzeit sichtbar wird.main.tsx. Mit 4.684 Zeilen ist main.tsx das größte File und enthält die gesamte CLI-Definition, Commander.js-Setup, und mehrere Startup-Pfade (interaktiv, print-mode, SSH, Direct-Connect, Assistant-Mode). Das macht es schwer, den “happy path” vom Spezialfall zu trennen.| Was | Status | Nächster Schritt |
|---|---|---|
| Kapitel 1 – Einleitung & Zweck | ✅ fertig | — |
| Kapitel 2 – Architekturübersicht | ✅ fertig | — |
| Kapitel 3 – Hauptkomponenten | 🔲 Platzhalter | Details zu QueryEngine, Tool-Interface, Command-System, Services schreiben. Dafür Tool.ts (793 Zeilen), QueryEngine.ts (1.296 Zeilen), query.ts (1.730 Zeilen), toolExecution.ts (1.746 Zeilen) tiefer analysieren. |
| Kapitel 4 – Typische Abläufe | 🔲 geplant | Sequenzdiagramme für konkreten Query-Turn, BashTool-Aufruf mit Permission, Agent-Spawning |
| Kapitel 5 – Erweiterungen | 🔲 geplant | Plugin-/Skill-/MCP-System im Detail |
| Kapitel 6 – API-Referenz | 🔲 geplant | Zentrale Typen (Tool, ToolUseContext, AppState, Message) |
| README.md | ✅ fertig | Dokumentationstabelle aktualisieren, wenn Kapitel fertig werden |
| .gitignore | ✅ fertig | — |
| Making-of | ✅ dieses Dokument | Fortlaufend ergänzen |
src/. Er ist via .gitignore aus dem Repo ausgeschlossen, aber lokal vorhanden. Der Link zum Original steht in .gitignore: ultraworkers/claw-code @ 5a774a2.| --- | --- |-Syntax (Leerzeilen um --- für Markdown-Lint), Leerzeile nach jeder ###-Überschrift.autoCompact.ts.[!NOTE] Prompt: Bitte mache vor dem Commit & Push noch ein kurzes Review.
⚠️ Kleinigkeiten zum Beheben:
z_Entstehungsprotokoll.md fehlt in der README-Projektstruktur — Das Making-of wird weder in der Dokumentationstabelle noch im Strukturbaum der README.md erwähnt. Da es ein Meta-Dokument ist, sollte es zumindest im Strukturbaum auftauchen:
// ...existing code...
├── docs/
│ ├── 1_Einleitung_&_Zweck.md ← Was und warum
│ ├── 2_Architekturübersicht.md ← Wie es zusammenhängt
│ ├── 3_Hauptkomponenten.md ← Details (in Arbeit)
│ └── z_Entstehungsprotokoll.md ← Entstehungsprotokoll "MAKING OF"
└── src/ ← NICHT im Repo (siehe .gitignore)
// ...existing code...
Obsidian-Bildverweise in z_Entstehungsprotokoll.md — Zwei Stellen enthalten ![[Pasted image ...]], die auf GitHub nicht rendern.
[!NOTE] Prompt: Beginne mit dem Schreiben von Kapitel
# 3. Hauptkomponenten.
Ich beginne mit der Analyse der Quelldateien für Kapitel 3. Zuerst lese ich die Kerndateien, die die Hauptkomponenten definieren.
Checked 3_Hauptkomponenten.md, no problems found
Keine Fehler. Jetzt die README aktualisieren:
Kapitel 3 ist fertig — keine Lint-Fehler in beiden geänderten Dateien. Hier die Zusammenfassung:
Was wurde erstellt / geändert:
| Abschnitt | Inhalt |
|---|---|
| 3.1 QueryEngine | Konversations-Manager: Config, Turn-Ablauf in submitMessage(), interner State (mutableMessages, readFileState, usage, denials) |
| 3.2 Query-Schleife | while(true)-Loop mit 5 Phasen: Kontext-Komprimierung (6-stufige Pipeline), API-Streaming, Fehler-Recovery, Tool-Ausführung, Post-Processing. 10 Return-Reasons. State-Objekt. |
| 3.3 Tool-System | Drei Schichten: Interface (Tool, buildTool(), ToolUseContext), Registry (getAllBaseTools → getTools → assembleToolPool), Ausführung (partitionToolCalls, StreamingToolExecutor, runToolUse) |
| 3.4 Command-System | 3 Command-Typen (prompt/local/local-jsx), 6 Quellen, Availability-Filter, Skill-Invocation |
| 3.5 Konkrete Tools | BashTool (semantische Befehlsanalyse, Sandbox, Security), AgentTool (Sub-Agenten, Isolation, Background), Coordinator-Modus |
| 3.6 Tool-Referenz | Tabelle aller ~40 Built-in Tools mit Kategorie, Parallel-Fähigkeit, Feature Gate |
| 3.7 Skills & Plugins | Lade-Hierarchie, Frontmatter-Felder, Plugin-System |
| 3.8 Zusammenfassung | End-to-End-Datenfluss-Diagramm durch alle Komponenten |
🔲 → ✅ mit vollständiger Inhaltsbeschreibungz_Entstehungsprotokoll.md in die Projektstruktur aufgenommenAnalysierte Dateien für Kapitel 3: QueryEngine.ts, query.ts, Tool.ts, tools.ts, commands.ts, command.ts, toolOrchestration.ts, StreamingToolExecutor.ts, toolExecution.ts, AgentTool.tsx, runAgent.ts, loadAgentsDir.ts, constants.ts, BashTool.tsx, coordinatorMode.ts, loadSkillsDir.ts.
[!NOTE] Prompt: Die Dateien unter /src, die wir in den Kapiteln erwähnen, sind öffentlich abgelegt. Sollten wir die Dateien verlinken oder aus rechtlichen belastbaren Gründen auf diese Links verzichten?
Das ist eine durchdachte Frage. Hier meine Einschätzung:
Der Code wurde versehentlich veröffentlicht — Anthropic hat ihn nicht unter einer Open-Source-Lizenz freigegeben. Das bedeutet:
Die beiden GitHub-Repos (ultraworkers, Exhen) sind nicht deine — du hostest den Code nicht, du verweist nur darauf. Das ist vergleichbar mit einer wissenschaftlichen Arbeit, die auf eine Quelle verweist.
Eine Quellennachweis-Datei ist die beste Balance aus Nachvollziehbarkeit, Wartbarkeit und rechtlicher Vorsicht:
#src-queryengine, #src-toolorchestration, etc.)In den Dokumentations-Kapiteln wird dann so verwiesen:
Die `QueryEngine` ([Quelle](Quellenverzeichnis.md#src-queryengine)) besitzt den gesamten Lebenszyklus…
Oder kürzer als Fußnoten-Stil:
Die `QueryEngine`[⧉](Quellenverzeichnis.md#src-queryengine) besitzt den gesamten Lebenszyklus…
| Kriterium | Bewertung |
|---|---|
| Nachvollziehbarkeit | ✅ Jede Aussage ist quellenbelegt, zwei unabhängige Mirrors |
| Wartbarkeit | ✅ Links nur an einer Stelle pflegen; falls ein Repo verschwindet → eine Datei anpassen |
| Rechtliche Klarheit | ✅ Disclaimer im Quellenverzeichnis, keine Code-Reproduktion, reine Verlinkung |
| Lesbarkeit der Kapitel | ✅ Kapiteltext bleibt sauber, kein Link-Clutter |
| Respekt vor Anthropic | ✅ Expliziter Hinweis auf geistiges Eigentum + Bereitschaft zur Link-Entfernung |
[!NOTE] Prompt: Der ‘pages build and deployment workflow’ verarbeitet die Markdown-Links nicht als solche. Sollten wir die Links alle wie folgt anlegen?
<a href="https://github.com/ultraworkers/claw-code/blob/5a774a2b62d7949c1d94e0b726281554d7893cfd/src/main.tsx" target="sourcecode">UW</a> · <a href="https://github.com/Exhen/claude-code-2.1.88/blob/2008cd913996f1fa830815626a6479295b1e0786/source/src/main.tsx" target="sourcecode">EX</a>Falls ja, dann einfach so umsetsen, committen und pushen, bitte.
<a>-Tags umwandelnJa, innerhalb von <table>-HTML-Blöcken werden Markdown-Links [text](url) nicht geparst — das ist eine bekannte Eigenheit von GitHub Pages / Jekyll. Die <a href>-Variante ist die richtige Lösung.
y_Quellenverzeichnis.md#1-1, lines 1 to 250y_Quellenverzeichnis.md#250-250, lines 250 to 305Ich sehe 19 Stellen mit Markdown-Links [UW](...) · [EX](...) die in <a href>-Tags umgewandelt werden müssen. Die erste (src-main) hat schon das richtige Format als Vorlage. Ich baue jetzt ein Skript, das alle auf einmal konvertiert:
Ran terminal command:
sed -n '/\[UW\](https:\/\/github/p' docs/y_Quellenverzeichnis.md | wc -l
Ran terminal command:
sed -i -E 's|\[UW\]\((https://github\.com/ultraworkers/claw-code/blob/[^)]+)\) · \[EX\]\((https://github\.com/Exhen/claude-code-2\.1\.88/blob/[^)]+)\)|<a href="\1" target="sourcecode">UW</a> · <a href="\2" target="sourcecode">EX</a>|g' docs/y_Quellenverzeichnis.md
Prüfe ob noch Markdown-Links übrig sind:
Ran terminal command:
grep -n '\[EX\](https://github' docs/y_Quellenverzeichnis.md
Keine übrig. Jetzt entferne ich noch die überflüssigen Leerzeilen, die durch das Markdown-Format in den <td>-Zellen standen. Die src-main-Zeile zeigt das Ziel-Format — kompakt auf einer Zeile:
Ran terminal command:
grep -n 'target="sourcecode"' docs/y_Quellenverzeichnis.md | head -5
Die Links sind konvertiert. Jetzt entferne ich die Leerzeilen um die <a>-Tags herum — die waren nur nötig für Markdown-Parsing und produzieren jetzt unnötige Whitespace:
Ran terminal command:
cd ~/Repos/agent-harness-anatomy && python3 -c "
import re
with open('docs/y_Quellenverzeichnis.md', 'r') as f:
content = f.read()
# Pattern: <td> followed by blank lines, then the <a> link, then blank lines, then </td>
# Replace with compact: <td> newline link newline </td>
content = re.sub(
r'<td>\n\n(<a href=)',
r'<td>\n\1',
content
)
content = re.sub(
r'(target=\"sourcecode\">EX</a>)\n\n</td>',
r'\1\n</td>',
content
)
with open('docs/y_Quellenverzeichnis.md', 'w') as f:
f.write(content)
print('Done')"
Entferne auch den alten auskommentierten Markdown-Kommentar bei src-main:
Die Lint-Warnungen sind nur MD033/no-inline-html — die sind in einer Datei, die absichtlich HTML-Tabellen verwendet, erwartbar und harmlos. Jetzt commit und push:
Ran terminal command:
git add docs/y_Quellenverzeichnis.md && git diff --cached --stat
Ran terminal command:
cd ~/Repos/agent-harness-anatomy && git commit -m "fix: Quellenverzeichnis Markdown-Links → HTML `<a>`-Tags
- Innerhalb von `<table>`-HTML-Blöcken parst GitHub Pages/Jekyll keine Markdown-Links [text](url).
- Alle 20 Quellenlinks auf `<a href>` mit target='sourcecode' umgestellt.
- Überflüssige Leerzeilen und auskommentierte Duplikate entfernt."
Ran terminal command:
git push
Erledigt. Alle 20 Quellenlinks in y_Quellenverzeichnis.md sind jetzt HTML-<a>-Tags mit target="sourcecode" (öffnet alle Quellen im selben Tab). Der Pages-Build sollte die Links jetzt korrekt rendern.
[!NOTE] Prompt: Welche “github.com/topics” schlägst du für unser Repo vor?
| Topic | repositories matching |
|---|---|
| agent-harness | 63 |
| ai-agent | 8 713 |
| claude-code | 16 480 |
| anthropic | 6 112 |
| llm-architecture | 34 |
| software-engineering-agent | hasn’t been used, yet |
| tool-use | 321 |
| mcp | 23 213 |
| multi-agent | 4 224 |
| reverse-engineering | 7 942 |
| documentation | 19 881 |
| typescript | 326 315 |
| claude-code | 16 480 |
| harness-engineering | 180 |
| agentic-framework | 425 |
| agentic-workflow | 1 603 |
| orchestration | 2 970 |
Gute Daten! Damit lässt sich eine gute Auswahl treffen.
| Kategorie | Topics | Begründung |
|---|---|---|
| Nische besetzen (wenige Repos → hohe Sichtbarkeit) | llm-architecture (34), agent-harness (63), software-engineering-agent (0) |
Hier bist du auf Seite 1. software-engineering-agent wärst du der Erste. |
| Relevantes Feld (moderates Volumen → auffindbar ohne unterzugehen) | tool-use (321), agentic-framework (425), harness-engineering (180) |
Genug Traffic, wenig genug Konkurrenz |
| Kontext-Einordnung (großes Volumen → Zugehörigkeit signalisieren) | claude-code (16.480), ai-agent (8.713), anthropic (6.112) |
Wer nach Claude Code sucht, soll dich finden |
| Weglassen | typescript (326k), documentation (19.9k), mcp (23.2k), reverse-engineering (7.9k), multi-agent (4.2k) |
Zu generisch, keine Differenzierung. Dein Repo ist kein MCP-Server, kein TypeScript-Projekt, kein RE-Tool. |
software-engineering-agent
llm-architecture
agent-harness
tool-use
agentic-framework
harness-engineering
claude-code
ai-agent
anthropic
orchestration
Logik:
software-engineering-agent, llm-architecture, agent-harness) → Alleinstellungtool-use, agentic-framework, harness-engineering) → Auffindbarkeit in der Zielgruppeclaude-code, ai-agent, anthropic) → Zugehörigkeit zum Ökosystemorchestration) → beschreibt den Kern des analysierten Systems[!NOTE] Prompt: Die habe ich eingetragen. Statt
tool-usehabe ichtool-use-aigenommen, weil es spezifischer ist.Bei der Gelegenheit habe ich unter ‘About’ auch https://torstenc.github.io/agent-harness-anatomy/ als Website eingetragen. Dazu sollten wir ein pre-commit einrichten, das die
/README.mdnach/docs/index.mdkopiert. Möchtest du das direkt erledigen?
README.md lines 1 to 10.git/hooks**/.pre-commit-config*, no matchesKein pre-commit-Framework installiert. Ein einfacher Git-Hook reicht hier vollkommen:
Created .git/hooks/pre-commit
Ran terminal command:
chmod +x ~/Repos/agent-harness-anatomy/.git/hooks/pre-commit
Jetzt die initiale Kopie erstellen und testen:
Ran terminal command:
cp README.md docs/index.md && git add docs/index.md && git status
Ran terminal command:
cd ~/Repos/agent-harness-anatomy && git commit -m "docs: README.md als docs/index.md für GitHub Pages Homepage
Pre-commit Hook kopiert README.md → docs/index.md automatisch, wenn README.md im Commit enthalten ist.” && git push
Fertig. Was eingerichtet wurde:
Hinweis: Git-Hooks liegen in hooks und werden nicht ins Repo gepusht. Falls du das Repo woanders klonst, muss der Hook dort erneut eingerichtet werden. Falls das irgendwann relevant wird, können wir auf ein Framework wie pre-commit oder ein Makefile-Target umsteigen.
[!NOTE] Prompt: Magst du die README.md einmal redigieren, ob sie noch den aktuellen Stand der Dinge widerspiegelt? Du kannst auch schon die Links bis
docs/6_API-Referenz.mdanlegen, auch wenn die Kapitel noch nicht geschrieben sind. magst du als Nächstes Kapitel ‘# 4. Typische Abläufe’ schreiben? Falls keine Unsicherheiten bestehen, dann committe und pushe die Änderungen bitte gleich.
Ich lese zuerst den aktuellen Stand der README und der Kapitel 4-6, um zu verstehen was schon da ist:
Created 3 todos
README.mddocs/4_Typische_Abläufe.mddocs/5_Erweiterungsmöglichkeiten.mddocs/6_API-Referenz.mdDie Kapitel 4/5/6 sind Platzhalter. Jetzt aktualisiere ich die README: Links für die Platzhalter-Kapitel anlegen und Projektstruktur ergänzen.
Jetzt die Projektstruktur um die neuen Dateien ergänzen:
Jetzt analysiere ich die Quelldateien für die Sequenzdiagramme in Kapitel 4:
main.tsx, lines 1 to 200setup.ts, lines 1 to 100replLauncher.tsxJetzt lese ich die relevanten Dateien für die Sequenzdiagramme — insbesondere die Permission-Pipeline und den Entrypoint-Flow:
main.tsx, lines 200 to 500entrypoints/init.ts, lines 1 to 200Summarized conversation history
entrypoints/init.ts, lines 200 to 341main.tsx, lines 500 to 800main.tsx, lines 800 to 1100main.tsx, lines 1100 to 1500setup.ts, lines 100 to 200setup.ts, lines 200 to 478query.ts, lines 1 to 200query.ts, lines 200 to 500services/tools/toolOrchestration.tsNow let me read the tool execution flow and the permission checking:
services/tools/toolExecution.ts, lines 1 to 200Searched for files matching **/AgentTool*, no matches
services/tools/toolExecution.ts, lines 200 to 400services/tools/toolExecution.ts, lines 400 to 700runAgent|AgentTool (**/src/tools/**/prompt.ts), no results**/src/tools/**/Agent*, no matchesrunAgent|runForkedAgent (**/src/skills/**), no resultsrunAgent|runForkedAgent (**/src/**/*.ts), no resultsrunAgent|runForkedAgent, 7 results**/src/tools/AgentTool/**, no matchesThe AgentTool files seem to not be in the local source. Let me check what we have and read the remaining key files:
src/query.ts, lines 500 to 800src/services/tools/toolExecution.ts, lines 700 to 900Now let me read the rest of the query loop to understand the tool execution and continue logic:
src/query.ts, lines 800 to 1200Now let me read the remaining part of the query loop to see the tool-execution and continue logic:
src/query.ts, lines 1200 to 1500Now let me also read the existing Chapter 3 to match style, and read the remaining part of the query loop:
src/query.ts, lines 1500 to 1730docs/3_Hauptkomponenten.md, lines 1 to 60Now I have enough context to write a comprehensive Chapter 4. Let me also check the current docs/4 file and the existing chapter structure:
docs/3_Hauptkomponenten.md, lines 580 to 776Now I have comprehensive understanding. Let me write Chapter 4:
[!NOTE] TorstenC selected “Continue” (Das Maximum lag bei 25, ist nun bei 50)
Let me fix the lint errors:
Now let me check for remaining errors:
docs/4_Typische_Abläufe.md, 1 problem foundThere’s another ### Sequenz heading that’s duplicated. Let me find it:
### Sequenz (**/docs/4_Typische_Abläufe.md), 4 resultsdocs/4_Typische_Abläufe.md#320-320, lines 320 to 327docs/4_Typische_Abläufe.md, no problems foundNo more errors. Now let me update the todo and commit + push:
Ran terminal command:
git add -A && git status
Hmm, the placeholder files for 5 and 6 are showing as new — but they should already have been there. Let me check. Also I notice index.md is not modified — the pre-commit hook should copy README.md. Let me check:
Ran terminal command:
cat .git/hooks/pre-commit
Good, the pre-commit hook will trigger during commit since README.md is staged. Let me commit:
Ran terminal command:
cd ~/Repos/agent-harness-anatomy && git commit -m "docs: Kapitel 4 – Typische Abläufe + README-Update
- Kapitel 4 (docs/4_Typische_Abläufe.md): 9 Abschnitte mit
ASCII-Sequenzdiagrammen für Startup, Query-Lifecycle,
Query-Schleife, Tool-Pipeline, Fallback/Recovery,
Sub-Agent-Spawning, Session-Resume, Hooks, Timing
- README.md: Links zu Kap 4/5/6 ergänzt, Projektstruktur aktualisiert
- Placeholder-Dateien für Kap 5 + 6 angelegt"
6 files — the pre-commit hook ran and copied README.md → docs/index.md. Now push:
Ran terminal command:
git push
Completed (3/3) Commit & Push
Alles erledigt! Hier eine Zusammenfassung:
4_Typische_Abläufe.md mit 9 Abschnitten:
| # | Abschnitt | Inhalt |
|---|---|---|
| 4.1 | Startup | Vollständiger Pfad cli.tsx → main() → init() → setup() → launchRepl(), inkl. Deferred Prefetches und --bare/--print-Pfade |
| 4.2 | Query-Lifecycle | 4 Phasen: Vorverarbeitung → System-Prompt → API+Tool-Loop → Persistenz |
| 4.3 | Query-Schleife | while(true)-Kern mit State-Modell, 6-stufiger Komprimierung, Streaming, Tool-Execution, Attachments, Continue/Terminal-Gründe |
| 4.4 | Tool-Ausführung | 5-Phasen-Pipeline (Lookup → Validierung → Permission → Execution → Nachbereitung), parallel vs. seriell, StreamingToolExecutor |
| 4.5 | Fallback & Recovery | Model-Fallback (529), Max-Output-Tokens (Escalation + 3× Recovery), Prompt-Too-Long (Kaskade: Collapse → Reactive Compact) |
| 4.6 | Sub-Agent-Spawning | Foreground, Background, Coordinator-Modus |
| 4.7 | Session-Resume & Compact | --resume/--continue, Auto-Compact-Ablauf |
| 4.8 | Hooks im Ablauf | Alle Trigger-Punkte + Datenfluss-Beispiel (PreToolUse) |
| 4.9 | Timing-Überblick | Typischer Turn mit Zeitbereichen pro Phase |
Commit 9cfcb21, erfolgreich auf main gepusht. Pre-commit Hook hat index.md automatisch aktualisiert.
- In der README.md steht noch “4. Typische Abläufe 🔲 … (geplant)”
- Bitte achte in Zukunft auf “MD009/no-trailing-spaces: Trailing spaces [Expected: 0 or 2; Actual: 1]”. Wo merken wir uns sowas? Gibt es dafür etwas wie eine
COPILOT.mdoder so, wo wir solche Regeln sammeln?- Falls keine weiteren Anmerkungen oder Fragen bestehen, dann committe und pushe die Änderungen bitte gleich.
Ich sehe die drei Punkte. Lasse mich alles der Reihe nach erledigen:
1. README: Kap 4 Status aktualisieren:
2. Copilot-Instructions mit Lint-Regeln erstellen:
VS Code erkennt .github/copilot-instructions.md automatisch und übergibt den Inhalt an GitHub Copilot als Kontext. Das ist genau der richtige Ort für projektweite Regeln.
.github/copilot-instructions.mdDie “Fehler” sind harmlos — der Markdown-Linter interpretiert Backtick-Fragmente als Tool-Referenzen und relative Links als Dateipfade aus dem .github-Verzeichnis. Das ist kein echtes Problem, da die Datei nur als Copilot-Instruktionen gelesen wird, nicht als Teil der GitHub Pages.
3. Commit & Push:
Ran terminal commands:
git add -A && git status
git status
cd ~/Repos/agent-harness-anatomy && git commit -m "docs: README Kap-4-Status ✅ + Copilot-Instructions mit Lint-Regeln
- README.md: Kapitel 4 Status 🔲→✅, Inhaltsbeschreibung aktualisiert
- .github/copilot-instructions.md: Projektweite Regeln für Copilot
(Sprache, MD-Lint-Regeln MD009/MD024/MD033, Formatierung, Quellenverweise)"
git push
Completed (3/3) Commit & Push
Alle drei Punkte erledigt:
🔲 … (geplant) → ✅ Startup-Sequenz, Query-Lifecycle, Query-Schleife, Tool-Pipeline, Fallback & Recovery, Sub-Agent-Spawning, Session-Resume, Hooks, Timing
VS Code erkennt diese Datei automatisch als Copilot-Kontext. Inhalt:
| Abschnitt | Regeln |
|---|---|
| Sprache & Stil | Deutsch, Conventional Commits, ASCII-Diagramme |
| Markdown Lint | MD009 (Trailing Spaces: 0 oder 2, nie 1), MD024 (keine doppelten Überschriften), MD033 (kein Inline-HTML, Ausnahme Quellenverzeichnis) |
| Formatierung | Leerzeilen nach ###, um ---, um Code-Blöcke |
| Quellenverweise | Zentral in y_Quellenverzeichnis.md, Anker-Referenzen in Kapiteln |
Commit 6b7ed6e, erfolgreich auf main gepusht.
[!NOTE] Prompt: @workspace /explain Unknown tool or toolset ‘`-Überschrift’.
Das Problem ist, dass der Backtick in ‘###-Überschrift’ von deinem Tool-Parser als Tool-Name interpretiert wird. Der Backtick-Ausdruck `###`-Überschrift wird am - aufgetrennt, und der Parser versucht `###` als Tool zu resolven.
Lösung: Den gesamten Ausdruck in einen einzelnen Inline-Code-Block packen, damit kein “nackter” Bindestrich zwischen Code und Text steht:
// ...existing code...
| MD024 | Keine doppelten Überschriften | Jede Überschrift (`###` usw.) muss innerhalb einer Datei einzigartig sein |
// ...existing code...
Was sich geändert hat: Statt `###`-Überschrift (wo der Backtick vor dem Bindestrich endet und der Parser -Überschrift als Suffix parst) steht jetzt Überschrift als normales Wort und `###` separat in Klammern.
Alternativ, wenn du den Originalwortlaut beibehalten willst, alles in einen Code-Span:
// ...existing code...
| MD024 | Keine doppelten Überschriften | Jede `###-Überschrift` muss innerhalb einer Datei einzigartig sein |
// ...existing code...
Beide Varianten vermeiden das Parsing-Problem.
[!NOTE] Prompt: Setze die erste variante um. Ein Commit ist noch nicht nötig.
.github/copilot-instructions.md, lines 12 to 25Hmm, auch isolierte `###` wird als Tool geparst. Das Backtick-Fragment wird als Tool-Name interpretiert. Ich ersetze es durch ausgeschriebenen Text ohne Backticks:
Der Linter interpretiert ###) als Tool-Name. Hier wird ### in der Tabellenzelle als Markdown-Heading geparst. Ich formuliere komplett ohne ###:
.github/copilot-instructions.md, 1 problem foundDie einzige verbleibende “Warnung” ist ein relativer Link innerhalb eines Inline-Code-Blocks — der Linter versucht die Datei relativ zu .github aufzulösen. Das ist ein Beispiel-Verweis, kein echter Link. Kein echtes Problem, aber ich kann es entschärfen:
.github/copilot-instructions.md, lines 27 to 33Der Linter parst auch #src-queryengine in Backticks als Referenz. Ich entferne die Backticks.
Der Linter verfolgt #src-queryengine als Fragment-Referenz. Ich entferne das konkrete Beispiel.
.github/copilot-instructions.md, no problems foundKeine Fehler mehr. Die Datei sieht jetzt so aus:
.github/copilot-instructions.mdSauber — keine Lint-Fehler. Die problematischen Stellen waren Backtick-Fragmente mit Bindestrichen und #-Zeichen, die der Markdown-Linter als Tool-Referenzen bzw. Heading-Marker interpretiert hat.
[!NOTE] Prompt: Stimmt der Satz “… die interne Architektur von … Anthropics … CLI-Tool, …” in der
README.md?
Es ist nicht nur die CLI, sondern die Agent-Harness, die wir analysieren. Das CLI-Tool ist nur der Einstiegspunkt.Commit mit:
- ”+ .github/copilot-instructions.md”
- ”+ docs/x_Kommentare_von_Gemini.md”
- “Update README:
- CLI → Agent-Harness,
- Kommentare_von_Gemini,
- copilot-instructions”
Drei Aufgaben aus dem Entstehungsprotokoll (Zeilen 960–972):
x_Kommentare_von_Gemini.md ins Repo aufnehmen.github/copilot-instructions.md und x_Kommentare_von_Gemini.md in README-Projektstruktur ergänzenREADME.md, lines 1 to 10.github/copilot-instructions.mddocs/x_Kommentare*, 1 match (Datei existiert bereits)Kommentare_von_Gemini (README.md), bereits in DokumentationstabelleREADME.md, lines 100 to 120 (Projektstruktur)copilot-instructions.md und x_Kommentare_von_Gemini.md ergänzt)README.md, .github/copilot-instructions.md, no problems foundgit add -A && git statusgit commit + git pushCommit 6b7f934 gepusht. Zusammenfassung:
| Änderung | Details |
|---|---|
| README: CLI → Agent-Harness | „Anthropics offiziellem CLI-Tool, das…” → „des Agent Harness von Claude Code — der Laufzeitumgebung, die…” |
| README: Projektstruktur | copilot-instructions.md und x_Kommentare_von_Gemini.md ergänzt |
| copilot-instructions | Backtick-Fragmente entfernt (hatten Lint-Fehler „Unknown tool” verursacht) |
| x_Kommentare_von_Gemini.md | War bereits lokal vorhanden, jetzt im Repo |
[!NOTE] Prompt: Schau dir mal den letzten Teil der Datei an.
Die Zeilen 973 bis 1044 sind deine letzte Antwort per cut & paste.
Magst du diese Zeilen im Stil der Kapitel davor anpassen und dir bei Bedarf Notizen dazu in dercopilot-instructions.mdmachen?
(…)
Hier was ich gemacht habe:
z_Entstehungsprotokoll.md (Zeilen 973–1044 bereinigt):
Read datei.ts-Stichpunkte ) entferntCompleted (1/4) → entfernt--- nach Überschrift → entferntcopilot-instructions.md und x_Kommentare_von_Gemini.md in Backticks gesetztMade changes. → - Made changes. (konsistent mit den anderen Abschnitten)copilot-instructions.md — neuer Abschnitt „Entstehungsprotokoll” mit Stil-Konventionen:
Completed (1/4) → entfernt--- nach Überschrift → entferntcopilot-instructions.md und x_Kommentare_von_Gemini.md in Backticks gesetztMade changes. → - Made changes. (konsistent mit den anderen Abschnitten)copilot-instructions.md — neuer Abschnitt „Entstehungsprotokoll” mit Stil-Konventionen:
Kapitelüberschrift, Tool-Aufrufe, keine file-URIs, keine leeren Code-Blöcke, keine Todo-Nummern, Zusammenfassungstabelle, Abschluss-Marker
Made changes.
[!NOTE] Prompt: Wir haben einen neuen Anhang
w_Rust-Projekt_claw-code.md.
Baust du den Bitte ins README.md ein und macht Commit&Sync?
README.md, lines 46 to 60README.md, lines 103 to 120Jetzt baue ich den neuen Anhang w_Rust-Projekt_claw-code.md an beiden Stellen ein — Dokumentationstabelle und Projektstruktur:
README.md, no problems foundRan terminal command:
git add -A && git status
Ran terminal command:
cd ~/Repos/agent-harness-anatomy && git commit -m "docs: Anhang w_Rust-Projekt_claw-code + Entstehungsprotokoll-Stil
- docs/w_Rust-Projekt_claw-code.md: Einordnung und Abgrenzung des
öffentlichen Rust-Reimplementierungsprojekts ultraworkers/claw-code
- README.md: Neuen Anhang in Dokumentationstabelle und Projektstruktur
- .github/copilot-instructions.md: Stil-Konventionen für
Entstehungsprotokoll ergänzt
- docs/z_Entstehungsprotokoll.md: Letzten Abschnitt im etablierten
Stil bereinigt (file-URIs, leere Code-Blöcke, Todo-Nummern entfernt)"
Ran terminal command:
git push
Commit ba9089e gepusht.
| Stelle | Änderung |
|---|---|
| Dokumentationstabelle | Neue Zeile: Anhang „Rust-Projekt claw-code” mit Link und Beschreibung, alphabetisch vor den anderen Anhängen (w < x < y < z) |
| Projektstruktur | w_Rust-Projekt_claw-code.md eingefügt |
Made changes.
[!NOTE] Prompt: Unser Repository dokumentiert und analysiert aktuell die interne Architektur des Agent Harness von Claude Code, mit Shell, Dateisystem, Web, IDE-Integration und mehr.
Strategische Frage:
Wie weit sollten wir es mit ‘# 5. Erweiterungsmöglichkeiten’ und ‘# 6. API-Referenz’ noch treiben?
Ich denke an ein Folgekapitel ‘6. Ausblick - Wie die story weitergeht’ oder so, wo wir uns dann dem moderneren Ansatz widmen.
Das ist eine wichtige strategische Frage. Lass mich die Optionen durchdenken.
| Geplanter Inhalt | Bereits abgedeckt in… | Mehrwert? |
|---|---|---|
| Plugin-System | 3.7 (Skills & Plugins) | Gering — Mechanik schon erklärt |
| Skill-System | 3.7 + 4.8 (Hooks) | Gering — Lade-Hierarchie, Frontmatter schon da |
| MCP-Integration | 2.4 (Schicht 8), 3.6 (Tool-Referenz) | Mittel — Protokolldetails fehlen noch |
| Custom Agents | 3.5 (AgentTool), 4.6 (Sub-Agent-Spawning) | Gering — loadAgentsDir, Isolation schon erklärt |
Fazit Kap 5: 80% davon steht verteilt in Kap 3 und 4. Ein eigenständiges Kapitel würde vor allem zusammenfassen und verlinken, nicht viel Neues beitragen.
Eine klassische API-Referenz (Typen, Interfaces, Funktionssignaturen) hat bei einem nicht-öffentlichen, sich ändernden Codebase ein Haltbarkeitsproblem. Der Code wird sich mit jeder Claude-Code-Version ändern. Eine detaillierte Referenz wäre schnell veraltet und suggeriert eine Stabilität, die nicht gegeben ist.
Bisherige Kapitel Was fehlt noch? Wohin geht die Reise?
────────────────── ────────────────── ──────────────────────
1. Einleitung ✅ 5. Erweiterungen → Schlank: Zusammenfassung
2. Architektur ✅ (80% schon da) + MCP-Vertiefung
3. Komponenten ✅ 6. API-Referenz → Streichen oder als
4. Abläufe ✅ (Haltbarkeitsproblem) kompakte Typ-Übersicht
─────────────────────
NEU: Ausblick-Kapitel
| Kapitel | Aktion | Begründung |
|---|---|---|
| 5. Erweiterungsmöglichkeiten | Schlanke Version (~150 Zeilen): MCP-Protokolldetails vertiefen, Rest als Verweiskapitel auf Kap 3/4 mit Praxisbeispielen (eigene .claude/agents/, eigene Skills, eigene MCP-Server) |
Gibt dem Leser eine Anleitung zum Selbermachen, nicht nur Analyse |
| 6. |
Neues Kapitel: „Ausblick — Wie die Story weitergeht” | Zukunftsgerichtet statt rückwärtsgewandt |
# 6. Ausblick — Wie die Story weitergeht
## 6.1 Was wir aus dem Leak gelernt haben
- Architektonische Patterns, die sich verallgemeinern lassen
- Agent Harness als eigene Software-Kategorie
## 6.2 Offene Fragen
- Was der Quellcode nicht verrät (Serverseitige Logik, Training,
System-Prompt-Inhalt, Billing/Rate-Limiting)
- Grenzen der statischen Analyse
## 6.3 Die nächste Generation
- Rust-Reimplementierung (claw-code → Verweis auf Anhang W)
- Coordinator-Mode als Vorbote von Multi-Agent-Systemen
- Agents-as-a-Platform (oh-my-codex, clawhip, oh-my-openagent)
- MCP als offener Standard → Ökosystem jenseits von Anthropic
## 6.4 Vergleichbare Systeme
- Cursor, Windsurf, Cline, Aider, OpenHands, SWE-agent
- Was sie gemeinsam haben, wo sie sich unterscheiden
- Tabelle: Feature-Matrix Agent-Harness-Systeme
## 6.5 Fazit
- Von „LLM + Prompt" zu „LLM + Harness + Tools + Agents"
- Der Agent Harness als das eigentliche Produkt
Das Rust-Projekt (w_Rust-Projekt_claw-code.md) wird dann im Ausblick kontextualisiert statt isoliert im Anhang zu stehen.
Soll ich mit dieser Struktur loslegen? Ich würde Kap 5 (schlank) und Kap 6 (Ausblick) schreiben, die README aktualisieren und committen.
[!NOTE] Prompt: Ja, gern. Mach’ das so.
Aber die
w_Rust-Projekt_claw-code.mderstmal noch nicht löschen. Zu gegebener Zeit können wie sie in der README.md als veraltet markieren, sie in einen Archiv-Ordner verscieben oder am Ende tatsächsich doch löschen. BTW noch etwas für diecopilot-instructions.md: Verwende in der Spalte ‘Kapitel’ unter ‘## Dokumentation’ in der README.md bitteU+00A0oderU+202F. Bei ‘5. Erweiterungsmöglichkeiten’ habe ich das bereits umbebaut, weil das in der Tabelle sonst doof aussieht. Hinter ‘Anhang:’ bleibt ein normales ` `, dort soll der Text umbrechen.
[!NOTE] TorstenC selected “Continue” (50 waren nicht genug)
Fünf Aufgaben: copilot-instructions U+202F-Regel, Kap 5, Kap 6, README, Commit.
copilot-instructions.md — U+202F-Regel ergänzt:
1. + U+202F + TitelAnhang:Kapitel 5 — Quelldateien analysiert:
MCPTool.ts, mcpSkillBuilders.ts, loadSkillsDir.ts (lines 1–350), bundledSkills.ts, SkillTool.ts, builtinPlugins.tsMCPConnectionManager.tsx, entrypoints/mcp.tsskills/bundled/index.ts, skills/bundled/remember.tsdocs/3_Hauptkomponenten.md, lines 697 to 7765_Erweiterungsmöglichkeiten.md — 226 Zeilen geschrieben:
| Abschnitt | Inhalt |
|---|---|
| 5.1 Überblick | Vier Erweiterungsebenen (CLAUDE.md → Skills → MCP → Plugins), ASCII-Diagramm |
| 5.2 Skills | Lade-Hierarchie (6 Quellen), Frontmatter-Referenz, praktisches Beispiel, Bundled-Skills-Tabelle (~12 Skills) |
| 5.3 MCP-Server | Architektur-Diagramm, Schlüssel-Dateien-Tabelle, zwei Richtungen (Client + Server), Tool-Pool-Integration |
| 5.4 Plugins | Built-in vs. Marketplace, Plugin-Identifikation |
| 5.5 Custom Agents | Beispiel-Konfiguration .claude/agents/, mcpServers-Frontmatter |
| 5.6 Entscheidungshilfe | Tabelle: Anforderung → empfohlene Ebene |
6_Ausblick.md — 155 Zeilen geschrieben (Datei umbenannt von 6_API-Referenz.md):
| Abschnitt | Inhalt |
|---|---|
| 6.1 Learnings | 5 zentrale Erkenntnisse (Architektur > Modell, Kontext-Management, Permissions, MCP, React/Ink) |
| 6.2 Offene Fragen | Coordinator, MCP-Skalierung, Cache-Invalidierung, Bridge, Kosten |
| 6.3 Nächste Generation | claw-code (Querverweis auf Anhang w), Coordinator/Multi-Agent, Agents-as-Platform |
| 6.4 Vergleichbare Systeme | Tabelle (6 Systeme), gemeinsame Muster, Alleinstellungsmerkmale |
| 6.5 Fazit | Trends: TypeScript→Rust, Single→Multi-Agent, Plugins→MCP, Tools→Tasks |
README.md — aktualisiert:
6_Ausblick.md in Projektstruktur-Baum1_Einleitung_&_Zweck.md — Inhaltsverzeichnis: Kap 5/6 Titel aktualisiert.
w_Rust-Projekt_claw-code.md — unverändert beibehalten.
Commit 42a5005, 7 Dateien (inkl. index.md via Pre-commit-Hook), gepusht auf origin/main.
<!– ENDE TODO “Diesen Teil noch aus dem Original-Chat extrahieren” –>
[!NOTE] Prompt: Ist in diesem
wavespeed.aiBlog Post noch etwas drin, was in unsere Doku gehört oder sie etwas auflockern könnte?
https://wavespeed.ai/blog/claude-code-agent-harness-insights
Gute Frage. Ich gleiche den Blog-Post systematisch mit unserer Doku ab:
| Thema im Blog-Post | Bei uns abgedeckt? | Interessant? |
|---|---|---|
.map-File Leak-Mechanismus |
❌ Nicht beschrieben | ✅ Ja — gehört in Kap 1 oder Entstehungsprotokoll als Kontext |
| 512.000 Zeilen, ~1.900 Dateien | ❌ Nur angedeutet | ✅ Konkretes Zahlenwerk für die Einleitung |
| BUDDY (virtuelles Haustier) | ❌ | ⚠️ Unterhaltsam, aber nicht architektur-relevant |
| KAIROS (persistent assistant) | ❌ | ✅ Architektonisch interessant — passt zu 6.2 (Offene Fragen) |
| ULTRAPLAN | ✅ Erwähnt in Kap 3 (Commands) | Schon drin |
| Coordinator Mode | ✅ Kap 3.5, 4.6 | Schon drin, ausführlich |
| 108 Feature Flags | ❌ Nur einzelne erwähnt | ✅ Gute Zahl für Kap 5 oder 6 |
Undercover Mode (USER_TYPE === 'ant') |
❌ | ⚠️ Brisant, aber nicht architektur-relevant |
| Bun + React/Ink | ✅ Kap 2, 3 | Schon drin |
| Query Engine ~46.000 Zeilen | ❌ Wir sagen ~1.296 für QueryEngine.ts |
⚠️ Die 46k-Zahl bezieht sich vermutlich auf das gesamte Query-Subsystem |
| 3-Layer Context Compression | ✅ Kap 3.2, 4.3 | Schon drin (wir haben sogar 6 Stufen identifiziert) |
| 40+ Tools | ✅ Kap 3.6 (Tool-Referenz) | Schon drin |
| Telemetrie (Frustration-Tracking) | ❌ | ⚠️ Interessant, aber außerhalb unseres Scope |
| Voice Mode, Web Browser Tool, Daemon, Agent Triggers | ❌ | ✅ Passt zu Kap 6.3 (Nächste Generation) |
Wir beschreiben bisher was wir analysieren, aber nicht wie der Code öffentlich wurde. Ein kurzer Absatz würde den Kontext setzen:
Version 2.1.88 enthielt versehentlich eine Source-Map-Datei (
main.js.map), die den vollständigen Quellcode rekonstruierbar machte. Bun erzeugt diese Dateien standardmäßig; die.npmignoreschloss sie nicht aus. Die Codebasis umfasst ~512.000 Zeilen in ~1.900 Dateien.
KAIROS (persistenter, proaktiver Hintergrund-Agent mit append-only Logs und „Dreaming”-Konsolidierung) passt perfekt zu den offenen Fragen — es zeigt, wohin Anthropic intern denkt:
Der Quellcode enthält Hinweise auf ein internes System namens KAIROS — einen persistenten Agenten, der Beobachtungen in append-only Logs sammelt und nachts in einem „Dreaming”-Prozess konsolidiert. Das Feature ist hinter einem internen Flag verborgen und nicht aktivierbar.
Die Zahl 108 gated modules und die Liste (Voice Mode, Web Browser, Daemon, Agent Triggers) würden Abschnitt 6.3 konkretisieren.
| Thema | Begründung |
|---|---|
| BUDDY | Spaßig, aber architektonisch irrelevant — gehört in einen Blog-Post, nicht in eine technische Analyse |
| Undercover Mode | Politisch brisant, würde den sachlichen Ton der Doku gefährden. Wir dokumentieren Architektur, nicht Firmenethik |
| Telemetrie-Details | Außerhalb unseres Scope (wir analysieren das Harness, nicht die Datenerfassung) |
Soll ich die drei Ergänzungen einbauen? Das wären insgesamt ~15 Zeilen in drei bestehenden Dateien, kein neues Kapitel.
[!NOTE] Prompt: Ja, guter Vorschlag. Baue die drei Ergänzungen bitte ein.
Den letzten Push habe ich schon nachgeholt.
Du kannst also gleich einen neuen Push machen.
Zuerst prüfe ich den aktuellen Stand der drei Dateien:
Created 4 todos
docs/1_Einleitung_%26_Zweck.md, lines 1 to 20docs/6_Ausblick.md, lines 48 to 70docs/6_Ausblick.md, lines 72 to 105Gut, jetzt habe ich den Kontext. Alle drei Edits:
1. Kap 1 — Leak-Hintergrund ergänzen:
2. Kap 6.2 — KAIROS als offene Frage:
3. Kap 6.3 — Feature-Flag-Zahlen und geplante Tools:
Lint prüfen:
docs/1_Einleitung_&_Zweck.md, docs/6_Ausblick.md, no problems foundKeine Lint-Fehler. Commit & Push:
Ran terminal command:
git add docs/1_Einleitung_\&_Zweck.md docs/6_Ausblick.md && git diff --cached --stat
Ran terminal command:
cd ~/Repos/agent-harness-anatomy && git commit -m "docs: Leak-Hintergrund, KAIROS und Feature-Flag-Zahlen ergänzt
5 Dateien — die 2 geänderten + index.md (Pre-commit-Hook) + die 2 vom User zuvor editierten Dateien (z_Entstehungsprotokoll.md, copilot-instructions.md).
Ran terminal command: git push
Completed (2/4) Kap 6.2 — KAIROS erwähnen
Erledigt! Commit 1a1dffc ist gepusht. Zusammenfassung der drei Ergänzungen:
| Datei | Änderung |
|---|---|
| Kap 1.1 | Leak-Mechanismus konkretisiert: Source-Map (main.js.map), Bun-Default, fehlende .npmignore-Regel |
| Kap 6.2 | Neue Zeile in Offene-Fragen-Tabelle: KAIROS — persistenter Hintergrund-Agent mit append-only Logs und „Dreaming”-Konsolidierung |
| Kap 6.3 | Agents-as-Platform um Zahlen ergänzt: 108 gated Module, plus Voice Mode, Web Browser Tool, Daemon Mode, Agent Triggers als konkrete Beispiele |
[!NOTE] Prompt: Wo ich gerade ‘claude-code-2.1.88/’ sehe:
Magst du nochmal scauen, ob da irgendwas drin ist, was für unsere Doku relevant sein könnte?
claude-code-2.1.88/ Ordners<!– ENDE TODO “Diesen Teil aus dem Original-Chat extrahieren” –>
[!NOTE] Prompt: Schaue nochmal, ob unter
claude-code-2.1.88/source/vendor/nix dabei ist, und dann bitte die Ergänzungen einbauen, committen und pushen. 👍
<!– ENDE TODO “Diesen Teil aus dem Original-Chat extrahieren” –>
[!NOTE] Prompt: Ist bei
w_Rust-Projekt_claw-code.mdnoch ein Feinschliff nötig? Vor## 1. …soll ein Teaser stehen bleiben, aber es soll sich auch nicht viel Redundantes wiederholen. Vielleicht müssen sogar die Kapitel neu strukturiert werden. Falls du nicht unsicher bist und mich fragen möchtest, einfach anpassen und pushen, bitte.
claw-code — Einordnung und Abgrenzung<!– ENDE TODO “Diesen Teil aus dem Original-Chat extrahieren” –>