Hooks de la couche IA
This content is not available in your language yet.
Les hooks vivent dans core/_ai/hooks/ (Python 3, testés par bun run test:hooks) et sont déclarés dans core/_ai/settings.json, fusionné dans .claude/settings.json de l’app. Leurs messages sont courts : ils coûtent peu de tokens à l’agent.
| Hook | Événement | Effet |
|---|---|---|
daroms-sync.py |
SessionStart | copie core/_ai vers .claude/ (fichiers daroms-* seulement), fusionne settings.json, régénère catalogue et digest ; silencieux si tout est à jour |
daroms-context.py build |
SessionStart | indexe les zones : features de l’app, modules actifs, zones apprises (*-zones.json) |
daroms-context.py route |
UserPromptSubmit | indique la zone probable de la demande (fichiers à lire) ; silencieux si incertain |
daroms-check-rules.py |
PreToolUse Edit, Write, MultiEdit | refuse une écriture qui viole une règle, avec la correction attendue |
daroms-typecheck.py |
PostToolUse Edit, Write, MultiEdit | tsc incrémental et ESLint limités au fichier touché, 20 lignes au plus |
daroms-deny-env.py |
PreToolUse Bash | bloque toute lecture de .env (en plus des permissions deny sur Read et Edit) |
daroms-session-stats.py |
Stop | tokens et durée de la session dans .claude/stats.jsonl ; alerte affichée à l’utilisateur (hors contexte de Claude) quand le contexte relu à chaque réponse dépasse 150 k tokens, puis tous les 60 k ; seuil DAROMS_CONTEXT_WARN en milliers, 0 coupe |
Ce que refuse daroms-check-rules
Section intitulée « Ce que refuse daroms-check-rules »Sur le contenu proposé (nouveau texte uniquement) :
- couleur hex ou
rgb()/hsl(): utiliser un token (bg="card",color="color-11",brand-500) ; StyleSheet.create, style inline, nombre magique de style (p={14}) :p="4",gap="stack",rounded="card";any: typer précisément (unknown+ zod si besoin) ;- import de Supabase,
db,getSupabaseoulocalTablehorsapi.ts; - texte en dur dans le JSX :
t('cle')+ clés FR/EN ; - emoji ou tiret long dans un texte ;
- librairie UI ou jeu d’icônes tiers ;
- route
app/**qui ne se limite pas à une réexportation ; - fichier de plus de 200 lignes.
Exemple de refus :
daroms-check-rules refuse src/features/books/BooksScreen.tsx :- couleur hex : utiliser un token (bg="card", color="color-11", brand-500)Corriger puis réécrire (voir CATALOG.md pour les tokens).Un refus se corrige, il ne se contourne pas. daroms doctor lance le même contrôle sur tout src/, app/ et locales/ (--all). Liste complète des règles : Règles.
Tester le routeur de contexte
Section intitulée « Tester le routeur de contexte »python3 .claude/hooks/daroms-context.py test "écran profil"/daroms-learn enrichit les zones en fin de tâche (.claude/context/app-zones.json pour l’app, core/_ai/context/daroms-zones.json pour le cœur).