review-codebase
정보
이 스킬은 아키텍처, 보안, 코드 품질, UX/접근성을 단일 실행에서 포괄적이고 다단계로 검토합니다. 심각도 등급이 포함된 우선순위별 발견 사항 테이블을 출력하며, create-github-issues 스킬을 사용해 GitHub 이슈로 직접 변환할 수 있습니다. 특정 풀 리퀘스트만 검토하는 대신 전체 코드베이스를 심층 분석할 때 사용하세요.
빠른 설치
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-codebaseClaude 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)을 위한 프로덕션 검증된 설정을 제공합니다. 콘텐츠 콜렉션은 Markdown/MDX 파일을 Zod 검증이 포함된 타입 안전한 데이터 콜렉션으로 변환해주는 TypeScript 최우선 도구입니다. 블로그, 문서 사이트 또는 콘텐츠 중심의 Vite + React 애플리케이션을 구축할 때 타입 안전성과 자동 콘텐츠 검증을 보장하기 위해 사용하세요. Vite 플러그인 구성과 MDX 컴파일부터 배포 최적화 및 스키마 검증에 이르기까지 모든 것을 다룹니다.
polymarket
메타이 스킬은 개발자들이 Polymarket 예측 시장 플랫폼을 활용한 애플리케이션을 구축할 수 있도록 지원하며, 거래 및 시장 데이터를 위한 API 통합 기능을 포함합니다. 또한 WebSocket을 통한 실시간 데이터 스트리밍을 제공하여 실시간 거래와 시장 활동을 모니터링할 수 있습니다. 이를 통해 거래 전략을 구현하거나 실시간 시장 업데이트를 처리하는 도구를 생성하는 데 활용할 수 있습니다.
creating-opencode-plugins
메타이 스킬은 개발자들이 명령어, 파일, LSP 작업 등 25개 이상의 이벤트 유형에 연결되는 OpenCode 플러그인을 만들 수 있도록 돕습니다. JavaScript/TypeScript 모듈을 위한 플러그인 구조, 이벤트 API 명세, 구현 패턴을 제공합니다. OpenCode AI 어시스턴트의 라이프사이클을 사용자 정의 이벤트 기반 로직으로 가로채거나, 모니터링하거나, 확장해야 할 때 사용하세요.
sglang
메타SGLang은 RadixAttention 프리픽스 캐싱을 활용하여 JSON, 정규식, 에이전트 워크플로우를 위한 고속 구조화 생성에 특화된 고성능 LLM 서빙 프레임워크입니다. 특히 반복되는 프리픽스가 있는 작업에서 상당히 빠른 추론 속도를 제공하여 복잡한 구조화 출력 및 다중 턴 대화에 이상적입니다. 제약 디코딩이 필요하거나 광범위한 프리픽스 공유가 있는 애플리케이션을 구축할 때는 vLLM과 같은 대안보다 SGLang을 선택하십시오.
