rebreak-monorepo/CLAUDE.md
chahinebrini 6937ff155f docs(claude): Git-Hook (post-commit) als Auto-Update-Mechanismus dokumentiert
Schliesst die Stale-Luecke bei fremden Sessions (VS Code etc.): graphify hook
rebuildet den Graph nach jedem Commit/Branch-Wechsel. Hook ist pro Maschine/Clone.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 13:30:35 +02:00

67 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLAUDE.md — rebreak-monorepo
> Projekt-Stub. Bei Bedarf mit `/init` um eine vollständige Codebase-Übersicht erweitern.
## graphify (Knowledge-Graph)
> ### ⚠️ HARTREGEL — automatisch, ohne dass der User es je erwähnen muss
>
> 1. **Memory/Kontext = Graph-FIRST, immer.** Bei JEDER Frage zu Code, Architektur,
> Modulen oder Traceability ZUERST `graph.json` abfragen (per CLI/Python-Script,
> kompakte Ausgabe) und daraus die relevanten Dateien/Symbole bestimmen — DANN gezielt
> nur diese 12 Dateien lesen. **Nie** blind grep-en oder breit lesen, wenn der Graph
> die Antwort eingrenzen kann. Der User sagt „nutze graphify" NIE explizit — es ist Default.
> 2. **Wartung = Graph-Update, automatisch.** Nach Code-Änderungen in einer Session
> proaktiv `/graphify --update` laufen lassen (Code-only = gratis) und `graph.json` +
> `manifest.json` mit-committen, wenn die übrigen Änderungen committet werden — ohne
> Aufforderung. **Git-Hook aktiv:** ein `post-commit`/`post-checkout`-Hook rebuildet den
> Graph nach JEDEM Commit/Branch-Wechsel im Hintergrund (AST, gratis) — auch aus VS Code
> o. ä. Folge: `graph.json` ist danach „modified" → beim nächsten Commit mitnehmen.
> Notbremse: `GRAPHIFY_SKIP_HOOK=1 git commit …`.
> ⚠️ Hook lebt in `.git/hooks/` (nicht in Git) → **pro Maschine/Clone**; auf neuer
> Maschine einmalig `graphify hook install`.
> 3. **Nie** `graph.json` / `GRAPH_REPORT.md` ganz in den Kontext laden — immer Query/Script.
Ein persistenter graphify-Wissensgraph liegt unter **`graphify-out/graph.json`**
(14.350 Knoten / ~19.340 Kanten inkl. 27 Traceability-Kanten, Stand 2026-06-10) und ist
im Repo getrackt (Scratch/Cache via `.gitignore` ausgeschlossen).
**Wann konsultieren:** Bei Fragen zu Codebase-Struktur, Architektur, „was ruft X / wo
ist Y", Cross-Modul-Bezügen oder DiGA-Traceability **zuerst den Graphen nutzen**, statt
das Monorepo blind zu durchsuchen.
**⚠️ Token-Disziplin (der eigentliche Zweck):** `graph.json` ist ~13 MB. **NIEMALS
`graph.json` (oder `GRAPH_REPORT.md`) ganz in den Kontext lesen** — das verbrennt mehr
Tokens als es spart. Immer nur per **CLI/Python-Script** abfragen, sodass nur eine
kompakte Antwort ins Kontext-Fenster kommt. Wird diese Regel verletzt, ist der Graph ein
Token-Loch statt -Sparer.
**Wie abfragen:**
- Einfache „wo ist X / was ruft Y"-Fragen → `graphify query "<frage>"` (BFS, kompakte Ausgabe).
- **Tiefe Architektur-/Traceability-Traces** → kleines Python-Script das `graph.json`
von der Platte liest und nur das Ergebnis printet (Adjazenz + shortest-path). Die
Substring-BFS von `graphify query` verheddert sich an i18n-Locale-Keys; für präzise
Pfade ist der gezielte Walk verlässlicher.
- **Graph-FIRST für jede Codebase-Frage** — das ist der Token-Spar-Mechanismus: Der
Graph nennt dir kompakt die beteiligten Dateien/Symbole/Pfade, **dann liest du gezielt
nur die 12 relevanten Dateien** statt das Repo zu grep-en oder breit zu lesen. Auch bei
Logikfragen: erst Graph fragen (welche Dateien?), dann nur die lesen. So wird aus „10
Dateien lesen" → „Graph-Query + 1 Datei lesen".
**Nach Code-Änderungen / neuen Features:** `/graphify --update`. **Nur-Code-Änderungen
sind GRATIS** (AST, kein LLM — die Skill erkennt das automatisch). **Doc-/Bild-Änderungen
kosten LLM-Tokens** → nur ausführen wenn man die Doc-Inhalte wirklich im Graph braucht.
Wenn das Ziel reine Token-Ersparnis ist: Updates code-only halten.
**Aktueller Scope & Grenzen (ehrlich):**
- **Code-Struktur: vollständig** (AST über `backend/` + `apps/rebreak-native/`).
- **Doc↔Code-Brücken: spärlich** — nur der **Lyra-/Krisen-Strang** ist verdrahtet
(12 `traceability:true`-Kanten, gespiegelt in `docs/specs/diga/05d-traceability-matrix-v0.md`).
Andere DiGA-Stränge (Schutz/Blocker `REQ-PROT`, Mail `REQ-MAIL`, Anonymität) sind
**noch nicht** Code-verknüpft → manuell verdrahten wie beim Lyra-Strang (`05d §4`).
- **Bilder (184) + 1 Video bewusst übersprungen** — stehen beim nächsten `--update`
wieder als „neu" an.
**graphify-eigene memory:** `graphify-out/memory/` hält gespeicherte Query-Antworten
(z. B. den Lyra-Traceability-Trace) und fließt beim `--update` zurück in den Graphen.