# System-Architektur Wie die Werk-Bausteine zusammenarbeiten: von der Planung über Code, Build und Review bis zur Auswertung. Werkregie ist noch nicht gebaut; heute übernimmt der Mensch ihre Rolle, daher sind ihre Kanten gestrichelt. ```mermaid %%{init: {"theme": "base", "themeVariables": {"background": "#ffffff", "mainBkg": "#ffffff", "primaryColor": "#ffffff", "primaryBorderColor": "#bdbdbd", "primaryTextColor": "#2b2b2b", "clusterBkg": "#f7f7f7", "clusterBorder": "#d0d0d0", "lineColor": "#8a8a8a", "edgeLabelBackground": "#ffffff", "fontFamily": "IBM Plex Sans, sans-serif"}}}%% flowchart LR classDef mensch fill:#f4e3c1,stroke:#8a6d1e,color:#2b2b2b classDef agent fill:#dfeee0,stroke:#2e7d32,color:#2b2b2b classDef planung fill:#d6e4f0,stroke:#1f5f8b,color:#2b2b2b classDef regie fill:#fde9d9,stroke:#b5541c,stroke-dasharray:5 3,color:#2b2b2b classDef werkator fill:#e4eef3,stroke:#0e6b7d,color:#2b2b2b classDef review fill:#e8ddf1,stroke:#6a3d9a,color:#2b2b2b classDef gitea fill:#fbfbfb,stroke:#b8b2a6,color:#2b2b2b classDef extern fill:#ffffff,stroke:#9e9e9e,stroke-dasharray:2 2,color:#2b2b2b classDef werkzeug fill:#fff8d6,stroke:#9a7b00,color:#2b2b2b M(["Mensch
Entwickler und Freigeber"]):::mensch subgraph WS["Arbeitsplatz"] CC["Claude Code
Coding-Agent"]:::agent WBF[".werkbaum-Dateien
im Repository"]:::planung end subgraph PLAN["Planung"] WB["Werkbaum
Planungswerkzeug:
Notation und Live-Editor
werkbaum.javagil.de"]:::planung end subgraph STEUER["Steuerung – geplant"] WR["Werkregie
Dashboard und Controller:
startet Agenten, liest Status,
bündelt Kosten und Freigaben"]:::regie end subgraph FORGE["Gitea – git.javagil.de, dev.hostsharing.net"] REPO[("Repositories
Branches, Pull-Requests")]:::gitea PRS["PR-Status, Reviews,
Branch-Schutz:
Prüfungen grün + 1 Approval"]:::gitea end GH["GitHub
öffentlicher Spiegel"]:::extern subgraph HOST["Hostsharing Managed Webspace"] subgraph WKT["Werkator – CI/CD"] WK["Werkator-Dienst
Polling, Build-Definitionen,
Web-Oberfläche"]:::werkator WD["Werkdock
Sandbox über bwrap, ohne root;
Docker-Engine-API für Testcontainers"]:::werkator BUILD["Builds je Branch
Gradle, Tests, Werkcrappit"]:::werkator AIR["werkrevisor-CLI
als Build ai-review
im werkrevisor-Rootfs"]:::review end subgraph WRS["werkrevisor-Dienst"] STATS["Statistik-Dienst
Spring Boot, SQLite
werkrevisor.javagil.de"]:::review DASH["Dashboard
Web Component
werkrevisor-dashboard"]:::review end end subgraph EXT["Externe Dienste"] OR["OpenRouter
LLM, z. B. Claude Sonnet"]:::extern JEV["TypeSafe Jev
Klassifikator und Finding-Richter"]:::extern end CRAP["Werkcrappit
Mutation-CRAP-Metrik,
Gradle- und PIT-Plugin"]:::werkzeug PROBE["Werkprobe
Testcontainers-Arbeitsprobe
für Werkdock"]:::werkzeug %% Planung und Code M -- "plant im Dialog" --> WB WB -- "Notation" --- WBF M -- "beauftragt, prüft" --> CC CC -- "liest Plan, setzt Status" --> WBF CC -- "push, WIP-PR,
WIP entfernen wenn fertig" --> REPO REPO -. "Spiegel" .-> GH %% Build WK -- "pollt Branches und PRs" --> REPO WK -- "startet" --> BUILD WK -- "startet" --> AIR BUILD -- "läuft in" --> WD AIR -- "läuft in" --> WD CRAP -. "Plugin im Build" .-> BUILD PROBE -. "prüft" .-> WD WK -- "Commit-Status werkator" --> PRS %% Review AIR -- "Diff, PR-Doc, Kontext" --> OR AIR -- "Fragen an Szenarien,
Findings, Changesets" --> JEV AIR -- "Ergebnis-Kommentar,
Zeilenkommentare,
Approval, Merge planen" --> PRS PRS -- "Merge, wenn grün
und freigegeben" --> REPO M -- "Approval bei
YELLOW oder ORANGE" --> PRS %% Auswertung AIR -- "Usage-Record
Kosten, Tokens, Verdikt" --> STATS STATS --> DASH DASH -. "eingebettet, später" .-> WK DASH -. "eingebettet" .-> WR %% Steuerung WR -. "liest und schreibt Plan" .-> WBF WR -. "startet und überwacht" .-> CC WR -. "liest Build-Status" .-> WK WR -. "liest PRs, Freigaben" .-> PRS M -. "steuert über" .-> WR ``` ## Bausteine | Baustein | Rolle | |---|---| | Werkbaum | Planung als Textnotation mit Und/Oder-Zerlegung; die `.werkbaum`-Dateien liegen im jeweiligen Repository. | | Claude Code | Coding-Agent am Arbeitsplatz; legt Pull-Requests als WIP an und entfernt WIP, wenn implementiert, getestet und dokumentiert. | | Gitea | Quelle der Wahrheit für Code, Pull-Requests, Status-Prüfungen und Branch-Schutz; GitHub ist nur Spiegel. | | Werkator | Leichtgewichtiges CI/CD auf dem Managed Webspace; baut jeden Branch und Pull-Request und meldet den Status an Gitea. | | Werkdock | Sandbox über `bwrap` ohne root, kompatibel zur Docker-Engine-API, soweit Testcontainers sie braucht. | | werkrevisor | KI-Review als Werkator-Build: Regeln, LLM über OpenRouter und Jev über TypeSafe; gibt frei und plant den Merge. | | werkrevisor-Dienst | Sammelt Kosten und Tokens aller Reviews und zeigt sie als einbettbares Dashboard. | | Werkcrappit | Mutation-CRAP-Metrik als Gradle- und PIT-Plugin, im Build eines Projekts. | | Werkprobe | Arbeitsprobe, die belegt, dass Testcontainers gegen Werkdock läuft. | | Werkregie | Geplant: Dashboard und Controller, der Agenten startet, Status aus Werkator und Gitea liest und das werkrevisor-Dashboard einbettet. |