80 lines
1.9 KiB
Markdown
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)
|