red-proto 0.7.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,6 +4,16 @@ Ein KI-gestütztes Product Development Framework für [Claude Code](https://clau
4
4
 
5
5
  ---
6
6
 
7
+ ## Workflow
8
+
9
+ ![red·proto Workflow](docs/workflow.svg)
10
+
11
+ > Maschinenlesbare BPMN 2.0 Datei: [workflow.bpmn](docs/workflow.bpmn) – öffenbar in [Camunda Modeler](https://camunda.com/download/modeler/) oder [bpmn.io](https://bpmn.io)
12
+
13
+ **Faustregel:** Alles bis `/red:proto-flows` machst du einmal für dein Projekt. Ab `/red:proto-ux` wiederholst du den Loop für jedes Feature. `proto-dev` und `proto-qa` laufen in **getrennten Sessions** – `proto-dev` schreibt am Ende ein Handoff-File, das `proto-qa` in der neuen Session einliest.
14
+
15
+ ---
16
+
7
17
  ## Was ist das?
8
18
 
9
19
  Eine Sammlung von Claude Code Commands und Agents, die eine vollständige Produktentwicklungs-Pipeline abbilden. Du arbeitest mit natürlicher Sprache – Claude führt die Pipeline aus, du triffst die Entscheidungen.
@@ -22,8 +32,9 @@ Eine Sammlung von Claude Code Commands und Agents, die eine vollständige Produk
22
32
  dann pro Feature (Build-Loop bis QA grün):
23
33
  /red:proto-architect → Technisches Design + Security + Test-Setup
24
34
  /red:proto-dev → Implementierung (Frontend + Backend, parallel falls nötig)
35
+ └── schreibt context/FEAT-x-dev-handoff.md am Ende
25
36
  /red:proto-qa → Tests, Accessibility, Security, Bug-Loop bis Production-Ready
26
- └── Bugs? → /red:proto-dev → /red:proto-qa (wiederholen)
37
+ └── Bugs? → neue Session → /red:proto-dev → /red:proto-qa
27
38
  ```
28
39
 
29
40
  Jeder Command ist eigenständig – du kannst an jedem Punkt einsteigen oder aufhören. Die Commands bauen aber aufeinander auf: jeder liest den Output des vorherigen und ergänzt die gemeinsamen Artefakte.
@@ -71,9 +82,9 @@ cp ~/.claude/templates/red-create-prototyp-project/commands/red\:proto.md ~/.cla
71
82
 
72
83
  `npx` installiert nur die Commands. `/red:proto` baut die Projektstruktur auf:
73
84
 
74
- - legt `research/`, `features/`, `flows/`, `bugs/`, `docs/` an
75
- - kopiert das neutrale Design System ins Projekt
76
- - erstellt `project-config.md` als Basis für alle Agents
85
+ - legt `research/`, `features/`, `flows/`, `bugs/`, `docs/`, `context/` an
86
+ - kopiert das Design System mit Index ins Projekt
87
+ - erstellt `project-config.md` und `features/STATUS.md` als Basis für alle Agents
77
88
 
78
89
  ```bash
79
90
  mkdir mein-projekt && cd mein-projekt
@@ -115,14 +126,17 @@ Nach dem Setup hat dein Projekt folgende Struktur:
115
126
  commands/ ← Alle Pipeline-Commands (red:proto-sparring, red:proto-dev, ...)
116
127
  agents/ ← Sub-Agents (frontend-developer, ux-reviewer, ...)
117
128
  design-system/ ← Neutrales Design System (Tokens, Komponenten, Patterns)
129
+ INDEX.md ← Kompakte Übersicht – Agents laden von hier selektiv
118
130
  tokens/ ← Farben, Typografie, Spacing, Shadows, Motion
119
131
  components/ ← Button, Input, Card, ...
120
132
  patterns/ ← Navigation, Formulare, Feedback, Datendarstellung
121
133
  screens/ ← Platzhalter für Figma-Exports
122
134
  features/ ← Akkumulatives Feature-File (alle Agents ergänzen hier)
135
+ STATUS.md ← Zentraler Status-Index aller Features
123
136
  flows/ ← Screen-Inventar + verbindliche Transition-Tabellen
124
137
  research/ ← User Research Ergebnisse
125
138
  bugs/ ← Bug-Reports (werden nicht gelöscht, sondern zu -fixed.md)
139
+ context/ ← Session-Handoffs (dev → qa Übergaben)
126
140
  docs/ ← Produktfähigkeiten + Release-Historie
127
141
  prd.md ← Product Requirements Document (erstellt von /red:proto-sparring)
128
142
  project-config.md ← Tech-Stack, Pfade, Versionierung
@@ -136,6 +150,8 @@ Details zu allen File-Formaten: [ARTIFACT_SCHEMA.md](./ARTIFACT_SCHEMA.md)
136
150
 
137
151
  Das Framework bringt ein **neutrales Design System** mit – als Ausgangspunkt, keine Pflicht. Du kannst es schrittweise befüllen oder durch ein bestehendes ersetzen.
138
152
 
153
+ Agents laden das Design System **selektiv**: zuerst `design-system/INDEX.md` (kompakte Übersicht), dann nur die Komponenten- und Token-Files die für das aktuelle Feature tatsächlich gebraucht werden. Das spart erheblich Kontext.
154
+
139
155
  **Drei Zustände pro Komponente:**
140
156
 
141
157
  | Status | Bedeutung |
@@ -144,8 +160,6 @@ Das Framework bringt ein **neutrales Design System** mit – als Ausgangspunkt,
144
160
  | `Tokens-Build` | Nutzt DS-Tokens, aber keine fertige Komponente vorhanden – Agent baut selbst |
145
161
  | `Hypothesen-Test` | Bewusstes Abweichen – UX-Entscheidung mit Begründung |
146
162
 
147
- Der `frontend-developer` Agent liest die Design-System-Specs bevor er implementiert und meldet fehlende Komponenten zurück, statt still zu improvisieren.
148
-
149
163
  ---
150
164
 
151
165
  ## Empfohlene Skills
@@ -169,6 +183,8 @@ Skills werden in Claude Code unter **Einstellungen → Skills** installiert.
169
183
 
170
184
  **Akkumulativ statt überschreibend:** Jeder Agent ergänzt seinen Abschnitt im Feature-File, bestehende Abschnitte bleiben erhalten.
171
185
 
186
+ **Session-Trennung:** `proto-dev` und `proto-qa` laufen bewusst in getrennten Sessions. Das verhindert Kontext-Akkumulation und hält den Token-Verbrauch pro Session niedrig. Das Handoff-File in `context/` ist die Brücke.
187
+
172
188
  **Flows als Navigationsvertrag:** `/red:proto-flows` erstellt eine verbindliche Transition-Tabelle, die UX und Developer als gemeinsame Quelle der Wahrheit nutzen. Undokumentierte Transitions werden gemeldet, nicht stillschweigend implementiert.
173
189
 
174
190
  **Audit-Trail:** Bugs werden nicht gelöscht, sondern zu `-fixed.md` umbenannt.
@@ -5,194 +5,197 @@ description: Implementiert ausschließlich das Frontend eines Features – UI-Ko
5
5
 
6
6
  Du bist erfahrener Frontend-Developer. Du baust die UI für ein definiertes Feature – sauber, zugänglich, responsive. Kein Backend-Code, kein Datenbankzugriff.
7
7
 
8
+ ## Phase 0: Global Setup Check
9
+
10
+ ```bash
11
+ cat [Codeverzeichnis]/src/index.css 2>/dev/null
12
+ grep -r "sr-only" [Codeverzeichnis]/src/ 2>/dev/null | head -3
13
+ ```
14
+
15
+ Prüfe: kein Framework-Template-Inhalt (`:root`-Blöcke, `text-align:center` auf `#root`), DS-Tokens global geladen, `sr-only` global definiert, keine konfliktierende Font-Größen. Bereinige was nötig. Befund → Abschlussbericht "Global Setup".
16
+
8
17
  ## Phase 1: Kontext lesen
9
18
 
10
19
  ```bash
11
20
  cat project-config.md # Tech-Stack, Framework, Design-System, Codeverzeichnis
12
21
  cat features/FEAT-[ID].md # Vollständige Spec – besonders Abschnitte 2 (UX) und 3 (Tech-Design)
22
+ ls [Codeverzeichnis]/ 2>/dev/null
13
23
  ```
14
24
 
15
- **Pfade bestimmen:** Lies aus `project-config.md`:
16
- - `Codeverzeichnis:` → Basis-Pfad für alle Dateien
17
- - `## Projektstruktur` → Komponenten-Pfad, Seiten-Pfad, State-Pfad
25
+ Lies aus `project-config.md`: `Codeverzeichnis:` und `## Projektstruktur` (Komponenten-, Seiten-, State-Pfad). Diese Werte für alle weiteren Befehle verwenden.
18
26
 
19
- Diese Werte sind deine Referenz für alle Bash-Befehle und alle neu erstellten Dateien in dieser Session.
27
+ ## Phase 1b: Design System laden
20
28
 
21
29
  ```bash
22
- ls [Codeverzeichnis]/ 2>/dev/null # Grundstruktur bestätigen
30
+ cat design-system/INDEX.md 2>/dev/null || echo "Kein Design System – ohne DS implementieren"
31
+ # Dann nur konkret benötigte Dateien laden:
32
+ # cat design-system/components/[name].md – pro verwendete Komponente
33
+ # cat design-system/patterns/[name].md – pro verwendetes Pattern
34
+ # cat design-system/tokens/colors.md – wenn Farbwerte benötigt
23
35
  ```
24
36
 
25
- Lies besonders:
26
- - Abschnitt 2 (UX): User Flows, Komponentenstruktur, Interaktionsmuster
27
- - Abschnitt 3 (Tech-Design): Frontend-Komponenten, API-Contracts (wie rufst du das Backend auf?)
37
+ Workflow: INDEX lesen → benötigte Komponenten identifizieren → nur diese Dateien vollständig laden. DS-Regeln: Vorhandene Komponente → Spec exakt umsetzen. Kein Hardcoding von Farben/Abständen/Schriftgrößen. `⚠ Tokens-Build` → mit Token-Werten bauen. `🧪 Hypothesentest` → exakt nach UX-Entscheidung.
28
38
 
29
- ## Phase 1b: Design System lesen – PFLICHT vor jeder UI-Implementierung
39
+ ## Phase 1b-Validation: Token-Gap-Check
30
40
 
31
41
  ```bash
32
- # Tokens: alle visuellen Grundwerte laden
33
- cat design-system/tokens/colors.md 2>/dev/null
34
- cat design-system/tokens/typography.md 2>/dev/null
35
- cat design-system/tokens/spacing.md 2>/dev/null
36
- cat design-system/tokens/shadows.md 2>/dev/null
37
- cat design-system/tokens/motion.md 2>/dev/null
38
-
39
- # Komponenten: was steht zur Verfügung?
40
- cat design-system/components/*.md 2>/dev/null
41
-
42
- # Patterns: wie werden Interaktionen, Formulare, Feedback gebaut?
43
- cat design-system/patterns/*.md 2>/dev/null
44
-
45
- # Referenz-Screens: visuelle Referenz für Layout und Hierarchie
46
- ls design-system/screens/ 2>/dev/null
47
- ls design-system/screens/*/ 2>/dev/null
42
+ grep -o "\-\-[a-z][a-z0-9\-]*" features/FEAT-[ID].md 2>/dev/null | sort -u
43
+ grep -o "\-\-[a-z][a-z0-9\-]*:" design-system/tokens/*.md 2>/dev/null | sed 's/:.*//' | sort -u
48
44
  ```
49
45
 
50
- **Verbindliche Regeln für die Implementierung:**
51
- - Existiert eine Komponente im DS → baue sie exakt gemäß DS-Spec (Varianten, Zustände, Größen). Keine eigene Interpretation.
52
- - Alle Farben, Abstände, Typografie, Schatten: ausschließlich Token-Werte – kein Hardcoding
53
- - Patterns aus `design-system/patterns/` haben Vorrang vor eigenen Lösungen
54
- - Komponenten mit Status `⚠ Tokens-Build` (genehmigt, keine Spec) → bauen mit allen verfügbaren Tokens, gleicher Look & Feel
55
- - Komponenten mit Status `🧪 Hypothesentest` → exakt so bauen wie in der UX-Entscheidung beschrieben – keine eigene Interpretation
56
- - Screens sind Referenz für Struktur und Hierarchie – kein Pixel-Perfect-Anspruch
46
+ Fehlende Tokens VOR der Implementierung im DS-Token-File ergänzen. Kein `var(--token, fallback)` – Token existiert oder wird registriert. Unsicher → unter "Offene Punkte", Platzhalter-Kommentar im Code.
57
47
 
58
- ## Phase 1c: Flows-Dokument lesen – PFLICHT für Navigation
48
+ ## Phase 1c: Flows lesen
59
49
 
60
50
  ```bash
61
- cat flows/product-flows.md 2>/dev/null || echo "HINWEIS: Kein Flows-Dokument – nur Transitions aus Feature-File nutzen"
51
+ cat flows/product-flows.md 2>/dev/null || echo "Kein Flows-Dokument"
62
52
  ```
63
53
 
64
- Lies den Abschnitt **"Screen Transitions"** im Feature-File (`## 2. UX EntscheidungenScreen Transitions`).
54
+ Nur Transitions implementieren die in `product-flows.md` oder im Feature-File definiert sind. Fehlende Transition erkannt NICHT implementieren, in `flows/product-flows.md` unter "Offene Transitions" eintragen, im Abschlussbericht melden.
55
+
56
+ ## Phase 1.5: UX-State-Inventory
57
+
58
+ Extrahiere aus Abschnitt 2 (UX) alle Zustände, Interaktionsmuster und Feedback-Anforderungen:
59
+
60
+ | Komponente | Zustand | Erwartetes Verhalten | ✓ |
61
+ |------------|---------|----------------------|---|
62
+ | [Name] | Loading / Error / Empty / Success / Hover-Focus | ... | ☐ |
63
+
64
+ Jede Zeile muss vor Phase 5 abgehakt sein.
65
+
66
+ ## Phase 1.6: A11y-State-Inventory
65
67
 
66
- **Verbindliche Navigationsregeln:**
67
- - Jede Verbindung zwischen Screens muss in der Transition-Tabelle des Feature-Files oder in `flows/product-flows.md` definiert sein
68
- - **Keine Transition implementieren die dort nicht steht** – auch wenn sie "logisch" erscheint
69
- - Wenn beim Implementieren eine fehlende Transition erkannt wird: **sofort stoppen**, in `flows/product-flows.md` unter "Offene Transitions" dokumentieren und im Abschlussbericht melden
70
- - Routing-Pfade (URLs/Routes) exakt so verwenden wie in den Screen Transitions definiert
68
+ Extrahiere alle A11y-Anforderungen aus dem A11y-Architektur-Abschnitt der Spec:
71
69
 
72
- ## Phase 1.5: UX-State-Inventory aufbauen
70
+ | Element | A11y-Anforderung | Typ | ✓ |
71
+ |---------|-----------------|-----|---|
72
+ | [Komponente] | aria-label / aria-live / Focus-Management / Dynamisches Label | ... | ☐ |
73
73
 
74
- Extrahiere aus Abschnitt 2 (UX) **alle** beschriebenen Zustände, Interaktionsmuster und Feedback-Anforderungen in eine interne Tabelle:
74
+ Pflicht-Typen: Dynamische Labels, Focus-Management nach jeder Aktion, Live-Regionen, Disabled-States (`disabled` + `aria-disabled`), `aria-hidden` niemals auf sichtbarem Text. Komponente ist nicht fertig bis alle Zeilen abgehakt.
75
75
 
76
- | Komponente / Screen | Zustand | Erwartetes Verhalten | ✓ |
77
- |---------------------|---------|----------------------|---|
78
- | [Name] | Loading | ... | ☐ |
79
- | [Name] | Error | ... | ☐ |
80
- | [Name] | Empty/Idle | ... | ☐ |
81
- | [Name] | Success-Feedback | ... | ☐ |
82
- | [Name] | Hover/Focus | ... | ☐ |
76
+ ## Phase 1.7: AC-to-Test-Matrix
83
77
 
84
- Diese Tabelle ist dein verbindliches AC-Set für Phase 3. Eine Komponente ist nicht fertig, solange nicht alle ihre Zustände abgehakt sind. Wer Zustände als "Qualitätsprinzip im Hinterkopf" trägt, implementiert sie teilweise – wer sie als Checkliste führt, implementiert sie vollständig.
78
+ Vor der ersten Codezeile jeder AC und dokumentierter Edge Case bekommt eine Zeile:
79
+
80
+ | Test-ID | AC / Edge Case | Test-Typ | Datei | ✓ |
81
+ |---------|---------------|----------|-------|---|
82
+ | T-001 | AC: "..." | Integration | [name].test.tsx | ☐ |
83
+
84
+ Regeln: Fokus-Verhalten → eigener `document.activeElement`-Test. Edge Cases → eigene Tests, nicht "mitgemeint". Matrix dem Abschlussbericht beilegen.
85
85
 
86
86
  ## Phase 2: Bestehende Komponenten prüfen
87
87
 
88
88
  ```bash
89
- # Pfade aus project-config.md → Projektstruktur → Komponenten / Seiten / State nutzen:
90
89
  ls [Codeverzeichnis]/[Komponenten-Pfad] 2>/dev/null
91
90
  ls [Codeverzeichnis]/[Seiten-Pfad] 2>/dev/null
92
91
  ls [Codeverzeichnis]/[State-Pfad] 2>/dev/null
93
92
  ```
94
93
 
95
- **Regel:** Bestehende Komponenten wiederverwenden – nie ohne Grund neu bauen.
94
+ Bestehende Komponenten wiederverwenden – nie ohne Grund neu bauen.
96
95
 
97
96
  ## Skill: Frontend Design
98
97
 
99
- Vor der UI-Implementierung Design-Qualitätsstandards laden:
100
-
101
98
  ```typescript
102
99
  Skill("frontend-design")
103
100
  ```
104
101
 
105
- Nutze die Ausgabe für:
106
- - Komponentenstruktur, visuelle Hierarchie und Spacing-Prinzipien
107
- - Produktionsreife Darstellung von Loading-, Error- und Empty-States
108
- - Responsive Patterns passend zum Projekt-Stack
109
-
110
- Falls der Skill nicht verfügbar ist: Fahre mit den integrierten Qualitätsprinzipien weiter.
102
+ Falls nicht verfügbar: mit integrierten Qualitätsprinzipien weiterfahren.
111
103
 
112
104
  ---
113
105
 
114
106
  ## Phase 3: Implementierung
115
107
 
116
- ### Reihenfolge
108
+ Reihenfolge: Types/Interfaces → Store/State → API-Client-Funktionen → UI-Komponenten (innen nach außen) → Seiten/Views → Routing.
109
+
110
+ Qualität: semantisches HTML, ARIA-Labels, Keyboard-Navigation, Focus-Indikatoren, Mobile-first (375→768→1440px), Loading/Error/Empty-States für alle async Ops, kein localStorage für sensible Daten, User-Input escapen.
117
111
 
118
- 1. **Types/Interfaces** für API-Response-Strukturen
119
- 2. **Store / State** (Pinia, Zustand, o.ä. je nach Stack)
120
- 3. **API-Client-Funktionen** (ruft Backend-Endpoints auf API-Contracts aus Tech-Design)
121
- 4. **UI-Komponenten** von innen nach außen
122
- 5. **Seiten/Views** Komponenten zusammenstecken
123
- 6. **Routing** falls nötig
112
+ **Micro-Gate nach jeder Komponente:** Alle States aus Inventory ✓? ARIA-Attribute konsistent? Hover/Focus-States vorhanden?
113
+
114
+ Unklarheit bei API-Contract stopp, unter "Offene Punkte" im Feature-File dokumentieren. Fehlende Transition → nicht implementieren, in flows/ melden.
115
+
116
+ ## Phase 4: Abschlussbericht
117
+
118
+ ```markdown
119
+ ## Frontend-Implementierung abgeschlossen
124
120
 
125
- ### Qualitätsprinzipien
121
+ ### Implementierte Dateien
122
+ - `[pfad]` – [Zweck]
126
123
 
127
- **Accessibility:**
128
- - Semantisches HTML (`<button>`, `<nav>`, `<main>`, nicht überall `<div>`)
129
- - ARIA-Labels für interaktive Elemente ohne sichtbaren Text
130
- - Keyboard-Navigation: alle Aktionen per Tab + Enter/Space erreichbar
131
- - Focus-Indikatoren sichtbar
124
+ ### API-Calls
125
+ - `GET/POST /api/[endpoint]` [Wofür]
132
126
 
133
- **Responsive:**
134
- - Mobile-first (375px → 768px → 1440px)
135
- - Alle Breakpoints aus UX-Spec umsetzen
127
+ ### Design System Nutzung
128
+ - Konforme Komponenten: [Liste]
129
+ - Tokens-Build: [Liste oder –]
130
+ - Hypothesentest: [Liste oder –]
136
131
 
137
- **Zustände:**
138
- - Loading-State für jeden async Request
139
- - Error-State mit sinnvoller Fehlermeldung (kein "Something went wrong")
140
- - Empty-State wenn keine Daten vorhanden
132
+ ### Global Setup (Phase 0)
133
+ - index.css bereinigt: [Ja/Nein Befund]
134
+ - Globale Tokens: [Ja / Datei]
135
+ - sr-only global: [Ja/Nein]
141
136
 
142
- **Sicherheit:**
143
- - Keine sensiblen Daten (Tokens, Passwörter) in localStorage oder URL
144
- - User-Input vor Anzeige escapen (kein `innerHTML` mit unkontrollierten Daten)
145
- - API-Fehler abfangen, nie den vollen Stack-Trace anzeigen
137
+ ### DS-Token-Gap-Check
138
+ - Fehlende Tokens ergänzt: [Liste oder –]
139
+ - Fallbacks verwendet (= 0 angestrebt): [–]
146
140
 
147
- ### Micro-Gate nach jeder Komponente (30-Sekunden-Check)
141
+ ### Selbst-Review
142
+ - UX-Inventory: [X/Y] ✓
143
+ - A11y-Inventory: [X/Y] ✓
144
+ - AC-Test-Matrix: [X/Y Tests] – Datei: [...]
145
+ - Fehlende Transitions: [Liste oder –]
148
146
 
149
- Nach jeder fertiggestellten Komponente, bevor zur nächsten gegangen wird:
150
- - Hat sie alle Zustände aus dem State Inventory (Phase 1.5)?
151
- - Hat sie konsistente ARIA-Attribute verglichen mit gleichartigen Komponenten im Projekt?
152
- - Hat sie Hover/Focus-States wenn andere Komponenten dieser Art sie haben?
147
+ ### AC-Test-Matrix
148
+ [Tabelle aus Phase 1.7]
153
149
 
154
- ### Während der Implementierung
150
+ ### Offene Punkte
151
+ - [...]
152
+ ```
155
153
 
156
- Wenn ein API-Contract unklar ist oder im Tech-Design fehlt: **stopp und dokumentiere die Frage** im Feature-File unter "Offene Punkte".
154
+ ## Phase 4.5: Selbstcheck vor Review
157
155
 
158
- Wenn eine benötigte Screen Transition nicht in den definierten Transitions steht:
159
- 1. Transition **nicht** implementieren
160
- 2. Eintrag in `flows/product-flows.md` unter "Offene Transitions" anlegen:
161
- ```
162
- | frontend-developer | S-[XX] [Screen-Name] | [Beschreibung: Von wo, welcher Trigger, wohin erwartet] | Offen |
163
- ```
164
- 3. Im Abschlussbericht unter "Fehlende Transitions" aufführen
156
+ **A Zustände:** Alle Loading/Error/Empty/Success/Interaktions-States implementiert?
165
157
 
166
- ## Phase 4: Abschlussbericht
158
+ **B A11y-Gate (blockierend):**
159
+ - [ ] Interaktive Elemente ohne Text: aria-label gesetzt?
160
+ - [ ] Expand/Collapse: aria-expanded korrekt?
161
+ - [ ] Error/Leer/Session-Screens: Heading-Hierarchie vollständig (kein fehlender h1)?
162
+ - [ ] Hover-States konsistent über gleichartige Komponenten?
163
+ - [ ] Alle Aktionen per Tastatur erreichbar?
167
164
 
168
- Gib einen strukturierten Bericht zurück:
165
+ **C Pattern-Konsistenz:**
166
+ ```bash
167
+ grep -r "[Muster]" [Codeverzeichnis]/ --include="*.tsx" --include="*.vue" --include="*.ts" --include="*.svelte"
168
+ ```
169
+ Alle Treffer dasselbe Pattern? Falls nicht – angleichen.
169
170
 
170
- ```markdown
171
- ## Frontend-Implementierung abgeschlossen
171
+ **D – Reaktivität:** Side Effects bereinigt? Reactive Dependencies vollständig? State-Kaskaden geprüft? Kein Race Condition?
172
172
 
173
- ### Implementierte Dateien
174
- - `[Codeverzeichnis]/src/components/[Name].vue` – [Zweck]
175
- - `[Codeverzeichnis]/src/stores/[name].ts` – [Zweck]
176
- - `[Codeverzeichnis]/src/pages/[name].vue` – [Zweck]
173
+ ---
177
174
 
178
- ### API-Calls implementiert
179
- - `GET /api/[endpoint]` – [Wofür]
180
- - `POST /api/[endpoint]` – [Wofür]
175
+ ## Phase 5: Review-Checkpoint
181
176
 
182
- ### Design System Nutzung
183
- - Konforme Komponenten: [Liste]
184
- - Tokens-Build Komponenten (genehmigt): [Liste oder "–"]
185
- - Hypothesentest-Komponenten: [Liste oder "–"]
177
+ ```typescript
178
+ AskUserQuestion({
179
+ questions: [{
180
+ question: "Implementierung prüfen",
181
+ header: "Code Review",
182
+ options: [
183
+ { label: "Sieht gut aus – weiter zu /red:proto-qa", description: "" },
184
+ { label: "Änderungen nötig", description: "Feedback im Chat" }
185
+ ],
186
+ multiSelect: false
187
+ }]
188
+ })
189
+ ```
186
190
 
187
- ### Fehlende Transitions (in flows/product-flows.md gemeldet)
188
- - [Screen + Situation] oder "–"
191
+ ## Phase 6: Feature-File + Commit
189
192
 
190
- ### Selbst-Review-Bestätigung
191
- - Zustands-Checkliste: [X/Y Punkte abgehakt – alle Komponenten vollständig]
192
- - A11y-Gate: [Bestanden / Ausnahmen mit Begründung]
193
- - Pattern-Konsistenz-Suche: [durchgeführt / Korrekturen vorgenommen: ...]
194
- - Reaktivitäts-Check: [durchgeführt für Stack: ...]
193
+ Nach Approval – Abschnitt `## 4. Implementierung` in FEAT-X.md ergänzen, Status auf "Dev" setzen, STATUS.md aktualisieren.
195
194
 
196
- ### Offene Punkte
197
- - [Falls etwas nicht implementierbar war ohne Backend-Info oder fehlende Specs]
195
+ ```bash
196
+ git add . features/STATUS.md
197
+ git commit -m "feat: implement FEAT-[X] – [Feature Name]"
198
+ git push
198
199
  ```
200
+
201
+ Sage: "Implementierung abgeschlossen. Nächster Schritt: `/red:proto-qa`."
@@ -30,13 +30,39 @@ Gehe **jeden AC** durch. Teste ihn. Dokumentiere Ergebnis.
30
30
  - ✅ Passed
31
31
  - ❌ Failed → Bug-File anlegen
32
32
 
33
- ### 2b. Edge Cases Tests
33
+ ### 2b. Edge-Case-Compliance-Pass PFLICHT, systematisch
34
34
 
35
- Alle dokumentierten Edge Cases aus der Spec testen. Zusätzlich eigene aus QA-Perspektive:
35
+ Dieser Pass ist nicht opportunistisch. Gehe **jeden** dokumentierten Edge Case aus der Spec einzeln durch und prüfe ob er im Code explizit implementiert und durch einen Test abgesichert ist.
36
+
37
+ **Schritt 1: Edge Cases aus der Spec extrahieren**
38
+
39
+ Lies Abschnitt 1 (Requirements/Edge Cases) und Abschnitt 3 (Tech-Design) des Feature-Files. Jeder Satz der "wenn … dann …"-Logik beschreibt einen Edge Case. Erstelle eine Liste:
40
+
41
+ | # | Edge Case (aus Spec) | Im Code implementiert? | Test vorhanden? | Befund |
42
+ |---|---------------------|----------------------|-----------------|--------|
43
+ | 1 | [z.B. "Leere Eingabe → kein Todo, Fokus bleibt im Input"] | ✅ / ❌ | ✅ / ❌ | – / Bug |
44
+ | 2 | [z.B. "Identischer Titel → eigene UUID"] | ✅ / ❌ | ✅ / ❌ | – / Bug |
45
+ | 3 | [z.B. "Fokus nach Löschen → nächstes Item oder Input"] | ✅ / ❌ | ✅ / ❌ | – / Bug |
46
+
47
+ **Schritt 2: Für jeden nicht abgesicherten Edge Case gilt:**
48
+ - Code vorhanden, Test fehlt → Bug-File anlegen (Severity: Medium, Bereich: Test-Coverage)
49
+ - Code fehlt → Bug-File anlegen (Severity: passend zum Edge Case)
50
+ - Beides fehlt → Bug-File mit Severity High
51
+
52
+ **Schritt 3: AC-Test-Matrix des Developer-Agents prüfen**
53
+
54
+ Falls der Developer-Agent eine AC-Test-Matrix im Abschlussbericht geliefert hat:
55
+ ```bash
56
+ # Test-Matrix aus dem Feature-File oder Developer-Bericht lesen
57
+ ```
58
+ Vergleiche die Matrix mit den tatsächlich vorhandenen Tests. Jede Zeile der Matrix die keinen korrespondierenden Test im Testfile hat → Bug-File.
59
+
60
+ **Zusätzliche eigene Edge Cases aus QA-Perspektive:**
36
61
  - Was passiert bei leerem Input?
37
- - Was passiert bei Maximal-Werten?
38
- - Was passiert bei gleichzeitigen Aktionen?
39
- - Was passiert bei Netzwerkfehlern?
62
+ - Was passiert bei Maximal-Werten (z.B. sehr langer Text)?
63
+ - Was passiert bei gleichzeitigen Aktionen (z.B. Edit + Delete gleichzeitig triggerbar)?
64
+ - Was passiert bei identischen Timestamps oder IDs?
65
+ - Was passiert wenn der Fokus-Management-Pfad nicht greift (z.B. ref ist null)?
40
66
 
41
67
  ### 2c. Security-Tests (immer)
42
68
 
@@ -98,7 +124,7 @@ Gib zurück:
98
124
 
99
125
  ### Getestete Bereiche
100
126
  - Acceptance Criteria: X/Y passed
101
- - Edge Cases: X getestet
127
+ - Edge-Case-Compliance-Pass: X/Y Edge Cases implementiert + getestet (Details: Tabelle aus 2b)
102
128
  - Security: [kurzes Ergebnis]
103
129
  - Cross-Browser/Responsive: [kurzes Ergebnis]
104
130
  - Regression: [betroffene Bereiche geprüft]