rebreak-monorepo/CLAUDE.md
chahinebrini 2919ce45b8 feat(magic): sync current ReBreak Magic app state
Include recent Magic app work: Tauri native shell, iOS device detection
via supervise-magic sidecar, MDM client, local HTTP server, new pages
(detect, enroll, supervise, sideload, pair, preflight, configure, done),
and updated device section/status UI.
2026-06-18 05:23:26 +02:00

5.5 KiB
Raw Blame History

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.

Agent-Verhaltensregel: Keine eigenmächtigen Code-Änderungen

⚠️ HARTREGEL — vom User explizit verlangt

  • Nie Code schreiben, ändern oder erstellen, nur weil etwas „offensichtlich" erscheint.
  • Keine Implementierung ohne ausdrückliches „Go" des Users.
  • Ausnahme: Der User gibt einen konkreten, knappen und verständlichen Implementierungstask.
  • Vorher sind Fragen, Planen und Recherche erlaubt und gewollt — aber erst nach einem klaren „mach das" wird Code produziert.

Session-Kontext-Limit: Stop & Prompt

⚠️ HARTREGEL — vom User explizit verlangt

Wenn Anzeichen dafür bestehen, dass der Session-Kontext voll läuft oder alte Details verloren gehen (z. B. ich vergesse wiederholt Werte wie hardwareId, UDIDs oder bereits besprochene Fakten), dann:

  1. Sofort stoppen — keine weiteren Code-Änderungen, keine langen Analysen.
  2. Kurzen Status-Block notieren — was wurde besprochen, was steht noch aus, welche Dateien betroffen sind.
  3. Dem User einen einfachen Copy-Paste-Prompt geben, mit dem er die nächste Session nahtlos fortsetzen kann.
  4. Den User bitten, diese Session zu beenden und die neue mit dem Prompt zu starten.

Das verhindert, dass bereits erledigte Arbeit oder wichtige Kontextdetails erneut aufgebaut werden müssen.