Die zwei Achsen
customer-lens-reviewer
Komponenten-Topologie- und Architekturentscheidungen mit ≥2 Optionen. Drei Stakeholder-Linsen (Figma-Designer, Drupal-Site-Builder, Theme-Developer). Read-only Tabellen-Output, nie Code.
5 file-glob-Reviewer
Brand, Twig/SDC, PHP, Config-/Architektur-Governance, Test-Coverage. JSON-Findings gegen die Skill-Source-of-Truth. Vom /solcom-review-Skill orchestriert.
Kein Overlap zwischen den Achsen: Decision-time entscheidet die Form einer Komponente bevor Code entsteht; Diff-time prüft den Inhalt einer Änderung nachdem sie geschrieben wurde. Neue Review-Bedürfnisse (a11y, perf) konsolidieren als zusätzliche Linsen innerhalb von customer-lens-reviewer, nicht als parallele Agents.
Decision-time: customer-lens-reviewer
Aufruf proaktiv, sobald eine der folgenden Entscheidungen ansteht:
- Neue SDC-Komponente unter
web/themes/custom/byte_theme/components/<neu>/wird angelegt. - Bestehende Komponente bekommt eine neue Variante, einen neuen Prop oder eine strukturelle Schema-Änderung.
- Refactor mit Konsequenzen für die Component-Topologie: Splitten, Mergen, Umbenennen.
- Figma-Frame ↔ SDC-Mapping ist nicht trivial 1:1 (z. B. eine Figma-Card → drei SDC-Varianten oder umgekehrt).
Output ist eine strukturierte Tabelle mit Pro/Contra pro Option aus jeder Linse. Der Caller (User oder Skill) entscheidet auf Basis dieser Tabelle — der Reviewer entscheidet nicht.
Konvention: ADRs, die eine Komponenten- oder Architekturentscheidung dokumentieren, müssen diecustomer-lens-reviewer-Konsultation referenzieren (oder explizit als N/A — Dev-Infrastruktur begründen). Siehe Skillsolcom-adr-workflow.
Diff-time: 7 file-glob-Reviewer
Jeder Reviewer reagiert auf eine Glob-Schnittmenge im Diff und ruft inline seinen Skill als kanonische Regelquelle. Auswahl trifft der /solcom-review-Skill anhand der geänderten Dateien — nicht alle Reviewer laufen bei jedem Diff.
with_context: false + with only), Icon-Includes via @byte_theme, kein inline-HTML wo SDC existiert.\Drupal::-Direktzugriffe in DI-fähigen Klassen).|raw, Markup::create(), {% autoescape false %}), SQL-Injection (db_query() ohne Placeholder), CSRF/Access-Control (Routen ohne _permission/_access), unsichere API-Calls (eval/exec, file_get_contents auf externe URLs), hardcoded Secrets, OWASP Top 10. Eigene Achse — überlappt nicht mit Code-Style oder Performance.::load() in Loops statt ::loadMultiple()), fehlende #cache-Metadata, falsche Entity-Loading-Pattern, Render-Bottlenecks (kein #lazy_builder für teure/personalisierte Elemente), Views-Performance (Pager, Relationships, Aggregation), Index-Usage in Queries.Sonderfall: solcom-figma-reviewer
Vergleicht eine Figma-Frame-Spec Komponente für Komponente mit der gebauten Twig-SDC-Implementation (Layout, Spacing, Farben, Typografie, Variants, Content-Struktur). Manuell getriggert via Task-Tool — keine Glob-Auswahl, weil der Diff allein nicht reicht: der Reviewer braucht die Figma-URL plus Figma-MCP-Zugriff.
Trigger-Phrasen: „Figma-Diff", „Figma-Compliance-Check", „Figma vs Implementation", „Figma-Parity", „Visual-Compliance vs Figma". Read-only — produziert ein JSON-Komponenten-Diff-Report, schreibt nie UI-Code.
Orchestration via /solcom-review
Der Skill solcom-review ist der manuelle in-session-Einstieg für PR-Reviews auf zwei Achsen:
- Standards — CLAUDE.md, byte_theme/AGENTS.md, ADRs, Wiki-Pages, agent-docs und die Diff-time-Reviewer als Rule-Korpora.
- Spec — Jira-Story (
F-XXX/P2503-XXaus Commits + Branch-Name) plus passende HTML-Docs unterdocs/prds/,docs/plans/,docs/brainstorms/.
Zwei Input-Modi: git-Fixed-Point (/solcom-review main, SHA, Branch) oder Azure-DevOps-PR-URL (REST-API holt Source/Target/Description/Linked-Work-Items). --persist ist Default — Report wird nach docs/reports/ geschrieben mit LOG- und INDEX-Update.
Drei Review-Stages stehen nebeneinander: Decision-time (customer-lens-reviewer, vor Code), Diff-time (7 Reviewer + Figma-Reviewer, in-session via/solcom-review), Cloud-Post-PR (PR-Agent, siehe ADR-0021). Keine Stage ersetzt eine andere. Security- und Performance-Reviewer haben keinen Glob-Trigger und werden manuell vor Deployments / Perf-Reviews aufgerufen.
Konventionen für alle Reviewer
- Skill als Source-of-Truth. Jeder Reviewer-Prompt liest seinen Skill vor jedem Run vollständig. Bei Konflikt zwischen Prompt und Skill gewinnt der Skill (Ausnahme:
byte_theme/AGENTS.mdgewinnt gegen den twig-sdc-Skill). - Reviewer-Prompts werden nicht angefasst, wenn neue Regeln dazukommen — nur der Skill wird aktualisiert. Der Reviewer-Lauf pickt die neuen Regeln automatisch beim nächsten Read auf.
- JSON-Findings, kein Code. Alle Diff-time-Reviewer sind read-only und liefern strukturierte Findings, keine Fixes.
auto-review-fixist der Skill, der Findings nach einem PR umsetzt — getrennte Verantwortung. - Modell-Wahl: Diff-time-Reviewer laufen auf
inherit(Sonnet im Standardfall).customer-lens-reviewerläuft explizit aufsonnet, weil seine Tabellen-Form klare Trade-offs erfordert.