# Reviewer Acceptance — TEST-COVERAGE-SERVICES-001

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

## Dein Auftrag
Erstelle `review-acceptance.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
- Schema: agent-system/contracts/reviewer-acceptance.schema.json
- Referenz (pass): agent-system/runs/CODE-DEDUP-REPOSITORY-001/review-acceptance.json
- Referenz (fail): agent-system/runs/TEST-COVERAGE-GATEWAYS-001/review-acceptance.json

## Success Criteria aus plan.json (5 Stück)
Prüfe JEDEN einzeln gegen die Evidenz im execution-report:

- SC-001: Alle 7 Test-Dateien existieren mit happy-path + failure/edge-case coverage für jede public method
  -> Prüfe: 7 changed_files, 7 test_results, alle "pass"

- SC-002: Jede Datei nutzt PHPUnit Mocks korrekt (constructor injection, keine echten DB/HTTP-Calls)
  -> Prüfe: changed_files summaries beschreiben Mock-basierte Tests

- SC-003: >= 40 Test-Methoden insgesamt
  -> Prüfe: test_results counts addieren (17+24+9+8+14+8+8 = 88, weit über 40)

- SC-004: PHPUnit grün, PHPStan grün (zero neue Failures/Errors)
  -> Prüfe: quality_gate_results QG-001, QG-002, QG-006 alle "pass"
  -> WICHTIG: Pre-existing Failures sind explizit out of scope per SC-004 Wortlaut

- SC-005: PHPStan level 5 pass (zero neue Errors)
  -> Prüfe: QG-002 result + guard_evidence GR-LANG-002

## Prüfablauf
1. Lies plan.json -> extrahiere success_criteria und acceptance_checks
2. Lies execution-report.json -> korreliere changed_files, test_results, quality_gate_results, guard_evidence
3. Für jedes SC-*: Erstelle einen check mit criterion_id, criterion (exakter Text aus plan), result (pass/fail), evidence (konkrete Referenzen)
4. Wenn ALLE pass -> verdict: "pass", missing_or_wrong: nicht angeben
5. Wenn eines fail -> verdict: "fail", missing_or_wrong mit konkreten Mängeln

## Hinweis zu Open Items
OI-001 (MailService nicht injizierbar) und OI-002 (PermissionService API-Cache) sind low-severity Testbarkeits-Einschränkungen, KEINE SC-Verletzungen. Der Executor hat dies korrekt dokumentiert.

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