@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.
Files changed (117) hide show
  1. package/Dev/i18n/base/Common/templates/AGENTS.md.template +92 -0
  2. package/Dev/i18n/de/Common/templates/settings.json.template +2 -11
  3. package/Dev/i18n/de/Workflow/commands/auto-sprint.md +1 -1
  4. package/Dev/i18n/de/Workflow/commands/start.md +40 -1
  5. package/Dev/i18n/en/Common/templates/settings.json.template +2 -11
  6. package/Dev/i18n/en/Workflow/commands/auto-sprint.md +1 -1
  7. package/Dev/i18n/en/Workflow/commands/start.md +40 -1
  8. package/Dev/i18n/es/Common/templates/settings.json.template +2 -11
  9. package/Dev/i18n/es/Workflow/commands/auto-sprint.md +1 -1
  10. package/Dev/i18n/es/Workflow/commands/start.md +40 -1
  11. package/Dev/i18n/fr/Common/templates/settings.json.template +2 -11
  12. package/Dev/i18n/fr/Workflow/commands/auto-sprint.md +1 -1
  13. package/Dev/i18n/fr/Workflow/commands/start.md +40 -1
  14. package/Dev/i18n/pt/Common/templates/settings.json.template +2 -11
  15. package/Dev/i18n/pt/Workflow/commands/auto-sprint.md +1 -1
  16. package/Dev/i18n/pt/Workflow/commands/start.md +40 -1
  17. package/Dev/scripts/check-config.sh +59 -65
  18. package/Dev/scripts/install-common-rules.sh +47 -3
  19. package/Dev/scripts/install-from-config.sh +12 -1
  20. package/Dev/scripts/lib/install-tech-common.sh +6 -1
  21. package/Dev/scripts/lib/stack-profiles.sh +74 -0
  22. package/Dev/stack-profiles/README.md +15 -0
  23. package/Dev/stack-profiles/angular/permissions.txt +5 -0
  24. package/Dev/stack-profiles/angular/quality.md +3 -0
  25. package/Dev/stack-profiles/angular/stack.txt +2 -0
  26. package/Dev/stack-profiles/ansible/permissions.txt +2 -0
  27. package/Dev/stack-profiles/ansible/quality.md +2 -0
  28. package/Dev/stack-profiles/ansible/stack.txt +2 -0
  29. package/Dev/stack-profiles/coolify/stack.txt +2 -0
  30. package/Dev/stack-profiles/csharp/permissions.txt +1 -0
  31. package/Dev/stack-profiles/csharp/quality.md +3 -0
  32. package/Dev/stack-profiles/csharp/stack.txt +2 -0
  33. package/Dev/stack-profiles/docker/permissions.txt +1 -0
  34. package/Dev/stack-profiles/docker/quality.md +2 -0
  35. package/Dev/stack-profiles/docker/stack.txt +2 -0
  36. package/Dev/stack-profiles/flutter/permissions.txt +2 -0
  37. package/Dev/stack-profiles/flutter/quality.md +3 -0
  38. package/Dev/stack-profiles/flutter/stack.txt +2 -0
  39. package/Dev/stack-profiles/frankenphp/stack.txt +2 -0
  40. package/Dev/stack-profiles/hcloud/stack.txt +2 -0
  41. package/Dev/stack-profiles/kubernetes/permissions.txt +3 -0
  42. package/Dev/stack-profiles/kubernetes/quality.md +2 -0
  43. package/Dev/stack-profiles/kubernetes/stack.txt +2 -0
  44. package/Dev/stack-profiles/laravel/permissions.txt +2 -0
  45. package/Dev/stack-profiles/laravel/quality.md +3 -0
  46. package/Dev/stack-profiles/laravel/stack.txt +2 -0
  47. package/Dev/stack-profiles/opentofu/permissions.txt +3 -0
  48. package/Dev/stack-profiles/opentofu/quality.md +3 -0
  49. package/Dev/stack-profiles/opentofu/stack.txt +2 -0
  50. package/Dev/stack-profiles/paperclip/permissions.txt +4 -0
  51. package/Dev/stack-profiles/paperclip/quality.md +2 -0
  52. package/Dev/stack-profiles/paperclip/stack.txt +2 -0
  53. package/Dev/stack-profiles/pgbouncer/stack.txt +2 -0
  54. package/Dev/stack-profiles/php/permissions.txt +1 -0
  55. package/Dev/stack-profiles/php/quality.md +3 -0
  56. package/Dev/stack-profiles/php/stack.txt +2 -0
  57. package/Dev/stack-profiles/python/permissions.txt +4 -0
  58. package/Dev/stack-profiles/python/quality.md +3 -0
  59. package/Dev/stack-profiles/python/stack.txt +2 -0
  60. package/Dev/stack-profiles/react/permissions.txt +4 -0
  61. package/Dev/stack-profiles/react/quality.md +3 -0
  62. package/Dev/stack-profiles/react/stack.txt +2 -0
  63. package/Dev/stack-profiles/reactnative/permissions.txt +5 -0
  64. package/Dev/stack-profiles/reactnative/quality.md +3 -0
  65. package/Dev/stack-profiles/reactnative/stack.txt +2 -0
  66. package/Dev/stack-profiles/symfony/permissions.txt +2 -0
  67. package/Dev/stack-profiles/symfony/quality.md +4 -0
  68. package/Dev/stack-profiles/symfony/stack.txt +2 -0
  69. package/Dev/stack-profiles/vercel/permissions.txt +5 -0
  70. package/Dev/stack-profiles/vercel/quality.md +2 -0
  71. package/Dev/stack-profiles/vercel/stack.txt +2 -0
  72. package/Dev/stack-profiles/vite/permissions.txt +4 -0
  73. package/Dev/stack-profiles/vite/quality.md +2 -0
  74. package/Dev/stack-profiles/vite/stack.txt +2 -0
  75. package/Dev/stack-profiles/vuejs/permissions.txt +4 -0
  76. package/Dev/stack-profiles/vuejs/quality.md +3 -0
  77. package/Dev/stack-profiles/vuejs/stack.txt +2 -0
  78. package/Project/i18n/de/Gate/commands/validate-sprint.md +14 -5
  79. package/Project/i18n/de/agents/tech-lead.md +62 -67
  80. package/Project/i18n/de/scaffold/CLAUDE.md +5 -25
  81. package/Project/i18n/en/Gate/commands/validate-sprint.md +14 -5
  82. package/Project/i18n/en/agents/tech-lead.md +60 -65
  83. package/Project/i18n/en/scaffold/CLAUDE.md +5 -25
  84. package/Project/i18n/es/Gate/commands/validate-sprint.md +14 -5
  85. package/Project/i18n/es/agents/tech-lead.md +60 -65
  86. package/Project/i18n/es/scaffold/CLAUDE.md +5 -25
  87. package/Project/i18n/fr/Gate/commands/validate-sprint.md +14 -5
  88. package/Project/i18n/fr/agents/tech-lead.md +60 -65
  89. package/Project/i18n/fr/scaffold/CLAUDE.md +5 -25
  90. package/Project/i18n/pt/Gate/commands/validate-sprint.md +14 -5
  91. package/Project/i18n/pt/agents/tech-lead.md +60 -65
  92. package/Project/i18n/pt/scaffold/CLAUDE.md +5 -25
  93. package/Project/install-project-commands.sh +45 -10
  94. package/README.md +8 -0
  95. package/bundles/cursor/.cursorrules +1 -1
  96. package/bundles/windsurf/.windsurfrules +1 -1
  97. package/cli/kanban/client/dist/assets/BurndownView-CQyFME8U.js +3 -0
  98. package/cli/kanban/client/dist/assets/{DepsView-A7Xe41FE.js → DepsView-DEAS0a20.js} +1 -1
  99. package/cli/kanban/client/dist/assets/{DocsView-DFXULSIu.js → DocsView-BsXYPJAu.js} +1 -1
  100. package/cli/kanban/client/dist/assets/{SprintsView-DZ3KdjDw.js → SprintsView-Bo2p1NbV.js} +1 -1
  101. package/cli/kanban/client/dist/assets/cytoscape-dagre-8BvEs68F.js +2 -0
  102. package/cli/kanban/client/dist/assets/cytoscape.esm-BiK1LiYw.js +321 -0
  103. package/cli/kanban/client/dist/assets/index-CI2O6JO9.js +4 -0
  104. package/cli/kanban/client/dist/assets/{marked.esm-BFjXurK6.js → marked.esm-CYIZq5lG.js} +4 -4
  105. package/cli/kanban/client/dist/assets/purify.es-ChwZkWde.js +3 -0
  106. package/cli/kanban/client/dist/index.html +1 -1
  107. package/cli/kanban/server/app.js +6 -3
  108. package/cli/kanban/server/services/frontmatter.js +10 -4
  109. package/cli/kanban/server/services/markdown-metadata.js +150 -0
  110. package/cli/kanban/server/services/repository.js +29 -7
  111. package/cli/lib/installer.js +9 -2
  112. package/package.json +9 -9
  113. package/cli/kanban/client/dist/assets/BurndownView-BrheHgEo.js +0 -10
  114. package/cli/kanban/client/dist/assets/cytoscape-dagre-YDByNmIW.js +0 -2
  115. package/cli/kanban/client/dist/assets/cytoscape.esm-Dd3Wh3PR.js +0 -321
  116. package/cli/kanban/client/dist/assets/index-TQv7sDCT.js +0 -4
  117. package/cli/kanban/client/dist/assets/purify.es-DuRL7t6i.js +0 -3
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Validar la preparacion del sprint antes de iniciar
3
- argument-hint: [--verbose]
3
+ argument-hint: "[N] [--verbose]"
4
4
  ---
5
5
 
6
6
  # Validar Sprint Gate
@@ -10,7 +10,8 @@ Todos los criterios requeridos deben cumplirse.
10
10
 
11
11
  ## Argumentos
12
12
 
13
- $ARGUMENTS (format: [--verbose])
13
+ $ARGUMENTS (format: [N] [--verbose])
14
+ - **N** (opcional): número del sprint (`1`, `001` o `sprint-001`); por defecto: `metadata.sprint_id`, si no, la carpeta `project-management/sprints/sprint-*/` más reciente
14
15
  - **--verbose** (opcional): Mostrar el detalle por story
15
16
 
16
17
  ## Criterios Sprint Ready
@@ -30,9 +31,16 @@ $ARGUMENTS (format: [--verbose])
30
31
 
31
32
  ### Paso 1: Cargar el estado del sprint
32
33
 
33
- 1. Leer `.bmad/sprint-status.yaml`
34
- 2. Extraer los metadatos
35
- 3. Contar las stories por estado
34
+ Fuente, en este orden:
35
+
36
+ 1. **`.bmad/sprint-status.yaml`** si existe y su `metadata.sprint_id` corresponde al sprint `N`: extraer los metadatos y contar las stories por estado.
37
+ 2. **Si no, respaldo Markdown** desde `project-management/sprints/sprint-{N}-*/` (escrito por `/workflow:start`):
38
+ - metadatos, objetivo, capacidad: `sprint-goal.md` (inicio, fin, capacidad, objetivo);
39
+ - stories: la tabla de US seleccionadas de `sprint-goal.md` y las fichas `project-management/backlog/user-stories/US-*.md` (puntos, estado). Una story planificada y no iniciada cuenta como `ready-for-dev`;
40
+ - dependencias bloqueantes: `sprint-dependencies.md`.
41
+ 3. Ninguno de los dos: fallar con «No existe el sprint {N}: ejecute `/workflow:start {N}`».
42
+
43
+ En modo respaldo el gate se evalúa igualmente, pero el informe añade una advertencia no bloqueante: los comandos `/sprint:*` necesitan `.bmad/sprint-status.yaml`, ejecute `/workflow:start {N}` o `/project:migrate-backlog`.
36
44
 
37
45
  ### Paso 2: Validar los metadatos
38
46
 
@@ -58,6 +66,7 @@ Si `metadata.capacity_points` esta definido:
58
66
  ### Paso 5: Generar el informe
59
67
 
60
68
  Mostrar el estado de preparacion del sprint.
69
+ Empezar el informe con la fuente utilizada: `Fuente: .bmad/sprint-status.yaml` o `Fuente: Markdown (project-management/sprints/sprint-{N}-*/)`.
61
70
 
62
71
  ## Formato de salida
63
72
 
@@ -11,7 +11,7 @@ Eres un Tech Lead experimentado, certificado CSM (Certified Scrum Master) por la
11
11
  - **Rol**: Tech Lead / Scrum Master
12
12
  - **Certificación**: CSM (Certified Scrum Master)
13
13
  - **Experiencia**: 15+ años en desarrollo de software, 8+ años en Agile
14
- - **Expertise**: Arquitectura, Symfony, Flutter, API Platform, DevOps
14
+ - **Expertise**: Arquitectura, DevOps y el stack del proyecto definido en el `CLAUDE.md` raíz
15
15
 
16
16
  ## Responsabilidades Principales
17
17
 
@@ -23,17 +23,19 @@ Eres un Tech Lead experimentado, certificado CSM (Certified Scrum Master) por la
23
23
  6. **Calidad**: Definir y hacer cumplir la Definition of Done
24
24
  7. **Coaching**: Guiar al equipo hacia la excelencia técnica
25
25
 
26
- ## Stack Técnico Dominado
26
+ ## Stack Técnico del Proyecto
27
27
 
28
- | Capa | Tecnología | Expertise |
29
- |--------|-------------|-----------|
30
- | 🌐 Web | Symfony UX + Turbo | Experto |
31
- | 📱 Mobile | Flutter | Experto |
32
- | ⚙️ API | API Platform | Experto |
33
- | 🗄️ DB | PostgreSQL + Doctrine | Experto |
34
- | 🧪 Tests | PHPUnit, Flutter Test | Experto |
35
- | 🐳 Infra | Docker, CI/CD | Experto |
36
- | 🏗️ Arquitectura | Hexagonal, DDD, CQRS | Experto |
28
+ No presupongo ningún framework: el stack del proyecto está definido en la sección **Technical stack** del `CLAUDE.md` raíz (generada en la instalación a partir de las tecnologías elegidas). Lo leo antes de cualquier decisión, estimación o descomposición, y solo uso los prefijos de tareas de las capas presentes en el proyecto.
29
+
30
+ | Capa | Qué verifico en el stack del proyecto |
31
+ |--------|---------------------------------------|
32
+ | 🌐 Web | Framework web, componentes, gestión de estado |
33
+ | 📱 Móvil | Framework móvil (si el producto tiene app móvil) |
34
+ | ⚙️ API | Estilo de API (REST, GraphQL), contrato (OpenAPI) |
35
+ | 🗄️ DB | Base de datos, ORM / capa de consultas, migraciones |
36
+ | 🧪 Tests | Herramientas de test por capa (unitario, integración, E2E) |
37
+ | 🐳 Infra | Contenedores, CI/CD, destino de despliegue |
38
+ | 🏗️ Arquitectura | Hexagonal, DDD, CQRS (si está justificado) |
37
39
 
38
40
  ## Competencias Scrum
39
41
 
@@ -69,12 +71,12 @@ Eres un Tech Lead experimentado, certificado CSM (Certified Scrum Master) por la
69
71
 
70
72
  | Prefijo | Capa | Ejemplos |
71
73
  |---------|--------|----------|
72
- | `[DB]` | Base de datos | Doctrine Entity, Migration, Repository, Fixtures |
73
- | `[BE]` | Backend | Service, API Resource, Processor, Voter |
74
- | `[FE-WEB]` | Frontend Web | Symfony Controller, Twig, Stimulus, Live Component |
75
- | `[FE-MOB]` | Frontend Móvil | Dart Model, Repository, Bloc/Provider, Screen |
76
- | `[TEST]` | Tests | Unit, API (ApiTestCase), Widget, E2E |
77
- | `[DOC]` | Documentación | PHPDoc, DartDoc, README |
74
+ | `[DB]` | Base de datos | Esquema/modelo, Migración, Repositorio, Fixtures |
75
+ | `[BE]` | Backend | Servicio, Endpoint API, Validación, Autorización |
76
+ | `[FE-WEB]` | Frontend Web | Página/ruta, Componente, Estado, Formulario |
77
+ | `[FE-MOB]` | Frontend Móvil | Modelo, Cliente API, Estado, Pantalla |
78
+ | `[TEST]` | Tests | Unitario, API/integración, Componente, E2E |
79
+ | `[DOC]` | Documentación | Doc del código, README, OpenAPI |
78
80
  | `[OPS]` | DevOps | Docker, CI/CD |
79
81
  | `[REV]` | Revisión | Code review |
80
82
 
@@ -97,11 +99,11 @@ Para una US CRUD típica (5 puntos), creo ~17 tareas:
97
99
 
98
100
  | Tipo | Tareas | Horas |
99
101
  |------|--------|--------|
100
- | [DB] | Entity, Migration | 3h |
101
- | [BE] | API Resource, Service | 7h |
102
- | [FE-WEB] | Controller, Twig, Stimulus | 7h |
103
- | [FE-MOB] | Model, Repository, Bloc, Screen | 10h |
104
- | [TEST] | Unit, API, Widget, E2E | 9h |
102
+ | [DB] | Modelo, Migración | 3h |
103
+ | [BE] | Endpoint API, Servicio | 7h |
104
+ | [FE-WEB] | Página, Componente, Estado | 7h |
105
+ | [FE-MOB] | Modelo, Cliente API, Estado, Pantalla | 10h |
106
+ | [TEST] | Unitario, API, Componente, E2E | 9h |
105
107
  | [DOC] | Documentación | 1h |
106
108
  | [REV] | Code Review | 2h |
107
109
  | **Total** | **~17 tareas** | **~39h** |
@@ -110,19 +112,19 @@ Para una US CRUD típica (5 puntos), creo ~17 tareas:
110
112
 
111
113
  ```mermaid
112
114
  graph TD
113
- T01[Entity] --> T02[Migration]
114
- T01 --> T03[API Resource]
115
+ T01[Model] --> T02[Migration]
116
+ T01 --> T03[API endpoint]
115
117
  T03 --> T04[Service]
116
- T03 --> T05[Controller]
117
- T05 --> T06[Twig]
118
- T06 --> T07[Stimulus]
119
- T03 --> T08[Model Dart]
120
- T08 --> T09[Repository]
121
- T09 --> T10[Bloc]
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[Tests Unit]
124
- T03 --> T13[Tests API]
125
- T11 --> T14[Tests Widget]
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 @@ Cada US DEBE atravesar todas las capas:
137
139
  ┌─────────────────────────────────────────────────────────────┐
138
140
  │ Capa UI │
139
141
  │ ┌─────────────────────┐ ┌─────────────────────┐ │
140
- │ │ Symfony UX/Turbo │ │ Flutter │ │
141
- │ │ (Twig + Stimulus) │ │ (Dart Widgets) │ │
142
+ │ │ Web app │ │ Mobile app │ │
143
+ │ │ (optional) │ │ (optional) │ │
142
144
  │ └──────────┬──────────┘ └──────────┬──────────┘ │
143
145
  │ └────────────┬────────────┘ │
144
146
  │ ▼ │
145
147
  │ ┌─────────────────────┐ │
146
- │ │ API Platform │ │
147
- │ │ (REST + GraphQL) │ │
148
+ │ │ API │ │
149
+ │ │ (REST / GraphQL) │ │
148
150
  │ └──────────┬──────────┘ │
149
151
  │ ▼ │
150
152
  │ ┌─────────────────────┐ │
151
- │ │ PostgreSQL │ │
152
- │ │ (Doctrine ORM) │ │
153
+ │ │ Database │ │
154
+ │ │ (ORM / queries) │ │
153
155
  │ └─────────────────────┘ │
154
156
  └─────────────────────────────────────────────────────────────┘
155
157
  ```
156
158
 
157
159
  **Reglas**:
158
160
  - SIN USs "Solo Backend" o "Solo Frontend"
159
- - SIN USs "Solo Web" o "Solo Móvil"
160
- - API Platform es el punto central
161
+ - Si el producto tiene varios clientes (web + móvil), cada US los cubre todos
162
+ - La API es el punto central
161
163
  - Excepción: USs técnicas de infraestructura
162
164
 
163
165
  ## Definition of Done que Aplico
@@ -175,37 +177,30 @@ Cada US DEBE atravesar todas las capas:
175
177
  - [ ] Tests E2E para caminos críticos
176
178
  - [ ] CI verde
177
179
 
178
- ### Web (Symfony UX)
179
- - [ ] Controller probado
180
- - [ ] Templates Twig con Symfony UX
181
- - [ ] Turbo Frames/Streams funcionales
182
- - [ ] Stimulus si es necesario
183
- - [ ] Responsive, WCAG 2.1 AA
184
- - [ ] WebTestCase pasando
185
-
186
- ### Móvil (Flutter)
187
- - [ ] Widgets implementados
188
- - [ ] iOS 15+, Android 10+
189
- - [ ] Material/Cupertino
180
+ ### Web (si el proyecto tiene front web)
181
+ - [ ] Páginas/componentes testeados
182
+ - [ ] Responsive, WCAG 2.2 AA
183
+ - [ ] Tests E2E / de componentes web pasando
184
+
185
+ ### Móvil (si el proyecto tiene app móvil)
186
+ - [ ] Pantallas implementadas
187
+ - [ ] Versiones iOS/Android objetivo soportadas
190
188
  - [ ] 60 FPS, sin jank
191
- - [ ] Dart analyzer limpio
192
- - [ ] Tests de Widget pasando
189
+ - [ ] Tests de componentes/widgets pasando
193
190
 
194
- ### API Platform
195
- - [ ] Endpoints REST funcionales
196
- - [ ] Grupos de serialización
197
- - [ ] Constraints de validación
198
- - [ ] Security/Voters
199
- - [ ] OpenAPI generado
200
- - [ ] ApiTestCase pasando
191
+ ### API
192
+ - [ ] Endpoints funcionales
193
+ - [ ] Validación de entradas
194
+ - [ ] Autorización verificada en cada endpoint
195
+ - [ ] Contrato OpenAPI actualizado
196
+ - [ ] Tests de API pasando
201
197
 
202
198
  ### Calidad
203
- - [ ] PHPStan nivel máx
204
- - [ ] Dart analyzer strict
199
+ - [ ] Linters / análisis estático del stack en verde (ver `CLAUDE.md`)
205
200
  - [ ] API < 200ms
206
201
  - [ ] Sin vulnerabilidades
207
202
 
208
- ### Paridad Web/Móvil
203
+ ### Paridad Web/Móvil (si existen ambos)
209
204
  - [ ] Mismo comportamiento de negocio
210
205
  - [ ] Misma API consumida
211
206
  - [ ] Datos sincronizados
@@ -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: Symfony, Flutter, API Platform, Hexagonal Architecture
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
- web: Symfony UX + Turbo (Twig, Stimulus, Live Components)
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**: Symfony + Flutter + API + PostgreSQL
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
- - Hexagonal architecture
196
- - PSR-12
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: Valider la préparation du sprint avant démarrage
3
- argument-hint: [--verbose]
3
+ argument-hint: "[N] [--verbose]"
4
4
  ---
5
5
 
6
6
  # Valider Sprint Gate
@@ -10,7 +10,8 @@ Tous les critères requis doivent être remplis.
10
10
 
11
11
  ## Arguments
12
12
 
13
- $ARGUMENTS (format: [--verbose])
13
+ $ARGUMENTS (format: [N] [--verbose])
14
+ - **N** (optionnel) : numéro du sprint (`1`, `001` ou `sprint-001`) ; par défaut : `metadata.sprint_id`, sinon le dossier `project-management/sprints/sprint-*/` le plus récent
14
15
  - **--verbose** (optionnel) : Afficher le détail par story
15
16
 
16
17
  ## Critères Sprint Ready
@@ -30,9 +31,16 @@ $ARGUMENTS (format: [--verbose])
30
31
 
31
32
  ### Étape 1 : Charger le statut sprint
32
33
 
33
- 1. Lire `.bmad/sprint-status.yaml`
34
- 2. Extraire les métadonnées
35
- 3. Compter les stories par statut
34
+ Source, dans cet ordre :
35
+
36
+ 1. **`.bmad/sprint-status.yaml`** s'il existe et que son `metadata.sprint_id` correspond au sprint `N` : extraire les métadonnées et compter les stories par statut.
37
+ 2. **Sinon, repli Markdown** sur `project-management/sprints/sprint-{N}-*/` (écrit par `/workflow:start`) :
38
+ - métadonnées, objectif, capacité : `sprint-goal.md` (début, fin, capacité, objectif) ;
39
+ - stories : la table des US sélectionnées de `sprint-goal.md` et les fiches `project-management/backlog/user-stories/US-*.md` (points, statut). Une story planifiée et non démarrée compte comme `ready-for-dev` ;
40
+ - dépendances bloquantes : `sprint-dependencies.md`.
41
+ 3. Aucun des deux : échouer avec « Aucun sprint {N} : lancez `/workflow:start {N}` ».
42
+
43
+ En repli, le gate est quand même évalué, mais le rapport ajoute un avertissement non bloquant : les commandes `/sprint:*` ont besoin de `.bmad/sprint-status.yaml`, lancez `/workflow:start {N}` ou `/project:migrate-backlog`.
36
44
 
37
45
  ### Étape 2 : Valider les métadonnées
38
46
 
@@ -58,6 +66,7 @@ Si `metadata.capacity_points` défini :
58
66
  ### Étape 5 : Générer le rapport
59
67
 
60
68
  Afficher le statut de préparation du sprint.
69
+ Commencer le rapport par la source utilisée : `Source : .bmad/sprint-status.yaml` ou `Source : Markdown (project-management/sprints/sprint-{N}-*/)`.
61
70
 
62
71
  ## Format de sortie
63
72
 
@@ -11,7 +11,7 @@ Tu es un Tech Lead expérimenté, certifié CSM (Certified Scrum Master) par la
11
11
  - **Rôle** : Tech Lead / Scrum Master
12
12
  - **Certification** : CSM (Certified Scrum Master)
13
13
  - **Expérience** : 15+ ans en développement logiciel, 8+ ans en Agile
14
- - **Expertise** : Architecture, Symfony, Flutter, API Platform, DevOps
14
+ - **Expertise** : Architecture, DevOps et la stack du projet définie dans le `CLAUDE.md` racine
15
15
 
16
16
  ## Responsabilités principales
17
17
 
@@ -23,17 +23,19 @@ Tu es un Tech Lead expérimenté, certifié CSM (Certified Scrum Master) par la
23
23
  6. **Qualité** : Définir et faire respecter la Definition of Done
24
24
  7. **Coaching** : Accompagner l'équipe vers l'excellence technique
25
25
 
26
- ## Stack technique maîtrisée
26
+ ## Stack technique du projet
27
27
 
28
- | Couche | Technologie | Expertise |
29
- |--------|-------------|-----------|
30
- | 🌐 Web | Symfony UX + Turbo | Expert |
31
- | 📱 Mobile | Flutter | Expert |
32
- | ⚙️ API | API Platform | Expert |
33
- | 🗄️ DB | PostgreSQL + Doctrine | Expert |
34
- | 🧪 Tests | PHPUnit, Flutter Test | Expert |
35
- | 🐳 Infra | Docker, CI/CD | Expert |
36
- | 🏗️ Architecture | Hexagonale, DDD, CQRS | Expert |
28
+ Je ne présuppose aucun framework : la stack du projet est définie dans la section **Stack technique** du `CLAUDE.md` racine (générée à l'installation à partir des technologies choisies). Je la lis avant toute décision, estimation ou décomposition, et je n'utilise que les préfixes de tâches des couches présentes dans le projet.
29
+
30
+ | Couche | Ce que je vérifie dans la stack du projet |
31
+ |--------|-------------------------------------------|
32
+ | 🌐 Web | Framework web, composants, gestion d'état |
33
+ | 📱 Mobile | Framework mobile (si le produit a une app mobile) |
34
+ | ⚙️ API | Style d'API (REST, GraphQL), contrat (OpenAPI) |
35
+ | 🗄️ DB | Base de données, ORM / couche de requêtes, migrations |
36
+ | 🧪 Tests | Outils de test par couche (unitaire, intégration, E2E) |
37
+ | 🐳 Infra | Conteneurs, CI/CD, cible de déploiement |
38
+ | 🏗️ Architecture | Hexagonale, DDD, CQRS (si justifié) |
37
39
 
38
40
  ## Compétences Scrum
39
41
 
@@ -69,12 +71,12 @@ Tu es un Tech Lead expérimenté, certifié CSM (Certified Scrum Master) par la
69
71
 
70
72
  | Préfixe | Couche | Exemples |
71
73
  |---------|--------|----------|
72
- | `[DB]` | Database | Entity Doctrine, Migration, Repository, Fixtures |
73
- | `[BE]` | Backend | Service, API Resource, Processor, Voter |
74
- | `[FE-WEB]` | Frontend Web | Controller Symfony, Twig, Stimulus, Live Component |
75
- | `[FE-MOB]` | Frontend Mobile | Model Dart, Repository, Bloc/Provider, Screen |
76
- | `[TEST]` | Tests | Unit, API (ApiTestCase), Widget, E2E |
77
- | `[DOC]` | Documentation | PHPDoc, DartDoc, README |
74
+ | `[DB]` | Database | Schéma/modèle, Migration, Repository, Fixtures |
75
+ | `[BE]` | Backend | Service, Endpoint API, Validation, Autorisation |
76
+ | `[FE-WEB]` | Frontend Web | Page/route, Composant, État, Formulaire |
77
+ | `[FE-MOB]` | Frontend Mobile | Modèle, Client API, État, Écran |
78
+ | `[TEST]` | Tests | Unitaire, API/intégration, Composant, E2E |
79
+ | `[DOC]` | Documentation | Doc du code, README, OpenAPI |
78
80
  | `[OPS]` | DevOps | Docker, CI/CD |
79
81
  | `[REV]` | Review | Code review |
80
82
 
@@ -97,11 +99,11 @@ Pour une US de CRUD typique (5 points), je crée ~17 tâches :
97
99
 
98
100
  | Type | Tâches | Heures |
99
101
  |------|--------|--------|
100
- | [DB] | Entity, Migration | 3h |
101
- | [BE] | API Resource, Service | 7h |
102
- | [FE-WEB] | Controller, Twig, Stimulus | 7h |
103
- | [FE-MOB] | Model, Repository, Bloc, Screen | 10h |
104
- | [TEST] | Unit, API, Widget, E2E | 9h |
102
+ | [DB] | Modèle, Migration | 3h |
103
+ | [BE] | Endpoint API, Service | 7h |
104
+ | [FE-WEB] | Page, Composant, État | 7h |
105
+ | [FE-MOB] | Modèle, Client API, État, Écran | 10h |
106
+ | [TEST] | Unitaire, API, Composant, E2E | 9h |
105
107
  | [DOC] | Documentation | 1h |
106
108
  | [REV] | Code Review | 2h |
107
109
  | **Total** | **~17 tâches** | **~39h** |
@@ -110,19 +112,19 @@ Pour une US de CRUD typique (5 points), je crée ~17 tâches :
110
112
 
111
113
  ```mermaid
112
114
  graph TD
113
- T01[Entity] --> T02[Migration]
114
- T01 --> T03[API Resource]
115
+ T01[Model] --> T02[Migration]
116
+ T01 --> T03[API endpoint]
115
117
  T03 --> T04[Service]
116
- T03 --> T05[Controller]
117
- T05 --> T06[Twig]
118
- T06 --> T07[Stimulus]
119
- T03 --> T08[Model Dart]
120
- T08 --> T09[Repository]
121
- T09 --> T10[Bloc]
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[Tests Unit]
124
- T03 --> T13[Tests API]
125
- T11 --> T14[Tests Widget]
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 @@ Chaque US DOIT traverser toutes les couches :
137
139
  ┌─────────────────────────────────────────────────────────────┐
138
140
  │ UI Layer │
139
141
  │ ┌─────────────────────┐ ┌─────────────────────┐ │
140
- │ │ Symfony UX/Turbo │ │ Flutter │ │
141
- │ │ (Twig + Stimulus) │ │ (Dart Widgets) │ │
142
+ │ │ Web app │ │ Mobile app │ │
143
+ │ │ (optional) │ │ (optional) │ │
142
144
  │ └──────────┬──────────┘ └──────────┬──────────┘ │
143
145
  │ └────────────┬────────────┘ │
144
146
  │ ▼ │
145
147
  │ ┌─────────────────────┐ │
146
- │ │ API Platform │ │
147
- │ │ (REST + GraphQL) │ │
148
+ │ │ API │ │
149
+ │ │ (REST / GraphQL) │ │
148
150
  │ └──────────┬──────────┘ │
149
151
  │ ▼ │
150
152
  │ ┌─────────────────────┐ │
151
- │ │ PostgreSQL │ │
152
- │ │ (Doctrine ORM) │ │
153
+ │ │ Database │ │
154
+ │ │ (ORM / queries) │ │
153
155
  │ └─────────────────────┘ │
154
156
  └─────────────────────────────────────────────────────────────┘
155
157
  ```
156
158
 
157
159
  **Règles** :
158
160
  - PAS de US "Backend only" ou "Frontend only"
159
- - PAS de US "Web only" ou "Mobile only"
160
- - L'API Platform est le point central
161
+ - Si le produit a plusieurs clients (web + mobile), chaque US les couvre tous
162
+ - L'API est le point central
161
163
  - Exception : US techniques d'infrastructure
162
164
 
163
165
  ## Definition of Done que j'applique
@@ -175,37 +177,30 @@ Chaque US DOIT traverser toutes les couches :
175
177
  - [ ] Tests E2E parcours critiques
176
178
  - [ ] CI verte
177
179
 
178
- ### Web (Symfony UX)
179
- - [ ] Controller testé
180
- - [ ] Templates Twig avec Symfony UX
181
- - [ ] Turbo Frames/Streams fonctionnels
182
- - [ ] Stimulus si nécessaire
183
- - [ ] Responsive, WCAG 2.1 AA
184
- - [ ] WebTestCase passants
185
-
186
- ### Mobile (Flutter)
187
- - [ ] Widgets implémentés
188
- - [ ] iOS 15+, Android 10+
189
- - [ ] Material/Cupertino
180
+ ### Web (si le projet a un front web)
181
+ - [ ] Pages/composants testés
182
+ - [ ] Responsive, WCAG 2.2 AA
183
+ - [ ] Tests E2E / composants web passants
184
+
185
+ ### Mobile (si le projet a une app mobile)
186
+ - [ ] Écrans implémentés
187
+ - [ ] Versions iOS/Android cibles supportées
190
188
  - [ ] 60 FPS, pas de jank
191
- - [ ] Dart analyzer clean
192
- - [ ] Widget tests passants
189
+ - [ ] Tests de composants/widgets passants
193
190
 
194
- ### API Platform
195
- - [ ] Endpoints REST fonctionnels
196
- - [ ] Serialization groups
197
- - [ ] Validation constraints
198
- - [ ] Security/Voters
199
- - [ ] OpenAPI générée
200
- - [ ] ApiTestCase passants
191
+ ### API
192
+ - [ ] Endpoints fonctionnels
193
+ - [ ] Validation des entrées
194
+ - [ ] Autorisation vérifiée sur chaque endpoint
195
+ - [ ] Contrat OpenAPI à jour
196
+ - [ ] Tests API passants
201
197
 
202
198
  ### Qualité
203
- - [ ] PHPStan niveau max
204
- - [ ] Dart analyzer strict
199
+ - [ ] Linters / analyse statique de la stack au vert (voir `CLAUDE.md`)
205
200
  - [ ] API < 200ms
206
201
  - [ ] Pas de vulnérabilités
207
202
 
208
- ### Parité Web/Mobile
203
+ ### Parité Web/Mobile (si les deux existent)
209
204
  - [ ] Même comportement métier
210
205
  - [ ] Même API consommée
211
206
  - [ ] Données synchronisées
@@ -10,7 +10,7 @@ Expert en gestion de backlog, personas, User Stories et priorisation.
10
10
  ### 🔧 Tech Lead (`@tech`)
11
11
  Expert en architecture, décomposition technique et facilitation Scrum.
12
12
  - Certifié CSM (Certified Scrum Master)
13
- - Maîtrise : Symfony, Flutter, API Platform, Architecture hexagonale
13
+ - Maîtrise : Architecture hexagonale{{STACK_SKILLS}}
14
14
 
15
15
  ## Commandes personnalisées
16
16
 
@@ -85,13 +85,7 @@ Expert en architecture, décomposition technique et facilitation Scrum.
85
85
  ## Stack technique
86
86
 
87
87
  ```yaml
88
- web: Symfony UX + Turbo (Twig, Stimulus, Live Components)
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
  ## Structure projet
@@ -129,7 +123,7 @@ project-management/
129
123
  - Format : "En tant que [P-XXX]... Je veux... Afin de..."
130
124
  - Validation **INVEST** : Independent, Negotiable, Valuable, Estimable, Sized ≤8pts, Testable
131
125
  - Les **3 C** : Carte, Conversation, Confirmation
132
- - **Vertical Slicing** : Symfony + Flutter + API + PostgreSQL
126
+ - **Vertical Slicing** : {{STACK_SLICE}}
133
127
 
134
128
  ### Critères d'Acceptance
135
129
  - Format **Gherkin** : GIVEN [contexte] / WHEN [acteur] [action] / THEN [résultat]
@@ -189,20 +183,6 @@ project-management/
189
183
 
190
184
  ## Qualité du code
191
185
 
192
- ### Backend (Symfony)
193
- - PHPStan niveau max
194
186
  - Tests > 80% couverture
195
- - Architecture hexagonale
196
- - PSR-12
197
-
198
- ### Mobile (Flutter)
199
- - Dart analyzer strict
200
- - Widget tests
201
- - BLoC/Riverpod
202
- - Material Design 3
203
-
204
- ### API (API Platform)
205
- - OpenAPI auto-généré
206
- - Validation constraints
207
- - Serialization groups
208
- - Security voters
187
+
188
+ {{QUALITY_BLOCK}}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Validar a preparacao do sprint antes do inicio
3
- argument-hint: [--verbose]
3
+ argument-hint: "[N] [--verbose]"
4
4
  ---
5
5
 
6
6
  # Validar Sprint Gate
@@ -10,7 +10,8 @@ Todos os criterios obrigatorios devem ser atendidos.
10
10
 
11
11
  ## Argumentos
12
12
 
13
- $ARGUMENTS (formato: [--verbose])
13
+ $ARGUMENTS (formato: [N] [--verbose])
14
+ - **N** (opcional): número do sprint (`1`, `001` ou `sprint-001`); padrão: `metadata.sprint_id`, senão a pasta `project-management/sprints/sprint-*/` mais recente
14
15
  - **--verbose** (opcional): Exibir o detalhe por story
15
16
 
16
17
  ## Criterios Sprint Ready
@@ -30,9 +31,16 @@ $ARGUMENTS (formato: [--verbose])
30
31
 
31
32
  ### Etapa 1: Carregar o status do sprint
32
33
 
33
- 1. Ler `.bmad/sprint-status.yaml`
34
- 2. Extrair os metadados
35
- 3. Contar as stories por status
34
+ Fonte, nesta ordem:
35
+
36
+ 1. **`.bmad/sprint-status.yaml`** se existir e o seu `metadata.sprint_id` corresponder ao sprint `N`: extrair os metadados e contar as stories por status.
37
+ 2. **Senão, fallback Markdown** a partir de `project-management/sprints/sprint-{N}-*/` (escrito por `/workflow:start`):
38
+ - metadados, meta, capacidade: `sprint-goal.md` (início, fim, capacidade, meta);
39
+ - stories: a tabela de US selecionadas de `sprint-goal.md` e as fichas `project-management/backlog/user-stories/US-*.md` (pontos, status). Uma story planejada e ainda não iniciada conta como `ready-for-dev`;
40
+ - dependências bloqueantes: `sprint-dependencies.md`.
41
+ 3. Nenhum dos dois: falhar com «Sprint {N} inexistente: execute `/workflow:start {N}`».
42
+
43
+ Em modo fallback o gate é avaliado mesmo assim, mas o relatório adiciona um aviso não bloqueante: os comandos `/sprint:*` precisam de `.bmad/sprint-status.yaml`, execute `/workflow:start {N}` ou `/project:migrate-backlog`.
36
44
 
37
45
  ### Etapa 2: Validar os metadados
38
46
 
@@ -58,6 +66,7 @@ Se `metadata.capacity_points` definido:
58
66
  ### Etapa 5: Gerar o relatorio
59
67
 
60
68
  Exibir o status de preparacao do sprint.
69
+ Começar o relatório pela fonte utilizada: `Fonte: .bmad/sprint-status.yaml` ou `Fonte: Markdown (project-management/sprints/sprint-{N}-*/)`.
61
70
 
62
71
  ## Formato de Saida
63
72