--- title: "Hook: Audit Logger" type: hook hook_type: PreToolUse matcher: ".*" version: 1.0 created: 2026-04-16 updated: 2026-04-16 owner: jerem agent: DAEMON status: active summary: Logge chaque action DAEMON dans un audit trail structuré. Traçabilité sans surveillance. tags: - hook - audit - observabilite related: - "[[_adn/memory/cron-logs]]" - "[[_adn/matrice-autonomie]]" --- # Audit Logger > Hook PreToolUse — se déclenche sur **toutes les actions** (`.*`). --- ## Principe Chaque outil appelé par DAEMON est loggé dans [[_adn/memory/cron-logs]]. L'objectif n'est pas la surveillance, c'est la traçabilité : pouvoir retracer ce qui s'est passé, débugger un comportement inattendu, et mesurer la consommation de tokens. --- ## Ce qui est loggé Chaque entrée contient : | Champ | Exemple | |---|---| | `date` | `2026-04-16T09:32:14Z` | | `tool` | `mcp__obsidian__write_note` | | `status` | `success` ou `error` | | `duration_ms` | `1230` | | `tokens_in` | `450` | | `tokens_out` | `120` | | `context` | Nom de la routine ou skill appelante | --- ## Ce qui n'est PAS loggé Jamais, sous aucun prétexte : - Clés API, tokens d'authentification, mots de passe - Contenu des emails ou DMs - Données personnelles brutes (adresses, numéros, etc.) - Corps complets des requêtes HTTP - Contenus de notes privées (journal, introspection) Si un champ contient de la donnée sensible, le logger écrit `[REDACTED]` à la place. --- ## Output Append dans `_adn/memory/cron-logs.md`, format ligne structurée : ``` | 2026-04-16T09:32:14Z | mcp__obsidian__write_note | success | 1230ms | 450/120 tokens | routine: quotidienne | ``` --- ## Comportement 1. Se déclenche **avant** l'exécution de l'outil (PreToolUse) 2. Enregistre l'intention + horodatage 3. Après exécution, complète avec statut + durée + tokens 4. N'interfère jamais avec l'exécution elle-même (log-only, jamais de deny)