chore: persist Sprint-7 UI/UX acceptance contract - #98
Merged
Conversation
… CI-Waechter verankern Der Sprint-7-Abnahmevertrag (reale Journeys statt Mocks, Human-only-PO-Gate, Golden-Baseline-Schutz, READY_FOR_PO_VISUAL_REVIEW als hoechster Agentenstatus) lebte bisher nur im Chat-Kontext einzelner Claude-Sessions. Jetzt: - .claude/rules/sprint-7-ui-ux-acceptance.md: vollstaendiger Vertrag (ACTIVE_TEMPORARY, Sprint ID 579, EYT-148, Removal Condition). - CLAUDE.md: kurzer Anker mit @-Import — keine Volltextkopie. - apps/api/test/sprint7-acceptance-rule-guardrails.test.ts: Waechter im Pflichtjob unit-tests; prueft Marker, Abschnitte und Substanz-Untergrenzen auf kommentar-/fence-bereinigtem Text, keinen Byte-Snapshot. - turbo.json: Rule, CLAUDE.md und die Handoff-Artefakte in die test-Inputs — sonst replayt ein lokaler Turbo-Lauf nach Entkernung der Rule einen alten gruenen Cache (CI war nie betroffen, dort gibt es keinen Turbo-Cache). - .gitignore: /.claude/settings.local.json — .claude/ ist hiermit erstmals teilweise getrackt in einem oeffentlichen Repo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Reviewer's GuideDer PR verankert den Sprint-7-UI/UX-Abnahmevertrag dauerhaft im Repository: eine ausführliche Agentenregel wird über CLAUDE.md geladen, durch einen gegen Aushöhlung gehärteten Unit-Test geprüft und über Turbo-Inputs cache-korrekt CI-/lokalbewacht; zusätzlich werden lokale Session-Secrets ignoriert. Sequence diagram for guarded Sprint 7 acceptance rule validationsequenceDiagram
participant Dev as Developer
participant Turbo as Turbo
participant Tests as unit-tests
participant Guard as sprint7-acceptance-rule-guardrails.test.ts
participant Rule as Sprint 7 acceptance rule
Dev->>Turbo: run test
Turbo->>Turbo: resolve test inputs and cache key
Turbo->>Tests: execute unit-tests
Tests->>Guard: run guardrails
Guard->>Rule: read rule file
Guard->>Guard: validate markers and section substance
alt rule contract is intact
Guard-->>Tests: 36 tests passed
Tests-->>Turbo: task successful
else rule is removed or hollowed out
Guard-->>Tests: guard fails with missing protection
Tests-->>Turbo: task failed
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
…achziehen Reviewbefund: Die Rule persistierte den EYT-148-Testintegritaetsvertrag unvollstaendig. Nachgezogen als eigener Abschnitt ## Testintegritaet: - Reale Umgebung: isolierte Nicht-Produktionsumgebung mit realer Authentifizierung, API und PostgreSQL/RLS; keine Mock-/Fixture-Antwort als operative Produktwahrheit. - Gegenbeweis: ein absichtlich gebrochener Auth-, Persistenz- oder Routingpfad muss mindestens einen passenden Journey-Test rot machen — kontrolliert, reversibel, nur im Test-/CI-Kontext. - Merge Blocking: Journey-/Accessibility-/Visual-Gates muessen vor finaler EYT-148-Abnahme tatsaechlich merge-blockierend sein; ein freiwilliger CI-Job, den GitHub beim Merge ignorieren koennte, genuegt nicht. Der Abschnitt beschreibt ausdruecklich das erforderliche End-Gate, keinen bereits erfuellten Zustand. - Evidence Binding: Evidenz an exakten Head-SHA, Umgebung, Browser/Version, Rolle und Server-IDs gebunden; keine Uebertragung auf neuere Commits. Waechter: Testintegritaet als Pflichtabschnitt (Praesenz + Substanzgrenze) plus zwei neue Marker-Zusicherungen (Gegenbeweis, Merge-Blocking); beide per Gegenmutation rot gesehen und wiederhergestellt. 36 -> 40 Tests. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Sprint-7-UI/UX-Acceptance darf nicht von einer einzelnen Claude-Session oder
Chat-History abhängen. Dieser Patch verankert den Abnahmevertrag versioniert,
reviewbar und CI-bewacht im Repository.
What
.claude/rules/sprint-7-ui-ux-acceptance.md(ACTIVE_TEMPORARY, Sprint ID 579, EYT-148, Removal Condition).
apps/api/test/sprint7-acceptance-rule-guardrails.test.ts(Pflichtjob
unit-tests; prüft Existenz, CLAUDE.md-Referenz, die semantischtragenden Marker und je Pflichtabschnitt eine Substanz-Untergrenze — auf
kommentar-/fence-bereinigtem Text, kein Byte-Snapshot). Ein adversarialer
Review-Durchgang hatte die erste Fassung mit einer hohlen Datei (Marker im
HTML-Kommentar, leere Abschnitte, Lorem-Padding) grün bekommen; die
Härtung macht genau diesen Angriff messbar rot.
turbo.json: Rule, CLAUDE.md und die Handoff-Artefakte in dietest-Inputs(lokale Turbo-Cache-Vergiftung geschlossen; CI restauriert keinen Turbo-Cache
und war nie betroffen).
.gitignore:/.claude/settings.local.json—.claude/wird hiermiterstmals teilweise getrackt in einem öffentlichen Repo.
Nachtrag (Commit
50d5e81) — Contract-Completeness-Repair: DerEYT-148-Testintegritätsvertrag ist jetzt vollständig persistiert. Neuer
Abschnitt
## Testintegritätin der Rule: reale Nicht-Produktionsumgebung(Auth/API/PostgreSQL/RLS), Gegenbeweis-Pflicht (ein absichtlich
gebrochener Auth-/Persistenz-/Routingpfad muss mindestens einen passenden
Journey-Test rot machen — kontrolliert, reversibel, nur im Test-/CI-Kontext),
Merge-Blocking-Pflicht (verpflichtende Journey-/Accessibility-/
Visual-Gates müssen vor finaler Abnahme tatsächlich merge-blockierend sein)
und Evidence Binding (Head-SHA, Umgebung, Browser, Rolle, Server-IDs).
Der Guard erzwingt beide neuen Regeln als Marker (36 → 40 Tests); beide per
Gegenmutation rot gesehen und wiederhergestellt.
Was dieser PR beweist — und was nicht
Bereits bewiesen: Der Repository-Persistenzguard läuft im bestehenden
Required Check
unit-tests, und das aktive GitHub-Ruleset (19718704) machtdiesen Check merge-blockierend. Entfernen, Entkernen oder wesentliches
Abschwächen der Rule macht damit CI rot.
Noch NICHT durch diesen PR bewiesen: Die vollständigen zukünftigen
EYT-148-User-Journey-Gates, Accessibility-Acceptance-Gates und
Visual-Regression-Gates sind durch diesen Governance-PR weder implementiert
noch als eigene Required Checks nachgewiesen. Sie werden im Verlauf von
Sprint 7 aufgebaut und müssen spätestens vor finaler EYT-148-/PO-Abnahme
merge-blockierend sein. Die Rule beschreibt dieses End-Gate ausdrücklich als
Anforderung, nicht als erfüllten Zustand.
Source Authority
29.08.2026 erneut gelesen, unverändert seit 20.08.; Sprint 579 enthält exakt
EYT-12/80/81/82/113/147/148).
Design-/Architekturwahrheit (beide gelesen; kein Widerspruch zur Rule).
Human Gate
Claude cannot create PO/UI/UX acceptance.
Final agent state before human review:
READY_FOR_PO_VISUAL_REVIEW
🤖 Generated with Claude Code
Summary by Sourcery
Persist and continuously validate the Sprint 7 UI/UX acceptance contract so it remains available across agent sessions and enforceable in CI until formal PO acceptance.
New Features:
Bug Fixes:
Enhancements:
Build:
CI:
Documentation:
Tests: