@the-bearded-bear/claude-craft 8.23.0 → 8.23.1-next.ad6e04e

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
@@ -0,0 +1,92 @@
1
+ # Agents disponibles pour ce projet
2
+
3
+ > Ce fichier liste les agents Claude Code installes via claude-craft.
4
+ > Format compatible avec le standard emergent AGENTS.md (https://agents.md).
5
+
6
+ ## Comment utiliser
7
+
8
+ - Invoque un agent dans Claude Code : `@nom-agent <ta demande>`
9
+ - Liste complete : voir `.claude/agents/`
10
+ - Documentation : voir `docs/AGENTS.md`
11
+
12
+ ## Agents par categorie
13
+
14
+ ### Architecture et design
15
+
16
+ - `@api-designer` — Conception API REST/GraphQL, OpenAPI 3.1.1, GraphQL Federation
17
+ - `@database-architect` — Conception et optimisation BDD (PostgreSQL, MySQL, schemas)
18
+ - `@refactoring-specialist` — Refactoring sur, patterns SOLID, extraction methode
19
+ - `@ui-designer` — Design systems, Tailwind, design tokens
20
+ - `@ux-ergonome` — Ergonomie cognitive, user flows, heuristiques
21
+
22
+ ### Code review (par stack)
23
+
24
+ - `@symfony-reviewer` — Symfony 8.1 / PHP 8.4+ (8.5 recommandé), DDD, Doctrine, API Platform
25
+ - `@laravel-reviewer` — Laravel 13 / PHP 8.5, Pest 4/5, Eloquent, Sanctum
26
+ - `@react-reviewer` — React 19.3 + Compiler 1.0, TypeScript, hooks, bundle analysis
27
+ - `@vuejs-reviewer` — Vue 3.5+, Composition API, Pinia 4, Vitest 5
28
+ - `@angular-reviewer` — Angular 22, Signals, Standalone, Zoneless par défaut
29
+ - `@flutter-reviewer` — Flutter 3.47 / Dart 3.13, BLoC v9, Riverpod 3
30
+ - `@reactnative-reviewer` — React Native 0.87 New Architecture (JSI, TurboModules)
31
+ - `@python-reviewer` — Python 3.15 / 3.14+, FastAPI, Pydantic v2, async correctness
32
+ - `@csharp-reviewer` — C# 14 / .NET 10, Clean Architecture, CQRS, EF Core
33
+ - `@php-reviewer` — PHP 8.5, Property Hooks, PER-CS 3.0, PHPStan level max, Pest 5
34
+ - `@paperclip-reviewer` — Paperclip 2026.x, governance-first, Node.js + PostgreSQL
35
+ - `@vite-reviewer` — Vite 8.x framework-agnostic : apps vanilla JS/TS, `build.lib`, multi-pages, Workers/WASM
36
+ - `@vercel-reviewer` — Vercel : `vercel.json`, Functions (Node.js/Fluid Compute), ISR, Cron Jobs, Storage
37
+
38
+ ### Test et qualite
39
+
40
+ - `@tdd-coach` — Coach TDD/BDD (red/green/refactor), Gherkin
41
+ - `@performance-auditor` — Profilage, optimisation, bundle size, Core Web Vitals
42
+
43
+ ### Securite
44
+
45
+ - `@security-auditor` — Audit OWASP Top 10:2025, SAST, secrets detection, authZ/N
46
+
47
+ ### Operations
48
+
49
+ - `@devops-engineer` — Docker, K8s, OpenTofu, Ansible, Coolify, FrankenPHP
50
+ - `@observability-engineer` — OpenTelemetry, traces, structured logs, metrics
51
+ - `@chaos-engineer` — Resilience testing, Litmus, Gremlin, fault injection
52
+ - `@migration-specialist` — Schema migrations zero-downtime, version upgrades
53
+ - `@cost-optimizer` — FinOps, right-sizing, caching, LLM token reduction
54
+
55
+ ### Donnees et ML
56
+
57
+ - `@data-analyst` — SQL optimization, metrics design, BI dashboards
58
+ - `@mlops-engineer` — ML pipelines, MLflow, Kubeflow, feature stores
59
+
60
+ ### Accessibilite
61
+
62
+ - `@accessibility-expert` — Audit WCAG 2.2 AAA, ARIA, keyboard navigation
63
+
64
+ ### Developer experience
65
+
66
+ - `@devex-engineer` — CLI design, onboarding, tooling, DX metrics
67
+ - `@research-assistant` — Recherche technique, documentation, veille
68
+
69
+ ### Orchestration
70
+
71
+ - `@uiux-orchestrator` — Coordination UI/UX (designer + ergonome + a11y)
72
+ - `@ralph-conductor` — Sessions Ralph Wiggum continues avec DoD adaptative
73
+
74
+ ## Frontmatter recommande
75
+
76
+ Pour personnaliser un agent local, override via frontmatter dans `.claude/agents/<nom>.md` :
77
+
78
+ ```yaml
79
+ ---
80
+ model: claude-haiku-5-5 # economiser tokens pour reviewers read-only
81
+ effort: low # ou medium / high
82
+ maxTurns: 20 # limite anti-runaway
83
+ disallowedTools: [Bash] # securite : pas d execution shell
84
+ context: fork # isoler le contexte (skills lourds)
85
+ ---
86
+ ```
87
+
88
+ ## En savoir plus
89
+
90
+ - Documentation complete : [docs/AGENTS.md](docs/AGENTS.md)
91
+ - Standard AGENTS.md : https://agents.md
92
+ - claude-craft : https://github.com/TheBeardedBearSAS/claude-craft
@@ -18,19 +18,10 @@
18
18
  "Write",
19
19
  "Glob",
20
20
  "Grep",
21
+ "__STACK_PERMISSIONS__",
21
22
  "Bash(git:*)",
22
- "Bash(npm run:*)",
23
- "Bash(npm test:*)",
24
- "Bash(pnpm:*)",
25
- "Bash(yarn:*)",
26
- "Bash(composer:*)",
27
- "Bash(php bin/console:*)",
28
- "Bash(php artisan:*)",
29
- "Bash(dotnet:*)",
30
23
  "Bash(make:*)",
31
- "Bash(docker compose:*)",
32
- "Bash(flutter:*)",
33
- "Bash(ng:*)"
24
+ "Bash(docker compose:*)"
34
25
  ],
35
26
  "deny": [
36
27
  "Bash(rm -rf:*)",
@@ -40,7 +40,7 @@ $ARGUMENTS
40
40
  - `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` gesetzt
41
41
  - `gh` CLI authentifiziert (PR erstellen / Prüfungen / Merge)
42
42
  - Docker verfügbar (alle Tests laufen über Docker — siehe Projekt-CLAUDE.md)
43
- - BMAD v6-Projekt mit vorhandener `.bmad/sprint-status.yaml`
43
+ - BMAD v6-Projekt: `.bmad/sprint-status.yaml` wird bei Bedarf von `/workflow:start` (Phase 1) angelegt
44
44
 
45
45
  > Falls eine Voraussetzung fehlt, sofort mit einer klaren, handlungsorientierten Meldung abbrechen. Eine Phase nicht stillschweigend überspringen.
46
46
 
@@ -224,7 +224,43 @@ Punkte |
224
224
  {Sprint Planning Notizen, getroffene Entscheidungen...}
225
225
  ```
226
226
 
227
- ### Schritt 6: Finale Checkliste
227
+ ### Schritt 6: `.bmad/sprint-status.yaml` synchronisieren
228
+
229
+ `/gate:validate-sprint` und die `/sprint:*`-Befehle lesen den Sprint aus `.bmad/sprint-status.yaml`. Die Datei jetzt aus der obigen `sprint-goal.md` und den ausgewählten US-Dateien (`project-management/backlog/user-stories/US-*.md`) schreiben:
230
+
231
+ 1. `.bmad/` anlegen, falls nicht vorhanden.
232
+ 2. `metadata`: `sprint_id` (`sprint-{N}`), `name`, `start_date`, `end_date`, `goal`, `capacity_points`, aus `sprint-goal.md` übernommen.
233
+ 3. `stories`: ein Eintrag pro ausgewählter US: `title`, `status: ready-for-dev`, `story_points`, `epic_id`, `priority` (MoSCoW), `dependencies`, `tasks`, `history: []`.
234
+ 4. Datei für **dieselbe** `sprint_id` bereits vorhanden: bestehende Status beibehalten (eine Story nie zurücksetzen) und nur neue US ergänzen.
235
+ 5. Datei für einen **anderen** Sprint vorhanden: zuerst deren Stories nach `archived_sprints.<alte sprint_id>` (`status`, `points`) verschieben, dann den neuen Sprint schreiben.
236
+
237
+ ```yaml
238
+ # .bmad/sprint-status.yaml
239
+ version: "1.0"
240
+ metadata:
241
+ sprint_id: "sprint-2"
242
+ name: "Benutzerverwaltung"
243
+ start_date: "2026-11-02"
244
+ end_date: "2026-11-13"
245
+ goal: "Benutzer können sich registrieren, anmelden und ihr Profil bearbeiten"
246
+ capacity_points: 21
247
+ stories:
248
+ US-010:
249
+ title: "Benutzerregistrierung"
250
+ status: "ready-for-dev"
251
+ story_points: 5
252
+ epic_id: "EPIC-002"
253
+ priority: "must"
254
+ dependencies: ["US-001"]
255
+ tasks: { total: 0, completed: 0, list: [] }
256
+ history: []
257
+ archived_sprints:
258
+ sprint-1:
259
+ stories:
260
+ US-001: { status: "done", points: 5 }
261
+ ```
262
+
263
+ ### Schritt 7: Finale Checkliste
228
264
 
229
265
  ```
230
266
  ══════════════════════════════════════════════════════════════
@@ -291,6 +327,9 @@ Punkte |
291
327
  ║ NÄCHSTER SCHRITT ║
292
328
  ╠══════════════════════════════════════════════════════════╣
293
329
  ║ ║
330
+ ║ → /gate:validate-sprint {N} ║
331
+ ║ Prüfen, ob der Sprint bereit ist (Gate) ║
332
+ ║ ║
294
333
  ║ → /sprint:next-story ║
295
334
  ║ Erste Story aus dem Sprint-Backlog auswählen ║
296
335
  ║ ║
@@ -18,19 +18,10 @@
18
18
  "Write",
19
19
  "Glob",
20
20
  "Grep",
21
+ "__STACK_PERMISSIONS__",
21
22
  "Bash(git:*)",
22
- "Bash(npm run:*)",
23
- "Bash(npm test:*)",
24
- "Bash(pnpm:*)",
25
- "Bash(yarn:*)",
26
- "Bash(composer:*)",
27
- "Bash(php bin/console:*)",
28
- "Bash(php artisan:*)",
29
- "Bash(dotnet:*)",
30
23
  "Bash(make:*)",
31
- "Bash(docker compose:*)",
32
- "Bash(flutter:*)",
33
- "Bash(ng:*)"
24
+ "Bash(docker compose:*)"
34
25
  ],
35
26
  "deny": [
36
27
  "Bash(rm -rf:*)",
@@ -40,7 +40,7 @@ $ARGUMENTS
40
40
  - `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` set
41
41
  - `gh` CLI authenticated (PR create / checks / merge)
42
42
  - Docker available (all tests run via Docker — see project CLAUDE.md)
43
- - BMAD v6 project with `.bmad/sprint-status.yaml` present
43
+ - BMAD v6 project: `.bmad/sprint-status.yaml` is created by `/workflow:start` (phase 1) if missing
44
44
 
45
45
  > If a prerequisite is missing, abort early with a clear, actionable message. Do not silently skip a phase.
46
46
 
@@ -224,7 +224,43 @@ Points |
224
224
  {Sprint planning notes, decisions made...}
225
225
  ```
226
226
 
227
- ### Step 6: Final Checklist
227
+ ### Step 6: Sync `.bmad/sprint-status.yaml`
228
+
229
+ `/gate:validate-sprint` and the `/sprint:*` commands read the sprint from `.bmad/sprint-status.yaml`. Write it now from the `sprint-goal.md` above and the selected US files (`project-management/backlog/user-stories/US-*.md`):
230
+
231
+ 1. Create `.bmad/` if missing.
232
+ 2. `metadata`: `sprint_id` (`sprint-{N}`), `name`, `start_date`, `end_date`, `goal`, `capacity_points`, taken from `sprint-goal.md`.
233
+ 3. `stories`: one entry per selected US: `title`, `status: ready-for-dev`, `story_points`, `epic_id`, `priority` (MoSCoW), `dependencies`, `tasks`, `history: []`.
234
+ 4. File already present for the **same** `sprint_id`: keep the existing statuses (never move a story back) and only add the new US.
235
+ 5. File present for **another** sprint: first move its stories under `archived_sprints.<old sprint_id>` (`status`, `points`), then write the new sprint.
236
+
237
+ ```yaml
238
+ # .bmad/sprint-status.yaml
239
+ version: "1.0"
240
+ metadata:
241
+ sprint_id: "sprint-2"
242
+ name: "User management"
243
+ start_date: "2026-11-02"
244
+ end_date: "2026-11-13"
245
+ goal: "Users can sign up, log in and edit their profile"
246
+ capacity_points: 21
247
+ stories:
248
+ US-010:
249
+ title: "User sign-up"
250
+ status: "ready-for-dev"
251
+ story_points: 5
252
+ epic_id: "EPIC-002"
253
+ priority: "must"
254
+ dependencies: ["US-001"]
255
+ tasks: { total: 0, completed: 0, list: [] }
256
+ history: []
257
+ archived_sprints:
258
+ sprint-1:
259
+ stories:
260
+ US-001: { status: "done", points: 5 }
261
+ ```
262
+
263
+ ### Step 7: Final Checklist
228
264
 
229
265
  ```
230
266
  ══════════════════════════════════════════════════════════════
@@ -291,6 +327,9 @@ Points |
291
327
  ║ NEXT STEP ║
292
328
  ╠══════════════════════════════════════════════════════════╣
293
329
  ║ ║
330
+ ║ → /gate:validate-sprint {N} ║
331
+ ║ Check the sprint is ready (gate) ║
332
+ ║ ║
294
333
  ║ → /sprint:next-story ║
295
334
  ║ Pick the first story from the sprint backlog ║
296
335
  ║ ║
@@ -18,19 +18,10 @@
18
18
  "Write",
19
19
  "Glob",
20
20
  "Grep",
21
+ "__STACK_PERMISSIONS__",
21
22
  "Bash(git:*)",
22
- "Bash(npm run:*)",
23
- "Bash(npm test:*)",
24
- "Bash(pnpm:*)",
25
- "Bash(yarn:*)",
26
- "Bash(composer:*)",
27
- "Bash(php bin/console:*)",
28
- "Bash(php artisan:*)",
29
- "Bash(dotnet:*)",
30
23
  "Bash(make:*)",
31
- "Bash(docker compose:*)",
32
- "Bash(flutter:*)",
33
- "Bash(ng:*)"
24
+ "Bash(docker compose:*)"
34
25
  ],
35
26
  "deny": [
36
27
  "Bash(rm -rf:*)",
@@ -40,7 +40,7 @@ $ARGUMENTS
40
40
  - `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` configurado
41
41
  - CLI `gh` autenticada (creación de PR / checks / merge)
42
42
  - Docker disponible (todos los tests se ejecutan vía Docker — ver CLAUDE.md del proyecto)
43
- - Proyecto BMAD v6 con `.bmad/sprint-status.yaml` presente
43
+ - Proyecto BMAD v6: `/workflow:start` (fase 1) crea `.bmad/sprint-status.yaml` si no existe
44
44
 
45
45
  > Si falta algún requisito previo, abortar de inmediato con un mensaje claro y accionable. No omitir ninguna fase en silencio.
46
46
 
@@ -224,7 +224,43 @@ Puntos |
224
224
  {Notas del sprint planning, decisiones tomadas...}
225
225
  ```
226
226
 
227
- ### Paso 6: Lista de Verificación Final
227
+ ### Paso 6: Sincronizar `.bmad/sprint-status.yaml`
228
+
229
+ `/gate:validate-sprint` y los comandos `/sprint:*` leen el sprint en `.bmad/sprint-status.yaml`. Escríbelo ahora a partir del `sprint-goal.md` anterior y de las fichas US seleccionadas (`project-management/backlog/user-stories/US-*.md`):
230
+
231
+ 1. Crear `.bmad/` si no existe.
232
+ 2. `metadata`: `sprint_id` (`sprint-{N}`), `name`, `start_date`, `end_date`, `goal`, `capacity_points`, tomados de `sprint-goal.md`.
233
+ 3. `stories`: una entrada por US seleccionada: `title`, `status: ready-for-dev`, `story_points`, `epic_id`, `priority` (MoSCoW), `dependencies`, `tasks`, `history: []`.
234
+ 4. Archivo ya presente para el **mismo** `sprint_id`: conservar los estados existentes (nunca hacer retroceder una story) y añadir solo las nuevas US.
235
+ 5. Archivo presente para **otro** sprint: mover primero sus stories a `archived_sprints.<sprint_id anterior>` (`status`, `points`) y luego escribir el nuevo sprint.
236
+
237
+ ```yaml
238
+ # .bmad/sprint-status.yaml
239
+ version: "1.0"
240
+ metadata:
241
+ sprint_id: "sprint-2"
242
+ name: "Gestión de usuarios"
243
+ start_date: "2026-11-02"
244
+ end_date: "2026-11-13"
245
+ goal: "Los usuarios pueden registrarse, iniciar sesión y editar su perfil"
246
+ capacity_points: 21
247
+ stories:
248
+ US-010:
249
+ title: "Registro de usuario"
250
+ status: "ready-for-dev"
251
+ story_points: 5
252
+ epic_id: "EPIC-002"
253
+ priority: "must"
254
+ dependencies: ["US-001"]
255
+ tasks: { total: 0, completed: 0, list: [] }
256
+ history: []
257
+ archived_sprints:
258
+ sprint-1:
259
+ stories:
260
+ US-001: { status: "done", points: 5 }
261
+ ```
262
+
263
+ ### Paso 7: Lista de Verificación Final
228
264
 
229
265
  ```
230
266
  ══════════════════════════════════════════════════════════════
@@ -291,6 +327,9 @@ Puntos |
291
327
  ║ SIGUIENTE PASO ║
292
328
  ╠══════════════════════════════════════════════════════════╣
293
329
  ║ ║
330
+ ║ → /gate:validate-sprint {N} ║
331
+ ║ Verificar que el sprint está listo (gate) ║
332
+ ║ ║
294
333
  ║ → /sprint:next-story ║
295
334
  ║ Tomar la primera story del sprint backlog ║
296
335
  ║ ║
@@ -18,19 +18,10 @@
18
18
  "Write",
19
19
  "Glob",
20
20
  "Grep",
21
+ "__STACK_PERMISSIONS__",
21
22
  "Bash(git:*)",
22
- "Bash(npm run:*)",
23
- "Bash(npm test:*)",
24
- "Bash(pnpm:*)",
25
- "Bash(yarn:*)",
26
- "Bash(composer:*)",
27
- "Bash(php bin/console:*)",
28
- "Bash(php artisan:*)",
29
- "Bash(dotnet:*)",
30
23
  "Bash(make:*)",
31
- "Bash(docker compose:*)",
32
- "Bash(flutter:*)",
33
- "Bash(ng:*)"
24
+ "Bash(docker compose:*)"
34
25
  ],
35
26
  "deny": [
36
27
  "Bash(rm -rf:*)",
@@ -40,7 +40,7 @@ $ARGUMENTS
40
40
  - `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` défini
41
41
  - CLI `gh` authentifié (création de PR / checks / merge)
42
42
  - Docker disponible (tous les tests s'exécutent via Docker — voir le CLAUDE.md du projet)
43
- - Projet BMAD v6 avec `.bmad/sprint-status.yaml` présent
43
+ - Projet BMAD v6 : `.bmad/sprint-status.yaml` est créé par `/workflow:start` (phase 1) s'il n'existe pas
44
44
 
45
45
  > Si un prérequis est manquant, abandonner immédiatement avec un message clair et actionnable. Ne jamais ignorer silencieusement une phase.
46
46
 
@@ -224,7 +224,43 @@ Points |
224
224
  {Notes de sprint planning, décisions prises...}
225
225
  ```
226
226
 
227
- ### Étape 6 : Checklist Finale
227
+ ### Étape 6 : Synchroniser `.bmad/sprint-status.yaml`
228
+
229
+ `/gate:validate-sprint` et les commandes `/sprint:*` lisent le sprint dans `.bmad/sprint-status.yaml`. L'écrire maintenant à partir du `sprint-goal.md` ci-dessus et des fiches US sélectionnées (`project-management/backlog/user-stories/US-*.md`) :
230
+
231
+ 1. Créer `.bmad/` s'il n'existe pas.
232
+ 2. `metadata` : `sprint_id` (`sprint-{N}`), `name`, `start_date`, `end_date`, `goal`, `capacity_points`, repris de `sprint-goal.md`.
233
+ 3. `stories` : une entrée par US sélectionnée : `title`, `status: ready-for-dev`, `story_points`, `epic_id`, `priority` (MoSCoW), `dependencies`, `tasks`, `history: []`.
234
+ 4. Fichier déjà présent pour le **même** `sprint_id` : conserver les statuts existants (ne jamais faire reculer une story) et n'ajouter que les nouvelles US.
235
+ 5. Fichier présent pour un **autre** sprint : déplacer d'abord ses stories sous `archived_sprints.<ancien sprint_id>` (`status`, `points`), puis écrire le nouveau sprint.
236
+
237
+ ```yaml
238
+ # .bmad/sprint-status.yaml
239
+ version: "1.0"
240
+ metadata:
241
+ sprint_id: "sprint-2"
242
+ name: "Gestion des utilisateurs"
243
+ start_date: "2026-11-02"
244
+ end_date: "2026-11-13"
245
+ goal: "Les utilisateurs peuvent s'inscrire, se connecter et modifier leur profil"
246
+ capacity_points: 21
247
+ stories:
248
+ US-010:
249
+ title: "Inscription utilisateur"
250
+ status: "ready-for-dev"
251
+ story_points: 5
252
+ epic_id: "EPIC-002"
253
+ priority: "must"
254
+ dependencies: ["US-001"]
255
+ tasks: { total: 0, completed: 0, list: [] }
256
+ history: []
257
+ archived_sprints:
258
+ sprint-1:
259
+ stories:
260
+ US-001: { status: "done", points: 5 }
261
+ ```
262
+
263
+ ### Étape 7 : Checklist Finale
228
264
 
229
265
  ```
230
266
  ══════════════════════════════════════════════════════════════
@@ -291,6 +327,9 @@ Points |
291
327
  ║ PROCHAINE ÉTAPE ║
292
328
  ╠══════════════════════════════════════════════════════════╣
293
329
  ║ ║
330
+ ║ → /gate:validate-sprint {N} ║
331
+ ║ Vérifier que le sprint est prêt (gate) ║
332
+ ║ ║
294
333
  ║ → /sprint:next-story ║
295
334
  ║ Prendre la première story du sprint backlog ║
296
335
  ║ ║
@@ -18,19 +18,10 @@
18
18
  "Write",
19
19
  "Glob",
20
20
  "Grep",
21
+ "__STACK_PERMISSIONS__",
21
22
  "Bash(git:*)",
22
- "Bash(npm run:*)",
23
- "Bash(npm test:*)",
24
- "Bash(pnpm:*)",
25
- "Bash(yarn:*)",
26
- "Bash(composer:*)",
27
- "Bash(php bin/console:*)",
28
- "Bash(php artisan:*)",
29
- "Bash(dotnet:*)",
30
23
  "Bash(make:*)",
31
- "Bash(docker compose:*)",
32
- "Bash(flutter:*)",
33
- "Bash(ng:*)"
24
+ "Bash(docker compose:*)"
34
25
  ],
35
26
  "deny": [
36
27
  "Bash(rm -rf:*)",
@@ -40,7 +40,7 @@ $ARGUMENTS
40
40
  - `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` definido
41
41
  - CLI `gh` autenticado (criação de PR / verificações / merge)
42
42
  - Docker disponível (todos os testes são executados via Docker — veja o CLAUDE.md do projeto)
43
- - Projeto BMAD v6 com `.bmad/sprint-status.yaml` presente
43
+ - Projeto BMAD v6: `.bmad/sprint-status.yaml` é criado por `/workflow:start` (fase 1) se não existir
44
44
 
45
45
  > Se um pré-requisito estiver ausente, aborte imediatamente com uma mensagem clara e acionável. Não pule uma fase silenciosamente.
46
46
 
@@ -224,7 +224,43 @@ Pontos |
224
224
  {Notas do sprint planning, decisões tomadas...}
225
225
  ```
226
226
 
227
- ### Etapa 6: Checklist Final
227
+ ### Etapa 6: Sincronizar `.bmad/sprint-status.yaml`
228
+
229
+ `/gate:validate-sprint` e os comandos `/sprint:*` leem o sprint em `.bmad/sprint-status.yaml`. Escreva-o agora a partir do `sprint-goal.md` acima e das fichas US selecionadas (`project-management/backlog/user-stories/US-*.md`):
230
+
231
+ 1. Criar `.bmad/` se não existir.
232
+ 2. `metadata`: `sprint_id` (`sprint-{N}`), `name`, `start_date`, `end_date`, `goal`, `capacity_points`, retirados de `sprint-goal.md`.
233
+ 3. `stories`: uma entrada por US selecionada: `title`, `status: ready-for-dev`, `story_points`, `epic_id`, `priority` (MoSCoW), `dependencies`, `tasks`, `history: []`.
234
+ 4. Arquivo já presente para o **mesmo** `sprint_id`: manter os status existentes (nunca fazer uma story retroceder) e adicionar apenas as novas US.
235
+ 5. Arquivo presente para **outro** sprint: mover primeiro as suas stories para `archived_sprints.<sprint_id anterior>` (`status`, `points`) e depois escrever o novo sprint.
236
+
237
+ ```yaml
238
+ # .bmad/sprint-status.yaml
239
+ version: "1.0"
240
+ metadata:
241
+ sprint_id: "sprint-2"
242
+ name: "Gestão de usuários"
243
+ start_date: "2026-11-02"
244
+ end_date: "2026-11-13"
245
+ goal: "Os usuários podem se cadastrar, entrar e editar o seu perfil"
246
+ capacity_points: 21
247
+ stories:
248
+ US-010:
249
+ title: "Cadastro de usuário"
250
+ status: "ready-for-dev"
251
+ story_points: 5
252
+ epic_id: "EPIC-002"
253
+ priority: "must"
254
+ dependencies: ["US-001"]
255
+ tasks: { total: 0, completed: 0, list: [] }
256
+ history: []
257
+ archived_sprints:
258
+ sprint-1:
259
+ stories:
260
+ US-001: { status: "done", points: 5 }
261
+ ```
262
+
263
+ ### Etapa 7: Checklist Final
228
264
 
229
265
  ```
230
266
  ══════════════════════════════════════════════════════════════
@@ -291,6 +327,9 @@ Pontos |
291
327
  ║ PRÓXIMO PASSO ║
292
328
  ╠══════════════════════════════════════════════════════════╣
293
329
  ║ ║
330
+ ║ → /gate:validate-sprint {N} ║
331
+ ║ Verificar se o sprint está pronto (gate) ║
332
+ ║ ║
294
333
  ║ → /sprint:next-story ║
295
334
  ║ Pegar a primeira story do sprint backlog ║
296
335
  ║ ║