@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
|
@@ -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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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 :
|
|
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
|
|
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:
|
|
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
|
║ ║
|