Nettoyage de disque
Parle en français, de manière concise. K = ~/.claude/skills/nettoyage-disque. Windows, python (3.9+).
Règles strictes
- Lecture seule : exécute uniquement les scripts dans
K/scripts. N'ouvre pas le contenu des fichiers, ne supprime rien, n'exécute pas de script de nettoyage. - Ignore OneDrive / WPS Cloud / Dropbox / Pictures (bibliothèque d'images), les lecteurs externes, les jonctions/symlinks, les répertoires sans droit d'accès.
- Exécute un script de nettoyage uniquement si l'utilisateur le demande explicitement ("lance-le"). Les éléments marqués "À vérifier" doivent être confirmés un par un avant exécution.
- La page d'artefact contient des chemins machine (nom d'utilisateur, nom de projet) : reste privée, ne la partage pas automatiquement.
Procédure
- Analyse (1–3 minutes ; timeout 600000) :
Si le répertoire de travail courant est en dehors du home (ex.python "K/scripts/scan_disk_usage.py" --html-out "<scratchpad>/disk-map.html" [--root <répertoire projet en dehors du home>]C:\codeouD:\Projets), ajoute--rootavec le répertoire parent le plus haut. Le script lit automatiquement l'ancien~/disk-report/sizes.csv(le copie ensizes-previous.csv), compare, écrit le nouveau fichier et imprime un résumé avec l'ID de chaque élément. - Publie l'artefact du fichier
<scratchpad>/disk-map.html(page générée automatiquement à partir du template dansK/assets, données de l'analyse) :- Si
~/disk-report/artifact-url.txtexiste → lit l'URL de l'Artifact et publie avecurlpour conserver l'ancien lien. - Sinon → publie un nouvel artefact (
icon : "storage"), enregistre l'URL dans~/disk-report/artifact-url.txt.
- Si
- Informe l'utilisateur (≤ 8 lignes) : espace libre restant ; total "sûr" + 3 plus gros éléments ; total "à vérifier" ; éléments ayant augmenté depuis la dernière analyse (si applicable) ; lien vers l'artefact. Rappelle : cocher sur la page → Copier le script → coller dans PowerShell, ou dire le nom d'un élément pour que je crée le fichier.
- Quand l'utilisateur sélectionne un élément dans le chat :
python "K/scripts/make_cleanup_script.py" <id> <id> ...→ affiche le chemin~/disk-report/cleanup-*.ps1et un résumé de chaque bloc de commandes. Ne pas exécuter. - Après que l'utilisateur a nettoyé : rappelle la compétence pour refaire une analyse ; la page affichera les changements.
Fichiers
| Fichier | Rôle |
|---|---|
scripts/cleanup_rules.py | Catalogue des emplacements de déchets connus + motifs de répertoires projet (node_modules, .next, venv…), commandes de nettoyage, explications. Ajoute ici de nouvelles règles. |
scripts/scan_disk_usage.py | Analyse en lecture seule, compare sizes.csv, écrit scan.json, déclenche la construction du HTML |
scripts/build_disk_map_html.py | Assemble assets/ + données en page. Exécutable séparément pour reconstruire depuis scan.json après modification de l'interface |
scripts/make_cleanup_script.py | Génère un fichier .ps1 (UTF-8 BOM) pour les IDs sélectionnés |
assets/disk-map-*.{html,css,js} | Interface : treemap, propositions avec cases à cocher, barre Copier le script |
Sortie dans ~/disk-report/ : scan.json, sizes.csv, sizes-previous.csv, disk-map.html, cleanup-*.ps1, artifact-url.txt.
Ajouter une règle
Un dictionnaire dans RULES (cleanup_rules.py) : id, label, kind (cache | build | agent | docker | ai | files), cat
(SAFE = outil auto-télécharge/reconstruit ; REVIEW = perte d'historique, de modèle, de données), paths (glob), why (ce qui est perdu en supprimant), et un parmi : tool + cmd (commande officielle de nettoyage), cmd avec {p} (exécute par chemin), manual (affiche uniquement des instructions), ou vide (vide le répertoire). Privilégie la commande officielle de l'outil plutôt qu'une suppression manuelle.