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,127 @@
|
|
|
1
|
+
# Story 12.3: Create Modify Sprint Extension Workflow
|
|
2
|
+
|
|
3
|
+
Status: done
|
|
4
|
+
|
|
5
|
+
<!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
|
|
6
|
+
|
|
7
|
+
## Story
|
|
8
|
+
|
|
9
|
+
As a **Scrum Master**,
|
|
10
|
+
I want an extension workflow to modify existing sprints,
|
|
11
|
+
So that scope can be adjusted when priorities change mid-sprint.
|
|
12
|
+
|
|
13
|
+
## Acceptance Criteria
|
|
14
|
+
|
|
15
|
+
1. **Given** modify-sprint workflow exists in lib/bmad-extension/workflows/modify-sprint/workflow.md,
|
|
16
|
+
**When** invoked (NFR19),
|
|
17
|
+
**Then** it allows: adding items, removing items, changing capacity, updating metadata
|
|
18
|
+
|
|
19
|
+
2. **Given** sprint modification requested,
|
|
20
|
+
**When** items added or removed,
|
|
21
|
+
**Then** sprint status reflects updated item list and remaining capacity (FR71)
|
|
22
|
+
|
|
23
|
+
## Tasks / Subtasks
|
|
24
|
+
|
|
25
|
+
- [x] Task 1: Create modify-sprint workflow (AC: #1, #2)
|
|
26
|
+
- [x] 1.1: Create directory `lib/bmad-extension/workflows/modify-sprint/`
|
|
27
|
+
- [x] 1.2: Create `lib/bmad-extension/workflows/modify-sprint/workflow.md` with guided flow
|
|
28
|
+
|
|
29
|
+
- [x] Task 2: Implement sprint selection step (AC: #1)
|
|
30
|
+
- [x] 2.1: Workflow step 1: List available sprints by reading `_bmad-output/implementation-artifacts/sprint-plan-*.yaml`
|
|
31
|
+
- [x] 2.2: Workflow step 2: User selects sprint to modify
|
|
32
|
+
- [x] 2.3: Workflow step 3: Display current sprint state — name, capacity, assigned items with status, remaining capacity
|
|
33
|
+
|
|
34
|
+
- [x] Task 3: Implement modification operations (AC: #1, #2)
|
|
35
|
+
- [x] 3.1: Workflow step 4: Present modification menu — add item, remove item, change capacity, update metadata
|
|
36
|
+
- [x] 3.2: **Add item:** Present unassigned backlog items (from sprint-status.yaml), user selects item, add to sprint assigned_items list, check capacity
|
|
37
|
+
- [x] 3.3: **Remove item:** List currently assigned items, user selects item to remove, remove from assigned_items list, item returns to unassigned backlog
|
|
38
|
+
- [x] 3.4: **Change capacity:** Prompt for new capacity (positive integer), validate, update sprint artifact
|
|
39
|
+
- [x] 3.5: **Update metadata:** Allow updating sprint name, start/end context, status (planning/active/completed)
|
|
40
|
+
|
|
41
|
+
- [x] Task 4: Implement capacity feedback after each modification (AC: #2)
|
|
42
|
+
- [x] 4.1: After every modification, display updated remaining capacity (capacity - assigned_items count)
|
|
43
|
+
- [x] 4.2: If adding an item exceeds capacity, warn user and require confirmation or capacity increase
|
|
44
|
+
- [x] 4.3: Allow multiple modifications in sequence before finalizing
|
|
45
|
+
|
|
46
|
+
- [x] Task 5: Persist changes to sprint artifact with concurrency guard (AC: #2)
|
|
47
|
+
- [x] 5.1: Before writing, re-read the sprint artifact file and compare its `last_modified` timestamp to the value read at the start of the workflow session. If the timestamp differs, the file was modified externally — halt and display: *"Sprint artifact was modified since this session started. Re-read the current state below and confirm your changes before proceeding."* Then redisplay the current state and await user confirmation.
|
|
48
|
+
- [x] 5.2: Write updated sprint data back to the sprint YAML artifact file, updating `last_modified` to the current ISO timestamp.
|
|
49
|
+
- **Data authority note:** Do NOT write sprint assignments to sprint-status.yaml. Sprint membership is owned exclusively by sprint-plan-{n}.yaml. sprint-status.yaml is read-only from the perspective of sprint management workflows.
|
|
50
|
+
|
|
51
|
+
- [x] Task 6: Register workflow in module-help.csv (AC: #1)
|
|
52
|
+
- [x] 6.1: Add entry to `lib/bmad-extension/module-help.csv` for modify-sprint workflow
|
|
53
|
+
- [x] 6.2: Entry must include: workflow name, slash command `/modify-sprint`, description, phase association
|
|
54
|
+
|
|
55
|
+
## Dev Notes
|
|
56
|
+
|
|
57
|
+
### Architecture Compliance
|
|
58
|
+
|
|
59
|
+
- **Extension module pattern:** Workflow lives in lib/bmad-extension/workflows/modify-sprint/
|
|
60
|
+
- **Sprint artifact format:** Reads and writes the same YAML format defined in 12-1 (sprint-plan-{number}.yaml), including the `last_modified` timestamp field
|
|
61
|
+
- **Capacity as item count:** Consistent with FR66 — capacity is always an integer item count
|
|
62
|
+
- **Remaining capacity display (FR71):** After every modification, show remaining capacity
|
|
63
|
+
- **Concurrency guard:** Re-read artifact before write and compare `last_modified`. Abort write if file changed externally.
|
|
64
|
+
- **Data authority:** sprint-plan-{n}.yaml is authoritative for sprint membership. Do not modify sprint-status.yaml from this workflow.
|
|
65
|
+
|
|
66
|
+
### Shared Guardrails
|
|
67
|
+
|
|
68
|
+
See `_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md` for universal constraints, data authority rules, sprint artifact naming, and concurrency guard requirements.
|
|
69
|
+
|
|
70
|
+
### Critical Guardrails (story-specific)
|
|
71
|
+
|
|
72
|
+
- Do NOT place workflow in `_bmad/bmm/workflows/` — use `lib/bmad-extension/workflows/`
|
|
73
|
+
- Do NOT modify any existing BMAD base module files
|
|
74
|
+
- Do NOT add npm dependencies
|
|
75
|
+
- Do NOT allow capacity to be set to zero or negative values
|
|
76
|
+
- Do NOT silently exceed capacity when adding items — always warn
|
|
77
|
+
- Do NOT modify lib/installer.js, lib/agents.js, or bin/cli.js
|
|
78
|
+
- Do NOT delete sprint artifact files — only modify their contents
|
|
79
|
+
|
|
80
|
+
### Project Structure Notes
|
|
81
|
+
|
|
82
|
+
- **Files to create:**
|
|
83
|
+
- `lib/bmad-extension/workflows/modify-sprint/workflow.md`
|
|
84
|
+
- **Files to update:**
|
|
85
|
+
- `lib/bmad-extension/module-help.csv` — add workflow registration entry
|
|
86
|
+
- **Files to read/write (at runtime):**
|
|
87
|
+
- `_bmad-output/implementation-artifacts/sprint-plan-*.yaml` — sprint artifact files
|
|
88
|
+
- `_bmad-output/implementation-artifacts/sprint-status.yaml` — backlog item status
|
|
89
|
+
|
|
90
|
+
### References
|
|
91
|
+
|
|
92
|
+
- [Source: lib/bmad-extension/workflows/add-sprint/workflow.md] — Sprint artifact format (created in 12-1)
|
|
93
|
+
- [Source: lib/bmad-extension/workflows/add-to-sprint/workflow.md] — Item assignment pattern (created in 12-2)
|
|
94
|
+
- [Source: _bmad-output/implementation-artifacts/sprint-status.yaml] — Backlog status file
|
|
95
|
+
|
|
96
|
+
## Dev Agent Record
|
|
97
|
+
|
|
98
|
+
### Agent Model Used
|
|
99
|
+
claude-sonnet-4-6
|
|
100
|
+
|
|
101
|
+
### Debug Log References
|
|
102
|
+
None — clean implementation.
|
|
103
|
+
|
|
104
|
+
### Completion Notes List
|
|
105
|
+
- Created `lib/bmad-extension/workflows/modify-sprint/workflow.md` with looping multi-step menu workflow
|
|
106
|
+
- Step 1: Sprint discovery via sprint-plan-*.yaml glob; stores session_last_modified for concurrency guard
|
|
107
|
+
- Step 2: Displays current sprint state with capacity/remaining
|
|
108
|
+
- Step 3: Modification menu loops — supports multiple modifications before save
|
|
109
|
+
- Step 3a (Add item): reads sprint-status.yaml + bug-*.md glob for unassigned items; capacity over-limit warning with options (add anyway/skip/change capacity)
|
|
110
|
+
- Step 3b (Remove item): lists assigned items, removes from working state
|
|
111
|
+
- Step 3c (Change capacity): validates positive integer; updates working state
|
|
112
|
+
- Step 3d (Update metadata): name, start/end context, status (planning/active/completed)
|
|
113
|
+
- Step 4 (Concurrency guard): re-reads file before write, compares last_modified; on conflict offers overwrite/merge/cancel
|
|
114
|
+
- Step 5: Writes updated YAML preserving sprint_number and created_date; updates last_modified to current ISO timestamp; sprint-status.yaml not modified
|
|
115
|
+
- Registered in module-help.csv with `/modify-sprint` command
|
|
116
|
+
- Post-review fixes: {{working_assigned_items}} explicitly initialized from {{target_sprint.assigned_items}} in step 2 (M1); step 3b adds identifier resolution to titles/types before displaying Remove table (M2); step 3a cross-references ALL sprint plans to filter already-assigned items (H1); step 3d choice 5 now has explicit check block (L5)
|
|
117
|
+
|
|
118
|
+
### File List
|
|
119
|
+
- `lib/bmad-extension/workflows/modify-sprint/workflow.md` (created)
|
|
120
|
+
- `lib/bmad-extension/module-help.csv` (updated — added modify-sprint entry)
|
|
121
|
+
- `_bmad-output/implementation-artifacts/12-3-modify-sprint-workflow.md` (updated — status, tasks, record)
|
|
122
|
+
- `_bmad-output/implementation-artifacts/sprint-status.yaml` (updated — 12-3 in-progress→review)
|
|
123
|
+
|
|
124
|
+
## Change Log
|
|
125
|
+
|
|
126
|
+
- 2026-03-18: Story 12.3 implemented — modify-sprint extension workflow created and registered
|
|
127
|
+
- 2026-03-18: Addressed code review findings — H1 (cross-sprint filter in 3a), M1 (working_assigned_items init), M2 (identifier resolution in 3b), L5 (explicit choice 5 handler in 3d)
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Story 12.4: Update Sprint Status with Assigned Items
|
|
2
|
+
|
|
3
|
+
Status: done
|
|
4
|
+
|
|
5
|
+
<!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
|
|
6
|
+
|
|
7
|
+
## Story
|
|
8
|
+
|
|
9
|
+
As a **Scrum Master**,
|
|
10
|
+
I want sprint status workflow to show assigned items per sprint,
|
|
11
|
+
So that sprint progress is visible with all stories and bugs listed.
|
|
12
|
+
|
|
13
|
+
## Acceptance Criteria
|
|
14
|
+
|
|
15
|
+
0. **Architecture mandate:**
|
|
16
|
+
Implementation MUST create a new extension workflow at `lib/bmad-extension/workflows/sprint-status-view/workflow.md`. Do NOT modify any files under `_bmad/bmm/workflows/`. This is not a decision left to the implementing developer — the extension approach is required.
|
|
17
|
+
|
|
18
|
+
1. **Given** existing sprint status workflow,
|
|
19
|
+
**When** it displays sprint information,
|
|
20
|
+
**Then** it shows all assigned items (stories + bugs) with their current status (FR71),
|
|
21
|
+
**And** remaining capacity visible,
|
|
22
|
+
**And** bugs and stories distinguishable in listing
|
|
23
|
+
|
|
24
|
+
## Tasks / Subtasks
|
|
25
|
+
|
|
26
|
+
- [x] Task 1: Prepare extension workflow — **architecture is pre-decided: create extension only** (AC: #0)
|
|
27
|
+
- [x] 1.1: Read existing sprint-status workflow in `_bmad/bmm/workflows/` to understand current format for reference only — do NOT modify it
|
|
28
|
+
- [x] 1.2: Read existing `_bmad-output/implementation-artifacts/sprint-status.yaml` to understand current data structure
|
|
29
|
+
- [x] 1.3: Create `lib/bmad-extension/workflows/sprint-status-view/workflow.md` — this is the mandated approach. Do not modify base module files.
|
|
30
|
+
|
|
31
|
+
- [x] Task 2: Create sprint-status-view extension workflow (AC: #1)
|
|
32
|
+
- [x] 2.1: Create `lib/bmad-extension/workflows/sprint-status-view/workflow.md`
|
|
33
|
+
- [x] 2.2: Workflow step 1: Read all sprint artifact files from `_bmad-output/implementation-artifacts/sprint-plan-*.yaml`
|
|
34
|
+
- [x] 2.3: Workflow step 2: For each sprint, display: sprint name/number, capacity, status (planning/active/completed)
|
|
35
|
+
- [x] 2.4: Workflow step 3: For each sprint, list assigned items with: item identifier, title, type (story or bug), current status
|
|
36
|
+
- [x] 2.5: Workflow step 4: Display remaining capacity per sprint (capacity - assigned items count)
|
|
37
|
+
|
|
38
|
+
- [x] Task 3: Implement type distinction for stories vs bugs (AC: #1)
|
|
39
|
+
- [x] 3.1: Stories and bugs must be visually distinguishable in the listing — use type labels or markers
|
|
40
|
+
- [x] 3.2: Bug items should show severity alongside status
|
|
41
|
+
- [x] 3.3: Story items should show standard status (not-started/in-progress/done)
|
|
42
|
+
|
|
43
|
+
- [x] Task 4: Integrate with sprint-status.yaml data (AC: #1)
|
|
44
|
+
- [x] 4.1: Cross-reference sprint assigned_items (from sprint-plan-*.yaml) with sprint-status.yaml to get current item execution statuses. Data authority: sprint-plan-{n}.yaml owns membership; sprint-status.yaml owns execution status.
|
|
45
|
+
- [x] 4.2: For bug items (discovered via `bug-*.md` glob): execution status comes from the bug file's YAML frontmatter (or shows as "not-started" if no status field present — bugs start unstarted).
|
|
46
|
+
- [x] 4.3: Handle items that exist in a sprint plan but have no entry in sprint-status.yaml (user stories only): display a **data integrity warning** — *"Item {id} has no status entry in sprint-status.yaml — run /sprint-planning to initialize status tracking for this item."* Do NOT silently show "status unknown."
|
|
47
|
+
- [x] 4.4: Handle items in sprint-status.yaml not assigned to any sprint: show in an "Unassigned Backlog" summary section.
|
|
48
|
+
|
|
49
|
+
- [x] Task 5: Register workflow in module-help.csv (AC: #1)
|
|
50
|
+
- [x] 5.1: Add entry to `lib/bmad-extension/module-help.csv` for sprint-status-view workflow
|
|
51
|
+
- [x] 5.2: Entry must include: workflow name, slash command `/sprint-status-view`, description, phase association
|
|
52
|
+
|
|
53
|
+
## Dev Notes
|
|
54
|
+
|
|
55
|
+
### Architecture Compliance
|
|
56
|
+
|
|
57
|
+
- **Extension workflow mandatory:** Implementation MUST be a new extension workflow at `lib/bmad-extension/workflows/sprint-status-view/workflow.md`. This is not a preference — it is required. The base `_bmad/bmm/workflows/` must not be modified.
|
|
58
|
+
- **Sprint artifact integration:** Reads sprint-plan-{n}.yaml files created by add-sprint (12-1) and modified by add-to-sprint (12-2) and modify-sprint (12-3)
|
|
59
|
+
- **Flat listing (FR65):** Items displayed in a flat list within each sprint — no epic grouping
|
|
60
|
+
- **Remaining capacity (FR71):** Must be prominently displayed per sprint
|
|
61
|
+
- **Item type distinction:** Stories and bugs are clearly labeled — bugs show severity, stories show status
|
|
62
|
+
- **Data authority split:** sprint-plan-{n}.yaml owns sprint membership. sprint-status.yaml owns user story execution status. Bug execution status comes from bug file frontmatter. Never conflate these sources.
|
|
63
|
+
- **Bug story discovery:** Bug stories are discovered via glob `_bmad-output/implementation-artifacts/bug-*.md` with YAML frontmatter parsing. They are NOT in sprint-status.yaml.
|
|
64
|
+
- **Data integrity warnings:** Items in sprint plan but missing from sprint-status.yaml must surface as an actionable warning (run /sprint-planning), not silently as "status unknown."
|
|
65
|
+
|
|
66
|
+
### Shared Guardrails
|
|
67
|
+
|
|
68
|
+
See `_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md` for universal constraints, data authority rules, sprint artifact naming, and bug story discovery contract.
|
|
69
|
+
|
|
70
|
+
### Critical Guardrails (story-specific)
|
|
71
|
+
|
|
72
|
+
- Do NOT modify `_bmad/bmm/workflows/` base module files — extension workflow is mandatory (see AC #0)
|
|
73
|
+
- Do NOT add npm dependencies
|
|
74
|
+
- Do NOT modify lib/installer.js, lib/agents.js, or bin/cli.js
|
|
75
|
+
- Do NOT group items by epic — maintain flat backlog view within sprints
|
|
76
|
+
- Do NOT hide unassigned items — surface them in a summary section
|
|
77
|
+
|
|
78
|
+
### Project Structure Notes
|
|
79
|
+
|
|
80
|
+
- **Files to create (likely):**
|
|
81
|
+
- `lib/bmad-extension/workflows/sprint-status-view/workflow.md` (or similar name)
|
|
82
|
+
- **Files to update:**
|
|
83
|
+
- `lib/bmad-extension/module-help.csv` — add workflow registration entry (if new workflow)
|
|
84
|
+
- **Files to read (at runtime):**
|
|
85
|
+
- `_bmad-output/implementation-artifacts/sprint-plan-*.yaml` — sprint artifact files
|
|
86
|
+
- `_bmad-output/implementation-artifacts/sprint-status.yaml` — item statuses
|
|
87
|
+
- **Existing files to review (not modify):**
|
|
88
|
+
- `_bmad/bmm/workflows/` — existing sprint-status workflow for reference
|
|
89
|
+
|
|
90
|
+
### References
|
|
91
|
+
|
|
92
|
+
- [Source: _bmad-output/implementation-artifacts/sprint-status.yaml] — Current sprint status data
|
|
93
|
+
- [Source: _bmad/bmm/workflows/] — Existing sprint-status workflow for pattern reference
|
|
94
|
+
- [Source: lib/bmad-extension/workflows/add-sprint/workflow.md] — Sprint artifact format (created in 12-1)
|
|
95
|
+
- [Source: lib/bmad-extension/workflows/add-to-sprint/workflow.md] — Item assignment format (created in 12-2)
|
|
96
|
+
|
|
97
|
+
## Dev Agent Record
|
|
98
|
+
|
|
99
|
+
### Agent Model Used
|
|
100
|
+
claude-sonnet-4-6
|
|
101
|
+
|
|
102
|
+
### Debug Log References
|
|
103
|
+
None — clean implementation. Extension workflow approach confirmed mandated by AC #0.
|
|
104
|
+
|
|
105
|
+
### Completion Notes List
|
|
106
|
+
- Read existing sprint-status workflow at `_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md` for reference only (not modified)
|
|
107
|
+
- Created `lib/bmad-extension/workflows/sprint-status-view/workflow.md` as new extension (not modifying base module)
|
|
108
|
+
- Step 1: Globs sprint-plan-*.yaml sorted by sprint_number
|
|
109
|
+
- Step 2: Loads sprint-status.yaml into story_status_map (story key → status); excludes epic-* and *-retrospective keys
|
|
110
|
+
- Step 3: Globs bug-*.md into bug_metadata_map (basename → severity/title)
|
|
111
|
+
- Step 4: Per sprint — displays capacity/remaining; resolves each assigned_items entry:
|
|
112
|
+
- Stories (regex `^\d+-\d+-.+`): status from story_status_map; DATA INTEGRITY WARNING if missing (not silent "unknown")
|
|
113
|
+
- Bugs (regex `^bug-.+`): severity from bug_metadata_map frontmatter; execution status from bug frontmatter or "not-started"
|
|
114
|
+
- Type distinction: 📋 Story vs 🐛 Bug markers in table
|
|
115
|
+
- Step 5: Unassigned Backlog — stories grouped by status count + full unassigned bug table (id/title/severity)
|
|
116
|
+
- Step 6: Interactive next-action menu — option 1 now shows full unassigned item list (stories + bugs) with details
|
|
117
|
+
- Registered in module-help.csv with `/sprint-status-view` command; output_type: display (read-only workflow)
|
|
118
|
+
- Post-review fixes: story/bug patterns use explicit regex (L3); unassigned bugs show full table not count (M6); step 6 option 1 replaced with genuinely additive full backlog detail view (L4); output_type corrected to display (M7)
|
|
119
|
+
|
|
120
|
+
### File List
|
|
121
|
+
- `lib/bmad-extension/workflows/sprint-status-view/workflow.md` (created)
|
|
122
|
+
- `lib/bmad-extension/module-help.csv` (updated — added sprint-status-view entry)
|
|
123
|
+
- `_bmad-output/implementation-artifacts/12-4-sprint-status-assigned-items.md` (updated — status, tasks, record)
|
|
124
|
+
- `_bmad-output/implementation-artifacts/sprint-status.yaml` (updated — 12-4 in-progress→review, epic-12 in-progress)
|
|
125
|
+
|
|
126
|
+
## Change Log
|
|
127
|
+
|
|
128
|
+
- 2026-03-18: Story 12.4 implemented — sprint-status-view extension workflow created and registered
|
|
129
|
+
- 2026-03-18: Addressed code review findings — M6 (full unassigned bug table), M7 (output_type: display), L3 (explicit regex patterns), L4 (step 6 option 1 replaced)
|
package/_bmad-output/implementation-artifacts/done/13-1-project-context-template-and-generator.md
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Story 13.1: Create Project-Context Template and Generator Function
|
|
2
|
+
|
|
3
|
+
Status: done
|
|
4
|
+
|
|
5
|
+
## Story
|
|
6
|
+
|
|
7
|
+
As a **Chief Architect**,
|
|
8
|
+
I want a standalone project-context template and a `generateProjectContext()` function in the installer,
|
|
9
|
+
So that a constitutional document can be generated with correct platform-specific content at install time.
|
|
10
|
+
|
|
11
|
+
## Acceptance Criteria
|
|
12
|
+
|
|
13
|
+
1. `lib/templates/project-context.template.md` exists as a standalone file (not an inline string in code) containing all mandatory rule sections (NFR24)
|
|
14
|
+
2. The template contains a `## AI Agent Mandatory Rules` section with:
|
|
15
|
+
- Pre-task rules: read MANIFEST.yaml (`{{MANIFEST_PATHS_LIST}}` placeholder), load all `always_load: true` skills, select task-relevant skills (FR80)
|
|
16
|
+
- Git workflow rules: create fresh worktree per mission (not just a branch), all work in worktree, conventional commits, PR to main, worktree cleanup post-merge (FR80)
|
|
17
|
+
- Full 8-step mission lifecycle documented in sequence (FR83)
|
|
18
|
+
3. The template contains `{{MANIFEST_PATHS_LIST}}` exactly once — no hardcoded platform paths anywhere in the template source (NFR22)
|
|
19
|
+
4. The template contains the machine-readable version comment `<!-- ma-agents-template-version: 1.0 -->` on line 2 (NFR25)
|
|
20
|
+
5. The template contains inline expansion comments referencing `bmad-generate-project-context`, `bmad-retrospective`, and manual additions (FR85)
|
|
21
|
+
6. The template contains empty `## Technology Stack` and `## Project-Specific Rules` placeholder sections with TODO comments
|
|
22
|
+
7. `generateProjectContext(projectRoot, installedAgents)` is implemented in `installer.js` — `installedAgents` receives ALL agents from the project manifest, not just those installed in the current run
|
|
23
|
+
8. The function reads the template from `TEMPLATE_PATH` constant (resolved via `path.join(__dirname, 'templates', 'project-context.template.md')`, not hardcoded inline)
|
|
24
|
+
9. The function resolves relative MANIFEST.yaml paths for each agent: `agent.skillsDir + '/MANIFEST.yaml'` — relative to project root, no `path.resolve()` or absolute prefixes (NFR22 for generated output)
|
|
25
|
+
10. The function replaces `{{MANIFEST_PATHS_LIST}}` with a markdown bullet list: one ` - \`<path>\`` line per agent (FR81, FR82)
|
|
26
|
+
11. The function returns the stamped content string — it does NOT write any file (writing is Story 13.2's responsibility)
|
|
27
|
+
12. When `installedAgents` is empty, `{{MANIFEST_PATHS_LIST}}` is replaced with ` - (no agents installed — run ma-agents to install skills)`
|
|
28
|
+
13. When the template file cannot be read (missing, permission error), the function throws an `Error` with message including the template path and the underlying cause — it never swallows errors silently
|
|
29
|
+
14. With one installed platform, the returned content contains exactly one MANIFEST path entry (FR81)
|
|
30
|
+
15. With multiple installed platforms, the returned content contains one entry per platform in the order they appear in the manifest (FR82)
|
|
31
|
+
|
|
32
|
+
## Tasks / Subtasks
|
|
33
|
+
|
|
34
|
+
- [x] Task 1: Create `lib/templates/` directory and template file (AC: #1-#4)
|
|
35
|
+
- [x] 1.1 Create `lib/templates/` directory in the project
|
|
36
|
+
- [x] 1.2 Create `lib/templates/project-context.template.md` with the full template structure (see Dev Notes for exact content)
|
|
37
|
+
- [x] 1.3 Verify template contains `{{MANIFEST_PATHS_LIST}}` placeholder
|
|
38
|
+
- [x] 1.4 Verify template contains all three mandatory rule sections: pre-task, git workflow, mission lifecycle
|
|
39
|
+
- [x] 1.5 Verify template contains expansion guidance comments
|
|
40
|
+
- [x] 1.6 Verify template contains empty Technology Stack and Project-Specific Rules sections
|
|
41
|
+
|
|
42
|
+
- [x] Task 2: Implement `generateProjectContext()` in `installer.js` (AC: #5-#9)
|
|
43
|
+
- [x] 2.1 Add `TEMPLATE_PATH` constant near top of `installer.js`: `const TEMPLATE_PATH = path.join(__dirname, 'templates', 'project-context.template.md')`
|
|
44
|
+
- [x] 2.2 Implement `async function generateProjectContext(projectRoot, installedAgents)`:
|
|
45
|
+
- [x] 2.2.1 Read template file with `await fs.readFile(TEMPLATE_PATH, 'utf8')`
|
|
46
|
+
- [x] 2.2.2 Map `installedAgents` to manifest paths: `agent.skillsDir + '/MANIFEST.yaml'` (relative paths — no `path.join(projectRoot, ...)`)
|
|
47
|
+
- [x] 2.2.3 Format paths as markdown list: ` - \`${path}\``
|
|
48
|
+
- [x] 2.2.4 Replace `{{MANIFEST_PATHS_LIST}}` in template with formatted list
|
|
49
|
+
- [x] 2.2.5 Return stamped content string
|
|
50
|
+
- [x] 2.3 Wrap `fs.readFile` in try/catch — if template file missing, throw clear error: `"project-context template not found at ${TEMPLATE_PATH} — ma-agents installation may be corrupted"`
|
|
51
|
+
|
|
52
|
+
- [x] Task 3: Unit tests (AC: all)
|
|
53
|
+
- [x] 3.1 Test: single platform → one MANIFEST path in output (AC: #14)
|
|
54
|
+
- [x] 3.2 Test: multiple platforms → correct count of paths in manifest order (AC: #15)
|
|
55
|
+
- [x] 3.3 Test: all relative paths — no absolute path segments in output (AC: #9)
|
|
56
|
+
- [x] 3.4 Test: `{{MANIFEST_PATHS_LIST}}` placeholder fully replaced — not present in output (AC: #10)
|
|
57
|
+
- [x] 3.5 Test: empty agents array → fallback message appears, no error thrown (AC: #12)
|
|
58
|
+
- [x] 3.6 Test: missing template file → Error thrown with path in message (AC: #13)
|
|
59
|
+
- [x] 3.7 Test: template version comment present in output (AC: #4, NFR25)
|
|
60
|
+
- [x] 3.8 Test: function does NOT call fs.writeFile or fs.pathExists (AC: #11 — pure content generator)
|
|
61
|
+
|
|
62
|
+
## Dev Notes
|
|
63
|
+
|
|
64
|
+
### Template File Content
|
|
65
|
+
|
|
66
|
+
`lib/templates/project-context.template.md` should contain:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
# Project Context
|
|
70
|
+
<!-- Generated by ma-agents at install time — this is a living document -->
|
|
71
|
+
<!--
|
|
72
|
+
EXPAND THIS FILE over time:
|
|
73
|
+
- After architecture phase: run /bmad-generate-project-context
|
|
74
|
+
- After each sprint: run /bmad-retrospective (includes context update step)
|
|
75
|
+
- Manually: add conventions you notice agents getting wrong
|
|
76
|
+
-->
|
|
77
|
+
|
|
78
|
+
## AI Agent Mandatory Rules
|
|
79
|
+
|
|
80
|
+
### Pre-Task (EVERY task, no exceptions)
|
|
81
|
+
|
|
82
|
+
1. Read the MANIFEST.yaml for your platform:
|
|
83
|
+
{{MANIFEST_PATHS_LIST}}
|
|
84
|
+
2. Load ALL skills marked `always_load: true` completely before doing anything
|
|
85
|
+
3. Select additional skills relevant to the specific task type
|
|
86
|
+
|
|
87
|
+
### Git Workflow (ALL file-changing tasks)
|
|
88
|
+
|
|
89
|
+
1. Create a fresh worktree: `git worktree add ../<project>-<branch> -b <branch>`
|
|
90
|
+
2. ALL work happens inside that worktree — never in the main working tree
|
|
91
|
+
3. Use conventional commits: `feat/fix/chore/docs/refactor`
|
|
92
|
+
4. Open a PR to main — never commit directly to main, never auto-merge
|
|
93
|
+
5. After human approval and merge: `git worktree remove ../<project>-<branch>`
|
|
94
|
+
|
|
95
|
+
### Agent Mission Lifecycle
|
|
96
|
+
|
|
97
|
+
1. **Pre-flight:** Read MANIFEST.yaml, load always_load skills, select task skills
|
|
98
|
+
2. **Worktree:** `git worktree add` creates fresh, isolated working surface
|
|
99
|
+
3. **Implementation:** Execute task within the worktree
|
|
100
|
+
4. **Self-review:** Run `code-review` skill on own output before opening PR
|
|
101
|
+
5. **PR:** Conventional commit + PR opened — clear title and description
|
|
102
|
+
6. **Human review gate:** Await approval — do NOT auto-merge under any circumstance
|
|
103
|
+
7. **Merge + cleanup:** After approval: merge, `git worktree remove`, delete branch
|
|
104
|
+
8. **Post-mission:** Update story status to done, append session to AiAudit.md
|
|
105
|
+
|
|
106
|
+
## Technology Stack
|
|
107
|
+
<!-- TODO: Populated after architecture phase via /bmad-generate-project-context -->
|
|
108
|
+
<!-- Run: /bmad-generate-project-context to auto-detect your stack -->
|
|
109
|
+
|
|
110
|
+
## Project-Specific Rules
|
|
111
|
+
<!-- TODO: Grows through retrospectives and manual additions -->
|
|
112
|
+
<!-- Run: /bmad-retrospective after each sprint to surface new conventions -->
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Architecture Compliance
|
|
116
|
+
|
|
117
|
+
- **Decision P2-7** (Project Context Auto-Generation): This story implements the template creation and generator function. Story 13.2 handles pipeline integration (writing the file).
|
|
118
|
+
- **NFR22** (Relative paths only): `agent.skillsDir` values in the agent registry are already relative project paths (e.g., `.claude/skills`). Appending `/MANIFEST.yaml` keeps them relative. Do NOT resolve to absolute paths.
|
|
119
|
+
- **NFR24** (Template as separate file): The template MUST be a file in `lib/templates/`, not a template literal in installer.js code.
|
|
120
|
+
|
|
121
|
+
### Source Tree Components to Touch
|
|
122
|
+
|
|
123
|
+
| File | Change |
|
|
124
|
+
|------|--------|
|
|
125
|
+
| `lib/templates/project-context.template.md` | CREATE — new template file |
|
|
126
|
+
| `lib/installer.js` | ADD — `TEMPLATE_PATH` constant + `generateProjectContext()` function |
|
|
127
|
+
|
|
128
|
+
### Agent Registry `skillsDir` Values
|
|
129
|
+
|
|
130
|
+
From `lib/agents.js`, the relevant `skillsDir` values for path resolution:
|
|
131
|
+
- Claude Code: `.claude/skills`
|
|
132
|
+
- Cursor: `.cursor/skills`
|
|
133
|
+
- Cline: `.cline/skills`
|
|
134
|
+
- Copilot: `.github/copilot/skills`
|
|
135
|
+
- Gemini: `.gemini/skills`
|
|
136
|
+
- Kilocode: `.kilocode/skills`
|
|
137
|
+
- OpenCode: `.opencode/skills`
|
|
138
|
+
- Antigravity: `.antigravity/skills`
|
|
139
|
+
|
|
140
|
+
Verify actual values by reading `lib/agents.js` before implementation.
|
|
141
|
+
|
|
142
|
+
### Testing Standards
|
|
143
|
+
|
|
144
|
+
Epic 7 test suite is not yet complete. Manual verification is acceptable. If tests/installer.test.js exists, add unit tests there. Otherwise document manual test steps.
|
|
145
|
+
|
|
146
|
+
### Epic 13 Cross-Story Context
|
|
147
|
+
|
|
148
|
+
**Story 13.1** (this): Create template file and generator function — returns stamped content string
|
|
149
|
+
**Story 13.2**: Call `generateProjectContext()` in install pipeline, handle file write + idempotency
|
|
150
|
+
**Story 13.3**: Update all 11 BMAD agent `critical_actions` to load project-context.md
|
|
151
|
+
**Story 13.4**: Add expansion trigger to retrospective workflow
|
|
152
|
+
|
|
153
|
+
## Dev Agent Record
|
|
154
|
+
|
|
155
|
+
### Agent Model Used
|
|
156
|
+
claude-sonnet-4-6
|
|
157
|
+
|
|
158
|
+
### Debug Log References
|
|
159
|
+
- Test 3.1/3.2 initially failed: template itself contains "MANIFEST.yaml" in header text. Fixed test helper to count only backtick-wrapped path entries (`/MANIFEST.yaml`) not all occurrences of "MANIFEST.yaml".
|
|
160
|
+
- Tests 3.6 and 3.8 raced when Promise.all ran them in parallel (3.6 temporarily renames template file). Fixed by running tests sequentially with async/await instead of Promise.all over parallel promises.
|
|
161
|
+
- `skillsDir` property added to all agent definitions in `lib/agents.js` (not in original source tree spec) — required for `agent.skillsDir + '/MANIFEST.yaml'` pattern. All relative paths derived from agent definitions match the Dev Notes table.
|
|
162
|
+
|
|
163
|
+
### Completion Notes List
|
|
164
|
+
- `lib/templates/project-context.template.md` created with all mandatory rule sections, version comment on line 2, `{{MANIFEST_PATHS_LIST}}` placeholder (exactly once), expansion guidance comments, and empty Technology Stack / Project-Specific Rules sections.
|
|
165
|
+
- `TEMPLATE_PATH` constant added near top of `lib/installer.js`.
|
|
166
|
+
- `generateProjectContext(projectRoot, installedAgents)` implemented: reads template, maps agents to relative MANIFEST paths via `agent.skillsDir`, replaces placeholder, returns content string. Throws descriptive Error on missing template.
|
|
167
|
+
- `skillsDir` property added to all 12 agent definitions in `lib/agents.js` for clean relative-path access.
|
|
168
|
+
- `generateProjectContext` and `_TEMPLATE_PATH` exported from `lib/installer.js`.
|
|
169
|
+
- 9 unit tests written in `test/generate-project-context.test.js` covering all 8 ACs. All pass. Full regression suite (84 tests) passes with no regressions.
|
|
170
|
+
|
|
171
|
+
### File List
|
|
172
|
+
- `lib/templates/project-context.template.md` — CREATED
|
|
173
|
+
- `lib/installer.js` — MODIFIED (TEMPLATE_PATH constant, generateProjectContext function, exports)
|
|
174
|
+
- `lib/agents.js` — MODIFIED (skillsDir property added to all 12 agent definitions)
|
|
175
|
+
- `test/generate-project-context.test.js` — CREATED
|
|
176
|
+
|
|
177
|
+
## Change Log
|
|
178
|
+
- 2026-03-19: Story created (Epic 13, Story 13.1)
|
|
179
|
+
- 2026-03-20: Story implemented — template file created, generateProjectContext() implemented, 9 unit tests passing, no regressions
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Story 13.2: Integrate Project-Context Generation into Install Pipeline
|
|
2
|
+
|
|
3
|
+
Status: done
|
|
4
|
+
|
|
5
|
+
## Story
|
|
6
|
+
|
|
7
|
+
As a **DevOps Engineer**,
|
|
8
|
+
I want project-context.md generated automatically at the end of every project-level skill installation,
|
|
9
|
+
So that every ma-agents project has the constitutional document without any manual step.
|
|
10
|
+
|
|
11
|
+
## Acceptance Criteria
|
|
12
|
+
|
|
13
|
+
1. `generateProjectContext()` (from Story 13.1) is called at the end of the install pipeline for project-level installs
|
|
14
|
+
2. After a successful project-level install, `_bmad-output/project-context.md` exists on disk
|
|
15
|
+
3. The generated file contains the stamped template content with correct MANIFEST paths for all installed platforms
|
|
16
|
+
4. When `_bmad-output/project-context.md` does NOT exist before install: the file is created and a success message is logged: `✓ project-context.md generated at _bmad-output/project-context.md` (FR79)
|
|
17
|
+
5. When `_bmad-output/project-context.md` ALREADY EXISTS before install: the MANIFEST paths section (between `<!-- ma-agents:manifest-paths-start -->` and `<!-- ma-agents:manifest-paths-end -->` markers) is updated if new agents have been added — all other content is preserved (NFR23). If paths are already current, an info message is logged: `ℹ project-context.md already up to date`. If paths were updated, a success message is logged: `✓ project-context.md manifest paths updated` (FR84)
|
|
18
|
+
6. Global installs (targeting `~/.config/<agent>/` or equivalent user-level paths) do NOT trigger project-context generation — only project-level installs do
|
|
19
|
+
7. Non-interactive CI/CD mode (`--yes` flag) produces identical project-context behaviour — no interactive prompts, generation fires automatically (FR84)
|
|
20
|
+
8. If `_bmad-output/` directory does not exist, it is created before writing the file (consistent with existing `_bmad-output` policy from Epic 10)
|
|
21
|
+
9. The write operation is additive-only — it does not modify any other file in `_bmad-output/` (NFR23)
|
|
22
|
+
10. If `generateProjectContext()` throws (e.g., template file missing), the error is logged with context but does NOT abort the entire install — project-context generation failure is non-fatal
|
|
23
|
+
|
|
24
|
+
## Tasks / Subtasks
|
|
25
|
+
|
|
26
|
+
- [x] Task 1: Identify the correct integration point in `installer.js` (AC: #1, #6)
|
|
27
|
+
- [x] 1.1 Read `lib/installer.js` to find where project-level installation completes (after manifest update, after skill copy)
|
|
28
|
+
- [x] 1.2 Identify how to detect project-level vs global install (check for `projectRoot` vs user home detection, or existing `isProjectInstall` logic)
|
|
29
|
+
- [x] 1.3 Confirm `installedAgents` list is available at that point (or can be derived from manifest state)
|
|
30
|
+
|
|
31
|
+
- [x] Task 2: Implement the pipeline integration (AC: #1-#5, #7-#10)
|
|
32
|
+
- [x] 2.1 After manifest update step, read ALL currently-installed agents from the updated manifest (`.ma-agents.json`) — this is the `installedAgentConfigs` passed to `generateProjectContext()`. Never pass only the current-run agents; the manifest is the source of truth for completeness (architecture Decision P2-7)
|
|
33
|
+
- [x] 2.2 Add call using the two-layer pattern from architecture P2-7:
|
|
34
|
+
```javascript
|
|
35
|
+
if (isProjectInstall) {
|
|
36
|
+
const outputPath = path.join(projectRoot, '_bmad-output', 'project-context.md');
|
|
37
|
+
if (await fs.pathExists(outputPath)) {
|
|
38
|
+
console.log(chalk.blue('ℹ project-context.md already exists — skipping generation'));
|
|
39
|
+
} else {
|
|
40
|
+
try {
|
|
41
|
+
const allAgents = readAllAgentsFromManifest(projectRoot); // read .ma-agents.json
|
|
42
|
+
await fs.ensureDir(path.join(projectRoot, '_bmad-output'));
|
|
43
|
+
const content = await generateProjectContext(projectRoot, allAgents);
|
|
44
|
+
await fs.writeFile(outputPath, content, 'utf8');
|
|
45
|
+
console.log(chalk.green('✓ project-context.md generated at _bmad-output/project-context.md'));
|
|
46
|
+
} catch (err) {
|
|
47
|
+
console.log(chalk.yellow(`⚠ project-context generation failed: ${err.message} — continuing install`));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
- [x] 2.3 Verify `fs.ensureDir` is already available (it is — `fs-extra` is a dependency)
|
|
53
|
+
|
|
54
|
+
- [x] Task 3: Validate global install exclusion (AC: #6)
|
|
55
|
+
- [x] 3.1 Read how installer.js currently distinguishes project-level vs global install
|
|
56
|
+
- [x] 3.2 Ensure the `isProjectInstall` condition (or equivalent) correctly gates project-context generation
|
|
57
|
+
- [x] 3.3 Manually test: run `npx ma-agents install --global` (if supported) and confirm no `_bmad-output/project-context.md` is created in home directory
|
|
58
|
+
|
|
59
|
+
- [x] Task 4: Idempotency verification (AC: #5)
|
|
60
|
+
- [x] 4.1 Create a test project with existing `_bmad-output/project-context.md` (any content)
|
|
61
|
+
- [x] 4.2 Run `npx ma-agents install` on that project
|
|
62
|
+
- [x] 4.3 Confirm the existing file content is unchanged
|
|
63
|
+
- [x] 4.4 Confirm the info message appears in output
|
|
64
|
+
|
|
65
|
+
- [x] Task 5: CI/CD mode verification (AC: #7)
|
|
66
|
+
- [x] 5.1 Run `npx ma-agents install --yes` on a project without existing project-context.md
|
|
67
|
+
- [x] 5.2 Confirm `_bmad-output/project-context.md` is generated without interactive prompts
|
|
68
|
+
- [x] 5.3 Run again — confirm idempotency in `--yes` mode
|
|
69
|
+
|
|
70
|
+
## Dev Notes
|
|
71
|
+
|
|
72
|
+
### Architecture Compliance
|
|
73
|
+
|
|
74
|
+
- **Decision P2-7**: Story 13.2 implements the "write file" half of the two-part generation pattern. Story 13.1 implemented the "return stamped content" half.
|
|
75
|
+
- **NFR23** (Additive-only): `fs.pathExists` check before write is the enforcement mechanism. The write path only triggers if the file does not exist.
|
|
76
|
+
- **Epic 10** (`_bmad-output` policy): `_bmad-output/` is never gitignored (enforced by Epic 10). `fs.ensureDir` creates it if absent — this is consistent with existing policy.
|
|
77
|
+
|
|
78
|
+
### Install Pipeline Stage
|
|
79
|
+
|
|
80
|
+
The call to `generateProjectContext()` belongs **after** the manifest update stage (Stage 5 of the install pipeline) but before the final success message. This ensures:
|
|
81
|
+
1. All agent configs are finalized in the manifest before we read them
|
|
82
|
+
2. The MANIFEST.yaml files have already been written to the agent skill directories
|
|
83
|
+
3. The user sees project-context generation as the final step of a successful install
|
|
84
|
+
|
|
85
|
+
### Project-Level Detection
|
|
86
|
+
|
|
87
|
+
Read `installer.js` to verify the current detection mechanism. Likely candidates:
|
|
88
|
+
- Presence of a `package.json` or `.git` directory in `projectRoot`
|
|
89
|
+
- A `--project` flag vs `--global` flag in CLI arguments
|
|
90
|
+
- The existing install path resolution logic that distinguishes project vs user-level paths
|
|
91
|
+
|
|
92
|
+
Do NOT assume — read the code first.
|
|
93
|
+
|
|
94
|
+
### `installedAgentConfigs` Composition
|
|
95
|
+
|
|
96
|
+
Pass the agent config objects that were actually installed in this run. Each must have a `skillsDir` property (relative path from project root to that agent's skills directory). If the installer already tracks which agents were installed, use that list. If not, derive from the manifest.
|
|
97
|
+
|
|
98
|
+
### Error Handling Philosophy
|
|
99
|
+
|
|
100
|
+
Project-context generation is a **convenience feature**, not a critical install step. A template file corruption or disk permission error should log a warning but never roll back skills that were successfully installed. This is the same philosophy as the audit trail — helpful but not blocking.
|
|
101
|
+
|
|
102
|
+
### Source Tree Components to Touch
|
|
103
|
+
|
|
104
|
+
| File | Change |
|
|
105
|
+
|------|--------|
|
|
106
|
+
| `lib/installer.js` | ADD — integration call at end of project-level install pipeline |
|
|
107
|
+
|
|
108
|
+
### Epic 13 Cross-Story Context
|
|
109
|
+
|
|
110
|
+
**Story 13.1** (prerequisite): Created `generateProjectContext()` function and template file
|
|
111
|
+
**Story 13.2** (this): Wires the generator into the install pipeline with file write + idempotency
|
|
112
|
+
**Story 13.3**: Updates BMAD critical_actions to load project-context.md at agent activation
|
|
113
|
+
**Story 13.4**: Adds expansion trigger to retrospective workflow
|
|
114
|
+
|
|
115
|
+
## Dev Agent Record
|
|
116
|
+
|
|
117
|
+
### Agent Model Used
|
|
118
|
+
claude-sonnet-4-6
|
|
119
|
+
|
|
120
|
+
### Debug Log References
|
|
121
|
+
- Integration point: inside `if (scope === 'project')` block in `installSkill`, after the Claude Code hook deployment. The `manifest` variable is already in scope at that point, allowing direct use of `getManifestAgents(manifest)` without re-reading the file.
|
|
122
|
+
- Project-level detection: `scope === 'project'` parameter controls whether project-context generation fires. Global installs use `scope === 'global'` and are excluded automatically.
|
|
123
|
+
- First run created `_bmad-output/project-context.md`; subsequent runs log "already exists — skipping generation". Confirmed via yes-flag integration test passing (111/111 total tests pass).
|
|
124
|
+
|
|
125
|
+
### Completion Notes List
|
|
126
|
+
- Added project-context generation call inside `if (scope === 'project')` block in `installSkill` in `lib/installer.js`.
|
|
127
|
+
- Uses `getManifestAgents(manifest).map(id => getAgent(id)).filter(Boolean)` to get ALL installed agent configs from manifest (source of truth per P2-7).
|
|
128
|
+
- `fs.pathExists` check gates first-install vs update path (AC #8). `fs.ensureDir` creates `_bmad-output/` if absent. Full try/catch makes generation non-fatal (AC #10).
|
|
129
|
+
- **`updateProjectContextManifestPaths(outputPath, installedAgents)`** added to `lib/installer.js`: on subsequent installs, updates only the MANIFEST paths section between `<!-- ma-agents:manifest-paths-start -->` / `<!-- ma-agents:manifest-paths-end -->` markers. Returns `true` if file was written, `false` if already up-to-date or no markers (old-format backward compat). This extends AC #5 — the file IS updated when new agents are added, but only the paths section, preserving all user edits.
|
|
130
|
+
- `projectContextHandled` guard added to `installSkill` to prevent redundant project-context operations when multiple path groups share a skill install.
|
|
131
|
+
- All tests pass (no regressions).
|
|
132
|
+
|
|
133
|
+
### File List
|
|
134
|
+
- `lib/installer.js` — MODIFIED (project-context generation call in installSkill; `updateProjectContextManifestPaths` function added for idempotent subsequent-install path updates)
|
|
135
|
+
|
|
136
|
+
## Change Log
|
|
137
|
+
- 2026-03-19: Story created (Epic 13, Story 13.2)
|
|
138
|
+
- 2026-03-20: Story implemented — pipeline integration added to installSkill, all tests pass
|