Architecture Decision Record · 0028

solcom-review Skill: PR-Review als dritte Review-Stage mit Hybrid-Standards-Achse

TL;DRsolcom-review eingeführt als manueller, in-session PR-Review-Skill (adaptiert von mattpocock/skills). Standards-Achse liest die 4 Code-Reviewer-Prompts als Rule-Korpora — spawnt sie nicht. Spec-Achse holt Jira-Story + PRD/Plan-HTMLs; bei PR-URL-Input zusätzlich Azure DevOps PR-Description. Dritte Review-Stage neben Decision-Time (customer-lens-reviewer) und Cloud-Post-PR (PR-Agent, ADR-0021).

Kontext

Das SOLCOM-Repo hat zwei bestehende Review-Kategorien:

Fehlte: ein manueller, in-session PR-Review-Pass, der sowohl eigene als auch fremde PRs auf zwei spezifischen Achsen prüft:

PR-Agent (ADR-0021) deckt Standards und allgemeine Code-Qualität ab, hat aber kein SOLCOM-Domain-Wissen (keine ADR-Kenntnis, keine Jira-Spec-Anbindung, kein Zugriff auf docs/wiki/ oder die Reviewer-Prompts). Außerdem läuft PR-Agent automatisch post-PR in der Cloud — ein pre-push lokaler Pass fehlte.

Quelle des Upstream-Patterns: mattpocock/skills `review` (MIT). SOLCOM-spezifische Adaptionen: HTML-Strands statt Markdown, Jira P2503 via Atlassian-MCP, Azure DevOps PR-URL-Integration, --persist-Flag.

Entscheidung

solcom-review als dritte Review-Stage einführen. Zwei Entscheidungen sind zusammen load-bearing:

1. Dritte Review-Stage: PR-Review

StageWannTriggerToolOutput
Decision-time Vor Code, bei Topologie-Entscheidung Manuell ≥2 Optionen customer-lens-reviewer Structured review (3 Lenses)
PR-Review Lokal, vor oder nach PR-Erstellung Manuell (/solcom-review, PR-URL) solcom-review Skill In-session 2-Achsen-Report
Cloud-Post-PR Bei jedem PR-Update auf Azure DevOps Automatisch (Pipeline) PR-Agent (ADR-0021) Inline-Kommentare im PR

Input-Modi:

2. Hybrid-Standards-Achse: Reviewer-Prompts als Rule-Korpora

Der Standards-Subagent liest die 4 Code-Reviewer-Prompts (.claude/agents/solcom-brand-reviewer.md, drupal-twig-sdc-reviewer.md, drupal-php-reviewer.md, drupal-config-architecture-reviewer.md) als Rule-Korpora — er spawnt sie nicht als Agents.

Begründung:

Rejected alternatives

Orchestrierend: alle 4 Reviewer-Agents spawnen + globaler Standards-Pass rejected

6 parallele Agents (4 Reviewer + 1 globaler Standards-Pass + 1 Spec). Hätte den Vorteil, die Reviewer 1:1 mit ihren eigenen Prompts laufen zu lassen. Abgelehnt wegen: (a) Spawn-Storm bei jedem Review-Run, (b) JSON-Output-Schema der Reviewer ist für in-session-Text ungeeignet — Aggregation würde eine eigene Parsing-Schicht benötigen, (c) Reviewer triggern sowieso file-glob-basiert bei jedem Commit, also würden Findings bei normalem Workflow ohnehin auftauchen.

Nur git-basiert, kein PR-URL-Input rejected

Einfacher, kein Azure DevOps API-Client nötig. Abgelehnt weil: fremde PRs reviewen ohne URL-Input bedeutet, Branch manuell auschecken + Fixed-Point erraten. PR-URL liefert gratis Source-Branch, Target-Branch, Linked Work Items und PR-Description als Spec-Quelle — zu wertvoll um darauf zu verzichten.

PR-Agent für alles — kein separater Skill rejected

PR-Agent läuft automatisch auf jedem PR und deckt allgemeine Code-Qualität ab. Kein SOLCOM-Domain-Wissen (kein Zugriff auf ADRs, docs/wiki/, Jira-Spec, Reviewer-Prompts als Regelwerk). Außerdem nur post-PR, kein lokaler pre-push Pass. Die zwei Tools decken unterschiedliche Bedürfnisse ab.

Eigenständige Standards-Achse ohne Reviewer-Prompt-Referenz rejected

Standards-Subagent liest nur CLAUDE.md, ADRs, byte_theme/AGENTS.md — ohne die 4 Reviewer-Prompts. Abgelehnt weil: die Reviewer-Prompts enthalten kondensierte, praxisbewährte Regelkataloge (z.B. die 13 CVA-Regeln im drupal-twig-sdc-reviewer) die im Standards-Pass relevanter sind als ein zweites Lesen von AGENTS.md.

Consequences