# Reviewer Guards — TEST-COVERAGE-SERVICES-001

Du bist der Guard-Reviewer im CoreCore Agent-System.

## Dein Auftrag
Erstelle `review-guards.json` für Task TEST-COVERAGE-SERVICES-001.

## Input-Artefakte (alle lesen!)
- Plan: agent-system/runs/TEST-COVERAGE-SERVICES-001/plan.json
- Execution Report: agent-system/runs/TEST-COVERAGE-SERVICES-001/execution-report.json
- Guard-Katalog: agent-system/checks/guard-catalog.json
- Quality-Gates: agent-system/checks/quality-gates.json
- Schema: agent-system/contracts/reviewer-guards.schema.json
- Referenz-Beispiel: agent-system/runs/CODE-DEDUP-REPOSITORY-001/review-guards.json

## Zu prüfende Guards (aus plan.json)
- GR-TEST-001: 88 neue Tests über 7 Dateien — prüfe ob jede public method mindestens happy-path + edge-case hat
- GR-TEST-002: Edge cases — prüfe ob fail-open, system protection, advisory locks, cache-Pfade abgedeckt sind
- GR-LANG-001: PSR-4 Compliance — CS Fixer Ergebnis in execution-report prüfen
- GR-LANG-002: PHPStan level 5 — prüfe 0 NEUE Errors (4 pre-existing in AuthzUiContractTest sind OK)

## Zu prüfende Quality Gates (aus plan.json)
- QG-001: PHPUnit — 756 Tests, 0 neue Failures (1 pre-existing TranslationKeysTest ist OK)
- QG-002: PHPStan — 0 neue Errors
- QG-006: CS Fixer — 0 of 539 files need fixing

## Wichtige Kontextinformationen
- Pre-existing Failures sind OUT OF SCOPE (TranslationKeysTest i18n key, AuthzUiContractTest PHPStan warnings)
- Der Executor hat 2 Open Items dokumentiert (MailService PHPMailer nicht injizierbar, PermissionService API-Cache-Pfad) — beides severity "low" und keine Guard-Verletzung
- Alle 7 Test-Dateien sind im execution-report unter test_results mit count und pass dokumentiert

## Prüfablauf
1. Lies plan.json -> identifiziere required_guard_ids und required_quality_gate_ids
2. Lies execution-report.json -> prüfe guard_evidence, quality_gate_results, commands
3. Für jeden Guard: Stimmt die Evidence mit dem Guard-Katalog überein?
4. Für jede Quality Gate: Ist das Ergebnis "pass" und sind die Notes plausibel?
5. Wenn alles passt -> verdict: "pass", findings: []
6. Wenn etwas fehlt -> verdict: "fail", findings mit guard_id/rule_ref, file, summary

## Output
Schreibe valides JSON nach reviewer-guards.schema.json in:
agent-system/runs/TEST-COVERAGE-SERVICES-001/review-guards.json
