Synthèse automatique
Audite le projet pour identifier le code inutilisé tout en protégeant strictement les points d'entrée, les intégrations et les appels dynamiques. Génère des rapports de risque fondés sur des preuves et des plans de nettoyage réversibles.
Points forts
- Protection explicite des points d'entrée critiques (routes, jobs, webhooks, CLI) et des appels dynamiques.
- Classification de risque rigoureuse avec preuves (grep, recherche de références).
- Génération de rapports détaillés et de plans de nettoyage par étapes (obsolescence → observation → suppression).
Limites
- Nécessite une compréhension fine de la base de code pour classifier correctement les éléments ambigus.
- Peut manquer des utilisations indirectes via des frameworks très dynamiques (métaprogrammation complexe).
- Le plan de nettoyage est théorique ; l'utilisateur doit valider manuellement chaque suppression.
Utilisez ce skill lorsque vous avez besoin d'un audit structuré et sûr du code mort, avec des preuves et un plan de suppression progressive.
Ne l'utilisez pas pour du refactoring immédiat sans validation humaine, ou si vous préférez une approche plus agressive de suppression de code.
Analyse de sécurité
SûrThe skill describes a passive auditing process using grep, find, and LSP. It does not instruct execution of destructive or exfiltrating commands. It emphasizes reversible changes and never deletes code without explicit user approval. No dangerous patterns like curl|sh or disabling safety are present.
Aucun point d'attention détecté
Comment cette analyse est faiteExemples
Audit this project for unused code. Generate a report and cleanup plan.Find dead code in the src/features directory. Only flag items that are safe to remove.Run a code audit on lib/tasks/ and app/controllers/ to identify unused methods and constants.name: auditing-code description: Audits the project to identify unused code while strictly protecting entrypoints, integrations, and dynamic calls. Generates evidence-based risk reports and reversible cleanup plans.
Code Audit & Cleanup Specialist
Mission
To reduce technical debt and cognitive load for both humans and AI agents by identifying unused code, WITHOUT altering the system's behavior or risking stability. We prioritize safety, reversibility, and explicit evidence over aggressive cleanup.
When to use this skill
- When the user requests a code audit, cleanup, or identification of "dead code".
- When evaluating legacy modules for refactoring.
- Trigger phases:
AUDIT(Mapping),ASSESS(Risk Classification),REPORT(Evidence),PLAN(Cleanup Strategy).
Workflow
Copy this checklist to task.md:
- [ ] Phase 1: Protection & Mapping
- [ ] Identify Critical Entrypoints (Routes, Jobs, Webhooks, CLI, AI Agents).
- [ ] Map potentially unused items (using
grep,find, LSP).
- [ ] Phase 2: Risk Assessment & Evidence
- [ ] Classify strictly: SAFE, CAUTION, or KEEP.
- [ ] Collect usage evidence for every item (or lack thereof).
- [ ] Validate against "Dynamic Use" exclusions (Reflection, strings).
- [ ] Phase 3: Reporting
- [ ] Generate
audit_report.md(Human/AI readable). - [ ] Provide summary metrics.
- [ ] Generate
- [ ] Phase 4: Cleanup Strategy
- [ ] Create
cleanup_plan.md(Strategy: Deprecate -> Observe -> Remove). - [ ] WAIT for explicit user approval.
- [ ] Create
Instructions
1. Protection Rules (The "Red Lines")
NEVER classify as SAFE if the item matches these criteria. Must be KEEP or CAUTION.
| Category | Protection Rule | Trigger Pattern Examples |
| :------------- | :------------------------------------- | :----------------------------------------------- |
| Routes/API | Public controllers, API endpoints. | routes.rb, *Controller, API::* |
| Async Jobs | Background workers, schedulers. | Sidekiq::Worker, ApplicationJob, cron.yaml |
| Webhooks | External callbacks, event handlers. | handle_webhook, on_*, stripe_event |
| CLI/Tasks | Rake tasks, scripts, console commands. | lib/tasks/*.rake, bin/* |
| Dynamic | Feature flags, ENV-driven logic. | ENV['FEATURE_*'], Features.enabled? |
| Meta-Prog | Reflection/String-based calls. | send(params[:method]), constantize |
| AI Agents | Tools/Skills used by Agents. | class *Tool, scenarios/*.yaml |
2. Risk Classification Logic
Every item must be tagged with a risk level.
-
✅ SAFE:
- Strictly internal (private methods, local vars).
- 0 references found in entire codebase (grep check).
- Not an entrypoint or potential meta-programming target.
- Constraint: Must verify removal doesn't break syntax.
-
⚠️ CAUTION:
- Public methods with no explicit callers.
- Constants/Classes that "look" like headers or strict types.
- CSS classes (could be constructed strings).
- Requirement: Needs implicit usage check.
-
❌ KEEP:
- Valid references found.
- Any item executing external I/O or integrations.
- Test helpers (crucial for verifying correctness).
- Core configuration.
3. Evidence Requirement
The skill MUST prove why an item is unused.
- BAD: "Variable
xlooks unused." - GOOD: "Variable
xdefined at line 10.grep -r 'x' .returned only the definition. Local scope confirmed."
4. Reporting Format
Output to audit_report.md.
# Audit Report: [Scope Name]
## Executive Summary
- **Total Scanned**: 50 items
- **✅ Safe to Remove**: 5
- **⚠️ Caution**: 2
- **❌ Keep**: 43
## Detailed Findings
| File/Context | Item Type | Name/Snippet | Risk | Evidence/Rationale |
| :-------------------- | :-------- | :------------ | :--------- | :-------------------------------------------------------------- |
| `app/models/user.rb` | Method | `legacy_auth` | ✅ SAFE | Defined but never called. Grep returned 0 hits. Not a callback. |
| `app/views/home.html` | CSS Class | `.old-banner` | ⚠️ CAUTION | No static usage, but class name might be dynamic in JS. |
| `app/jobs/mail.rb` | Class | `DailyMail` | ❌ KEEP | Inherits ApplicationJob. Likely called via Redis/Sidekiq. |
## Recommendations
- [ ] Safe items can be removed immediately.
- [ ] Caution items should be commented out or logged first.
5. Cleanup Strategy (Incremental)
NEVER delete code in the audit phase. Propose a plan in cleanup_plan.md:
- Level 1 (Safe): Delete dead private methods, unused local variables.
- Level 2 (Deprecate): Add
ActiveSupport::Deprecationwarning or log "Unused code reached" for CAUTION items. - Level 3 (Observe): Monitor logs for 1 week.
- Level 4 (Remove): Delete after established silence.
- Level 5 (Commit & Monitor):
- Commit changes with reversible message:
git commit -m "refactor: remove unused [item] - reversible" - Monitor production logs for 48h
- Keep rollback plan ready:
git revert HEAD
- Commit changes with reversible message:
Anti-Patterns
- Deleting files without a rollback plan.
- Trusting
grepblindly on short strings (too many collisions) or huge projects (dynamic imports). - Removing Database Migrations (historic record).
- Removing Tests just because they verify "unused" code (the test proves the code exists, not that it's useful).
Validation Checklist
Before proposing removal of any item, verify:
- [ ] Item is NOT in routes.rb or called by external systems
- [ ] Item is NOT inherited from framework base classes (ApplicationJob, ApplicationController)
- [ ] Item is NOT used in string interpolation or send() calls
- [ ] Item is NOT a callback (before**, after*, around_)
- [ ] Item is NOT accessed via ENV variables or feature flags
- [ ] Removal does NOT break tests (run test suite after each deletion)
Output Files
This skill generates:
audit_report.md- Evidence-based findingscleanup_plan.md- Phased removal strategy (only after user approval)rollback_plan.md- Emergency recovery steps
Never execute deletions without explicit user confirmation.
Du fichier au premier essai
Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.
Consulter la source et ses fichiers annexesCe téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.
1. Télécharger le fichier
Télécharger SKILL.mdDepuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/code-audit-cleanup-specialist-mm8o52ds/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.
Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.
mkdir -p '.skill-downloads/code-audit-cleanup-specialist-mm8o52ds' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/code-audit-cleanup-specialist-mm8o52ds/download' --output '.skill-downloads/code-audit-cleanup-specialist-mm8o52ds/SKILL.md.part' && mv '.skill-downloads/code-audit-cleanup-specialist-mm8o52ds/SKILL.md.part' '.skill-downloads/code-audit-cleanup-specialist-mm8o52ds/SKILL.md'2. Vérifier les prérequis
Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.
Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.
Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.
3. Charger la skill
Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.
Claude Code
test -f '.skill-downloads/code-audit-cleanup-specialist-mm8o52ds/SKILL.md' && test -s '.skill-downloads/code-audit-cleanup-specialist-mm8o52ds/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/auditing-code' && cp -R '.skill-downloads/code-audit-cleanup-specialist-mm8o52ds' '.claude/skills/auditing-code'OpenSkills
OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.
Installation officielle d’OpenSkillsopenskills install './.skill-downloads/code-audit-cleanup-specialist-mm8o52ds'openskills read 'code-audit-cleanup-specialist-mm8o52ds'La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.
Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.
openskills syncMode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.
4. Faire un premier essai
Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :
Lis .skill-downloads/code-audit-cleanup-specialist-mm8o52ds/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.
Bonnes pratiques React Hook Form
Developpement
Maîtrisez React Hook Form : évitez les anti-patterns, gérez les abonnements, et traitez correctement reset, dirty state et entrées contrôlées.
Migration Emotion vers Mantine
Developpement
Migrer les styled-components Emotion vers des composants Mantine avec style props et modules CSS. Pour convertir .styled.tsx ou supprimer les imports @emotion.
Détecteur de dérive de périmètre
Developpement
Analyse les diffs git par rapport à une intention pour détecter la dérive de périmètre, fichiers non liés et PR trop larges, puis suggère de garder, diviser ou justifier.