CommunityRédaction et éditiongithub.com

Tidy Skill

Donnez aux agents une discipline de rangement.

Qu'est-ce que Tidy Skill ?

Le Tidy Skill est un outil essentiel pour tout développeur utilisant des agents IA comme Claude Code, Cursor ou Codex. Il ne s'agit pas d'un simple suppresseur de fichiers, mais d'un système de gouvernance de l'environnement local qui impose intention, portée et cycle de vie à chaque artefact créé par un agent. Le modèle d'hygiène se déploie sur trois couches : le dépôt (artefacts comme plan.md, todo.md), l'espace de travail (caches de développement) et la machine locale (stocks WSL2/Docker, caches de modèles). Avant toute création de fichier, le skill exige un "Artifact Intent Check" impératif qui valide sept champs (demande utilisateur, objectif, lecteur, durée de vie, etc.) pour empêcher toute génération de fichier inutile. Les fichiers sont classés en cinq catégories (A à E), de la documentation permanente aux états d'outils intouchables, avec des répertoires dédiés (.agent_tmp/, .agent_reports/, docs/). Le skill propose des scripts Python/PowerShell pour évaluer l'hygiène, auditer l'espace de travail ou inspecter l'environnement local, mais il refuse catégoriquement de supprimer les fichiers protégés, de modifier les états d'outils ou d'exécuter des opérations risquées (compactage VHDX, migration Docker, etc.). En résumé, Tidy Skill transforme un agent IA désordonné en un assistant soigneux et discipliné, où chaque artefact a une raison d'être et une porte de sortie.

Compatible avec✓Claude Code✓Codex CLI✓Cursor
npx skills add Phoenix0531-sudo/tidy-skill

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

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

Documentation

洁癖.skill

Faites en sorte que les agents IA ne jonchent plus votre dépôt avec plan.md, todo.md, summary.md et 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 :

CouchePérimètreExemplesAction par défaut
DépôtArtefacts créés par l'agentplan.md, todo.md, .agent_tmp/, .agent_reports/classer, signaler, nettoyage DryRun
Espace de travailCaches de développement entre projetsnode_modules, .venv, target, caches de compilationauditer, noter, recommander
Machine localeChaînes d'outils et environnements virtualisésWSL2, Docker Desktop, caches de paquets, caches de modèles, état des agents/IDEcartographie en lecture seule, compartiment à risques, conseils manuels

Les rapports doivent séparer :

  1. Constatations — faits observés localement.
  2. Suggestions sûres — étapes suivantes à faible risque comme exécuter DryRun ou déplacer les futurs rapports dans .agent_reports/.
  3. 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éclencheurExemples
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âcheVé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.

ClasseExemplesEmplacementCycle de vieSuppression auto ?
A — Documentation formelleREADME.md, CHANGELOG.md, LICENSE, docs/**, CONTRIBUTING.md, notes utilisateurdocs/, racine du projetPermanentJamais
B — Livrables demandés par l'utilisateurrapport d'audit, plan de migration, synthèse de recherche (l'utilisateur a explicitement demandé).agent_reports/30 joursAprès conservation
C — Artefacts de travail temporairesplan, todo, notes, brouillon, progression, liste de tâches.agent_tmp/7 joursAprès conservation
D — Auto-congratulationrésumé, rapport_final, résumé_travail, leçons, résumé_changementsNe pas créerN/AN/A
E — État de l'outil (hors périmètre).codex/, .claude/, .cursor/, *.sqlite, fichiers d'étatRépertoires des outilsN/AJamais

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énarioAction
#1 = non, classe ≠ ANe pas créer. Répondre dans le chat.
Objectif = plan/todo/résumé/progression, lecteur = cet utilisateurChat 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 chatNe pas créer
Aucun lecteur clairNe pas créer
Aucun cycle de vie clairNe pas créer
Aucune utilisation ultérieureNe pas créer

6. Règles strictes pour la génération de fichiers

  1. Par défaut : n'écrivez pas de fichiers.
  2. Plans, todos, résumés, progression → répondez dans le chat.
  3. La racine du projet est interdite pour le Markdown de processus générique, sauf si l'utilisateur nomme explicitement un fichier.
  4. 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
    
  5. Fichiers temporaires → .agent_tmp/
  6. Rapports persistants → .agent_reports/
  7. Documentation formelle → docs/ (uniquement sur demande explicite)
  8. Ne générez pas de rapports pour "faire professionnel."
  9. Ne créez pas de fichiers de résumé automatiques en fin de tâche.
  10. Ne dupliquez pas le chat dans des fichiers.
  11. Utilisez des noms de fichiers spécifiques : <tâche>_<contexte>_<date>.md
  12. Si l'utilisateur demande un fichier, proposez d'abord le chemin + le nom.
  13. Si l'utilisateur dit "dis-moi" / "résume" / "planifie-le" → répondez dans le chat.

7. Emplacements autorisés et interdits

Autorisés

ContenuEmplacement autorisé
Fichiers de travail temporaires.agent_tmp/
Rapports demandés par l'utilisateur.agent_reports/
Documentation formelledocs/ (demande explicite requise)
Chemin spécifié par l'utilisateurTout chemin que l'utilisateur a explicitement nommé

Interdits

EmplacementPourquoi
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

EmplacementConservation par défautNettoyage
.agent_tmp/7 joursL'agent doit nettoyer ses propres fichiers en fin de tâche
.agent_reports/30 joursDéplacer vers docs/ pour une conservation à long terme
docs/PermanentPas 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.

ScoreAppréciation (en)Appréciation (fr)
90–100CleanPropre
70–89Mostly cleanPlutôt propre
50–69Needs tidy-upÀ ranger
0–49Artifact landfillDé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

BesoinScript
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 :

  1. Demandez des racines d'analyse explicites lorsque l'analyse du projet/espace de travail est nécessaire.
  2. Utilisez -IncludeUserProfile uniquement lorsque l'utilisateur souhaite inclure les emplacements de cache par défaut du profil utilisateur.
  3. Utilisez -IncludeDrives uniquement lorsque l'utilisateur demande explicitement des indices au niveau du lecteur.
  4. Considérez la migration WSL/Docker, le compactage VHDX, le déplacement des données Docker, les modifications de .wslconfig et le déplacement du cache de modèles comme des Opérations manuelles / risquées.
  5. 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é :

  1. .agent_tmp/ — fichiers de plus de 7 jours
  2. .agent_reports/ — fichiers de plus de 30 jours
  3. Répertoire temporaire d'agent spécifié par l'utilisateur
  4. 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é" :

  1. Ai-je créé des fichiers ? Chacun était-il justifié par une vérification d'intention de l'artefact ?
  2. Sont-ils placés dans le bon répertoire (.agent_tmp/, .agent_reports/, docs/) ?
  3. Ai-je laissé des fichiers temporaires dans l'espace de travail de l'utilisateur ?
  4. Ai-je nettoyé les fichiers temporaires que j'ai créés ?
  5. Ai-je évité de toucher aux fichiers protégés, au code source ou à l'état de l'outil ?
  6. Ai-je répondu dans le chat lorsque les fichiers n'étaient pas nécessaires ?
  7. L'utilisateur est-il informé de tout artefact persistant que j'ai créé ?

Skills associés