Communitygithub.com

aryashreep/ctx-audit

Auditez les fichiers de contexte IA (AGENTS.md, memory.md) pour leur fraîcheur et leur coût en tokens. Zéro dépendance, fonctionne en CLI, en tant qu'action GitHub et compétence Claude Code.

Qu'est-ce que ctx-audit ?

Cette compétence audit les fichiers de contexte IA persistants (AGENTS.md, memory.md, .agent/graph.md) pour vérifier leur fraîcheur et leur coût en tokens. Elle est utile car les agents IA peuvent perdre du temps à re-découvrir les conventions d'un projet à chaque session ; en maintenant ces fichiers à jour, on améliore l'efficacité et la fiabilité. La compétence fonctionne comme CLI via npx ctx-audit, comme GitHub Action (intégration CI), et comme compétence Claude Code (installation dans ~/.claude/skills/ et inscription dans CLAUDE.md). Elle détecte les fichiers obsolètes, manquants, trop volumineux ou avec des chemins morts, et propose des actions correctives comme le scaffolding de modèles, l'installation de hooks git, ou la génération de rapports de gain en tokens. L'audit utilise une table de décision avec des statuts comme FRESH, STALE?, STALE!, MISSING, over budget, etc., chacun avec une action recommandée claire.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add aryashreep/ctx-audit

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Audit de Contexte

Les dépôts qui adoptent cette convention maintiennent un petit ensemble de fichiers persistants afin que les agents n'aient pas à redécouvrir les mêmes choses à chaque session : quelles sont les conventions du projet (AGENTS.md), ce qui a déjà été décidé et pourquoi (memory.md), et approximativement comment la base de code est organisée (.agent/graph.md). Cette compétence vérifie si ces fichiers existent et sont à jour avant que vous vous y fiiez ou avant de revenir à une exploration manuelle du dépôt.

Expressions déclencheurs

Début de session / vérification de confiance

  • "mets-moi à jour sur ce dépôt"
  • "que sais-tu de ce projet"
  • "puis-je faire confiance à AGENTS.md / memory.md"
  • "les fichiers de contexte sont-ils à jour"
  • "vérifier le contexte" / "audit de contexte"

Obsolescence

  • "AGENTS.md est-il obsolète" / "memory.md est-il obsolète"
  • "combien de commits depuis la dernière synchronisation"
  • "mes fichiers agent sont-ils à jour"
  • "vérifier si le contexte est obsolète"

Coût en tokens

  • "combien les fichiers de contexte économisent-ils"
  • "économies de tokens" / "coût du contexte"
  • "benchmark des économies de tokens"
  • "tokens de base vs tokens curés"

Configuration / intégration

  • "scaffolder AGENTS.md" / "initialiser le contexte"
  • "installer ctx-audit" / "brancher le hook de contexte"
  • "configurer le contexte IA" / "ce projet est-il prêt pour l'IA"

CI / automatisation

  • "ajouter ctx-audit à la CI"
  • "ajouter un hook pre-push"
  • "appliquer la fraîcheur du contexte dans la CI"

Architecture

  • "ai-je une carte d'architecture"
  • "générer graph.md" / "exécuter graphify"

Comment exécuter

La méthode recommandée pour exécuter ctx-audit :

npx ctx-audit

Sinon, si installé en tant que compétence :

node <chemin-vers-ce-dossier-de-compétence>/../scripts/audit.mjs

Options :

  • --json — sortie lisible par machine (utilisez ceci si vous comptez agir sur le résultat de manière programmatique).
  • --strict — code de sortie 1 si quoi que ce soit manque ou est obsolète.
  • --ci — alias pour --strict --json.
  • --help — affiche l'utilisation et quitte.

Sous-commandes

# Scaffolder AGENTS.md + memory.md (interactif — écrit les fichiers directement à la racine du dépôt)
npx ctx-audit init

# Installation en une commande : copie la compétence dans ~/.claude/skills/, l'enregistre dans CLAUDE.md
npx ctx-audit install

# Hook git : exécute un audit --strict à chaque push
npx ctx-audit hook install
npx ctx-audit hook status
npx ctx-audit hook uninstall

# CLAUDE.md du projet : ajoute un bloc d'instructions pour les agents
npx ctx-audit claude install
npx ctx-audit claude uninstall

# Rapport d'économies de tokens (format ciblé et partageable)
npx ctx-audit benchmark

Table de décision pour l'agent

StatutSignificationAction
FRAISMoins de la moitié du seuil d'obsolescence en commits depuis la dernière synchroFaites confiance au fichier — lisez-le plutôt que de parcourir le code source brut
OBSOLÈTE ?Approche du seuil (peut-être obsolète)Prudence modérée — vérifiez ponctuellement les affirmations critiques avant de vous y fier
OBSOLÈTE !Dépassement du seuil, considéré comme un échecConsidérez les affirmations comme non vérifiées ; vérifiez ponctuellement par rapport au code réel ; mettez à jour après la session
OBSOLÈTESignificativement en retard, considéré comme un échecIdentique à OBSOLÈTE ! mais plus urgent ; mettez à jour immédiatement après la session
MANQUANT (obligatoire)Le fichier n'existe pasExécutez npx ctx-audit init ; ne procédez pas comme si la convention était en place
absent (optionnel)Fichier optionnel non présentAcceptable ; envisagez d'exécuter /graphify pour générer graph.md
hors budgetLe nombre de tokens dépasse maxTokensLe fichier est gonflé — réduisez-le ; le lire pourrait coûter plus cher que ce qu'il économise
référence morteUn chemin entre accents graves ou dir/fichier.ext mentionné dans le fichier n'existe pas sur le disqueMettez à jour la référence ; le fichier documente une structure obsolète
SHA modifiélast_synced_commit mis à jour mais le corps inchangéVérifiez si le fichier reflète réellement les changements récents ; peut être une mise à jour mécanique

Interprétation des résultats

  • MANQUANT (fichier obligatoire) : ne procédez pas comme si la convention était en place. Proposez de scaffolder un fichier de démarrage (exécutez npx ctx-audit init) plutôt que de travailler sans fichier ou de revenir silencieusement à l'ancienne méthode "tout explorer manuellement".
  • FRAIS : le fichier est à jour. Lisez-le plutôt que de parcourir le code source brut.
  • OBSOLÈTE ? (peut-être obsolète) : approche du seuil. Vérifiez ponctuellement les affirmations critiques.
  • OBSOLÈTE ! (probablement obsolète) : considérez ses affirmations comme non vérifiées. Vérifiez ponctuellement toute information cruciale par rapport au code réel, et après votre session, mettez à jour le fichier et son last_synced_commit.
  • OBSOLÈTE : significativement en retard. Même traitement que OBSOLÈTE ! mais plus urgent.
  • Les comptages de tokens sont une heuristique d'environ 3,5 caractères/token — utiles pour l'orientation, pas exacts. Si un fichier est signalé "hors budget", il est devenu suffisamment gonflé pour que le lire commence à coûter ce qu'il était censé économiser ; suggérez de le réduire.
  • Avertissements de référence morte : chemins mentionnés dans les fichiers de contexte qui n'existent plus sur le disque. Indique que le fichier référence une structure obsolète.

Exemples concrets

Audit de base en début de session :

npx ctx-audit

Barrière CI (échouer la construction si le contexte est obsolète) :

# .github/workflows/ctx-audit.yml
- name: Audit de la fraîcheur du contexte
  run: npx ctx-audit --strict

Sortie JSON pour utilisation programmatique :

npx ctx-audit --json | jq '.checks[] | {file, stalenessLevel, stale}'

Intégration en une commande :

npx ctx-audit install        # copie la compétence, l'enregistre dans CLAUDE.md
npx ctx-audit hook install   # ajoute une garde pre-push
npx ctx-audit claude install # ajoute une note au CLAUDE.md du projet
npx ctx-audit init           # génère les modèles AGENTS.md + memory.md

Vérifier l'obsolescence d'un sous-système spécifique (via le frontmatter) :

---
last_synced_commit: abc1234
watches: src/auth/**, src/api/**
---

Seuls les commits touchant src/auth/ ou src/api/ comptent pour l'obsolescence de ce fichier.

Benchmark des économies de tokens :

npx ctx-audit benchmark

Configuration

Placez .ctx-audit.json à la racine du dépôt pour personnaliser le comportement :

{
  "files": [{ "id": "...", "file": "...", "label": "...", "maxTokens": N, "required": true }],
  "sourceDirs": ["src", "packages/core"],
  "staleThreshold": 10,
  "baselineFileCap": 300
}

Frontmatter

Chaque fichier de contexte doit commencer par un frontmatter :

---
last_synced_commit: <sha git>
watches: src/auth/**, src/api/**
---

Le champ watches (optionnel) limite les vérifications d'obsolescence aux seuls commits touchant ces chemins, au lieu de tous les répertoires sources.

Si des fichiers obligatoires manquent — générez-les

Exécutez npx ctx-audit init pour générer des modèles. Dans un terminal TTY, il écrit les fichiers directement à la racine du dépôt ; en cas de redirection, il les affiche sur la sortie standard. L'option --init héritée est toujours prise en charge comme alias rétrocompatible.

AGENTS.md — conventions stables du projet : commandes de construction/test/lint, règles d'organisation des fichiers, choses que l'agent ne doit jamais faire. Devrait changer rarement.

memory.md — un journal des décisions, pas une reformulation du code actuel. Chaque entrée : ce qui a été essayé, ce qui a été décidé, pourquoi, et quoi reconsidérer si les circonstances changent. Ajoutez, ne réécrivez pas l'historique.

.agent/graph.md (optionnel mais recommandé une fois que le dépôt grandit) — un paragraphe par module principal décrivant sa responsabilité et avec quoi il communique. Pas le contenu des fichiers, pas un arbre exhaustif — juste assez pour qu'un agent puisse naviguer sans tout relire. Astuce : exécutez /graphify pour le générer automatiquement à partir de la base de code au lieu de l'écrire à la main.

Après avoir créé ou mis à jour l'un de ces fichiers, mettez à jour son last_synced_commit avec le HEAD actuel afin que le prochain audit ne le signale pas immédiatement comme obsolète.

Skills associés