Zum Inhalt springen

Was CodeCharter ist und wie es Codequalität durchsetzt

Ein deterministisches Code-Quality-Tool für .NET-Teams, das Architektur und Konventionen lokal durchsetzt.

CodeCharter ist ein deterministisches Code-Quality-Tool für .NET-Teams. Es analysiert eure Solution lokal gegen ein Regelwerk aus 120+ kuratierten eingebauten Regeln und beliebig vielen eigenen, die ihr in einer kleinen LINQ-ähnlichen DSL formuliert.

Was CodeCharter liefert

  • CLI als eigenständige, self-contained Distribution für Windows, Linux und macOS, einsetzbar in jeder CI ohne installiertes .NET.
  • Versionierte Regelprofile aus dem Portal (zum Beispiel codecharter/csharp-all), die über .codecharter/config.yml und ein Lockfile gepinnt und als signierte Bundles ausgeliefert werden, für reproduzierbare Analysen.
  • Windows-Installer für eure Entwickler, der CLI und VS Code Extension in einem Setup bündelt.
  • VS Code Extension mit Syntax-Highlighting und Autovervollständigung für die DSL.
  • Offizielle GitHub Action bochmann-software/codecharter@v1, die mit wenigen Zeilen YAML eingebunden wird.
  • MCP-Server direkt in der CLI (codecharter mcp), mit Einrichtung über einen einzigen Befehl (codecharter mcp install) für Claude Code, Cursor, Claude Desktop, Windsurf und Gemini.
  • Codebase-Graph-Abfragen (codecharter graph), die die Solution als Kopplungsgraphen offenlegen: eine Übersicht, die Umgebung eines Typs und dessen Auswirkungsradius, für Entwickler auf der Kommandozeile ebenso wie für KI-Coding-Agenten über MCP.
  • 120+ eingebaute Regeln in mehreren Kategorien, darunter ASP.NET-Konventionen, Async-Best-Practices, Naming, Architecture, Komplexitäts-Schwellen, Testability, Dokumentation und Error-Handling.
  • Requirements neben dem Code als .req.md-Dateien im Repository, an Code gebunden, in der CI geprüft und von einem Menschen abgenommen. Für Teams, die gegen ein Lastenheft liefern oder einen Nachweis schulden, siehe Requirements im Überblick.
  • Output in vier Formaten für unterschiedliche CI-Workflows: Konsole, JSON, SARIF v2.1 (konsumiert von GitHub Code Scanning und GitLab SAST), sowie GitHub-Annotations, die direkt im Pull-Request-Diff angezeigt werden.

Drei Designentscheidungen

Deterministisch

Gleicher Source, gleiche Regelmenge, gleiche Findings. Auf jeder Maschine, zu jeder Tageszeit. Wenn der Build gestern grün war, ist er heute auch grün.

Lokal

Die Analyse läuft auf der Entwickler-Maschine oder dem CI-Runner. Source-Code verlässt eure Umgebung nicht.

Architektur als First-Class-Citizen

Coupling, Vererbung, Abhängigkeiten und Komplexitäts-Metriken sind direkt im Schema verfügbar. Layering-Regeln und Banned-References formuliert ihr als zwei bis drei Zeilen DSL.

@name "Domain layer must not reference Web layer"
@severity error
@category "Architecture"

from t in Types
where t.Namespace.FullName.StartsWith("Acme.Domain")
where t.UsedTypes.Any(u => u.Namespace.FullName.StartsWith("Acme.Web"))
select t

Zusagen mit Nachweis

Neben den Findings kann CodeCharter auch die Zusagen führen, gegen die ihr liefert. Ein Requirement ist eine Datei neben dem Code, ein Anchor bindet sie an die Stelle, die sie einlöst, und eine Abnahme pinnt die Evidenz, auf die sie sich stützt. Damit beantwortet derselbe Lauf, der eure Findings gated, auch die Frage, ob eine zugesagte Eigenschaft noch da ist.

Wer es nutzen sollte

CodeCharter rechnet sich besonders bei .NET-Teams ab drei Entwicklern mit gemeinsamem Codebesitz und einer wachsenden Codebasis, in der Konventionen in PRs schwer durchzusetzen sind.

Wie CodeCharter ausgeliefert wird

Distribution Was enthalten ist
CLI (Standalone) Der vollständige Analyzer als self-contained Archiv; kein installiertes .NET nötig.
Windows-Installer Die CLI plus VS-Code-Extension und PATH-Einrichtung; benötigt die .NET-9-Runtime (der Installer bietet deren Installation an).
VS-Code-Extension Editor-Integration, die die CLI ausführt und live DSL-Feedback gibt.
GitHub Action Führt das veröffentlichte CodeCharter-Container-Image (oder eine lokal installierte CLI) aus und veröffentlicht Annotations am Pull Request.

Details zur Einrichtung unter Installation.

Nächste Schritte