@the-bearded-bear/claude-craft 8.23.0 → 8.23.1-next.6e7d46b
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/rules/12-context-management.md +4 -2
- 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/rules/12-context-management.md +4 -2
- 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/rules/12-context-management.md +4 -2
- 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/rules/12-context-management.md +4 -2
- 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/rules/12-context-management.md +4 -2
- 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
|
|
@@ -492,12 +492,14 @@ Bei der Kompaktierung immer erhalten:
|
|
|
492
492
|
|
|
493
493
|
| Variable | Beschreibung |
|
|
494
494
|
|----------|-------------|
|
|
495
|
-
| `CLAUDE_CODE_SUBAGENT_MODEL` | **Standard**-Modell für nicht typisierte Sub-Agents (z. B. `sonnet`). **
|
|
495
|
+
| `CLAUDE_CODE_SUBAGENT_MODEL` | **Standard**-Modell für nicht typisierte Sub-Agents (z. B. `sonnet`). **Seit Claude Code 2.1.251** hat das `model:`-Frontmatter eines Agents Vorrang: die 11 Reviewer mit `model: haiku` bleiben auf Haiku. **Vor 2.1.251 war es umgekehrt** — diese Variable überschrieb das Frontmatter. |
|
|
496
496
|
| `CLAUDE_CODE_FORK_SUBAGENT` | `1`, um den Kontext von Sub-Agents zu isolieren (Forked Subagents, v2.1.117+) |
|
|
497
497
|
| `ENABLE_PROMPT_CACHING_1H` / `FORCE_PROMPT_CACHING_5M` | Prompt-Caching verlängern/erzwingen (−40 % bei wiederholenden Sitzungen) |
|
|
498
498
|
| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Auf `1` setzen, um automatischen Speicher zu deaktivieren |
|
|
499
499
|
|
|
500
|
-
> **Modell-Vorrang
|
|
500
|
+
> **Modell-Vorrang — gültig seit Claude Code 2.1.251:** `model:` aus dem Aufruf > `model:` im Agent-Frontmatter (wobei `inherit` das Modell der Hauptkonversation übernimmt) > `CLAUDE_CODE_SUBAGENT_MODEL` > Sitzungsmodell.
|
|
501
|
+
>
|
|
502
|
+
> **⚠️ Vor 2.1.251 war die Reihenfolge umgekehrt:** `CLAUDE_CODE_SUBAGENT_MODEL` stand an erster Stelle und überschrieb sowohl den Aufrufparameter als auch das Frontmatter, einschließlich `model: inherit`. Auf diesen Versionen liefen die `model: haiku`-Reviewer mit `SUBAGENT_MODEL=sonnet` tatsächlich auf Sonnet — das Gegenteil der Absicht. Prüfe `claude --version`, bevor du dich auf diese Tabelle verlässt. Quelle: [Sub-Agents-Doku](https://code.claude.com/docs/en/sub-agents).
|
|
501
503
|
|
|
502
504
|
---
|
|
503
505
|
|
|
@@ -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
|
║ ║
|
|
@@ -492,12 +492,14 @@ During compaction, always preserve:
|
|
|
492
492
|
|
|
493
493
|
| Variable | Description |
|
|
494
494
|
|----------|-------------|
|
|
495
|
-
| `CLAUDE_CODE_SUBAGENT_MODEL` | **Default** model for untyped sub-agents (e.g., `sonnet`). **
|
|
495
|
+
| `CLAUDE_CODE_SUBAGENT_MODEL` | **Default** model for untyped sub-agents (e.g., `sonnet`). **Since Claude Code 2.1.251**, agent frontmatter `model:` takes precedence: the 11 reviewers with `model: haiku` stay on Haiku. **Before 2.1.251 it was the other way round** — this variable overrode the frontmatter. |
|
|
496
496
|
| `CLAUDE_CODE_FORK_SUBAGENT` | `1` to isolate sub-agent contexts (forked subagents, v2.1.117+) |
|
|
497
497
|
| `ENABLE_PROMPT_CACHING_1H` / `FORCE_PROMPT_CACHING_5M` | Extend/force prompt caching (−40% on repetitive sessions) |
|
|
498
498
|
| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Set to `1` to disable automatic memory |
|
|
499
499
|
|
|
500
|
-
> **Model precedence
|
|
500
|
+
> **Model precedence — valid since Claude Code 2.1.251:** per-invocation `model:` > agent frontmatter `model:` (where `inherit` picks the main conversation's model) > `CLAUDE_CODE_SUBAGENT_MODEL` > session model.
|
|
501
|
+
>
|
|
502
|
+
> **⚠️ Before 2.1.251 the order was reversed:** `CLAUDE_CODE_SUBAGENT_MODEL` came first and overrode both the per-invocation parameter and the frontmatter, including `model: inherit`. On those versions `SUBAGENT_MODEL=sonnet` really did run the `model: haiku` reviewers on Sonnet — the opposite of the intent. Check `claude --version` before relying on this table. Source: [sub-agents docs](https://code.claude.com/docs/en/sub-agents).
|
|
501
503
|
|
|
502
504
|
---
|
|
503
505
|
|
|
@@ -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
|
║ ║
|
|
@@ -492,12 +492,14 @@ Durante la compactacion, siempre preservar:
|
|
|
492
492
|
|
|
493
493
|
| Variable | Descripción |
|
|
494
494
|
|----------|-------------|
|
|
495
|
-
| `CLAUDE_CODE_SUBAGENT_MODEL` | Modelo **por defecto** para sub-agentes sin tipo (ej: `sonnet`). **
|
|
495
|
+
| `CLAUDE_CODE_SUBAGENT_MODEL` | Modelo **por defecto** para sub-agentes sin tipo (ej: `sonnet`). **Desde Claude Code 2.1.251**, el frontmatter `model:` de un agente tiene precedencia: los 11 reviewers con `model: haiku` permanecen en Haiku. **Antes de 2.1.251 era al revés** — esta variable sobrescribía el frontmatter. |
|
|
496
496
|
| `CLAUDE_CODE_FORK_SUBAGENT` | `1` para aislar el contexto de los sub-agentes (forked subagents, v2.1.117+) |
|
|
497
497
|
| `ENABLE_PROMPT_CACHING_1H` / `FORCE_PROMPT_CACHING_5M` | Ampliar/forzar el prompt caching (−40 % en sesiones repetitivas) |
|
|
498
498
|
| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Poner a `1` para desactivar la memoria automática |
|
|
499
499
|
|
|
500
|
-
> **Precedencia de modelos
|
|
500
|
+
> **Precedencia de modelos — válida desde Claude Code 2.1.251:** `model:` pasado en la invocación > `model:` del frontmatter del agente (donde `inherit` toma el modelo de la conversación) > `CLAUDE_CODE_SUBAGENT_MODEL` > modelo de sesión.
|
|
501
|
+
>
|
|
502
|
+
> **⚠️ Antes de 2.1.251 el orden era el inverso:** `CLAUDE_CODE_SUBAGENT_MODEL` iba primero y sobrescribía tanto el parámetro de invocación como el frontmatter, incluido `model: inherit`. En esas versiones, `SUBAGENT_MODEL=sonnet` sí ejecutaba en Sonnet los reviewers `model: haiku` — lo contrario de la intención. Comprueba `claude --version` antes de fiarte de esta tabla. Fuente: [documentación de sub-agents](https://code.claude.com/docs/en/sub-agents).
|
|
501
503
|
|
|
502
504
|
---
|
|
503
505
|
|
|
@@ -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
|
║ ║
|
|
@@ -492,12 +492,14 @@ Lors de la compaction, toujours preserver:
|
|
|
492
492
|
|
|
493
493
|
| Variable | Description |
|
|
494
494
|
|----------|-------------|
|
|
495
|
-
| `CLAUDE_CODE_SUBAGENT_MODEL` | Modèle **par défaut** des sous-agents non typés (ex : `sonnet`). **
|
|
495
|
+
| `CLAUDE_CODE_SUBAGENT_MODEL` | Modèle **par défaut** des sous-agents non typés (ex : `sonnet`). **Depuis Claude Code 2.1.251**, le frontmatter `model:` d'un agent prévaut : les 11 reviewers `model: haiku` restent sur Haiku. **Avant 2.1.251, c'était l'inverse** — cette variable écrasait le frontmatter. |
|
|
496
496
|
| `CLAUDE_CODE_FORK_SUBAGENT` | `1` pour isoler le contexte des sous-agents (forked subagents, v2.1.117+) |
|
|
497
497
|
| `ENABLE_PROMPT_CACHING_1H` / `FORCE_PROMPT_CACHING_5M` | Étendre/forcer le prompt caching (−40 % sur les sessions répétitives) |
|
|
498
498
|
| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Mettre à `1` pour désactiver la mémoire automatique |
|
|
499
499
|
|
|
500
|
-
> **Précédence modèle
|
|
500
|
+
> **Précédence modèle — valable depuis Claude Code 2.1.251 :** `model:` passé à l'invocation > `model:` du frontmatter de l'agent (où `inherit` reprend le modèle de la conversation) > `CLAUDE_CODE_SUBAGENT_MODEL` > modèle de la session.
|
|
501
|
+
>
|
|
502
|
+
> **⚠️ Avant 2.1.251, l'ordre était inversé :** `CLAUDE_CODE_SUBAGENT_MODEL` arrivait en tête et écrasait à la fois le paramètre d'invocation et le frontmatter, y compris `model: inherit`. Sur ces versions, `SUBAGENT_MODEL=sonnet` faisait bel et bien tourner sur Sonnet les reviewers `model: haiku` — l'inverse de l'intention. Vérifier `claude --version` avant de se fier à cette table. Source : [doc sub-agents](https://code.claude.com/docs/en/sub-agents).
|
|
501
503
|
|
|
502
504
|
---
|
|
503
505
|
|
|
@@ -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
|
║ ║
|
|
@@ -492,12 +492,14 @@ Durante a compactacao, sempre preservar:
|
|
|
492
492
|
|
|
493
493
|
| Variável | Descrição |
|
|
494
494
|
|----------|-----------|
|
|
495
|
-
| `CLAUDE_CODE_SUBAGENT_MODEL` | Modelo **padrão** para sub-agentes sem tipo (ex: `sonnet`). **
|
|
495
|
+
| `CLAUDE_CODE_SUBAGENT_MODEL` | Modelo **padrão** para sub-agentes sem tipo (ex: `sonnet`). **Desde o Claude Code 2.1.251**, o frontmatter `model:` de um agente tem prioridade: os 11 revisores com `model: haiku` permanecem no Haiku. **Antes de 2.1.251 era o contrário** — esta variável sobrescrevia o frontmatter. |
|
|
496
496
|
| `CLAUDE_CODE_FORK_SUBAGENT` | `1` para isolar o contexto dos sub-agentes (forked subagents, v2.1.117+) |
|
|
497
497
|
| `ENABLE_PROMPT_CACHING_1H` / `FORCE_PROMPT_CACHING_5M` | Ampliar/forçar o prompt caching (−40 % em sessões repetitivas) |
|
|
498
498
|
| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Definir como `1` para desativar a memória automática |
|
|
499
499
|
|
|
500
|
-
> **Precedência de modelos
|
|
500
|
+
> **Precedência de modelos — válida desde o Claude Code 2.1.251:** `model:` passado na invocação > `model:` do frontmatter do agente (onde `inherit` assume o modelo da conversa) > `CLAUDE_CODE_SUBAGENT_MODEL` > modelo de sessão.
|
|
501
|
+
>
|
|
502
|
+
> **⚠️ Antes de 2.1.251 a ordem era inversa:** `CLAUDE_CODE_SUBAGENT_MODEL` vinha primeiro e sobrescrevia tanto o parâmetro de invocação quanto o frontmatter, incluindo `model: inherit`. Nessas versões, `SUBAGENT_MODEL=sonnet` de facto executava em Sonnet os revisores `model: haiku` — o oposto da intenção. Verifique `claude --version` antes de confiar nesta tabela. Fonte: [documentação de sub-agents](https://code.claude.com/docs/en/sub-agents).
|
|
501
503
|
|
|
502
504
|
---
|
|
503
505
|
|
|
@@ -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
|
║ ║
|