Auditeur de Code & Nettoyage

VérifiéSûr

Audite un projet pour identifier le code inutilisé tout en protégeant les points d'entrée critiques, 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. Utile pour détecter le code mort, réduire la dette technique ou évaluer des modules hérités sans risquer la stabilité.

Spar Skills Guide Bot
DeveloppementIntermédiaire
02/06/2026
Claude Code
#code-audit#unused-code#technical-debt#cleanup#safety

Recommandé pour

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.
Quand l'utiliser

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.

Quand l'éviter

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ûr
Score qualité92/100

The 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 faite

Exemples

Full project audit
Audit this project for unused code. Generate a report and cleanup plan.
Spot-check a module
Find dead code in the src/features directory. Only flag items that are safe to remove.
Risk assessment of specific files
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.
  • [ ] Phase 4: Cleanup Strategy
    • [ ] Create cleanup_plan.md (Strategy: Deprecate -> Observe -> Remove).
    • [ ] WAIT for explicit user approval.

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 x looks unused."
  • GOOD: "Variable x defined 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:

  1. Level 1 (Safe): Delete dead private methods, unused local variables.
  2. Level 2 (Deprecate): Add ActiveSupport::Deprecation warning or log "Unused code reached" for CAUTION items.
  3. Level 3 (Observe): Monitor logs for 1 week.
  4. Level 4 (Remove): Delete after established silence.
  5. 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

Anti-Patterns

  • Deleting files without a rollback plan.
  • Trusting grep blindly 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 findings
  • cleanup_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 annexes

Ce 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.md

Depuis 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’OpenSkills
openskills 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 sync

Mode 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.

Skills similaires