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