deamon-vault/_adn/hooks/audit-logger.md
2026-04-17 16:54:34 +02:00

80 lines
1.9 KiB
Markdown

---
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)