.claude/skills/review/SKILL.md
Umfassender Code-Review für RESA
npx skillsauth add AImitSK/resa-wp reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Führe einen umfassenden Code-Review durch, orientiert an den RESA-Architekturvorgaben.
Scope bestimmen:
staged ist: git diff --cached reviewengit diff + git diff --cached)Code lesen und analysieren anhand der Checkliste unten
Findings ausgeben im definierten Output-Format
$_GET, $_POST, $_REQUEST Daten sanitized? (sanitize_text_field(), sanitize_email(), absint(), etc.)esc_html(), esc_attr(), esc_url(), wp_kses())current_user_can() vor Admin-Aktionen?$wpdb->prepare() bei ALLEN Queries mit Variablen?permission_callback bei ALLEN Routen gesetzt?sanitize_callback / validate_callback bei Arguments?eval(), extract(), unserialize() auf User-Input?'resa' als String-Literal?esc_html__() / esc_attr__() statt __() + separate Escaping?%1$s, %2$d bei 2+ Platzhaltern?_n() statt Ternary?number_format_i18n(), wp_date(), korrekte €-Position?@wordpress/i18n Funktionen verwendet?can_use_premium_code() (nicht is_paying())?resa- Prefix?.resa-widget-root?body, *, html Styling?resa- Prefix in Tailwind-Klassen?any Types?modules/{slug}/ mit module.php?ModuleInterface korrekt?canUseModule( $slug ) korrekt geprüft?/resa/v1/modules/{slug}/*?<ResaIcon name="..." />), keine direkten Lucide-Imports in Modulen?Resa\?Findings als Liste mit Severity:
## Review: {Datei/Scope}
### 🔴 Critical (Muss gefixt werden)
- **[Security]** `datei.php:42` — `$_POST['name']` wird nicht sanitized. Verwende `sanitize_text_field( wp_unslash( $_POST['name'] ) )`.
- **[Security]** `datei.php:78` — SQL ohne `$wpdb->prepare()`.
### 🟡 Warning (Sollte gefixt werden)
- **[i18n]** `datei.php:15` — String `'Einstellungen'` nicht übersetzt. Verwende `__( 'Einstellungen', 'resa' )`.
- **[TypeScript]** `component.tsx:23` — `any` Type vermeiden, korrektes Interface definieren.
### 🔵 Info (Verbesserungsvorschlag)
- **[Architektur]** `datei.php:5` — Klasse könnte in separaten Service ausgelagert werden.
- **[UX]** `component.tsx:45` — Fehlender Loading-State bei API-Call.
### ✅ Positives
- Security-Patterns korrekt angewendet in REST-Controller
- Gute Typ-Definitionen
- i18n vollständig
staged: Fokus auf die geänderten Zeilen, aber Kontext des gesamten Files berücksichtigendevelopment
Use when building UIs leveraging the WordPress Design System (WPDS) and its components, tokens, patterns, etc.
tools
Use when working with WP-CLI (wp) for WordPress operations: safe search-replace, db export/import, plugin/theme/user/content management, cron, cache flushing, multisite, and scripting/automation with wp-cli.yml.
tools
WordPress Security Patterns für Plugin-Entwicklung. Automatisch anwenden: Sanitization, Escaping, Nonces, Capability Checks, $wpdb->prepare(), REST API Permission Callbacks.
development
Use when building, extending, or debugging WordPress REST API endpoints/routes: register_rest_route, WP_REST_Controller/controller classes, schema/argument validation, permission_callback/authentication, response shaping, register_rest_field/register_meta, or exposing CPTs/taxonomies via show_in_rest.