review-codebase
关于
This skill performs a comprehensive, multi-phase codebase review covering architecture, security, code quality, and UX/accessibility in a single coordinated run. It outputs a prioritized findings table with severity ratings, which can be directly converted into GitHub issues using the create-github-issues skill. Use it for in-depth analysis of entire codebases rather than just reviewing specific pull requests.
快速安装
Claude Code
推荐npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/review-codebase在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
name: review-codebase locale: de source_locale: en source_commit: 6f65f316 translator: claude translation_date: "2026-03-17" description: > Mehrphasiger eingehender Codebasis-Review mit Schweregradbewertungen und strukturierter Ausgabe. Umfasst Architektur, Sicherheit, Codequalitaet und UX/Barrierefreiheit in einem einzelnen koordinierten Durchlauf. Erzeugt eine priorisierte Befundtabelle die direkt ueber den Skill create-github-issues in GitHub-Issues umgewandelt werden kann. license: MIT allowed-tools: Read Grep Glob Bash WebFetch metadata: author: Philipp Thoss version: "1.0" domain: review complexity: advanced language: multi tags: review, code-quality, architecture, security, accessibility, codebase
Codebasis ueberpruefen
Mehrphasiger eingehender Codebasis-Review der schweregradbewertete Befunde mit Empfehlungen zur Behebungsreihenfolge erzeugt. Anders als review-pull-request (auf einen Diff beschraenkt) oder einzelne Domaenen-Reviews (security-audit-codebase, review-software-architecture) deckt dieser Skill ein gesamtes Projekt oder Teilprojekt ueber alle Qualitaetsdimensionen in einem Durchlauf ab.
Wann verwenden
- Gesamtprojekt- oder Teilprojekt-Review (nicht PR-bezogen)
- Onboarding fuer eine neue Codebasis — ein mentales Modell aufbauen was existiert und was Aufmerksamkeit braucht
- Periodische Gesundheitspruefungen nach anhaltendem Entwickeln
- Qualitaetstor vor der Veroeffentlichung ueber Architektur, Sicherheit, Codequalitaet und UX
- Wenn die Ausgabe direkt in Issue-Erstellung oder Sprint-Planung einfliessen soll
Eingaben
- Erforderlich:
target_path— Stammverzeichnis der zu ueberpruefenden Codebasis oder des Teilprojekts - Optional:
scope— welche Phasen ausgefuehrt werden:full(Standard),security,architecture,quality,uxoutput_format—findings(nur Tabelle),report(Erzaehlung),both(Standard)severity_threshold— Mindestschweregrad fuer die Aufnahme:LOW(Standard),MEDIUM,HIGH,CRITICAL
Vorgehensweise
Schritt 1: Bestandsaufnahme
Die Codebasis inventarisieren um den Umfang festzustellen und Review-Ziele zu identifizieren.
- Dateien nach Sprache/Typ zaehlen:
find target_path -type f | nach Endung sortieren - Gesamtzeilenzahlen pro Sprache messen
- Testverzeichnisse identifizieren und Testabdeckung schaetzen (Dateien mit Tests vs. Dateien ohne)
- Abhaengigkeitszustand pruefen: Lockfiles vorhanden, veraltete Abhaengigkeiten, bekannte Schwachstellen
- Build-System, CI/CD-Konfiguration und Dokumentationszustand erfassen
- Die Bestandsaufnahme als Eroeffnungsabschnitt des Berichts festhalten
Erwartet: Ein sachliches Inventar — Dateianzahlen, Sprachen, Vorhandensein von Tests, Abhaengigkeitsgesundheit. Noch keine Urteile.
Bei Fehler: Wenn der Zielpfad leer oder nicht zugaenglich ist, stoppen und berichten. Wenn bestimmte Unterverzeichnisse nicht zugaenglich sind, sie vermerken und mit dem Verfuegbaren fortfahren.
Schritt 2: Architektur-Review
Strukturelle Gesundheit bewerten: Kopplung, Duplizierung, Datenfluss und Trennung der Zustaendigkeiten.
- Die Modul-/Verzeichnisstruktur kartieren und das primaere Architekturmuster identifizieren
- Auf Code-Duplizierung pruefen — wiederholte Logik ueber Dateien hinweg, Kopier-Einfuege-Muster
- Kopplung bewerten — wie viele Dateien muessen sich fuer eine einzelne Funktionsaenderung aendern
- Datenfluss evaluieren — gibt es klare Grenzen zwischen Schichten (UI, Logik, Daten)?
- Toten Code, ungenutzte Exporte und verwaiste Dateien identifizieren
- Auf einheitliche Muster pruefen — folgt die Codebasis ihren eigenen Konventionen?
- Jeden Befund bewerten: CRITICAL, HIGH, MEDIUM oder LOW
Erwartet: Eine Liste von Architekturbefunden mit Schweregradbewertungen und Dateireferenzen. Haeufige Befunde: Modus-Dispatch-Duplizierung, fehlende Abstraktionsschichten, zirkulaere Abhaengigkeiten.
Bei Fehler: Wenn die Codebasis zu klein fuer einen aussagekraeftigen Architektur-Review ist (< 5 Dateien), dies vermerken und zu Schritt 3 springen. Architektur-Review braucht genug Code um Struktur zu haben.
Schritt 3: Sicherheitsaudit
Sicherheitsschwachstellen und Luecken in der defensiven Programmierung identifizieren.
- Auf Injektionsvektoren scannen: HTML-Injektion (
innerHTML), SQL-Injektion, Befehlsinjektion - Authentifizierungs- und Autorisierungsmuster pruefen (falls zutreffend)
- Fehlerbehandlung ueberpruefen — werden Fehler stillschweigend verschluckt? Legen Fehlermeldungen interne Details offen?
- Abhaengigkeitsversionen gegen bekannte CVEs auditieren
- Auf hartcodierte Geheimnisse, API-Schluessel oder Zugangsdaten pruefen
- Docker-/Container-Sicherheit pruefen: Root-Benutzer, offene Ports, Build-Geheimnisse
- localStorage/sessionStorage auf Speicherung sensibler Daten pruefen
- Jeden Befund bewerten: CRITICAL, HIGH, MEDIUM oder LOW
Erwartet: Eine Liste von Sicherheitsbefunden mit Schweregrad, betroffenen Dateien und Hinweisen zur Behebung. CRITICAL-Befunde umfassen Injektionsschwachstellen und offengelegte Geheimnisse.
Bei Fehler: Wenn kein sicherheitsrelevanter Code existiert (reines Dokumentationsprojekt), dies vermerken und zu Schritt 4 springen.
Schritt 4: Codequalitaet
Wartbarkeit, Lesbarkeit und defensive Programmierung evaluieren.
- Magische Zahlen und hartcodierte Werte identifizieren die benannte Konstanten sein sollten
- Auf einheitliche Benennungskonventionen ueber die Codebasis pruefen
- Fehlende Eingabevalidierung an Systemgrenzen finden
- Fehlerbehandlungsmuster bewerten — sind sie einheitlich? Liefern sie nuetzliche Meldungen?
- Auf auskommentierten Code, TODO/FIXME-Markierungen und unvollstaendige Implementierungen pruefen
- Testqualitaet ueberpruefen — testen die Tests Verhalten oder Implementierungsdetails?
- Jeden Befund bewerten: CRITICAL, HIGH, MEDIUM oder LOW
Erwartet: Eine Liste von Qualitaetsbefunden mit Fokus auf Wartbarkeit. Haeufige Befunde: magische Zahlen, uneinheitliche Muster, fehlende Schutzpruefungen.
Bei Fehler: Wenn die Codebasis generiert oder minifiziert ist, dies vermerken und Erwartungen anpassen. Generierter Code hat andere Qualitaetskriterien als handgeschriebener Code.
Schritt 5: UX und Barrierefreiheit (falls Frontend vorhanden)
Benutzererfahrung und Barrierefreiheitskonformitaet evaluieren.
- ARIA-Rollen, -Labels und -Landmarks an interaktiven Elementen pruefen
- Tastaturnavigation verifizieren — koennen alle interaktiven Elemente per Tab erreicht werden?
- Fokusverwaltung testen — bewegt sich der Fokus logisch wenn Panels geoeffnet/geschlossen werden?
- Responsives Design pruefen — an gaengigen Breakpoints testen (320px, 768px, 1024px)
- Farbkontrastverhaeltnisse gegen WCAG 2.1 AA-Standards pruefen
- Screenreader-Kompatibilitaet pruefen — werden dynamische Inhaltsaenderungen angekuendigt?
- Jeden Befund bewerten: CRITICAL, HIGH, MEDIUM oder LOW
Erwartet: Eine Liste von UX/Barrierefreiheitsbefunden mit WCAG-Referenzen wo zutreffend. Wenn kein Frontend existiert, erzeugt dieser Schritt "N/A — kein Frontend-Code erkannt."
Bei Fehler: Wenn Frontend-Code existiert aber nicht gerendert werden kann (fehlender Build-Schritt), den Quellcode statisch auditieren und vermerken dass Laufzeittests nicht moeglich waren.
Schritt 6: Befundsynthese
Alle Befunde in eine priorisierte Zusammenfassung zusammenfuehren.
- Befunde aus allen Phasen in eine einzelne Tabelle zusammenfuehren
- Nach Schweregrad sortieren (CRITICAL zuerst, dann HIGH, MEDIUM, LOW)
- Innerhalb jedes Schweregrads nach Thema gruppieren (Sicherheit, Architektur, Qualitaet, UX)
- Fuer jeden Befund angeben: Schweregrad, Phase, Datei(en), Einzeiler-Beschreibung, vorgeschlagene Behebung
- Eine empfohlene Behebungsreihenfolge erstellen die Abhaengigkeiten zwischen Behebungen beruecksichtigt
- Zusammenfassen: Gesamtbefunde nach Schweregrad, Top 3 Prioritaeten, geschaetztes Aufwandsniveau
Erwartet: Eine Befundtabelle mit Spalten: #, Schweregrad, Phase, Datei(en), Befund, Behebung. Eine Empfehlung zur Behebungsreihenfolge die Abhaengigkeiten beruecksichtigt (z.B. "Architektur umstrukturieren bevor Tests hinzugefuegt werden").
Bei Fehler: Wenn keine Befunde erzeugt wurden, ist das selbst ein Befund — entweder ist die Codebasis aussergewoehnlich sauber oder der Review war zu oberflaechlich. Mindestens eine Phase mit tieferer Inspektion erneut untersuchen.
Validierung
- Alle angeforderten Phasen wurden abgeschlossen (oder explizit mit Begruendung uebersprungen)
- Jeder Befund hat eine Schweregradbewertung (CRITICAL/HIGH/MEDIUM/LOW)
- Jeder Befund referenziert mindestens eine Datei oder ein Verzeichnis
- Die Befundtabelle ist nach Schweregrad sortiert
- Empfehlungen zur Behebungsreihenfolge beruecksichtigen Abhaengigkeiten zwischen Befunden
- Die Zusammenfassung enthaelt Gesamtzahlen nach Schweregrad
- Wenn
output_formatreporteinschliesst, begleiten erzaehlende Abschnitte die Tabelle
Skalierung mit Ruhe
Zwischen Review-Phasen /rest als Kontrollpunkt verwenden — besonders zwischen den Phasen 2-5 die verschiedene analytische Perspektiven erfordern. Eine Kontrollpunkt-Ruhe (kurz, uebergangsartig) verhindert dass der Schwung einer Phase die naechste verzerrt. Siehe den Abschnitt "Abstufungen der Ruhe" im rest-Skill fuer Hinweise zu Kontrollpunkt- vs. voller Ruhe.
Haeufige Stolperfallen
- Den Ozean kochen: Jede Zeile einer grossen Codebasis ueberpruefen erzeugt Rauschen. Auf wirkungsstarke Bereiche konzentrieren: Einstiegspunkte, Sicherheitsgrenzen und architektonische Naehte
- Schweregrad-Inflation: Nicht jeder Befund ist CRITICAL. CRITICAL fuer ausnutzbare Schwachstellen und Datenverlustrisiken reservieren. Die meisten Architekturprobleme sind MEDIUM
- Den Wald vor lauter Baeumen nicht sehen: Einzelne Codequalitaetsprobleme sind weniger wichtig als systemische Muster. Wenn magische Zahlen in 20 Dateien auftauchen, ist das ein Architekturbefund, nicht 20 Qualitaetsbefunde
- Die Bestandsaufnahme ueberspringen: Die Bestandsaufnahme (Schritt 1) wirkt buerokratisch aber verhindert das Ueberpruefen von Code der nicht existiert oder das Uebersehen ganzer Verzeichnisse
- Phasenuebergriff: Sicherheitsbefunde waehrend des Architektur-Reviews, oder Qualitaetsbefunde waehrend des Sicherheitsaudits. Sie fuer die korrekte Phase vermerken statt die Anliegen zu vermischen — das erzeugt eine sauberere Befundtabelle
Verwandte Skills
security-audit-codebase— tiefgehendes Sicherheitsaudit wenn die Sicherheitsphase des review-codebase komplexe Schwachstellen aufdecktreview-software-architecture— detaillierter Architektur-Review fuer spezifische Teilsystemereview-ux-ui— umfassendes UX/Barrierefreiheitsaudit ueber das hinaus was Phase 5 abdecktreview-pull-request— auf Diffs beschraenkter Review fuer einzelne Aenderungenclean-codebase— implementiert die durch diesen Review identifizierten Codequalitaetsbehebungencreate-github-issues— wandelt die Befundtabelle in nachverfolgte GitHub-Issues um
GitHub 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
