ma-agents 3.4.9 → 3.5.0
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/AiAudit.md +7 -0
- package/README.md +78 -29
- package/_bmad-output/implementation-artifacts/17-10-rework-generate-backlog.md +237 -0
- package/_bmad-output/implementation-artifacts/17-11-rework-add-to-sprint.md +339 -0
- package/_bmad-output/implementation-artifacts/17-12-rework-remove-from-sprint.md +348 -0
- package/_bmad-output/implementation-artifacts/17-13-rework-sprint-status-view.md +383 -0
- package/_bmad-output/implementation-artifacts/17-14-rework-cleanup-done.md +348 -0
- package/_bmad-output/implementation-artifacts/17-15-rework-bmad-sprint-planning.md +385 -0
- package/_bmad-output/implementation-artifacts/17-16-rework-add-sprint.md +362 -0
- package/_bmad-output/implementation-artifacts/17-17-rework-modify-sprint.md +477 -0
- package/_bmad-output/implementation-artifacts/17-18-rework-bmad-dev-story.md +377 -0
- package/_bmad-output/implementation-artifacts/17-19-rework-story-status-lookup.md +301 -0
- package/_bmad-output/implementation-artifacts/17-20-rework-bmad-sprint-status.md +508 -0
- package/_bmad-output/implementation-artifacts/17-21-new-close-sprint.md +455 -0
- package/_bmad-output/implementation-artifacts/17-22-jira-adapter-pattern.md +325 -0
- package/_bmad-output/implementation-artifacts/17-23-migration-deprecation-old-files.md +403 -0
- package/_bmad-output/implementation-artifacts/17-24-rework-prioritize-backlog.md +344 -0
- package/_bmad-output/implementation-artifacts/17-9-unified-sprint-status-schema.md +279 -0
- package/_bmad-output/implementation-artifacts/4-1-vs-agent-registry-entry.md +173 -0
- package/_bmad-output/implementation-artifacts/4-2-vs-skill-template-format.md +129 -0
- package/_bmad-output/implementation-artifacts/5-5-explicit-parameter-passing.md +274 -0
- package/_bmad-output/implementation-artifacts/5-6-fix-space-in-path-bug.md +186 -0
- package/_bmad-output/implementation-artifacts/7-1-test-infrastructure-setup.md +144 -0
- package/_bmad-output/implementation-artifacts/7-2-installer-pipeline-tests.md +132 -0
- package/_bmad-output/implementation-artifacts/7-3-bmad-pipeline-tests.md +119 -0
- package/_bmad-output/implementation-artifacts/7-4-cli-command-routing-tests.md +162 -0
- package/_bmad-output/implementation-artifacts/deferred-work.md +9 -0
- package/_bmad-output/implementation-artifacts/done/1-1-ci-cd-yes-flag.md +200 -0
- package/_bmad-output/implementation-artifacts/done/10-1-ensure-bmad-output-not-gitignored.md +172 -0
- package/_bmad-output/implementation-artifacts/done/10-2-document-bmad-output-policy.md +102 -0
- package/_bmad-output/implementation-artifacts/done/11-1-auto-bug-detection-skill.md +119 -0
- package/_bmad-output/implementation-artifacts/done/11-2-bug-story-extension-workflow.md +132 -0
- package/_bmad-output/implementation-artifacts/done/11-3-integrate-bug-detection-code-review.md +111 -0
- package/_bmad-output/implementation-artifacts/done/12-1-add-sprint-workflow.md +126 -0
- package/_bmad-output/implementation-artifacts/done/12-2-add-to-sprint-workflow.md +137 -0
- package/_bmad-output/implementation-artifacts/done/12-3-modify-sprint-workflow.md +127 -0
- package/_bmad-output/implementation-artifacts/done/12-4-sprint-status-assigned-items.md +129 -0
- package/_bmad-output/implementation-artifacts/done/13-1-project-context-template-and-generator.md +179 -0
- package/_bmad-output/implementation-artifacts/done/13-2-install-pipeline-integration.md +138 -0
- package/_bmad-output/implementation-artifacts/done/13-3-bmad-critical-actions-update.md +150 -0
- package/_bmad-output/implementation-artifacts/done/13-4-retrospective-expansion-trigger.md +128 -0
- package/_bmad-output/implementation-artifacts/done/13-5-document-project-context-generation.md +118 -0
- package/_bmad-output/implementation-artifacts/done/15-1-bump-bmad-method-to-6-2-1.md +132 -0
- package/_bmad-output/implementation-artifacts/done/15-2-restructure-extension-module.md +174 -0
- package/_bmad-output/implementation-artifacts/done/15-3-convert-custom-agents-to-skill-folders.md +183 -0
- package/_bmad-output/implementation-artifacts/done/15-4-convert-mil498-workflows-to-skill-md.md +252 -0
- package/_bmad-output/implementation-artifacts/done/15-5-convert-sre-devops-cyber-workflows.md +232 -0
- package/_bmad-output/implementation-artifacts/done/15-6-separate-built-in-agent-customizations.md +163 -0
- package/_bmad-output/implementation-artifacts/done/15-7-migration-detection-and-upgrade-path.md +133 -0
- package/_bmad-output/implementation-artifacts/done/15-8-validate-migrated-agents-and-workflows.md +172 -0
- package/_bmad-output/implementation-artifacts/done/15-8-validation-report.md +342 -0
- package/_bmad-output/implementation-artifacts/done/16-1-repository-layout-wizard.md +223 -0
- package/_bmad-output/implementation-artifacts/done/16-2-config-storage-and-cross-reference.md +180 -0
- package/_bmad-output/implementation-artifacts/done/16-3-project-context-multi-repo-section.md +136 -0
- package/_bmad-output/implementation-artifacts/done/16-4-validate-cross-repo-path-resolution.md +137 -0
- package/_bmad-output/implementation-artifacts/done/16-4-validation-report.md +79 -0
- package/_bmad-output/implementation-artifacts/done/16-5-fix-config-lost-on-update.md +110 -0
- package/_bmad-output/implementation-artifacts/done/16-6-repo-sync-check-skill.md +116 -0
- package/_bmad-output/implementation-artifacts/done/16-7-portable-path-storage.md +109 -0
- package/_bmad-output/implementation-artifacts/done/16-8-cicd-remote-mode.md +97 -0
- package/_bmad-output/implementation-artifacts/done/16-9-reconfigure-layout-workflow.md +125 -0
- package/_bmad-output/implementation-artifacts/done/17-1-sprint-entity-model.md +322 -0
- package/_bmad-output/implementation-artifacts/done/17-2-flat-backlog-model.md +264 -0
- package/_bmad-output/implementation-artifacts/done/17-3-bug-as-story-type.md +208 -0
- package/_bmad-output/implementation-artifacts/done/17-4-backlog-to-sprint-workflow.md +209 -0
- package/_bmad-output/implementation-artifacts/done/17-5-sprint-to-backlog-workflow.md +221 -0
- package/_bmad-output/implementation-artifacts/done/17-6-done-item-cleanup.md +273 -0
- package/_bmad-output/implementation-artifacts/done/17-7-multi-criteria-prioritization.md +235 -0
- package/_bmad-output/implementation-artifacts/done/17-8-rework-sprint-status-display.md +285 -0
- package/_bmad-output/implementation-artifacts/done/2-1-cpp-coding-standards-skill.md +188 -0
- package/_bmad-output/implementation-artifacts/done/2-2-csharp-coding-standards-skill.md +211 -0
- package/_bmad-output/implementation-artifacts/done/2-3-python-coding-standards-skill.md +189 -0
- package/_bmad-output/implementation-artifacts/done/3-1-skill-scaffolding-tool.md +184 -0
- package/_bmad-output/implementation-artifacts/done/3-2-skill-validation-tool.md +178 -0
- package/_bmad-output/implementation-artifacts/done/3-3-mandatory-skill-designation.md +136 -0
- package/_bmad-output/implementation-artifacts/done/3-4-bmad-persona-customization-tooling.md +141 -0
- package/_bmad-output/implementation-artifacts/done/3-5-specialized-agent-development-tooling.md +145 -0
- package/_bmad-output/implementation-artifacts/done/5-1-bmad-method-direct-dependency.md +188 -0
- package/_bmad-output/implementation-artifacts/done/5-2-bmad-cache-build-script.md +219 -0
- package/_bmad-output/implementation-artifacts/done/5-3-pre-populate-bmad-cache.md +234 -0
- package/_bmad-output/implementation-artifacts/done/5-4-validate-bundled-installation.md +274 -0
- package/_bmad-output/implementation-artifacts/done/6-1-methodology-presentation-bundle.md +173 -0
- package/_bmad-output/implementation-artifacts/done/8-1-move-instruction-injection-to-top.md +131 -0
- package/_bmad-output/implementation-artifacts/done/8-2-agent-aware-injection-strategy.md +124 -0
- package/_bmad-output/implementation-artifacts/done/8-3-create-bmad-extension-module.md +187 -0
- package/_bmad-output/implementation-artifacts/done/8-4-integration-verification.md +102 -0
- package/_bmad-output/implementation-artifacts/done/8-5-per-agent-enforcement-hooks-research.md +126 -0
- package/_bmad-output/implementation-artifacts/done/8-6-context-persistence-research.md +101 -0
- package/_bmad-output/implementation-artifacts/done/9-1-register-opencode-agent.md +73 -0
- package/_bmad-output/implementation-artifacts/done/9-2-json-merge-injection.md +91 -0
- package/_bmad-output/implementation-artifacts/done/9-3-json-merge-existing.md +113 -0
- package/_bmad-output/implementation-artifacts/done/9-4-json-error-handling.md +90 -0
- package/_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md +53 -0
- package/_bmad-output/implementation-artifacts/epic-15-adversarial-fixes.md +287 -0
- package/_bmad-output/implementation-artifacts/epic-16-adversarial-review.md +49 -0
- package/_bmad-output/implementation-artifacts/epic-16-edge-case-review.md +230 -0
- package/_bmad-output/implementation-artifacts/epic-17-adversarial-review.md +37 -0
- package/_bmad-output/implementation-artifacts/epic-17-edge-case-review.md +140 -0
- package/_bmad-output/implementation-artifacts/sprint-status.yaml +83 -0
- package/_bmad-output/methodology/BMAD_AI_Development_Training.pptx +0 -0
- package/_bmad-output/methodology/version.json +7 -0
- package/_bmad-output/planning-artifacts/adapter-pattern-spec.md +508 -0
- package/_bmad-output/planning-artifacts/architecture.md +1619 -0
- package/_bmad-output/planning-artifacts/domain-research-roocode-2026-03-31.md +295 -0
- package/_bmad-output/planning-artifacts/epics.md +3287 -0
- package/_bmad-output/planning-artifacts/mil498-workflow-audit.md +290 -0
- package/_bmad-output/planning-artifacts/prd.md +684 -0
- package/_bmad-output/planning-artifacts/product-brief-agents-2026-03-08.md +214 -0
- package/_bmad-output/planning-artifacts/sprint-status-schema.md +506 -0
- package/_bmad-output/project-context.md +47 -0
- package/lib/bmad-extension/module-help.csv +26 -4
- package/lib/bmad-extension/skills/add-sprint/SKILL.md +126 -72
- package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +124 -96
- package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-dev-story}/bmad-skill-manifest.yaml +1 -1
- package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/checklist.md +13 -13
- package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/workflow.md +103 -44
- package/lib/bmad-extension/skills/bmad-ma-agent-mil498/SKILL.md +2 -1
- package/lib/bmad-extension/skills/bmad-sprint-planning/SKILL.md +6 -0
- package/lib/bmad-extension/skills/bmad-sprint-planning/bmad-skill-manifest.yaml +3 -0
- package/lib/bmad-extension/skills/bmad-sprint-planning/checklist.md +74 -0
- package/lib/bmad-extension/skills/bmad-sprint-planning/sprint-status-template.yaml +89 -0
- package/lib/bmad-extension/skills/bmad-sprint-planning/workflow.md +372 -0
- package/lib/bmad-extension/skills/bmad-sprint-status/SKILL.md +6 -0
- package/{.opencode/skills/create-bug-story → lib/bmad-extension/skills/bmad-sprint-status}/bmad-skill-manifest.yaml +1 -1
- package/lib/bmad-extension/skills/bmad-sprint-status/workflow.md +434 -0
- package/lib/bmad-extension/skills/cleanup-done/SKILL.md +215 -0
- package/lib/bmad-extension/skills/close-sprint/SKILL.md +379 -0
- package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/close-sprint}/bmad-skill-manifest.yaml +1 -1
- package/lib/bmad-extension/skills/generate-backlog/SKILL.md +195 -0
- package/lib/bmad-extension/skills/mil498-requirement-quality/SKILL.md +105 -0
- package/lib/bmad-extension/skills/mil498-requirement-quality/bmad-skill-manifest.yaml +5 -0
- package/lib/bmad-extension/skills/mil498-ssdd/prompts/05-validate.md +4 -0
- package/lib/bmad-extension/skills/modify-sprint/SKILL.md +227 -175
- package/lib/bmad-extension/skills/prioritize-backlog/SKILL.md +217 -0
- package/lib/bmad-extension/skills/remove-from-sprint/SKILL.md +184 -0
- package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +165 -190
- package/lib/bmad-extension/workflows/add-sprint/workflow.md +125 -71
- package/lib/bmad-extension/workflows/add-to-sprint/workflow.md +123 -95
- package/lib/bmad-extension/workflows/modify-sprint/workflow.md +228 -176
- package/lib/bmad-extension/workflows/remove-from-sprint/workflow.md +164 -0
- package/lib/bmad-extension/workflows/sprint-status-view/workflow.md +162 -189
- package/mil498/README.md +4 -0
- package/out.txt +0 -0
- package/package.json +1 -1
- package/skills/add-sprint/SKILL.md +165 -0
- package/skills/add-sprint/skill.json +7 -0
- package/skills/add-to-sprint/SKILL.md +231 -0
- package/skills/add-to-sprint/skill.json +7 -0
- package/skills/bmad-sprint-planning/SKILL.md +321 -0
- package/skills/bmad-sprint-planning/skill.json +7 -0
- package/skills/bmad-sprint-status/SKILL.md +273 -0
- package/skills/bmad-sprint-status/skill.json +7 -0
- package/skills/cleanup-done/SKILL.md +203 -0
- package/skills/cleanup-done/skill.json +7 -0
- package/skills/close-sprint/SKILL.md +370 -0
- package/skills/close-sprint/skill.json +7 -0
- package/skills/generate-backlog/SKILL.md +178 -0
- package/skills/generate-backlog/skill.json +7 -0
- package/skills/modify-sprint/SKILL.md +302 -0
- package/skills/modify-sprint/skill.json +7 -0
- package/skills/prioritize-backlog/SKILL.md +203 -0
- package/skills/prioritize-backlog/skill.json +7 -0
- package/skills/remove-from-sprint/SKILL.md +174 -0
- package/skills/remove-from-sprint/skill.json +7 -0
- package/skills/sprint-status-view/SKILL.md +173 -0
- package/skills/sprint-status-view/skill.json +7 -0
- package/skills/story-status-lookup/SKILL.md +21 -6
- package/skills/story-status-lookup/skill.json +2 -2
- package/test/extension-module-restructure.test.js +12 -11
- package/test/migration-validation.test.js +10 -10
- package/.opencode/skills/.ma-agents.json +0 -241
- package/.opencode/skills/MANIFEST.yaml +0 -254
- package/.opencode/skills/add-sprint/SKILL.md +0 -207
- package/.opencode/skills/add-to-sprint/SKILL.md +0 -189
- package/.opencode/skills/ai-audit-trail/SKILL.md +0 -23
- package/.opencode/skills/auto-bug-detection/SKILL.md +0 -169
- package/.opencode/skills/bmad-advanced-elicitation/SKILL.md +0 -137
- package/.opencode/skills/bmad-advanced-elicitation/methods.csv +0 -51
- package/.opencode/skills/bmad-agent-analyst/SKILL.md +0 -56
- package/.opencode/skills/bmad-agent-analyst/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-architect/SKILL.md +0 -52
- package/.opencode/skills/bmad-agent-architect/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-dev/SKILL.md +0 -62
- package/.opencode/skills/bmad-agent-dev/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-pm/SKILL.md +0 -57
- package/.opencode/skills/bmad-agent-pm/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-qa/SKILL.md +0 -59
- package/.opencode/skills/bmad-agent-qa/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-quick-flow-solo-dev/SKILL.md +0 -51
- package/.opencode/skills/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-sm/SKILL.md +0 -53
- package/.opencode/skills/bmad-agent-sm/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-tech-writer/SKILL.md +0 -55
- package/.opencode/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-agent-tech-writer/explain-concept.md +0 -20
- package/.opencode/skills/bmad-agent-tech-writer/mermaid-gen.md +0 -20
- package/.opencode/skills/bmad-agent-tech-writer/validate-doc.md +0 -19
- package/.opencode/skills/bmad-agent-tech-writer/write-document.md +0 -20
- package/.opencode/skills/bmad-agent-ux-designer/SKILL.md +0 -53
- package/.opencode/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-brainstorming/SKILL.md +0 -6
- package/.opencode/skills/bmad-brainstorming/brain-methods.csv +0 -62
- package/.opencode/skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -214
- package/.opencode/skills/bmad-brainstorming/steps/step-01b-continue.md +0 -124
- package/.opencode/skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -229
- package/.opencode/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -239
- package/.opencode/skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -211
- package/.opencode/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -266
- package/.opencode/skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -401
- package/.opencode/skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -305
- package/.opencode/skills/bmad-brainstorming/template.md +0 -15
- package/.opencode/skills/bmad-brainstorming/workflow.md +0 -53
- package/.opencode/skills/bmad-check-implementation-readiness/SKILL.md +0 -6
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -179
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -168
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -169
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -129
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -241
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -126
- package/.opencode/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -4
- package/.opencode/skills/bmad-check-implementation-readiness/workflow.md +0 -49
- package/.opencode/skills/bmad-cis-design-thinking/SKILL.md +0 -6
- package/.opencode/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +0 -1
- package/.opencode/skills/bmad-cis-design-thinking/design-methods.csv +0 -31
- package/.opencode/skills/bmad-cis-design-thinking/template.md +0 -111
- package/.opencode/skills/bmad-cis-design-thinking/workflow.md +0 -242
- package/.opencode/skills/bmad-cis-innovation-strategy/SKILL.md +0 -6
- package/.opencode/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +0 -1
- package/.opencode/skills/bmad-cis-innovation-strategy/innovation-frameworks.csv +0 -31
- package/.opencode/skills/bmad-cis-innovation-strategy/template.md +0 -189
- package/.opencode/skills/bmad-cis-innovation-strategy/workflow.md +0 -315
- package/.opencode/skills/bmad-cis-problem-solving/SKILL.md +0 -6
- package/.opencode/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +0 -1
- package/.opencode/skills/bmad-cis-problem-solving/solving-methods.csv +0 -31
- package/.opencode/skills/bmad-cis-problem-solving/template.md +0 -165
- package/.opencode/skills/bmad-cis-problem-solving/workflow.md +0 -291
- package/.opencode/skills/bmad-cis-storytelling/SKILL.md +0 -6
- package/.opencode/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +0 -1
- package/.opencode/skills/bmad-cis-storytelling/story-types.csv +0 -26
- package/.opencode/skills/bmad-cis-storytelling/template.md +0 -113
- package/.opencode/skills/bmad-cis-storytelling/workflow.md +0 -321
- package/.opencode/skills/bmad-code-review/SKILL.md +0 -6
- package/.opencode/skills/bmad-code-review/steps/step-01-gather-context.md +0 -62
- package/.opencode/skills/bmad-code-review/steps/step-02-review.md +0 -34
- package/.opencode/skills/bmad-code-review/steps/step-03-triage.md +0 -49
- package/.opencode/skills/bmad-code-review/steps/step-04-present.md +0 -129
- package/.opencode/skills/bmad-code-review/workflow.md +0 -55
- package/.opencode/skills/bmad-correct-course/SKILL.md +0 -6
- package/.opencode/skills/bmad-correct-course/checklist.md +0 -288
- package/.opencode/skills/bmad-correct-course/workflow.md +0 -267
- package/.opencode/skills/bmad-create-architecture/SKILL.md +0 -6
- package/.opencode/skills/bmad-create-architecture/architecture-decision-template.md +0 -12
- package/.opencode/skills/bmad-create-architecture/data/domain-complexity.csv +0 -13
- package/.opencode/skills/bmad-create-architecture/data/project-types.csv +0 -7
- package/.opencode/skills/bmad-create-architecture/steps/step-01-init.md +0 -153
- package/.opencode/skills/bmad-create-architecture/steps/step-01b-continue.md +0 -173
- package/.opencode/skills/bmad-create-architecture/steps/step-02-context.md +0 -224
- package/.opencode/skills/bmad-create-architecture/steps/step-03-starter.md +0 -329
- package/.opencode/skills/bmad-create-architecture/steps/step-04-decisions.md +0 -318
- package/.opencode/skills/bmad-create-architecture/steps/step-05-patterns.md +0 -359
- package/.opencode/skills/bmad-create-architecture/steps/step-06-structure.md +0 -379
- package/.opencode/skills/bmad-create-architecture/steps/step-07-validation.md +0 -359
- package/.opencode/skills/bmad-create-architecture/steps/step-08-complete.md +0 -76
- package/.opencode/skills/bmad-create-architecture/workflow.md +0 -38
- package/.opencode/skills/bmad-create-epics-and-stories/SKILL.md +0 -6
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -255
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -212
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -255
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -131
- package/.opencode/skills/bmad-create-epics-and-stories/templates/epics-template.md +0 -61
- package/.opencode/skills/bmad-create-epics-and-stories/workflow.md +0 -53
- package/.opencode/skills/bmad-create-prd/SKILL.md +0 -6
- package/.opencode/skills/bmad-create-prd/data/domain-complexity.csv +0 -15
- package/.opencode/skills/bmad-create-prd/data/prd-purpose.md +0 -197
- package/.opencode/skills/bmad-create-prd/data/project-types.csv +0 -11
- package/.opencode/skills/bmad-create-prd/steps-c/step-01-init.md +0 -178
- package/.opencode/skills/bmad-create-prd/steps-c/step-01b-continue.md +0 -161
- package/.opencode/skills/bmad-create-prd/steps-c/step-02-discovery.md +0 -208
- package/.opencode/skills/bmad-create-prd/steps-c/step-02b-vision.md +0 -142
- package/.opencode/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -158
- package/.opencode/skills/bmad-create-prd/steps-c/step-03-success.md +0 -214
- package/.opencode/skills/bmad-create-prd/steps-c/step-04-journeys.md +0 -201
- package/.opencode/skills/bmad-create-prd/steps-c/step-05-domain.md +0 -194
- package/.opencode/skills/bmad-create-prd/steps-c/step-06-innovation.md +0 -211
- package/.opencode/skills/bmad-create-prd/steps-c/step-07-project-type.md +0 -222
- package/.opencode/skills/bmad-create-prd/steps-c/step-08-scoping.md +0 -216
- package/.opencode/skills/bmad-create-prd/steps-c/step-09-functional.md +0 -219
- package/.opencode/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -230
- package/.opencode/skills/bmad-create-prd/steps-c/step-11-polish.md +0 -221
- package/.opencode/skills/bmad-create-prd/steps-c/step-12-complete.md +0 -115
- package/.opencode/skills/bmad-create-prd/templates/prd-template.md +0 -10
- package/.opencode/skills/bmad-create-prd/workflow.md +0 -62
- package/.opencode/skills/bmad-create-story/SKILL.md +0 -6
- package/.opencode/skills/bmad-create-story/checklist.md +0 -357
- package/.opencode/skills/bmad-create-story/discover-inputs.md +0 -88
- package/.opencode/skills/bmad-create-story/template.md +0 -49
- package/.opencode/skills/bmad-create-story/workflow.md +0 -380
- package/.opencode/skills/bmad-create-ux-design/SKILL.md +0 -6
- package/.opencode/skills/bmad-create-ux-design/steps/step-01-init.md +0 -135
- package/.opencode/skills/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
- package/.opencode/skills/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
- package/.opencode/skills/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
- package/.opencode/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
- package/.opencode/skills/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
- package/.opencode/skills/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
- package/.opencode/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
- package/.opencode/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
- package/.opencode/skills/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
- package/.opencode/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
- package/.opencode/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
- package/.opencode/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
- package/.opencode/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
- package/.opencode/skills/bmad-create-ux-design/steps/step-14-complete.md +0 -171
- package/.opencode/skills/bmad-create-ux-design/ux-design-template.md +0 -13
- package/.opencode/skills/bmad-create-ux-design/workflow.md +0 -36
- package/.opencode/skills/bmad-distillator/SKILL.md +0 -178
- package/.opencode/skills/bmad-distillator/agents/distillate-compressor.md +0 -116
- package/.opencode/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
- package/.opencode/skills/bmad-distillator/resources/compression-rules.md +0 -51
- package/.opencode/skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
- package/.opencode/skills/bmad-distillator/resources/splitting-strategy.md +0 -78
- package/.opencode/skills/bmad-distillator/scripts/analyze_sources.py +0 -300
- package/.opencode/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
- package/.opencode/skills/bmad-document-project/SKILL.md +0 -6
- package/.opencode/skills/bmad-document-project/checklist.md +0 -245
- package/.opencode/skills/bmad-document-project/documentation-requirements.csv +0 -12
- package/.opencode/skills/bmad-document-project/instructions.md +0 -128
- package/.opencode/skills/bmad-document-project/templates/deep-dive-template.md +0 -345
- package/.opencode/skills/bmad-document-project/templates/index-template.md +0 -169
- package/.opencode/skills/bmad-document-project/templates/project-overview-template.md +0 -103
- package/.opencode/skills/bmad-document-project/templates/project-scan-report-schema.json +0 -160
- package/.opencode/skills/bmad-document-project/templates/source-tree-template.md +0 -135
- package/.opencode/skills/bmad-document-project/workflow.md +0 -27
- package/.opencode/skills/bmad-document-project/workflows/deep-dive-instructions.md +0 -299
- package/.opencode/skills/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
- package/.opencode/skills/bmad-document-project/workflows/full-scan-instructions.md +0 -1107
- package/.opencode/skills/bmad-document-project/workflows/full-scan-workflow.md +0 -34
- package/.opencode/skills/bmad-domain-research/SKILL.md +0 -6
- package/.opencode/skills/bmad-domain-research/domain-steps/step-01-init.md +0 -137
- package/.opencode/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
- package/.opencode/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
- package/.opencode/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
- package/.opencode/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
- package/.opencode/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -444
- package/.opencode/skills/bmad-domain-research/research.template.md +0 -29
- package/.opencode/skills/bmad-domain-research/workflow.md +0 -49
- package/.opencode/skills/bmad-edit-prd/SKILL.md +0 -6
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -165
- package/.opencode/skills/bmad-edit-prd/workflow.md +0 -63
- package/.opencode/skills/bmad-editorial-review-prose/SKILL.md +0 -86
- package/.opencode/skills/bmad-editorial-review-structure/SKILL.md +0 -179
- package/.opencode/skills/bmad-generate-project-context/SKILL.md +0 -6
- package/.opencode/skills/bmad-generate-project-context/project-context-template.md +0 -21
- package/.opencode/skills/bmad-generate-project-context/steps/step-01-discover.md +0 -186
- package/.opencode/skills/bmad-generate-project-context/steps/step-02-generate.md +0 -321
- package/.opencode/skills/bmad-generate-project-context/steps/step-03-complete.md +0 -278
- package/.opencode/skills/bmad-generate-project-context/workflow.md +0 -43
- package/.opencode/skills/bmad-help/SKILL.md +0 -73
- package/.opencode/skills/bmad-index-docs/SKILL.md +0 -66
- package/.opencode/skills/bmad-init/SKILL.md +0 -100
- package/.opencode/skills/bmad-init/resources/core-module.yaml +0 -25
- package/.opencode/skills/bmad-init/scripts/bmad_init.py +0 -593
- package/.opencode/skills/bmad-init/scripts/tests/test_bmad_init.py +0 -329
- package/.opencode/skills/bmad-ma-agent-cyber/SKILL.md +0 -49
- package/.opencode/skills/bmad-ma-agent-cyber/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-ma-agent-devops/SKILL.md +0 -49
- package/.opencode/skills/bmad-ma-agent-devops/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-ma-agent-mil498/SKILL.md +0 -53
- package/.opencode/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-ma-agent-ml/SKILL.md +0 -59
- package/.opencode/skills/bmad-ma-agent-ml/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-ma-agent-sre/SKILL.md +0 -49
- package/.opencode/skills/bmad-ma-agent-sre/bmad-skill-manifest.yaml +0 -11
- package/.opencode/skills/bmad-market-research/SKILL.md +0 -6
- package/.opencode/skills/bmad-market-research/research.template.md +0 -29
- package/.opencode/skills/bmad-market-research/steps/step-01-init.md +0 -184
- package/.opencode/skills/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
- package/.opencode/skills/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
- package/.opencode/skills/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
- package/.opencode/skills/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
- package/.opencode/skills/bmad-market-research/steps/step-06-research-completion.md +0 -478
- package/.opencode/skills/bmad-market-research/workflow.md +0 -49
- package/.opencode/skills/bmad-party-mode/SKILL.md +0 -6
- package/.opencode/skills/bmad-party-mode/steps/step-01-agent-loading.md +0 -138
- package/.opencode/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -187
- package/.opencode/skills/bmad-party-mode/steps/step-03-graceful-exit.md +0 -167
- package/.opencode/skills/bmad-party-mode/workflow.md +0 -190
- package/.opencode/skills/bmad-product-brief/SKILL.md +0 -87
- package/.opencode/skills/bmad-product-brief/agents/artifact-analyzer.md +0 -60
- package/.opencode/skills/bmad-product-brief/agents/opportunity-reviewer.md +0 -44
- package/.opencode/skills/bmad-product-brief/agents/skeptic-reviewer.md +0 -44
- package/.opencode/skills/bmad-product-brief/agents/web-researcher.md +0 -49
- package/.opencode/skills/bmad-product-brief/bmad-manifest.json +0 -17
- package/.opencode/skills/bmad-product-brief/prompts/contextual-discovery.md +0 -57
- package/.opencode/skills/bmad-product-brief/prompts/draft-and-review.md +0 -86
- package/.opencode/skills/bmad-product-brief/prompts/finalize.md +0 -75
- package/.opencode/skills/bmad-product-brief/prompts/guided-elicitation.md +0 -70
- package/.opencode/skills/bmad-product-brief/resources/brief-template.md +0 -60
- package/.opencode/skills/bmad-qa-generate-e2e-tests/SKILL.md +0 -6
- package/.opencode/skills/bmad-qa-generate-e2e-tests/checklist.md +0 -33
- package/.opencode/skills/bmad-qa-generate-e2e-tests/workflow.md +0 -136
- package/.opencode/skills/bmad-quick-dev/SKILL.md +0 -6
- package/.opencode/skills/bmad-quick-dev/spec-template.md +0 -88
- package/.opencode/skills/bmad-quick-dev/step-01-clarify-and-route.md +0 -64
- package/.opencode/skills/bmad-quick-dev/step-02-plan.md +0 -35
- package/.opencode/skills/bmad-quick-dev/step-03-implement.md +0 -37
- package/.opencode/skills/bmad-quick-dev/step-04-review.md +0 -49
- package/.opencode/skills/bmad-quick-dev/step-05-present.md +0 -63
- package/.opencode/skills/bmad-quick-dev/step-oneshot.md +0 -49
- package/.opencode/skills/bmad-quick-dev/workflow.md +0 -79
- package/.opencode/skills/bmad-retrospective/SKILL.md +0 -6
- package/.opencode/skills/bmad-retrospective/workflow.md +0 -1479
- package/.opencode/skills/bmad-review-adversarial-general/SKILL.md +0 -37
- package/.opencode/skills/bmad-review-edge-case-hunter/SKILL.md +0 -67
- package/.opencode/skills/bmad-shard-doc/SKILL.md +0 -105
- package/.opencode/skills/bmad-sprint-planning/SKILL.md +0 -6
- package/.opencode/skills/bmad-sprint-planning/checklist.md +0 -33
- package/.opencode/skills/bmad-sprint-planning/sprint-status-template.yaml +0 -56
- package/.opencode/skills/bmad-sprint-planning/workflow.md +0 -263
- package/.opencode/skills/bmad-sprint-status/SKILL.md +0 -6
- package/.opencode/skills/bmad-sprint-status/workflow.md +0 -261
- package/.opencode/skills/bmad-technical-research/SKILL.md +0 -6
- package/.opencode/skills/bmad-technical-research/research.template.md +0 -29
- package/.opencode/skills/bmad-technical-research/technical-steps/step-01-init.md +0 -137
- package/.opencode/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
- package/.opencode/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
- package/.opencode/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
- package/.opencode/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
- package/.opencode/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -487
- package/.opencode/skills/bmad-technical-research/workflow.md +0 -50
- package/.opencode/skills/bmad-validate-prd/SKILL.md +0 -6
- package/.opencode/skills/bmad-validate-prd/data/domain-complexity.csv +0 -15
- package/.opencode/skills/bmad-validate-prd/data/prd-purpose.md +0 -197
- package/.opencode/skills/bmad-validate-prd/data/project-types.csv +0 -11
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -221
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -188
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -206
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -171
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -211
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -225
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -214
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -202
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -240
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -260
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -206
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -261
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -239
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -229
- package/.opencode/skills/bmad-validate-prd/workflow.md +0 -62
- package/.opencode/skills/cleanup-done/SKILL.md +0 -159
- package/.opencode/skills/cmake-best-practices/SKILL.md +0 -64
- package/.opencode/skills/cmake-best-practices/examples/cmake.md +0 -59
- package/.opencode/skills/code-documentation/SKILL.md +0 -57
- package/.opencode/skills/code-documentation/examples/cpp.md +0 -29
- package/.opencode/skills/code-documentation/examples/csharp.md +0 -28
- package/.opencode/skills/code-documentation/examples/javascript_typescript.md +0 -28
- package/.opencode/skills/code-documentation/examples/python.md +0 -57
- package/.opencode/skills/code-review/SKILL.md +0 -43
- package/.opencode/skills/commit-message/SKILL.md +0 -79
- package/.opencode/skills/cpp-best-practices/SKILL.md +0 -234
- package/.opencode/skills/cpp-best-practices/examples/modern-idioms.md +0 -189
- package/.opencode/skills/cpp-best-practices/examples/naming-and-organization.md +0 -102
- package/.opencode/skills/cpp-concurrency-safety/SKILL.md +0 -60
- package/.opencode/skills/cpp-concurrency-safety/examples/concurrency.md +0 -73
- package/.opencode/skills/cpp-const-correctness/SKILL.md +0 -63
- package/.opencode/skills/cpp-const-correctness/examples/const_correctness.md +0 -54
- package/.opencode/skills/cpp-memory-handling/SKILL.md +0 -42
- package/.opencode/skills/cpp-memory-handling/examples/modern-cpp.md +0 -49
- package/.opencode/skills/cpp-memory-handling/examples/smart-pointers.md +0 -46
- package/.opencode/skills/cpp-modern-composition/SKILL.md +0 -64
- package/.opencode/skills/cpp-modern-composition/examples/composition.md +0 -51
- package/.opencode/skills/cpp-robust-interfaces/SKILL.md +0 -55
- package/.opencode/skills/cpp-robust-interfaces/examples/interfaces.md +0 -56
- package/.opencode/skills/create-bug-story/SKILL.md +0 -263
- package/.opencode/skills/create-hardened-docker-skill/SKILL.md +0 -637
- package/.opencode/skills/create-hardened-docker-skill/scripts/create-all.sh +0 -489
- package/.opencode/skills/csharp-best-practices/SKILL.md +0 -278
- package/.opencode/skills/cyber-generate-certs/.gitkeep +0 -0
- package/.opencode/skills/cyber-generate-certs/SKILL.md +0 -27
- package/.opencode/skills/cyber-generate-certs/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/cyber-immunity-estimation/.gitkeep +0 -0
- package/.opencode/skills/cyber-immunity-estimation/SKILL.md +0 -29
- package/.opencode/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/cyber-security-audit/.gitkeep +0 -0
- package/.opencode/skills/cyber-security-audit/SKILL.md +0 -27
- package/.opencode/skills/cyber-security-audit/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/cyber-vault-secrets/.gitkeep +0 -0
- package/.opencode/skills/cyber-vault-secrets/SKILL.md +0 -28
- package/.opencode/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/cyber-verify-docker-users/.gitkeep +0 -0
- package/.opencode/skills/cyber-verify-docker-users/SKILL.md +0 -23
- package/.opencode/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/cyber-verify-image-signature/.gitkeep +0 -0
- package/.opencode/skills/cyber-verify-image-signature/SKILL.md +0 -22
- package/.opencode/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/cyber-vulnerability-scan/.gitkeep +0 -0
- package/.opencode/skills/cyber-vulnerability-scan/SKILL.md +0 -28
- package/.opencode/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/devops-configure-infrastructure/.gitkeep +0 -0
- package/.opencode/skills/devops-configure-infrastructure/SKILL.md +0 -27
- package/.opencode/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/devops-disconnected-deployment/.gitkeep +0 -0
- package/.opencode/skills/devops-disconnected-deployment/SKILL.md +0 -27
- package/.opencode/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/devops-docker-compose-setup/.gitkeep +0 -0
- package/.opencode/skills/devops-docker-compose-setup/SKILL.md +0 -26
- package/.opencode/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/devops-manage-helm/.gitkeep +0 -0
- package/.opencode/skills/devops-manage-helm/SKILL.md +0 -28
- package/.opencode/skills/devops-manage-helm/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/devops-sign-docker-image/.gitkeep +0 -0
- package/.opencode/skills/devops-sign-docker-image/SKILL.md +0 -24
- package/.opencode/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/docker-hardening-verification/SKILL.md +0 -28
- package/.opencode/skills/docker-hardening-verification/scripts/verify-hardening.sh +0 -39
- package/.opencode/skills/docker-image-signing/SKILL.md +0 -28
- package/.opencode/skills/docker-image-signing/scripts/sign-image.sh +0 -33
- package/.opencode/skills/document-revision-history/SKILL.md +0 -104
- package/.opencode/skills/generate-backlog/.gitkeep +0 -0
- package/.opencode/skills/generate-backlog/SKILL.md +0 -183
- package/.opencode/skills/git-workflow-skill/SKILL.md +0 -194
- package/.opencode/skills/git-workflow-skill/hooks/commit-msg +0 -61
- package/.opencode/skills/git-workflow-skill/hooks/pre-commit +0 -38
- package/.opencode/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
- package/.opencode/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
- package/.opencode/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
- package/.opencode/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
- package/.opencode/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
- package/.opencode/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
- package/.opencode/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
- package/.opencode/skills/js-ts-security-skill/SKILL.md +0 -64
- package/.opencode/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
- package/.opencode/skills/logging-best-practices/SKILL.md +0 -50
- package/.opencode/skills/logging-best-practices/examples/cpp.md +0 -36
- package/.opencode/skills/logging-best-practices/examples/csharp.md +0 -49
- package/.opencode/skills/logging-best-practices/examples/javascript.md +0 -77
- package/.opencode/skills/logging-best-practices/examples/python.md +0 -57
- package/.opencode/skills/logging-best-practices/references/logging-standards.md +0 -29
- package/.opencode/skills/mil498-ocd/.gitkeep +0 -0
- package/.opencode/skills/mil498-ocd/SKILL.md +0 -30
- package/.opencode/skills/mil498-ocd/bmad-skill-manifest.yaml +0 -5
- package/.opencode/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +0 -26
- package/.opencode/skills/mil498-ocd/prompts/02-load-template.md +0 -10
- package/.opencode/skills/mil498-ocd/prompts/03-generate-document.md +0 -90
- package/.opencode/skills/mil498-ocd/prompts/04-validate.md +0 -14
- package/.opencode/skills/mil498-ocd/prompts/05-review.md +0 -15
- package/.opencode/skills/mil498-ocd/prompts/06-save.md +0 -15
- package/.opencode/skills/mil498-sdd/.gitkeep +0 -0
- package/.opencode/skills/mil498-sdd/SKILL.md +0 -30
- package/.opencode/skills/mil498-sdd/bmad-skill-manifest.yaml +0 -5
- package/.opencode/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +0 -50
- package/.opencode/skills/mil498-sdd/prompts/02-load-template.md +0 -10
- package/.opencode/skills/mil498-sdd/prompts/03-generate-document.md +0 -98
- package/.opencode/skills/mil498-sdd/prompts/04-validate.md +0 -16
- package/.opencode/skills/mil498-sdd/prompts/05-review.md +0 -15
- package/.opencode/skills/mil498-sdd/prompts/06-save.md +0 -19
- package/.opencode/skills/mil498-sdd/template.md +0 -163
- package/.opencode/skills/mil498-sdp/.gitkeep +0 -0
- package/.opencode/skills/mil498-sdp/SKILL.md +0 -30
- package/.opencode/skills/mil498-sdp/bmad-skill-manifest.yaml +0 -5
- package/.opencode/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +0 -32
- package/.opencode/skills/mil498-sdp/prompts/02-load-template.md +0 -10
- package/.opencode/skills/mil498-sdp/prompts/03-generate-document.md +0 -187
- package/.opencode/skills/mil498-sdp/prompts/04-validate.md +0 -13
- package/.opencode/skills/mil498-sdp/prompts/05-review.md +0 -15
- package/.opencode/skills/mil498-sdp/prompts/06-save.md +0 -14
- package/.opencode/skills/mil498-srs/.gitkeep +0 -0
- package/.opencode/skills/mil498-srs/SKILL.md +0 -30
- package/.opencode/skills/mil498-srs/bmad-skill-manifest.yaml +0 -5
- package/.opencode/skills/mil498-srs/prompts/01-discover-project-artifacts.md +0 -42
- package/.opencode/skills/mil498-srs/prompts/02-load-template.md +0 -10
- package/.opencode/skills/mil498-srs/prompts/03-generate-document.md +0 -100
- package/.opencode/skills/mil498-srs/prompts/04-validate.md +0 -16
- package/.opencode/skills/mil498-srs/prompts/05-review.md +0 -15
- package/.opencode/skills/mil498-srs/prompts/06-save.md +0 -18
- package/.opencode/skills/mil498-ssdd/.gitkeep +0 -0
- package/.opencode/skills/mil498-ssdd/SKILL.md +0 -32
- package/.opencode/skills/mil498-ssdd/bmad-skill-manifest.yaml +0 -5
- package/.opencode/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +0 -32
- package/.opencode/skills/mil498-ssdd/prompts/02-load-template.md +0 -10
- package/.opencode/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +0 -43
- package/.opencode/skills/mil498-ssdd/prompts/04-generate-document.md +0 -96
- package/.opencode/skills/mil498-ssdd/prompts/05-validate.md +0 -14
- package/.opencode/skills/mil498-ssdd/prompts/06-review.md +0 -16
- package/.opencode/skills/mil498-ssdd/prompts/07-save.md +0 -16
- package/.opencode/skills/mil498-sss/.gitkeep +0 -0
- package/.opencode/skills/mil498-sss/SKILL.md +0 -31
- package/.opencode/skills/mil498-sss/bmad-skill-manifest.yaml +0 -5
- package/.opencode/skills/mil498-sss/prompts/01-discover-project-artifacts.md +0 -31
- package/.opencode/skills/mil498-sss/prompts/02-load-template.md +0 -10
- package/.opencode/skills/mil498-sss/prompts/03-generate-document.md +0 -108
- package/.opencode/skills/mil498-sss/prompts/04-validate.md +0 -16
- package/.opencode/skills/mil498-sss/prompts/05-review.md +0 -15
- package/.opencode/skills/mil498-sss/prompts/06-save.md +0 -15
- package/.opencode/skills/mil498-std/.gitkeep +0 -0
- package/.opencode/skills/mil498-std/SKILL.md +0 -30
- package/.opencode/skills/mil498-std/bmad-skill-manifest.yaml +0 -5
- package/.opencode/skills/mil498-std/prompts/01-discover-project-artifacts.md +0 -42
- package/.opencode/skills/mil498-std/prompts/02-load-template.md +0 -10
- package/.opencode/skills/mil498-std/prompts/03-generate-document.md +0 -117
- package/.opencode/skills/mil498-std/prompts/04-validate.md +0 -15
- package/.opencode/skills/mil498-std/prompts/05-review.md +0 -15
- package/.opencode/skills/mil498-std/prompts/06-save.md +0 -15
- package/.opencode/skills/ml-advise/.gitkeep +0 -0
- package/.opencode/skills/ml-advise/SKILL.md +0 -76
- package/.opencode/skills/ml-advise/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-advise/skill.json +0 -7
- package/.opencode/skills/ml-analysis/.gitkeep +0 -0
- package/.opencode/skills/ml-analysis/SKILL.md +0 -60
- package/.opencode/skills/ml-analysis/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-analysis/skill.json +0 -7
- package/.opencode/skills/ml-architecture/.gitkeep +0 -0
- package/.opencode/skills/ml-architecture/SKILL.md +0 -55
- package/.opencode/skills/ml-architecture/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-architecture/skill.json +0 -7
- package/.opencode/skills/ml-detailed-design/.gitkeep +0 -0
- package/.opencode/skills/ml-detailed-design/SKILL.md +0 -67
- package/.opencode/skills/ml-detailed-design/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-detailed-design/skill.json +0 -7
- package/.opencode/skills/ml-eda/.gitkeep +0 -0
- package/.opencode/skills/ml-eda/SKILL.md +0 -56
- package/.opencode/skills/ml-eda/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-eda/scripts/baseline_classifier.py +0 -522
- package/.opencode/skills/ml-eda/scripts/class_weights_calculator.py +0 -295
- package/.opencode/skills/ml-eda/scripts/clustering_explorer.py +0 -383
- package/.opencode/skills/ml-eda/scripts/eda_analyzer.py +0 -654
- package/.opencode/skills/ml-eda/skill.json +0 -7
- package/.opencode/skills/ml-experiment/.gitkeep +0 -0
- package/.opencode/skills/ml-experiment/SKILL.md +0 -74
- package/.opencode/skills/ml-experiment/assets/advanced_trainer_configs.py +0 -430
- package/.opencode/skills/ml-experiment/assets/quick_trainer_setup.py +0 -233
- package/.opencode/skills/ml-experiment/assets/template_datamodule.py +0 -219
- package/.opencode/skills/ml-experiment/assets/template_gnn_module.py +0 -341
- package/.opencode/skills/ml-experiment/assets/template_lightning_module.py +0 -158
- package/.opencode/skills/ml-experiment/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-experiment/skill.json +0 -7
- package/.opencode/skills/ml-hparam/.gitkeep +0 -0
- package/.opencode/skills/ml-hparam/SKILL.md +0 -81
- package/.opencode/skills/ml-hparam/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-hparam/skill.json +0 -7
- package/.opencode/skills/ml-ideation/.gitkeep +0 -0
- package/.opencode/skills/ml-ideation/SKILL.md +0 -50
- package/.opencode/skills/ml-ideation/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-ideation/scripts/validate_ml_prd.py +0 -287
- package/.opencode/skills/ml-ideation/skill.json +0 -7
- package/.opencode/skills/ml-infra/.gitkeep +0 -0
- package/.opencode/skills/ml-infra/SKILL.md +0 -58
- package/.opencode/skills/ml-infra/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-infra/skill.json +0 -7
- package/.opencode/skills/ml-retrospective/.gitkeep +0 -0
- package/.opencode/skills/ml-retrospective/SKILL.md +0 -63
- package/.opencode/skills/ml-retrospective/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-retrospective/skill.json +0 -7
- package/.opencode/skills/ml-revision/.gitkeep +0 -0
- package/.opencode/skills/ml-revision/SKILL.md +0 -82
- package/.opencode/skills/ml-revision/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-revision/skill.json +0 -7
- package/.opencode/skills/ml-techspec/.gitkeep +0 -0
- package/.opencode/skills/ml-techspec/SKILL.md +0 -80
- package/.opencode/skills/ml-techspec/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/ml-techspec/skill.json +0 -7
- package/.opencode/skills/modify-sprint/.gitkeep +0 -0
- package/.opencode/skills/modify-sprint/SKILL.md +0 -322
- package/.opencode/skills/modify-sprint/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/open-presentation/SKILL.md +0 -35
- package/.opencode/skills/opentelemetry-best-practices/SKILL.md +0 -34
- package/.opencode/skills/opentelemetry-best-practices/examples/go.md +0 -32
- package/.opencode/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
- package/.opencode/skills/opentelemetry-best-practices/examples/python.md +0 -37
- package/.opencode/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
- package/.opencode/skills/prioritize-backlog/.gitkeep +0 -0
- package/.opencode/skills/prioritize-backlog/SKILL.md +0 -195
- package/.opencode/skills/project-context-expansion/.gitkeep +0 -0
- package/.opencode/skills/project-context-expansion/SKILL.md +0 -238
- package/.opencode/skills/project-context-expansion/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/python-best-practices/SKILL.md +0 -385
- package/.opencode/skills/python-dependency-mgmt/SKILL.md +0 -42
- package/.opencode/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
- package/.opencode/skills/python-security-skill/SKILL.md +0 -56
- package/.opencode/skills/python-security-skill/examples/security.md +0 -56
- package/.opencode/skills/remove-from-sprint/.gitkeep +0 -0
- package/.opencode/skills/remove-from-sprint/SKILL.md +0 -163
- package/.opencode/skills/self-signed-cert/SKILL.md +0 -42
- package/.opencode/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
- package/.opencode/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
- package/.opencode/skills/skill-creator/SKILL.md +0 -196
- package/.opencode/skills/skill-creator/references/output-patterns.md +0 -82
- package/.opencode/skills/skill-creator/references/workflows.md +0 -28
- package/.opencode/skills/skill-creator/scripts/init_skill.py +0 -208
- package/.opencode/skills/skill-creator/scripts/package_skill.py +0 -99
- package/.opencode/skills/skill-creator/scripts/quick_validate.py +0 -113
- package/.opencode/skills/sprint-status-view/.gitkeep +0 -0
- package/.opencode/skills/sprint-status-view/SKILL.md +0 -263
- package/.opencode/skills/sprint-status-view/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/sre-check-deployment-status/.gitkeep +0 -0
- package/.opencode/skills/sre-check-deployment-status/SKILL.md +0 -32
- package/.opencode/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/sre-check-secrets/.gitkeep +0 -0
- package/.opencode/skills/sre-check-secrets/SKILL.md +0 -23
- package/.opencode/skills/sre-check-secrets/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/sre-check-system-status/.gitkeep +0 -0
- package/.opencode/skills/sre-check-system-status/SKILL.md +0 -27
- package/.opencode/skills/sre-check-system-status/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/sre-day-2-ops/.gitkeep +0 -0
- package/.opencode/skills/sre-day-2-ops/SKILL.md +0 -26
- package/.opencode/skills/sre-day-2-ops/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/sre-deployment-strategies/.gitkeep +0 -0
- package/.opencode/skills/sre-deployment-strategies/SKILL.md +0 -28
- package/.opencode/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/sre-fix-deployments/.gitkeep +0 -0
- package/.opencode/skills/sre-fix-deployments/SKILL.md +0 -25
- package/.opencode/skills/sre-fix-deployments/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/sre-gitops-status/.gitkeep +0 -0
- package/.opencode/skills/sre-gitops-status/SKILL.md +0 -25
- package/.opencode/skills/sre-gitops-status/bmad-skill-manifest.yaml +0 -3
- package/.opencode/skills/story-status-lookup/SKILL.md +0 -78
- package/.opencode/skills/test-accompanied-development/SKILL.md +0 -50
- package/.opencode/skills/test-generator/SKILL.md +0 -65
- package/.opencode/skills/vercel-react-best-practices/SKILL.md +0 -109
- package/.opencode/skills/verify-hardened-docker-skill/SKILL.md +0 -442
- package/.opencode/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
- package/.roo/rules/00-ma-agents.md +0 -13
- package/.roo/skills/.ma-agents.json +0 -241
- package/.roo/skills/MANIFEST.yaml +0 -254
- package/.roo/skills/ai-audit-trail/SKILL.md +0 -23
- package/.roo/skills/auto-bug-detection/SKILL.md +0 -169
- package/.roo/skills/cmake-best-practices/SKILL.md +0 -64
- package/.roo/skills/cmake-best-practices/examples/cmake.md +0 -59
- package/.roo/skills/code-documentation/SKILL.md +0 -57
- package/.roo/skills/code-documentation/examples/cpp.md +0 -29
- package/.roo/skills/code-documentation/examples/csharp.md +0 -28
- package/.roo/skills/code-documentation/examples/javascript_typescript.md +0 -28
- package/.roo/skills/code-documentation/examples/python.md +0 -57
- package/.roo/skills/code-review/SKILL.md +0 -43
- package/.roo/skills/commit-message/SKILL.md +0 -79
- package/.roo/skills/cpp-best-practices/SKILL.md +0 -234
- package/.roo/skills/cpp-best-practices/examples/modern-idioms.md +0 -189
- package/.roo/skills/cpp-best-practices/examples/naming-and-organization.md +0 -102
- package/.roo/skills/cpp-concurrency-safety/SKILL.md +0 -60
- package/.roo/skills/cpp-concurrency-safety/examples/concurrency.md +0 -73
- package/.roo/skills/cpp-const-correctness/SKILL.md +0 -63
- package/.roo/skills/cpp-const-correctness/examples/const_correctness.md +0 -54
- package/.roo/skills/cpp-memory-handling/SKILL.md +0 -42
- package/.roo/skills/cpp-memory-handling/examples/modern-cpp.md +0 -49
- package/.roo/skills/cpp-memory-handling/examples/smart-pointers.md +0 -46
- package/.roo/skills/cpp-modern-composition/SKILL.md +0 -64
- package/.roo/skills/cpp-modern-composition/examples/composition.md +0 -51
- package/.roo/skills/cpp-robust-interfaces/SKILL.md +0 -55
- package/.roo/skills/cpp-robust-interfaces/examples/interfaces.md +0 -56
- package/.roo/skills/create-hardened-docker-skill/SKILL.md +0 -637
- package/.roo/skills/create-hardened-docker-skill/scripts/create-all.sh +0 -489
- package/.roo/skills/csharp-best-practices/SKILL.md +0 -278
- package/.roo/skills/docker-hardening-verification/SKILL.md +0 -28
- package/.roo/skills/docker-hardening-verification/scripts/verify-hardening.sh +0 -39
- package/.roo/skills/docker-image-signing/SKILL.md +0 -28
- package/.roo/skills/docker-image-signing/scripts/sign-image.sh +0 -33
- package/.roo/skills/document-revision-history/SKILL.md +0 -104
- package/.roo/skills/git-workflow-skill/SKILL.md +0 -194
- package/.roo/skills/git-workflow-skill/hooks/commit-msg +0 -61
- package/.roo/skills/git-workflow-skill/hooks/pre-commit +0 -38
- package/.roo/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
- package/.roo/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
- package/.roo/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
- package/.roo/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
- package/.roo/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
- package/.roo/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
- package/.roo/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
- package/.roo/skills/js-ts-security-skill/SKILL.md +0 -64
- package/.roo/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
- package/.roo/skills/logging-best-practices/SKILL.md +0 -50
- package/.roo/skills/logging-best-practices/examples/cpp.md +0 -36
- package/.roo/skills/logging-best-practices/examples/csharp.md +0 -49
- package/.roo/skills/logging-best-practices/examples/javascript.md +0 -77
- package/.roo/skills/logging-best-practices/examples/python.md +0 -57
- package/.roo/skills/logging-best-practices/references/logging-standards.md +0 -29
- package/.roo/skills/open-presentation/SKILL.md +0 -35
- package/.roo/skills/opentelemetry-best-practices/SKILL.md +0 -34
- package/.roo/skills/opentelemetry-best-practices/examples/go.md +0 -32
- package/.roo/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
- package/.roo/skills/opentelemetry-best-practices/examples/python.md +0 -37
- package/.roo/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
- package/.roo/skills/python-best-practices/SKILL.md +0 -385
- package/.roo/skills/python-dependency-mgmt/SKILL.md +0 -42
- package/.roo/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
- package/.roo/skills/python-security-skill/SKILL.md +0 -56
- package/.roo/skills/python-security-skill/examples/security.md +0 -56
- package/.roo/skills/self-signed-cert/SKILL.md +0 -42
- package/.roo/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
- package/.roo/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
- package/.roo/skills/skill-creator/SKILL.md +0 -196
- package/.roo/skills/skill-creator/references/output-patterns.md +0 -82
- package/.roo/skills/skill-creator/references/workflows.md +0 -28
- package/.roo/skills/skill-creator/scripts/init_skill.py +0 -208
- package/.roo/skills/skill-creator/scripts/package_skill.py +0 -99
- package/.roo/skills/skill-creator/scripts/quick_validate.py +0 -113
- package/.roo/skills/story-status-lookup/SKILL.md +0 -78
- package/.roo/skills/test-accompanied-development/SKILL.md +0 -50
- package/.roo/skills/test-generator/SKILL.md +0 -65
- package/.roo/skills/vercel-react-best-practices/SKILL.md +0 -109
- package/.roo/skills/verify-hardened-docker-skill/SKILL.md +0 -442
- package/.roo/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
- package/opencode.json +0 -5
- /package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/bmad-dev-story}/.gitkeep +0 -0
- /package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/SKILL.md +0 -0
- /package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-sprint-planning}/.gitkeep +0 -0
- /package/{.opencode/skills/bmad-ma-agent-cyber → lib/bmad-extension/skills/bmad-sprint-status}/.gitkeep +0 -0
- /package/{.opencode/skills/bmad-ma-agent-devops → lib/bmad-extension/skills/cleanup-done}/.gitkeep +0 -0
- /package/{.opencode → lib/bmad-extension}/skills/cleanup-done/bmad-skill-manifest.yaml +0 -0
- /package/{.opencode/skills/bmad-ma-agent-mil498 → lib/bmad-extension/skills/close-sprint}/.gitkeep +0 -0
- /package/{.opencode/skills/bmad-ma-agent-ml → lib/bmad-extension/skills/generate-backlog}/.gitkeep +0 -0
- /package/{.opencode → lib/bmad-extension}/skills/generate-backlog/bmad-skill-manifest.yaml +0 -0
- /package/{.opencode/skills/bmad-ma-agent-sre → lib/bmad-extension/skills/mil498-requirement-quality}/.gitkeep +0 -0
- /package/{.opencode/skills/cleanup-done → lib/bmad-extension/skills/prioritize-backlog}/.gitkeep +0 -0
- /package/{.opencode → lib/bmad-extension}/skills/prioritize-backlog/bmad-skill-manifest.yaml +0 -0
- /package/{.opencode/skills/create-bug-story → lib/bmad-extension/skills/remove-from-sprint}/.gitkeep +0 -0
- /package/{.opencode → lib/bmad-extension}/skills/remove-from-sprint/bmad-skill-manifest.yaml +0 -0
- /package/{.opencode/skills/mil498-ocd/template.md → mil498/OCD.md} +0 -0
- /package/{.opencode/skills/mil498-sdp/template.md → mil498/SDP.md} +0 -0
- /package/{.opencode/skills/mil498-srs/template.md → mil498/SRS.md} +0 -0
- /package/{.opencode/skills/mil498-ssdd/template.md → mil498/SSDD.md} +0 -0
- /package/{.opencode/skills/mil498-sss/template.md → mil498/SSS.md} +0 -0
- /package/{.opencode/skills/mil498-std/template.md → mil498/STD.md} +0 -0
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: close-sprint
|
|
3
|
+
description: Close an active sprint — archive done/cancelled items, disposition incomplete items (move to next sprint or return to backlog), set sprint status to closed
|
|
4
|
+
type: skill
|
|
5
|
+
triggers:
|
|
6
|
+
- "close sprint"
|
|
7
|
+
- "close active sprint"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Close Sprint Workflow
|
|
11
|
+
|
|
12
|
+
Close an active sprint — archive done/cancelled items, disposition incomplete items (move to next sprint or return to backlog), and set sprint status to `closed`.
|
|
13
|
+
|
|
14
|
+
**Schema Reference:** `_bmad-output/planning-artifacts/sprint-status-schema.md` (Story 17.9)
|
|
15
|
+
|
|
16
|
+
<workflow>
|
|
17
|
+
|
|
18
|
+
<step n="0" goal="Load configuration and validate file existence">
|
|
19
|
+
<action>Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve `implementation_artifacts`</action>
|
|
20
|
+
<action>Set {{status_file}} = `{implementation_artifacts}/sprint-status.yaml`</action>
|
|
21
|
+
|
|
22
|
+
<check if="{{status_file}} does NOT exist">
|
|
23
|
+
<output>**Error:** No sprint-status.yaml found. Run sprint planning first to initialize the file.</output>
|
|
24
|
+
<action>Exit workflow</action>
|
|
25
|
+
</check>
|
|
26
|
+
|
|
27
|
+
<action>Read the FULL {{status_file}}</action>
|
|
28
|
+
<action>Parse into {{data}} with sections: metadata, `epics`, `backlog`, and `sprints`</action>
|
|
29
|
+
<action>Store {{story_location}} from {{data}}.metadata.story_location (e.g., `_bmad-output/implementation-artifacts`)</action>
|
|
30
|
+
</step>
|
|
31
|
+
|
|
32
|
+
<step n="1" goal="Identify the active sprint">
|
|
33
|
+
<action>Scan {{data}}.sprints for a sprint with `status: active`</action>
|
|
34
|
+
<check if="no active sprint found">
|
|
35
|
+
<output>No active sprint found. Nothing to close.</output>
|
|
36
|
+
<action>Exit workflow</action>
|
|
37
|
+
</check>
|
|
38
|
+
<action>Store the active sprint as {{active_sprint}} (id + full sprint data)</action>
|
|
39
|
+
<action>Store {{active_sprint_id}} = the sprint's map key (e.g., `sprint-1`)</action>
|
|
40
|
+
</step>
|
|
41
|
+
|
|
42
|
+
<step n="2" goal="Display sprint summary and confirm closure">
|
|
43
|
+
<action>Read {{active_sprint}}.items array</action>
|
|
44
|
+
<action>Store {{all_items}} = {{active_sprint}}.items</action>
|
|
45
|
+
<action>Store {{total_count}} = length of {{all_items}}</action>
|
|
46
|
+
|
|
47
|
+
<!-- Initialize counters and collections (always, to prevent undefined in summary output) -->
|
|
48
|
+
<action>Set {{done_count}} = 0</action>
|
|
49
|
+
<action>Set {{cancelled_count}} = 0</action>
|
|
50
|
+
<action>Set {{moved_to_sprint_count}} = 0</action>
|
|
51
|
+
<action>Set {{moved_to_sprint_name}} = ""</action>
|
|
52
|
+
<action>Set {{returned_to_backlog_count}} = 0</action>
|
|
53
|
+
<action>Set {{archived_done_files}} = []</action>
|
|
54
|
+
<action>Set {{archived_cancelled_files}} = []</action>
|
|
55
|
+
<action>Set {{skipped_done}} = []</action>
|
|
56
|
+
<action>Set {{skipped_cancelled}} = []</action>
|
|
57
|
+
|
|
58
|
+
<check if="{{total_count}} == 0">
|
|
59
|
+
<action>Set {{empty_sprint_fast_path}} = true</action>
|
|
60
|
+
<action>Jump to step 7 (empty sprint fast path)</action>
|
|
61
|
+
</check>
|
|
62
|
+
|
|
63
|
+
<action>Set {{empty_sprint_fast_path}} = false</action>
|
|
64
|
+
<action>Categorize items:
|
|
65
|
+
- {{done_items}} = items where status == `done`
|
|
66
|
+
- {{cancelled_items}} = items where status == `cancelled`
|
|
67
|
+
- {{incomplete_items}} = items where status is `ready-for-dev`, `in-progress`, `review`, or `on-hold`
|
|
68
|
+
</action>
|
|
69
|
+
|
|
70
|
+
<output>
|
|
71
|
+
## Sprint Closure Summary: {{active_sprint.name}} ({{active_sprint_id}})
|
|
72
|
+
|
|
73
|
+
**Total items:** {{total_count}}
|
|
74
|
+
- Done: {{done_items.length}} (will be archived)
|
|
75
|
+
- Cancelled: {{cancelled_items.length}} (will be archived)
|
|
76
|
+
- Incomplete: {{incomplete_items.length}} (requires disposition)
|
|
77
|
+
|
|
78
|
+
| # | ID | Title | Type | Status | Disposition |
|
|
79
|
+
|---|----|----|----|----|---|
|
|
80
|
+
{{#each done_items}}
|
|
81
|
+
| {{@index+1}} | {{id}} | {{title}} | {{type}} | done | archive to done/ |
|
|
82
|
+
{{/each}}
|
|
83
|
+
{{#each cancelled_items}}
|
|
84
|
+
| {{@index+1}} | {{id}} | {{title}} | {{type}} | cancelled | archive to done/ |
|
|
85
|
+
{{/each}}
|
|
86
|
+
{{#each incomplete_items}}
|
|
87
|
+
| {{@index+1}} | {{id}} | {{title}} | {{type}} | {{status}} | pending decision |
|
|
88
|
+
{{/each}}
|
|
89
|
+
</output>
|
|
90
|
+
|
|
91
|
+
<ask>Proceed with sprint closure? [c] Confirm and proceed / [x] Cancel:</ask>
|
|
92
|
+
<check if="user selects 'x'">
|
|
93
|
+
<output>Sprint closure cancelled. No changes made.</output>
|
|
94
|
+
<action>Exit workflow</action>
|
|
95
|
+
</check>
|
|
96
|
+
</step>
|
|
97
|
+
|
|
98
|
+
<step n="3" goal="Archive done items (AC: 2)">
|
|
99
|
+
<check if="{{done_items}} is empty">
|
|
100
|
+
<action>Skip to step 4 (done_count stays 0, archived_done_files stays [])</action>
|
|
101
|
+
</check>
|
|
102
|
+
|
|
103
|
+
<action>Ensure `{{story_location}}/done/` directory exists. If it does not exist, create it.</action>
|
|
104
|
+
|
|
105
|
+
<action>For each item in {{done_items}}:
|
|
106
|
+
1. Resolve source path: `{{story_location}}/{{item.id}}.md`
|
|
107
|
+
- For bug items (type == bug): also try `{{story_location}}/bug-{{item.id_slug}}.md` as fallback (handle case variations)
|
|
108
|
+
2. Resolve destination path: `{{story_location}}/done/{{item.id}}.md`
|
|
109
|
+
3. If source file does NOT exist:
|
|
110
|
+
- Log warning: "File not found: {{source_path}} — skipping file move."
|
|
111
|
+
- Add item to {{skipped_done}} with reason "source missing"
|
|
112
|
+
- Continue to next item
|
|
113
|
+
4. If destination file ALREADY EXISTS in done/:
|
|
114
|
+
- Log warning: "File already exists at destination: {{destination_path}} — skipping file move."
|
|
115
|
+
- Add item to {{skipped_done}} with reason "destination exists"
|
|
116
|
+
- Continue to next item
|
|
117
|
+
5. Move (rename) the file: source → destination
|
|
118
|
+
6. Add item to {{archived_done_files}}
|
|
119
|
+
</action>
|
|
120
|
+
|
|
121
|
+
<action>Remove ALL done items from {{active_sprint}}.items in {{data}}</action>
|
|
122
|
+
<action>Store {{done_count}} = length of {{done_items}}</action>
|
|
123
|
+
</step>
|
|
124
|
+
|
|
125
|
+
<step n="4" goal="Archive cancelled items (AC: 3)">
|
|
126
|
+
<check if="{{cancelled_items}} is empty">
|
|
127
|
+
<action>Skip to step 5 (cancelled_count stays 0, archived_cancelled_files stays [])</action>
|
|
128
|
+
</check>
|
|
129
|
+
|
|
130
|
+
<action>Ensure `{{story_location}}/done/` directory exists (may already exist from step 3)</action>
|
|
131
|
+
|
|
132
|
+
<action>For each item in {{cancelled_items}}:
|
|
133
|
+
1. Resolve source path: `{{story_location}}/{{item.id}}.md`
|
|
134
|
+
- For bug items (type == bug): also try `{{story_location}}/bug-{{item.id_slug}}.md` as fallback (handle case variations)
|
|
135
|
+
2. Resolve destination path: `{{story_location}}/done/{{item.id}}.md`
|
|
136
|
+
3. If source file does NOT exist:
|
|
137
|
+
- Log warning: "File not found: {{source_path}} — skipping file move."
|
|
138
|
+
- Add item to {{skipped_cancelled}} with reason "source missing"
|
|
139
|
+
- Continue to next item
|
|
140
|
+
4. If destination file ALREADY EXISTS in done/:
|
|
141
|
+
- Log warning: "File already exists at destination: {{destination_path}} — skipping file move."
|
|
142
|
+
- Add item to {{skipped_cancelled}} with reason "destination exists"
|
|
143
|
+
- Continue to next item
|
|
144
|
+
5. Move (rename) the file: source → destination
|
|
145
|
+
6. Add item to {{archived_cancelled_files}}
|
|
146
|
+
</action>
|
|
147
|
+
|
|
148
|
+
<action>Remove ALL cancelled items from {{active_sprint}}.items in {{data}}</action>
|
|
149
|
+
<action>Store {{cancelled_count}} = length of {{cancelled_items}}</action>
|
|
150
|
+
</step>
|
|
151
|
+
|
|
152
|
+
<step n="5" goal="Disposition incomplete items (AC: 4, 11)">
|
|
153
|
+
<check if="{{incomplete_items}} is empty">
|
|
154
|
+
<action>Skip to step 6</action>
|
|
155
|
+
</check>
|
|
156
|
+
|
|
157
|
+
<output>
|
|
158
|
+
## Incomplete Items Requiring Disposition
|
|
159
|
+
|
|
160
|
+
| # | ID | Title | Type | Status |
|
|
161
|
+
|---|----|----|----|----|
|
|
162
|
+
{{#each incomplete_items}}
|
|
163
|
+
| {{@index+1}} | {{id}} | {{title}} | {{type}} | {{status}} |
|
|
164
|
+
{{/each}}
|
|
165
|
+
|
|
166
|
+
**Options:**
|
|
167
|
+
**(a)** Move all to the next sprint
|
|
168
|
+
**(b)** Return all to backlog
|
|
169
|
+
**(c)** Decide per item
|
|
170
|
+
</output>
|
|
171
|
+
|
|
172
|
+
<ask>Choose disposition option [a/b/c]:</ask>
|
|
173
|
+
|
|
174
|
+
<!-- OPTION A: Move all to next sprint -->
|
|
175
|
+
<check if="user selects 'a'">
|
|
176
|
+
<action>Scan {{data}}.sprints for sprints with `status: planning`</action>
|
|
177
|
+
<action>Store {{planning_sprints}} = list of planning sprints</action>
|
|
178
|
+
|
|
179
|
+
<check if="{{planning_sprints}} is empty">
|
|
180
|
+
<output>**No planning sprint found.** Run `/add-sprint` to create one, or choose option (b) to return items to backlog.</output>
|
|
181
|
+
<ask>Choose disposition option [b] Return all to backlog / [c] Decide per item:</ask>
|
|
182
|
+
<check if="user selects 'b'"><goto option_b /></check>
|
|
183
|
+
<check if="user selects 'c'"><goto option_c /></check>
|
|
184
|
+
</check>
|
|
185
|
+
|
|
186
|
+
<check if="{{planning_sprints}}.length > 1">
|
|
187
|
+
<output>
|
|
188
|
+
## Planning Sprints Available
|
|
189
|
+
|
|
190
|
+
| # | Sprint | Capacity | Items | Remaining |
|
|
191
|
+
|---|---|---|---|---|
|
|
192
|
+
{{#each planning_sprints}}
|
|
193
|
+
| {{@index+1}} | {{name}} ({{id}}) | {{capacity}} | {{items_count}} | {{remaining}} |
|
|
194
|
+
{{/each}}
|
|
195
|
+
</output>
|
|
196
|
+
<ask>Select target sprint (enter number):</ask>
|
|
197
|
+
<action>Store {{target_sprint}} = selected planning sprint</action>
|
|
198
|
+
</check>
|
|
199
|
+
|
|
200
|
+
<check if="{{planning_sprints}}.length == 1">
|
|
201
|
+
<action>Store {{target_sprint}} = {{planning_sprints}}[0]</action>
|
|
202
|
+
</check>
|
|
203
|
+
|
|
204
|
+
<action>Calculate {{new_count}} = {{target_sprint}}.items.length + {{incomplete_items}}.length</action>
|
|
205
|
+
<check if="{{new_count}} > {{target_sprint}}.capacity">
|
|
206
|
+
<output>**Capacity Warning:** Adding {{incomplete_items.length}} items would bring {{target_sprint.name}} to {{new_count}}/{{target_sprint.capacity}} capacity (exceeds limit). Proceeding anyway (capacity is advisory).</output>
|
|
207
|
+
</check>
|
|
208
|
+
|
|
209
|
+
<action>For each item in {{incomplete_items}}:
|
|
210
|
+
1. REMOVE the item from {{active_sprint}}.items in {{data}}
|
|
211
|
+
2. ADD the item to {{target_sprint}}.items in {{data}}
|
|
212
|
+
3. PRESERVE the item's current `status` unchanged (no reset)
|
|
213
|
+
</action>
|
|
214
|
+
<action>Store {{moved_to_sprint_count}} = length of {{incomplete_items}}</action>
|
|
215
|
+
<action>Store {{moved_to_sprint_name}} = {{target_sprint}}.name</action>
|
|
216
|
+
<action>Store {{returned_to_backlog_count}} = 0</action>
|
|
217
|
+
</check>
|
|
218
|
+
|
|
219
|
+
<!-- OPTION B: Return all to backlog -->
|
|
220
|
+
<check if="user selects 'b'" id="option_b">
|
|
221
|
+
<action>Calculate {{max_priority}} = max `priority` value among all items currently in {{data}}.backlog (0 if backlog is empty)</action>
|
|
222
|
+
|
|
223
|
+
<action>For each item in {{incomplete_items}} (processing in order):
|
|
224
|
+
1. REMOVE the item from {{active_sprint}}.items in {{data}}
|
|
225
|
+
2. SET item.status = `ready-for-dev` (schema section 4.5 — status reset on backlog return)
|
|
226
|
+
3. SET item.priority = {{max_priority}} + 1 (then increment {{max_priority}} for the next item)
|
|
227
|
+
4. APPEND the item to the END of {{data}}.backlog
|
|
228
|
+
5. PRESERVE all other fields: `id`, `type`, `epic`, `title`, `severity`
|
|
229
|
+
</action>
|
|
230
|
+
|
|
231
|
+
<action>Re-number ALL {{data}}.backlog items' `priority` fields sequentially 1..N (array position 0 = priority 1) to maintain the denormalized index invariant</action>
|
|
232
|
+
<action>Store {{returned_to_backlog_count}} = length of {{incomplete_items}}</action>
|
|
233
|
+
<action>Store {{moved_to_sprint_count}} = 0</action>
|
|
234
|
+
<action>Store {{moved_to_sprint_name}} = ""</action>
|
|
235
|
+
</check>
|
|
236
|
+
|
|
237
|
+
<!-- OPTION C: Per-item decision -->
|
|
238
|
+
<check if="user selects 'c'" id="option_c">
|
|
239
|
+
<action>Initialize {{per_item_sprint_targets}} = {} and {{per_item_backlog}} = []</action>
|
|
240
|
+
<action>Initialize {{moved_to_sprint_count}} = 0 and {{returned_to_backlog_count}} = 0</action>
|
|
241
|
+
|
|
242
|
+
<action>For each item in {{incomplete_items}} (iterate one by one):
|
|
243
|
+
Display: "**Item:** {{item.id}} — {{item.title}} (status: {{item.status}})"
|
|
244
|
+
</action>
|
|
245
|
+
<ask>**[s]** Move to next sprint / **[b]** Return to backlog:</ask>
|
|
246
|
+
|
|
247
|
+
<check if="user selects 's'">
|
|
248
|
+
<action>Scan {{data}}.sprints for sprints with `status: planning`</action>
|
|
249
|
+
<check if="no planning sprint exists">
|
|
250
|
+
<output>No planning sprint found. Returning this item to the backlog instead.</output>
|
|
251
|
+
<action>Add item to {{per_item_backlog}}</action>
|
|
252
|
+
</check>
|
|
253
|
+
<check if="planning sprint(s) exist">
|
|
254
|
+
<check if="multiple planning sprints">
|
|
255
|
+
<output>Select target sprint:</output>
|
|
256
|
+
<ask>Planning sprint number:</ask>
|
|
257
|
+
<action>Store selected sprint as {{item_target_sprint}}</action>
|
|
258
|
+
</check>
|
|
259
|
+
<check if="single planning sprint">
|
|
260
|
+
<action>Store as {{item_target_sprint}}</action>
|
|
261
|
+
</check>
|
|
262
|
+
<action>Check capacity warning (same advisory logic as option a)</action>
|
|
263
|
+
<action>REMOVE item from {{active_sprint}}.items in {{data}}</action>
|
|
264
|
+
<action>ADD item to {{item_target_sprint}}.items in {{data}} preserving current status</action>
|
|
265
|
+
<action>Increment {{moved_to_sprint_count}}</action>
|
|
266
|
+
</check>
|
|
267
|
+
</check>
|
|
268
|
+
|
|
269
|
+
<check if="user selects 'b'">
|
|
270
|
+
<action>Add item to {{per_item_backlog}}</action>
|
|
271
|
+
</check>
|
|
272
|
+
|
|
273
|
+
<action>After all per-item decisions, process {{per_item_backlog}}:
|
|
274
|
+
1. Calculate {{max_priority}} = max `priority` value among all items in {{data}}.backlog (0 if empty)
|
|
275
|
+
2. For each item in {{per_item_backlog}}:
|
|
276
|
+
- REMOVE item from {{active_sprint}}.items in {{data}}
|
|
277
|
+
- SET item.status = `ready-for-dev`
|
|
278
|
+
- SET item.priority = {{max_priority}} + 1 (then increment for next)
|
|
279
|
+
- APPEND to END of {{data}}.backlog
|
|
280
|
+
3. Re-number ALL {{data}}.backlog items' `priority` fields sequentially 1..N
|
|
281
|
+
4. Set {{returned_to_backlog_count}} = length of {{per_item_backlog}}
|
|
282
|
+
</action>
|
|
283
|
+
<action>Store {{moved_to_sprint_name}} = name of the planning sprint used (if any items moved to sprint)</action>
|
|
284
|
+
</check>
|
|
285
|
+
</step>
|
|
286
|
+
|
|
287
|
+
<step n="6" goal="Validate single-location invariant before write">
|
|
288
|
+
<action>Build a flat list of all item IDs across {{data}}.backlog and all sprints in {{data}}.sprints</action>
|
|
289
|
+
<action>Check for any ID that appears more than once across all locations</action>
|
|
290
|
+
<check if="any duplicate ID found">
|
|
291
|
+
<output>**Error:** Data integrity violation — item {{duplicate_id}} appears in more than one location. Aborting write to prevent data corruption. Please report this as a bug in the skill.</output>
|
|
292
|
+
<action>Exit workflow without writing</action>
|
|
293
|
+
</check>
|
|
294
|
+
</step>
|
|
295
|
+
|
|
296
|
+
<step n="7" goal="Finalize sprint closure (AC: 5, 8)">
|
|
297
|
+
<action>Set {{data}}.sprints.{{active_sprint_id}}.status = `closed`</action>
|
|
298
|
+
<action>Verify {{data}}.sprints.{{active_sprint_id}}.items is now empty (`[]`)</action>
|
|
299
|
+
<check if="items array is NOT empty">
|
|
300
|
+
<output>**Warning:** Sprint items array is not empty after disposition. This may indicate a processing error. Proceeding with closure anyway — remaining items are listed below for manual review.</output>
|
|
301
|
+
</check>
|
|
302
|
+
<action>Update {{data}}.metadata.last_updated = current ISO-8601 timestamp</action>
|
|
303
|
+
<action>Preserve {{data}}.metadata.generated unchanged</action>
|
|
304
|
+
<action>Preserve {{data}}.epics unchanged</action>
|
|
305
|
+
<action>Preserve all other sprints in {{data}}.sprints unchanged</action>
|
|
306
|
+
|
|
307
|
+
<critical>Write the complete updated {{data}} to {{status_file}} as a SINGLE atomic write. This one write includes: item removals from the active sprint, backlog additions, next-sprint additions, sprint status change to closed, and metadata update.</critical>
|
|
308
|
+
</step>
|
|
309
|
+
|
|
310
|
+
<step n="8" goal="Display summary output">
|
|
311
|
+
<!-- Handle empty sprint fast path from step 2 -->
|
|
312
|
+
<check if="{{empty_sprint_fast_path}} == true">
|
|
313
|
+
<output>
|
|
314
|
+
## Sprint Closed Successfully
|
|
315
|
+
|
|
316
|
+
**Sprint:** {{active_sprint.name}} ({{active_sprint_id}})
|
|
317
|
+
**Status:** closed
|
|
318
|
+
|
|
319
|
+
Sprint {{active_sprint.name}} closed. No items to disposition.
|
|
320
|
+
|
|
321
|
+
**Next Steps:**
|
|
322
|
+
- Use `/add-sprint` to create the next sprint
|
|
323
|
+
- Use `/sprint-status-view` to review the updated status
|
|
324
|
+
</output>
|
|
325
|
+
<action>Exit workflow</action>
|
|
326
|
+
</check>
|
|
327
|
+
|
|
328
|
+
<output>
|
|
329
|
+
## Sprint Closed Successfully
|
|
330
|
+
|
|
331
|
+
**Sprint:** {{active_sprint.name}} ({{active_sprint_id}})
|
|
332
|
+
**Status:** closed
|
|
333
|
+
|
|
334
|
+
**Disposition:**
|
|
335
|
+
- Done items archived: {{done_count}}
|
|
336
|
+
- Cancelled items archived: {{cancelled_count}}
|
|
337
|
+
{{#if moved_to_sprint_count}}
|
|
338
|
+
- Items moved to {{moved_to_sprint_name}}: {{moved_to_sprint_count}}
|
|
339
|
+
{{/if}}
|
|
340
|
+
{{#if returned_to_backlog_count}}
|
|
341
|
+
- Items returned to backlog: {{returned_to_backlog_count}}
|
|
342
|
+
{{/if}}
|
|
343
|
+
|
|
344
|
+
{{#if archived_done_files.length}}
|
|
345
|
+
**Files moved to done/:**
|
|
346
|
+
{{#each archived_done_files}}
|
|
347
|
+
- {{id}} → done/
|
|
348
|
+
{{/each}}
|
|
349
|
+
{{/if}}
|
|
350
|
+
|
|
351
|
+
{{#if archived_cancelled_files.length}}
|
|
352
|
+
**Cancelled files moved to done/:**
|
|
353
|
+
{{#each archived_cancelled_files}}
|
|
354
|
+
- {{id}} → done/
|
|
355
|
+
{{/each}}
|
|
356
|
+
{{/if}}
|
|
357
|
+
|
|
358
|
+
{{#if skipped_done.length}}
|
|
359
|
+
**Skipped (warnings):**
|
|
360
|
+
{{#each skipped_done}}
|
|
361
|
+
- {{id}} — {{reason}}
|
|
362
|
+
{{/each}}
|
|
363
|
+
{{/if}}
|
|
364
|
+
|
|
365
|
+
{{#if skipped_cancelled.length}}
|
|
366
|
+
**Skipped (warnings):**
|
|
367
|
+
{{#each skipped_cancelled}}
|
|
368
|
+
- {{id}} — {{reason}}
|
|
369
|
+
{{/each}}
|
|
370
|
+
{{/if}}
|
|
371
|
+
|
|
372
|
+
**Next Steps:**
|
|
373
|
+
- Use `/add-sprint` to create the next sprint
|
|
374
|
+
- Use `/prioritize-backlog` to reorder the backlog after returns
|
|
375
|
+
- Use `/sprint-status-view` to review the updated status
|
|
376
|
+
</output>
|
|
377
|
+
</step>
|
|
378
|
+
|
|
379
|
+
</workflow>
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generate-backlog
|
|
3
|
+
description: Generate or refresh the backlog section of sprint-status.yaml from epics and bug stories, preserving existing priorities and sprint assignments
|
|
4
|
+
type: skill
|
|
5
|
+
triggers:
|
|
6
|
+
- "generate backlog"
|
|
7
|
+
- "refresh backlog"
|
|
8
|
+
- "update backlog"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Generate Backlog
|
|
12
|
+
|
|
13
|
+
Generate or refresh the `backlog` section of `sprint-status.yaml` from epics and bug story files, while preserving existing sprint assignments and priorities.
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
This skill reads `epics.md` and `bug-*.md` files and writes the `backlog` and `epics` sections of `sprint-status.yaml`. The `sprints` section is preserved unchanged. This implements the single-source-of-truth model from Architecture Decision P2-11: all unassigned stories and bugs live in the `backlog` section of the unified file.
|
|
18
|
+
|
|
19
|
+
**Output target:** `{sprint_management_path}/_bmad-output/implementation-artifacts/sprint-status.yaml` (`backlog` and `epics` sections only — `sprints` section is preserved unchanged)
|
|
20
|
+
**Never writes:** A standalone `backlog.yaml` file.
|
|
21
|
+
**Path resolution:** Use `_bmad/bmm/config.yaml` → `sprint_management_path` to resolve the project root. If not set, default to the project root.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
<workflow>
|
|
26
|
+
|
|
27
|
+
<step n="1" goal="Resolve paths and load existing sprint-status.yaml state">
|
|
28
|
+
<action>Read `_bmad/bmm/config.yaml` to resolve `sprint_management_path` (default: project root if not set)</action>
|
|
29
|
+
<action>Resolve the sprint-status file path: `{sprint_management_path}/_bmad-output/implementation-artifacts/sprint-status.yaml`</action>
|
|
30
|
+
<action>Resolve the epics file path: `{sprint_management_path}/_bmad-output/planning-artifacts/epics.md`</action>
|
|
31
|
+
<action>Resolve the bug files glob: `{sprint_management_path}/_bmad-output/implementation-artifacts/bug-*.md`</action>
|
|
32
|
+
<action>Resolve the done archive path: `{sprint_management_path}/_bmad-output/implementation-artifacts/done/`</action>
|
|
33
|
+
|
|
34
|
+
<check if="sprint-status.yaml does not exist">
|
|
35
|
+
<output>ERROR: `sprint-status.yaml` not found at `{resolved_path}`. Run `/bmad-sprint-planning` first to bootstrap the file before using `generate-backlog`.</output>
|
|
36
|
+
<action>Exit workflow</action>
|
|
37
|
+
</check>
|
|
38
|
+
|
|
39
|
+
<action>Read and parse `sprint-status.yaml`</action>
|
|
40
|
+
<action>Parse the `sprints` section (map keyed by sprint-N). For each sprint, collect all item IDs from the sprint's `items` array. Build {{sprint_item_ids}} = flat set of all item IDs across ALL sprints (planning, active, and closed).</action>
|
|
41
|
+
<action>Parse the `backlog` section (array). Build {{existing_backlog_map}} = map from item ID to the full item object (to preserve priority and status during merge).</action>
|
|
42
|
+
<action>Preserve the top-level metadata fields: {{generated}}, {{project}}, {{project_key}}, {{tracking_system}}, {{story_location}}</action>
|
|
43
|
+
<action>Preserve the full {{sprints}} section verbatim (passed through unchanged on write)</action>
|
|
44
|
+
<action>Preserve the existing {{epics}} section for status/retrospective merge in Step 7</action>
|
|
45
|
+
</step>
|
|
46
|
+
|
|
47
|
+
<step n="2" goal="Build done-items exclusion set from done/ archive">
|
|
48
|
+
<action>List files in `{sprint_management_path}/_bmad-output/implementation-artifacts/done/` matching `*.md`</action>
|
|
49
|
+
<action>For each file found, derive the item ID from the filename (strip `.md` extension, use basename)</action>
|
|
50
|
+
<action>Build {{done_item_ids}} = set of all archived item IDs</action>
|
|
51
|
+
<check if="no done/ files found">
|
|
52
|
+
<action>Set {{done_item_ids}} = empty set</action>
|
|
53
|
+
</check>
|
|
54
|
+
</step>
|
|
55
|
+
|
|
56
|
+
<step n="3" goal="Extract stories from epics.md">
|
|
57
|
+
<action>Read `{resolved_epics_path}`</action>
|
|
58
|
+
<check if="file does not exist">
|
|
59
|
+
<output>WARNING: `epics.md` not found at `{resolved_epics_path}`. No stories will be extracted from epics. Continuing with bug-only backlog.</output>
|
|
60
|
+
<action>Set {{epic_stories}} = [] and {{parsed_epics}} = []</action>
|
|
61
|
+
</check>
|
|
62
|
+
<action>Parse epics.md to extract:
|
|
63
|
+
- Each epic: epic number (N from "Epic N" header), epic title, epic status (if present in the file)
|
|
64
|
+
- Each story under each epic: story number (M from "Story N.M" format), story title
|
|
65
|
+
</action>
|
|
66
|
+
<action>For each story, generate the kebab-case item ID: `{epic_number}-{story_number}-{title-slug}` where title-slug is the title lowercased, spaces replaced with hyphens, non-alphanumeric characters (except hyphens) removed, consecutive hyphens collapsed</action>
|
|
67
|
+
<action>Exclude stories whose derived ID is in {{sprint_item_ids}} (already assigned to a sprint)</action>
|
|
68
|
+
<action>Exclude stories whose derived ID is in {{done_item_ids}} (archived)</action>
|
|
69
|
+
<action>Store remaining stories as {{epic_stories}} — list of objects with: id, epic (integer), title, type="story", severity=null</action>
|
|
70
|
+
<action>Store parsed epics as {{parsed_epics}} — list of objects with: epic_id (e.g., "epic-5"), epic_number (integer), title</action>
|
|
71
|
+
</step>
|
|
72
|
+
|
|
73
|
+
<step n="4" goal="Extract bugs from bug-*.md files">
|
|
74
|
+
<action>Glob `{resolved_bug_glob}` to discover all bug story files</action>
|
|
75
|
+
<check if="no bug files found">
|
|
76
|
+
<action>Set {{bug_stories}} = []</action>
|
|
77
|
+
</check>
|
|
78
|
+
<action>For each bug file found:
|
|
79
|
+
- Parse YAML frontmatter to extract: `id` (or derive from filename), `title`, `severity` (critical/high/medium/low), `status`
|
|
80
|
+
- If `id` is not in frontmatter, derive from filename: strip `bug-` prefix and `.md` extension, prefix with `BUG-`
|
|
81
|
+
- If `status` is not in frontmatter, default to `backlog`
|
|
82
|
+
- Exclude bugs whose ID is in {{sprint_item_ids}} or {{done_item_ids}}
|
|
83
|
+
- Create bug item: {id, type="bug", epic=null, title, severity, status}
|
|
84
|
+
</action>
|
|
85
|
+
<action>Store as {{bug_stories}}</action>
|
|
86
|
+
</step>
|
|
87
|
+
|
|
88
|
+
<step n="5" goal="Merge with existing backlog — preserve priorities, detect orphans">
|
|
89
|
+
<action>Build {{all_source_ids}} = set of all IDs from {{epic_stories}} + {{bug_stories}}</action>
|
|
90
|
+
|
|
91
|
+
<action>**Orphan detection:** For each item in {{existing_backlog_map}} whose ID is NOT in {{all_source_ids}} AND NOT in {{sprint_item_ids}} AND NOT in {{done_item_ids}}:
|
|
92
|
+
- Flag the item as orphaned
|
|
93
|
+
- Collect orphaned items in {{orphaned_items}} list
|
|
94
|
+
- Keep the orphaned item in the backlog (do NOT auto-remove — human review required)
|
|
95
|
+
</action>
|
|
96
|
+
|
|
97
|
+
<action>**New item detection:** For each item in {{epic_stories}} and {{bug_stories}} whose ID is NOT in {{existing_backlog_map}}:
|
|
98
|
+
- Assign status = "backlog"
|
|
99
|
+
- Mark as new in {{new_items}} list
|
|
100
|
+
</action>
|
|
101
|
+
|
|
102
|
+
<action>**Existing item preservation:** For each item in {{epic_stories}} and {{bug_stories}} whose ID IS in {{existing_backlog_map}}:
|
|
103
|
+
- Preserve the existing item's `priority` and `status` values from {{existing_backlog_map}}
|
|
104
|
+
- Update title from the source file (in case it was renamed)
|
|
105
|
+
</action>
|
|
106
|
+
|
|
107
|
+
<action>Assemble {{merged_items}} = all items from {{epic_stories}} (with preserved or new priority/status) + all items from {{bug_stories}} (with preserved or new priority/status) + all items from {{orphaned_items}} (with existing priority/status preserved)</action>
|
|
108
|
+
|
|
109
|
+
<action>**Backlog-sprint conflict detection:** Set {{backlog_sprint_conflicts}} = list of items that were in {{existing_backlog_map}} AND in {{sprint_item_ids}} (items found in both the backlog and a sprint — data integrity violation corrected by removing them from the backlog; sprint assignment takes precedence)</action>
|
|
110
|
+
</step>
|
|
111
|
+
|
|
112
|
+
<step n="6" goal="Sort and renumber backlog items by priority">
|
|
113
|
+
<action>Sort {{merged_items}} by the following criteria (most important first):
|
|
114
|
+
1. **Critical bugs first:** Items with type="bug" AND severity="critical" rank highest
|
|
115
|
+
- Among critical bugs: existing items ordered by their current priority (ascending); new critical bugs ordered by their position in the discovered bug file list (alphabetical by filename)
|
|
116
|
+
2. **Explicit priority (preserved from existing backlog):** Items that existed in the previous backlog are ranked by their preserved priority value (lower number = higher rank)
|
|
117
|
+
3. **New items by epic order:** New items (not in existing backlog) are ranked by their epic number (ascending), then by story number within the epic (ascending)
|
|
118
|
+
4. **Bugs without explicit priority:** New bugs (not in existing backlog) are appended after all stories, sorted by severity (high → medium → low → null)
|
|
119
|
+
5. **Orphaned items:** Orphaned items are appended last, maintaining their relative order
|
|
120
|
+
</action>
|
|
121
|
+
<action>Re-number priorities sequentially: assign priority = 1 to the first item, priority = 2 to the second, etc. (position 0 in array = priority 1)</action>
|
|
122
|
+
<action>Store as {{sorted_backlog}}</action>
|
|
123
|
+
</step>
|
|
124
|
+
|
|
125
|
+
<step n="7" goal="Build refreshed epics section">
|
|
126
|
+
<action>For each epic in {{parsed_epics}}:
|
|
127
|
+
- Look up the epic in the existing {{epics}} section by key (e.g., "epic-5")
|
|
128
|
+
- If the epic already exists: preserve its `status` and `retrospective` values. Do NOT downgrade status (e.g., if existing status is "in-progress" and the source implies "backlog", keep "in-progress").
|
|
129
|
+
- If the epic is new (not in existing epics): set status = "backlog", retrospective = "optional"
|
|
130
|
+
</action>
|
|
131
|
+
<action>Build {{refreshed_epics}} = map of all epics from the existing file PLUS any newly discovered epics. Existing epics not present in parsed_epics are preserved unchanged (do not remove epics — they may be in-progress or done).</action>
|
|
132
|
+
</step>
|
|
133
|
+
|
|
134
|
+
<step n="8" goal="Write sprint-status.yaml atomically">
|
|
135
|
+
<action>Assemble the complete file content:
|
|
136
|
+
1. Preserve top-level metadata: `generated`, `project`, `project_key`, `tracking_system`, `story_location` (unchanged)
|
|
137
|
+
2. Set `last_updated` = current ISO-8601 datetime string (e.g., "2026-04-06T10:00:00Z")
|
|
138
|
+
3. Write `epics` section from {{refreshed_epics}}
|
|
139
|
+
4. Write `backlog` section from {{sorted_backlog}} (array, ordered by priority)
|
|
140
|
+
5. Write `sprints` section from the preserved {{sprints}} section (verbatim, NO changes)
|
|
141
|
+
</action>
|
|
142
|
+
<action>Validate before writing:
|
|
143
|
+
- Every backlog item has all 7 required fields: id, type, epic, title, priority, status, severity
|
|
144
|
+
- priority values are sequential starting from 1 and match array position
|
|
145
|
+
- No item ID appears in both backlog and any sprint's items array (single-location invariant)
|
|
146
|
+
- Every epic has both status and retrospective fields
|
|
147
|
+
</action>
|
|
148
|
+
<action>Write the assembled content to `{resolved_sprint_status_path}` as a single atomic write (read-modify-write pattern)</action>
|
|
149
|
+
</step>
|
|
150
|
+
|
|
151
|
+
<step n="9" goal="Report summary">
|
|
152
|
+
<output>
|
|
153
|
+
## Generate Backlog — Complete
|
|
154
|
+
|
|
155
|
+
**Backlog section refreshed in `sprint-status.yaml`**
|
|
156
|
+
|
|
157
|
+
| Metric | Count |
|
|
158
|
+
|--------|-------|
|
|
159
|
+
| Total stories from epics.md | {{epic_story_count}} |
|
|
160
|
+
| Total bugs from bug-*.md | {{bug_count}} |
|
|
161
|
+
| New items added to backlog | {{new_items_count}} |
|
|
162
|
+
| Existing items preserved | {{preserved_count}} |
|
|
163
|
+
| Items excluded (sprint-assigned) | {{sprint_excluded_count}} |
|
|
164
|
+
| Items excluded (archived in done/) | {{done_excluded_count}} |
|
|
165
|
+
| Items corrected (removed from backlog — already in sprint) | {{backlog_sprint_conflicts.length}} |
|
|
166
|
+
| Total backlog items | {{total_backlog_count}} |
|
|
167
|
+
|
|
168
|
+
{{#if backlog_sprint_conflicts}}
|
|
169
|
+
⚠️ **Data integrity corrections:**
|
|
170
|
+
The following items were found in both the backlog and a sprint. They have been removed from the backlog (sprint assignment takes precedence):
|
|
171
|
+
{{#each backlog_sprint_conflicts}}
|
|
172
|
+
- {{id}} — {{title}}
|
|
173
|
+
{{/each}}
|
|
174
|
+
|
|
175
|
+
{{/if}}
|
|
176
|
+
{{#if orphaned_items}}
|
|
177
|
+
### Orphaned Items (WARNING — Human Review Required)
|
|
178
|
+
|
|
179
|
+
The following items exist in the backlog but were NOT found in `epics.md` or any `bug-*.md` file. They have been kept in the backlog but should be reviewed:
|
|
180
|
+
|
|
181
|
+
{{#each orphaned_items}}
|
|
182
|
+
- `{{id}}` — {{title}} (priority: {{priority}}, status: {{status}})
|
|
183
|
+
{{/each}}
|
|
184
|
+
|
|
185
|
+
These items may represent: renamed stories, deleted epics, or manually added items. Remove them manually if they are no longer needed.
|
|
186
|
+
{{/if}}
|
|
187
|
+
|
|
188
|
+
**Next steps:**
|
|
189
|
+
- Use `/prioritize-backlog` to reorder items
|
|
190
|
+
- Use `/add-to-sprint` to assign items to a sprint
|
|
191
|
+
- Use `/bmad-sprint-planning` to plan a full sprint
|
|
192
|
+
</output>
|
|
193
|
+
</step>
|
|
194
|
+
|
|
195
|
+
</workflow>
|