洁癖.skill
Faites en sorte que les agents IA ne jonchent plus votre dépôt avec
plan.md,todo.md,summary.mdet autres artefacts jetables. Ne laissez pas l'agent IA transformer la racine de votre projet en décharge Markdown.
Ceci n'est pas un suppresseur de Markdown. Ce skill régit l'environnement local dans lequel les agents travaillent : artefacts du dépôt, caches de l'espace de travail, stockage WSL2/Docker, caches des gestionnaires de paquets, caches de modèles et état des agents/IDE.
Un fichier ou un cache n'est pas un déchet simplement parce qu'il est volumineux. Il devient un risque d'hygiène lorsqu'il n'a ni intention, ni propriétaire, ni lecteur, ni cycle de vie, ni voie de récupération. L'objectif n'est pas de supprimer agressivement, mais de garantir que chaque artefact, chaque cache et chaque empreinte de l'environnement local a un objectif, une place et une action suivante sûre.
1. Modèle d'hygiène
Utilisez un modèle à trois couches :
| Couche | Périmètre | Exemples | Action par défaut |
|---|---|---|---|
| Dépôt | Artefacts créés par l'agent | plan.md, todo.md, .agent_tmp/, .agent_reports/ | classer, signaler, nettoyage DryRun |
| Espace de travail | Caches de développement entre projets | node_modules, .venv, target, caches de compilation | auditer, noter, recommander |
| Machine locale | Chaînes d'outils et environnements virtualisés | WSL2, Docker Desktop, caches de paquets, caches de modèles, état des agents/IDE | cartographie en lecture seule, compartiment à risques, conseils manuels |
Les rapports doivent séparer :
Constatations— faits observés localement.Suggestions sûres— étapes suivantes à faible risque comme exécuter DryRun ou déplacer les futurs rapports dans.agent_reports/.Opérations manuelles / risquées— migration, compactage VHDX, déplacement des données Docker, déplacement des caches de modèles ou modifications de configuration. Ne jamais les effectuer automatiquement.
2. Quand utiliser ce skill
Invoquez ce skill lorsque l'utilisateur demande :
| Déclencheur | Exemples |
|---|---|
| Trier / organiser | "organiser mon projet", "nettoyer ce dépôt" |
| Générer des artefacts | "créer un plan", "générer un rapport", "résumer", "auditer" |
| Auditer | "auditer les fichiers du projet", "analyser les artefacts des agents", "lister les fichiers suspects" |
| Nettoyer | "nettoyer les fichiers temporaires de l'agent", "supprimer les fichiers temporaires" |
| Décider | "faut-il créer ce fichier ou le garder dans le chat ?" |
| Noter | "évaluation de l'hygiène du dépôt" |
| Audit de l'espace de travail | "auditer mon espace de travail", "identifier les artefacts des agents dans plusieurs dépôts" |
| Audit de l'environnement local | "inspecter l'environnement local de l'agent", "où sont mes caches de développement ?" |
| Créer des règles | "créer AGENTS.md / CLAUDE.md / Cursor Rules" |
| Fin de tâche | Vérification d'hygiène avant de quitter |
| Pollution | "plusieurs agents écrivent des fichiers en désordre", "la racine du projet est en désordre de markdown" |
| Plainte | "ne génère pas de documents inutiles", "nettoie plan.md / todo.md" |
| Inspection de l'environnement | "inspecte mon environnement de codage", "où est installé node/python/go ?" |
| Croissance du disque | "pourquoi mon disque C grossit-il ?", "trouve les caches de paquets/modèles" |
| WSL2 / Docker | "WSL2 prend trop de place", "le disque Docker Desktop est énorme", "où est ext4.vhdx ?" |
| Caches de modèles | "modèles Ollama/Hugging Face sur le disque C", "audit du cache de modèles IA" |
| État de l'agent | "emplacements de l'état de Claude/Codex/Cursor", "empreinte du cache/configuration de l'agent" |
3. Quand NE PAS utiliser ce skill (Jamais)
Arrêtez-vous et demandez à l'utilisateur ou évitez strictement si la demande implique :
- La suppression de la documentation formelle du projet
- La modification de notes écrites par l'utilisateur
- Le nettoyage du code source (
src/,lib/,app/) - La manipulation des répertoires d'état des outils (
.codex/,.claude/,.cursor/,.vscode/,*.sqlite,state.json,session.json,workspaceStorage,globalStorage,auth-token) - La suppression massive de Markdown non confirmée
- La suppression forcée de fichiers suivis par Git
- Le nettoyage de Markdown inconnu dans les dossiers personnels/utilisateurs
- La modification des paramètres système ou du registre
- L'enregistrement de tâches planifiées
- Le téléchargement de journaux, rapports, identifiants ou données d'environnement
- L'analyse de l'ordinateur entier sans périmètre racine explicite spécifié par l'utilisateur
- La lecture de jetons d'authentification, fichiers de session, bases de données SQLite ou journaux privés
- La suppression des caches d'outils ou de modèles juste parce qu'ils sont volumineux
- Le déplacement d'outils ou la réécriture de variables d'environnement sans demande de migration explicite distincte
- Le compactage des fichiers VHDX de WSL/Docker
- L'exportation/importation de distributions WSL
- La modification de
.wslconfig, des paramètres Docker, des profils shell ou de la configuration du gestionnaire de paquets
4. Classification des artefacts
Chaque fichier créé par un agent appartient à l'une des cinq classes. La classe — pas l'extension — détermine le traitement.
| Classe | Exemples | Emplacement | Cycle de vie | Suppression auto ? |
|---|---|---|---|---|
| A — Documentation formelle | README.md, CHANGELOG.md, LICENSE, docs/**, CONTRIBUTING.md, notes utilisateur | docs/, racine du projet | Permanent | Jamais |
| B — Livrables demandés par l'utilisateur | rapport d'audit, plan de migration, synthèse de recherche (l'utilisateur a explicitement demandé) | .agent_reports/ | 30 jours | Après conservation |
| C — Artefacts de travail temporaires | plan, todo, notes, brouillon, progression, liste de tâches | .agent_tmp/ | 7 jours | Après conservation |
| D — Auto-congratulation | résumé, rapport_final, résumé_travail, leçons, résumé_changements | Ne pas créer | N/A | N/A |
| E — État de l'outil (hors périmètre) | .codex/, .claude/, .cursor/, *.sqlite, fichiers d'état | Répertoires des outils | N/A | Jamais |
Règles clés :
- Classe A → jamais de suppression automatique, jamais de réécriture automatique
- Classe B → nom de fichier spécifique
<tâche>_<date>.md, jamais à la racine du projet - Classe C → uniquement dans
.agent_tmp/, jamais commité, nettoyé en fin de tâche - Classe D → ne pas créer. Le chat est le résumé.
- Classe E → ignorer complètement, ne jamais marquer comme suspect
5. Vérification d'intention de l'artefact (OBLIGATOIRE)
Avant de créer un nouveau fichier, remplissez cette vérification. Si vous ne pouvez pas répondre à chaque champ, ne créez pas le fichier.
Vérification d'intention de l'artefact
─────────────────────────────────────
1. L'utilisateur a demandé un fichier ? oui / non
2. Objectif :
3. Lecteur :
4. Durée de vie attendue : session / jours / persistant / doc-formelle
5. Chemin de destination :
6. Pourquoi une réponse dans le chat ne suffit pas :
7. Classe : temporaire / persistant / documentation-formelle
8. Doit-il être dans .gitignore ? oui / non
Règles de décision :
| Scénario | Action |
|---|---|
| #1 = non, classe ≠ A | Ne pas créer. Répondre dans le chat. |
| Objectif = plan/todo/résumé/progression, lecteur = cet utilisateur | Chat uniquement. Pas de fichier. |
| Doit créer, classe = C | .agent_tmp/<nom-spécifique>.md |
| Doit créer, classe = B | .agent_reports/<tâche_<YYYY-MM-DD>.md |
| Classe = A (doc formelle) | Chemin docs/, utilisateur a explicitement demandé |
| Le fichier reformule ce chat | Ne pas créer |
| Aucun lecteur clair | Ne pas créer |
| Aucun cycle de vie clair | Ne pas créer |
| Aucune utilisation ultérieure | Ne pas créer |
6. Règles strictes pour la génération de fichiers
- Par défaut : n'écrivez pas de fichiers.
- Plans, todos, résumés, progression → répondez dans le chat.
- La racine du projet est interdite pour le Markdown de processus générique, sauf si l'utilisateur nomme explicitement un fichier.
- Interdit à la racine du projet (sauf si l'utilisateur demande explicitement ce fichier exact) :
todo.md, plan.md, notes.md, lessons.md, summary.md, report.md, final_report.md, implementation_plan.md, migration_plan.md, audit_report.md, cleanup_report.md, task_list.md, progress.md, work_summary.md, changes_summary.md, *_summary.md, *_report.md, *_plan.md - Fichiers temporaires →
.agent_tmp/ - Rapports persistants →
.agent_reports/ - Documentation formelle →
docs/(uniquement sur demande explicite) - Ne générez pas de rapports pour "faire professionnel."
- Ne créez pas de fichiers de résumé automatiques en fin de tâche.
- Ne dupliquez pas le chat dans des fichiers.
- Utilisez des noms de fichiers spécifiques :
<tâche>_<contexte>_<date>.md - Si l'utilisateur demande un fichier, proposez d'abord le chemin + le nom.
- Si l'utilisateur dit "dis-moi" / "résume" / "planifie-le" → répondez dans le chat.
7. Emplacements autorisés et interdits
Autorisés
| Contenu | Emplacement autorisé |
|---|---|
| Fichiers de travail temporaires | .agent_tmp/ |
| Rapports demandés par l'utilisateur | .agent_reports/ |
| Documentation formelle | docs/ (demande explicite requise) |
| Chemin spécifié par l'utilisateur | Tout chemin que l'utilisateur a explicitement nommé |
Interdits
| Emplacement | Pourquoi |
|---|---|
| Racine du projet (Markdown de processus générique) | Réservé aux fichiers formels du dépôt |
src/, lib/, app/ | Répertoires sources |
.codex/, .claude/, .cursor/, .vscode/ | État de l'outil — ne pas toucher |
8. Fichiers protégés (Jamais de suppression automatique)
README.md, README.*.md
CHANGELOG.md
LICENSE, LICENSE.*
CONTRIBUTING.md
CODE_OF_CONDUCT.md
SECURITY.md
Tout ce qui se trouve sous docs/
Tout fichier suivi par Git en dehors de .agent_tmp/ ou .agent_reports/
Notes manuscrites de l'utilisateur
9. Cycle de vie
| Emplacement | Conservation par défaut | Nettoyage |
|---|---|---|
.agent_tmp/ | 7 jours | L'agent doit nettoyer ses propres fichiers en fin de tâche |
.agent_reports/ | 30 jours | Déplacer vers docs/ pour une conservation à long terme |
docs/ | Permanent | Pas de cycle de vie automatique |
10. Score d'hygiène du dépôt
Lorsqu'on vous demande un score d'hygiène du dépôt, privilégiez ${CLAUDE_SKILL_DIR}/scripts/score_repo_hygiene.py quand Python est disponible. Sur les environnements Windows uniquement, utilisez ${CLAUDE_SKILL_DIR}/scripts/score-repo-hygiene.ps1.
| Score | Appréciation (en) | Appréciation (fr) |
|---|---|---|
| 90–100 | Clean | Propre |
| 70–89 | Mostly clean | Plutôt propre |
| 50–69 | Needs tidy-up | À ranger |
| 0–49 | Artifact landfill | Décharge d'artefacts |
Dimensions : propreté de la racine, placement des artefacts, clarté des documents protégés, hygiène Git, isolation de l'état de l'agent, préparation au nettoyage. Facteurs de pondération optionnels : --weights references/score-weights.example.json.
Politique de projet optionnelle : placez .tidy-skill.json (ou tidy-skill.policy.json) à la racine du dépôt, ou passez --policy. Exemple de schéma : references/tidy-skill.policy.example.json. La politique peut étendre les motifs racine interdits/protégés, définir min_score, exiger .agent_tmp/ + .agent_reports/, et choisir des noms racine de planification intentionnelle via planning_root_globs (voir references/tidy-skill.policy.pwf.example.json pour la coexistence de la planification avec les fichiers). .planning/** est reconnu comme mémoire de travail intentionnelle de classe C sans politique.
Diagnostic, réparation, classification, instantanés
| Besoin | Script |
|---|---|
| Installation unique + diagnostic d'hygiène / porte CI | ${CLAUDE_SKILL_DIR}/scripts/tidy_doctor.py |
| Réparations sûres avec DryRun (répertoires de disposition ; déplacements racine optionnels) | ${CLAUDE_SKILL_DIR}/scripts/tidy_repair.py |
| Émetteur de configuration de hook hôte DryRun | ${CLAUDE_SKILL_DIR}/scripts/tidy-install-hooks.py |
Classifier un chemin avant écriture (classes A–E) ; par lot via --stdin --json | ${CLAUDE_SKILL_DIR}/scripts/classify_artifact.py |
Enregistrer/comparer l'historique des scores ; bloquer sur min_score | ${CLAUDE_SKILL_DIR}/scripts/hygiene_snapshot.py |
Verbes de sécurité (toujours la même signification) :
- dryrun — aperçu uniquement (par défaut pour la réparation, le nettoyage, l'installation de hooks)
- careful — ne modifie que les fichiers de travail de l'agent (
tidy_repair.py --apply --move-root) - guard — refuse fermement les configurations hôte, VHDX, données Docker, fichiers suivis par Git, documents de classe A
tidy_repair.py est le compagnon de diagnostic → étape suivante du docteur. Par défaut, ce n'est qu'un plan. --apply crée .agent_tmp/ + .agent_reports/ avec .gitkeep. Les déplacements racine de processus nécessitent à la fois --apply et --move-root, et refusent toujours les noms suivis par Git / protégés.
hygiene_snapshot.py save écrit par défaut sous .agent_reports/hygiene-history/ (historique des livrables de classe B, pas de déchets racine). gate et le docteur quittent avec le code 2 en cas d'échec d'hygiène/politique.
11. Audit d'hygiène de l'espace de travail
Lorsqu'on vous demande d'analyser plusieurs dépôts, privilégiez ${CLAUDE_SKILL_DIR}/scripts/audit_workspace_hygiene.py pour une base de référence portable. Sur les workflows Windows uniquement, ${CLAUDE_SKILL_DIR}/scripts/audit-workspace-hygiene.ps1 convient également. L'utilisateur doit explicitement spécifier un répertoire racine. Ne scannez jamais des lecteurs entiers par défaut.
Pour un audit des artefacts d'agent dans un seul dépôt, privilégiez ${CLAUDE_SKILL_DIR}/scripts/audit_agent_artifacts.py quand Python est disponible. Utilisez ${CLAUDE_SKILL_DIR}/scripts/audit-agent-artifacts.ps1 pour rester dans un workflow PowerShell. Les deux auditent et notent, et acceptent un --policy optionnel.
Vérification en lecture seule optionnelle en fin de tâche : ${CLAUDE_SKILL_DIR}/hooks/stop-hygiene-check.py (rapporte uniquement ; ne supprime jamais). Les phrases déclencheurs se trouvent dans commands/TRIGGERS.md.
12. Audit d'hygiène de la machine locale
Lorsqu'on vous interroge sur la croissance du disque C, WSL2, Docker Desktop, les caches de modèles, les caches de paquets, l'état de l'agent ou l'expansion de l'environnement de développement local, utilisez ${CLAUDE_SKILL_DIR}/scripts/audit-dev-environment.ps1.
Pour une cartographie portable des caches de paquets/modèles sur les environnements non Windows, utilisez ${CLAUDE_SKILL_DIR}/scripts/audit_dev_environment.py. Utilisez le script PowerShell pour l'inspection spécifique à Windows des fichiers VHDX de WSL2/Docker.
Règles :
- Demandez des racines d'analyse explicites lorsque l'analyse du projet/espace de travail est nécessaire.
- Utilisez
-IncludeUserProfileuniquement lorsque l'utilisateur souhaite inclure les emplacements de cache par défaut du profil utilisateur. - Utilisez
-IncludeDrivesuniquement lorsque l'utilisateur demande explicitement des indices au niveau du lecteur. - Considérez la migration WSL/Docker, le compactage VHDX, le déplacement des données Docker, les modifications de
.wslconfiget le déplacement du cache de modèles comme desOpérations manuelles / risquées. - Ne lisez jamais les jetons, les fichiers de session, les bases de données SQLite, les clés de registre, les journaux privés ou les magasins d'identifiants.
Pour plus de détails sur WSL2 et Docker, lisez references/wsl2-docker-hygiene.md.
13. Règles de nettoyage
Nettoyage automatique autorisé :
.agent_tmp/— fichiers de plus de 7 jours.agent_reports/— fichiers de plus de 30 jours- Répertoire temporaire d'agent spécifié par l'utilisateur
- Fichiers de processus créés par l'agent, nommés et expirés
Nettoyage automatique interdit :
- Documents protégés (classe A)
- Code source
- État de l'outil (classe E)
- Markdown inconnu dans les dossiers utilisateur
- Fichiers suivis par Git
- Fichiers suspects au niveau racine → rapport uniquement, demandez à l'utilisateur
14. Règles d'audit
- Lecture seule — ne modifie jamais les fichiers
- Profondeur limitée, ignore
.git/,node_modules/,dist/,build/,target/,.venv/,venv/ - Liste :
.agent_tmp/,.agent_reports/, fichiers suspects au niveau racine, documents protégés - Suggère des actions, n'en exécute aucune
- Pas de téléchargement ni d'appels réseau
15. Liste de contrôle de fin de tâche
Avant de signaler "terminé" :
- Ai-je créé des fichiers ? Chacun était-il justifié par une vérification d'intention de l'artefact ?
- Sont-ils placés dans le bon répertoire (
.agent_tmp/,.agent_reports/,docs/) ? - Ai-je laissé des fichiers temporaires dans l'espace de travail de l'utilisateur ?
- Ai-je nettoyé les fichiers temporaires que j'ai créés ?
- Ai-je évité de toucher aux fichiers protégés, au code source ou à l'état de l'outil ?
- Ai-je répondu dans le chat lorsque les fichiers n'étaient pas nécessaires ?
- L'utilisateur est-il informé de tout artefact persistant que j'ai créé ?