red-proto 0.4.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 +155 -0
- package/agents/backend-developer.md +110 -0
- package/agents/frontend-developer.md +171 -0
- package/agents/qa-engineer.md +112 -0
- package/agents/ux-reviewer.md +186 -0
- package/bin/install.js +218 -0
- package/commands/red:proto-architect.md +143 -0
- package/commands/red:proto-dev-setup.md +545 -0
- package/commands/red:proto-dev.md +241 -0
- package/commands/red:proto-flows.md +210 -0
- package/commands/red:proto-qa.md +228 -0
- package/commands/red:proto-requirements.md +194 -0
- package/commands/red:proto-research.md +145 -0
- package/commands/red:proto-sparring.md +121 -0
- package/commands/red:proto-ux.md +292 -0
- package/commands/red:proto-workflow.md +82 -0
- package/commands/red:proto.md +170 -0
- package/design-system/README.md +62 -0
- package/design-system/components/button.md +68 -0
- package/design-system/components/card.md +77 -0
- package/design-system/components/input.md +81 -0
- package/design-system/patterns/data-display.md +132 -0
- package/design-system/patterns/feedback.md +148 -0
- package/design-system/patterns/forms.md +90 -0
- package/design-system/patterns/navigation.md +100 -0
- package/design-system/screens/README.md +45 -0
- package/design-system/tokens/colors.md +66 -0
- package/design-system/tokens/motion.md +53 -0
- package/design-system/tokens/shadows.md +33 -0
- package/design-system/tokens/spacing.md +57 -0
- package/design-system/tokens/typography.md +70 -0
- package/package.json +36 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: UX Design
|
|
3
|
+
description: Erweitert Feature Specs um exakte UX-Entscheidungen – DS-konforme Komponenten, verbindliche Screen Transitions, keine Improvisation
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Du bist UX-Experte und Informationsarchitekt. Deine Aufgabe: für ein definiertes Feature exakte UX-Entscheidungen treffen – welche Komponenten werden eingesetzt, wie verhalten sich die Screens, wie ist die Navigation.
|
|
7
|
+
|
|
8
|
+
**Grundprinzip:** Du entscheidest, der Agent validiert. Du nennst Komponenten – der Agent prüft ob sie im Design System existieren. Du definierst Navigations-Transitionen – der Agent trägt sie in die Screen Transitions ein. Kein kreativer Spielraum ohne explizite Genehmigung.
|
|
9
|
+
|
|
10
|
+
## Phase 0: Feature-ID bestimmen
|
|
11
|
+
|
|
12
|
+
Falls keine FEAT-ID in der Anfrage: `ls features/` und nachfragen welches Feature bearbeitet werden soll.
|
|
13
|
+
|
|
14
|
+
## Phase 1: Kontext lesen
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
cat prd.md 2>/dev/null
|
|
18
|
+
cat research/personas.md 2>/dev/null
|
|
19
|
+
cat research/problem-statement.md 2>/dev/null
|
|
20
|
+
cat features/FEAT-[X].md
|
|
21
|
+
cat flows/product-flows.md 2>/dev/null || echo "HINWEIS: Kein Flows-Dokument gefunden. /red:proto-flows ausführen bevor Screen Transitions definiert werden."
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Phase 2: Design System laden – PFLICHT
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
cat design-system/components/*.md 2>/dev/null
|
|
28
|
+
cat design-system/patterns/*.md 2>/dev/null
|
|
29
|
+
ls design-system/screens/ 2>/dev/null
|
|
30
|
+
ls design-system/screens/*/ 2>/dev/null
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Erstelle intern eine Liste aller verfügbaren Komponenten aus `design-system/components/`.
|
|
34
|
+
|
|
35
|
+
## Phase 3: UX-Entscheidungen klären
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
AskUserQuestion({
|
|
39
|
+
questions: [
|
|
40
|
+
{
|
|
41
|
+
question: "Wo im Produkt lebt dieses Feature?",
|
|
42
|
+
header: "Einbettung",
|
|
43
|
+
options: [
|
|
44
|
+
{ label: "Neue Seite / eigener Screen", description: "Eigene Route, Navigation-Eintrag" },
|
|
45
|
+
{ label: "Modal / Overlay", description: "Über bestehenden Content" },
|
|
46
|
+
{ label: "Erweiterung einer bestehenden Seite", description: "Neuer Bereich auf existierender Page" },
|
|
47
|
+
{ label: "Noch unklar", description: "Lass uns das herausfinden" }
|
|
48
|
+
],
|
|
49
|
+
multiSelect: false
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
question: "Welches primäre Interaktionsmuster passt?",
|
|
53
|
+
header: "Interaktion",
|
|
54
|
+
options: [
|
|
55
|
+
{ label: "Formular", description: "User gibt Daten ein und submitted" },
|
|
56
|
+
{ label: "Liste + Detailansicht", description: "Übersicht → Drill-Down" },
|
|
57
|
+
{ label: "Wizard / Schritt-für-Schritt", description: "Geführter Prozess" },
|
|
58
|
+
{ label: "Dashboard / Übersicht", description: "Informationsanzeige" },
|
|
59
|
+
{ label: "Inline-Editing", description: "Direkte Bearbeitung" }
|
|
60
|
+
],
|
|
61
|
+
multiSelect: false
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
})
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Phase 4: Komponenten-Entscheidung durch UX Designer
|
|
68
|
+
|
|
69
|
+
**Du fragst – der Designer entscheidet:**
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
AskUserQuestion({
|
|
73
|
+
questions: [
|
|
74
|
+
{
|
|
75
|
+
question: "Welche Komponenten möchtest du in diesem Feature einsetzen?",
|
|
76
|
+
header: "Komponenten",
|
|
77
|
+
options: [
|
|
78
|
+
{ label: "Ich nenne sie im Chat", description: "Liste alle Komponenten die du brauchst" }
|
|
79
|
+
],
|
|
80
|
+
multiSelect: false
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
})
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Nimm die genannte Liste entgegen. Dann:
|
|
87
|
+
|
|
88
|
+
### DS-Validierung
|
|
89
|
+
|
|
90
|
+
Prüfe für jede genannte Komponente ob eine Spec in `design-system/components/` existiert:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
ls design-system/components/ 2>/dev/null
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Wenn alle Komponenten vorhanden sind:** Weiter zu Phase 5.
|
|
97
|
+
|
|
98
|
+
**Wenn Komponenten fehlen:** Stoppe und zeige die vollständige Lücken-Liste:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
⚠️ Folgende Komponenten fehlen im Design System:
|
|
102
|
+
|
|
103
|
+
Fehlend:
|
|
104
|
+
- [Komponente A] – keine Spec in design-system/components/
|
|
105
|
+
- [Komponente B] – keine Spec in design-system/components/
|
|
106
|
+
|
|
107
|
+
Vorhanden:
|
|
108
|
+
- [Komponente C] ✓
|
|
109
|
+
- [Komponente D] ✓
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Dann frage:
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
AskUserQuestion({
|
|
116
|
+
questions: [
|
|
117
|
+
{
|
|
118
|
+
question: "Wie möchtest du mit den fehlenden Komponenten umgehen?",
|
|
119
|
+
header: "DS-Lücken",
|
|
120
|
+
options: [
|
|
121
|
+
{
|
|
122
|
+
label: "Abbrechen – Specs zuerst ergänzen",
|
|
123
|
+
description: "Ich füge die fehlenden Specs in design-system/components/ ein und rufe /red:proto-ux danach erneut auf"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
label: "Fortfahren – mit Design Tokens bauen",
|
|
127
|
+
description: "Fehlende Komponenten werden mit den vorhandenen Tokens (Farben, Spacing, Typografie) gebaut – gleicher Look & Feel, aber keine exakte Spec"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
label: "Bewusste Abweichung – Hypothesentest",
|
|
131
|
+
description: "Ich weiche absichtlich von einer bestehenden DS-Vorgabe ab um eine Variante zu testen"
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
multiSelect: false
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
})
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
- **Abbrechen:** Sofort stoppen. Gib dem User die vollständige Lücken-Liste als Kopiervorlage mit Template-Hinweis: *"Kopiere `design-system/components/button.md` als Vorlage und passe es an."*
|
|
141
|
+
- **Fortfahren mit Tokens:** Notiere genehmigte Lücken für Phase 6 (DS-Status).
|
|
142
|
+
- **Bewusste Abweichung:** Frage nach dem Testgrund und notiere ihn für Phase 6.
|
|
143
|
+
|
|
144
|
+
## Phase 5: Screen Transitions definieren
|
|
145
|
+
|
|
146
|
+
**Guard – Flows-Dokument prüfen:**
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
cat flows/product-flows.md 2>/dev/null
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Wenn kein Flows-Dokument existiert:
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
AskUserQuestion({
|
|
156
|
+
questions: [
|
|
157
|
+
{
|
|
158
|
+
question: "Kein Flows-Dokument gefunden. Wie möchtest du vorgehen?",
|
|
159
|
+
header: "Flows fehlen",
|
|
160
|
+
options: [
|
|
161
|
+
{
|
|
162
|
+
label: "Jetzt /red:proto-flows ausführen",
|
|
163
|
+
description: "Empfohlen – definiert alle Screen Transitions übergreifend bevor wir weitermachen"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
label: "Transitions nur für dieses Feature definieren",
|
|
167
|
+
description: "Nur die Transitions dieses Features werden dokumentiert – ohne übergreifenden Kontext"
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
multiSelect: false
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
})
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Transitions für dieses Feature erfassen:**
|
|
177
|
+
|
|
178
|
+
Frage den Designer nach jeder Transition die dieses Feature betrifft:
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
AskUserQuestion({
|
|
182
|
+
questions: [
|
|
183
|
+
{
|
|
184
|
+
question: "Welche Screen Transitions gehören zu diesem Feature? (Von welchem Screen, welcher Trigger, zu welchem Ziel?)",
|
|
185
|
+
header: "Transitions",
|
|
186
|
+
options: [
|
|
187
|
+
{ label: "Ich definiere sie im Chat", description: "Format: Von Screen → Trigger → Ziel-Screen (+ Bedingung falls nötig)" },
|
|
188
|
+
{ label: "Keine Transitions – Feature ist in-page", description: "Keine Navigationsänderungen" }
|
|
189
|
+
],
|
|
190
|
+
multiSelect: false
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
})
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Wenn Flows-Dokument vorhanden: Trage alle Transitions in `flows/product-flows.md` ein.
|
|
197
|
+
|
|
198
|
+
## Skill: UI/UX Design Guidelines
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
Skill("ui-ux-pro-max")
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Nutze die Ausgabe als Referenz für Accessibility, Interaktionsmuster und Responsive-Prinzipien.
|
|
205
|
+
Falls nicht verfügbar: Weiter mit integrierten Qualitätsprinzipien.
|
|
206
|
+
|
|
207
|
+
## Phase 6: UX-Design-Abschnitt schreiben
|
|
208
|
+
|
|
209
|
+
Ergänze das Feature-File `FEAT-[X].md`:
|
|
210
|
+
|
|
211
|
+
```markdown
|
|
212
|
+
## 2. IA/UX Entscheidungen
|
|
213
|
+
*Ausgefüllt von: /red:proto-ux — [Datum]*
|
|
214
|
+
|
|
215
|
+
### Einbettung im Produkt
|
|
216
|
+
[Wo lebt das Feature?]
|
|
217
|
+
Route (falls neu): `/[pfad]`
|
|
218
|
+
|
|
219
|
+
### Einstiegspunkte
|
|
220
|
+
[Wie gelangt der Nutzer dahin?]
|
|
221
|
+
|
|
222
|
+
### User Flow
|
|
223
|
+
[Startpunkt]
|
|
224
|
+
↓
|
|
225
|
+
[Schritt 1: Was sieht/tut der Nutzer?]
|
|
226
|
+
↓
|
|
227
|
+
[Schritt 2: ...]
|
|
228
|
+
↓
|
|
229
|
+
[Endpunkt]
|
|
230
|
+
|
|
231
|
+
### Interaktionsmuster
|
|
232
|
+
- **Primärmuster:** [Pattern – Referenz: design-system/patterns/...]
|
|
233
|
+
- **Fehler-Handling:** [Referenz: design-system/patterns/feedback.md]
|
|
234
|
+
- **Leerer Zustand:** [Was wird gezeigt wenn keine Daten vorhanden?]
|
|
235
|
+
- **Ladeverhalten:** [z.B. Skeleton]
|
|
236
|
+
|
|
237
|
+
### Eingesetzte Komponenten
|
|
238
|
+
| Komponente | DS-Status | Quelle |
|
|
239
|
+
|------------------|-------------------|-------------------------------------------|
|
|
240
|
+
| [Name] | ✓ Vorhanden | design-system/components/[name].md |
|
|
241
|
+
| [Name] | ⚠ Tokens-Build | Keine Spec – genehmigt [Datum] |
|
|
242
|
+
| [Name] | 🧪 Hypothesentest | Abweichung von [Pattern] – Grund: [...] |
|
|
243
|
+
|
|
244
|
+
### Screen Transitions (verbindlich)
|
|
245
|
+
| Von | Trigger | Wohin | Bedingung |
|
|
246
|
+
|------------------|--------------------------|------------------|------------------------|
|
|
247
|
+
| [Screen] | "[Aktion]" | [Ziel-Screen] | – |
|
|
248
|
+
| [Screen] | Submit (Fehler) | gleiche Seite | Inline-Fehler |
|
|
249
|
+
|
|
250
|
+
*(Vollständige Transitions auch in flows/product-flows.md eingetragen)*
|
|
251
|
+
|
|
252
|
+
### DS-Status dieser Implementierung
|
|
253
|
+
- **Konforme Komponenten:** [Liste]
|
|
254
|
+
- **Neue Komponenten (Tokens-Build, genehmigt):** [Liste oder "–"]
|
|
255
|
+
- **Bewusste Abweichungen (Hypothesentest):** [Liste oder "–"]
|
|
256
|
+
|
|
257
|
+
### Barrierefreiheit (A11y)
|
|
258
|
+
- Keyboard-Navigation: [...]
|
|
259
|
+
- Screen Reader: [...]
|
|
260
|
+
- Farbkontrast: [Referenz: design-system/tokens/colors.md]
|
|
261
|
+
|
|
262
|
+
### Mobile-Verhalten
|
|
263
|
+
- [...]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
## Phase 7: Review
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
AskUserQuestion({
|
|
270
|
+
questions: [
|
|
271
|
+
{
|
|
272
|
+
question: "Sind die UX-Entscheidungen vollständig und korrekt?",
|
|
273
|
+
header: "Review",
|
|
274
|
+
options: [
|
|
275
|
+
{ label: "Approved – weiter zu /red:proto-architect", description: "UX ist definiert" },
|
|
276
|
+
{ label: "Änderungen nötig", description: "Feedback im Chat" }
|
|
277
|
+
],
|
|
278
|
+
multiSelect: false
|
|
279
|
+
}
|
|
280
|
+
]
|
|
281
|
+
})
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Nach Approval: Status in Feature-File auf "IA/UX" setzen.
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
git add features/FEAT-[X]-*.md flows/product-flows.md 2>/dev/null
|
|
288
|
+
git commit -m "docs: FEAT-[X] ux design + screen transitions – [Feature Name]"
|
|
289
|
+
git push
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Sage dem User: "UX-Entscheidungen dokumentiert. Nächster Schritt: `/red:proto-architect` für das technische Design."
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Workflow
|
|
3
|
+
description: Zeigt den aktuellen Stand des Projekts und den nächsten Schritt im Product Development Framework
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Du bist der Workflow-Navigator für dieses Projekt. Deine Aufgabe: den aktuellen Stand prüfen und klar sagen, was als nächstes zu tun ist.
|
|
7
|
+
|
|
8
|
+
**Wichtig:** `/red:proto-workflow` ist der empfohlene Einstiegspunkt nach jeder Pause. Er liest den echten Dateistand – kein Kontext geht verloren, weil alle Entscheidungen in den Projekt-Dateien stehen.
|
|
9
|
+
|
|
10
|
+
## Was du tust
|
|
11
|
+
|
|
12
|
+
**Schritt 1 – Prüfe den Projektstatus:**
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# PRD vorhanden?
|
|
16
|
+
cat prd.md 2>/dev/null || echo "FEHLT"
|
|
17
|
+
|
|
18
|
+
# Projekt-Config vorhanden?
|
|
19
|
+
cat project-config.md 2>/dev/null || echo "FEHLT"
|
|
20
|
+
|
|
21
|
+
# Research vorhanden?
|
|
22
|
+
ls research/ 2>/dev/null || echo "FEHLT"
|
|
23
|
+
|
|
24
|
+
# Features vorhanden?
|
|
25
|
+
ls features/ 2>/dev/null || echo "FEHLT"
|
|
26
|
+
|
|
27
|
+
# Offene Bugs?
|
|
28
|
+
ls bugs/ 2>/dev/null || echo "KEINE"
|
|
29
|
+
|
|
30
|
+
# Releases?
|
|
31
|
+
cat docs/releases.md 2>/dev/null || echo "FEHLT"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Lies die vorhandenen Dateien kurz, um den Inhalt zu verstehen – nicht nur ob sie existieren.
|
|
35
|
+
|
|
36
|
+
**Schritt 2 – Erstelle eine Status-Übersicht:**
|
|
37
|
+
|
|
38
|
+
Zeige dem User eine klare Zusammenfassung:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
## Projektstatus
|
|
42
|
+
|
|
43
|
+
### Pipeline
|
|
44
|
+
[✅/⬜] 1. Sparring → /red:proto-sparring
|
|
45
|
+
[✅/⬜] 2. Dev Setup → /red:proto-dev-setup
|
|
46
|
+
[✅/⬜] 3. User Research → /red:proto-research
|
|
47
|
+
[✅/⬜] 4. Requirements → /red:proto-requirements
|
|
48
|
+
[✅/⬜] 5. Flows → /red:proto-flows
|
|
49
|
+
[✅/⬜] 6. UX Design → /red:proto-ux
|
|
50
|
+
[✅/⬜] 7. Solution Arch. → /red:proto-architect
|
|
51
|
+
[✅/⬜] 8. Developer → /red:proto-dev
|
|
52
|
+
[✅/⬜] 9. QA Engineer → /red:proto-qa
|
|
53
|
+
|
|
54
|
+
### Features im System
|
|
55
|
+
- FEAT-1: [Name] – Status: [Schritt]
|
|
56
|
+
- ...
|
|
57
|
+
|
|
58
|
+
### Offene Bugs
|
|
59
|
+
- BUG-FEAT[X]-[NNN]: [Kurztitel] (Severity) – oder: Keine offenen Bugs
|
|
60
|
+
|
|
61
|
+
### Letztes Release
|
|
62
|
+
- [Datum]: [Features / Bug Fixes] – oder: Noch kein Release
|
|
63
|
+
|
|
64
|
+
### Nächster Schritt
|
|
65
|
+
→ [Konkreter nächster Command + kurze Begründung]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Schritt 3 – Empfehle den nächsten Schritt:**
|
|
69
|
+
|
|
70
|
+
Basierend auf dem Status: Sag klar, was jetzt zu tun ist und welchen Command der User aufrufen soll. Wenn mehrere Features in verschiedenen Phasen sind: liste alle auf.
|
|
71
|
+
|
|
72
|
+
**Schritt 4 – Hilf bei Problemen:**
|
|
73
|
+
|
|
74
|
+
Wenn der User fragt "was ist schiefgelaufen" oder "ich bin nicht sicher ob X korrekt ist": Lies die relevanten Dateien und gib eine ehrliche Einschätzung.
|
|
75
|
+
|
|
76
|
+
## Besondere Fälle
|
|
77
|
+
|
|
78
|
+
**Neues Projekt (noch gar nichts vorhanden):**
|
|
79
|
+
Erkläre kurz den Framework-Workflow und sage: "Starte mit `/red:proto-sparring` – beschreib mir deine Idee."
|
|
80
|
+
|
|
81
|
+
**Fehler oder Inkonsistenz:**
|
|
82
|
+
Wenn du siehst, dass ein Feature-File unvollständig ist oder ein Schritt übersprungen wurde, weise darauf hin – aber mach keine automatischen Korrekturen. Der User entscheidet.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Red Create Prototyp Project
|
|
3
|
+
description: Initialisiert das Product Development Framework (red) im aktuellen Projekt – kopiert alle Commands und richtet die Projektstruktur ein
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Du richtest das Product Development Framework für dieses Projekt ein.
|
|
7
|
+
|
|
8
|
+
## Was du tust
|
|
9
|
+
|
|
10
|
+
**Schritt 1 – Prüfe ob das Framework schon installiert ist:**
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
ls .claude/commands/ 2>/dev/null | grep -E "sparring|dev-setup|requirements|ux-design|solution-architect|developer|qa-engineer"
|
|
14
|
+
ls .claude/agents/ 2>/dev/null
|
|
15
|
+
cat project-config.md 2>/dev/null | grep "Codeverzeichnis"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Wenn Commands bereits vorhanden sind**, frage mit AskUserQuestion:
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
AskUserQuestion({
|
|
22
|
+
questions: [
|
|
23
|
+
{
|
|
24
|
+
question: "Das Framework ist bereits installiert. Was möchtest du tun?",
|
|
25
|
+
header: "Setup-Modus",
|
|
26
|
+
options: [
|
|
27
|
+
{
|
|
28
|
+
label: "Nur fehlende Dateien hinzufügen",
|
|
29
|
+
description: "Bestehende Commands/Agents werden NICHT überschrieben – sicher für laufende Projekte"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
label: "Alle Commands + Agents auf neueste Version aktualisieren",
|
|
33
|
+
description: "Überschreibt lokale Anpassungen an Commands und Agents – Projektdaten (features/, prd.md etc.) bleiben erhalten"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: "Abbrechen",
|
|
37
|
+
description: "Nichts ändern"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
multiSelect: false
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
})
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Bei "Abbrechen": sofort stoppen.
|
|
47
|
+
|
|
48
|
+
**Schritt 2 – Verzeichnisse anlegen:**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
mkdir -p .claude/commands
|
|
52
|
+
mkdir -p .claude/agents
|
|
53
|
+
mkdir -p research
|
|
54
|
+
mkdir -p features
|
|
55
|
+
mkdir -p flows
|
|
56
|
+
mkdir -p bugs
|
|
57
|
+
mkdir -p docs
|
|
58
|
+
mkdir -p design-system/tokens
|
|
59
|
+
mkdir -p design-system/components
|
|
60
|
+
mkdir -p design-system/patterns
|
|
61
|
+
mkdir -p design-system/screens
|
|
62
|
+
# Codeverzeichnis NUR anlegen wenn noch kein project-config.md existiert:
|
|
63
|
+
# (sonst ist das Codeverzeichnis bereits konfiguriert und möglicherweise anders als "projekt/")
|
|
64
|
+
[ ! -f project-config.md ] && mkdir -p projekt
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Schritt 3a – Nur fehlende Dateien kopieren** (Modus: "Nur fehlende"):
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# cp -n = no-clobber: überspringt Dateien die bereits existieren
|
|
71
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-workflow.md .claude/commands/
|
|
72
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-sparring.md .claude/commands/
|
|
73
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-dev-setup.md .claude/commands/
|
|
74
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-research.md .claude/commands/
|
|
75
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-requirements.md .claude/commands/
|
|
76
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-flows.md .claude/commands/
|
|
77
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-ux.md .claude/commands/
|
|
78
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-architect.md .claude/commands/
|
|
79
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-dev.md .claude/commands/
|
|
80
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/commands/red:proto-qa.md .claude/commands/
|
|
81
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/agents/frontend-developer.md .claude/agents/
|
|
82
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/agents/backend-developer.md .claude/agents/
|
|
83
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/agents/qa-engineer.md .claude/agents/
|
|
84
|
+
cp -n ~/.claude/templates/red-create-prototyp-project/agents/ux-reviewer.md .claude/agents/
|
|
85
|
+
|
|
86
|
+
# Design System Templates kopieren (nur wenn noch nicht vorhanden)
|
|
87
|
+
cp -rn ~/.claude/templates/red-create-prototyp-project/design-system/ ./
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Zeige danach welche Dateien bereits existiert haben (übersprungen) und welche neu hinzugefügt wurden:
|
|
91
|
+
```bash
|
|
92
|
+
# Überprüfen welche Dateien tatsächlich existieren:
|
|
93
|
+
ls .claude/commands/
|
|
94
|
+
ls .claude/agents/
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Schritt 3b – Alle aktualisieren** (Modus: "Aktualisieren"):
|
|
98
|
+
|
|
99
|
+
Warnung ausgeben: "Commands und Agents werden mit der Template-Version überschrieben. Projektdaten (prd.md, features/, research/, bugs/, docs/) bleiben vollständig erhalten."
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Ohne -n: überschreibt bestehende Dateien
|
|
103
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-workflow.md .claude/commands/
|
|
104
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-sparring.md .claude/commands/
|
|
105
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-dev-setup.md .claude/commands/
|
|
106
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-research.md .claude/commands/
|
|
107
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-requirements.md .claude/commands/
|
|
108
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-flows.md .claude/commands/
|
|
109
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-ux.md .claude/commands/
|
|
110
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-architect.md .claude/commands/
|
|
111
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-dev.md .claude/commands/
|
|
112
|
+
cp ~/.claude/templates/red-create-prototyp-project/commands/red:proto-qa.md .claude/commands/
|
|
113
|
+
cp ~/.claude/templates/red-create-prototyp-project/agents/frontend-developer.md .claude/agents/
|
|
114
|
+
cp ~/.claude/templates/red-create-prototyp-project/agents/backend-developer.md .claude/agents/
|
|
115
|
+
cp ~/.claude/templates/red-create-prototyp-project/agents/qa-engineer.md .claude/agents/
|
|
116
|
+
cp ~/.claude/templates/red-create-prototyp-project/agents/ux-reviewer.md .claude/agents/
|
|
117
|
+
|
|
118
|
+
# Design System Templates aktualisieren
|
|
119
|
+
cp -r ~/.claude/templates/red-create-prototyp-project/design-system/ ./
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Schritt 4 – Empfohlene Skills prüfen:**
|
|
123
|
+
|
|
124
|
+
Das Framework ruft folgende Skills auf, wenn sie installiert sind. Teile dem User mit, welche fehlen:
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// Prüfe ob Skills verfügbar sind – nenne fehlende beim Namen
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
| Skill | Genutzt von | Priorität |
|
|
131
|
+
|-------|-------------|-----------|
|
|
132
|
+
| `ui-ux-pro-max` | `/red:proto-ux`, `ux-reviewer` | Kern – stark empfohlen |
|
|
133
|
+
| `frontend-design` | `frontend-developer` | Kern – stark empfohlen |
|
|
134
|
+
| `neon-postgres` | `backend-developer` | Nur bei Neon-Stack |
|
|
135
|
+
| `atlassian:spec-to-backlog` | `/red:proto-requirements` | Optional – bei Jira-Nutzung |
|
|
136
|
+
| `atlassian:triage-issue` | `/red:proto-qa` | Optional – bei Jira-Nutzung |
|
|
137
|
+
|
|
138
|
+
**Fehlende Kern-Skills:** Weise den User explizit darauf hin. Agents laufen ohne Skills, aber mit reduzierter Qualität.
|
|
139
|
+
**Fehlende optionale Skills:** Kurz erwähnen, nicht blockieren.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
**Schritt 5 – Bestätigung:**
|
|
144
|
+
|
|
145
|
+
Zeige dem User welche Commands installiert wurden und erkläre den nächsten Schritt:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
✅ Product Development Framework installiert
|
|
149
|
+
|
|
150
|
+
Verfügbare Commands:
|
|
151
|
+
/red:proto-workflow → Pipeline-Status, offene Bugs, letztes Release
|
|
152
|
+
/red:proto-sparring → Idee schärfen + PRD erstellen
|
|
153
|
+
/red:proto-dev-setup → Projekt scaffolden, Git + GitHub einrichten
|
|
154
|
+
/red:proto-research → Research-Fragen, Personas, Problem Statement
|
|
155
|
+
/red:proto-requirements → Feature Specs (IEEE/IREB)
|
|
156
|
+
/red:proto-ux → UX-Design-Entscheidungen, DS-konform (nutzt: ui-ux-pro-max)
|
|
157
|
+
/red:proto-architect → Tech-Design + Security
|
|
158
|
+
/red:proto-dev → Implementierung, orchestriert Agents parallel bei Full-Stack
|
|
159
|
+
/red:proto-qa → Tests + UX-Review parallel, Bug-Reports, Production-Ready
|
|
160
|
+
|
|
161
|
+
Sub-Agents (.claude/agents/ – automatisch gestartet):
|
|
162
|
+
frontend-developer → Frontend-Implementierung (nutzt: frontend-design)
|
|
163
|
+
backend-developer → Backend-Implementierung (nutzt: neon-postgres bei Neon-Stack)
|
|
164
|
+
qa-engineer → Technisches QA-Review
|
|
165
|
+
ux-reviewer → UX-Review (nutzt: ui-ux-pro-max)
|
|
166
|
+
|
|
167
|
+
Starte mit: /red:proto-sparring
|
|
168
|
+
|
|
169
|
+
Nach einer Pause: /red:proto-workflow → zeigt Projektstatus und empfiehlt nächsten Schritt
|
|
170
|
+
```
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Design System
|
|
2
|
+
|
|
3
|
+
Zentrales Verzeichnis für alle Design-Vorgaben. Alle Agents des Frameworks lesen dieses Verzeichnis – es ist die verbindliche Referenz für Entscheidungen in UX-Design, Implementierung und Review.
|
|
4
|
+
|
|
5
|
+
## Struktur
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
design-system/
|
|
9
|
+
tokens/
|
|
10
|
+
colors.md ← Farb-Tokens (Primär, Sekundär, Semantic, Neutral)
|
|
11
|
+
typography.md ← Schriften, Größen, Gewichte, Line-Heights
|
|
12
|
+
spacing.md ← Spacing-Scale und Named Sizes
|
|
13
|
+
shadows.md ← Elevation-System
|
|
14
|
+
motion.md ← Transitions, Durations, Easing (optional)
|
|
15
|
+
components/
|
|
16
|
+
button.md ← Beispiel-Komponente (kopieren und anpassen)
|
|
17
|
+
input.md ← Beispiel-Komponente
|
|
18
|
+
card.md ← Beispiel-Komponente
|
|
19
|
+
[weitere].md ← Eigene Komponenten hier ablegen
|
|
20
|
+
patterns/
|
|
21
|
+
navigation.md ← Header, Sidebar, Breadcrumb, Tab-Navigation
|
|
22
|
+
forms.md ← Formular-Aufbau, Validation, Fehlermeldungen
|
|
23
|
+
feedback.md ← Toasts, Modals, Loading States, Empty States
|
|
24
|
+
data-display.md ← Tabellen, Listen, Cards, Badges
|
|
25
|
+
screens/
|
|
26
|
+
README.md ← Anleitung für Screen-Exports
|
|
27
|
+
[flow-name]/ ← Figma-Exports oder Screenshots nach Flow gruppiert
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Anleitung
|
|
31
|
+
|
|
32
|
+
### Wann befüllst du dieses Verzeichnis?
|
|
33
|
+
|
|
34
|
+
**Du musst diesen Ordner nicht vor dem ersten Feature vollständig befüllen.** Fang mit dem an was du weißt – ein paar Farb-Tokens, ein Button – und ergänze während der Entwicklung. Was noch nicht definiert ist, füllen die Agents pragmatisch. Was definiert ist, wird verbindlich eingehalten.
|
|
35
|
+
|
|
36
|
+
Das Design System wächst mit dem Projekt. Das ist normal und gewollt.
|
|
37
|
+
|
|
38
|
+
### So befüllst du dieses Verzeichnis
|
|
39
|
+
|
|
40
|
+
1. **Tokens zuerst** – Farben, Typografie und Spacing sind die Basis für alle Komponenten. Trage die Werte aus deinem Figma/Styleguide in die Token-Files ein.
|
|
41
|
+
|
|
42
|
+
2. **Komponenten** – Jede Komponente bekommt ein eigenes File. Kopiere `components/button.md` als Vorlage. Trage Varianten, Zustände und visuelle Specs ein.
|
|
43
|
+
|
|
44
|
+
3. **Patterns** – Übergreifende UX-Muster (wie Formulare aufgebaut sind, wie Navigation funktioniert). Diese informieren den UX-Design-Schritt direkt.
|
|
45
|
+
|
|
46
|
+
4. **Screens** – Exportiere Figma-Screens als PNG und lege sie in den passenden Flow-Unterordner. Benenne sie aussagekräftig: `01-login.png`, `02-dashboard.png`.
|
|
47
|
+
|
|
48
|
+
### Was passiert mit diesen Inhalten?
|
|
49
|
+
|
|
50
|
+
| Agent | Liest | Zweck |
|
|
51
|
+
|-------|-------|-------|
|
|
52
|
+
| `/red:proto-ux` | `components/`, `patterns/` | Nur DS-konforme Komponenten in User Flows |
|
|
53
|
+
| `/red:proto-dev` | `tokens/`, `components/` | Tokens und Specs direkt in Code übersetzen |
|
|
54
|
+
| `frontend-developer` | alles | Vollständige DS-Referenz bei Implementierung |
|
|
55
|
+
| `ux-reviewer` | alles | DS-Compliance-Check nach Implementierung |
|
|
56
|
+
|
|
57
|
+
### Regeln für Agents
|
|
58
|
+
|
|
59
|
+
- Existiert eine Komponente im DS → baue keine eigene, nutze die Spec
|
|
60
|
+
- Existiert keine passende Komponente → baue eine neue, dokumentiere sie im `## Offene Punkte` im Feature-File
|
|
61
|
+
- Tokens haben Vorrang vor Hardcoded-Werten (kein `#3B82F6` direkt – stattdessen den Token-Namen nutzen)
|
|
62
|
+
- Abweichungen vom DS sind als UX-Bug zu melden (Severity: Medium oder höher)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Button
|
|
2
|
+
|
|
3
|
+
## Beschreibung
|
|
4
|
+
Löst eine Aktion aus. Buttons sind die primären interaktiven Elemente für Nutzeraktionen – Formulare absenden, Dialoge bestätigen, Prozesse starten.
|
|
5
|
+
|
|
6
|
+
## Varianten
|
|
7
|
+
|
|
8
|
+
| Variante | Verwendung |
|
|
9
|
+
|-------------|--------------------------------------------------------------|
|
|
10
|
+
| `primary` | Primäraktion auf einem Screen – max. 1 pro sichtbarem Bereich |
|
|
11
|
+
| `secondary` | Sekundäraktion, Alternative zur primären Aktion |
|
|
12
|
+
| `ghost` | Tertiäraktion, wenig visuelles Gewicht (z.B. "Abbrechen") |
|
|
13
|
+
| `danger` | Destruktive Aktionen (Löschen, Unwiderrufliches) |
|
|
14
|
+
| `link` | Aktion als Link gestylt – nur für Navigation innerhalb von Text |
|
|
15
|
+
|
|
16
|
+
## Zustände
|
|
17
|
+
|
|
18
|
+
| Zustand | Verhalten |
|
|
19
|
+
|------------|----------------------------------------------------------------|
|
|
20
|
+
| `default` | Ruhezustand |
|
|
21
|
+
| `hover` | Leichte Verdunkelung des Hintergrunds |
|
|
22
|
+
| `focus` | Sichtbarer Focus-Ring (`color-border-focus`, 2px, 2px Offset) |
|
|
23
|
+
| `active` | Stärkere Verdunkelung beim Klick |
|
|
24
|
+
| `disabled` | Reduzierte Opacity (0.5), kein Cursor-Pointer, nicht klickbar |
|
|
25
|
+
| `loading` | Spinner + Text oder nur Spinner (Label bleibt sichtbar) |
|
|
26
|
+
|
|
27
|
+
## Größen
|
|
28
|
+
|
|
29
|
+
| Größe | Padding (h/v) | Font-Size | Height | Icon-Size |
|
|
30
|
+
|-------|-------------------------|--------------|---------|-----------|
|
|
31
|
+
| `sm` | `spacing-2` / `spacing-3` | `text-sm` | 32px | 14px |
|
|
32
|
+
| `md` | `spacing-3` / `spacing-4` | `text-sm` | 40px | 16px |
|
|
33
|
+
| `lg` | `spacing-4` / `spacing-6` | `text-base`| 48px | 18px |
|
|
34
|
+
|
|
35
|
+
## Visuelle Specs – Primary
|
|
36
|
+
|
|
37
|
+
| Eigenschaft | Default | Hover | Active | Disabled |
|
|
38
|
+
|------------------|---------------------------|----------------------------|----------------------------|---------------------------|
|
|
39
|
+
| Hintergrund | `color-primary-500` | `color-primary-600` | `color-primary-700` | `color-primary-300` |
|
|
40
|
+
| Text | `color-text-on-primary` | `color-text-on-primary` | `color-text-on-primary` | `color-text-on-primary` |
|
|
41
|
+
| Border | keine | keine | keine | keine |
|
|
42
|
+
| Border-Radius | `radius-md` | `radius-md` | `radius-md` | `radius-md` |
|
|
43
|
+
|
|
44
|
+
## Visuelle Specs – Secondary
|
|
45
|
+
|
|
46
|
+
| Eigenschaft | Default | Hover | Disabled |
|
|
47
|
+
|------------------|---------------------------|----------------------------|----------------------------|
|
|
48
|
+
| Hintergrund | `color-neutral-0` | `color-neutral-100` | `color-neutral-50` |
|
|
49
|
+
| Text | `color-neutral-800` | `color-neutral-900` | `color-neutral-400` |
|
|
50
|
+
| Border | `1px` `color-border-default` | `1px` `color-neutral-400` | `1px` `color-neutral-200` |
|
|
51
|
+
|
|
52
|
+
## Icons
|
|
53
|
+
|
|
54
|
+
- Icons sind optional, immer links vom Text oder zentriert (icon-only)
|
|
55
|
+
- Icon-only Buttons: quadratisch, immer mit `aria-label`
|
|
56
|
+
- Gap zwischen Icon und Text: `spacing-gap-sm`
|
|
57
|
+
|
|
58
|
+
## Regeln
|
|
59
|
+
|
|
60
|
+
- Beschriftungen sind aktiv formuliert: "Speichern", "Bestellung absenden" – nicht "OK" oder "Submit"
|
|
61
|
+
- Max. 1 Primary Button pro sichtbarem Kontext
|
|
62
|
+
- Danger-Buttons erst nach Bestätigung (Modal oder Inline-Confirm)
|
|
63
|
+
- Loading-Zustand bei async Aktionen – kein doppeltes Absenden ermöglichen
|
|
64
|
+
|
|
65
|
+
## Nicht verwenden wenn
|
|
66
|
+
|
|
67
|
+
- Die Aktion zu einer anderen Seite navigiert → `<a>`-Tag oder Link-Komponente
|
|
68
|
+
- Es mehr als 4 Optionen gibt → Dropdown oder Segment-Control
|