Files
buchwerk/README.md
T
team3andClaude Fable 5.1 be19abc065 Archiv: Quellen und Arbeitsdateien fertiger Versionen auf ARCHIV_DIR auslagern (z. B. Storage Box)
Nach jedem fertigen Lauf und beim Start nachholend; QUELLEN.md bleibt. Löschen und Zurücksetzen räumen das Archiv mit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-14 15:31:35 +02:00

1.9 KiB
Raw Blame History

buchwerk

Aus einem Thema (plus optionaler Spezialisierung, die es eingrenzt, und optionalen Hinweisen) entsteht ein deutschsprachiges Sachbuch. Ein Python-Backend steuert Agenten des Claude Agent SDK (Opus 5.5): Recherche und Deutung, Stoffauswahl (was kommt rein, wie tief), Gliederung, Kapitel parallel schreiben, jedes Kapitel durch einen unabhängigen Agenten prüfen, Querverweise abgleichen, Vorwort, Montage (Markdown, README, PDF). Das Buch wird im Browser als Leseansicht gezeigt.

make install     # venv + npm
make build       # Frontend bauen
make run         # http://localhost:8020

Auth lokal: der Agent SDK nutzt den Claude-Code-Login des Rechners (oder ANTHROPIC_API_KEY, falls gesetzt).

Produktion (Docker, Traefik-Netz web, https://buchwerk.marha.de):

cp .env.example .env      # CLAUDE_CODE_OAUTH_TOKEN eintragen (claude setup-token) oder ANTHROPIC_API_KEY
make prod                 # docker compose up -d --build
make logs / make stop

storage/ und .claude-data/ (Sitzungen der CLI) werden als Volumes eingebunden; die Claude-Code-CLI liegt als Binary im SDK, Node wird im Container nicht gebraucht.

Archiv: ist ARCHIV_DIR in .env gesetzt (auf dem Server die Storage Box, Mount mit uid=1000, da der Container als app schreibt), verschiebt backend/archiv.py nach jedem fertigen Lauf quellen/ (außer QUELLEN.md) und arbeit/ der Version dorthin – das sind die Gigabytes an Klonen. Beim Start holt er nach, was fehlt. Ohne Variable bleibt alles in storage/.

Ablauf (backend/pipeline.py): Stufen seriell, innerhalb einer Stufe bis zu PARALLEL Agenten gleichzeitig. Jeder Agent arbeitet im Themenverzeichnis storage/<Thema>/; sein Abschlussbericht landet unter berichte/ und dient als Marker: existiert der Bericht, gilt die Aufgabe als erledigt. Pause bricht laufende Agenten ab, „Fortsetzen“ wiederholt nur, was noch fehlt. Prompts liegen in prompts/, Schnittstelle in API.md.