Skip to content

chore: persist Sprint-7 UI/UX acceptance contract - #98

Merged
DYAI2025 merged 2 commits into
masterfrom
chore/sprint7-ui-ux-acceptance-rule
Aug 29, 2026
Merged

chore: persist Sprint-7 UI/UX acceptance contract#98
DYAI2025 merged 2 commits into
masterfrom
chore/sprint7-ui-ux-acceptance-rule

Conversation

@DYAI2025

@DYAI2025 DYAI2025 commented Aug 28, 2026

Copy link
Copy Markdown
Owner

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

  • Persistente Agent-Regel .claude/rules/sprint-7-ui-ux-acceptance.md
    (ACTIVE_TEMPORARY, Sprint ID 579, EYT-148, Removal Condition).
  • Kurzer CLAUDE.md-Anker mit @-Import — keine Volltextkopie.
  • Deterministischer Guard apps/api/test/sprint7-acceptance-rule-guardrails.test.ts
    (Pflichtjob unit-tests; prüft Existenz, CLAUDE.md-Referenz, die semantisch
    tragenden 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 die test-Inputs
    (lokale Turbo-Cache-Vergiftung geschlossen; CI restauriert keinen Turbo-Cache
    und war nie betroffen).
  • .gitignore: /.claude/settings.local.json.claude/ wird hiermit
    erstmals teilweise getrackt in einem öffentlichen Repo.

Nachtrag (Commit 50d5e81) — Contract-Completeness-Repair: Der
EYT-148-Testintegritätsvertrag ist jetzt vollständig persistiert. Neuer
Abschnitt ## Testintegrität in 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) macht
diesen 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

  • Jira EYT-148 / Sprint 579 = Acceptance-/Sprint-Wahrheit (EYT-148 am
    29.08.2026 erneut gelesen, unverändert seit 20.08.; Sprint 579 enthält exakt
    EYT-12/80/81/82/113/147/148).
  • Confluence Basisdesign v2.0 (8814623) + Zwei-Client-Architektur (8486960) =
    Design-/Architekturwahrheit (beide gelesen; kein Widerspruch zur Rule).
  • Die Rule ist ein Agent-Ausführungsvertrag, keine konkurrierende Produkt-SSoT.

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:

  • Persist a versioned Sprint 7 UI/UX acceptance contract covering real-stack journeys, accessibility, visual review, authorization, evidence, and human PO approval.

Bug Fixes:

  • Prevent acceptance requirements from disappearing silently or being bypassed by hollow rule content, missing references, or stale Turbo test caches.

Enhancements:

  • Add a concise CLAUDE.md import anchor for the binding Sprint 7 rule.
  • Add guardrails that validate the rule’s required sections and acceptance-critical protections.
  • Protect local Claude session settings from being committed while allowing selected .claude content to be tracked.

Build:

  • Include the Sprint 7 rule, CLAUDE.md, and handoff artifacts in Turbo test inputs to invalidate stale caches when governance content changes.

CI:

  • Run the acceptance-rule guardrails in the required unit-tests job and make removal or weakening of the contract fail validation.

Documentation:

  • Document the temporary Sprint 7 acceptance contract and its Jira, Confluence, repository, runtime, and human-approval authorities.

Tests:

  • Add deterministic tests for rule existence, repository linkage, required sections, substantive content, acceptance markers, and counterexample protections.

… 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>
@sourcery-ai

sourcery-ai Bot commented Aug 28, 2026

Copy link
Copy Markdown

Reviewer's Guide

Der 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 validation

sequenceDiagram
    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
Loading

File-Level Changes

Change Details Files
Persistiert den vollständigen, temporär bindenden Sprint-7-UI/UX-Abnahmevertrag als versionierte Agentenregel.
  • Dokumentiert Status, Sprint-/Issue-Bezug und Removal Condition.
  • Definiert Source Authority, Real-Stack-Abnahmen, Journey-Anforderungen, Viewports, Accessibility, Zustände, Autorisierung und Browser-Integrität.
  • Verankert Human-/PO-only-Abnahme, Schutz vor automatischen Golden-Baseline-Updates und den Status READY_FOR_PO_VISUAL_REVIEW.
  • Beschreibt Evidence-Package-Anforderungen und die finalen Admin-/Mitarbeiter-Journeys.
.claude/rules/sprint-7-ui-ux-acceptance.md
Bindet die neue Regel als kompakten, automatisch geladenen Governance-Anker in die Agentenanweisungen ein.
  • Fügt einen Sprint-7-Abschnitt mit @-Import und den wichtigsten Akzeptanzgrenzen hinzu.
  • Verweist auf den Guardrail-Test und stellt die Regel als temporär bindend dar.
CLAUDE.md
Führt einen deterministischen Guardrail-Test ein, der die Regel gegen Aushöhlung und versehentliche Entkopplung absichert.
  • Prüft Regeldatei, CLAUDE.md-Referenz, Bindungsaussage, tragende Marker und Pflichtabschnitte.
  • Entfernt Kommentare und Code-Fences vor semantischen Prüfungen und erzwingt Mindestsubstanz je Abschnitt.
  • Liefert verständliche Fehler bei fehlender Regeldatei und läuft im bestehenden unit-tests-Pflichtjob.
apps/api/test/sprint7-acceptance-rule-guardrails.test.ts
Erweitert Turbo-Testinputs, damit Änderungen an Regel- und Handoff-Artefakten lokale Test-Caches invalidieren.
  • Nimmt die Sprint-7-Regel, CLAUDE.md und relevante Handoff-Artefakte in die Test-Hashinputs auf.
  • Verhindert veraltete grüne lokale Cache-Replays nach einer Regelmutation.
turbo.json
Schützt lokale Claude-Session-Konfiguration vor versehentlichem Commit.
  • Ignoriert .claude/settings.local.json, während die versionierte Regel unter .claude/ getrackt werden kann.
.gitignore

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

sourcery-ai[bot]
sourcery-ai Bot previously approved these changes Aug 28, 2026

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've reviewed your changes and they look great!

Sourcery assessment

Approved.


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

…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>

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sourcery assessment

Approved.

@DYAI2025
DYAI2025 merged commit 028ccfb into master Aug 29, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants