# CodePulse CLI — Documentation Complète (Partie 1/3) > Version: **5.2.0** | Paquet: `@archpulse/codepulse` | Licence: MIT | Node.js ≥ 16 --- ## Table des Matières - [Partie 1](#): Aperçu, stack, architecture, installation, configuration, `scan` - [Partie 2](#): `watch`, `diff`, `time-machine`, `health-trend`, `heatmap`, `coupling`, `audit` - [Partie 3](#): `profile`, `ghost`, `synth`, `verify`, `pr-risk`, `review`, `agent`, `license`, `detect-reward-hacking`, Serveur MCP, GitHub Actions, Plugins, i18n --- ## 1. Qu'est-ce que CodePulse **CodePulse** est un outil CLI pour l'analyse statique et structurelle approfondie du code, conçu pour les grands projets JS/TS et Python. Sa philosophie est **"Engineering Honesty"** (L'honnêteté technique) : l'outil révèle ouvertement les problèmes d'architecture sans jamais les cacher. ### Fonctionnalités Clés - Construit un **graphe de dépendances** de l'ensemble du projet via l'analyse AST. - Détecte les **God Files** (fichiers monolithes), les **Critical Nodes** (nœuds critiques) et les **dépendances circulaires**. - Calcule un **Health Score** (score de santé, 0–100) comme métrique agrégée de l'état de santé de la base de code. - Identifie les **hotspots** — des fichiers présentant à la fois une complexité élevée ET des modifications fréquentes. - Analyse le **Temporal Coupling** (couplage temporel) à travers l'historique Git. - Lance des **linters externes** (ESLint, Oxlint, Ruff, Cppcheck, ShellCheck, GolangCI-Lint, etc.). - Fournit un **serveur MCP** intégré pour les agents IA (Claude, Cursor, Cline, Gemini, Copilot, etc.). - Supporte une **machine à remonter le temps** (Time Machine) pour analyser l'évolution des métriques à travers l'historique Git. - Génère des **rapports HTML**, des **fichiers SARIF** et des **badges SVG**. - Envoie des **alertes webhook** à Slack, Discord ou Telegram en cas de dégradation du Health Score. - Fonctionne comme une **GitHub Action** native pour l'intégration continue (CI/CD). --- ## 2. Stack Technologique | Catégorie | Technologie | Rôle | |---|---|---| | Langage | TypeScript 6.0 | Base de code complète du CLI | | Build | `tsc` | Compilation dans le dossier `dist/` | | Framework CLI | Commander.js 14 | Analyse des commandes et des drapeaux (flags) | | AST (JS/TS) | `@babel/parser` + `@babel/traverse` | Analyse syntaxique des fichiers JS/TS | | AST (avancé) | `ts-morph` 28 | Analyse approfondie de la structure TypeScript | | Dashboard TUI | `blessed` + `blessed-contrib` | Interface dashboard dans le terminal (`watch`, `heatmap`) | | Pseudoshell | `node-pty` | Terminal intégré au sein de l'interface `watch` | | Surveillance de fichiers | `chokidar` 5 | Suivi réactif des modifications en temps réel | | Spinners | `ora` | Indicateurs de progression en ligne de commande | | Couleurs | `chalk` 4 | Formatage de la sortie couleur dans le terminal | | Templates | `handlebars` | Génération de rapports HTML | | Glob | `glob` 13 | Recherche de fichiers par motifs | | API GitHub | `@octokit/rest` + `@actions/core` | Intégration GitHub Actions et commentaires de PR | | MCP | `@modelcontextprotocol/sdk` | Serveur MCP pour intégrer des agents IA | | Tests | `vitest` 4 | Tests unitaires | --- ## 3. Architecture du Projet ``` codepulse-cli/ ├── src/ │ ├── index.ts # Point d'entrée du CLI │ ├── explain.ts # Base de connaissances sur les concepts d'architecture │ ├── mcp-setup.ts # Configuration MCP (fichiers de configuration des agents) │ ├── mcp-paths.ts # Chemins vers les fichiers de configuration MCP │ │ │ ├── cli/commands/ # Enregistrement des commandes CLI (Commander.js) │ │ ├── advanced-commands.ts # coupling, pr-risk, explain, time-machine, profile, plugins │ │ └── ... │ │ │ ├── commands/ # Implémentation des commandes │ │ ├── scan.ts (412 lignes) # codepulse scan │ │ ├── watch.ts (1868 lignes) # codepulse watch — TUI dashboard (God File) │ │ ├── diff.ts (435 lignes) # codepulse diff │ │ ├── time-machine.ts (197 lignes) # codepulse time-machine │ │ ├── health-trend.ts (369 lignes) # codepulse health-trend │ │ ├── heatmap.ts (247 lignes) # codepulse heatmap │ │ ├── coupling.ts (60 lignes) # codepulse coupling │ │ ├── audit.ts (98 lignes) # codepulse audit │ │ ├── profile.ts (174 lignes) # codepulse profile │ │ ├── ghost.ts (65 lignes) # codepulse ghost │ │ ├── review.ts (117 lignes) # codepulse review │ │ ├── synth.ts (80 lignes) # codepulse synth │ │ ├── verify.ts (218 lignes) # codepulse verify │ │ ├── pr-risk.ts (195 lignes) # codepulse pr-risk │ │ ├── reward-hacking.ts(131 lignes) # codepulse detect-reward-hacking │ │ ├── agent.ts (342 lignes) # codepulse agent │ │ ├── license.ts (204 lignes) # codepulse license │ │ ├── badge.ts # Génération de badge SVG │ │ ├── install-deps.ts (398 lignes) # Installation automatique des linters │ │ └── output.ts # Formatage des statistiques │ │ │ ├── analyzer/ # Cœur d'analyse │ │ ├── index.ts # Fonction principale analyze() │ │ ├── scanner.ts # Recherche de fichiers (glob) │ │ ├── ast.ts # Analyse AST JS/TS via Babel │ │ ├── graph.ts # Graphe de dépendances, centralité, nœuds critiques │ │ ├── git.ts # Métriques Git : churn, couplage temporel │ │ ├── workers.ts # Worker threads pour l'analyse parallèle │ │ ├── cache.ts # Moteur de cache (compression zlib) │ │ ├── python.ts # Analyse des fichiers Python │ │ ├── rust.ts # Analyse des fichiers Rust │ │ ├── generic.ts # Analyse des autres langages │ │ ├── ast-fingerprint.ts # Détection des doublons de fonctions par AST │ │ ├── architecture.ts # Validation des couches d'architecture │ │ ├── context.ts # Chargement du fichier .codepulse.json │ │ ├── zlib.ts # Outils de compression │ │ └── time-machine/ │ │ ├── engine.ts # Moteur d'analyse de l'historique Git │ │ ├── cache.ts # Cache des snapshots (.codepulse-cache/snapshots/) │ │ ├── sampling.ts # Stratégies d'échantillonnage de commits │ │ └── git-diff.ts # Comparaison de commits (diffs) │ │ │ ├── rules/ # Règles et linters │ │ ├── index.ts # Orchestrateur (exécute toutes les règles) │ │ ├── security.ts # Analyse de sécurité (basée sur des regex) │ │ ├── fastLinter.ts # Linter rapide intégré │ │ ├── agents/registry.ts # Registre d'agents IA + instructions maîtres de CodePulse │ │ └── linters/ # Adaptateurs pour linters externes │ │ ├── javascript.ts # ESLint / Oxlint │ │ ├── python.ts # Ruff │ │ ├── rust.ts # Clippy │ │ ├── go.ts # GolangCI-Lint, Revive │ │ ├── cpp.ts # Cppcheck │ │ ├── lua.ts # Luacheck, Selene │ │ └── shell.ts # ShellCheck │ │ │ ├── mcp/ # Serveur MCP │ │ ├── server.ts # Lancement MCP (transport stdio) │ │ ├── handlers-health.ts # codepulse_identity, get_project_stats, analyze_project... │ │ ├── handlers-architecture.ts# visualize_subgraph, get_blast_radius, find_cycles... │ │ ├── handlers-agent.ts # optimize_context, simulate_edit, store_memory... │ │ └── definitions/ # Schémas JSON des outils MCP │ │ │ ├── reporter/ │ │ ├── html.ts # Génération de rapports HTML │ │ ├── sarif.ts # Génération de fichiers SARIF │ │ ├── health.ts # Calcul du Health Score │ │ └── stats.ts # Agrégation de statistiques │ │ │ ├── utils/ │ │ ├── i18n.ts # Internationalisation (7 langues) │ │ ├── webhooks.ts # Intégration d'alertes : Slack, Discord, Telegram │ │ ├── plugins.ts # Chargement de plugins │ │ └── terminal.ts # Fallback UTF-8 / ASCII pour caractères spéciaux du terminal │ │ │ └── locales/ # Fichiers d'internationalisation (JSON) │ └── en.json, ru.json, ua.json, de.json, fr.json, ko.json, cs.json │ ├── plugins/ # Dossier pour les plugins utilisateur ├── rules/ # Règles personnalisées ├── translations/ # README traduits dans d'autres langues ├── action.yml # GitHub Action └── .codepulse.json # Fichier de configuration du projet ``` --- ## 4. Installation ### Globalement via npm ```bash npm install -g @archpulse/codepulse ``` ### Via npx (sans installation permanente) ```bash npx @archpulse/codepulse scan . ``` ### À partir des sources ```bash git clone https://github.com/archpulse/codepulse-cli.git cd codepulse-cli npm install npm run build npm link # Crée un lien symbolique global 'codepulse' ``` ### Configuration Requise - **Node.js ≥ 16.0.0** - Git (requis pour le churn, le couplage temporel et les analyses time-machine) - Optionnel : `oxlint`, `ruff`, `cppcheck`, `shellcheck`, `golangci-lint` (peuvent être installés automatiquement via la commande `install-deps`) --- ## 5. Configuration `.codepulse.json` Le fichier `.codepulse.json` situé à la racine du projet contrôle le comportement de l'analyseur. ### Schéma complet annoté ```json { "exclude": ["benchmark", "dist", "node_modules"], "rootDir": "src", "godFileLines": 500, "godFileImports": 20, "criticalNodeThreshold": 15, "alerts": { "slack": "$CODEPULSE_SLACK_WEBHOOK", "discord": "$CODEPULSE_DISCORD_WEBHOOK", "telegram": { "token": "$TELEGRAM_BOT_TOKEN", "chatId": "$TELEGRAM_CHAT_ID" }, "threshold": 80, "branches": ["main", "master"] }, "architecture": { "layers": [ { "name": "Domain", "pattern": "src/domain/**", "allowDependenciesFrom": [] }, { "name": "Application", "pattern": "src/commands/**", "allowDependenciesFrom": ["Domain"] } ] } } ``` ### Paramètres | Paramètre | Type | Valeur par défaut | Description | |---|---|---|---| | `exclude` | `string[]` | `[]` | Dossiers ou motifs exclus de l'analyse | | `rootDir` | `string` | `"."` | Dossier racine pour le scan | | `godFileLines` | `number` | `500` | Seuil de lignes à partir duquel un fichier est considéré comme un God File | | `godFileImports` | `number` | `20` | Seuil d'imports à partir duquel un fichier est considéré comme un God File | | `criticalNodeThreshold` | `number` | `15` | Seuil de centralité à partir duquel un nœud est considéré comme critique | | `alerts.slack` | `string` | — | URL pour le webhook Slack Incoming | | `alerts.discord` | `string` | — | URL pour le webhook Discord | | `alerts.telegram.token` | `string` | — | Token du bot Telegram | | `alerts.telegram.chatId` | `string` | — | ID de chat pour le canal/chat Telegram | | `alerts.threshold` | `number` | `80` | L'alerte est envoyée si le Health Score descend sous ce seuil | | `alerts.branches` | `string[]` | `["main","master"]` | Branches pour lesquelles les alertes webhook sont actives | | `architecture.layers` | `Layer[]` | — | Définition des couches d'architecture et des dépendances autorisées | > **Variables d'environnement :** Les valeurs commençant par `$` (ex. `"$VAR_NAME"`) sont automatiquement remplacées par les valeurs correspondantes de `process.env` lors du chargement de la configuration. ### Couches d'architecture (`architecture.layers`) Permettent d'imposer des frontières entre les modules de votre projet. Si un module viole les règles de dépendances, CodePulse enregistre une erreur `architecture-violation`. ```json { "name": "Infrastructure", "pattern": "src/db/**", "allowDependenciesFrom": ["Domain", "Application"] } ``` - `name` — Nom libre de la couche - `pattern` — Motif glob associant les fichiers à la couche - `allowDependenciesFrom` — Liste des couches à partir desquelles l'import est autorisé --- ## 6. Commande `scan` La commande principale pour exécuter une analyse complète et ponctuelle du projet. ### Syntaxe ```bash codepulse scan [dir] [options] ``` ### Étapes du `scan` (pas à pas) 1. Vérifie l'existence du dossier cible. 2. Installe automatiquement les linters manquants (`runInstallDepsForProject`). 3. Sélectionne le moteur de lint : ESLint / Oxlint / auto. 4. Lance `analyze()` — le cœur du système (AST, graphe, métriques Git, linters, règles de sécurité). 5. Génère un rapport HTML interactif dans `.codepulse-report/index.html`. 6. Calcule le Health Score et génère le badge SVG `.codepulse-report/badge.svg`. 7. Génère optionnellement un rapport au format SARIF. 8. Envoie des alertes webhook à Slack, Discord ou Telegram si configurés et le seuil est franchi. 9. Affiche un résumé clair des résultats dans le terminal. ### Tous les drapeaux (Flags) | Drapeau | Description | |---|---| | `--json` | Affiche les résultats au format JSON sur stdout (masque les sorties UI standards) | | `--sarif` | Génère un rapport SARIF pour l'intégration avec GitHub Code Scanning | | `--open` | Ouvre automatiquement le rapport HTML dans le navigateur après analyse | | `--strict` | Mode strict : les avertissements `dead-export` et `god-file` deviennent des `error` | | `--debug` | Affiche uniquement les erreurs système (masque les rapports des linters) | | `--ld` | Diagnostic linter uniquement (mode debug du linter) | | `--focus ` | Filtre les résultats par type de problème | | `--severity ` | Filtre par gravité : `error`, `warning`, `info` | | `--group-by ` | Groupe la sortie par : `file`, `type`, `severity` | | `--max-issues ` | Affiche un maximum de N problèmes | | `--ignore-warnings` / `-iw` | Masque tous les avertissements (warnings) | | `--fail-on ` | Renvoie un code de retour 1 si des erreurs de la gravité spécifiée sont trouvées | | `--precision` / `--eslint` | Force l'utilisation d'ESLint (plus précis, mais plus lent) | | `--engine oxlint` | Force l'utilisation d'Oxlint (extrêmement rapide) | ### Raccourcis (Shortcuts) | Raccourci | Équivalent | |---|---| | `-ld` | `--ld` | | `-iw` | `--ignore-warnings` | | `-diw` | `--debug --ignore-warnings` | | `-ldiw` | `--ld --ignore-warnings` | ### Types de problèmes (`--focus`) | Type | Description | |---|---| | `dead-export` | Symbole exporté mais non utilisé dans le projet | | `god-file` | Fichier géant monolithique (God File) | | `critical-node` | Nœud critique avec une centralité élevée dans le graphe | | `circular-dependency` | Dépendance circulaire entre modules | | `vulnerability` | Risque de sécurité / faille identifiée | | `architecture-violation` | Violation des couches d'architecture définies | | `linter` | Erreur trouvée par un linter externe | | `high-complexity` | Complexité cyclomatique élevée | | `duplication` | Code dupliqué (AST Fingerprinting) | ### Exemples d'utilisation ```bash # Analyse simple du dossier actuel codepulse scan . # Sortie JSON pour intégration continue (CI/CD) codepulse scan . --json # Afficher uniquement les erreurs critiques codepulse scan . --severity error # Mode strict et échec en cas d'erreurs codepulse scan . --strict --fail-on error # Se concentrer sur le code inutilisé codepulse scan . --focus dead-export # Regrouper les résultats par fichiers codepulse scan . --group-by file # Générer un fichier SARIF pour l'onglet GitHub Security codepulse scan . --sarif # Analyse précise via ESLint codepulse scan . --precision # Ouvrir le rapport HTML après analyse codepulse scan . --open ``` ### Rendu du terminal (Exemple) ``` ◆ CodePulse v5 — Engineering Honesty Scanning /path/to/project Engine: Auto (Resolving...) ✔ Analysis complete! Report: .codepulse-report/index.html Badge: .codepulse-report/badge.svg Score: 87/100 Files: 101 Lines: 16486 AvgComplexity: 2.90 Issues: 2 errors 1 warning (3 total) ``` ### Comment est calculé le Health Score | Facteur | Pénalité | |---|---| | God File | −10 points par fichier | | Dépendance circulaire | −8 points par cycle | | Critical Node | −5 points par nœud | | Faille de sécurité | −7 points par incident | | Dead Export | −1 point par symbole | | Violation d'architecture | −6 points par incident | | Hotspot | −2 points par fichier | Plage : **0–100**. Indicateur de couleur : 🟢 ≥ 90 / 🟡 ≥ 70 / 🔴 < 70. --- # CodePulse CLI — Documentation Complète (Partie 2/3) ## 7. Commande `watch` Un tableau de bord interactif et réactif dans le terminal (TUI - Terminal User Interface). Surveille les fichiers en temps réel et recalcule les métriques à chaque sauvegarde. ### Syntaxe ```bash codepulse watch [dir] ``` ### Panneaux du Dashboard L'interface TUI est basée sur un viewport scrollable (style Niri) et peut être pilotée avec `Tab`. - **Health Gauge:** Jauge visuelle affichant le Health Score (0–100 %) - **Cockpit Terminal:** Émulateur de terminal intégré pour lancer des commandes - **Telemetry:** Métriques numériques clés (Score, fichiers, lignes, erreurs, etc.) - **Complexity Chart:** Évolution de la complexité cyclomatique moyenne - **Hotspots Table:** Les 5 fichiers les plus risqués (Hotspots) - **Hazard Log:** Tableau affichant toutes les erreurs et avertissements trouvés dans le code - **Warp Log:** Journal système (activités Git, webhooks, événements de système de fichiers) - **Heatmap** (masqué) : Carte thermique interactive des risques (activable via Add Mode) - **Coupling** (masqué) : Analyse du couplage temporel (activable via Add Mode) - **MCP Box** (masqué) : Statut et informations sur le serveur MCP intégré - **Clock Bar:** Heure actuelle (12h/24h selon la localisation) et raccourcis clavier ### Raccourcis Clavier pour le Contrôle | Touche | Action | |---|---| | `Tab` | Changement cyclique du focus entre les panneaux | | `1`–`9` | Focus direct sur un panneau spécifique via son numéro | | `Esc` | Retirer le focus du panneau actuel (mode de défilement libre) | | `c` | Réduire / agrandir le panneau actif | | `+` / `-` | Augmenter / diminuer la hauteur du panneau actif | | `[` / `]` | Diminuer / augmenter la largeur du panneau actif | | `a` | Ouvrir le **Add Mode** (pour ajouter des panneaux masqués ou des terminaux) | | `s` | Ouvrir le **Swap Mode** (pour échanger les positions de deux panneaux) | | `x` | Fermer le panneau actif | | `Alt + ↑` / `Alt + ↓` | Défiler tout le viewport vers le haut / bas (style Niri) | | `Ctrl+C` | Quitter le mode watch | ### Cockpit Terminal Le panneau supérieur gauche contient un terminal intégré, vous permettant de lancer des commandes CodePulse directement sans quitter le dashboard. Appuyez sur `Tab` pour l'activer, saisissez votre commande puis validez avec `Enter`. **Commandes disponibles dans la console Cockpit :** ``` scan audit coupling heatmap health-trend ghost dead graph badge review synth verify detect-reward-hacking diff pr-risk explain time-machine profile stats plugins list help ``` La sortie de la commande s'affiche directement dans le panneau (historique jusqu'à 120 lignes). Les couleurs ANSI sont automatiquement nettoyées. --- ## 8. Commande `diff` Compare la santé architecturale de la branche actuelle avec une branche cible. ### Syntaxe ```bash codepulse diff [options] ``` ### Fonctionnement de `diff` 1. Enregistre le nom de la branche actuelle. 2. Effectue une analyse de l'état actuel (`analyze()`). 3. Sauvegarde les modifications non validées via un `git stash`. 4. Bascule sur la branche cible (`git checkout `) et l'analyse. 5. Revient sur la branche d'origine et restaure les modifications non validées (`git stash pop`). 6. Génère un rapport de comparaison des différences. --- ## 9. Commande `time-machine` Analyse l'évolution des dépendances et de l'architecture du projet à travers l'historique Git. ### Syntaxe ```bash codepulse time-machine [dir] [options] ``` ### Stratégies d'Échantillonnage (`--strategy`) - `max-points`: Sélectionne N points uniformément répartis sur tout l'historique (Standard : 30) - `every-nth`: Analyse un commit sur N dans l'historique - `interval`: Échantillonnage basé sur le temps (`daily`, `weekly`, `monthly`) - `tag-only`: Analyse uniquement les commits taggés (Releases) Utilise un cache de snapshots (`.codepulse-cache/snapshots/`) pour éviter d'analyser à nouveau des commits déjà traités. --- ## 10. Commande `health-trend` Visualise l'évolution des métriques à partir des snapshots stockés par la Time Machine, à l'aide de sparklines Unicode dans le terminal. ### Syntaxe ```bash codepulse health-trend [dir] [options] ``` ### Rendu du terminal (Exemple) ``` ══════════════════════════════════════════════════════════════ Health Score Evolution ══════════════════════════════════════════════════════════════ Health ▅▆▇▇▆▅▄▄▅▆▆▇▇ 95 → 82 (↓13) Regressing ✗ Complex ▂▂▃▃▃▄▄▄▄▅▅▅▅ 2.1 → 2.9 (↑0.8) Regressing ✗ Files ▂▃▃▄▄▄▅▅▆▆▆▇▇ 45 → 101 (+56) Growing Issues ▁▁▁▂▂▂▃▃▄▄▄▅▅ 0 → 3 (↑3) Regressing ✗ ``` --- ## 11. Commande `heatmap` Affiche une carte thermique interactive des risques de tous les fichiers dans le terminal (TUI). ### Syntaxe ```bash codepulse heatmap [dir] ``` ### Calcul du Risque (Risk Score) ``` Risk = Complexity × log₂(Churn + 1) × (1 + Centrality / MaxCentrality) ``` - **Complexity:** Complexité cyclomatique du code dans le fichier. - **Churn:** Nombre de modifications (commits) du fichier dans l'historique Git. - **Centrality:** Importance et impact du fichier dans le graphe de dépendances. --- ## 12. Commande `coupling` Détecte les fichiers fréquemment modifiés ensemble dans les mêmes commits (Temporal Coupling). ### Syntaxe ```bash codepulse coupling [dir] ``` ### Qu'est-ce que le Temporal Coupling Si deux fichiers A et B sont presque toujours (ex. dans 80 % des cas) modifiés ensemble lors d'un commit, ils présentent un **couplage temporel**. C'est une forme de dépendance invisible que les imports standards ne révèlent pas. Cela indique souvent une violation du principe de responsabilité unique (SRP). --- ## 13. Commande `audit` Réalise un audit architectural approfondi et génère un fichier `AUDIT.md` à la racine du projet. ### Syntaxe ```bash codepulse audit [dir] ``` --- # CodePulse CLI — Documentation Complète (Partie 3/3) ## 14. Commande `profile` Relie les données d'un profileur (V8 CPU ou Python cProfile) directement aux métriques AST du code afin de localiser précisément les faiblesses de performance. ### Syntaxe ```bash codepulse profile [options] ``` --- ## 15. Commande `ghost` Calcule l'impact architectural (« Blast Radius ») de modifications potentielles sur un fichier spécifique. ### Syntaxe ```bash codepulse ghost [options] ``` --- ## 16. Commande `synth` Génère automatiquement un plan de tests de stress et de simulation de pannes pour les composants critiques du projet. Les résultats sont sauvegardés dans `STRESS_TEST_PLAN.md`. --- ## 17. Commande `verify` Une vérification intelligente et complète de l'intégrité du projet : Typecheck → Build → Lint → Tests. Identifie les fichiers modifiés via Git et utilise le graphe de dépendances pour exécuter de manière ciblée uniquement les tests impactés, accélérant ainsi le cycle de développement. --- ## 18. Commande `pr-risk` Évalue sur une échelle de 0 à 100 le risque architectural et l'impact des modifications proposées dans un Pull Request. Si des couplages temporels importants (Temporal Coupling ≥ 70 %) sont ignorés ou oubliés, une alerte est affichée. --- ## 19. Commande `review` Un outil automatisé pour l'intégration continue (CI/CD) : effectue une analyse statique, évalue les risques d'une PR et poste le rapport Markdown directement en commentaire dans le Pull Request sur GitHub (`--github`). --- ## 20. Commande `agent` Configure des règles et des comportements pour les agents IA de développement et les IDE (ex. Cursor, Claude Code, Antigravity, etc.). Génère des fichiers spécifiques tels que `.cursorrules`, `.clinerules`, `CLAUDE.md` ou `.antigravityrules` incluant le protocole en 5 phases de CodePulse. --- ## 21. Commande `license` Génère un fichier de licence open-source (`LICENSE`) pour votre projet. Supporte de nombreuses licences telles que MIT, ISC, Apache, GPL, etc. --- ## 22. Commande `detect-reward-hacking` Diagnostique et détecte les tentatives d'agents IA visant à contourner ou manipuler les tests et benchmarks (par exemple, par le biais de raccourcis I/O hardcodés ou de tables de correspondance anormalement grandes simulant de faux calculs). --- ## 23. Commande `install-deps` Analyse les types de fichiers du projet et installe automatiquement les linters externes spécifiques à votre plateforme (Ruff, Cppcheck, ShellCheck, etc.) via les gestionnaires de paquets disponibles (Apt, Brew, Pacman, etc.). --- ## 24. Serveur Model Context Protocol (MCP) CodePulse embarque un serveur **MCP** complet, permettant aux assistants IA d'interagir directement avec votre projet. ```bash codepulse mcp # Lance le serveur via transport Stdio codepulse mcp setup # Enregistre le serveur dans Claude Desktop / Cursor ``` --- ## 25. GitHub Actions Une action GitHub pour automatiser le contrôle qualité dans vos pipelines CI/CD : ```yaml - name: CodePulse Review uses: archpulse/codepulse-cli@v5 with: command: review github_token: ${{ secrets.GITHUB_TOKEN }} ``` --- ## 26. Système de Plugins Permet d'ajouter des règles d'analyse personnalisées. Les plugins sont placés dans le dossier `plugins/` à la racine du projet ou globalement sous `~/.codepulse/plugins`. --- ## 27. Internationalisation (i18n) CodePulse prend en charge 7 langues : l'anglais (`en`), le russe (`ru`), l'ukrainien (`ua`), l'allemand (`de`), le français (`fr`), le coréen (`ko`) et le tchèque (`cs`). La valeur par défaut peut être modifiée avec : ```bash codepulse lang fr ``` --- ## 28. Codes de Retour Système (Exit Codes) - `0` — Analyse réussie, aucun problème critique identifié. - `1` — Erreurs critiques trouvées (en mode `--strict` / `--fail-on error`). - `1` — Le risque des modifications de la PR dépasse la limite autorisée. - `1` — Échec de la vérification du projet via la commande `verify`. --- ## 29. Antisèche (Cheat Sheet) ```bash # Analyse simple et ponctuelle codepulse scan . # Lancement de la surveillance interactive en temps réel codepulse watch . # Comparaison de branches codepulse diff main --threshold 5 # Visualisation des risques de fichiers dans la TUI codepulse heatmap . # Effectuer un audit d'architecture complet codepulse audit . # Configurer les règles IA pour Cursor codepulse agent cursor default ```