Synthèse automatique
Fournit des commandes d'analyse et des motifs de détection pour repérer les dépendances npm inutilisées ou redondantes, le code mort et les vulnérabilités.
Points forts
- Couvre l'ensemble de la chaîne : dépendances inutilisées, code mort, audit de sécurité, versions obsolètes et analyse de bundle
- Fournit des commandes grep concrètes pour détecter les doublons fonctionnels (bibliothèques de dates, clients HTTP, frameworks de test)
- Inclut une table de correspondance sévérité/pattern pour classer les constats
- Reste volontairement une référence de détection, sans imposer de format de sortie
Limites
- Les scripts d'analyse pointent vers des chemins absolus d'un plugin Claude Code précis et échoueront s'ils ne sont pas présents
- Les motifs grep sont approximatifs : imports dynamiques, ré-exports et alias de chemins ne sont pas détectés
- Ne décrit ni la manière de corriger les problèmes ni le workflow de revue complet
À utiliser lors d'un audit de package.json ou d'une revue de santé des dépendances d'un projet Node/TypeScript.
À éviter pour des projets non-JavaScript ou lorsqu'on attend un rapport de revue formaté et priorisé plutôt qu'une boîte à outils de détection.
Analyse de sécurité
PrudenceThe skill uses Bash to run dependency analysis scripts and npm commands for legitimate auditing purposes. There is no destructive or exfiltration behavior, but running pre-existing scripts from a specific path and package scripts introduces moderate execution risk, hence caution.
- •Executes local bash scripts from a fixed marketplace path without verifying their contents or existence; these scripts are not defined within the skill.
- •Runs npm audit, npm outdated, and npm run build commands, which may execute package scripts or network operations in the user's environment.
Exemples
Analyse le package.json de ce projet : repère les dépendances inutilisées, celles mal placées entre dependencies et devDependencies, et les bibliothèques qui font doublon (dates, HTTP, utilitaires).Cherche dans src/ les exports, fichiers utilitaires et types qui ne sont importés nulle part, et liste-les avec leur emplacement.Lance npm audit et npm outdated, puis résume les vulnérabilités critiques/hautes et les montées de version majeures disponibles.name: reviewing-dependencies description: Automated tooling and detection patterns for analyzing npm dependencies, unused packages, and dead code. Provides tool commands and what to look for—not how to structure output. allowed-tools: Bash, Read, Grep, Glob version: 1.0.0
Dependencies Review Skill
Purpose
This skill provides automated analysis commands and detection patterns for dependency issues. Use this as a reference for WHAT to check and HOW to detect issues—not for output formatting or workflow.
Automated Analysis Tools
Run these scripts to gather metrics (if tools available):
Unused Dependencies Detection
bash ~/.claude/plugins/marketplaces/claude-configs/review/scripts/review-unused-deps.sh
Returns: Unused dependencies, unused devDependencies, missing dependencies (imported but not in package.json)
Unused Code Detection
bash ~/.claude/plugins/marketplaces/claude-configs/review/scripts/review-unused-code.sh
Returns: Unused exports, unused files, unused enum/class members, unused types/interfaces
Security Audit
npm audit --json
npm audit --production --json
Outdated Dependencies Detection
npm outdated
Look for:
- available patch/minor/major version upgrades
- Deprecated dependencies
Bundle Analysis (if available)
npm run build -- --analyze
Returns: Bundle size breakdown, largest chunks
Manual Detection Patterns
When automated tools unavailable or for deeper analysis, use Read/Grep/Glob to detect:
Package.json Analysis
Read package.json:
cat package.json | jq '.dependencies, .devDependencies'
Check for:
- Version pinning strategy (^, ~, exact)
- Packages at latest/next tags
- Incorrect categorization (prod vs dev vs peer)
- Duplicate functionality patterns
Usage Frequency Detection
Count imports for specific package:
grep -r "from ['\"]package-name['\"]" src/ | wc -l
grep -r "require(['\"]package-name['\"])" src/ | wc -l
Find all import locations:
grep -rn "from ['\"]package-name['\"]" src/
Duplicate Functionality Detection
Multiple date libraries:
grep -E "moment|date-fns|dayjs|luxon" package.json
Multiple HTTP clients:
grep -E "axios|node-fetch|got|ky|superagent" package.json
Multiple testing frameworks:
grep -E "jest|mocha|jasmine|vitest" package.json
Uses skills tagged with review: true including reviewing-vitest-config from vitest-4 for detecting configuration deprecations and testing framework migration patterns.
Multiple utility libraries:
grep -E "lodash|underscore|ramda" package.json
Tree-Shaking Opportunities
Non-ES module imports:
grep -r "import .* from 'lodash'" src/
grep -r "import _ from" src/
Look for: Default imports that could be named imports from ES module versions
Large utility usage:
grep -rn "from 'lodash'" src/ | head -20
Look for: Single function imports that could be inlined
Dead Code Patterns
Exported but never imported:
# Find all exports
grep -rn "export (const|function|class|interface|type)" src/
# For each export, check if imported elsewhere
grep -r "import.*{ExportName}" src/
Unused utility files:
# Find utility/helper files
find src/ -name "*util*" -o -name "*helper*"
# Check if imported
grep -r "from.*utils" src/
Deprecated code markers:
grep -rn "@deprecated\|DEPRECATED\|DO NOT USE" src/
Severity Mapping
Use these criteria when classifying findings:
| Pattern | Severity | Rationale | | ------------------------------------- | -------- | --------------------------- | | Vulnerable dependency (critical/high) | critical | Security risk in production | | Unused dependency >100kb | high | Significant bundle bloat | | Multiple packages for same purpose | high | Maintenance overhead | | Vulnerable dependency (moderate) | medium | Security risk, lower impact | | Unused dependency 10-100kb | medium | Moderate bundle bloat | | Unused devDependency | medium | Maintenance overhead | | Single-use utility from large library | medium | Tree-shaking opportunity | | Unused dependency <10kb | nitpick | Minimal impact | | Loose version ranges (^, ~) | nitpick | Potential instability | | Incorrect dependency category | nitpick | Organization issue |
Common Dependency Patterns
Removal Candidates
High Confidence (Unused):
- Found by depcheck/Knip
- Zero imports in codebase
- Not in ignored files (scripts, config)
- Not peer dependency of other packages
Medium Confidence (Low Usage):
- 1-2 imports total
- Used only for simple operations
- Easy to inline or replace
- Alternative is smaller/native
Consider Alternatives:
- Large package (>50kb) with light usage
- Deprecated/unmaintained package
- Duplicate functionality exists
- Native alternative available
Size Reference (Approximate)
| Category | Examples | Typical Size | | ------------------- | ----------------------------- | ------------ | | Heavy date libs | moment | 70kb | | Light date libs | dayjs, date-fns (tree-shaken) | 2-10kb | | Heavy utilities | lodash (full) | 70kb | | Light utilities | lodash-es (per function) | 1-5kb | | HTTP clients | axios, node-fetch | 10-15kb | | Native alternatives | fetch, Intl API | 0kb |
Refactoring Patterns
Replace large utility with inline:
// Before: lodash.debounce (71kb library)
import _ from 'lodash';
_.debounce(fn, 300);
// After: inline (0kb)
const debounce = (fn, ms) => {
let timeout;
return (...args) => {
clearTimeout(timeout);
timeout = setTimeout(() => fn(...args), ms);
};
};
Replace with tree-shakeable alternative:
// Before: full library
import moment from 'moment';
moment(date).format('YYYY-MM-DD');
// After: specific function
import { format } from 'date-fns/format';
format(date, 'yyyy-MM-dd');
Replace with native alternative:
// Before: lodash
import { isEmpty } from 'lodash';
isEmpty(obj);
// After: native
Object.keys(obj).length === 0;
Analysis Priority
-
Run automated scripts first (if tools available)
- review-unused-deps.sh for unused packages
- review-unused-code.sh for dead code
- npm audit for security issues
-
Parse script outputs for package names and file locations
-
Verify usage with grep for each flagged package
- Count imports
- Check import patterns (default vs named)
- Identify usage locations
-
Read package.json to check:
- Version ranges
- Dependency categorization
- Duplicate functionality
-
Cross-reference findings:
- Unused package + large size = high priority
- Low usage + available alternative = medium priority
- Vulnerable package + unused = critical priority
Integration Notes
- This skill provides detection methods and patterns only
- Output formatting is handled by the calling agent
- Severity classification should align with agent's schema
- Do NOT include effort estimates, bundle size savings calculations, or success criteria
- Do NOT provide refactoring instructions beyond pattern examples
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/npm-dependencies-review-mmlj2of7/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/npm-dependencies-review-mmlj2of7' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/npm-dependencies-review-mmlj2of7/download' --output '.skill-downloads/npm-dependencies-review-mmlj2of7/SKILL.md.part' && mv '.skill-downloads/npm-dependencies-review-mmlj2of7/SKILL.md.part' '.skill-downloads/npm-dependencies-review-mmlj2of7/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.
Outils déclarés par l’auteur (à vérifier dans votre agent) : Bash, Read, Grep, Glob
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/npm-dependencies-review-mmlj2of7/SKILL.md' && test -s '.skill-downloads/npm-dependencies-review-mmlj2of7/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/reviewing-dependencies' && cp -R '.skill-downloads/npm-dependencies-review-mmlj2of7' '.claude/skills/reviewing-dependencies'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/npm-dependencies-review-mmlj2of7'openskills read 'npm-dependencies-review-mmlj2of7'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/npm-dependencies-review-mmlj2of7/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.