# CodePulse CLI — Vollständige Dokumentation (Teil 1/3) > Version: **5.2.0** | Paket: `@archpulse/codepulse` | Lizenz: MIT | Node.js ≥ 16 --- ## Inhaltsverzeichnis - [Teil 1](#): Übersicht, Stack, Architektur, Installation, Konfiguration, `scan` - [Teil 2](#): `watch`, `diff`, `time-machine`, `health-trend`, `heatmap`, `coupling`, `audit` - [Teil 3](#): `profile`, `ghost`, `synth`, `verify`, `pr-risk`, `review`, `agent`, `license`, `detect-reward-hacking`, MCP-Server, GitHub Actions, Plugins, i18n --- ## 1. Was ist CodePulse **CodePulse** ist ein CLI-Werkzeug zur tiefen statischen und strukturellen Codeanalyse, das speziell für große JS/TS- und Python-Projekte entwickelt wurde. Seine Philosophie ist **„Engineering Honesty“** (Ingenieurmäßige Ehrlichkeit): Das Tool zeigt architektonische Probleme ungeschönt auf, ohne sie zu verbergen. ### Hauptfunktionen - Erstellt einen **Abhängigkeitsgraphen** des gesamten Projekts mittels AST-Analyse. - Erkennt **God Files** (monolithische Dateien), **Critical Nodes** (kritische Knoten) und **zirkuläre Abhängigkeiten**. - Berechnet den **Health Score** (Gesundheitswert, 0–100) als aggregierte Kennzahl für die Gesundheit der Codebasis. - Identifiziert **Hotspots** — Dateien mit hoher Komplexität UND hoher Änderungsfrequenz. - Analysiert **Temporal Coupling** (temporale Kopplung) anhand der Git-Historie. - Führt **externe Linter** aus (ESLint, Oxlint, Ruff, Cppcheck, ShellCheck, GolangCI-Lint usw.). - Bietet einen integrierten **MCP-Server** für die Anbindung von AI-Agenten (Claude, Cursor, Cline, Gemini, Copilot usw.). - Unterstützt eine **Zeitmaschine** (Time Machine) zur Analyse der Entwicklung von Metriken über die Git-Historie. - Generiert **HTML-Berichte**, **SARIF-Dateien** und **SVG-Badges**. - Sendet **Webhook-Alerts** an Slack, Discord oder Telegram bei einer Verschlechterung des Health Scores. - Funktioniert als native **GitHub Action** zur Integration in CI/CD-Pipelines. --- ## 2. Technologischer Stack | Kategorie | Technologie | Zweck | |---|---|---| | Sprache | TypeScript 6.0 | Gesamte Codebasis der CLI | | Build | `tsc` | Kompilierung in den Ordner `dist/` | | CLI-Framework | Commander.js 14 | Befehls- und Flag-Parsing | | AST (JS/TS) | `@babel/parser` + `@babel/traverse` | Syntaxanalyse von JS/TS-Dateien | | AST (fortgeschritten) | `ts-morph` 28 | Tiefe TypeScript-Strukturanalyse | | TUI-Dashboard | `blessed` + `blessed-contrib` | Terminal-Dashboard-Schnittstelle (`watch`, `heatmap`) | | Pseudoshell | `node-pty` | Integriertes Terminal innerhalb von `watch` | | Dateiüberwachung | `chokidar` 5 | Reaktive Echtzeit-Dateiverfolgung | | Spinner | `ora` | Fortschrittsanzeigen im CLI | | Farben | `chalk` 4 | Formatierung von Farbausgaben im Terminal | | Templates | `handlebars` | HTML-Berichtgenerierung | | Glob | `glob` 13 | Dateisuche nach Mustern | | GitHub API | `@octokit/rest` + `@actions/core` | GitHub Actions-Integration und PR-Kommentare | | MCP | `@modelcontextprotocol/sdk` | MCP-Server zur Integration von AI-Agenten | | Tests | `vitest` 4 | Unit-Tests | --- ## 3. Projektarchitektur ``` codepulse-cli/ ├── src/ │ ├── index.ts # CLI-Einstiegspunkt │ ├── explain.ts # Wissensdatenbank zu Architekturkonzepten │ ├── mcp-setup.ts # MCP-Setup (Konfigurationsdateien für Agenten) │ ├── mcp-paths.ts # Pfade zu den MCP-Konfigurationsdateien │ │ │ ├── cli/commands/ # Registrierung von CLI-Befehlen (Commander.js) │ │ ├── advanced-commands.ts # coupling, pr-risk, explain, time-machine, profile, plugins │ │ └── ... │ │ │ ├── commands/ # Implementierung der Befehle │ │ ├── scan.ts (412 Zeilen) # codepulse scan │ │ ├── watch.ts (1868 Zeilen) # codepulse watch — TUI-Dashboard (God File) │ │ ├── diff.ts (435 Zeilen) # codepulse diff │ │ ├── time-machine.ts (197 Zeilen) # codepulse time-machine │ │ ├── health-trend.ts (369 Zeilen) # codepulse health-trend │ │ ├── heatmap.ts (247 Zeilen) # codepulse heatmap │ │ ├── coupling.ts (60 Zeilen) # codepulse coupling │ │ ├── audit.ts (98 Zeilen) # codepulse audit │ │ ├── profile.ts (174 Zeilen) # codepulse profile │ │ ├── ghost.ts (65 Zeilen) # codepulse ghost │ │ ├── review.ts (117 Zeilen) # codepulse review │ │ ├── synth.ts (80 Zeilen) # codepulse synth │ │ ├── verify.ts (218 Zeilen) # codepulse verify │ │ ├── pr-risk.ts (195 Zeilen) # codepulse pr-risk │ │ ├── reward-hacking.ts(131 Zeilen) # codepulse detect-reward-hacking │ │ ├── agent.ts (342 Zeilen) # codepulse agent │ │ ├── license.ts (204 Zeilen) # codepulse license │ │ ├── badge.ts # SVG-Badge-Generierung │ │ ├── install-deps.ts (398 Zeilen) # Automatische Linter-Installation │ │ └── output.ts # Formatierung der Statistiken │ │ │ ├── analyzer/ # Analyse-Kern │ │ ├── index.ts # Hauptfunktion analyze() │ │ ├── scanner.ts # Glob-Dateisuche │ │ ├── ast.ts # Babel-basierte JS/TS-AST-Analyse │ │ ├── graph.ts # Abhängigkeitsgraph, Zentralität, kritische Knoten │ │ ├── git.ts # Git-Metriken: Churn, temporale Kopplung │ │ ├── workers.ts # Worker-Threads für parallele Analyse │ │ ├── cache.ts # Cache-Engine (zlib-Komprimierung) │ │ ├── python.ts # Analyse von Python-Dateien │ │ ├── rust.ts # Analyse von Rust-Dateien │ │ ├── generic.ts # Analyse anderer Sprachen │ │ ├── ast-fingerprint.ts # AST-basierte Duplikaterkennung │ │ ├── architecture.ts # Prüfung von Architekturschichten │ │ ├── context.ts # Laden von .codepulse.json │ │ ├── zlib.ts # Komprimierungs-Tools │ │ └── time-machine/ │ │ ├── engine.ts # Git-Historien-Analyse-Engine │ │ ├── cache.ts # Snapshots-Cache (.codepulse-cache/snapshots/) │ │ ├── sampling.ts # Commit-Sampling-Strategien │ │ └── git-diff.ts # Commit-Differenzen (Diffs) │ │ │ ├── rules/ # Regeln und Linter │ │ ├── index.ts # Orchestrator (führt alle Regeln aus) │ │ ├── security.ts # Sicherheitsanalyse (Regex-basiert) │ │ ├── fastLinter.ts # Schneller integrierter Linter │ │ ├── agents/registry.ts # AI-Agenten-Registry + Hauptinstruktionen von CodePulse │ │ └── linters/ # Adapter für externe Linter │ │ ├── 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/ # MCP-Server │ │ ├── server.ts # MCP-Start (stdio-Transport) │ │ ├── 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/ # JSON-Schemata der MCP-Tools │ │ │ ├── reporter/ │ │ ├── html.ts # HTML-Berichtgenerierung │ │ ├── sarif.ts # SARIF-Generierung │ │ ├── health.ts # Berechnung des Health Scores │ │ └── stats.ts # Aggregation von Statistiken │ │ │ ├── utils/ │ │ ├── i18n.ts # Lokalisierung (7 Sprachen) │ │ ├── webhooks.ts # Integration von Alerts: Slack, Discord, Telegram │ │ ├── plugins.ts # Laden von Plugins │ │ └── terminal.ts # UTF-8 / ASCII Fallback für Sonderzeichen im Terminal │ │ │ └── locales/ # Lokalisierungsdateien (JSON) │ └── en.json, ru.json, ua.json, de.json, fr.json, ko.json, cs.json │ ├── plugins/ # Verzeichnis für benutzerdefinierte Plugins ├── rules/ # Benutzerdefinierte Regeln ├── translations/ # Lokalisierte Versionen der README ├── action.yml # GitHub Action └── .codepulse.json # Konfigurationsdatei des Projekts ``` --- ## 4. Installation ### Global über npm ```bash npm install -g @archpulse/codepulse ``` ### Über npx (ohne permanente Installation) ```bash npx @archpulse/codepulse scan . ``` ### Aus dem Quellcode ```bash git clone https://github.com/archpulse/codepulse-cli.git cd codepulse-cli npm install npm run build npm link # Erstellt einen globalen Symlink 'codepulse' ``` ### Systemanforderungen - **Node.js ≥ 16.0.0** - Git (erforderlich für Churn, temporale Kopplung und Time-Machine-Analysen) - Optional: `oxlint`, `ruff`, `cppcheck`, `shellcheck`, `golangci-lint` (können über `install-deps` automatisch installiert werden) --- ## 5. Konfiguration `.codepulse.json` Die Datei `.codepulse.json` im Stammverzeichnis steuert das Verhalten des Analyzers. ### Vollständiges Schema mit Anmerkungen ```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"] } ] } } ``` ### Parameter | Parameter | Typ | Standardwert | Beschreibung | |---|---|---|---| | `exclude` | `string[]` | `[]` | Ordner oder Muster, die von der Analyse ausgeschlossen werden | | `rootDir` | `string` | `"."` | Stammverzeichnis für den Scan | | `godFileLines` | `number` | `500` | Zeilenlimit, ab dem eine Datei als God File eingestuft wird | | `godFileImports` | `number` | `20` | Import-Limit, ab dem eine Datei als God File eingestuft wird | | `criticalNodeThreshold` | `number` | `15` | Zentralitätslimit, ab dem ein Knoten als kritisch gilt | | `alerts.slack` | `string` | — | URL für Slack Incoming Webhook | | `alerts.discord` | `string` | — | URL für Discord Webhook | | `alerts.telegram.token` | `string` | — | Token des Telegram-Bots | | `alerts.telegram.chatId` | `string` | — | Chat-ID für Telegram-Kanäle/-Chats | | `alerts.threshold` | `number` | `80` | Alert wird gesendet, wenn der Health Score darunter fällt | | `alerts.branches` | `string[]` | `["main","master"]` | Branches, für die Webhook-Alerts aktiv sind | | `architecture.layers` | `Layer[]` | — | Definition von Architekturschichten und erlaubten Abhängigkeiten | > **Umgebungsvariablen:** Werte, die mit `$` beginnen (z. B. `"$VAR_NAME"`), werden beim Laden der Konfiguration automatisch durch die entsprechenden Werte aus `process.env` ersetzt. ### Architekturschichten (`architecture.layers`) Ermöglichen die Durchsetzung von Grenzen zwischen Modulen. Wenn ein Modul die Abhängigkeitsregeln verletzt, erzeugt CodePulse eine `architecture-violation`. ```json { "name": "Infrastructure", "pattern": "src/db/**", "allowDependenciesFrom": ["Domain", "Application"] } ``` - `name` — Beliebiger Name der Schicht - `pattern` — Glob-Muster zur Zuordnung der Dateien zur Schicht - `allowDependenciesFrom` — Liste der Schichten, aus denen importiert werden darf --- ## 6. Befehl `scan` Der Hauptbefehl zum Ausführen einer einmaligen vollständigen Analyse des Projekts. ### Syntax ```bash codepulse scan [dir] [options] ``` ### Ablauf von `scan` (Schritt für Schritt) 1. Überprüft die Existenz des Zielverzeichnisses. 2. Installiert automatisch fehlende Linter (`runInstallDepsForProject`). 3. Wählt die Lint-Engine aus: ESLint / Oxlint / auto. 4. Führt `analyze()` aus — den Kern des Systems (AST, Graph, Git-Metriken, Linter, Sicherheitsregeln). 5. Generiert einen interaktiven HTML-Bericht in `.codepulse-report/index.html`. 6. Berechnet den Health Score und generiert das SVG-Badge `.codepulse-report/badge.svg`. 7. Generiert optional eine Datei im SARIF-Format. 8. Sendet Webhook-Alerts an Slack, Discord oder Telegram, falls konfiguriert und das Limit unterschritten ist. 9. Gibt eine Übersicht der Ergebnisse im Terminal aus. ### Alle Flags | Flag | Beschreibung | |---|---| | `--json` | Gibt die Ergebnisse als JSON auf stdout aus (blendet Standard-UI-Ausgaben aus) | | `--sarif` | Generiert einen SARIF-Report für die Integration in GitHub Code Scanning | | `--open` | Öffnet den HTML-Bericht nach Abschluss automatisch im Browser | | `--strict` | Strenger Modus: `dead-export` und `god-file` werden als `error` gewertet | | `--debug` | Zeigt nur Fehler des Analyzers an (blendet Linter-Ausgaben aus) | | `--ld` | Nur Linter-Diagnose (Debug-Modus der Linter) | | `--focus ` | Filtert Ergebnisse nach Problemtyp | | `--severity ` | Filtert nach Schweregrad: `error`, `warning`, `info` | | `--group-by ` | Gruppiert die Ausgabe nach: `file`, `type`, `severity` | | `--max-issues ` | Zeigt maximal N Probleme an | | `--ignore-warnings` / `-iw` | Blendet alle Warnungen (warnings) aus | | `--fail-on ` | Beendet den Prozess mit Exit-Code 1, falls Fehler dieses Schweregrads gefunden werden | | `--precision` / `--eslint` | Erzwingt die Verwendung der ESLint-Engine (präziser, aber langsamer) | | `--engine oxlint` | Erzwingt die Verwendung der Oxlint-Engine (extrem schnell) | ### Abkürzungen (Shortcuts) | Abkürzung | Äquivalent | |---|---| | `-ld` | `--ld` | | `-iw` | `--ignore-warnings` | | `-diw` | `--debug --ignore-warnings` | | `-ldiw` | `--ld --ignore-warnings` | ### Problemtypen (`--focus`) | Typ | Beschreibung | |---|---| | `dead-export` | Nicht verwendeter exportierter Symbolname | | `god-file` | Übergroße Datei (God File) | | `critical-node` | Kritischer Knoten mit hoher Zentralität im Graphen | | `circular-dependency` | Zirkuläre Abhängigkeit zwischen Modulen | | `vulnerability` | Bekanntes Sicherheitsrisiko/Sicherheitslücke | | `architecture-violation` | Verletzung der definierten Architekturschichten | | `linter` | Von einem externen Linter gefundener Fehler | | `high-complexity` | Hohe zyklomatische Komplexität | | `duplication` | Duplizierter Code (AST Fingerprinting) | ### Beispiele für die Verwendung ```bash # Einfacher Scan des aktuellen Verzeichnisses codepulse scan . # JSON-Ausgabe für CI/CD-Pipelines codepulse scan . --json # Nur kritische Fehler anzeigen codepulse scan . --severity error # Strenger Modus und Abbruch des Prozesses bei Fehlern codepulse scan . --strict --fail-on error # Fokus auf ungenutzten Code codepulse scan . --focus dead-export # Gruppierung der Ergebnisse nach Dateien codepulse scan . --group-by file # Generierung einer SARIF-Datei für GitHub Security codepulse scan . --sarif # Präzise Analyse mittels ESLint codepulse scan . --precision # HTML-Bericht nach Abschluss öffnen codepulse scan . --open ``` ### Konsolenausgabe (Beispiel) ``` ◆ 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) ``` ### Berechnung des Health Scores | Faktor | Abzug | |---|---| | God File | −10 Punkte pro Datei | | Zirkuläre Abhängigkeit | −8 Punkte pro Zyklus | | Critical Node | −5 Punkte pro Knoten | | Sicherheitslücke | −7 Punkte pro Vorfall | | Dead Export | −1 Punkt pro Symbol | | Architekturverletzung | −6 Punkte pro Vorfall | | Hotspot | −2 Punkte pro Datei | Bereich: **0–100**. Farbindikator: 🟢 ≥ 90 / 🟡 ≥ 70 / 🔴 < 70. --- # CodePulse CLI — Vollständige Dokumentation (Teil 2/3) ## 7. Befehl `watch` Ein interaktives, reaktives TUI-Dashboard (Terminal User Interface). Überwacht Dateien in Echtzeit und berechnet die Metriken bei jedem Speichern neu. ### Syntax ```bash codepulse watch [dir] ``` ### Dashboard-Panels Das TUI basiert auf einem scrollbaren Viewport (Niri-Stil) und kann mit `Tab` gesteuert werden. - **Health Gauge:** Visuelle Statusleiste des Health Scores (0–100 %) - **Cockpit Terminal:** Integrierter Terminal-Emulator zur Ausführung von Befehlen - **Telemetry:** Wichtige numerische Metriken (Score, Dateien, Zeilen, Fehler usw.) - **Complexity Chart:** Verlauf der durchschnittlichen zyklomatischen Komplexität - **Hotspots Table:** Die 5 risikoreichsten Dateien (Hotspots) - **Hazard Log:** Tabelle aller gefundenen Code-Fehler und Warnungen - **Warp Log:** System-Log (Git-Aktivitäten, Webhooks, Dateisystemereignisse) - **Heatmap** (versteckt): Interaktive Risiko-Heatmap des Projekts (aktivierbar über Add Mode) - **Coupling** (versteckt): Analyse der temporalen Kopplung (aktivierbar über Add Mode) - **MCP Box** (versteckt): Status und Informationen zum integrierten MCP-Server - **Clock Bar:** Aktuelle Uhrzeit (12h/24h je nach Lokalisierung) und Hilfe zu Tastenkombinationen ### Tastaturkurzbefehle zur Steuerung | Taste | Aktion | |---|---| | `Tab` | Zyklischer Wechsel des Fokus zwischen den Panels | | `1`–`9` | Direkter Fokus auf ein bestimmtes Panel anhand der Nummer | | `Esc` | Fokus des aktuellen Panels aufheben (Wechsel in den Scroll-Modus) | | `c` | Aktives Panel minimieren / maximieren | | `+` / `-` | Höhe des aktiven Panels vergrößern / verringern | | `[` / `]` | Breite des aktiven Panels verringern / vergrößern | | `a` | **Add Mode** öffnen (Hinzufügen versteckter Panels oder neuer Terminal-Fenster) | | `s` | **Swap Mode** öffnen (Tauschen der Positionen zweier Panels) | | `x` | Aktives Panel schließen | | `Alt + ↑` / `Alt + ↓` | Gesamten Viewport nach oben / unten scrollen (Niri-Stil) | | `Ctrl+C` | Watch-Modus beenden | ### Cockpit Terminal Das linke obere Panel enthält ein integriertes Terminal, aus dem Sie CodePulse-Diagnosebefehle direkt ausführen können, ohne das Dashboard zu verlassen. Drücken Sie `Tab` zur Aktivierung, geben Sie den Befehl ein und drücken Sie `Enter`. **Verfügbare Befehle in der Cockpit-Konsole:** ``` 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 ``` Die Befehlsausgabe wird direkt im Panel angezeigt (Historie von bis zu 120 Zeilen). ANSI-Farben werden automatisch bereinigt. --- ## 8. Befehl `diff` Vergleicht die architektonische Gesundheit der aktuellen Branch mit einer Zielbranch. ### Syntax ```bash codepulse diff [options] ``` ### Ablauf von `diff` 1. Speichert den Namen der aktuellen Branch. 2. Führt eine Analyse des aktuellen Zustands aus (`analyze()`). 3. Sichert ungespeicherte Änderungen über `git stash`. 4. Wechselt zur Zielbranch (`git checkout `) und analysiert diese. 5. Wechselt zurück zur ursprünglichen Branch und stellt ungespeicherte Änderungen wieder her (`git stash pop`). 6. Generiert einen Vergleichsbericht der Unterschiede. --- ## 9. Befehl `time-machine` Analyziert die Evolution der Abhängigkeiten und der Projektarchitektur über die Git-Historie. ### Syntax ```bash codepulse time-machine [dir] [options] ``` ### Sampling-Strategien (`--strategy`) - `max-points`: Wählt N Punkte gleichmäßig über die gesamte Historie (Standard: 30) - `every-nth`: Analysiert jeden N-ten Commit in der Historie - `interval`: Zeitbasiertes Sampling (`daily`, `weekly`, `monthly`) - `tag-only`: Analysiert nur Commits, die mit einem Tag versehen sind (Releases) Verwendet einen Snapshot-Cache (`.codepulse-cache/snapshots/`), um bereits analysierte Commits nicht erneut verarbeiten zu müssen. --- ## 10. Befehl `health-trend` Visualisiert Trends der Metriken auf Basis der aus der Time-Machine gespeicherten Snapshots mittels Unicode-Sparklines. ### Syntax ```bash codepulse health-trend [dir] [options] ``` ### Konsolenausgabe (Beispiel) ``` ══════════════════════════════════════════════════════════════ 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. Befehl `heatmap` Öffnet eine interaktive Risiko-Heatmap aller Dateien im Terminal (TUI). ### Syntax ```bash codepulse heatmap [dir] ``` ### Berechnung des Risikofaktors (Risk Score) ``` Risk = Complexity × log₂(Churn + 1) × (1 + Centrality / MaxCentrality) ``` - **Complexity:** Zyklomatische Komplexität des Codes in der Datei. - **Churn:** Anzahl der Änderungen (Commits) der Datei in der Git-Historie. - **Centrality:** Bedeutung der Datei im Abhängigkeitsgraphen. --- ## 12. Befehl `coupling` Erkennt Dateien, die häufig zusammen in denselben Commits geändert werden (Temporal Coupling). ### Syntax ```bash codepulse coupling [dir] ``` ### Was ist Temporal Coupling Wenn die Dateien A und B fast immer (z. B. in 80 % der Fälle) zusammen in einem Commit geändert werden, weisen sie eine **temporale Kopplung** auf. Dies ist eine versteckte Form von Abhängigkeit, die normale Importe im Code nicht offenlegen. Häufig deutet dies auf eine Verletzung des Single Responsibility Principle (SRP) hin. --- ## 13. Befehl `audit` Führt ein tiefes architektonisches Audit durch und generiert die Datei `AUDIT.md` im Projekt-Stammverzeichnis. ### Syntax ```bash codepulse audit [dir] ``` --- # CodePulse CLI — Vollständige Dokumentation (Teil 3/3) ## 14. Befehl `profile` Verknüpft Daten aus einem Profiler (V8 CPU / Python cProfile) direkt mit AST-Metriken des Codes, um kritische Performance-Schwachstellen zu lokalisieren. ### Syntax ```bash codepulse profile [options] ``` --- ## 15. Befehl `ghost` Berechnet die architektonische Auswirkung („Blast Radius“) potenzieller Änderungen an einer bestimmten Datei. ### Syntax ```bash codepulse ghost [options] ``` --- ## 16. Befehl `synth` Generiert automatisch einen Testplan zur Simulation von Ausfällen und Stresstests für kritische Komponenten. Die Ergebnisse werden in `STRESS_TEST_PLAN.md` gespeichert. --- ## 17. Befehl `verify` Eine intelligente und umfassende Verifizierung der Projektintegrität: Typecheck → Build → Lint → Tests. Ermittelt über Git geänderte Dateien und führt mittels des Abhängigkeitsgraphen gezielt nur die betroffenen Tests aus, was den Entwicklungsprozess beschleunigt. --- ## 18. Befehl `pr-risk` Bewertet das architektonische Risiko und die Auswirkungen von Änderungen, die in einem Pull Request vorgeschlagen werden, auf einer Skala von 0-100. Falls ungespeicherte oder temporale Kopplungen (Temporal Coupling ≥ 70 %) unberücksichtigt bleiben, wird eine Warnung ausgegeben. --- ## 19. Befehl `review` Ein automatisiertes Tool für CI/CD: Führt eine statische Analyse durch, bewertet Risiken eines PR und postet den Markdown-Report als Kommentar direkt in den GitHub Pull Request (`--github`). --- ## 20. Befehl `agent` Konfiguriert Regeln und Verhaltensweisen für AI-Entwicklungsagenten und IDEs (z. B. Cursor, Claude Code, Antigravity usw.). Generiert spezifische Dateien wie `.cursorrules`, `.clinerules`, `CLAUDE.md` oder `.antigravityrules` mit dem CodePulse-5-Phasen-Protokoll. --- ## 21. Befehl `license` Generiert eine Open-Source-Lizenzdatei (`LICENSE`) für Ihr Projekt. Unterstützt standardmäßig Lizenzen wie MIT, ISC, Apache, GPL und weitere. --- ## 22. Befehl `detect-reward-hacking` Diagnostiziert und erkennt Versuche von AI-Agenten, Benchmarks oder Tests zu manipulieren (z. B. durch Hardcoded I/O Shortcuts oder übermäßig große Lookup-Tabellen zur Simulation komplexer Berechnungen). --- ## 23. Befehl `install-deps` Analysiert die Dateitypen im Projekt und installiert automatisch plattformspezifische externe Linter (wie Ruff, Cppcheck, ShellCheck usw.) über die verfügbaren Paketmanager (Apt, Brew, Pacman usw.). --- ## 24. Model Context Protocol (MCP) Server CodePulse verfügt über einen vollwertigen **MCP-Server**, der AI-Assistenten die direkte Interaktion mit Ihrem Projekt ermöglicht. ```bash codepulse mcp # Startet den Server über Stdio-Transport codepulse mcp setup # Registriert den Server in Claude Desktop / Cursor ``` --- ## 25. GitHub Actions Eine GitHub Action zur Automatisierung der Qualitätskontrolle in CI/CD-Pipelines: ```yaml - name: CodePulse Review uses: archpulse/codepulse-cli@v5 with: command: review github_token: ${{ secrets.GITHUB_TOKEN }} ``` --- ## 26. Plugin-System Ermöglicht das Hinzufügen benutzerdefinierter Analyse-Regeln. Plugins werden im Ordner `plugins/` im Stammverzeichnis des Projekts oder global unter `~/.codepulse/plugins` abgelegt. --- ## 27. Lokalisierung (i18n) CodePulse unterstützt 7 Sprachen: Englisch (`en`), Russisch (`ru`), Ukrainisch (`ua`), Deutsch (`de`), Französisch (`fr`), Koreanisch (`ko`) und Tschechisch (`cs`). Der Standardwert kann geändert werden mit: ```bash codepulse lang de ``` --- ## 28. System-Rückgabecodes (Exit Codes) - `0` — Analyse erfolgreich abgeschlossen, keine kritischen Probleme gefunden. - `1` — Kritische Fehler gefunden (im Modus `--strict` / `--fail-on error`). - `1` — Risiko der PR-Änderungen überschreitet das Limit. - `1` — Verifizierung des Projekts mittels `verify` fehlgeschlagen. --- ## 29. Kurzübersicht (Cheat Sheet) ```bash # Einfacher, einmaliger Scan codepulse scan . # Start der interaktiven Echtzeit-Überwachung codepulse watch . # Vergleich von Branches codepulse diff main --threshold 5 # Visualisierung von Dateirisiken im TUI codepulse heatmap . # Tiefgehendes Architektur-Audit durchführen codepulse audit . # AI-Regeln für Cursor einrichten codepulse agent cursor default ```