@the-bearded-bear/claude-craft 8.23.3 → 8.26.0-next.2a54921
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/commands/aliases.md +7 -13
- package/Dev/i18n/base/Common/commands/init.md +89 -1
- package/Dev/i18n/base/Common/commands/pack-repo.md +1 -1
- package/Dev/i18n/base/Common/commands/search.md +2 -2
- package/Dev/i18n/base/Common/skills/dynamic-workflows/SKILL.md +1 -1
- package/Dev/i18n/{en/Common/commands/sub-agents-patterns.md → base/Common/skills/sub-agents-patterns/SKILL.md} +6 -1
- package/Dev/i18n/de/Common/agents/data-analyst.md +1 -1
- package/Dev/i18n/de/Common/agents/ralph-conductor.md +1 -1
- package/Dev/i18n/de/Common/commands/daily-standup.md +5 -212
- package/Dev/i18n/de/Common/commands/getting-started.md +3 -2
- package/Dev/i18n/de/Common/commands/pre-commit-check.md +5 -201
- package/Dev/i18n/de/Common/commands/pre-merge-check.md +5 -233
- package/Dev/i18n/de/Common/commands/ralph-run.md +47 -1
- package/Dev/i18n/de/Common/commands/release-checklist.md +5 -241
- package/Dev/i18n/de/Common/commands/setup-project-context.md +5 -286
- package/Dev/i18n/de/Common/rules/12-context-management.md +1 -1
- package/Dev/i18n/de/QA/commands/fix.md +8 -8
- package/Dev/i18n/de/QA/commands/recette.md +7 -8
- package/Dev/i18n/de/QA/commands/regression.md +11 -11
- package/Dev/i18n/de/QA/commands/report.md +5 -162
- package/Dev/i18n/de/QA/commands/status.md +140 -13
- package/Dev/i18n/de/QA/commands/tdd.md +1 -1
- package/Dev/i18n/de/Workflow/commands/analyze.md +5 -205
- package/Dev/i18n/de/Workflow/commands/auto-sprint.md +16 -8
- package/Dev/i18n/de/Workflow/commands/design.md +151 -209
- package/Dev/i18n/de/Workflow/commands/implement.md +310 -209
- package/Dev/i18n/de/Workflow/commands/init.md +42 -14
- package/Dev/i18n/de/Workflow/commands/plan.md +156 -169
- package/Dev/i18n/de/Workflow/commands/retro.md +1 -1
- package/Dev/i18n/de/Workflow/commands/review.md +1 -1
- package/Dev/i18n/de/Workflow/commands/start.md +115 -25
- package/Dev/i18n/de/Workflow/commands/status.md +275 -201
- package/Dev/i18n/en/Common/agents/data-analyst.md +1 -1
- package/Dev/i18n/en/Common/agents/ralph-conductor.md +1 -1
- package/Dev/i18n/en/Common/commands/daily-standup.md +5 -212
- package/Dev/i18n/en/Common/commands/getting-started.md +3 -2
- package/Dev/i18n/en/Common/commands/pre-commit-check.md +5 -201
- package/Dev/i18n/en/Common/commands/pre-merge-check.md +5 -233
- package/Dev/i18n/en/Common/commands/ralph-run.md +47 -1
- package/Dev/i18n/en/Common/commands/release-checklist.md +5 -241
- package/Dev/i18n/en/Common/commands/setup-project-context.md +5 -286
- package/Dev/i18n/en/Common/rules/12-context-management.md +1 -1
- package/Dev/i18n/en/QA/commands/fix.md +8 -8
- package/Dev/i18n/en/QA/commands/recette.md +7 -8
- package/Dev/i18n/en/QA/commands/regression.md +11 -11
- package/Dev/i18n/en/QA/commands/report.md +5 -221
- package/Dev/i18n/en/QA/commands/status.md +140 -13
- package/Dev/i18n/en/QA/commands/tdd.md +1 -1
- package/Dev/i18n/en/Workflow/commands/analyze.md +5 -204
- package/Dev/i18n/en/Workflow/commands/auto-sprint.md +16 -8
- package/Dev/i18n/en/Workflow/commands/design.md +143 -200
- package/Dev/i18n/en/Workflow/commands/implement.md +307 -206
- package/Dev/i18n/en/Workflow/commands/init.md +42 -14
- package/Dev/i18n/en/Workflow/commands/plan.md +153 -165
- package/Dev/i18n/en/Workflow/commands/retro.md +1 -1
- package/Dev/i18n/en/Workflow/commands/review.md +1 -1
- package/Dev/i18n/en/Workflow/commands/start.md +107 -17
- package/Dev/i18n/en/Workflow/commands/status.md +265 -191
- package/Dev/i18n/es/Common/agents/data-analyst.md +1 -1
- package/Dev/i18n/es/Common/agents/ralph-conductor.md +1 -1
- package/Dev/i18n/es/Common/commands/daily-standup.md +5 -212
- package/Dev/i18n/es/Common/commands/getting-started.md +3 -2
- package/Dev/i18n/es/Common/commands/pre-commit-check.md +5 -201
- package/Dev/i18n/es/Common/commands/pre-merge-check.md +5 -233
- package/Dev/i18n/es/Common/commands/ralph-run.md +47 -1
- package/Dev/i18n/es/Common/commands/release-checklist.md +5 -241
- package/Dev/i18n/es/Common/commands/setup-project-context.md +5 -286
- package/Dev/i18n/es/Common/rules/12-context-management.md +1 -1
- package/Dev/i18n/es/QA/commands/fix.md +8 -8
- package/Dev/i18n/es/QA/commands/recette.md +7 -8
- package/Dev/i18n/es/QA/commands/regression.md +11 -11
- package/Dev/i18n/es/QA/commands/report.md +5 -162
- package/Dev/i18n/es/QA/commands/status.md +140 -13
- package/Dev/i18n/es/QA/commands/tdd.md +1 -1
- package/Dev/i18n/es/Workflow/commands/analyze.md +5 -205
- package/Dev/i18n/es/Workflow/commands/auto-sprint.md +16 -8
- package/Dev/i18n/es/Workflow/commands/design.md +158 -218
- package/Dev/i18n/es/Workflow/commands/implement.md +323 -222
- package/Dev/i18n/es/Workflow/commands/init.md +42 -14
- package/Dev/i18n/es/Workflow/commands/plan.md +160 -175
- package/Dev/i18n/es/Workflow/commands/retro.md +1 -1
- package/Dev/i18n/es/Workflow/commands/review.md +1 -1
- package/Dev/i18n/es/Workflow/commands/start.md +113 -23
- package/Dev/i18n/es/Workflow/commands/status.md +284 -210
- package/Dev/i18n/fr/Common/agents/data-analyst.md +1 -1
- package/Dev/i18n/fr/Common/agents/ralph-conductor.md +1 -1
- package/Dev/i18n/fr/Common/commands/daily-standup.md +5 -212
- package/Dev/i18n/fr/Common/commands/getting-started.md +3 -2
- package/Dev/i18n/fr/Common/commands/pre-commit-check.md +5 -201
- package/Dev/i18n/fr/Common/commands/pre-merge-check.md +5 -233
- package/Dev/i18n/fr/Common/commands/ralph-run.md +47 -1
- package/Dev/i18n/fr/Common/commands/release-checklist.md +5 -241
- package/Dev/i18n/fr/Common/commands/setup-project-context.md +5 -286
- package/Dev/i18n/fr/Common/rules/12-context-management.md +1 -1
- package/Dev/i18n/fr/QA/commands/fix.md +8 -8
- package/Dev/i18n/fr/QA/commands/recette.md +7 -8
- package/Dev/i18n/fr/QA/commands/regression.md +11 -11
- package/Dev/i18n/fr/QA/commands/report.md +5 -163
- package/Dev/i18n/fr/QA/commands/status.md +140 -13
- package/Dev/i18n/fr/QA/commands/tdd.md +1 -1
- package/Dev/i18n/fr/Workflow/commands/analyze.md +5 -204
- package/Dev/i18n/fr/Workflow/commands/auto-sprint.md +16 -8
- package/Dev/i18n/fr/Workflow/commands/design.md +153 -214
- package/Dev/i18n/fr/Workflow/commands/implement.md +312 -213
- package/Dev/i18n/fr/Workflow/commands/init.md +42 -15
- package/Dev/i18n/fr/Workflow/commands/plan.md +155 -169
- package/Dev/i18n/fr/Workflow/commands/retro.md +1 -1
- package/Dev/i18n/fr/Workflow/commands/review.md +1 -1
- package/Dev/i18n/fr/Workflow/commands/start.md +109 -19
- package/Dev/i18n/fr/Workflow/commands/status.md +274 -200
- package/Dev/i18n/pt/Common/agents/data-analyst.md +1 -1
- package/Dev/i18n/pt/Common/agents/ralph-conductor.md +1 -1
- package/Dev/i18n/pt/Common/commands/daily-standup.md +5 -212
- package/Dev/i18n/pt/Common/commands/getting-started.md +3 -2
- package/Dev/i18n/pt/Common/commands/pre-commit-check.md +5 -201
- package/Dev/i18n/pt/Common/commands/pre-merge-check.md +5 -233
- package/Dev/i18n/pt/Common/commands/ralph-run.md +47 -1
- package/Dev/i18n/pt/Common/commands/release-checklist.md +5 -241
- package/Dev/i18n/pt/Common/commands/setup-project-context.md +5 -286
- package/Dev/i18n/pt/Common/rules/12-context-management.md +1 -1
- package/Dev/i18n/pt/QA/commands/fix.md +8 -8
- package/Dev/i18n/pt/QA/commands/recette.md +7 -8
- package/Dev/i18n/pt/QA/commands/regression.md +11 -11
- package/Dev/i18n/pt/QA/commands/report.md +5 -162
- package/Dev/i18n/pt/QA/commands/status.md +140 -13
- package/Dev/i18n/pt/QA/commands/tdd.md +1 -1
- package/Dev/i18n/pt/Workflow/commands/analyze.md +5 -205
- package/Dev/i18n/pt/Workflow/commands/auto-sprint.md +16 -8
- package/Dev/i18n/pt/Workflow/commands/design.md +161 -219
- package/Dev/i18n/pt/Workflow/commands/implement.md +323 -222
- package/Dev/i18n/pt/Workflow/commands/init.md +42 -14
- package/Dev/i18n/pt/Workflow/commands/plan.md +160 -172
- package/Dev/i18n/pt/Workflow/commands/retro.md +1 -1
- package/Dev/i18n/pt/Workflow/commands/review.md +1 -1
- package/Dev/i18n/pt/Workflow/commands/start.md +112 -22
- package/Dev/i18n/pt/Workflow/commands/status.md +294 -220
- package/Dev/scripts/install-common-rules.sh +7 -10
- package/Dev/scripts/prune-removed-commands.sh +22 -0
- package/Project/i18n/de/Gate/commands/check.md +392 -0
- package/Project/i18n/de/Gate/commands/report.md +5 -230
- package/Project/i18n/de/Gate/commands/validate-alignment.md +5 -119
- package/Project/i18n/de/Gate/commands/validate-backlog.md +5 -231
- package/Project/i18n/de/Gate/commands/validate-prd.md +5 -121
- package/Project/i18n/de/Gate/commands/validate-sprint.md +5 -220
- package/Project/i18n/de/Gate/commands/validate-story.md +5 -200
- package/Project/i18n/de/Gate/commands/validate-techspec.md +5 -199
- package/Project/i18n/de/Sprint/commands/auto-route.md +5 -229
- package/Project/i18n/de/Sprint/commands/dev.md +5 -443
- package/Project/i18n/de/Sprint/commands/next-story.md +5 -153
- package/Project/i18n/de/Sprint/commands/status.md +5 -173
- package/Project/i18n/de/Sprint/commands/transition.md +5 -259
- package/Project/i18n/de/agents/product-owner.md +5 -5
- package/Project/i18n/de/agents/tech-lead.md +8 -8
- package/Project/i18n/de/commands/add-epic.md +5 -88
- package/Project/i18n/de/commands/add-story.md +5 -112
- package/Project/i18n/de/commands/add-task.md +5 -127
- package/Project/i18n/de/commands/analyze-backlog.md +5 -110
- package/Project/i18n/de/commands/backlog.md +653 -0
- package/Project/i18n/de/commands/batch-status.md +5 -209
- package/Project/i18n/de/commands/board.md +5 -130
- package/Project/i18n/de/commands/burndown.md +5 -120
- package/Project/i18n/de/commands/checkpoint.md +5 -239
- package/Project/i18n/de/commands/coverage-map.md +5 -217
- package/Project/i18n/de/commands/critical-path.md +5 -123
- package/Project/i18n/de/commands/decompose-tasks.md +5 -600
- package/Project/i18n/de/commands/dependencies.md +5 -139
- package/Project/i18n/de/commands/gap-analysis.md +5 -290
- package/Project/i18n/de/commands/generate-backlog.md +5 -378
- package/Project/i18n/de/commands/generate-constitution.md +5 -223
- package/Project/i18n/de/commands/generate-prd.md +5 -210
- package/Project/i18n/de/commands/generate-tech-spec.md +5 -285
- package/Project/i18n/de/commands/list-epics.md +5 -91
- package/Project/i18n/de/commands/list-stories.md +5 -116
- package/Project/i18n/de/commands/list-tasks.md +5 -128
- package/Project/i18n/de/commands/metrics.md +5 -223
- package/Project/i18n/de/commands/migrate-backlog.md +5 -144
- package/Project/i18n/de/commands/migrate.md +158 -0
- package/Project/i18n/de/commands/move-task.md +5 -200
- package/Project/i18n/de/commands/report.md +156 -0
- package/Project/i18n/de/commands/reverse-prd.md +5 -284
- package/Project/i18n/de/commands/reverse-stories.md +5 -301
- package/Project/i18n/de/commands/reverse.md +249 -0
- package/Project/i18n/de/commands/run-epic.md +5 -187
- package/Project/i18n/de/commands/run-queue.md +5 -250
- package/Project/i18n/de/commands/run-sprint.md +5 -262
- package/Project/i18n/de/commands/scan.md +5 -267
- package/Project/i18n/de/commands/sync-backlog.md +5 -161
- package/Project/i18n/de/commands/trace.md +126 -174
- package/Project/i18n/de/commands/update-epic.md +5 -101
- package/Project/i18n/de/commands/update-stories.md +5 -190
- package/Project/i18n/de/commands/update-story.md +5 -146
- package/Project/i18n/de/scaffold/CLAUDE.md +47 -47
- package/Project/i18n/de/scaffold/project-management__README.md +7 -7
- package/Project/i18n/de/templates/board.md +22 -9
- package/Project/i18n/de/templates/epic.md +4 -4
- package/Project/i18n/de/templates/prd.md +1 -1
- package/Project/i18n/de/templates/sprint-status.md +60 -0
- package/Project/i18n/de/templates/task.md +1 -1
- package/Project/i18n/de/templates/user-story.md +8 -6
- package/Project/i18n/en/Gate/commands/check.md +392 -0
- package/Project/i18n/en/Gate/commands/report.md +5 -261
- package/Project/i18n/en/Gate/commands/validate-alignment.md +5 -119
- package/Project/i18n/en/Gate/commands/validate-backlog.md +5 -236
- package/Project/i18n/en/Gate/commands/validate-prd.md +5 -168
- package/Project/i18n/en/Gate/commands/validate-sprint.md +5 -220
- package/Project/i18n/en/Gate/commands/validate-story.md +5 -200
- package/Project/i18n/en/Gate/commands/validate-techspec.md +5 -199
- package/Project/i18n/en/Sprint/commands/auto-route.md +5 -229
- package/Project/i18n/en/Sprint/commands/dev.md +5 -441
- package/Project/i18n/en/Sprint/commands/next-story.md +5 -153
- package/Project/i18n/en/Sprint/commands/status.md +5 -214
- package/Project/i18n/en/Sprint/commands/transition.md +5 -259
- package/Project/i18n/en/agents/product-owner.md +5 -5
- package/Project/i18n/en/agents/tech-lead.md +8 -8
- package/Project/i18n/en/commands/add-epic.md +5 -88
- package/Project/i18n/en/commands/add-story.md +5 -112
- package/Project/i18n/en/commands/add-task.md +5 -127
- package/Project/i18n/en/commands/analyze-backlog.md +5 -133
- package/Project/i18n/en/commands/backlog.md +653 -0
- package/Project/i18n/en/commands/batch-status.md +5 -209
- package/Project/i18n/en/commands/board.md +5 -130
- package/Project/i18n/en/commands/burndown.md +5 -120
- package/Project/i18n/en/commands/checkpoint.md +5 -239
- package/Project/i18n/en/commands/coverage-map.md +5 -217
- package/Project/i18n/en/commands/critical-path.md +5 -123
- package/Project/i18n/en/commands/decompose-tasks.md +5 -600
- package/Project/i18n/en/commands/dependencies.md +5 -139
- package/Project/i18n/en/commands/gap-analysis.md +5 -290
- package/Project/i18n/en/commands/generate-backlog.md +5 -378
- package/Project/i18n/en/commands/generate-constitution.md +5 -223
- package/Project/i18n/en/commands/generate-prd.md +5 -210
- package/Project/i18n/en/commands/generate-tech-spec.md +5 -285
- package/Project/i18n/en/commands/list-epics.md +5 -91
- package/Project/i18n/en/commands/list-stories.md +5 -116
- package/Project/i18n/en/commands/list-tasks.md +5 -128
- package/Project/i18n/en/commands/metrics.md +5 -223
- package/Project/i18n/en/commands/migrate-backlog.md +5 -186
- package/Project/i18n/en/commands/migrate.md +158 -0
- package/Project/i18n/en/commands/move-task.md +5 -200
- package/Project/i18n/en/commands/report.md +156 -0
- package/Project/i18n/en/commands/reverse-prd.md +5 -284
- package/Project/i18n/en/commands/reverse-stories.md +5 -301
- package/Project/i18n/en/commands/reverse.md +249 -0
- package/Project/i18n/en/commands/run-epic.md +5 -187
- package/Project/i18n/en/commands/run-queue.md +5 -250
- package/Project/i18n/en/commands/run-sprint.md +5 -262
- package/Project/i18n/en/commands/scan.md +5 -267
- package/Project/i18n/en/commands/sync-backlog.md +5 -161
- package/Project/i18n/en/commands/trace.md +119 -167
- package/Project/i18n/en/commands/update-epic.md +5 -101
- package/Project/i18n/en/commands/update-stories.md +5 -190
- package/Project/i18n/en/commands/update-story.md +5 -146
- package/Project/i18n/en/scaffold/CLAUDE.md +47 -47
- package/Project/i18n/en/scaffold/project-management__README.md +7 -7
- package/Project/i18n/en/templates/board.md +22 -9
- package/Project/i18n/en/templates/epic.md +4 -4
- package/Project/i18n/en/templates/prd.md +1 -1
- package/Project/i18n/en/templates/sprint-status.md +60 -0
- package/Project/i18n/en/templates/task.md +1 -1
- package/Project/i18n/en/templates/user-story.md +7 -5
- package/Project/i18n/es/Gate/commands/check.md +392 -0
- package/Project/i18n/es/Gate/commands/report.md +5 -229
- package/Project/i18n/es/Gate/commands/validate-alignment.md +5 -119
- package/Project/i18n/es/Gate/commands/validate-backlog.md +5 -231
- package/Project/i18n/es/Gate/commands/validate-prd.md +5 -121
- package/Project/i18n/es/Gate/commands/validate-sprint.md +5 -220
- package/Project/i18n/es/Gate/commands/validate-story.md +5 -200
- package/Project/i18n/es/Gate/commands/validate-techspec.md +5 -199
- package/Project/i18n/es/Sprint/commands/auto-route.md +5 -229
- package/Project/i18n/es/Sprint/commands/dev.md +5 -441
- package/Project/i18n/es/Sprint/commands/next-story.md +5 -153
- package/Project/i18n/es/Sprint/commands/status.md +5 -172
- package/Project/i18n/es/Sprint/commands/transition.md +5 -259
- package/Project/i18n/es/agents/product-owner.md +5 -5
- package/Project/i18n/es/agents/tech-lead.md +8 -8
- package/Project/i18n/es/commands/add-epic.md +5 -88
- package/Project/i18n/es/commands/add-story.md +5 -112
- package/Project/i18n/es/commands/add-task.md +5 -127
- package/Project/i18n/es/commands/analyze-backlog.md +5 -110
- package/Project/i18n/es/commands/backlog.md +653 -0
- package/Project/i18n/es/commands/batch-status.md +5 -209
- package/Project/i18n/es/commands/board.md +5 -130
- package/Project/i18n/es/commands/burndown.md +5 -120
- package/Project/i18n/es/commands/checkpoint.md +5 -239
- package/Project/i18n/es/commands/coverage-map.md +5 -217
- package/Project/i18n/es/commands/critical-path.md +5 -123
- package/Project/i18n/es/commands/decompose-tasks.md +5 -600
- package/Project/i18n/es/commands/dependencies.md +5 -139
- package/Project/i18n/es/commands/gap-analysis.md +5 -290
- package/Project/i18n/es/commands/generate-backlog.md +5 -378
- package/Project/i18n/es/commands/generate-constitution.md +5 -223
- package/Project/i18n/es/commands/generate-prd.md +5 -210
- package/Project/i18n/es/commands/generate-tech-spec.md +5 -285
- package/Project/i18n/es/commands/list-epics.md +5 -91
- package/Project/i18n/es/commands/list-stories.md +5 -116
- package/Project/i18n/es/commands/list-tasks.md +5 -128
- package/Project/i18n/es/commands/metrics.md +5 -223
- package/Project/i18n/es/commands/migrate-backlog.md +5 -144
- package/Project/i18n/es/commands/migrate.md +158 -0
- package/Project/i18n/es/commands/move-task.md +5 -200
- package/Project/i18n/es/commands/report.md +156 -0
- package/Project/i18n/es/commands/reverse-prd.md +5 -284
- package/Project/i18n/es/commands/reverse-stories.md +5 -301
- package/Project/i18n/es/commands/reverse.md +249 -0
- package/Project/i18n/es/commands/run-epic.md +5 -187
- package/Project/i18n/es/commands/run-queue.md +5 -250
- package/Project/i18n/es/commands/run-sprint.md +5 -262
- package/Project/i18n/es/commands/scan.md +5 -267
- package/Project/i18n/es/commands/sync-backlog.md +5 -161
- package/Project/i18n/es/commands/trace.md +126 -174
- package/Project/i18n/es/commands/update-epic.md +5 -101
- package/Project/i18n/es/commands/update-stories.md +5 -190
- package/Project/i18n/es/commands/update-story.md +5 -146
- package/Project/i18n/es/scaffold/CLAUDE.md +47 -47
- package/Project/i18n/es/scaffold/project-management__README.md +7 -7
- package/Project/i18n/es/templates/board.md +22 -9
- package/Project/i18n/es/templates/epic.md +4 -4
- package/Project/i18n/es/templates/prd.md +1 -1
- package/Project/i18n/es/templates/sprint-status.md +60 -0
- package/Project/i18n/es/templates/task.md +1 -1
- package/Project/i18n/es/templates/user-story.md +8 -6
- package/Project/i18n/fr/Gate/commands/check.md +392 -0
- package/Project/i18n/fr/Gate/commands/report.md +5 -196
- package/Project/i18n/fr/Gate/commands/validate-alignment.md +5 -121
- package/Project/i18n/fr/Gate/commands/validate-backlog.md +5 -231
- package/Project/i18n/fr/Gate/commands/validate-prd.md +5 -121
- package/Project/i18n/fr/Gate/commands/validate-sprint.md +5 -220
- package/Project/i18n/fr/Gate/commands/validate-story.md +5 -200
- package/Project/i18n/fr/Gate/commands/validate-techspec.md +5 -199
- package/Project/i18n/fr/Sprint/commands/auto-route.md +5 -229
- package/Project/i18n/fr/Sprint/commands/dev.md +5 -441
- package/Project/i18n/fr/Sprint/commands/next-story.md +5 -153
- package/Project/i18n/fr/Sprint/commands/status.md +5 -172
- package/Project/i18n/fr/Sprint/commands/transition.md +5 -259
- package/Project/i18n/fr/agents/product-owner.md +5 -5
- package/Project/i18n/fr/agents/tech-lead.md +8 -8
- package/Project/i18n/fr/commands/add-epic.md +5 -88
- package/Project/i18n/fr/commands/add-story.md +5 -112
- package/Project/i18n/fr/commands/add-task.md +5 -127
- package/Project/i18n/fr/commands/analyze-backlog.md +5 -110
- package/Project/i18n/fr/commands/backlog.md +653 -0
- package/Project/i18n/fr/commands/batch-status.md +5 -209
- package/Project/i18n/fr/commands/board.md +5 -130
- package/Project/i18n/fr/commands/burndown.md +5 -120
- package/Project/i18n/fr/commands/checkpoint.md +5 -239
- package/Project/i18n/fr/commands/coverage-map.md +5 -217
- package/Project/i18n/fr/commands/critical-path.md +5 -123
- package/Project/i18n/fr/commands/decompose-tasks.md +5 -600
- package/Project/i18n/fr/commands/dependencies.md +5 -139
- package/Project/i18n/fr/commands/gap-analysis.md +5 -290
- package/Project/i18n/fr/commands/generate-backlog.md +5 -378
- package/Project/i18n/fr/commands/generate-constitution.md +5 -223
- package/Project/i18n/fr/commands/generate-prd.md +5 -210
- package/Project/i18n/fr/commands/generate-tech-spec.md +5 -285
- package/Project/i18n/fr/commands/list-epics.md +5 -91
- package/Project/i18n/fr/commands/list-stories.md +5 -116
- package/Project/i18n/fr/commands/list-tasks.md +5 -128
- package/Project/i18n/fr/commands/metrics.md +5 -223
- package/Project/i18n/fr/commands/migrate-backlog.md +5 -144
- package/Project/i18n/fr/commands/migrate.md +158 -0
- package/Project/i18n/fr/commands/move-task.md +5 -200
- package/Project/i18n/fr/commands/report.md +156 -0
- package/Project/i18n/fr/commands/reverse-prd.md +5 -284
- package/Project/i18n/fr/commands/reverse-stories.md +5 -301
- package/Project/i18n/fr/commands/reverse.md +249 -0
- package/Project/i18n/fr/commands/run-epic.md +5 -187
- package/Project/i18n/fr/commands/run-queue.md +5 -250
- package/Project/i18n/fr/commands/run-sprint.md +5 -262
- package/Project/i18n/fr/commands/scan.md +5 -267
- package/Project/i18n/fr/commands/sync-backlog.md +5 -161
- package/Project/i18n/fr/commands/trace.md +125 -173
- package/Project/i18n/fr/commands/update-epic.md +5 -101
- package/Project/i18n/fr/commands/update-stories.md +5 -190
- package/Project/i18n/fr/commands/update-story.md +5 -146
- package/Project/i18n/fr/scaffold/CLAUDE.md +47 -47
- package/Project/i18n/fr/scaffold/project-management__README.md +7 -7
- package/Project/i18n/fr/templates/board.md +22 -9
- package/Project/i18n/fr/templates/epic.md +4 -4
- package/Project/i18n/fr/templates/prd.md +1 -1
- package/Project/i18n/fr/templates/sprint-status.md +60 -0
- package/Project/i18n/fr/templates/task.md +1 -1
- package/Project/i18n/fr/templates/user-story.md +8 -6
- package/Project/i18n/pt/Gate/commands/check.md +392 -0
- package/Project/i18n/pt/Gate/commands/report.md +5 -229
- package/Project/i18n/pt/Gate/commands/validate-alignment.md +5 -120
- package/Project/i18n/pt/Gate/commands/validate-backlog.md +5 -231
- package/Project/i18n/pt/Gate/commands/validate-prd.md +5 -121
- package/Project/i18n/pt/Gate/commands/validate-sprint.md +5 -220
- package/Project/i18n/pt/Gate/commands/validate-story.md +5 -200
- package/Project/i18n/pt/Gate/commands/validate-techspec.md +5 -199
- package/Project/i18n/pt/Sprint/commands/auto-route.md +5 -229
- package/Project/i18n/pt/Sprint/commands/dev.md +5 -441
- package/Project/i18n/pt/Sprint/commands/next-story.md +5 -153
- package/Project/i18n/pt/Sprint/commands/status.md +5 -172
- package/Project/i18n/pt/Sprint/commands/transition.md +5 -259
- package/Project/i18n/pt/agents/product-owner.md +5 -5
- package/Project/i18n/pt/agents/tech-lead.md +8 -8
- package/Project/i18n/pt/commands/add-epic.md +5 -88
- package/Project/i18n/pt/commands/add-story.md +5 -112
- package/Project/i18n/pt/commands/add-task.md +5 -127
- package/Project/i18n/pt/commands/analyze-backlog.md +5 -110
- package/Project/i18n/pt/commands/backlog.md +653 -0
- package/Project/i18n/pt/commands/batch-status.md +5 -209
- package/Project/i18n/pt/commands/board.md +5 -130
- package/Project/i18n/pt/commands/burndown.md +5 -120
- package/Project/i18n/pt/commands/checkpoint.md +5 -239
- package/Project/i18n/pt/commands/coverage-map.md +5 -217
- package/Project/i18n/pt/commands/critical-path.md +5 -123
- package/Project/i18n/pt/commands/decompose-tasks.md +5 -600
- package/Project/i18n/pt/commands/dependencies.md +5 -139
- package/Project/i18n/pt/commands/gap-analysis.md +5 -290
- package/Project/i18n/pt/commands/generate-backlog.md +5 -378
- package/Project/i18n/pt/commands/generate-constitution.md +5 -223
- package/Project/i18n/pt/commands/generate-prd.md +5 -210
- package/Project/i18n/pt/commands/generate-tech-spec.md +5 -285
- package/Project/i18n/pt/commands/list-epics.md +5 -91
- package/Project/i18n/pt/commands/list-stories.md +5 -116
- package/Project/i18n/pt/commands/list-tasks.md +5 -128
- package/Project/i18n/pt/commands/metrics.md +5 -223
- package/Project/i18n/pt/commands/migrate-backlog.md +5 -144
- package/Project/i18n/pt/commands/migrate.md +158 -0
- package/Project/i18n/pt/commands/move-task.md +5 -200
- package/Project/i18n/pt/commands/report.md +156 -0
- package/Project/i18n/pt/commands/reverse-prd.md +5 -284
- package/Project/i18n/pt/commands/reverse-stories.md +5 -301
- package/Project/i18n/pt/commands/reverse.md +249 -0
- package/Project/i18n/pt/commands/run-epic.md +5 -187
- package/Project/i18n/pt/commands/run-queue.md +5 -250
- package/Project/i18n/pt/commands/run-sprint.md +5 -262
- package/Project/i18n/pt/commands/scan.md +5 -267
- package/Project/i18n/pt/commands/sync-backlog.md +5 -161
- package/Project/i18n/pt/commands/trace.md +126 -174
- package/Project/i18n/pt/commands/update-epic.md +5 -101
- package/Project/i18n/pt/commands/update-stories.md +5 -190
- package/Project/i18n/pt/commands/update-story.md +5 -146
- package/Project/i18n/pt/scaffold/CLAUDE.md +47 -47
- package/Project/i18n/pt/scaffold/project-management__README.md +7 -7
- package/Project/i18n/pt/templates/board.md +22 -9
- package/Project/i18n/pt/templates/epic.md +4 -4
- package/Project/i18n/pt/templates/prd.md +1 -1
- package/Project/i18n/pt/templates/sprint-status.md +60 -0
- package/Project/i18n/pt/templates/task.md +1 -1
- package/Project/i18n/pt/templates/user-story.md +8 -6
- package/Project/install-project-commands.sh +33 -52
- package/README.md +22 -5
- package/Tools/Ralph/README.md +9 -9
- package/bundles/cursor/.cursorrules +2 -2
- package/bundles/windsurf/.windsurfrules +2 -2
- package/cli/kanban/server/app.js +9 -4
- package/cli/kanban/server/services/repository.js +35 -8
- package/cli/kanban/server/services/sprint-cache.js +45 -1
- package/cli/kanban/shared/schemas.js +2 -0
- package/cli/lib/update.js +15 -0
- package/config/removed-commands.yaml +14 -0
- package/package.json +4 -2
- package/Dev/i18n/base/Common/commands/audit-claude-alignment.md +0 -201
- package/Dev/i18n/base/Common/commands/audit-freshness.md +0 -176
- package/Dev/i18n/de/Common/commands/add-technology.md +0 -297
- package/Dev/i18n/de/Common/commands/sub-agents-patterns.md +0 -167
- package/Dev/i18n/en/Common/commands/add-technology.md +0 -297
- package/Dev/i18n/es/Common/commands/add-technology.md +0 -297
- package/Dev/i18n/es/Common/commands/sub-agents-patterns.md +0 -200
- package/Dev/i18n/fr/Common/commands/add-technology.md +0 -297
- package/Dev/i18n/fr/Common/commands/sub-agents-patterns.md +0 -167
- package/Dev/i18n/pt/Common/commands/add-technology.md +0 -297
- package/Dev/i18n/pt/Common/commands/sub-agents-patterns.md +0 -167
|
@@ -0,0 +1,653 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Gestionar el backlog: añadir, listar, editar y mover EPICs, User Stories y Tareas, elegir la próxima story, cambiar el estado de las stories y aplicar las reglas de enrutamiento"
|
|
3
|
+
argument-hint: "<add|list|edit|move|next> <epic|story|task> [args] | move story --auto"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Backlog
|
|
7
|
+
|
|
8
|
+
Punto de entrada único para gestionar el backlog del proyecto: crear, listar, editar y mover EPICs, User Stories y Tareas.
|
|
9
|
+
|
|
10
|
+
## Uso
|
|
11
|
+
|
|
12
|
+
| Invocación | Qué hace | Reemplaza |
|
|
13
|
+
|------------|----------|-----------|
|
|
14
|
+
| `/project:backlog add epic "Nombre" [prioridad]` | Crear un EPIC | `/project:backlog add epic` |
|
|
15
|
+
| `/project:backlog add story EPIC-XXX "Nombre" [puntos]` | Crear una User Story en un EPIC | `/project:backlog add story` |
|
|
16
|
+
| `/project:backlog add task US-XXX "[TIPO] Descripción" 4h` | Crear una Tarea en una User Story | `/project:backlog add task` |
|
|
17
|
+
| `/project:backlog list epic [estado] [prioridad]` | Listar los EPICs con estado derivado y progreso | `/project:backlog list epic` |
|
|
18
|
+
| `/project:backlog list story [epic EPIC-XXX \| sprint N \| status S \| backlog]` | Listar las User Stories | `/project:backlog list story` |
|
|
19
|
+
| `/project:backlog list task [us US-XXX \| sprint N \| type T \| status S]` | Listar las Tareas | `/project:backlog list task` |
|
|
20
|
+
| `/project:backlog edit epic EPIC-XXX [campo] [valor]` | Modificar un EPIC | `/project:backlog edit epic` |
|
|
21
|
+
| `/project:backlog edit story US-XXX [campo] [valor]` | Modificar una User Story | `/project:backlog edit story` |
|
|
22
|
+
| `/project:backlog move task TASK-XXX <in-progress\|blocked\|done>` | Cambiar el estado de una Tarea | `/project:backlog move task` |
|
|
23
|
+
| `/project:backlog next story [--claim]` | Elegir la próxima story `ready-for-dev` según prioridad y dependencias (`--claim` la pasa a `in-progress`) | `/project:backlog next story` |
|
|
24
|
+
| `/project:backlog move story US-XXX <backlog\|ready-for-dev\|in-progress\|review\|done\|blocked\|sprint-N> ["motivo"]` | Cambiar el estado de una story mediante la máquina de estados BMAD, con gates | `/project:backlog move story` |
|
|
25
|
+
| `/project:backlog move story --auto [--dry-run]` | Evaluar las reglas `routing.auto_transitions` de `.bmad/sprint-status.yaml` y aplicar las transiciones disparadas | `/project:backlog move story --auto` |
|
|
26
|
+
|
|
27
|
+
No existen `edit task` ni `move epic`: los estados de los EPICs son derivados. Los estados de las stories se cambian con `move story` (máquina de estados con gates); las reglas `routing.auto_transitions` también se aplican tras cada transición.
|
|
28
|
+
|
|
29
|
+
## Argumentos
|
|
30
|
+
|
|
31
|
+
$ARGUMENTS: `<acción> <entidad> [args]`
|
|
32
|
+
|
|
33
|
+
1. Primera palabra = acción: `add`, `list`, `edit`, `move` o `next`
|
|
34
|
+
2. Segunda palabra = entidad: `epic`, `story` o `task` (`move` acepta `task` o `story`, `next` solo `story`)
|
|
35
|
+
3. El resto se transmite a la sección correspondiente más abajo
|
|
36
|
+
4. Acción o entidad ausente o desconocida: mostrar la tabla de Uso y detenerse. `move epic`: responder que el estado del EPIC es derivado
|
|
37
|
+
|
|
38
|
+
## Reglas comunes
|
|
39
|
+
|
|
40
|
+
### Fuente de verdad del estado
|
|
41
|
+
|
|
42
|
+
- **El estado vive únicamente en `.bmad/sprint-status.yaml`** (fuente de verdad única, esquema: `.claude/templates/project/sprint-status.md`). Usar las cadenas de estado exactas del esquema.
|
|
43
|
+
- Story: `backlog`, `ready-for-dev`, `in-progress`, `review`, `done`, `blocked`
|
|
44
|
+
- Tarea (`stories.<US>.tasks.status.<TASK>`): `to-do`, `in-progress`, `blocked`, `done`
|
|
45
|
+
- **Los archivos markdown solo contienen contenido** (nombre, descripción, puntos, criterios, estimación, texto del bloqueo, tiempo dedicado). No escribir nunca un estado en un archivo de EPIC, US o tarea, ni en las tablas que contienen.
|
|
46
|
+
- **El estado de un EPIC es derivado, nunca almacenado**: todas las stories `backlog` (o ninguna story) = no iniciado; todas `done` = terminado; alguna `blocked` y ninguna en curso = bloqueado; en caso contrario en curso.
|
|
47
|
+
- Los boards (`board.md`) son vistas generadas: regenerarlos desde `.bmad/sprint-status.yaml`, nunca editarlos a mano.
|
|
48
|
+
- Si falta `.bmad/sprint-status.yaml`, crearlo a partir del esqueleto de `/workflow:init`.
|
|
49
|
+
|
|
50
|
+
### Rutas y plantillas
|
|
51
|
+
|
|
52
|
+
| Elemento | Ruta |
|
|
53
|
+
|----------|------|
|
|
54
|
+
| EPICs | `project-management/backlog/epics/EPIC-{ID}-{slug}.md` |
|
|
55
|
+
| User Stories | `project-management/backlog/user-stories/US-{ID}-{slug}.md` |
|
|
56
|
+
| Tareas (US en un sprint) | `project-management/sprints/sprint-{N}-{slug}/tasks/TASK-{ID}.md` |
|
|
57
|
+
| Tareas (en otro caso) | `project-management/backlog/tasks/TASK-{ID}.md` |
|
|
58
|
+
| Índice | `project-management/backlog/index.md` |
|
|
59
|
+
| Plantillas | `.claude/templates/project/{epic,user-story,task}.md` |
|
|
60
|
+
|
|
61
|
+
### Modo Plan (add, edit, move)
|
|
62
|
+
|
|
63
|
+
> **El modo plan es obligatorio** para toda acción que escriba (`add`, `edit`, `move`). Antes de ejecutar, Claude activa el modo plan para analizar el código impactado, proponer un plan de implementación y esperar tu validación antes de realizar cualquier cambio. `list` es de solo lectura.
|
|
64
|
+
|
|
65
|
+
### Iconos de estado (list)
|
|
66
|
+
|
|
67
|
+
| Icono | Significado |
|
|
68
|
+
|-------|-------------|
|
|
69
|
+
| 🔴 | Por hacer / backlog (no iniciado) |
|
|
70
|
+
| 🟡 | En curso |
|
|
71
|
+
| ⏸️ | Bloqueado |
|
|
72
|
+
| 🟢 | Terminado |
|
|
73
|
+
|
|
74
|
+
## add epic
|
|
75
|
+
|
|
76
|
+
`/project:backlog add epic "Nombre del EPIC" [prioridad]`
|
|
77
|
+
|
|
78
|
+
- **Nombre** (obligatorio), **Prioridad** (opcional): High, Medium, Low (por defecto: Medium)
|
|
79
|
+
|
|
80
|
+
1. **Generar el ID**: leer `project-management/backlog/epics/`, encontrar el último `EPIC-XXX`, incrementar
|
|
81
|
+
2. **Recopilar** (si no se proporcionan): descripción, MMF (Minimum Marketable Feature), 2-3 objetivos de negocio, criterios de éxito
|
|
82
|
+
3. **Crear el archivo** desde `.claude/templates/project/epic.md`, reemplazando `{ID}`, `{NOM}`, `{PRIORITE}`, `{MINIMUM_MARKETABLE_FEATURE}`, `{DESCRIPTION}`, `{DATE}` (AAAA-MM-DD), `{OBJECTIF_1}`, `{OBJECTIF_2}`, `{CRITERE_1}`, `{CRITERE_2}`. No se escribe ningún estado.
|
|
83
|
+
4. **Actualizar el índice**: añadir el EPIC a la tabla de EPICs, actualizar los contadores
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
✅ EPIC creado con éxito!
|
|
87
|
+
|
|
88
|
+
📋 EPIC-{ID}: {NOMBRE}
|
|
89
|
+
Estado: derivado de sus stories (ninguna todavía)
|
|
90
|
+
Prioridad: {PRIORIDAD}
|
|
91
|
+
Archivo: project-management/backlog/epics/EPIC-{ID}-{slug}.md
|
|
92
|
+
|
|
93
|
+
Próximos pasos:
|
|
94
|
+
/project:backlog add story EPIC-{ID} "Nombre de la User Story"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Ejemplo: `/project:backlog add epic "Sistema de autenticación" High` crea `project-management/backlog/epics/EPIC-001-sistema-de-autenticacion.md`.
|
|
98
|
+
|
|
99
|
+
Validación: nombre no vacío, prioridad entre High/Medium/Low, `project-management/backlog/epics/` existe, ID único.
|
|
100
|
+
|
|
101
|
+
## add story
|
|
102
|
+
|
|
103
|
+
`/project:backlog add story EPIC-XXX "Nombre de la US" [puntos]`
|
|
104
|
+
|
|
105
|
+
- **EPIC-ID** (obligatorio), **Nombre** (obligatorio), **Puntos** (opcional): Fibonacci (1, 2, 3, 5, 8)
|
|
106
|
+
|
|
107
|
+
1. **Validar el EPIC**: debe existir en `project-management/backlog/epics/`; si no, mostrar un error con los EPICs disponibles
|
|
108
|
+
2. **Generar el ID**: leer `project-management/backlog/user-stories/`, encontrar el último `US-XXX`, incrementar
|
|
109
|
+
3. **Recopilar**: persona (P-XXX o descripción), acción, beneficio, al menos 2 criterios de aceptación en formato Gherkin, puntos (estimar si no se proporcionan)
|
|
110
|
+
4. **Crear el archivo** desde `.claude/templates/project/user-story.md`, reemplazando `{ID}`, `{NOM}`, `{EPIC_ID}`, `{SPRINT}` ("Backlog" = sin asignar), `{POINTS}`, `{PERSONA}`, `{PERSONA_ID}`, `{ACTION}`, `{BENEFICE}`, `{DATE}`; añadir los criterios Gherkin
|
|
111
|
+
5. **Registrar el estado** en `.bmad/sprint-status.yaml`: añadir `stories.US-{ID}` con `title`, `status: backlog`, `story_points`, `epic_id`, `priority`, `dependencies: []`, `tasks: { total: 0, completed: 0, list: [] }`, `history: []`
|
|
112
|
+
6. **Actualizar el EPIC** (añadir la US a su tabla de User Stories, sin columna de estado; actualizar el progreso) y el **índice** (sección «Backlog priorizado», contadores)
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
✅ User Story creada con éxito!
|
|
116
|
+
|
|
117
|
+
📖 US-{ID}: {NOMBRE}
|
|
118
|
+
EPIC: {EPIC_ID}
|
|
119
|
+
Estado: backlog (.bmad/sprint-status.yaml)
|
|
120
|
+
Puntos: {PUNTOS}
|
|
121
|
+
Archivo: project-management/backlog/user-stories/US-{ID}-{slug}.md
|
|
122
|
+
|
|
123
|
+
Próximos pasos:
|
|
124
|
+
/project:backlog move story US-{ID} sprint-X # Asignar a un sprint
|
|
125
|
+
/project:backlog add task US-{ID} "[BE] ..." 4h # Añadir tareas
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Ejemplo: `/project:backlog add story EPIC-001 "Inicio de sesión" 5`.
|
|
129
|
+
|
|
130
|
+
Verificación INVEST: **I**ndependiente, **N**egociable, **V**aliosa, **E**stimable (puntos proporcionados), **S**mall/pequeña (≤ 8 puntos, si no sugerir dividir), **T**esteable (criterios de aceptación claros).
|
|
131
|
+
|
|
132
|
+
## add task
|
|
133
|
+
|
|
134
|
+
`/project:backlog add task US-XXX "[TIPO] Descripción" estimación`
|
|
135
|
+
|
|
136
|
+
- **US-ID** (obligatorio), **Descripción** con el tipo entre corchetes (obligatorio), **Estimación** en horas (obligatoria, p. ej. 4h, 2h, 0.5h)
|
|
137
|
+
|
|
138
|
+
| Tipo | Prefijo | Descripción |
|
|
139
|
+
|------|---------|-------------|
|
|
140
|
+
| Base de datos | `[DB]` | Entity, Migration, Repository |
|
|
141
|
+
| Backend | `[BE]` | Service, API Resource, Processor |
|
|
142
|
+
| Frontend Web | `[FE-WEB]` | Controller, Twig, Stimulus |
|
|
143
|
+
| Frontend Mobile | `[FE-MOB]` | Model, Repository, Bloc, Screen |
|
|
144
|
+
| Tests | `[TEST]` | Unitarios, Integración, E2E |
|
|
145
|
+
| Documentación | `[DOC]` | PHPDoc, DartDoc, README |
|
|
146
|
+
| DevOps | `[OPS]` | Docker, CI/CD |
|
|
147
|
+
| Revisión | `[REV]` | Code Review |
|
|
148
|
+
|
|
149
|
+
1. **Validar la US**: debe existir en `project-management/backlog/user-stories/`; obtener su sprint (si lo hay); si no, mostrar un error
|
|
150
|
+
2. **Validar la estimación**: mínimo 0.5h, máximo 8h, ideal 2-4h; si > 8h, sugerir dividir la tarea
|
|
151
|
+
3. **Generar el ID**: encontrar el último ID de tarea, incrementar
|
|
152
|
+
4. **Crear el archivo** desde `.claude/templates/project/task.md`, reemplazando `{ID}`, `{DESCRIPTION}`, `{US_ID}`, `{TYPE}`, `{ESTIMATION}`, `{DATE}`, `{DESCRIPTION_DETAILLEE}`; ruta: directorio de tareas del sprint si la US está en un sprint, si no `project-management/backlog/tasks/`
|
|
153
|
+
5. **Registrar la tarea** en `.bmad/sprint-status.yaml`: añadir `TASK-{ID}` a `stories.{US_ID}.tasks.list`, establecer `stories.{US_ID}.tasks.status.TASK-{ID}: to-do`, actualizar `stories.{US_ID}.tasks.total` (mantener `completed` = número de tareas `done`)
|
|
154
|
+
6. **Actualizar la US** (añadir la tarea a su tabla de tareas, sin columna de estado; actualizar el progreso)
|
|
155
|
+
7. **Actualizar el board** si la US está en un sprint: regenerar `board.md` desde `.bmad/sprint-status.yaml` (la tarea aparece en `to-do`) y actualizar las métricas
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
✅ Tarea creada con éxito!
|
|
159
|
+
|
|
160
|
+
🔧 TASK-{ID}: {DESCRIPCIÓN}
|
|
161
|
+
US: {US_ID}
|
|
162
|
+
Tipo: {TIPO}
|
|
163
|
+
Estado: to-do (.bmad/sprint-status.yaml)
|
|
164
|
+
Estimación: {ESTIMACIÓN}h
|
|
165
|
+
Archivo: {RUTA}
|
|
166
|
+
|
|
167
|
+
Próximos pasos:
|
|
168
|
+
/project:backlog move task TASK-{ID} in-progress # Iniciar la tarea
|
|
169
|
+
/workflow:status --board # Ver el Kanban
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Ejemplos: `/project:backlog add task US-001 "[BE] Endpoint API de login" 4h`, `/project:backlog add task US-001 "[TEST] Tests unitarios de AuthService" 3h`.
|
|
173
|
+
|
|
174
|
+
Validación: tipo válido, estimación entre 0.5h y 8h, la User Story existe, ID único.
|
|
175
|
+
|
|
176
|
+
## list epic
|
|
177
|
+
|
|
178
|
+
`/project:backlog list epic [estado] [prioridad]`
|
|
179
|
+
|
|
180
|
+
- **Estado** (derivado de las stories): todo, in-progress, blocked, done, all (por defecto: all)
|
|
181
|
+
- **Prioridad**: high, medium, low
|
|
182
|
+
|
|
183
|
+
1. Recorrer `project-management/backlog/epics/`, leer cada `EPIC-XXX-*.md` para los metadatos de contenido (nombre, prioridad)
|
|
184
|
+
2. Leer los estados de sus stories en `.bmad/sprint-status.yaml`
|
|
185
|
+
3. Aplicar los filtros; para cada EPIC contar el total de US, las US por estado y el porcentaje de progreso (estado del EPIC derivado como se describe en las Reglas comunes)
|
|
186
|
+
4. Mostrar la tabla
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
📋 EPICs del proyecto
|
|
190
|
+
|
|
191
|
+
| ID | Nombre | Estado | Prioridad | US | Progreso |
|
|
192
|
+
|----|--------|--------|-----------|-----|----------|
|
|
193
|
+
| EPIC-001 | Autenticación | 🟡 En curso | High | 5 | ████░░░░░░ 40% |
|
|
194
|
+
| EPIC-002 | Catálogo | 🔴 Por hacer | Medium | 8 | ░░░░░░░░░░ 0% |
|
|
195
|
+
|
|
196
|
+
───────────────────────────────────────────────────
|
|
197
|
+
Resumen: 2 EPICs | 🔴 1 Por hacer | 🟡 1 En curso | 🟢 0 Terminado
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Con muchos EPICs (p. ej. 12), usar el formato compacto: una línea por grupo de estado (`🔴 Por hacer (5): EPIC-002, EPIC-003, ...`, `🟡 En curso (4): EPIC-001 (40%), ...`, `⏸️ Bloqueado`, `🟢 Terminado`).
|
|
201
|
+
|
|
202
|
+
Ejemplos: `/project:backlog list epic`, `/project:backlog list epic in-progress`, `/project:backlog list epic all high`, `/project:backlog list epic blocked`.
|
|
203
|
+
|
|
204
|
+
Para el detalle de un EPIC, sugerir: `cat project-management/backlog/epics/EPIC-001-*.md`.
|
|
205
|
+
|
|
206
|
+
## list story
|
|
207
|
+
|
|
208
|
+
`/project:backlog list story [filtro] [valor]`
|
|
209
|
+
|
|
210
|
+
- `epic EPIC-XXX`: filtrar por EPIC | `sprint N`: filtrar por sprint | `status STATUS`: backlog, ready-for-dev, in-progress, review, done, blocked | `backlog`: solo las US no asignadas a un sprint
|
|
211
|
+
|
|
212
|
+
1. Recorrer `project-management/backlog/user-stories/`, leer cada `US-XXX-*.md` para los metadatos de contenido (título, EPIC, sprint)
|
|
213
|
+
2. Leer el estado de cada US, los estados y los recuentos de tareas en `.bmad/sprint-status.yaml`
|
|
214
|
+
3. Aplicar los filtros; por US contar el total de tareas, las tareas por estado y el porcentaje de progreso
|
|
215
|
+
4. Mostrar una tabla agrupada por EPIC o por sprint según el contexto
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
📖 User Stories - EPIC-001: Autenticación
|
|
219
|
+
|
|
220
|
+
| ID | Nombre | Sprint | Estado | Puntos | Tareas | Progreso |
|
|
221
|
+
|----|--------|--------|--------|--------|--------|----------|
|
|
222
|
+
| US-001 | Inicio de sesión | Sprint 1 | 🟡 En curso | 5 | 4/6 | ██████░░░░ 67% |
|
|
223
|
+
| US-002 | Registro | Sprint 1 | 🔴 Por hacer | 3 | 0/5 | ░░░░░░░░░░ 0% |
|
|
224
|
+
| US-003 | Contraseña olvidada | Backlog | 🔴 Por hacer | 3 | - | - |
|
|
225
|
+
|
|
226
|
+
───────────────────────────────────────────────────
|
|
227
|
+
Total: 3 US | 11 puntos | 🔴 2 | 🟡 1 | 🟢 0
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
- Por sprint: columnas `ID | EPIC | Nombre | Estado | Puntos | Tareas | Progreso`, pie `Sprint 1: 3 US | 13 puntos | Terminado: 5 pts (38%)`
|
|
231
|
+
- Backlog (sin asignar): columnas `ID | EPIC | Nombre | Prioridad | Puntos | Estado`, pie `Backlog: 3 US | 16 puntos por planificar`
|
|
232
|
+
|
|
233
|
+
Ejemplos: `/project:backlog list story`, `... list story epic EPIC-001`, `... list story sprint 1`, `... list story status blocked`, `... list story backlog`.
|
|
234
|
+
|
|
235
|
+
Acciones sugeridas: `/project:backlog move story US-XXX sprint-2` (asignar a un sprint), `/project:backlog move story US-XXX in-progress` (cambiar el estado), `/project:backlog add task US-XXX "[BE] ..." 4h`.
|
|
236
|
+
|
|
237
|
+
## list task
|
|
238
|
+
|
|
239
|
+
`/project:backlog list task [filtro] [valor]`
|
|
240
|
+
|
|
241
|
+
- `us US-XXX` | `sprint N` | `type TYPE` (DB, BE, FE-WEB, FE-MOB, TEST, DOC, OPS, REV) | `status STATUS` (to-do, in-progress, blocked, done)
|
|
242
|
+
|
|
243
|
+
1. Recorrer `project-management/sprints/sprint-{N}-{slug}/tasks/` y `project-management/backlog/tasks/` (si existe), leer cada `TASK-XXX.md` para los metadatos de contenido (tipo, descripción, estimación)
|
|
244
|
+
2. Leer el estado de cada tarea en `.bmad/sprint-status.yaml` (`stories.<US>.tasks.status.<TASK>`)
|
|
245
|
+
3. Aplicar los filtros; calcular el total de horas estimadas, las horas completadas, el desglose por tipo y por estado
|
|
246
|
+
4. Mostrar
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
🔧 Tareas - US-001: Inicio de sesión
|
|
250
|
+
|
|
251
|
+
| ID | Tipo | Descripción | Estado | Est. | Dedicado |
|
|
252
|
+
|----|------|-------------|--------|------|----------|
|
|
253
|
+
| TASK-001 | [DB] | Entidad User | 🟢 Terminado | 2h | 2h |
|
|
254
|
+
| TASK-003 | [BE] | Endpoint API de login | 🟡 En curso | 4h | 2h |
|
|
255
|
+
| TASK-004 | [FE-WEB] | Controlador de auth | 🔴 Por hacer | 3h | - |
|
|
256
|
+
| TASK-005 | [FE-MOB] | Pantalla de login | ⏸️ Bloqueado | 6h | - |
|
|
257
|
+
|
|
258
|
+
───────────────────────────────────────────────────
|
|
259
|
+
US-001: 4 tareas | 15h estimadas | 4h completadas (27%)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
- Por sprint: resumen por estado (`🔴 Por hacer (8 tareas, 24h)`, ...) y por tipo (una barra por `[DB]`, `[BE]`, ...), pie `Sprint 1: 25 tareas | 77h estimadas | 35h completadas (45%)`
|
|
263
|
+
- Bloqueadas (`status blocked`): columnas `ID | US | Tipo | Descripción | Bloqueo`, pie `2 tareas bloqueadas | 14h en espera`, y luego una lista `Acciones:` con cómo resolver cada bloqueo
|
|
264
|
+
|
|
265
|
+
Ejemplos: `/project:backlog list task`, `... list task us US-001`, `... list task sprint 1`, `... list task type BE`, `... list task status blocked`.
|
|
266
|
+
|
|
267
|
+
## edit epic
|
|
268
|
+
|
|
269
|
+
`/project:backlog edit epic EPIC-XXX [campo] [valor]`
|
|
270
|
+
|
|
271
|
+
| Campo | Descripción | Ejemplo |
|
|
272
|
+
|-------|-------------|---------|
|
|
273
|
+
| `name` | Nombre del EPIC | "Nuevo nombre" |
|
|
274
|
+
| `priority` | Prioridad | High, Medium, Low |
|
|
275
|
+
| `mmf` | Minimum Marketable Feature | "Descripción del MMF" |
|
|
276
|
+
| `description` | Descripción | "Nueva descripción" |
|
|
277
|
+
|
|
278
|
+
> **El estado no es editable aquí.** El estado de un EPIC se deriva de los estados de sus stories en `.bmad/sprint-status.yaml`. Para cambiar el estado de una story usar `/project:backlog move story`; para el de una tarea, `/project:backlog move task`.
|
|
279
|
+
|
|
280
|
+
- **Modo interactivo** (solo el ID): mostrar los campos actuales numerados (Nombre, Prioridad, MMF, Descripción) y preguntar cuál modificar (`1-4`, o `q` para salir)
|
|
281
|
+
- **Modo directo** (campo y valor): modificar directamente el campo
|
|
282
|
+
|
|
283
|
+
Pasos: validar que el EPIC existe, leer el archivo, modificar el campo, actualizar la fecha de modificación, guardar, actualizar el índice si es necesario.
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
✅ EPIC actualizado!
|
|
287
|
+
|
|
288
|
+
📋 EPIC-001: Sistema de autenticación
|
|
289
|
+
|
|
290
|
+
Modificación:
|
|
291
|
+
Prioridad: High → Medium
|
|
292
|
+
|
|
293
|
+
Archivo: project-management/backlog/epics/EPIC-001-sistema-de-autenticacion.md
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Ejemplos: `/project:backlog edit epic EPIC-001`, `... edit epic EPIC-001 name "Autenticación y autorización"`, `... edit epic EPIC-001 priority Low`, `... edit epic EPIC-001 mmf "Permitir SSO y 2FA"`.
|
|
297
|
+
|
|
298
|
+
Validación: el campo debe ser modificable, prioridad High/Medium/Low, nombre no vacío.
|
|
299
|
+
|
|
300
|
+
## edit story
|
|
301
|
+
|
|
302
|
+
`/project:backlog edit story US-XXX [campo] [valor]`
|
|
303
|
+
|
|
304
|
+
| Campo | Descripción | Ejemplo |
|
|
305
|
+
|-------|-------------|---------|
|
|
306
|
+
| `name` | Nombre de la US | "Nuevo nombre" |
|
|
307
|
+
| `points` | Story points | 1, 2, 3, 5, 8 |
|
|
308
|
+
| `epic` | EPIC padre | EPIC-002 |
|
|
309
|
+
| `persona` | Persona asociada | P-001 |
|
|
310
|
+
| `story` | Texto de la US | "Como..." |
|
|
311
|
+
| `criteria` | Criterios de aceptación | (modo interactivo) |
|
|
312
|
+
|
|
313
|
+
> **El estado no es editable aquí.** Los estados viven en `.bmad/sprint-status.yaml`. Para cambiar el estado de una story usar `/project:backlog move story`; para el de una tarea, `/project:backlog move task`.
|
|
314
|
+
|
|
315
|
+
- **Modo interactivo** (solo el ID): mostrar los campos numerados (Nombre, EPIC, Puntos, Persona, Story, Criterios de aceptación) y preguntar cuál modificar (`1-6`, o `q`)
|
|
316
|
+
- **Modo directo**: p. ej. `/project:backlog edit story US-001 points 8`
|
|
317
|
+
- **Criterios de aceptación** (interactivo): listar los criterios (CA-1, CA-2, ...) y preguntar `(a)ñadir, (m)odificar, (e)liminar, (s)alir`; un criterio nuevo se introduce en Gherkin (GIVEN / WHEN / THEN)
|
|
318
|
+
|
|
319
|
+
Pasos: validar que la US existe, leer el archivo, modificar el campo, actualizar la fecha de modificación, guardar, actualizar el EPIC padre si ha cambiado, actualizar el índice.
|
|
320
|
+
|
|
321
|
+
```
|
|
322
|
+
✅ User Story actualizada!
|
|
323
|
+
|
|
324
|
+
📖 US-001: Inicio de sesión
|
|
325
|
+
|
|
326
|
+
Modificación:
|
|
327
|
+
Puntos: 5 → 8
|
|
328
|
+
|
|
329
|
+
⚠️ Atención: 8 puntos es el máximo recomendado.
|
|
330
|
+
Considera dividir esta US si es demasiado compleja.
|
|
331
|
+
|
|
332
|
+
Archivo: project-management/backlog/user-stories/US-001-inicio-de-sesion.md
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Si cambia el EPIC padre (`EPIC: EPIC-001 → EPIC-002`), indicar las actualizaciones: US retirada de la lista del EPIC anterior, añadida a la del nuevo, índice actualizado; actualizar también `epic_id` en `.bmad/sprint-status.yaml`.
|
|
336
|
+
|
|
337
|
+
Ejemplos: `/project:backlog edit story US-001`, `... edit story US-001 points 3`, `... edit story US-001 epic EPIC-002`, `... edit story US-001 name "Inicio de sesión con SSO"`.
|
|
338
|
+
|
|
339
|
+
Validación: puntos Fibonacci (1, 2, 3, 5, 8), avisar de dividir si > 8, el EPIC debe existir, la persona debe estar definida en personas.md.
|
|
340
|
+
|
|
341
|
+
## move task
|
|
342
|
+
|
|
343
|
+
`/project:backlog move task TASK-XXX <destino>`
|
|
344
|
+
|
|
345
|
+
- **TASK-ID** (obligatorio); **Destino** (obligatorio): `in-progress` (iniciar), `blocked`, `done`. Para el estado de una **story** usar `/project:backlog move story`.
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
to-do ──→ in-progress ──→ done
|
|
349
|
+
│ │
|
|
350
|
+
│ ↓
|
|
351
|
+
└────→ blocked ←────┘
|
|
352
|
+
│
|
|
353
|
+
↓
|
|
354
|
+
in-progress
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
| Desde | Hacia | Permitido |
|
|
358
|
+
|-------|-------|-----------|
|
|
359
|
+
| to-do | in-progress | ✅ |
|
|
360
|
+
| to-do | blocked | ✅ |
|
|
361
|
+
| to-do | done | ❌ **Prohibido** |
|
|
362
|
+
| in-progress | done | ✅ |
|
|
363
|
+
| in-progress | blocked | ✅ |
|
|
364
|
+
| in-progress | to-do | ✅ (retroceso) |
|
|
365
|
+
| blocked | in-progress | ✅ |
|
|
366
|
+
| done | in-progress | ⚠️ (reapertura) |
|
|
367
|
+
|
|
368
|
+
Proceso:
|
|
369
|
+
|
|
370
|
+
1. **Validar la tarea**: encontrar el archivo de la tarea, leer su estado actual en `.bmad/sprint-status.yaml` (`stories.<US>.tasks.status.<TASK>`), identificar la US y el sprint
|
|
371
|
+
2. **Validar la transición** con la tabla; to-do → done se bloquea y se sugiere `in-progress`
|
|
372
|
+
3. **Hacia blocked**: preguntar el bloqueo (`¿Cuál es el bloqueo de TASK-XXX?`)
|
|
373
|
+
4. **Hacia done**: preguntar el tiempo dedicado (`¿Tiempo dedicado a TASK-XXX? (estimación: 4h)`)
|
|
374
|
+
5. **Actualizar el estado**: escribirlo en `.bmad/sprint-status.yaml` (`stories.<US>.tasks.status.<TASK>`), recalcular `stories.<US>.tasks.completed` (= número de tareas `done`); nunca en el archivo de la tarea. En el archivo de la tarea solo cambia el contenido: texto del bloqueo si blocked, tiempo dedicado si done, fecha de modificación
|
|
375
|
+
6. **Actualizar el board**: regenerar el `board.md` del sprint desde `.bmad/sprint-status.yaml` y actualizar las métricas
|
|
376
|
+
7. **Actualizar la User Story** (contenido de la lista de tareas, progreso recalculado desde `.bmad/sprint-status.yaml`); si todas las tareas están done, sugerir terminar la US
|
|
377
|
+
8. **Actualizar el índice** (contadores globales)
|
|
378
|
+
|
|
379
|
+
Salidas:
|
|
380
|
+
|
|
381
|
+
```
|
|
382
|
+
✅ Tarea movida!
|
|
383
|
+
|
|
384
|
+
🔧 TASK-003: Endpoint API de login
|
|
385
|
+
Antes: to-do
|
|
386
|
+
Después: in-progress
|
|
387
|
+
|
|
388
|
+
📖 US-001: Inicio de sesión
|
|
389
|
+
Progreso: 2/6 → 3/6 (50%)
|
|
390
|
+
|
|
391
|
+
Próximos pasos:
|
|
392
|
+
/project:backlog move task TASK-003 done # Al terminar
|
|
393
|
+
/project:backlog move task TASK-003 blocked # Si se bloquea
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
Para `done`, mostrar también la estimación frente al tiempo real (`Estimación: 4h`, `Tiempo real: 3.5h ✓`), la barra de progreso de la US y los totales del sprint (tareas terminadas, horas completadas). Cuando todas las tareas de la US están done:
|
|
397
|
+
|
|
398
|
+
```
|
|
399
|
+
🎉 Todas las tareas de US-001 están terminadas!
|
|
400
|
+
|
|
401
|
+
Siguiente paso recomendado:
|
|
402
|
+
/project:backlog move story US-001 done
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Error de workflow:
|
|
406
|
+
|
|
407
|
+
```
|
|
408
|
+
❌ Transición no permitida!
|
|
409
|
+
|
|
410
|
+
🔧 TASK-004: Controlador de auth
|
|
411
|
+
Estado actual: to-do
|
|
412
|
+
Transición solicitada: → done
|
|
413
|
+
|
|
414
|
+
Regla: Una tarea debe pasar por "In Progress" antes de "Done"
|
|
415
|
+
|
|
416
|
+
Acción correcta:
|
|
417
|
+
/project:backlog move task TASK-004 in-progress
|
|
418
|
+
# ... trabajar en la tarea ...
|
|
419
|
+
/project:backlog move task TASK-004 done
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
Para `blocked`, mostrar `Estado: in-progress → blocked`, el texto del bloqueo y cómo desbloquear (terminar la tarea que bloquea y luego `/project:backlog move task TASK-005 in-progress`).
|
|
423
|
+
|
|
424
|
+
Ejemplos: `/project:backlog move task TASK-001 in-progress`, `... move task TASK-001 done`, `... move task TASK-001 blocked`, `... move task TASK-001 in-progress` (desbloquear).
|
|
425
|
+
|
|
426
|
+
Métricas actualizadas en cada movimiento: número de tareas por estado, horas estimadas vs reales, progreso de la US, progreso del sprint, board Kanban.
|
|
427
|
+
|
|
428
|
+
## next story
|
|
429
|
+
|
|
430
|
+
`/project:backlog next story [--claim]`
|
|
431
|
+
|
|
432
|
+
- **--claim** (opcional): pasa automáticamente la story a `in-progress`
|
|
433
|
+
|
|
434
|
+
1. **Cargar**: leer `.bmad/sprint-status.yaml`, recopilar las stories con estado `ready-for-dev`, ordenarlas por prioridad (si está definida) o por ID
|
|
435
|
+
2. **Verificar los requisitos previos** de cada story lista: sin dependencias bloqueantes (todas las stories `Depends on` están en `done` o `review`; si no, indicar cuáles bloquean), puntos de story estimados, tareas descompuestas, criterios de aceptación definidos
|
|
436
|
+
3. **Seleccionar**, en este orden: todas las dependencias resueltas, sin dependencias bloqueantes, ID de story más bajo (antes en el backlog), puntos de story más bajos (las más simples primero)
|
|
437
|
+
4. **Mostrar** la story: ID y título, puntos, EPIC, criterios de aceptación, lista de tareas, requisitos previos, dependencias, notas
|
|
438
|
+
5. **Reservar** (solo con `--claim`): mismo efecto que `/project:backlog move story US-XXX in-progress` (gates, historial): estado `in-progress`, `tdd_phase` en `red`, `current_task` en la primera tarea, entrada añadida a `history`
|
|
439
|
+
6. **Guiar**: primera tarea a trabajar y recordatorio TDD
|
|
440
|
+
|
|
441
|
+
```
|
|
442
|
+
═══════════════════════════════════════════════════════
|
|
443
|
+
Próxima story lista para desarrollo
|
|
444
|
+
═══════════════════════════════════════════════════════
|
|
445
|
+
|
|
446
|
+
📖 US-012: Implementar la página de perfil de usuario
|
|
447
|
+
Epic: EPIC-003 (Gestión de usuarios)
|
|
448
|
+
Puntos: 5
|
|
449
|
+
Prioridad: High
|
|
450
|
+
|
|
451
|
+
Criterios de aceptación (3):
|
|
452
|
+
□ AC1: El usuario puede ver la información de su perfil
|
|
453
|
+
□ AC2: El usuario puede editar su nombre y su email
|
|
454
|
+
□ AC3: Los cambios se validan antes de guardar
|
|
455
|
+
|
|
456
|
+
Tareas (4):
|
|
457
|
+
□ TASK-031 [BE] Crear el endpoint API del perfil
|
|
458
|
+
□ TASK-033 [FE] Crear el componente de perfil
|
|
459
|
+
|
|
460
|
+
Requisitos previos:
|
|
461
|
+
✅ Sin dependencias bloqueantes
|
|
462
|
+
✅ Puntos de story estimados
|
|
463
|
+
✅ Tareas descompuestas
|
|
464
|
+
✅ Criterios de aceptación definidos
|
|
465
|
+
|
|
466
|
+
Dependencias:
|
|
467
|
+
✅ US-001 (Página de inicio de sesión) — done
|
|
468
|
+
|
|
469
|
+
Para empezar:
|
|
470
|
+
/project:backlog move story US-012 in-progress
|
|
471
|
+
O usar: /project:backlog next story --claim
|
|
472
|
+
═══════════════════════════════════════════════════════
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
Cuando ninguna story está lista, mostrar el estado del backlog (stories en backlog por refinar, en curso, bloqueadas) y sugerencias: refinar las stories del backlog (`/project:migrate --stories`), ayudar con las stories en curso, desbloquear una story bloqueada (mostrar su `blocked_reason`), ver el grafo de dependencias (`/project:report deps`), ver el sprint (`/workflow:status`) y comprobar la preparación de las stories (`/gate:check backlog`).
|
|
476
|
+
|
|
477
|
+
Tras reservar una story, seguir el TDD: 🔴 RED (test que falla para el primer AC/tarea), 🟢 GREEN (código mínimo para pasar), 🔵 REFACTOR (limpiar, los tests siguen en verde), y repetir por cada tarea. `tdd_phase` en `.bmad/sprint-status.yaml` registra la fase.
|
|
478
|
+
|
|
479
|
+
Ejemplos: `/project:backlog next story`, `/project:backlog next story --claim`.
|
|
480
|
+
|
|
481
|
+
## move story
|
|
482
|
+
|
|
483
|
+
`/project:backlog move story US-XXX <estado> ["motivo"]`
|
|
484
|
+
|
|
485
|
+
- **US-ID** (obligatorio); **Estado** (obligatorio): `backlog`, `ready-for-dev`, `in-progress`, `review`, `done`, `blocked`, o `sprint-N` (asigna la story al sprint N, p. ej. `sprint-2`)
|
|
486
|
+
- **motivo** (obligatorio para `blocked`): se almacena en `blocked_reason`
|
|
487
|
+
|
|
488
|
+
```
|
|
489
|
+
backlog → ready-for-dev → in-progress → review → done
|
|
490
|
+
↑ │
|
|
491
|
+
└────────────┘ (cambios solicitados)
|
|
492
|
+
cualquier estado → blocked → previous_status (reanudar)
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
| Desde | Hacia | Permitido |
|
|
496
|
+
|-------|-------|-----------|
|
|
497
|
+
| backlog | ready-for-dev | ✅ |
|
|
498
|
+
| ready-for-dev | in-progress | ✅ |
|
|
499
|
+
| in-progress | review | ✅ |
|
|
500
|
+
| review | done | ✅ |
|
|
501
|
+
| review | in-progress | ✅ (cambios solicitados) |
|
|
502
|
+
| cualquiera | blocked | ✅ (motivo obligatorio) |
|
|
503
|
+
| blocked | previous_status | ✅ (reanudar) |
|
|
504
|
+
| in-progress | done | ❌ **Prohibido** (pasar por `review`) |
|
|
505
|
+
|
|
506
|
+
Proceso:
|
|
507
|
+
|
|
508
|
+
1. **Validar la story**: leer `.bmad/sprint-status.yaml`, encontrar la story por ID, obtener su estado actual
|
|
509
|
+
2. **Validar la transición** según la tabla anterior; si no, mostrar las transiciones válidas desde el estado actual
|
|
510
|
+
3. **Verificar las gates** del estado destino; una gate fallida bloquea la transición y lista las acciones requeridas:
|
|
511
|
+
|
|
512
|
+
| → Destino | Requisitos de la gate |
|
|
513
|
+
|-----------|-----------------------|
|
|
514
|
+
| `ready-for-dev` | Criterios de aceptación definidos, puntos de story estimados, tareas descompuestas |
|
|
515
|
+
| `in-progress` | Sin dependencias bloqueantes, desarrollador asignado (opcional) |
|
|
516
|
+
| `review` | Todas las tareas completadas, tests en verde (TDD green o refactor), código enviado |
|
|
517
|
+
| `done` | Código revisado, todos los AC validados, checklist DoD completa |
|
|
518
|
+
| `blocked` | `blocked_reason` proporcionado |
|
|
519
|
+
|
|
520
|
+
4. **Ejecutar la transición**: todo se escribe en `.bmad/sprint-status.yaml` (fuente única de verdad del estado, esquema en `.claude/templates/project/sprint-status.md`); los archivos Markdown US/EPIC solo contienen contenido y nunca reciben un estado:
|
|
521
|
+
1. Almacenar `previous_status` en `stories.<US>`
|
|
522
|
+
2. Actualizar `stories.<US>.status`
|
|
523
|
+
3. Establecer las marcas de tiempo
|
|
524
|
+
4. Actualizar `stories.<US>.tdd_phase` si procede
|
|
525
|
+
5. Añadir una entrada a `stories.<US>.history` (`timestamp`, `from`, `to`, `by`, `reason`)
|
|
526
|
+
5. **Aplicar los efectos secundarios**: `→ in-progress`: `tdd_phase: red`, `current_task` = primera tarea | `→ review`: `tdd_phase: refactor`, borrar `current_task` | `→ done`: borrar `tdd_phase`, registrar la hora de finalización | `→ blocked`: almacenar `blocked_reason` y `previous_status`
|
|
527
|
+
6. **Aplicar las reglas de enrutamiento**: tras cada transición, evaluar `routing.auto_transitions` (ver `move story --auto` más abajo) para encadenar las transiciones dependientes
|
|
528
|
+
|
|
529
|
+
```yaml
|
|
530
|
+
history:
|
|
531
|
+
- timestamp: "2026-01-29T10:00:00Z"
|
|
532
|
+
from: "in-progress"
|
|
533
|
+
to: "review"
|
|
534
|
+
by: "manual"
|
|
535
|
+
reason: "All tasks complete"
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
Transición exitosa:
|
|
539
|
+
|
|
540
|
+
```
|
|
541
|
+
📖 US-005: Autenticación de usuario
|
|
542
|
+
|
|
543
|
+
Estado: in-progress → review ✅
|
|
544
|
+
|
|
545
|
+
Verificación de gates:
|
|
546
|
+
✅ Todas las tareas completadas (5/5)
|
|
547
|
+
✅ Tests en verde
|
|
548
|
+
✅ Código enviado
|
|
549
|
+
|
|
550
|
+
Historial actualizado:
|
|
551
|
+
• 2026-01-29 10:00 - in-progress → review (manual)
|
|
552
|
+
• 2026-01-27 09:00 - ready-for-dev → in-progress
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
Gate fallida:
|
|
556
|
+
|
|
557
|
+
```
|
|
558
|
+
📖 US-005: Autenticación de usuario
|
|
559
|
+
|
|
560
|
+
Solicitado: in-progress → review ❌
|
|
561
|
+
|
|
562
|
+
Gates fallidas:
|
|
563
|
+
❌ Tareas incompletas: 3/5
|
|
564
|
+
❌ La fase TDD es 'red' - los tests deben pasar primero
|
|
565
|
+
|
|
566
|
+
Acciones requeridas:
|
|
567
|
+
1. Completar las tareas restantes (TASK-015, TASK-016)
|
|
568
|
+
2. Pasar el TDD a fase green: .bmad/sprint-status.yaml → US-005: tdd_phase: green
|
|
569
|
+
|
|
570
|
+
Luego reintentar: /project:backlog move story US-005 review
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
Transición inválida: mostrar el estado actual y el solicitado, el motivo (`No se puede pasar directamente de 'in-progress' a 'done'`), las transiciones válidas desde el estado actual y la máquina de estados.
|
|
574
|
+
|
|
575
|
+
Casos particulares:
|
|
576
|
+
|
|
577
|
+
- **Bloquear**: `/project:backlog move story US-003 blocked "Esperando credenciales de la API"` almacena el motivo y conserva el estado anterior para reanudar
|
|
578
|
+
- **Desbloquear**: `/project:backlog move story US-003 in-progress` vuelve al estado anterior
|
|
579
|
+
- **Cambios solicitados** (review): `/project:backlog move story US-005 in-progress`
|
|
580
|
+
- **Asignar a un sprint**: `/project:backlog move story US-003 sprint-2` asigna la story al sprint 2, crea el directorio del sprint si es necesario; el estado de la story se conserva
|
|
581
|
+
- **Cascada a las tareas**: `→ in-progress` deja las tareas en su estado actual (se inician individualmente); `→ done` comprueba que todas las tareas estén `done` y avisa si no; `→ blocked` marca como `blocked` todas las tareas en curso
|
|
582
|
+
|
|
583
|
+
Próximos pasos según el estado destino: `→ in-progress`: `/workflow:implement --story US-XXX` | `→ review`: `/gate:check story` (validar la DoD) | `→ done`: `/project:backlog next story` (y `/workflow:review` cuando el sprint haya terminado) | `→ blocked`: resolver el bloqueo y luego `/project:backlog move story US-XXX in-progress`.
|
|
584
|
+
|
|
585
|
+
### move story --auto
|
|
586
|
+
|
|
587
|
+
`/project:backlog move story --auto [--dry-run]`
|
|
588
|
+
|
|
589
|
+
Evalúa las reglas de enrutamiento y hace transitar las stories en consecuencia (sin ID de story). **--dry-run** previsualiza las transiciones sin aplicarlas. Las mismas reglas también se aplican tras cada transición `move story` y, según los ajustes de `routing.auto_transitions`, en el hook Stop, tras completar una tarea y al iniciar la sesión.
|
|
590
|
+
|
|
591
|
+
1. **Cargar**: leer `.bmad/sprint-status.yaml`, cargar `routing.auto_transitions.rules`, obtener todas las stories
|
|
592
|
+
2. **Evaluar** cada regla para cada story:
|
|
593
|
+
|
|
594
|
+
| Regla | `when` | Desde → Hacia |
|
|
595
|
+
|-------|--------|---------------|
|
|
596
|
+
| `all_tasks_complete` | `tasks.completed == tasks.total && tasks.total > 0` | `in-progress` → `review` |
|
|
597
|
+
| `review_approved` | `review.approved == true` | `review` → `done` |
|
|
598
|
+
| `blocked_detection` | `blocked_reason != null` | `*` → `blocked` |
|
|
599
|
+
| `unblocked` | `blocked_reason == null && previous_status != null` | `blocked` → `previous_status` |
|
|
600
|
+
|
|
601
|
+
3. **Verificar los requisitos previos** antes de la transición automática: requisitos de gate del estado destino (igual que `move story`), ninguna regla en conflicto, story no bloqueada manualmente
|
|
602
|
+
4. **Ejecutar** (salvo `--dry-run`): registrar la transición, actualizar el estado, anotarla en `history` con `by: "auto-route"`, aplicar los efectos secundarios (fase TDD, etc.)
|
|
603
|
+
5. **Informar**: reglas evaluadas, stories verificadas, transiciones realizadas, stories sin cambios, errores o avisos
|
|
604
|
+
|
|
605
|
+
```
|
|
606
|
+
═══════════════════════════════════════════════════════
|
|
607
|
+
Vista previa del enrutamiento (DRY RUN)
|
|
608
|
+
═══════════════════════════════════════════════════════
|
|
609
|
+
Evaluando 4 reglas de enrutamiento sobre 8 stories...
|
|
610
|
+
|
|
611
|
+
Transiciones previstas:
|
|
612
|
+
📖 US-005: Autenticación de usuario
|
|
613
|
+
Regla: all_tasks_complete
|
|
614
|
+
in-progress → review
|
|
615
|
+
Motivo: 5/5 tareas completadas
|
|
616
|
+
|
|
617
|
+
📖 US-003: Integración OAuth
|
|
618
|
+
Regla: unblocked
|
|
619
|
+
blocked → in-progress
|
|
620
|
+
Motivo: blocked_reason borrado
|
|
621
|
+
|
|
622
|
+
Resumen:
|
|
623
|
+
Reglas evaluadas: 4 | Stories verificadas: 8
|
|
624
|
+
Transiciones previstas: 2 | Sin cambios: 6
|
|
625
|
+
|
|
626
|
+
Ejecutar sin --dry-run para aplicar las transiciones.
|
|
627
|
+
═══════════════════════════════════════════════════════
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
Sin `--dry-run`, el informe lista `✅ US-005: in-progress → review` con la regla y los detalles, y luego `Transiciones realizadas: N`. Cuando no se dispara nada: `No se necesita ninguna transición automática.` seguido de las stories por estado.
|
|
631
|
+
|
|
632
|
+
Las reglas personalizadas y los disparadores se configuran en `.bmad/sprint-status.yaml`:
|
|
633
|
+
|
|
634
|
+
```yaml
|
|
635
|
+
routing:
|
|
636
|
+
auto_transitions:
|
|
637
|
+
enabled: true
|
|
638
|
+
run_on_session_start: false
|
|
639
|
+
run_on_task_complete: true
|
|
640
|
+
rules:
|
|
641
|
+
- name: "review_timeout"
|
|
642
|
+
description: "Señalar las stories en review desde hace más de 2 días"
|
|
643
|
+
when: "status == 'review' && days_in_status > 2"
|
|
644
|
+
action: "flag" # flag | transition | notify
|
|
645
|
+
- name: "priority_bump"
|
|
646
|
+
description: "Notificar las stories listas de alta prioridad"
|
|
647
|
+
when: "priority == 'high' && status == 'ready-for-dev'"
|
|
648
|
+
action: "notify"
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
Próximos pasos: `/project:backlog next story` (elegir la próxima story enrutada), `/workflow:implement` (iniciar el desarrollo).
|
|
652
|
+
|
|
653
|
+
Ejemplos: `/project:backlog move story US-005 review`, `/project:backlog move story US-003 blocked "Esperando una API externa"`, `/project:backlog move story --auto --dry-run`, `/project:backlog move story --auto`.
|