Skip to main content
Fonctionnalité bêta. L’audit est disponible en bêta pendant la collecte des premiers retours. Le catalogue de détecteurs et le format du rapport peuvent évoluer avant la prochaine version stable. N’hésitez pas à ouvrir une issue si quelque chose vous semble incorrect.
L’audit est désormais accessible via la page du tableau de bord /audit, et non comme sous-commande CLI. Ouvrez-la depuis la barre de navigation du tableau de bord (entre Policies et Projects), ou accédez directement à http://localhost:8020/audit lorsque vous exécutez failproofai en local.
failproofai          # open the dashboard, then click "Audit"
Le tableau de bord analyse les transcriptions passées de l’agent CLI sur cette machine (Claude Code, Codex, Copilot, Cursor, OpenCode, Pi, Gemini) et indique la fréquence à laquelle l’agent a effectué des actions que failproofai est conçu pour bloquer — vérifications de variables d’environnement, force pushes, préfixes cd <cwd> redondants, boucles sleep-polling, re-lecture de fichiers récemment modifiés, et bien d’autres. Pour chaque transcription, chaque événement d’utilisation d’outil est rejoué à travers les 39 politiques intégrées et à travers 8 détecteurs réservés à l’audit, qui repèrent des patterns non encore couverts par les politiques en temps réel. Les occurrences sont agrégées par politique / détecteur sur l’ensemble des sessions.

Ce que vous obtenez

La page /audit se compose de six sections :
  1. Identité — votre agent est classifié dans l’un des 8 archétypes (optimist, cowboy, explorer, goldfish, paranoid architect, precision builder, hammer, ghost) en fonction du signal pondéré issu de toutes les transcriptions auditées.
  2. Points forts — chiffres concrets issus de l’analyse (pourcentage d’appels propres, « 0 fuite de credentials », etc.) conditionnés à l’activation effective des politiques sanitize concernées.
  3. Score — de 0 à 100 avec les niveaux S/A/B/C/D/F et une projection de l’amélioration si toutes les politiques recommandées étaient activées.
  4. Résultats — fiches par politique indiquant ce qui s’est passé, le coût, les preuves collectées, et la commande exacte failproofai policy add <slug> pour activer le builtin en temps réel qui l’aurait intercepté.
  5. Politiques prescrites — liste d’installation agrégée avec une commande failproofai policies --install en une seule fois.
  6. Rappel de ré-audit — « revenez amélioré. » Programmez un rappel par e-mail dans 7 jours via l’api-server (connexion requise ; voir failproofai auth).

Détecteurs réservés à l’audit

Ces détecteurs repèrent des patterns de « comportement inutile » qui ne sont pas (encore) appliqués en temps réel. Ils ne s’exécutent que lors de l’audit et ne bloquent jamais un appel d’outil en direct.
DétecteurCe qu’il compte
redundant-cd-cwdCommandes Bash commençant par cd <cwd> && … alors que les commandes s’exécutent déjà dans cwd.
prefer-edit-over-read-catcat/head/tail/less/more sur un seul fichier source — utilisez l’outil Read.
prefer-edit-over-sed-awkModifications en place avec sed -i / awk … > file — utilisez l’outil Edit.
prefer-write-over-heredocÉcriture de fichiers via heredoc / echo > file multiligne — utilisez l’outil Write.
sleep-polling-loopsleep N de longue durée (≥ 30s) ou boucles de polling while …; sleep …; done.
find-from-rootfind /, find /home, find /usr, etc. — limitez la portée à cwd.
git-commit-no-verifygit commit … --no-verify / -n, contournant les hooks.
reread-after-editRead d’un fichier qui vient d’être modifié via Edit/Write dans la même session.

Caches

  • Cache par transcription dans ~/.failproofai/cache/audit/<sha1>.json, indexé par (mtime, size, engineVersion, detectorVersion) — invalidé automatiquement lorsque la transcription ou le code des politiques/détecteurs change. Chaque entrée stocke également un horodatage cachedAt comme métadonnée TTL (ne faisant pas partie de la clé de cache) ; les entrées de plus de 7 jours sont rejetées à la lecture afin que les résultats anciens ne survivent pas à l’évolution des détecteurs.
  • Cache du résultat global dans ~/.failproofai/audit-dashboard.json (mode 0600). Permet au tableau de bord de s’afficher instantanément lors de la navigation sans relancer l’analyse. Également rejeté à la lecture après la TTL de 7 jours/audit bascule alors vers son état vide et invite à relancer une analyse. Cliquez sur [ re-audit now ] en bas du rapport pour actualiser — le ré-audit envoie noCache: true, ce qui contourne le cache par transcription et réanalyse toutes les transcriptions au lieu de retourner le résultat mis en cache ; l’exécution diffuse la progression via une bandeaux fixe en haut et remplace le résultat en place en cas de succès (sans rechargement de page ; un ré-audit échoué conserve le rapport précédent).

Remarques

  • Aucune mutation. L’audit s’exécute en mode lecture seule. warn-repeated-tool-calls est ignoré car son sidecar de session serait sinon modifié.
  • Politiques de workflow ignorées. Les politiques require-*-before-stop ne se déclenchent que sur les événements Stop et s’exécutent via execSync sur l’état git en direct — elles n’ont pas d’interprétation pertinente pour « ce qui se serait passé en 2025 » et n’apparaissent donc pas dans les comptages d’audit.
  • Politiques personnalisées ignorées. Les hooks personnalisés fournis par l’utilisateur ne sont pas rejoués (ils peuvent avoir changé depuis la session d’origine).