@the-bearded-bear/claude-craft 8.23.0 → 8.23.1
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/Dev/i18n/base/Common/templates/AGENTS.md.template +92 -0
- package/Dev/i18n/de/Common/templates/settings.json.template +2 -11
- package/Dev/i18n/de/Workflow/commands/auto-sprint.md +1 -1
- package/Dev/i18n/de/Workflow/commands/start.md +40 -1
- package/Dev/i18n/en/Common/templates/settings.json.template +2 -11
- package/Dev/i18n/en/Workflow/commands/auto-sprint.md +1 -1
- package/Dev/i18n/en/Workflow/commands/start.md +40 -1
- package/Dev/i18n/es/Common/templates/settings.json.template +2 -11
- package/Dev/i18n/es/Workflow/commands/auto-sprint.md +1 -1
- package/Dev/i18n/es/Workflow/commands/start.md +40 -1
- package/Dev/i18n/fr/Common/templates/settings.json.template +2 -11
- package/Dev/i18n/fr/Workflow/commands/auto-sprint.md +1 -1
- package/Dev/i18n/fr/Workflow/commands/start.md +40 -1
- package/Dev/i18n/pt/Common/templates/settings.json.template +2 -11
- package/Dev/i18n/pt/Workflow/commands/auto-sprint.md +1 -1
- package/Dev/i18n/pt/Workflow/commands/start.md +40 -1
- package/Dev/scripts/check-config.sh +59 -65
- package/Dev/scripts/install-common-rules.sh +47 -3
- package/Dev/scripts/install-from-config.sh +12 -1
- package/Dev/scripts/lib/install-tech-common.sh +6 -1
- package/Dev/scripts/lib/stack-profiles.sh +74 -0
- package/Dev/stack-profiles/README.md +15 -0
- package/Dev/stack-profiles/angular/permissions.txt +5 -0
- package/Dev/stack-profiles/angular/quality.md +3 -0
- package/Dev/stack-profiles/angular/stack.txt +2 -0
- package/Dev/stack-profiles/ansible/permissions.txt +2 -0
- package/Dev/stack-profiles/ansible/quality.md +2 -0
- package/Dev/stack-profiles/ansible/stack.txt +2 -0
- package/Dev/stack-profiles/coolify/stack.txt +2 -0
- package/Dev/stack-profiles/csharp/permissions.txt +1 -0
- package/Dev/stack-profiles/csharp/quality.md +3 -0
- package/Dev/stack-profiles/csharp/stack.txt +2 -0
- package/Dev/stack-profiles/docker/permissions.txt +1 -0
- package/Dev/stack-profiles/docker/quality.md +2 -0
- package/Dev/stack-profiles/docker/stack.txt +2 -0
- package/Dev/stack-profiles/flutter/permissions.txt +2 -0
- package/Dev/stack-profiles/flutter/quality.md +3 -0
- package/Dev/stack-profiles/flutter/stack.txt +2 -0
- package/Dev/stack-profiles/frankenphp/stack.txt +2 -0
- package/Dev/stack-profiles/hcloud/stack.txt +2 -0
- package/Dev/stack-profiles/kubernetes/permissions.txt +3 -0
- package/Dev/stack-profiles/kubernetes/quality.md +2 -0
- package/Dev/stack-profiles/kubernetes/stack.txt +2 -0
- package/Dev/stack-profiles/laravel/permissions.txt +2 -0
- package/Dev/stack-profiles/laravel/quality.md +3 -0
- package/Dev/stack-profiles/laravel/stack.txt +2 -0
- package/Dev/stack-profiles/opentofu/permissions.txt +3 -0
- package/Dev/stack-profiles/opentofu/quality.md +3 -0
- package/Dev/stack-profiles/opentofu/stack.txt +2 -0
- package/Dev/stack-profiles/paperclip/permissions.txt +4 -0
- package/Dev/stack-profiles/paperclip/quality.md +2 -0
- package/Dev/stack-profiles/paperclip/stack.txt +2 -0
- package/Dev/stack-profiles/pgbouncer/stack.txt +2 -0
- package/Dev/stack-profiles/php/permissions.txt +1 -0
- package/Dev/stack-profiles/php/quality.md +3 -0
- package/Dev/stack-profiles/php/stack.txt +2 -0
- package/Dev/stack-profiles/python/permissions.txt +4 -0
- package/Dev/stack-profiles/python/quality.md +3 -0
- package/Dev/stack-profiles/python/stack.txt +2 -0
- package/Dev/stack-profiles/react/permissions.txt +4 -0
- package/Dev/stack-profiles/react/quality.md +3 -0
- package/Dev/stack-profiles/react/stack.txt +2 -0
- package/Dev/stack-profiles/reactnative/permissions.txt +5 -0
- package/Dev/stack-profiles/reactnative/quality.md +3 -0
- package/Dev/stack-profiles/reactnative/stack.txt +2 -0
- package/Dev/stack-profiles/symfony/permissions.txt +2 -0
- package/Dev/stack-profiles/symfony/quality.md +4 -0
- package/Dev/stack-profiles/symfony/stack.txt +2 -0
- package/Dev/stack-profiles/vercel/permissions.txt +5 -0
- package/Dev/stack-profiles/vercel/quality.md +2 -0
- package/Dev/stack-profiles/vercel/stack.txt +2 -0
- package/Dev/stack-profiles/vite/permissions.txt +4 -0
- package/Dev/stack-profiles/vite/quality.md +2 -0
- package/Dev/stack-profiles/vite/stack.txt +2 -0
- package/Dev/stack-profiles/vuejs/permissions.txt +4 -0
- package/Dev/stack-profiles/vuejs/quality.md +3 -0
- package/Dev/stack-profiles/vuejs/stack.txt +2 -0
- package/Project/i18n/de/Gate/commands/validate-sprint.md +14 -5
- package/Project/i18n/de/agents/tech-lead.md +62 -67
- package/Project/i18n/de/scaffold/CLAUDE.md +5 -25
- package/Project/i18n/en/Gate/commands/validate-sprint.md +14 -5
- package/Project/i18n/en/agents/tech-lead.md +60 -65
- package/Project/i18n/en/scaffold/CLAUDE.md +5 -25
- package/Project/i18n/es/Gate/commands/validate-sprint.md +14 -5
- package/Project/i18n/es/agents/tech-lead.md +60 -65
- package/Project/i18n/es/scaffold/CLAUDE.md +5 -25
- package/Project/i18n/fr/Gate/commands/validate-sprint.md +14 -5
- package/Project/i18n/fr/agents/tech-lead.md +60 -65
- package/Project/i18n/fr/scaffold/CLAUDE.md +5 -25
- package/Project/i18n/pt/Gate/commands/validate-sprint.md +14 -5
- package/Project/i18n/pt/agents/tech-lead.md +60 -65
- package/Project/i18n/pt/scaffold/CLAUDE.md +5 -25
- package/Project/install-project-commands.sh +45 -10
- package/README.md +8 -0
- package/bundles/cursor/.cursorrules +1 -1
- package/bundles/windsurf/.windsurfrules +1 -1
- package/cli/kanban/client/dist/assets/BurndownView-CQyFME8U.js +3 -0
- package/cli/kanban/client/dist/assets/{DepsView-A7Xe41FE.js → DepsView-DEAS0a20.js} +1 -1
- package/cli/kanban/client/dist/assets/{DocsView-DFXULSIu.js → DocsView-BsXYPJAu.js} +1 -1
- package/cli/kanban/client/dist/assets/{SprintsView-DZ3KdjDw.js → SprintsView-Bo2p1NbV.js} +1 -1
- package/cli/kanban/client/dist/assets/cytoscape-dagre-8BvEs68F.js +2 -0
- package/cli/kanban/client/dist/assets/cytoscape.esm-BiK1LiYw.js +321 -0
- package/cli/kanban/client/dist/assets/index-CI2O6JO9.js +4 -0
- package/cli/kanban/client/dist/assets/{marked.esm-BFjXurK6.js → marked.esm-CYIZq5lG.js} +4 -4
- package/cli/kanban/client/dist/assets/purify.es-ChwZkWde.js +3 -0
- package/cli/kanban/client/dist/index.html +1 -1
- package/cli/kanban/server/app.js +6 -3
- package/cli/kanban/server/services/frontmatter.js +10 -4
- package/cli/kanban/server/services/markdown-metadata.js +150 -0
- package/cli/kanban/server/services/repository.js +29 -7
- package/cli/lib/installer.js +9 -2
- package/package.json +9 -9
- package/cli/kanban/client/dist/assets/BurndownView-BrheHgEo.js +0 -10
- package/cli/kanban/client/dist/assets/cytoscape-dagre-YDByNmIW.js +0 -2
- package/cli/kanban/client/dist/assets/cytoscape.esm-Dd3Wh3PR.js +0 -321
- package/cli/kanban/client/dist/assets/index-TQv7sDCT.js +0 -4
- package/cli/kanban/client/dist/assets/purify.es-DuRL7t6i.js +0 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Sprint-Bereitschaft vor dem Start validieren
|
|
3
|
-
argument-hint: [--verbose]
|
|
3
|
+
argument-hint: "[N] [--verbose]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Sprint-Gate validieren
|
|
@@ -10,7 +10,8 @@ Alle erforderlichen Kriterien muessen erfuellt sein.
|
|
|
10
10
|
|
|
11
11
|
## Argumente
|
|
12
12
|
|
|
13
|
-
$ARGUMENTS (format: [--verbose])
|
|
13
|
+
$ARGUMENTS (format: [N] [--verbose])
|
|
14
|
+
- **N** (optional): Sprintnummer (`1`, `001` oder `sprint-001`); Standard: `metadata.sprint_id`, sonst der neueste Ordner `project-management/sprints/sprint-*/`
|
|
14
15
|
- **--verbose** (optional): Details pro Story anzeigen
|
|
15
16
|
|
|
16
17
|
## Sprint Ready-Kriterien
|
|
@@ -30,9 +31,16 @@ $ARGUMENTS (format: [--verbose])
|
|
|
30
31
|
|
|
31
32
|
### Schritt 1: Sprint-Status laden
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
Quelle, in dieser Reihenfolge:
|
|
35
|
+
|
|
36
|
+
1. **`.bmad/sprint-status.yaml`**, falls vorhanden und `metadata.sprint_id` dem Sprint `N` entspricht: Metadaten extrahieren und Stories pro Status zählen.
|
|
37
|
+
2. **Sonst Markdown-Fallback** aus `project-management/sprints/sprint-{N}-*/` (von `/workflow:start` geschrieben):
|
|
38
|
+
- Metadaten, Ziel, Kapazität: `sprint-goal.md` (Beginn, Ende, Kapazität, Ziel);
|
|
39
|
+
- Stories: die Tabelle der ausgewählten US in `sprint-goal.md` und die Dateien `project-management/backlog/user-stories/US-*.md` (Punkte, Status). Eine geplante, nicht begonnene Story zählt als `ready-for-dev`;
|
|
40
|
+
- blockierende Abhängigkeiten: `sprint-dependencies.md`.
|
|
41
|
+
3. Keines von beiden: mit „Kein Sprint {N}: `/workflow:start {N}` ausführen“ abbrechen.
|
|
42
|
+
|
|
43
|
+
Im Fallback-Modus wird das Gate trotzdem ausgewertet, der Bericht ergänzt aber eine nicht blockierende Warnung: Die `/sprint:*`-Befehle benötigen `.bmad/sprint-status.yaml`, `/workflow:start {N}` oder `/project:migrate-backlog` ausführen.
|
|
36
44
|
|
|
37
45
|
### Schritt 2: Metadaten validieren
|
|
38
46
|
|
|
@@ -58,6 +66,7 @@ Falls `metadata.capacity_points` definiert:
|
|
|
58
66
|
### Schritt 5: Bericht generieren
|
|
59
67
|
|
|
60
68
|
Sprint-Bereitschaftsstatus anzeigen.
|
|
69
|
+
Den Bericht mit der verwendeten Quelle beginnen: `Quelle: .bmad/sprint-status.yaml` oder `Quelle: Markdown (project-management/sprints/sprint-{N}-*/)`.
|
|
61
70
|
|
|
62
71
|
## Ausgabeformat
|
|
63
72
|
|
|
@@ -11,7 +11,7 @@ Sie sind ein erfahrener Tech Lead, zertifiziert als CSM (Certified Scrum Master)
|
|
|
11
11
|
- **Rolle**: Tech Lead / Scrum Master
|
|
12
12
|
- **Zertifizierung**: CSM (Certified Scrum Master)
|
|
13
13
|
- **Erfahrung**: 15+ Jahre in Softwareentwicklung, 8+ Jahre in Agile
|
|
14
|
-
- **Expertise**: Architektur,
|
|
14
|
+
- **Expertise**: Architektur, DevOps und der in der Root-`CLAUDE.md` definierte Projekt-Stack
|
|
15
15
|
|
|
16
16
|
## Hauptverantwortlichkeiten
|
|
17
17
|
|
|
@@ -23,17 +23,19 @@ Sie sind ein erfahrener Tech Lead, zertifiziert als CSM (Certified Scrum Master)
|
|
|
23
23
|
6. **Qualität**: Definition of Done definieren und durchsetzen
|
|
24
24
|
7. **Coaching**: Team zur technischen Exzellenz führen
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## Tech Stack des Projekts
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
28
|
+
Ich setze kein Framework voraus: Der Projekt-Stack ist im Abschnitt **Technical stack** der Root-`CLAUDE.md` definiert (bei der Installation aus den gewählten Technologien generiert). Ich lese ihn vor jeder Entscheidung, Schätzung oder Zerlegung und verwende nur die Aufgabenpräfixe der Schichten, die im Projekt existieren.
|
|
29
|
+
|
|
30
|
+
| Schicht | Was ich im Projekt-Stack prüfe |
|
|
31
|
+
|--------|--------------------------------|
|
|
32
|
+
| 🌐 Web | Web-Framework, Komponenten, State-Management |
|
|
33
|
+
| 📱 Mobile | Mobile-Framework (falls das Produkt eine Mobile-App hat) |
|
|
34
|
+
| ⚙️ API | API-Stil (REST, GraphQL), Vertrag (OpenAPI) |
|
|
35
|
+
| 🗄️ DB | Datenbank, ORM / Query-Schicht, Migrationen |
|
|
36
|
+
| 🧪 Tests | Testwerkzeuge pro Schicht (Unit, Integration, E2E) |
|
|
37
|
+
| 🐳 Infra | Container, CI/CD, Deployment-Ziel |
|
|
38
|
+
| 🏗️ Architektur | Hexagonal, DDD, CQRS (wenn begründet) |
|
|
37
39
|
|
|
38
40
|
## Scrum-Fähigkeiten
|
|
39
41
|
|
|
@@ -69,12 +71,12 @@ Sie sind ein erfahrener Tech Lead, zertifiziert als CSM (Certified Scrum Master)
|
|
|
69
71
|
|
|
70
72
|
| Präfix | Schicht | Beispiele |
|
|
71
73
|
|---------|--------|----------|
|
|
72
|
-
| `[DB]` | Database |
|
|
73
|
-
| `[BE]` | Backend | Service, API
|
|
74
|
-
| `[FE-WEB]` | Frontend Web |
|
|
75
|
-
| `[FE-MOB]` | Frontend Mobile |
|
|
76
|
-
| `[TEST]` | Tests | Unit, API
|
|
77
|
-
| `[DOC]` | Documentation |
|
|
74
|
+
| `[DB]` | Database | Schema/Modell, Migration, Repository, Fixtures |
|
|
75
|
+
| `[BE]` | Backend | Service, API-Endpoint, Validierung, Autorisierung |
|
|
76
|
+
| `[FE-WEB]` | Frontend Web | Seite/Route, Komponente, State, Formular |
|
|
77
|
+
| `[FE-MOB]` | Frontend Mobile | Modell, API-Client, State, Screen |
|
|
78
|
+
| `[TEST]` | Tests | Unit, API/Integration, Komponente, E2E |
|
|
79
|
+
| `[DOC]` | Documentation | Code-Doku, README, OpenAPI |
|
|
78
80
|
| `[OPS]` | DevOps | Docker, CI/CD |
|
|
79
81
|
| `[REV]` | Review | Code review |
|
|
80
82
|
|
|
@@ -97,11 +99,11 @@ Für eine typische CRUD-US (5 Punkte) erstelle ich ~17 Aufgaben:
|
|
|
97
99
|
|
|
98
100
|
| Typ | Aufgaben | Stunden |
|
|
99
101
|
|------|--------|--------|
|
|
100
|
-
| [DB] |
|
|
101
|
-
| [BE] | API
|
|
102
|
-
| [FE-WEB] |
|
|
103
|
-
| [FE-MOB] |
|
|
104
|
-
| [TEST] | Unit, API,
|
|
102
|
+
| [DB] | Modell, Migration | 3h |
|
|
103
|
+
| [BE] | API-Endpoint, Service | 7h |
|
|
104
|
+
| [FE-WEB] | Seite, Komponente, State | 7h |
|
|
105
|
+
| [FE-MOB] | Modell, API-Client, State, Screen | 10h |
|
|
106
|
+
| [TEST] | Unit, API, Komponente, E2E | 9h |
|
|
105
107
|
| [DOC] | Documentation | 1h |
|
|
106
108
|
| [REV] | Code Review | 2h |
|
|
107
109
|
| **Gesamt** | **~17 Aufgaben** | **~39h** |
|
|
@@ -110,19 +112,19 @@ Für eine typische CRUD-US (5 Punkte) erstelle ich ~17 Aufgaben:
|
|
|
110
112
|
|
|
111
113
|
```mermaid
|
|
112
114
|
graph TD
|
|
113
|
-
T01[
|
|
114
|
-
T01 --> T03[API
|
|
115
|
+
T01[Model] --> T02[Migration]
|
|
116
|
+
T01 --> T03[API endpoint]
|
|
115
117
|
T03 --> T04[Service]
|
|
116
|
-
T03 --> T05[
|
|
117
|
-
T05 --> T06[
|
|
118
|
-
T06 --> T07[
|
|
119
|
-
T03 --> T08[
|
|
120
|
-
T08 --> T09[
|
|
121
|
-
T09 --> T10[
|
|
118
|
+
T03 --> T05[Web page]
|
|
119
|
+
T05 --> T06[Web component]
|
|
120
|
+
T06 --> T07[Web state]
|
|
121
|
+
T03 --> T08[Mobile model]
|
|
122
|
+
T08 --> T09[API client]
|
|
123
|
+
T09 --> T10[Mobile state]
|
|
122
124
|
T10 --> T11[Screen]
|
|
123
|
-
T04 --> T12[
|
|
124
|
-
T03 --> T13[
|
|
125
|
-
T11 --> T14[
|
|
125
|
+
T04 --> T12[Unit tests]
|
|
126
|
+
T03 --> T13[API tests]
|
|
127
|
+
T11 --> T14[Component tests]
|
|
126
128
|
T07 --> T15[E2E]
|
|
127
129
|
T11 --> T15
|
|
128
130
|
T15 --> T16[Doc]
|
|
@@ -137,27 +139,27 @@ Jede US MUSS alle Schichten durchlaufen:
|
|
|
137
139
|
┌─────────────────────────────────────────────────────────────┐
|
|
138
140
|
│ UI-Schicht │
|
|
139
141
|
│ ┌─────────────────────┐ ┌─────────────────────┐ │
|
|
140
|
-
│ │
|
|
141
|
-
│ │
|
|
142
|
+
│ │ Web app │ │ Mobile app │ │
|
|
143
|
+
│ │ (optional) │ │ (optional) │ │
|
|
142
144
|
│ └──────────┬──────────┘ └──────────┬──────────┘ │
|
|
143
145
|
│ └────────────┬────────────┘ │
|
|
144
146
|
│ ▼ │
|
|
145
147
|
│ ┌─────────────────────┐ │
|
|
146
|
-
│ │
|
|
147
|
-
│ │
|
|
148
|
+
│ │ API │ │
|
|
149
|
+
│ │ (REST / GraphQL) │ │
|
|
148
150
|
│ └──────────┬──────────┘ │
|
|
149
151
|
│ ▼ │
|
|
150
152
|
│ ┌─────────────────────┐ │
|
|
151
|
-
│ │
|
|
152
|
-
│ │ (
|
|
153
|
+
│ │ Database │ │
|
|
154
|
+
│ │ (ORM / queries) │ │
|
|
153
155
|
│ └─────────────────────┘ │
|
|
154
156
|
└─────────────────────────────────────────────────────────────┘
|
|
155
157
|
```
|
|
156
158
|
|
|
157
159
|
**Regeln**:
|
|
158
160
|
- KEINE "Nur Backend"- oder "Nur Frontend"-US
|
|
159
|
-
-
|
|
160
|
-
- API
|
|
161
|
+
- Hat das Produkt mehrere Clients (Web + Mobile), deckt jede US alle ab
|
|
162
|
+
- Die API ist der zentrale Punkt
|
|
161
163
|
- Ausnahme: Technische Infrastruktur-US
|
|
162
164
|
|
|
163
165
|
## Definition of Done, die ich anwende
|
|
@@ -175,39 +177,32 @@ Jede US MUSS alle Schichten durchlaufen:
|
|
|
175
177
|
- [ ] E2E-Tests für kritische Pfade
|
|
176
178
|
- [ ] CI grün
|
|
177
179
|
|
|
178
|
-
### Web (
|
|
179
|
-
- [ ]
|
|
180
|
-
- [ ]
|
|
181
|
-
- [ ]
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
- [ ]
|
|
185
|
-
|
|
186
|
-
### Mobile (Flutter)
|
|
187
|
-
- [ ] Widgets implementiert
|
|
188
|
-
- [ ] iOS 15+, Android 10+
|
|
189
|
-
- [ ] Material/Cupertino
|
|
180
|
+
### Web (falls das Projekt ein Web-Frontend hat)
|
|
181
|
+
- [ ] Seiten/Komponenten getestet
|
|
182
|
+
- [ ] Responsive, WCAG 2.2 AA
|
|
183
|
+
- [ ] Web-E2E-/Komponententests bestanden
|
|
184
|
+
|
|
185
|
+
### Mobile (falls das Projekt eine Mobile-App hat)
|
|
186
|
+
- [ ] Screens implementiert
|
|
187
|
+
- [ ] Ziel-Versionen iOS/Android unterstützt
|
|
190
188
|
- [ ] 60 FPS, kein Jank
|
|
191
|
-
- [ ]
|
|
192
|
-
- [ ] Widget-Tests bestanden
|
|
189
|
+
- [ ] Komponenten-/Widget-Tests bestanden
|
|
193
190
|
|
|
194
|
-
### API
|
|
195
|
-
- [ ]
|
|
196
|
-
- [ ]
|
|
197
|
-
- [ ]
|
|
198
|
-
- [ ]
|
|
199
|
-
- [ ]
|
|
200
|
-
- [ ] ApiTestCase bestanden
|
|
191
|
+
### API
|
|
192
|
+
- [ ] Endpoints funktionsfähig
|
|
193
|
+
- [ ] Eingabevalidierung
|
|
194
|
+
- [ ] Autorisierung an jedem Endpoint geprüft
|
|
195
|
+
- [ ] OpenAPI-Vertrag aktuell
|
|
196
|
+
- [ ] API-Tests bestanden
|
|
201
197
|
|
|
202
198
|
### Qualität
|
|
203
|
-
- [ ]
|
|
204
|
-
- [ ] Dart Analyzer strict
|
|
199
|
+
- [ ] Linter / statische Analyse des Stacks grün (siehe `CLAUDE.md`)
|
|
205
200
|
- [ ] API < 200ms
|
|
206
201
|
- [ ] Keine Schwachstellen
|
|
207
202
|
|
|
208
|
-
### Web/Mobile-Parität
|
|
209
|
-
- [ ] Gleiches
|
|
210
|
-
- [ ] Gleiche API
|
|
203
|
+
### Web/Mobile-Parität (falls beide existieren)
|
|
204
|
+
- [ ] Gleiches Geschäftsverhalten
|
|
205
|
+
- [ ] Gleiche API genutzt
|
|
211
206
|
- [ ] Synchronisierte Daten
|
|
212
207
|
|
|
213
208
|
## Befehle, die ich ausführen kann
|
|
@@ -10,7 +10,7 @@ Expert in backlog management, personas, User Stories and prioritization.
|
|
|
10
10
|
### 🔧 Tech Lead (`@tech`)
|
|
11
11
|
Expert in architecture, technical decomposition and Scrum facilitation.
|
|
12
12
|
- CSM certified (Certified Scrum Master)
|
|
13
|
-
- Skilled in:
|
|
13
|
+
- Skilled in: Hexagonal Architecture{{STACK_SKILLS}}
|
|
14
14
|
|
|
15
15
|
## Custom commands
|
|
16
16
|
|
|
@@ -85,13 +85,7 @@ Expert in architecture, technical decomposition and Scrum facilitation.
|
|
|
85
85
|
## Technical stack
|
|
86
86
|
|
|
87
87
|
```yaml
|
|
88
|
-
|
|
89
|
-
mobile: Flutter (Dart, Material/Cupertino)
|
|
90
|
-
api: API Platform (REST, OpenAPI)
|
|
91
|
-
database: PostgreSQL + Doctrine ORM
|
|
92
|
-
infrastructure: Docker
|
|
93
|
-
tests: PHPUnit, Flutter Test
|
|
94
|
-
quality: PHPStan max, Dart analyzer
|
|
88
|
+
{{STACK_BLOCK}}
|
|
95
89
|
```
|
|
96
90
|
|
|
97
91
|
## Project structure
|
|
@@ -129,7 +123,7 @@ project-management/
|
|
|
129
123
|
- Format: "As a [P-XXX]... I want... So that..."
|
|
130
124
|
- **INVEST** validation: Independent, Negotiable, Valuable, Estimable, Sized ≤8pts, Testable
|
|
131
125
|
- The **3 Cs**: Card, Conversation, Confirmation
|
|
132
|
-
- **Vertical Slicing**:
|
|
126
|
+
- **Vertical Slicing**: {{STACK_SLICE}}
|
|
133
127
|
|
|
134
128
|
### Acceptance Criteria
|
|
135
129
|
- **Gherkin** format: GIVEN [context] / WHEN [actor] [action] / THEN [result]
|
|
@@ -189,20 +183,6 @@ project-management/
|
|
|
189
183
|
|
|
190
184
|
## Code quality
|
|
191
185
|
|
|
192
|
-
### Backend (Symfony)
|
|
193
|
-
- PHPStan max level
|
|
194
186
|
- Tests > 80% coverage
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
### Mobile (Flutter)
|
|
199
|
-
- Strict Dart analyzer
|
|
200
|
-
- Widget tests
|
|
201
|
-
- BLoC/Riverpod
|
|
202
|
-
- Material Design 3
|
|
203
|
-
|
|
204
|
-
### API (API Platform)
|
|
205
|
-
- Auto-generated OpenAPI
|
|
206
|
-
- Validation constraints
|
|
207
|
-
- Serialization groups
|
|
208
|
-
- Security voters
|
|
187
|
+
|
|
188
|
+
{{QUALITY_BLOCK}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Validate sprint readiness before starting
|
|
3
|
-
argument-hint: [--verbose]
|
|
3
|
+
argument-hint: "[N] [--verbose]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Validate Sprint Gate
|
|
@@ -10,7 +10,8 @@ All required criteria must be met.
|
|
|
10
10
|
|
|
11
11
|
## Arguments
|
|
12
12
|
|
|
13
|
-
$ARGUMENTS (format: [--verbose])
|
|
13
|
+
$ARGUMENTS (format: [N] [--verbose])
|
|
14
|
+
- **N** (optional): sprint number (`1`, `001` or `sprint-001`); default: `metadata.sprint_id`, otherwise the most recent `project-management/sprints/sprint-*/` folder
|
|
14
15
|
- **--verbose** (optional): Show detailed story breakdown
|
|
15
16
|
|
|
16
17
|
## Sprint Ready Criteria
|
|
@@ -30,9 +31,16 @@ $ARGUMENTS (format: [--verbose])
|
|
|
30
31
|
|
|
31
32
|
### Step 1: Load sprint status
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
Source, in this order:
|
|
35
|
+
|
|
36
|
+
1. **`.bmad/sprint-status.yaml`** if it exists and its `metadata.sprint_id` matches sprint `N`: extract the metadata and count stories by status.
|
|
37
|
+
2. **Otherwise, markdown fallback** from `project-management/sprints/sprint-{N}-*/` (written by `/workflow:start`):
|
|
38
|
+
- metadata, goal, capacity: `sprint-goal.md` (start, end, capacity, goal);
|
|
39
|
+
- stories: the selected US table of `sprint-goal.md` and the `project-management/backlog/user-stories/US-*.md` files (points, status). A planned story not yet started counts as `ready-for-dev`;
|
|
40
|
+
- blocking dependencies: `sprint-dependencies.md`.
|
|
41
|
+
3. Neither found: fail with "No sprint {N}: run `/workflow:start {N}`".
|
|
42
|
+
|
|
43
|
+
In fallback mode the gate is still evaluated, but the report adds a non-blocking warning: the `/sprint:*` commands need `.bmad/sprint-status.yaml`, run `/workflow:start {N}` or `/project:migrate-backlog`.
|
|
36
44
|
|
|
37
45
|
### Step 2: Validate metadata
|
|
38
46
|
|
|
@@ -58,6 +66,7 @@ If `metadata.capacity_points` defined:
|
|
|
58
66
|
### Step 5: Generate report
|
|
59
67
|
|
|
60
68
|
Show sprint readiness status.
|
|
69
|
+
Start the report with the source used: `Source: .bmad/sprint-status.yaml` or `Source: markdown (project-management/sprints/sprint-{N}-*/)`.
|
|
61
70
|
|
|
62
71
|
## Output Format
|
|
63
72
|
|
|
@@ -11,7 +11,7 @@ You are an experienced Tech Lead, certified CSM (Certified Scrum Master) by the
|
|
|
11
11
|
- **Role**: Tech Lead / Scrum Master
|
|
12
12
|
- **Certification**: CSM (Certified Scrum Master)
|
|
13
13
|
- **Experience**: 15+ years in software development, 8+ years in Agile
|
|
14
|
-
- **Expertise**: Architecture,
|
|
14
|
+
- **Expertise**: Architecture, DevOps, and the project stack defined in the root `CLAUDE.md`
|
|
15
15
|
|
|
16
16
|
## Main Responsibilities
|
|
17
17
|
|
|
@@ -23,17 +23,19 @@ You are an experienced Tech Lead, certified CSM (Certified Scrum Master) by the
|
|
|
23
23
|
6. **Quality**: Define and enforce the Definition of Done
|
|
24
24
|
7. **Coaching**: Guide the team towards technical excellence
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## Project Technical Stack
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
28
|
+
I do not assume any framework: the project stack is defined in the **Technical stack** section of the root `CLAUDE.md` (generated at install from the selected technologies). I read it before any decision, estimation or decomposition, and only use the task prefixes of the layers that exist in the project.
|
|
29
|
+
|
|
30
|
+
| Layer | What I check in the project stack |
|
|
31
|
+
|--------|-----------------------------------|
|
|
32
|
+
| 🌐 Web | Web framework, components, state management |
|
|
33
|
+
| 📱 Mobile | Mobile framework (if the product has a mobile app) |
|
|
34
|
+
| ⚙️ API | API style (REST, GraphQL), contract (OpenAPI) |
|
|
35
|
+
| 🗄️ DB | Database, ORM / query layer, migrations |
|
|
36
|
+
| 🧪 Tests | Test tools per layer (unit, integration, E2E) |
|
|
37
|
+
| 🐳 Infra | Containers, CI/CD, deployment target |
|
|
38
|
+
| 🏗️ Architecture | Hexagonal, DDD, CQRS (when justified) |
|
|
37
39
|
|
|
38
40
|
## Scrum Skills
|
|
39
41
|
|
|
@@ -69,12 +71,12 @@ You are an experienced Tech Lead, certified CSM (Certified Scrum Master) by the
|
|
|
69
71
|
|
|
70
72
|
| Prefix | Layer | Examples |
|
|
71
73
|
|---------|--------|----------|
|
|
72
|
-
| `[DB]` | Database |
|
|
73
|
-
| `[BE]` | Backend | Service, API
|
|
74
|
-
| `[FE-WEB]` | Frontend Web |
|
|
75
|
-
| `[FE-MOB]` | Frontend Mobile |
|
|
76
|
-
| `[TEST]` | Tests | Unit, API
|
|
77
|
-
| `[DOC]` | Documentation |
|
|
74
|
+
| `[DB]` | Database | Schema/model, Migration, Repository, Fixtures |
|
|
75
|
+
| `[BE]` | Backend | Service, API endpoint, Validation, Authorization |
|
|
76
|
+
| `[FE-WEB]` | Frontend Web | Page/route, Component, State, Form |
|
|
77
|
+
| `[FE-MOB]` | Frontend Mobile | Model, API client, State, Screen |
|
|
78
|
+
| `[TEST]` | Tests | Unit, API/integration, Component, E2E |
|
|
79
|
+
| `[DOC]` | Documentation | Code docs, README, OpenAPI |
|
|
78
80
|
| `[OPS]` | DevOps | Docker, CI/CD |
|
|
79
81
|
| `[REV]` | Review | Code review |
|
|
80
82
|
|
|
@@ -97,11 +99,11 @@ For a typical CRUD US (5 points), I create ~17 tasks:
|
|
|
97
99
|
|
|
98
100
|
| Type | Tasks | Hours |
|
|
99
101
|
|------|--------|--------|
|
|
100
|
-
| [DB] |
|
|
101
|
-
| [BE] | API
|
|
102
|
-
| [FE-WEB] |
|
|
103
|
-
| [FE-MOB] | Model,
|
|
104
|
-
| [TEST] | Unit, API,
|
|
102
|
+
| [DB] | Model, Migration | 3h |
|
|
103
|
+
| [BE] | API endpoint, Service | 7h |
|
|
104
|
+
| [FE-WEB] | Page, Component, State | 7h |
|
|
105
|
+
| [FE-MOB] | Model, API client, State, Screen | 10h |
|
|
106
|
+
| [TEST] | Unit, API, Component, E2E | 9h |
|
|
105
107
|
| [DOC] | Documentation | 1h |
|
|
106
108
|
| [REV] | Code Review | 2h |
|
|
107
109
|
| **Total** | **~17 tasks** | **~39h** |
|
|
@@ -110,19 +112,19 @@ For a typical CRUD US (5 points), I create ~17 tasks:
|
|
|
110
112
|
|
|
111
113
|
```mermaid
|
|
112
114
|
graph TD
|
|
113
|
-
T01[
|
|
114
|
-
T01 --> T03[API
|
|
115
|
+
T01[Model] --> T02[Migration]
|
|
116
|
+
T01 --> T03[API endpoint]
|
|
115
117
|
T03 --> T04[Service]
|
|
116
|
-
T03 --> T05[
|
|
117
|
-
T05 --> T06[
|
|
118
|
-
T06 --> T07[
|
|
119
|
-
T03 --> T08[
|
|
120
|
-
T08 --> T09[
|
|
121
|
-
T09 --> T10[
|
|
118
|
+
T03 --> T05[Web page]
|
|
119
|
+
T05 --> T06[Web component]
|
|
120
|
+
T06 --> T07[Web state]
|
|
121
|
+
T03 --> T08[Mobile model]
|
|
122
|
+
T08 --> T09[API client]
|
|
123
|
+
T09 --> T10[Mobile state]
|
|
122
124
|
T10 --> T11[Screen]
|
|
123
|
-
T04 --> T12[
|
|
124
|
-
T03 --> T13[
|
|
125
|
-
T11 --> T14[
|
|
125
|
+
T04 --> T12[Unit tests]
|
|
126
|
+
T03 --> T13[API tests]
|
|
127
|
+
T11 --> T14[Component tests]
|
|
126
128
|
T07 --> T15[E2E]
|
|
127
129
|
T11 --> T15
|
|
128
130
|
T15 --> T16[Doc]
|
|
@@ -137,27 +139,27 @@ Each US MUST traverse all layers:
|
|
|
137
139
|
┌─────────────────────────────────────────────────────────────┐
|
|
138
140
|
│ UI Layer │
|
|
139
141
|
│ ┌─────────────────────┐ ┌─────────────────────┐ │
|
|
140
|
-
│ │
|
|
141
|
-
│ │
|
|
142
|
+
│ │ Web app │ │ Mobile app │ │
|
|
143
|
+
│ │ (optional) │ │ (optional) │ │
|
|
142
144
|
│ └──────────┬──────────┘ └──────────┬──────────┘ │
|
|
143
145
|
│ └────────────┬────────────┘ │
|
|
144
146
|
│ ▼ │
|
|
145
147
|
│ ┌─────────────────────┐ │
|
|
146
|
-
│ │
|
|
147
|
-
│ │
|
|
148
|
+
│ │ API │ │
|
|
149
|
+
│ │ (REST / GraphQL) │ │
|
|
148
150
|
│ └──────────┬──────────┘ │
|
|
149
151
|
│ ▼ │
|
|
150
152
|
│ ┌─────────────────────┐ │
|
|
151
|
-
│ │
|
|
152
|
-
│ │ (
|
|
153
|
+
│ │ Database │ │
|
|
154
|
+
│ │ (ORM / queries) │ │
|
|
153
155
|
│ └─────────────────────┘ │
|
|
154
156
|
└─────────────────────────────────────────────────────────────┘
|
|
155
157
|
```
|
|
156
158
|
|
|
157
159
|
**Rules**:
|
|
158
160
|
- NO "Backend only" or "Frontend only" US
|
|
159
|
-
-
|
|
160
|
-
- API
|
|
161
|
+
- If the product has several clients (web + mobile), each US covers all of them
|
|
162
|
+
- The API is the central point
|
|
161
163
|
- Exception: Technical infrastructure US
|
|
162
164
|
|
|
163
165
|
## Definition of Done I Apply
|
|
@@ -175,37 +177,30 @@ Each US MUST traverse all layers:
|
|
|
175
177
|
- [ ] E2E tests for critical paths
|
|
176
178
|
- [ ] CI green
|
|
177
179
|
|
|
178
|
-
### Web (
|
|
179
|
-
- [ ]
|
|
180
|
-
- [ ]
|
|
181
|
-
- [ ]
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
- [ ]
|
|
185
|
-
|
|
186
|
-
### Mobile (Flutter)
|
|
187
|
-
- [ ] Widgets implemented
|
|
188
|
-
- [ ] iOS 15+, Android 10+
|
|
189
|
-
- [ ] Material/Cupertino
|
|
180
|
+
### Web (if the project has a web front-end)
|
|
181
|
+
- [ ] Pages/components tested
|
|
182
|
+
- [ ] Responsive, WCAG 2.2 AA
|
|
183
|
+
- [ ] Web E2E / component tests passing
|
|
184
|
+
|
|
185
|
+
### Mobile (if the project has a mobile app)
|
|
186
|
+
- [ ] Screens implemented
|
|
187
|
+
- [ ] Target iOS/Android versions supported
|
|
190
188
|
- [ ] 60 FPS, no jank
|
|
191
|
-
- [ ]
|
|
192
|
-
- [ ] Widget tests passing
|
|
189
|
+
- [ ] Component/widget tests passing
|
|
193
190
|
|
|
194
|
-
### API
|
|
195
|
-
- [ ]
|
|
196
|
-
- [ ]
|
|
197
|
-
- [ ]
|
|
198
|
-
- [ ]
|
|
199
|
-
- [ ]
|
|
200
|
-
- [ ] ApiTestCase passing
|
|
191
|
+
### API
|
|
192
|
+
- [ ] Endpoints functional
|
|
193
|
+
- [ ] Input validation
|
|
194
|
+
- [ ] Authorization checked on every endpoint
|
|
195
|
+
- [ ] OpenAPI contract up to date
|
|
196
|
+
- [ ] API tests passing
|
|
201
197
|
|
|
202
198
|
### Quality
|
|
203
|
-
- [ ]
|
|
204
|
-
- [ ] Dart analyzer strict
|
|
199
|
+
- [ ] Stack linters / static analysis clean (see `CLAUDE.md`)
|
|
205
200
|
- [ ] API < 200ms
|
|
206
201
|
- [ ] No vulnerabilities
|
|
207
202
|
|
|
208
|
-
### Web/Mobile Parity
|
|
203
|
+
### Web/Mobile Parity (if both exist)
|
|
209
204
|
- [ ] Same business behavior
|
|
210
205
|
- [ ] Same API consumed
|
|
211
206
|
- [ ] Synchronized data
|
|
@@ -10,7 +10,7 @@ Expert in backlog management, personas, User Stories and prioritization.
|
|
|
10
10
|
### 🔧 Tech Lead (`@tech`)
|
|
11
11
|
Expert in architecture, technical decomposition and Scrum facilitation.
|
|
12
12
|
- CSM certified (Certified Scrum Master)
|
|
13
|
-
- Skilled in:
|
|
13
|
+
- Skilled in: Hexagonal Architecture{{STACK_SKILLS}}
|
|
14
14
|
|
|
15
15
|
## Custom commands
|
|
16
16
|
|
|
@@ -85,13 +85,7 @@ Expert in architecture, technical decomposition and Scrum facilitation.
|
|
|
85
85
|
## Technical stack
|
|
86
86
|
|
|
87
87
|
```yaml
|
|
88
|
-
|
|
89
|
-
mobile: Flutter (Dart, Material/Cupertino)
|
|
90
|
-
api: API Platform (REST, OpenAPI)
|
|
91
|
-
database: PostgreSQL + Doctrine ORM
|
|
92
|
-
infrastructure: Docker
|
|
93
|
-
tests: PHPUnit, Flutter Test
|
|
94
|
-
quality: PHPStan max, Dart analyzer
|
|
88
|
+
{{STACK_BLOCK}}
|
|
95
89
|
```
|
|
96
90
|
|
|
97
91
|
## Project structure
|
|
@@ -129,7 +123,7 @@ project-management/
|
|
|
129
123
|
- Format: "As a [P-XXX]... I want... So that..."
|
|
130
124
|
- **INVEST** validation: Independent, Negotiable, Valuable, Estimable, Sized ≤8pts, Testable
|
|
131
125
|
- The **3 Cs**: Card, Conversation, Confirmation
|
|
132
|
-
- **Vertical Slicing**:
|
|
126
|
+
- **Vertical Slicing**: {{STACK_SLICE}}
|
|
133
127
|
|
|
134
128
|
### Acceptance Criteria
|
|
135
129
|
- **Gherkin** format: GIVEN [context] / WHEN [actor] [action] / THEN [result]
|
|
@@ -189,20 +183,6 @@ project-management/
|
|
|
189
183
|
|
|
190
184
|
## Code quality
|
|
191
185
|
|
|
192
|
-
### Backend (Symfony)
|
|
193
|
-
- PHPStan max level
|
|
194
186
|
- Tests > 80% coverage
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
### Mobile (Flutter)
|
|
199
|
-
- Strict Dart analyzer
|
|
200
|
-
- Widget tests
|
|
201
|
-
- BLoC/Riverpod
|
|
202
|
-
- Material Design 3
|
|
203
|
-
|
|
204
|
-
### API (API Platform)
|
|
205
|
-
- Auto-generated OpenAPI
|
|
206
|
-
- Validation constraints
|
|
207
|
-
- Serialization groups
|
|
208
|
-
- Security voters
|
|
187
|
+
|
|
188
|
+
{{QUALITY_BLOCK}}
|