ma-agents 3.4.8 → 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/bin/cli.js +5 -4
- package/lib/agents.js +16 -1
- package/lib/bmad-extension/module-help.csv +27 -22
- package/lib/bmad-extension/skills/add-sprint/SKILL.md +120 -152
- package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +170 -116
- 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/{.opencode/skills/create-bug-story → lib/bmad-extension/skills/bmad-sprint-planning}/bmad-skill-manifest.yaml +1 -1
- 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/cleanup-done → 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 +154 -98
- 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/create-bug-story/SKILL.md +7 -75
- package/lib/bmad-extension/skills/generate-backlog/SKILL.md +152 -140
- 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 +224 -235
- package/lib/bmad-extension/skills/prioritize-backlog/SKILL.md +157 -135
- package/lib/bmad-extension/skills/remove-from-sprint/SKILL.md +125 -104
- package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +153 -239
- package/lib/bmad-extension/workflows/add-sprint/workflow.md +119 -155
- package/lib/bmad-extension/workflows/add-to-sprint/workflow.md +233 -3
- package/lib/bmad-extension/workflows/modify-sprint/workflow.md +228 -181
- package/lib/bmad-extension/workflows/remove-from-sprint/workflow.md +164 -0
- package/lib/bmad-extension/workflows/sprint-status-view/workflow.md +165 -3
- 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 -122
- package/.opencode/skills/MANIFEST.yaml +0 -126
- package/.opencode/skills/add-sprint/SKILL.md +0 -207
- package/.opencode/skills/add-to-sprint/SKILL.md +0 -189
- 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/.gitkeep +0 -0
- 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/.gitkeep +0 -0
- 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/.gitkeep +0 -0
- package/.opencode/skills/cleanup-done/SKILL.md +0 -159
- package/.opencode/skills/create-bug-story/.gitkeep +0 -0
- package/.opencode/skills/create-bug-story/SKILL.md +0 -263
- 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/generate-backlog/.gitkeep +0 -0
- package/.opencode/skills/generate-backlog/SKILL.md +0 -183
- package/.opencode/skills/generate-backlog/bmad-skill-manifest.yaml +0 -3
- 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/prioritize-backlog/bmad-skill-manifest.yaml +0 -3
- 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/remove-from-sprint/bmad-skill-manifest.yaml +0 -3
- 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 -122
- package/.roo/skills/MANIFEST.yaml +0 -126
- 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/close-sprint}/.gitkeep +0 -0
- /package/{.opencode/skills/bmad-ma-agent-mil498 → lib/bmad-extension/skills/mil498-requirement-quality}/.gitkeep +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,273 @@
|
|
|
1
|
+
# bmad-sprint-status
|
|
2
|
+
|
|
3
|
+
Analyze sprint health, surface risk flags, and recommend next actions from the unified `sprint-status.yaml`.
|
|
4
|
+
|
|
5
|
+
**READ-ONLY:** This skill NEVER writes to `sprint-status.yaml` or any other file.
|
|
6
|
+
|
|
7
|
+
**Path resolution:** This skill resolves paths directly from the project structure. The sprint status file is at `_bmad-output/implementation-artifacts/sprint-status.yaml` relative to the project root. The done folder is at `_bmad-output/implementation-artifacts/done/`.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Invocation Modes
|
|
12
|
+
|
|
13
|
+
This skill supports three execution modes. Set `mode` before invoking:
|
|
14
|
+
|
|
15
|
+
- `mode = interactive` (default) — full health summary with risk flags and interactive action menu
|
|
16
|
+
- `mode = data` — structured key-value output for consumption by other skills/workflows
|
|
17
|
+
- `mode = validate` — schema validation of sprint-status.yaml against the unified schema
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Step 0: Determine Execution Mode
|
|
22
|
+
|
|
23
|
+
Set `mode` = value provided by caller; if not provided, default to `"interactive"`.
|
|
24
|
+
|
|
25
|
+
- If `mode == "data"` → skip to Step 20
|
|
26
|
+
- If `mode == "validate"` → skip to Step 30
|
|
27
|
+
- If `mode == "interactive"` → continue to Step 1
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Step 1: Locate and Load sprint-status.yaml
|
|
32
|
+
|
|
33
|
+
1. Try to read `_bmad-output/implementation-artifacts/sprint-status.yaml` from the project root.
|
|
34
|
+
2. If file not found: output `"No sprint-status.yaml found. Run /bmad-sprint-planning to initialize."` and stop.
|
|
35
|
+
3. Parse YAML — extract:
|
|
36
|
+
- Metadata fields: `generated`, `last_updated`, `project`, `project_key`, `tracking_system`, `story_location`
|
|
37
|
+
- Three data sections: `epics` (map), `backlog` (array), `sprints` (map)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Step 2: Analyze Active Sprint Health
|
|
42
|
+
|
|
43
|
+
1. Scan the `sprints` map for the entry with `status: active`.
|
|
44
|
+
2. If no active sprint found: set `active_sprint = null` and skip to Step 2b.
|
|
45
|
+
3. If active sprint found, store it and compute:
|
|
46
|
+
- `items_by_status`: count items in `active_sprint.items` grouped by `status` field
|
|
47
|
+
- `capacity_used` = length of `active_sprint.items` array
|
|
48
|
+
- `capacity_total` = `active_sprint.capacity`
|
|
49
|
+
- `capacity_pct` = `round((capacity_used / capacity_total) * 100)` if `capacity_total > 0`, else `0`
|
|
50
|
+
- If `active_sprint.start` is populated: `sprint_age_days` = days between `active_sprint.start` and today
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Step 2b: Analyze Backlog Health
|
|
55
|
+
|
|
56
|
+
1. `backlog_total` = length of `backlog` array
|
|
57
|
+
2. `backlog_bugs` = count of backlog items where `type == "bug"`
|
|
58
|
+
3. `backlog_stories` = `backlog_total - backlog_bugs`
|
|
59
|
+
4. `backlog_critical_bugs` = count of backlog bugs where `severity == "critical"` or `severity == "high"`
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Step 2c: Compute Epic Progress
|
|
64
|
+
|
|
65
|
+
For each epic key in the `epics` map:
|
|
66
|
+
|
|
67
|
+
1. `epic_number` = numeric portion of key (e.g., `"epic-17"` → `17`)
|
|
68
|
+
2. `active_count` = count of items across `backlog` array AND all `sprints[*].items` arrays where `item.epic == epic_number`
|
|
69
|
+
3. `done_count` = count of files in `_bmad-output/implementation-artifacts/done/` whose filename starts with `"{epic_number}-"` (e.g., `"17-*.md"`)
|
|
70
|
+
4. `total_count` = `done_count + active_count`
|
|
71
|
+
5. Store: `{epic_key, status, retrospective, done_count, active_count, total_count}`
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Step 2d: Compute Sprint History
|
|
76
|
+
|
|
77
|
+
1. `closed_sprints` = all sprint entries where `status == "closed"`
|
|
78
|
+
2. `closed_count` = length of `closed_sprints`
|
|
79
|
+
3. For each closed sprint: capture `name`, item count (length of `items` array), `start`, `end`
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Step 3: Detect Risk Flags
|
|
84
|
+
|
|
85
|
+
Initialize `risks = []` (empty list). Check each risk condition and append messages as applicable:
|
|
86
|
+
|
|
87
|
+
**Risk: No active sprint**
|
|
88
|
+
- If `active_sprint == null`: append `"No active sprint — consider running /add-sprint to create one or activating a planning sprint"`
|
|
89
|
+
|
|
90
|
+
**Risk: Stale in-progress items** (sprint has been running for more than 14 days)
|
|
91
|
+
- If `active_sprint` exists AND `sprint_age_days > 14`: for each item in `active_sprint.items` with `status == "in-progress"`:
|
|
92
|
+
append `"Item {item.id} has been in-progress for {sprint_age_days} days (sprint started {active_sprint.start})"`
|
|
93
|
+
|
|
94
|
+
**Risk: Items not started**
|
|
95
|
+
- If `active_sprint` exists: count items where `status == "ready-for-dev"` or `status == "backlog"` → `not_started_count`
|
|
96
|
+
- If `not_started_count > 0`: append `"{not_started_count} of {capacity_used} items still in ready-for-dev status — not yet started"`
|
|
97
|
+
|
|
98
|
+
**Risk: Over-capacity**
|
|
99
|
+
- If `active_sprint` exists AND `capacity_total > 0` AND `capacity_used > capacity_total`:
|
|
100
|
+
`overage = capacity_used - capacity_total`
|
|
101
|
+
append `"Sprint over capacity: {capacity_used}/{capacity_total} items ({overage} over limit)"`
|
|
102
|
+
|
|
103
|
+
**Risk: At capacity with unstarted items**
|
|
104
|
+
- If `active_sprint` exists AND `capacity_total > 0` AND `capacity_used >= capacity_total` AND `not_started_count > 0`:
|
|
105
|
+
append `"Sprint at {capacity_pct}% capacity ({capacity_used}/{capacity_total}) with {not_started_count} items still in ready-for-dev"`
|
|
106
|
+
|
|
107
|
+
**Risk: No progress toward completion** (only flag if sprint is at least 3 days old)
|
|
108
|
+
- If `active_sprint` exists AND `sprint_age_days >= 3`:
|
|
109
|
+
`review_or_done_count` = count of items where `status == "review"` or `status == "done"`
|
|
110
|
+
If `review_or_done_count == 0`: append `"No items in review or done — sprint may be at risk (sprint is {sprint_age_days} days old)"`
|
|
111
|
+
|
|
112
|
+
**Risk: On-hold or cancelled items in active sprint**
|
|
113
|
+
- If `active_sprint` exists: for each item where `status == "on-hold"` or `status == "cancelled"`:
|
|
114
|
+
append `"1 item {item.status}: {item.id}"`
|
|
115
|
+
|
|
116
|
+
**Risk: Stale sprint-status.yaml file**
|
|
117
|
+
- `staleness_date` = `last_updated` if present, else `generated`
|
|
118
|
+
- `file_age_days` = days between `staleness_date` and today
|
|
119
|
+
- If `file_age_days > 7`: append `"\`last_updated\` is {file_age_days} days old — sprint-status.yaml may be stale"`
|
|
120
|
+
|
|
121
|
+
**Risk: Orphaned stories** (item references epic not in epics section)
|
|
122
|
+
- For each item in `backlog` array AND each item in all `sprints[*].items` arrays:
|
|
123
|
+
If `item.epic` is not null AND `"epic-{item.epic}"` does not exist in `epics` map:
|
|
124
|
+
append `"Orphaned story detected: item {item.id} references epic-{item.epic} which is not in the epics section"`
|
|
125
|
+
|
|
126
|
+
**Risk: In-progress epic with no stories**
|
|
127
|
+
- For each epic in `epics` map where `epic.status == "in-progress"`:
|
|
128
|
+
If `active_count == 0` AND `done_count == 0`:
|
|
129
|
+
append `"In-progress epic {epic_key} has no associated stories"`
|
|
130
|
+
|
|
131
|
+
**Risk: Critical/high bugs in backlog**
|
|
132
|
+
- For each item in `backlog` array where `type == "bug"` AND (`severity == "critical"` or `severity == "high"`):
|
|
133
|
+
append `"Critical/high severity bug in backlog: {item.id} ({item.severity})"`
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Step 4: Select Next Action Recommendation
|
|
138
|
+
|
|
139
|
+
Priority order (highest to lowest). When selecting "first" item: prefer active sprint items over backlog items; within each group, sort by epic number then story number.
|
|
140
|
+
|
|
141
|
+
1. If any item in `active_sprint.items` has `status == "in-progress"` → `next_workflow_id = "dev-story"`, `next_story_id` = first such item's id
|
|
142
|
+
2. Else if any item in `active_sprint.items` has `status == "review"` → `next_workflow_id = "code-review"`, `next_story_id` = first such item's id
|
|
143
|
+
3. Else if any item in `active_sprint.items` OR `backlog` has `status == "ready-for-dev"` → `next_workflow_id = "dev-story"`, `next_story_id` = first such item's id
|
|
144
|
+
4. Else if any item in `backlog` has `status == "backlog"` → `next_workflow_id = "create-story"`, `next_story_id` = first such item's id
|
|
145
|
+
5. Else if any epic has `retrospective == "optional"` AND `status == "done"` → `next_workflow_id = "retrospective"`, `next_story_id` = that epic's key
|
|
146
|
+
6. Else → `next_workflow_id = null`, `next_story_id = null` (all work complete)
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Step 5: Display Interactive Health Summary
|
|
151
|
+
|
|
152
|
+
Output this health summary (replace all `{{...}}` with computed values):
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
## Sprint Health Summary
|
|
156
|
+
|
|
157
|
+
- Project: {{project}} ({{project_key}})
|
|
158
|
+
- Tracking: {{tracking_system}}
|
|
159
|
+
- Last updated: {{last_updated}}
|
|
160
|
+
|
|
161
|
+
### Active Sprint: {{active_sprint.name}}
|
|
162
|
+
(If no active sprint: "No active sprint found.")
|
|
163
|
+
**Capacity:** {{capacity_used}} / {{capacity_total}} ({{capacity_pct}}%)
|
|
164
|
+
**Dates:** {{active_sprint.start}} to {{active_sprint.end}}
|
|
165
|
+
**Items by status:** in-progress {{n}}, review {{n}}, ready-for-dev {{n}}, backlog {{n}}, on-hold {{n}}
|
|
166
|
+
|
|
167
|
+
### Risk Flags
|
|
168
|
+
- {{risk_1}}
|
|
169
|
+
- {{risk_2}}
|
|
170
|
+
(or "No risks detected." if empty)
|
|
171
|
+
|
|
172
|
+
### Backlog Health
|
|
173
|
+
- Total unassigned: {{backlog_total}} ({{backlog_stories}} stories, {{backlog_bugs}} bugs)
|
|
174
|
+
- Critical/high bugs in backlog: {{backlog_critical_bugs}}
|
|
175
|
+
|
|
176
|
+
### Epic Progress
|
|
177
|
+
- {{epic_key}} ({{status}}): {{done_count}}/{{total_count}} done
|
|
178
|
+
(one line per epic)
|
|
179
|
+
|
|
180
|
+
### Sprint History
|
|
181
|
+
- {{closed_count}} closed sprint(s)
|
|
182
|
+
- {{sprint_name}}: {{item_count}} items, {{start}} to {{end}}
|
|
183
|
+
(one line per closed sprint)
|
|
184
|
+
|
|
185
|
+
### Next Recommendation
|
|
186
|
+
/{{next_workflow_id}} ({{next_story_id}})
|
|
187
|
+
(or "All work complete — great job!" if no recommendation)
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Step 6: Offer Interactive Actions
|
|
193
|
+
|
|
194
|
+
Present the following menu and handle the user's choice:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
Pick an option:
|
|
198
|
+
1) Run recommended workflow now
|
|
199
|
+
2) Show all items grouped by status (active sprint + backlog)
|
|
200
|
+
3) Show detailed sprint view (runs /sprint-status-view)
|
|
201
|
+
4) Show raw sprint-status.yaml
|
|
202
|
+
5) Exit
|
|
203
|
+
Choice:
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
- **Choice 1:** If `next_workflow_id` is null, output "No workflow to run — all work is complete." Otherwise output: `"Run /{next_workflow_id}. If the command targets a story, set story_key={next_story_id} when prompted."`
|
|
207
|
+
- **Choice 2:** List items grouped by status: in-progress, review, ready-for-dev (sprint), ready-for-dev (backlog), backlog (unassigned). Show `id: title` per item.
|
|
208
|
+
- **Choice 3:** Output: `"For a full formatted table view with all items, run /sprint-status-view."`
|
|
209
|
+
- **Choice 4:** Display the full contents of `sprint-status.yaml`.
|
|
210
|
+
- **Choice 5:** Exit.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Step 20: Data Mode Output
|
|
215
|
+
|
|
216
|
+
Load and parse sprint-status.yaml (same as Steps 1–2d), detect risks (same as Step 3), compute recommendation (same as Step 4), then output these key-value pairs:
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
active_sprint_id = {{active_sprint_id}}
|
|
220
|
+
active_sprint_name = {{active_sprint_name}}
|
|
221
|
+
next_workflow_id = {{next_workflow_id}}
|
|
222
|
+
next_story_id = {{next_story_id}}
|
|
223
|
+
count_backlog = {{count_backlog}}
|
|
224
|
+
count_ready = {{count_ready}}
|
|
225
|
+
count_in_progress = {{count_in_progress}}
|
|
226
|
+
count_review = {{count_review}}
|
|
227
|
+
count_done = {{count_done}}
|
|
228
|
+
count_on_hold = {{count_on_hold}}
|
|
229
|
+
capacity_used = {{capacity_used}}
|
|
230
|
+
capacity_total = {{capacity_total}}
|
|
231
|
+
capacity_pct = {{capacity_pct}}
|
|
232
|
+
backlog_total = {{backlog_total}}
|
|
233
|
+
backlog_bugs = {{backlog_bugs}}
|
|
234
|
+
backlog_critical_bugs = {{backlog_critical_bugs}}
|
|
235
|
+
epic_summary = {{epic_summary}}
|
|
236
|
+
risks = {{risks}}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Count field semantics:**
|
|
240
|
+
- `count_backlog` = items with `status "backlog"` across active sprint items + backlog array
|
|
241
|
+
- `count_ready` = items with `status "ready-for-dev"` across active sprint items + backlog array
|
|
242
|
+
- `count_in_progress` = items with `status "in-progress"` in active sprint
|
|
243
|
+
- `count_review` = items with `status "review"` in active sprint
|
|
244
|
+
- `count_done` = items with `status "done"` in active sprint (does not count `done/` archived items)
|
|
245
|
+
- `count_on_hold` = items with `status "on-hold"` or `"cancelled"` in active sprint
|
|
246
|
+
|
|
247
|
+
**Backward compatibility:** `count_backlog`, `count_ready`, `count_in_progress`, `count_review`, `count_done`, `next_workflow_id`, `next_story_id`, and `risks` are preserved from the original built-in data mode output. The additional keys (`active_sprint_id`, `active_sprint_name`, `capacity_*`, `backlog_*`, `epic_summary`, `count_on_hold`) are new extensions that do not break existing consumers.
|
|
248
|
+
|
|
249
|
+
Return output to caller.
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Step 30: Validate Mode
|
|
254
|
+
|
|
255
|
+
Validate `_bmad-output/implementation-artifacts/sprint-status.yaml` against the unified schema. Return `is_valid`, `error`, `suggestion` (or `message`) keys.
|
|
256
|
+
|
|
257
|
+
1. **File exists?** If not: `is_valid = false`, `error = "sprint-status.yaml missing"`, `suggestion = "Run /bmad-sprint-planning to create it"`
|
|
258
|
+
|
|
259
|
+
2. **Required metadata fields present?** Check: `generated`, `last_updated`, `project`, `project_key`, `tracking_system`, `story_location`. If any missing: `is_valid = false`, `error = "Missing required metadata field(s): {missing_fields}"`, `suggestion = "Re-run /bmad-sprint-planning or add missing fields manually"`
|
|
260
|
+
|
|
261
|
+
3. **Three data sections present?** Check: `epics` (map or `{}`), `backlog` (array or `[]`), `sprints` (map or `{}`). If any missing: `is_valid = false`, `error = "Missing data section(s): {missing_sections}. Expected: epics, backlog, sprints"`, `suggestion = "Re-run /bmad-sprint-planning or repair the file manually"`
|
|
262
|
+
|
|
263
|
+
4. **Valid epic statuses?** Check all epic `status` values against: `backlog`, `in-progress`, `done`, `on-hold`, `cancelled`. If invalid: `is_valid = false`, `error = "Invalid epic status value(s): {invalid_entries}"`, `suggestion = "Valid epic statuses: backlog, in-progress, done, on-hold, cancelled"`
|
|
264
|
+
|
|
265
|
+
5. **Valid item statuses?** Check all item `status` values (across `backlog` array AND all `sprints[*].items` arrays) against: `backlog`, `ready-for-dev`, `in-progress`, `review`, `done`, `on-hold`, `cancelled`. If invalid: `is_valid = false`, `error = "Invalid item status value(s): {invalid_entries}"`, `suggestion = "Valid item statuses: backlog, ready-for-dev, in-progress, review, done, on-hold, cancelled"`
|
|
266
|
+
|
|
267
|
+
6. **Valid sprint statuses?** Check all sprint `status` values against: `planning`, `active`, `closed`. If invalid: `is_valid = false`, `error = "Invalid sprint status value(s): {invalid_entries}"`, `suggestion = "Valid sprint statuses: planning, active, closed"`
|
|
268
|
+
|
|
269
|
+
7. **Single active sprint?** Count sprints with `status: active`. If count > 1: `is_valid = false`, `error = "Multiple active sprints detected ({count}). At most one sprint may have status: active."`, `suggestion = "Close or set other active sprints to planning status"`
|
|
270
|
+
|
|
271
|
+
8. **Single-location invariant (spot check)?** Sample up to 5 item IDs from all locations. Verify each ID appears in exactly one location (either `backlog` array OR one sprint's `items` array, never both). If duplicate: `is_valid = false`, `error = "Single-location invariant violated: item(s) {duplicate_ids} appear in multiple locations"`, `suggestion = "Remove duplicate item entries — each item ID must appear in exactly one location"`
|
|
272
|
+
|
|
273
|
+
9. **All checks passed:** `is_valid = true`, `message = "sprint-status.yaml valid: unified schema structure verified"`
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "bmad-sprint-status",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Analyze sprint health, surface risk flags, and recommend next actions from the unified sprint-status.yaml",
|
|
5
|
+
"category": "workflow",
|
|
6
|
+
"tags": ["sprint-status", "sprint-management", "health", "risks", "analysis"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Cleanup Done
|
|
2
|
+
|
|
3
|
+
Archive done and cancelled items from `sprint-status.yaml` — remove them from the active file and move their story/bug `.md` files to the `done/` subfolder.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Keeps the active sprint view lean by archiving completed and cancelled work. Preserves story artifacts in `done/` for historical reference. Updates epic statuses when all stories for an epic have been archived.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<workflow>
|
|
12
|
+
|
|
13
|
+
<step n="0" goal="Load configuration and validate file existence">
|
|
14
|
+
<action>Set default `story_location` = `_bmad-output/implementation-artifacts`. Check whether `{story_location}/sprint-status.yaml` exists at the default path.</action>
|
|
15
|
+
<check if="file does not exist">
|
|
16
|
+
<output>Error: No sprint-status.yaml found at `{story_location}/sprint-status.yaml`. Run sprint planning first to initialize the file.</output>
|
|
17
|
+
<action>Exit — no changes made.</action>
|
|
18
|
+
</check>
|
|
19
|
+
<action>Read `{story_location}/sprint-status.yaml` and parse all sections: metadata, `epics`, `backlog`, `sprints`.</action>
|
|
20
|
+
<action>If the parsed metadata contains a `story_location` field, update `story_location` to that value (allows the skill to resolve file paths correctly for non-default locations).</action>
|
|
21
|
+
<action>Store parsed data as {{sprint_data}} with sub-objects: {{sprint_data.metadata}}, {{sprint_data.epics}}, {{sprint_data.backlog}}, {{sprint_data.sprints}}.</action>
|
|
22
|
+
</step>
|
|
23
|
+
|
|
24
|
+
<step n="1" goal="Scan all sections for archivable items">
|
|
25
|
+
<action>Initialize {{archivable_items}} = [] (empty list).</action>
|
|
26
|
+
|
|
27
|
+
<action>Scan the `backlog` array: for each item where `status` is `done` or `cancelled`, add to {{archivable_items}} with source = "backlog".</action>
|
|
28
|
+
|
|
29
|
+
<action>Scan ALL sprints in the `sprints` map — including sprints with `status: closed` (schema section 6.7 explicitly permits cleanup-done to archive items from closed sprints):
|
|
30
|
+
For each sprint key (e.g., `sprint-1`, `sprint-2`):
|
|
31
|
+
For each item in sprint's `items` array:
|
|
32
|
+
If item's `status` is `done` or `cancelled`:
|
|
33
|
+
Add to {{archivable_items}} with source = "{sprint_key} ({sprint_name})"
|
|
34
|
+
</action>
|
|
35
|
+
|
|
36
|
+
<check if="archivable_items is empty">
|
|
37
|
+
<output>No done or cancelled items found. Nothing to clean up.</output>
|
|
38
|
+
<action>Exit — no changes made.</action>
|
|
39
|
+
</check>
|
|
40
|
+
</step>
|
|
41
|
+
|
|
42
|
+
<step n="2" goal="Display archivable items and confirm">
|
|
43
|
+
<action>Count done vs cancelled: {{done_count}} = items where status = "done", {{cancelled_count}} = items where status = "cancelled".</action>
|
|
44
|
+
<output>
|
|
45
|
+
## Items to Archive
|
|
46
|
+
|
|
47
|
+
| # | ID | Title | Type | Status | Source |
|
|
48
|
+
|---|----|----|------|--------|--------|
|
|
49
|
+
{{#each archivable_items}}
|
|
50
|
+
| {{@index+1}} | {{id}} | {{title}} | {{type}} | {{status}} | {{source}} |
|
|
51
|
+
{{/each}}
|
|
52
|
+
|
|
53
|
+
**Found {{archivable_items.length}} items to archive ({{done_count}} done, {{cancelled_count}} cancelled).**
|
|
54
|
+
</output>
|
|
55
|
+
|
|
56
|
+
<ask>Options:
|
|
57
|
+
- [c] Confirm and archive all listed items
|
|
58
|
+
- [s] Select specific items (enter numbers, e.g. 1,3,5)
|
|
59
|
+
- [x] Cancel without changes
|
|
60
|
+
|
|
61
|
+
Choice:</ask>
|
|
62
|
+
|
|
63
|
+
<check if="user selects 'x'">
|
|
64
|
+
<output>Cancelled — no changes made.</output>
|
|
65
|
+
<action>Exit.</action>
|
|
66
|
+
</check>
|
|
67
|
+
|
|
68
|
+
<check if="user selects 's'">
|
|
69
|
+
<ask>Enter item numbers to archive (comma-separated):</ask>
|
|
70
|
+
<action>Filter {{archivable_items}} to only the items matching the user's selection. Store as {{confirmed_items}}.</action>
|
|
71
|
+
</check>
|
|
72
|
+
|
|
73
|
+
<check if="user selects 'c'">
|
|
74
|
+
<action>Set {{confirmed_items}} = {{archivable_items}} (all items).</action>
|
|
75
|
+
</check>
|
|
76
|
+
</step>
|
|
77
|
+
|
|
78
|
+
<step n="3" goal="Archive story/bug files">
|
|
79
|
+
<action>Ensure `{story_location}/done/` directory exists. Create it if it does not exist.</action>
|
|
80
|
+
<action>Initialize {{files_moved}} = [], {{files_skipped_missing}} = [], {{files_skipped_exists}} = [].</action>
|
|
81
|
+
|
|
82
|
+
<action>For each item in {{confirmed_items}}:
|
|
83
|
+
1. Resolve source path: `{story_location}/{item.id}.md`
|
|
84
|
+
- For bug items, also try `{story_location}/bug-{slug}.md` and `{story_location}/BUG-{slug}.md` as fallbacks if the primary path does not exist (where {slug} is derived from the id by removing any leading BUG- or bug- prefix, lowercased).
|
|
85
|
+
2. Resolve destination path: `{story_location}/done/{item.id}.md`
|
|
86
|
+
|
|
87
|
+
3. If no source file exists at any resolved path:
|
|
88
|
+
- Log warning: "File not found: {resolved_path} — skipping file move."
|
|
89
|
+
- Add to {{files_skipped_missing}}.
|
|
90
|
+
- Continue to next item (YAML removal proceeds regardless).
|
|
91
|
+
|
|
92
|
+
4. If destination file already exists:
|
|
93
|
+
- Log warning: "File already exists at destination: {destination_path} — skipping file move."
|
|
94
|
+
- Add to {{files_skipped_exists}}.
|
|
95
|
+
- Continue to next item (YAML removal proceeds regardless).
|
|
96
|
+
|
|
97
|
+
5. Move (rename) the source file to the destination path.
|
|
98
|
+
Use a move/rename operation (not copy+delete) to preserve git history.
|
|
99
|
+
Add {from: source_path, to: destination_path} to {{files_moved}}.
|
|
100
|
+
</action>
|
|
101
|
+
</step>
|
|
102
|
+
|
|
103
|
+
<step n="4" goal="Remove archived items from sprint-status.yaml">
|
|
104
|
+
<action>For each item in {{confirmed_items}}:
|
|
105
|
+
- If item's source is "backlog": remove the item object from {{sprint_data.backlog}} array.
|
|
106
|
+
- If item's source is a sprint (e.g., "sprint-1 (Sprint Name)"): extract the sprint key from the source string (the part before the space and parenthesis, e.g., "sprint-1"), then remove the item object from that sprint's `items` array in {{sprint_data.sprints}}.
|
|
107
|
+
</action>
|
|
108
|
+
|
|
109
|
+
<action>Track whether any backlog items were removed. If yes: renumber remaining backlog items' `priority` values sequentially starting at 1 to match their new array positions (priority[0] = 1, priority[1] = 2, ..., priority[N-1] = N). Store the count of remaining backlog items as {{backlog_items_renumbered}} (0 if no backlog items were removed). This keeps the `priority` field in sync with array position per schema section 3.3.</action>
|
|
110
|
+
</step>
|
|
111
|
+
|
|
112
|
+
<step n="5" goal="Update epic statuses">
|
|
113
|
+
<action>For each epic in {{sprint_data.epics}} where epic's current `status` is `in-progress`:
|
|
114
|
+
1. Determine the epic number N from the key (e.g., `epic-5` → N = 5).
|
|
115
|
+
2. Check if ANY items with `epic: N` remain in:
|
|
116
|
+
a. {{sprint_data.backlog}} (after removal in Step 4)
|
|
117
|
+
b. Any sprint's `items` array in {{sprint_data.sprints}} (after removal in Step 4)
|
|
118
|
+
3. Also verify that at least one item for this epic was archived now or previously exists in `{story_location}/done/` (to guard against marking an epic done that never had stories — epics with zero items anywhere should NOT be auto-marked done unless there are archived stories for them).
|
|
119
|
+
4. If no remaining items for this epic exist in backlog or any sprint, AND at least one archived item exists for this epic: update the epic's `status` to `done`.
|
|
120
|
+
5. Record which epics were transitioned to `done` in {{epics_marked_done}}.
|
|
121
|
+
</action>
|
|
122
|
+
</step>
|
|
123
|
+
|
|
124
|
+
<step n="6" goal="Detect empty active sprints">
|
|
125
|
+
<action>After item removal (Step 4), check each sprint that had items removed from its `items` array:
|
|
126
|
+
- If the sprint's `items` array is now empty AND the sprint's `status` is `active`:
|
|
127
|
+
- Add to {{empty_active_sprints}} list with sprint name.
|
|
128
|
+
</action>
|
|
129
|
+
</step>
|
|
130
|
+
|
|
131
|
+
<step n="7" goal="Atomic write to sprint-status.yaml">
|
|
132
|
+
<action>Update {{sprint_data.metadata.last_updated}} to the current ISO-8601 date (YYYY-MM-DD). Preserve {{sprint_data.metadata.generated}} unchanged.</action>
|
|
133
|
+
<action>Write the complete updated `sprint-status.yaml` in a single write operation, incorporating:
|
|
134
|
+
- All item removals from sprint `items` arrays (Step 4)
|
|
135
|
+
- All item removals from `backlog` array (Step 4)
|
|
136
|
+
- Backlog priority renumbering (Step 4)
|
|
137
|
+
- Epic status updates (Step 5)
|
|
138
|
+
- Updated `last_updated` metadata (this step)
|
|
139
|
+
- All sections NOT modified pass through unchanged.
|
|
140
|
+
</action>
|
|
141
|
+
</step>
|
|
142
|
+
|
|
143
|
+
<step n="8" goal="Display summary output">
|
|
144
|
+
<output>
|
|
145
|
+
## Cleanup Complete
|
|
146
|
+
|
|
147
|
+
### Items Archived ({{confirmed_items.length}})
|
|
148
|
+
|
|
149
|
+
| ID | Title | Type | Status | Source |
|
|
150
|
+
|----|-------|------|--------|--------|
|
|
151
|
+
{{#each confirmed_items}}
|
|
152
|
+
| {{id}} | {{title}} | {{type}} | {{status}} | {{source}} |
|
|
153
|
+
{{/each}}
|
|
154
|
+
|
|
155
|
+
### Files Moved ({{files_moved.length}})
|
|
156
|
+
|
|
157
|
+
{{#each files_moved}}
|
|
158
|
+
- `{{from}}` → `{{to}}`
|
|
159
|
+
{{/each}}
|
|
160
|
+
|
|
161
|
+
{{#if files_skipped_missing.length > 0}}
|
|
162
|
+
### Warnings — Files Not Found (skipped, YAML still cleaned up)
|
|
163
|
+
|
|
164
|
+
{{#each files_skipped_missing}}
|
|
165
|
+
- File not found: `{{this}}` — skipping file move.
|
|
166
|
+
{{/each}}
|
|
167
|
+
{{/if}}
|
|
168
|
+
|
|
169
|
+
{{#if files_skipped_exists.length > 0}}
|
|
170
|
+
### Warnings — Destination Already Exists (skipped, YAML still cleaned up)
|
|
171
|
+
|
|
172
|
+
{{#each files_skipped_exists}}
|
|
173
|
+
- File already exists at destination: `{{this}}` — skipping file move.
|
|
174
|
+
{{/each}}
|
|
175
|
+
{{/if}}
|
|
176
|
+
|
|
177
|
+
{{#if backlog_items_renumbered > 0}}
|
|
178
|
+
### Backlog Renumbered
|
|
179
|
+
|
|
180
|
+
{{backlog_items_renumbered}} remaining backlog items renumbered (priorities 1..{{backlog_items_renumbered}}).
|
|
181
|
+
{{/if}}
|
|
182
|
+
|
|
183
|
+
{{#if epics_marked_done.length > 0}}
|
|
184
|
+
### Epics Marked Done
|
|
185
|
+
|
|
186
|
+
{{#each epics_marked_done}}
|
|
187
|
+
- **{{this}}** — all stories archived; epic status updated to `done`.
|
|
188
|
+
{{/each}}
|
|
189
|
+
{{/if}}
|
|
190
|
+
|
|
191
|
+
{{#if empty_active_sprints.length > 0}}
|
|
192
|
+
### Suggestion
|
|
193
|
+
|
|
194
|
+
{{#each empty_active_sprints}}
|
|
195
|
+
Sprint **{{this}}** has no remaining items. Consider running `/close-sprint` (Story 17.21) to close it.
|
|
196
|
+
{{/each}}
|
|
197
|
+
{{/if}}
|
|
198
|
+
|
|
199
|
+
**Next steps:** `/sprint-status-view` to review the updated sprint | `/close-sprint` if a sprint is empty | `/generate-backlog` to refresh the backlog
|
|
200
|
+
</output>
|
|
201
|
+
</step>
|
|
202
|
+
|
|
203
|
+
</workflow>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cleanup-done",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Archive done and cancelled items — remove from sprint-status.yaml and move story/bug files to done/ subfolder",
|
|
5
|
+
"category": "workflow",
|
|
6
|
+
"tags": ["sprint-management", "archival", "cleanup", "done"]
|
|
7
|
+
}
|