ma-agents 3.4.7 → 3.4.8
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/.opencode/skills/.ma-agents.json +48 -167
- package/.opencode/skills/MANIFEST.yaml +0 -128
- package/.opencode/skills/add-sprint/.gitkeep +0 -0
- package/.opencode/skills/add-sprint/SKILL.md +207 -0
- package/.opencode/skills/add-sprint/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/add-to-sprint/.gitkeep +0 -0
- package/.opencode/skills/add-to-sprint/SKILL.md +189 -0
- package/.opencode/skills/add-to-sprint/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/bmad-advanced-elicitation/SKILL.md +137 -0
- package/.opencode/skills/bmad-advanced-elicitation/methods.csv +51 -0
- package/.opencode/skills/bmad-agent-analyst/SKILL.md +56 -0
- package/.opencode/skills/bmad-agent-analyst/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-architect/SKILL.md +52 -0
- package/.opencode/skills/bmad-agent-architect/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-dev/SKILL.md +62 -0
- package/.opencode/skills/bmad-agent-dev/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-pm/SKILL.md +57 -0
- package/.opencode/skills/bmad-agent-pm/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-qa/SKILL.md +59 -0
- package/.opencode/skills/bmad-agent-qa/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-quick-flow-solo-dev/SKILL.md +51 -0
- package/.opencode/skills/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-sm/SKILL.md +53 -0
- package/.opencode/skills/bmad-agent-sm/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-tech-writer/SKILL.md +55 -0
- package/.opencode/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-agent-tech-writer/explain-concept.md +20 -0
- package/.opencode/skills/bmad-agent-tech-writer/mermaid-gen.md +20 -0
- package/.opencode/skills/bmad-agent-tech-writer/validate-doc.md +19 -0
- package/.opencode/skills/bmad-agent-tech-writer/write-document.md +20 -0
- package/.opencode/skills/bmad-agent-ux-designer/SKILL.md +53 -0
- package/.opencode/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-brainstorming/SKILL.md +6 -0
- package/.opencode/skills/bmad-brainstorming/brain-methods.csv +62 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-01-session-setup.md +214 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-01b-continue.md +124 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-02a-user-selected.md +229 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +239 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-02c-random-selection.md +211 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +266 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-03-technique-execution.md +401 -0
- package/.opencode/skills/bmad-brainstorming/steps/step-04-idea-organization.md +305 -0
- package/.opencode/skills/bmad-brainstorming/template.md +15 -0
- package/.opencode/skills/bmad-brainstorming/workflow.md +53 -0
- package/.opencode/skills/bmad-check-implementation-readiness/SKILL.md +6 -0
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
- package/.opencode/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +126 -0
- package/.opencode/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/.opencode/skills/bmad-check-implementation-readiness/workflow.md +49 -0
- package/.opencode/skills/bmad-cis-design-thinking/SKILL.md +6 -0
- package/.opencode/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +1 -0
- package/.opencode/skills/bmad-cis-design-thinking/design-methods.csv +31 -0
- package/.opencode/skills/bmad-cis-design-thinking/template.md +111 -0
- package/.opencode/skills/bmad-cis-design-thinking/workflow.md +242 -0
- package/.opencode/skills/bmad-cis-innovation-strategy/SKILL.md +6 -0
- package/.opencode/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +1 -0
- package/.opencode/skills/bmad-cis-innovation-strategy/innovation-frameworks.csv +31 -0
- package/.opencode/skills/bmad-cis-innovation-strategy/template.md +189 -0
- package/.opencode/skills/bmad-cis-innovation-strategy/workflow.md +315 -0
- package/.opencode/skills/bmad-cis-problem-solving/SKILL.md +6 -0
- package/.opencode/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +1 -0
- package/.opencode/skills/bmad-cis-problem-solving/solving-methods.csv +31 -0
- package/.opencode/skills/bmad-cis-problem-solving/template.md +165 -0
- package/.opencode/skills/bmad-cis-problem-solving/workflow.md +291 -0
- package/.opencode/skills/bmad-cis-storytelling/SKILL.md +6 -0
- package/.opencode/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +1 -0
- package/.opencode/skills/bmad-cis-storytelling/story-types.csv +26 -0
- package/.opencode/skills/bmad-cis-storytelling/template.md +113 -0
- package/.opencode/skills/bmad-cis-storytelling/workflow.md +321 -0
- package/.opencode/skills/bmad-code-review/SKILL.md +6 -0
- package/.opencode/skills/bmad-code-review/steps/step-01-gather-context.md +62 -0
- package/.opencode/skills/bmad-code-review/steps/step-02-review.md +34 -0
- package/.opencode/skills/bmad-code-review/steps/step-03-triage.md +49 -0
- package/.opencode/skills/bmad-code-review/steps/step-04-present.md +129 -0
- package/.opencode/skills/bmad-code-review/workflow.md +55 -0
- package/.opencode/skills/bmad-correct-course/SKILL.md +6 -0
- package/.opencode/skills/bmad-correct-course/checklist.md +288 -0
- package/.opencode/skills/bmad-correct-course/workflow.md +267 -0
- package/.opencode/skills/bmad-create-architecture/SKILL.md +6 -0
- package/.opencode/skills/bmad-create-architecture/architecture-decision-template.md +12 -0
- package/.opencode/skills/bmad-create-architecture/data/domain-complexity.csv +13 -0
- package/.opencode/skills/bmad-create-architecture/data/project-types.csv +7 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-01-init.md +153 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-01b-continue.md +173 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-02-context.md +224 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-03-starter.md +329 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-04-decisions.md +318 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-05-patterns.md +359 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-06-structure.md +379 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-07-validation.md +359 -0
- package/.opencode/skills/bmad-create-architecture/steps/step-08-complete.md +76 -0
- package/.opencode/skills/bmad-create-architecture/workflow.md +38 -0
- package/.opencode/skills/bmad-create-epics-and-stories/SKILL.md +6 -0
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +255 -0
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md +212 -0
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
- package/.opencode/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md +131 -0
- package/.opencode/skills/bmad-create-epics-and-stories/templates/epics-template.md +61 -0
- package/.opencode/skills/bmad-create-epics-and-stories/workflow.md +53 -0
- package/.opencode/skills/bmad-create-prd/SKILL.md +6 -0
- package/.opencode/skills/bmad-create-prd/data/domain-complexity.csv +15 -0
- package/.opencode/skills/bmad-create-prd/data/prd-purpose.md +197 -0
- package/.opencode/skills/bmad-create-prd/data/project-types.csv +11 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-01-init.md +178 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-01b-continue.md +161 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-02-discovery.md +208 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-02b-vision.md +142 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md +158 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-03-success.md +214 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-04-journeys.md +201 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-05-domain.md +194 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-06-innovation.md +211 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-07-project-type.md +222 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-08-scoping.md +216 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-09-functional.md +219 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md +230 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-11-polish.md +221 -0
- package/.opencode/skills/bmad-create-prd/steps-c/step-12-complete.md +115 -0
- package/.opencode/skills/bmad-create-prd/templates/prd-template.md +10 -0
- package/.opencode/skills/bmad-create-prd/workflow.md +62 -0
- package/.opencode/skills/bmad-create-story/SKILL.md +6 -0
- package/.opencode/skills/bmad-create-story/checklist.md +357 -0
- package/.opencode/skills/bmad-create-story/discover-inputs.md +88 -0
- package/.opencode/skills/bmad-create-story/template.md +49 -0
- package/.opencode/skills/bmad-create-story/workflow.md +380 -0
- package/.opencode/skills/bmad-create-ux-design/SKILL.md +6 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-01-init.md +135 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-01b-continue.md +127 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-02-discovery.md +190 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-03-core-experience.md +217 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +220 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-05-inspiration.md +235 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-06-design-system.md +253 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +255 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +225 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-09-design-directions.md +225 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +242 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +249 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +238 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +265 -0
- package/.opencode/skills/bmad-create-ux-design/steps/step-14-complete.md +171 -0
- package/.opencode/skills/bmad-create-ux-design/ux-design-template.md +13 -0
- package/.opencode/skills/bmad-create-ux-design/workflow.md +36 -0
- package/.opencode/skills/bmad-dev-story/SKILL.md +6 -0
- package/.opencode/skills/bmad-dev-story/checklist.md +80 -0
- package/.opencode/skills/bmad-dev-story/workflow.md +450 -0
- package/.opencode/skills/bmad-distillator/SKILL.md +178 -0
- package/.opencode/skills/bmad-distillator/agents/distillate-compressor.md +116 -0
- package/.opencode/skills/bmad-distillator/agents/round-trip-reconstructor.md +68 -0
- package/.opencode/skills/bmad-distillator/resources/compression-rules.md +51 -0
- package/.opencode/skills/bmad-distillator/resources/distillate-format-reference.md +227 -0
- package/.opencode/skills/bmad-distillator/resources/splitting-strategy.md +78 -0
- package/.opencode/skills/bmad-distillator/scripts/analyze_sources.py +300 -0
- package/.opencode/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +204 -0
- package/.opencode/skills/bmad-document-project/SKILL.md +6 -0
- package/.opencode/skills/bmad-document-project/checklist.md +245 -0
- package/.opencode/skills/bmad-document-project/documentation-requirements.csv +12 -0
- package/.opencode/skills/bmad-document-project/instructions.md +128 -0
- package/.opencode/skills/bmad-document-project/templates/deep-dive-template.md +345 -0
- package/.opencode/skills/bmad-document-project/templates/index-template.md +169 -0
- package/.opencode/skills/bmad-document-project/templates/project-overview-template.md +103 -0
- package/.opencode/skills/bmad-document-project/templates/project-scan-report-schema.json +160 -0
- package/.opencode/skills/bmad-document-project/templates/source-tree-template.md +135 -0
- package/.opencode/skills/bmad-document-project/workflow.md +27 -0
- package/.opencode/skills/bmad-document-project/workflows/deep-dive-instructions.md +299 -0
- package/.opencode/skills/bmad-document-project/workflows/deep-dive-workflow.md +34 -0
- package/.opencode/skills/bmad-document-project/workflows/full-scan-instructions.md +1107 -0
- package/.opencode/skills/bmad-document-project/workflows/full-scan-workflow.md +34 -0
- package/.opencode/skills/bmad-domain-research/SKILL.md +6 -0
- package/.opencode/skills/bmad-domain-research/domain-steps/step-01-init.md +137 -0
- package/.opencode/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
- package/.opencode/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/.opencode/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/.opencode/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md +234 -0
- package/.opencode/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md +444 -0
- package/.opencode/skills/bmad-domain-research/research.template.md +29 -0
- package/.opencode/skills/bmad-domain-research/workflow.md +49 -0
- package/.opencode/skills/bmad-edit-prd/SKILL.md +6 -0
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +242 -0
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +204 -0
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-02-review.md +245 -0
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +250 -0
- package/.opencode/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +165 -0
- package/.opencode/skills/bmad-edit-prd/workflow.md +63 -0
- package/.opencode/skills/bmad-editorial-review-prose/SKILL.md +86 -0
- package/.opencode/skills/bmad-editorial-review-structure/SKILL.md +179 -0
- package/.opencode/skills/bmad-generate-project-context/SKILL.md +6 -0
- package/.opencode/skills/bmad-generate-project-context/project-context-template.md +21 -0
- package/.opencode/skills/bmad-generate-project-context/steps/step-01-discover.md +186 -0
- package/.opencode/skills/bmad-generate-project-context/steps/step-02-generate.md +321 -0
- package/.opencode/skills/bmad-generate-project-context/steps/step-03-complete.md +278 -0
- package/.opencode/skills/bmad-generate-project-context/workflow.md +43 -0
- package/.opencode/skills/bmad-help/SKILL.md +73 -0
- package/.opencode/skills/bmad-index-docs/SKILL.md +66 -0
- package/.opencode/skills/bmad-init/SKILL.md +100 -0
- package/.opencode/skills/bmad-init/resources/core-module.yaml +25 -0
- package/.opencode/skills/bmad-init/scripts/bmad_init.py +593 -0
- package/.opencode/skills/bmad-init/scripts/tests/test_bmad_init.py +329 -0
- package/.opencode/skills/bmad-ma-agent-cyber/.gitkeep +0 -0
- package/.opencode/skills/bmad-ma-agent-cyber/SKILL.md +49 -0
- package/.opencode/skills/bmad-ma-agent-cyber/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-ma-agent-devops/.gitkeep +0 -0
- package/.opencode/skills/bmad-ma-agent-devops/SKILL.md +49 -0
- package/.opencode/skills/bmad-ma-agent-devops/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-ma-agent-mil498/.gitkeep +0 -0
- package/.opencode/skills/bmad-ma-agent-mil498/SKILL.md +53 -0
- package/.opencode/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-ma-agent-ml/.gitkeep +0 -0
- package/.opencode/skills/bmad-ma-agent-ml/SKILL.md +59 -0
- package/.opencode/skills/bmad-ma-agent-ml/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-ma-agent-sre/.gitkeep +0 -0
- package/.opencode/skills/bmad-ma-agent-sre/SKILL.md +49 -0
- package/.opencode/skills/bmad-ma-agent-sre/bmad-skill-manifest.yaml +11 -0
- package/.opencode/skills/bmad-market-research/SKILL.md +6 -0
- package/.opencode/skills/bmad-market-research/research.template.md +29 -0
- package/.opencode/skills/bmad-market-research/steps/step-01-init.md +184 -0
- package/.opencode/skills/bmad-market-research/steps/step-02-customer-behavior.md +239 -0
- package/.opencode/skills/bmad-market-research/steps/step-03-customer-pain-points.md +251 -0
- package/.opencode/skills/bmad-market-research/steps/step-04-customer-decisions.md +261 -0
- package/.opencode/skills/bmad-market-research/steps/step-05-competitive-analysis.md +173 -0
- package/.opencode/skills/bmad-market-research/steps/step-06-research-completion.md +478 -0
- package/.opencode/skills/bmad-market-research/workflow.md +49 -0
- package/.opencode/skills/bmad-party-mode/SKILL.md +6 -0
- package/.opencode/skills/bmad-party-mode/steps/step-01-agent-loading.md +138 -0
- package/.opencode/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +187 -0
- package/.opencode/skills/bmad-party-mode/steps/step-03-graceful-exit.md +167 -0
- package/.opencode/skills/bmad-party-mode/workflow.md +190 -0
- package/.opencode/skills/bmad-product-brief/SKILL.md +87 -0
- package/.opencode/skills/bmad-product-brief/agents/artifact-analyzer.md +60 -0
- package/.opencode/skills/bmad-product-brief/agents/opportunity-reviewer.md +44 -0
- package/.opencode/skills/bmad-product-brief/agents/skeptic-reviewer.md +44 -0
- package/.opencode/skills/bmad-product-brief/agents/web-researcher.md +49 -0
- package/.opencode/skills/bmad-product-brief/bmad-manifest.json +17 -0
- package/.opencode/skills/bmad-product-brief/prompts/contextual-discovery.md +57 -0
- package/.opencode/skills/bmad-product-brief/prompts/draft-and-review.md +86 -0
- package/.opencode/skills/bmad-product-brief/prompts/finalize.md +75 -0
- package/.opencode/skills/bmad-product-brief/prompts/guided-elicitation.md +70 -0
- package/.opencode/skills/bmad-product-brief/resources/brief-template.md +60 -0
- package/.opencode/skills/bmad-qa-generate-e2e-tests/SKILL.md +6 -0
- package/.opencode/skills/bmad-qa-generate-e2e-tests/checklist.md +33 -0
- package/.opencode/skills/bmad-qa-generate-e2e-tests/workflow.md +136 -0
- package/.opencode/skills/bmad-quick-dev/SKILL.md +6 -0
- package/.opencode/skills/bmad-quick-dev/spec-template.md +88 -0
- package/.opencode/skills/bmad-quick-dev/step-01-clarify-and-route.md +64 -0
- package/.opencode/skills/bmad-quick-dev/step-02-plan.md +35 -0
- package/.opencode/skills/bmad-quick-dev/step-03-implement.md +37 -0
- package/.opencode/skills/bmad-quick-dev/step-04-review.md +49 -0
- package/.opencode/skills/bmad-quick-dev/step-05-present.md +63 -0
- package/.opencode/skills/bmad-quick-dev/step-oneshot.md +49 -0
- package/.opencode/skills/bmad-quick-dev/workflow.md +79 -0
- package/.opencode/skills/bmad-retrospective/SKILL.md +6 -0
- package/.opencode/skills/bmad-retrospective/workflow.md +1479 -0
- package/.opencode/skills/bmad-review-adversarial-general/SKILL.md +37 -0
- package/.opencode/skills/bmad-review-edge-case-hunter/SKILL.md +67 -0
- package/.opencode/skills/bmad-shard-doc/SKILL.md +105 -0
- package/.opencode/skills/bmad-sprint-planning/SKILL.md +6 -0
- package/.opencode/skills/bmad-sprint-planning/checklist.md +33 -0
- package/.opencode/skills/bmad-sprint-planning/sprint-status-template.yaml +56 -0
- package/.opencode/skills/bmad-sprint-planning/workflow.md +263 -0
- package/.opencode/skills/bmad-sprint-status/SKILL.md +6 -0
- package/.opencode/skills/bmad-sprint-status/workflow.md +261 -0
- package/.opencode/skills/bmad-technical-research/SKILL.md +6 -0
- package/.opencode/skills/bmad-technical-research/research.template.md +29 -0
- package/.opencode/skills/bmad-technical-research/technical-steps/step-01-init.md +137 -0
- package/.opencode/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +239 -0
- package/.opencode/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
- package/.opencode/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/.opencode/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +233 -0
- package/.opencode/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +487 -0
- package/.opencode/skills/bmad-technical-research/workflow.md +50 -0
- package/.opencode/skills/bmad-validate-prd/SKILL.md +6 -0
- package/.opencode/skills/bmad-validate-prd/data/domain-complexity.csv +15 -0
- package/.opencode/skills/bmad-validate-prd/data/prd-purpose.md +197 -0
- package/.opencode/skills/bmad-validate-prd/data/project-types.csv +11 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md +221 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md +188 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +206 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md +171 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +211 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +225 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +214 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +202 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +240 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +260 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +206 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +261 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +239 -0
- package/.opencode/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md +229 -0
- package/.opencode/skills/bmad-validate-prd/workflow.md +62 -0
- package/.opencode/skills/cleanup-done/.gitkeep +0 -0
- package/.opencode/skills/cleanup-done/SKILL.md +159 -0
- package/.opencode/skills/cleanup-done/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/create-bug-story/.gitkeep +0 -0
- package/.opencode/skills/create-bug-story/SKILL.md +263 -0
- package/.opencode/skills/create-bug-story/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/cyber-generate-certs/.gitkeep +0 -0
- package/.opencode/skills/cyber-generate-certs/SKILL.md +27 -0
- package/.opencode/skills/cyber-generate-certs/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/cyber-immunity-estimation/.gitkeep +0 -0
- package/.opencode/skills/cyber-immunity-estimation/SKILL.md +29 -0
- package/.opencode/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/cyber-security-audit/.gitkeep +0 -0
- package/.opencode/skills/cyber-security-audit/SKILL.md +27 -0
- package/.opencode/skills/cyber-security-audit/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/cyber-vault-secrets/.gitkeep +0 -0
- package/.opencode/skills/cyber-vault-secrets/SKILL.md +28 -0
- package/.opencode/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/cyber-verify-docker-users/.gitkeep +0 -0
- package/.opencode/skills/cyber-verify-docker-users/SKILL.md +23 -0
- package/.opencode/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/cyber-verify-image-signature/.gitkeep +0 -0
- package/.opencode/skills/cyber-verify-image-signature/SKILL.md +22 -0
- package/.opencode/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/cyber-vulnerability-scan/.gitkeep +0 -0
- package/.opencode/skills/cyber-vulnerability-scan/SKILL.md +28 -0
- package/.opencode/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/devops-configure-infrastructure/.gitkeep +0 -0
- package/.opencode/skills/devops-configure-infrastructure/SKILL.md +27 -0
- package/.opencode/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/devops-disconnected-deployment/.gitkeep +0 -0
- package/.opencode/skills/devops-disconnected-deployment/SKILL.md +27 -0
- package/.opencode/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/devops-docker-compose-setup/.gitkeep +0 -0
- package/.opencode/skills/devops-docker-compose-setup/SKILL.md +26 -0
- package/.opencode/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/devops-manage-helm/.gitkeep +0 -0
- package/.opencode/skills/devops-manage-helm/SKILL.md +28 -0
- package/.opencode/skills/devops-manage-helm/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/devops-sign-docker-image/.gitkeep +0 -0
- package/.opencode/skills/devops-sign-docker-image/SKILL.md +24 -0
- package/.opencode/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/generate-backlog/.gitkeep +0 -0
- package/.opencode/skills/generate-backlog/SKILL.md +183 -0
- package/.opencode/skills/generate-backlog/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/mil498-ocd/.gitkeep +0 -0
- package/.opencode/skills/mil498-ocd/SKILL.md +30 -0
- package/.opencode/skills/mil498-ocd/bmad-skill-manifest.yaml +5 -0
- package/.opencode/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +26 -0
- package/.opencode/skills/mil498-ocd/prompts/02-load-template.md +10 -0
- package/.opencode/skills/mil498-ocd/prompts/03-generate-document.md +90 -0
- package/.opencode/skills/mil498-ocd/prompts/04-validate.md +14 -0
- package/.opencode/skills/mil498-ocd/prompts/05-review.md +15 -0
- package/.opencode/skills/mil498-ocd/prompts/06-save.md +15 -0
- package/.opencode/skills/mil498-ocd/template.md +169 -0
- package/.opencode/skills/mil498-sdd/.gitkeep +0 -0
- package/.opencode/skills/mil498-sdd/SKILL.md +30 -0
- package/.opencode/skills/mil498-sdd/bmad-skill-manifest.yaml +5 -0
- package/.opencode/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +50 -0
- package/.opencode/skills/mil498-sdd/prompts/02-load-template.md +10 -0
- package/.opencode/skills/mil498-sdd/prompts/03-generate-document.md +98 -0
- package/.opencode/skills/mil498-sdd/prompts/04-validate.md +16 -0
- package/.opencode/skills/mil498-sdd/prompts/05-review.md +15 -0
- package/.opencode/skills/mil498-sdd/prompts/06-save.md +19 -0
- package/.opencode/skills/mil498-sdd/template.md +163 -0
- package/.opencode/skills/mil498-sdp/.gitkeep +0 -0
- package/.opencode/skills/mil498-sdp/SKILL.md +30 -0
- package/.opencode/skills/mil498-sdp/bmad-skill-manifest.yaml +5 -0
- package/.opencode/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +32 -0
- package/.opencode/skills/mil498-sdp/prompts/02-load-template.md +10 -0
- package/.opencode/skills/mil498-sdp/prompts/03-generate-document.md +187 -0
- package/.opencode/skills/mil498-sdp/prompts/04-validate.md +13 -0
- package/.opencode/skills/mil498-sdp/prompts/05-review.md +15 -0
- package/.opencode/skills/mil498-sdp/prompts/06-save.md +14 -0
- package/.opencode/skills/mil498-sdp/template.md +307 -0
- package/.opencode/skills/mil498-srs/.gitkeep +0 -0
- package/.opencode/skills/mil498-srs/SKILL.md +30 -0
- package/.opencode/skills/mil498-srs/bmad-skill-manifest.yaml +5 -0
- package/.opencode/skills/mil498-srs/prompts/01-discover-project-artifacts.md +42 -0
- package/.opencode/skills/mil498-srs/prompts/02-load-template.md +10 -0
- package/.opencode/skills/mil498-srs/prompts/03-generate-document.md +100 -0
- package/.opencode/skills/mil498-srs/prompts/04-validate.md +16 -0
- package/.opencode/skills/mil498-srs/prompts/05-review.md +15 -0
- package/.opencode/skills/mil498-srs/prompts/06-save.md +18 -0
- package/.opencode/skills/mil498-srs/template.md +219 -0
- package/.opencode/skills/mil498-ssdd/.gitkeep +0 -0
- package/.opencode/skills/mil498-ssdd/SKILL.md +32 -0
- package/.opencode/skills/mil498-ssdd/bmad-skill-manifest.yaml +5 -0
- package/.opencode/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +32 -0
- package/.opencode/skills/mil498-ssdd/prompts/02-load-template.md +10 -0
- package/.opencode/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +43 -0
- package/.opencode/skills/mil498-ssdd/prompts/04-generate-document.md +96 -0
- package/.opencode/skills/mil498-ssdd/prompts/05-validate.md +14 -0
- package/.opencode/skills/mil498-ssdd/prompts/06-review.md +16 -0
- package/.opencode/skills/mil498-ssdd/prompts/07-save.md +16 -0
- package/.opencode/skills/mil498-ssdd/template.md +154 -0
- package/.opencode/skills/mil498-sss/.gitkeep +0 -0
- package/.opencode/skills/mil498-sss/SKILL.md +31 -0
- package/.opencode/skills/mil498-sss/bmad-skill-manifest.yaml +5 -0
- package/.opencode/skills/mil498-sss/prompts/01-discover-project-artifacts.md +31 -0
- package/.opencode/skills/mil498-sss/prompts/02-load-template.md +10 -0
- package/.opencode/skills/mil498-sss/prompts/03-generate-document.md +108 -0
- package/.opencode/skills/mil498-sss/prompts/04-validate.md +16 -0
- package/.opencode/skills/mil498-sss/prompts/05-review.md +15 -0
- package/.opencode/skills/mil498-sss/prompts/06-save.md +15 -0
- package/.opencode/skills/mil498-sss/template.md +225 -0
- package/.opencode/skills/mil498-std/.gitkeep +0 -0
- package/.opencode/skills/mil498-std/SKILL.md +30 -0
- package/.opencode/skills/mil498-std/bmad-skill-manifest.yaml +5 -0
- package/.opencode/skills/mil498-std/prompts/01-discover-project-artifacts.md +42 -0
- package/.opencode/skills/mil498-std/prompts/02-load-template.md +10 -0
- package/.opencode/skills/mil498-std/prompts/03-generate-document.md +117 -0
- package/.opencode/skills/mil498-std/prompts/04-validate.md +15 -0
- package/.opencode/skills/mil498-std/prompts/05-review.md +15 -0
- package/.opencode/skills/mil498-std/prompts/06-save.md +15 -0
- package/.opencode/skills/mil498-std/template.md +188 -0
- package/.opencode/skills/ml-advise/.gitkeep +0 -0
- package/.opencode/skills/ml-advise/SKILL.md +76 -0
- package/.opencode/skills/ml-advise/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-advise/skill.json +7 -0
- package/.opencode/skills/ml-analysis/.gitkeep +0 -0
- package/.opencode/skills/ml-analysis/SKILL.md +60 -0
- package/.opencode/skills/ml-analysis/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-analysis/skill.json +7 -0
- package/.opencode/skills/ml-architecture/.gitkeep +0 -0
- package/.opencode/skills/ml-architecture/SKILL.md +55 -0
- package/.opencode/skills/ml-architecture/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-architecture/skill.json +7 -0
- package/.opencode/skills/ml-detailed-design/.gitkeep +0 -0
- package/.opencode/skills/ml-detailed-design/SKILL.md +67 -0
- package/.opencode/skills/ml-detailed-design/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-detailed-design/skill.json +7 -0
- package/.opencode/skills/ml-eda/.gitkeep +0 -0
- package/.opencode/skills/ml-eda/SKILL.md +56 -0
- package/.opencode/skills/ml-eda/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-eda/scripts/baseline_classifier.py +522 -0
- package/.opencode/skills/ml-eda/scripts/class_weights_calculator.py +295 -0
- package/.opencode/skills/ml-eda/scripts/clustering_explorer.py +383 -0
- package/.opencode/skills/ml-eda/scripts/eda_analyzer.py +654 -0
- package/.opencode/skills/ml-eda/skill.json +7 -0
- package/.opencode/skills/ml-experiment/.gitkeep +0 -0
- package/.opencode/skills/ml-experiment/SKILL.md +74 -0
- package/.opencode/skills/ml-experiment/assets/advanced_trainer_configs.py +430 -0
- package/.opencode/skills/ml-experiment/assets/quick_trainer_setup.py +233 -0
- package/.opencode/skills/ml-experiment/assets/template_datamodule.py +219 -0
- package/.opencode/skills/ml-experiment/assets/template_gnn_module.py +341 -0
- package/.opencode/skills/ml-experiment/assets/template_lightning_module.py +158 -0
- package/.opencode/skills/ml-experiment/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-experiment/skill.json +7 -0
- package/.opencode/skills/ml-hparam/.gitkeep +0 -0
- package/.opencode/skills/ml-hparam/SKILL.md +81 -0
- package/.opencode/skills/ml-hparam/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-hparam/skill.json +7 -0
- package/.opencode/skills/ml-ideation/.gitkeep +0 -0
- package/.opencode/skills/ml-ideation/SKILL.md +50 -0
- package/.opencode/skills/ml-ideation/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-ideation/scripts/validate_ml_prd.py +287 -0
- package/.opencode/skills/ml-ideation/skill.json +7 -0
- package/.opencode/skills/ml-infra/.gitkeep +0 -0
- package/.opencode/skills/ml-infra/SKILL.md +58 -0
- package/.opencode/skills/ml-infra/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-infra/skill.json +7 -0
- package/.opencode/skills/ml-retrospective/.gitkeep +0 -0
- package/.opencode/skills/ml-retrospective/SKILL.md +63 -0
- package/.opencode/skills/ml-retrospective/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-retrospective/skill.json +7 -0
- package/.opencode/skills/ml-revision/.gitkeep +0 -0
- package/.opencode/skills/ml-revision/SKILL.md +82 -0
- package/.opencode/skills/ml-revision/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-revision/skill.json +7 -0
- package/.opencode/skills/ml-techspec/.gitkeep +0 -0
- package/.opencode/skills/ml-techspec/SKILL.md +80 -0
- package/.opencode/skills/ml-techspec/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/ml-techspec/skill.json +7 -0
- package/.opencode/skills/modify-sprint/.gitkeep +0 -0
- package/.opencode/skills/modify-sprint/SKILL.md +322 -0
- package/.opencode/skills/modify-sprint/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/prioritize-backlog/.gitkeep +0 -0
- package/.opencode/skills/prioritize-backlog/SKILL.md +195 -0
- package/.opencode/skills/prioritize-backlog/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/project-context-expansion/.gitkeep +0 -0
- package/.opencode/skills/project-context-expansion/SKILL.md +238 -0
- package/.opencode/skills/project-context-expansion/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/remove-from-sprint/.gitkeep +0 -0
- package/.opencode/skills/remove-from-sprint/SKILL.md +163 -0
- package/.opencode/skills/remove-from-sprint/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sprint-status-view/.gitkeep +0 -0
- package/.opencode/skills/sprint-status-view/SKILL.md +263 -0
- package/.opencode/skills/sprint-status-view/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sre-check-deployment-status/.gitkeep +0 -0
- package/.opencode/skills/sre-check-deployment-status/SKILL.md +32 -0
- package/.opencode/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sre-check-secrets/.gitkeep +0 -0
- package/.opencode/skills/sre-check-secrets/SKILL.md +23 -0
- package/.opencode/skills/sre-check-secrets/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sre-check-system-status/.gitkeep +0 -0
- package/.opencode/skills/sre-check-system-status/SKILL.md +27 -0
- package/.opencode/skills/sre-check-system-status/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sre-day-2-ops/.gitkeep +0 -0
- package/.opencode/skills/sre-day-2-ops/SKILL.md +26 -0
- package/.opencode/skills/sre-day-2-ops/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sre-deployment-strategies/.gitkeep +0 -0
- package/.opencode/skills/sre-deployment-strategies/SKILL.md +28 -0
- package/.opencode/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sre-fix-deployments/.gitkeep +0 -0
- package/.opencode/skills/sre-fix-deployments/SKILL.md +25 -0
- package/.opencode/skills/sre-fix-deployments/bmad-skill-manifest.yaml +3 -0
- package/.opencode/skills/sre-gitops-status/.gitkeep +0 -0
- package/.opencode/skills/sre-gitops-status/SKILL.md +25 -0
- package/.opencode/skills/sre-gitops-status/bmad-skill-manifest.yaml +3 -0
- package/.roo/skills/.ma-agents.json +48 -167
- package/.roo/skills/MANIFEST.yaml +0 -128
- package/bin/cli.js +20 -6
- package/lib/agents.js +5 -50
- package/lib/installer.js +13 -5
- package/package.json +1 -1
- package/.opencode/skills/ai-audit-trail/SKILL.md +0 -23
- package/.opencode/skills/auto-bug-detection/SKILL.md +0 -169
- 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-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/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/.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
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-review-adversarial-general
|
|
3
|
+
description: 'Perform a Cynical Review and produce a findings report. Use when the user requests a critical review of something'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Adversarial Review (General)
|
|
7
|
+
|
|
8
|
+
**Goal:** Cynically review content and produce findings.
|
|
9
|
+
|
|
10
|
+
**Your Role:** You are a cynical, jaded reviewer with zero patience for sloppy work. The content was submitted by a clueless weasel and you expect to find problems. Be skeptical of everything. Look for what's missing, not just what's wrong. Use a precise, professional tone — no profanity or personal attacks.
|
|
11
|
+
|
|
12
|
+
**Inputs:**
|
|
13
|
+
- **content** — Content to review: diff, spec, story, doc, or any artifact
|
|
14
|
+
- **also_consider** (optional) — Areas to keep in mind during review alongside normal adversarial analysis
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## EXECUTION
|
|
18
|
+
|
|
19
|
+
### Step 1: Receive Content
|
|
20
|
+
|
|
21
|
+
- Load the content to review from provided input or context
|
|
22
|
+
- If content to review is empty, ask for clarification and abort
|
|
23
|
+
- Identify content type (diff, branch, uncommitted changes, document, etc.)
|
|
24
|
+
|
|
25
|
+
### Step 2: Adversarial Analysis
|
|
26
|
+
|
|
27
|
+
Review with extreme skepticism — assume problems exist. Find at least ten issues to fix or improve in the provided content.
|
|
28
|
+
|
|
29
|
+
### Step 3: Present Findings
|
|
30
|
+
|
|
31
|
+
Output findings as a Markdown list (descriptions only).
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
## HALT CONDITIONS
|
|
35
|
+
|
|
36
|
+
- HALT if zero findings — this is suspicious, re-analyze or ask for guidance
|
|
37
|
+
- HALT if content is empty or unreadable
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-review-edge-case-hunter
|
|
3
|
+
description: 'Walk every branching path and boundary condition in content, report only unhandled edge cases. Orthogonal to adversarial review - method-driven not attitude-driven. Use when you need exhaustive edge-case analysis of code, specs, or diffs.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Edge Case Hunter Review
|
|
7
|
+
|
|
8
|
+
**Goal:** You are a pure path tracer. Never comment on whether code is good or bad; only list missing handling.
|
|
9
|
+
When a diff is provided, scan only the diff hunks and list boundaries that are directly reachable from the changed lines and lack an explicit guard in the diff.
|
|
10
|
+
When no diff is provided (full file or function), treat the entire provided content as the scope.
|
|
11
|
+
Ignore the rest of the codebase unless the provided content explicitly references external functions.
|
|
12
|
+
|
|
13
|
+
**Inputs:**
|
|
14
|
+
- **content** — Content to review: diff, full file, or function
|
|
15
|
+
- **also_consider** (optional) — Areas to keep in mind during review alongside normal edge-case analysis
|
|
16
|
+
|
|
17
|
+
**MANDATORY: Execute steps in the Execution section IN EXACT ORDER. DO NOT skip steps or change the sequence. When a halt condition triggers, follow its specific instruction exactly. Each action within a step is a REQUIRED action to complete that step.**
|
|
18
|
+
|
|
19
|
+
**Your method is exhaustive path enumeration — mechanically walk every branch, not hunt by intuition. Report ONLY paths and conditions that lack handling — discard handled ones silently. Do NOT editorialize or add filler — findings only.**
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## EXECUTION
|
|
23
|
+
|
|
24
|
+
### Step 1: Receive Content
|
|
25
|
+
|
|
26
|
+
- Load the content to review strictly from provided input
|
|
27
|
+
- If content is empty, or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
|
|
28
|
+
- Identify content type (diff, full file, or function) to determine scope rules
|
|
29
|
+
|
|
30
|
+
### Step 2: Exhaustive Path Analysis
|
|
31
|
+
|
|
32
|
+
**Walk every branching path and boundary condition within scope — report only unhandled ones.**
|
|
33
|
+
|
|
34
|
+
- If `also_consider` input was provided, incorporate those areas into the analysis
|
|
35
|
+
- Walk all branching paths: control flow (conditionals, loops, error handlers, early returns) and domain boundaries (where values, states, or conditions transition). Derive the relevant edge classes from the content itself — don't rely on a fixed checklist. Examples: missing else/default, unguarded inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
|
|
36
|
+
- For each path: determine whether the content handles it
|
|
37
|
+
- Collect only the unhandled paths as findings — discard handled ones silently
|
|
38
|
+
|
|
39
|
+
### Step 3: Validate Completeness
|
|
40
|
+
|
|
41
|
+
- Revisit every edge class from Step 2 — e.g., missing else/default, null/empty inputs, off-by-one loops, arithmetic overflow, implicit type coercion, race conditions, timeout gaps
|
|
42
|
+
- Add any newly found unhandled paths to findings; discard confirmed-handled ones
|
|
43
|
+
|
|
44
|
+
### Step 4: Present Findings
|
|
45
|
+
|
|
46
|
+
Output findings as a JSON array following the Output Format specification exactly.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## OUTPUT FORMAT
|
|
50
|
+
|
|
51
|
+
Return ONLY a valid JSON array of objects. Each object must contain exactly these four fields and nothing else:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
[{
|
|
55
|
+
"location": "file:start-end (or file:line when single line, or file:hunk when exact line unavailable)",
|
|
56
|
+
"trigger_condition": "one-line description (max 15 words)",
|
|
57
|
+
"guard_snippet": "minimal code sketch that closes the gap (single-line escaped string, no raw newlines or unescaped quotes)",
|
|
58
|
+
"potential_consequence": "what could actually go wrong (max 15 words)"
|
|
59
|
+
}]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
No extra text, no explanations, no markdown wrapping. An empty array `[]` is valid when no unhandled paths are found.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
## HALT CONDITIONS
|
|
66
|
+
|
|
67
|
+
- If content is empty or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-shard-doc
|
|
3
|
+
description: 'Splits large markdown documents into smaller, organized files based on level 2 (default) sections. Use if the user says perform shard document'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Shard Document
|
|
7
|
+
|
|
8
|
+
**Goal:** Split large markdown documents into smaller, organized files based on level 2 sections using `npx @kayvan/markdown-tree-parser`.
|
|
9
|
+
|
|
10
|
+
## CRITICAL RULES
|
|
11
|
+
|
|
12
|
+
- MANDATORY: Execute ALL steps in the EXECUTION section IN EXACT ORDER
|
|
13
|
+
- DO NOT skip steps or change the sequence
|
|
14
|
+
- HALT immediately when halt-conditions are met
|
|
15
|
+
- Each action within a step is a REQUIRED action to complete that step
|
|
16
|
+
|
|
17
|
+
## EXECUTION
|
|
18
|
+
|
|
19
|
+
### Step 1: Get Source Document
|
|
20
|
+
|
|
21
|
+
- Ask user for the source document path if not provided already
|
|
22
|
+
- Verify file exists and is accessible
|
|
23
|
+
- Verify file is markdown format (.md extension)
|
|
24
|
+
- If file not found or not markdown: HALT with error message
|
|
25
|
+
|
|
26
|
+
### Step 2: Get Destination Folder
|
|
27
|
+
|
|
28
|
+
- Determine default destination: same location as source file, folder named after source file without .md extension
|
|
29
|
+
- Example: `/path/to/architecture.md` --> `/path/to/architecture/`
|
|
30
|
+
- Ask user for the destination folder path (`[y]` to confirm use of default: `[suggested-path]`, else enter a new path)
|
|
31
|
+
- If user accepts default: use the suggested destination path
|
|
32
|
+
- If user provides custom path: use the custom destination path
|
|
33
|
+
- Verify destination folder exists or can be created
|
|
34
|
+
- Check write permissions for destination
|
|
35
|
+
- If permission denied: HALT with error message
|
|
36
|
+
|
|
37
|
+
### Step 3: Execute Sharding
|
|
38
|
+
|
|
39
|
+
- Inform user that sharding is beginning
|
|
40
|
+
- Execute command: `npx @kayvan/markdown-tree-parser explode [source-document] [destination-folder]`
|
|
41
|
+
- Capture command output and any errors
|
|
42
|
+
- If command fails: HALT and display error to user
|
|
43
|
+
|
|
44
|
+
### Step 4: Verify Output
|
|
45
|
+
|
|
46
|
+
- Check that destination folder contains sharded files
|
|
47
|
+
- Verify index.md was created in destination folder
|
|
48
|
+
- Count the number of files created
|
|
49
|
+
- If no files created: HALT with error message
|
|
50
|
+
|
|
51
|
+
### Step 5: Report Completion
|
|
52
|
+
|
|
53
|
+
- Display completion report to user including:
|
|
54
|
+
- Source document path and name
|
|
55
|
+
- Destination folder path
|
|
56
|
+
- Number of section files created
|
|
57
|
+
- Confirmation that index.md was created
|
|
58
|
+
- Any tool output or warnings
|
|
59
|
+
- Inform user that sharding completed successfully
|
|
60
|
+
|
|
61
|
+
### Step 6: Handle Original Document
|
|
62
|
+
|
|
63
|
+
> **Critical:** Keeping both the original and sharded versions defeats the purpose of sharding and can cause confusion.
|
|
64
|
+
|
|
65
|
+
Present user with options for the original document:
|
|
66
|
+
|
|
67
|
+
> What would you like to do with the original document `[source-document-name]`?
|
|
68
|
+
>
|
|
69
|
+
> Options:
|
|
70
|
+
> - `[d]` Delete - Remove the original (recommended - shards can always be recombined)
|
|
71
|
+
> - `[m]` Move to archive - Move original to a backup/archive location
|
|
72
|
+
> - `[k]` Keep - Leave original in place (NOT recommended - defeats sharding purpose)
|
|
73
|
+
>
|
|
74
|
+
> Your choice (d/m/k):
|
|
75
|
+
|
|
76
|
+
#### If user selects `d` (delete)
|
|
77
|
+
|
|
78
|
+
- Delete the original source document file
|
|
79
|
+
- Confirm deletion to user: "Original document deleted: [source-document-path]"
|
|
80
|
+
- Note: The document can be reconstructed from shards by concatenating all section files in order
|
|
81
|
+
|
|
82
|
+
#### If user selects `m` (move)
|
|
83
|
+
|
|
84
|
+
- Determine default archive location: same directory as source, in an `archive` subfolder
|
|
85
|
+
- Example: `/path/to/architecture.md` --> `/path/to/archive/architecture.md`
|
|
86
|
+
- Ask: Archive location (`[y]` to use default: `[default-archive-path]`, or provide custom path)
|
|
87
|
+
- If user accepts default: use default archive path
|
|
88
|
+
- If user provides custom path: use custom archive path
|
|
89
|
+
- Create archive directory if it does not exist
|
|
90
|
+
- Move original document to archive location
|
|
91
|
+
- Confirm move to user: "Original document moved to: [archive-path]"
|
|
92
|
+
|
|
93
|
+
#### If user selects `k` (keep)
|
|
94
|
+
|
|
95
|
+
- Display warning to user:
|
|
96
|
+
- Keeping both original and sharded versions is NOT recommended
|
|
97
|
+
- The discover_inputs protocol may load the wrong version
|
|
98
|
+
- Updates to one will not reflect in the other
|
|
99
|
+
- Duplicate content taking up space
|
|
100
|
+
- Consider deleting or archiving the original document
|
|
101
|
+
- Confirm user choice: "Original document kept at: [source-document-path]"
|
|
102
|
+
|
|
103
|
+
## HALT CONDITIONS
|
|
104
|
+
|
|
105
|
+
- HALT if npx command fails or produces no output files
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Sprint Planning Validation Checklist
|
|
2
|
+
|
|
3
|
+
## Core Validation
|
|
4
|
+
|
|
5
|
+
### Complete Coverage Check
|
|
6
|
+
|
|
7
|
+
- [ ] Every epic found in epic\*.md files appears in sprint-status.yaml
|
|
8
|
+
- [ ] Every story found in epic\*.md files appears in sprint-status.yaml
|
|
9
|
+
- [ ] Every epic has a corresponding retrospective entry
|
|
10
|
+
- [ ] No items in sprint-status.yaml that don't exist in epic files
|
|
11
|
+
|
|
12
|
+
### Parsing Verification
|
|
13
|
+
|
|
14
|
+
Compare epic files against generated sprint-status.yaml:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Epic Files Contains: Sprint Status Contains:
|
|
18
|
+
✓ Epic 1 ✓ epic-1: [status]
|
|
19
|
+
✓ Story 1.1: User Auth ✓ 1-1-user-auth: [status]
|
|
20
|
+
✓ Story 1.2: Account Mgmt ✓ 1-2-account-mgmt: [status]
|
|
21
|
+
✓ Story 1.3: Plant Naming ✓ 1-3-plant-naming: [status]
|
|
22
|
+
✓ epic-1-retrospective: [status]
|
|
23
|
+
✓ Epic 2 ✓ epic-2: [status]
|
|
24
|
+
✓ Story 2.1: Personality Model ✓ 2-1-personality-model: [status]
|
|
25
|
+
✓ Story 2.2: Chat Interface ✓ 2-2-chat-interface: [status]
|
|
26
|
+
✓ epic-2-retrospective: [status]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Final Check
|
|
30
|
+
|
|
31
|
+
- [ ] Total count of epics matches
|
|
32
|
+
- [ ] Total count of stories matches
|
|
33
|
+
- [ ] All items are in the expected order (epic, stories, retrospective)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Sprint Status Template
|
|
2
|
+
# This is an EXAMPLE showing the expected format
|
|
3
|
+
# The actual file will be generated with all epics/stories from your epic files
|
|
4
|
+
|
|
5
|
+
# generated: {date}
|
|
6
|
+
# project: {project_name}
|
|
7
|
+
# project_key: {project_key}
|
|
8
|
+
# tracking_system: {tracking_system}
|
|
9
|
+
# story_location: {story_location}
|
|
10
|
+
|
|
11
|
+
# STATUS DEFINITIONS:
|
|
12
|
+
# ==================
|
|
13
|
+
# Epic Status:
|
|
14
|
+
# - backlog: Epic not yet started
|
|
15
|
+
# - in-progress: Epic actively being worked on
|
|
16
|
+
# - done: All stories in epic completed
|
|
17
|
+
#
|
|
18
|
+
# Story Status:
|
|
19
|
+
# - backlog: Story only exists in epic file
|
|
20
|
+
# - ready-for-dev: Story file created, ready for development
|
|
21
|
+
# - in-progress: Developer actively working on implementation
|
|
22
|
+
# - review: Implementation complete, ready for review
|
|
23
|
+
# - done: Story completed
|
|
24
|
+
#
|
|
25
|
+
# Retrospective Status:
|
|
26
|
+
# - optional: Can be completed but not required
|
|
27
|
+
# - done: Retrospective has been completed
|
|
28
|
+
#
|
|
29
|
+
# WORKFLOW NOTES:
|
|
30
|
+
# ===============
|
|
31
|
+
# - Mark epic as 'in-progress' when starting work on its first story
|
|
32
|
+
# - SM typically creates next story ONLY after previous one is 'done' to incorporate learnings
|
|
33
|
+
# - Dev moves story to 'review', then Dev runs code-review (fresh context, ideally different LLM)
|
|
34
|
+
|
|
35
|
+
# EXAMPLE STRUCTURE (your actual epics/stories will replace these):
|
|
36
|
+
|
|
37
|
+
generated: 05-06-2-2025 21:30
|
|
38
|
+
last_updated: 05-06-2-2025 21:30
|
|
39
|
+
project: My Awesome Project
|
|
40
|
+
project_key: NOKEY
|
|
41
|
+
tracking_system: file-system
|
|
42
|
+
story_location: "{story_location}"
|
|
43
|
+
|
|
44
|
+
development_status:
|
|
45
|
+
epic-1: backlog
|
|
46
|
+
1-1-user-authentication: done
|
|
47
|
+
1-2-account-management: ready-for-dev
|
|
48
|
+
1-3-plant-data-model: backlog
|
|
49
|
+
1-4-add-plant-manual: backlog
|
|
50
|
+
epic-1-retrospective: optional
|
|
51
|
+
|
|
52
|
+
epic-2: backlog
|
|
53
|
+
2-1-personality-system: backlog
|
|
54
|
+
2-2-chat-interface: backlog
|
|
55
|
+
2-3-llm-integration: backlog
|
|
56
|
+
epic-2-retrospective: optional
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
# Sprint Planning Workflow
|
|
2
|
+
|
|
3
|
+
**Goal:** Generate sprint status tracking from epics, detecting current story statuses and building a complete sprint-status.yaml file.
|
|
4
|
+
|
|
5
|
+
**Your Role:** You are a Scrum Master generating and maintaining sprint tracking. Parse epic files, detect story statuses, and produce a structured sprint-status.yaml.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## INITIALIZATION
|
|
10
|
+
|
|
11
|
+
### Configuration Loading
|
|
12
|
+
|
|
13
|
+
Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
14
|
+
|
|
15
|
+
- `project_name`, `user_name`
|
|
16
|
+
- `communication_language`, `document_output_language`
|
|
17
|
+
- `implementation_artifacts`
|
|
18
|
+
- `planning_artifacts`
|
|
19
|
+
- `date` as system-generated current datetime
|
|
20
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
21
|
+
|
|
22
|
+
### Paths
|
|
23
|
+
|
|
24
|
+
- `tracking_system` = `file-system`
|
|
25
|
+
- `project_key` = `NOKEY`
|
|
26
|
+
- `story_location` = `{implementation_artifacts}`
|
|
27
|
+
- `story_location_absolute` = `{implementation_artifacts}`
|
|
28
|
+
- `epics_location` = `{planning_artifacts}`
|
|
29
|
+
- `epics_pattern` = `*epic*.md`
|
|
30
|
+
- `status_file` = `{implementation_artifacts}/sprint-status.yaml`
|
|
31
|
+
|
|
32
|
+
### Input Files
|
|
33
|
+
|
|
34
|
+
| Input | Path | Load Strategy |
|
|
35
|
+
|-------|------|---------------|
|
|
36
|
+
| Epics | `{planning_artifacts}/*epic*.md` (whole) or `{planning_artifacts}/*epic*/*.md` (sharded) | FULL_LOAD |
|
|
37
|
+
|
|
38
|
+
### Context
|
|
39
|
+
|
|
40
|
+
- `project_context` = `**/project-context.md` (load if exists)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## EXECUTION
|
|
45
|
+
|
|
46
|
+
### Document Discovery - Full Epic Loading
|
|
47
|
+
|
|
48
|
+
**Strategy**: Sprint planning needs ALL epics and stories to build complete status tracking.
|
|
49
|
+
|
|
50
|
+
**Epic Discovery Process:**
|
|
51
|
+
|
|
52
|
+
1. **Search for whole document first** - Look for `epics.md`, `bmm-epics.md`, or any `*epic*.md` file
|
|
53
|
+
2. **Check for sharded version** - If whole document not found, look for `epics/index.md`
|
|
54
|
+
3. **If sharded version found**:
|
|
55
|
+
- Read `index.md` to understand the document structure
|
|
56
|
+
- Read ALL epic section files listed in the index (e.g., `epic-1.md`, `epic-2.md`, etc.)
|
|
57
|
+
- Process all epics and their stories from the combined content
|
|
58
|
+
- This ensures complete sprint status coverage
|
|
59
|
+
4. **Priority**: If both whole and sharded versions exist, use the whole document
|
|
60
|
+
|
|
61
|
+
**Fuzzy matching**: Be flexible with document names - users may use variations like `epics.md`, `bmm-epics.md`, `user-stories.md`, etc.
|
|
62
|
+
|
|
63
|
+
<workflow>
|
|
64
|
+
|
|
65
|
+
<step n="1" goal="Parse epic files and extract all work items">
|
|
66
|
+
<action>Load {project_context} for project-wide patterns and conventions (if exists)</action>
|
|
67
|
+
<action>Communicate in {communication_language} with {user_name}</action>
|
|
68
|
+
<action>Look for all files matching `{epics_pattern}` in {epics_location}</action>
|
|
69
|
+
<action>Could be a single `epics.md` file or multiple `epic-1.md`, `epic-2.md` files</action>
|
|
70
|
+
|
|
71
|
+
<action>For each epic file found, extract:</action>
|
|
72
|
+
|
|
73
|
+
- Epic numbers from headers like `## Epic 1:` or `## Epic 2:`
|
|
74
|
+
- Story IDs and titles from patterns like `### Story 1.1: User Authentication`
|
|
75
|
+
- Convert story format from `Epic.Story: Title` to kebab-case key: `epic-story-title`
|
|
76
|
+
|
|
77
|
+
**Story ID Conversion Rules:**
|
|
78
|
+
|
|
79
|
+
- Original: `### Story 1.1: User Authentication`
|
|
80
|
+
- Replace period with dash: `1-1`
|
|
81
|
+
- Convert title to kebab-case: `user-authentication`
|
|
82
|
+
- Final key: `1-1-user-authentication`
|
|
83
|
+
|
|
84
|
+
<action>Build complete inventory of all epics and stories from all epic files</action>
|
|
85
|
+
</step>
|
|
86
|
+
|
|
87
|
+
<step n="2" goal="Build sprint status structure">
|
|
88
|
+
<action>For each epic found, create entries in this order:</action>
|
|
89
|
+
|
|
90
|
+
1. **Epic entry** - Key: `epic-{num}`, Default status: `backlog`
|
|
91
|
+
2. **Story entries** - Key: `{epic}-{story}-{title}`, Default status: `backlog`
|
|
92
|
+
3. **Retrospective entry** - Key: `epic-{num}-retrospective`, Default status: `optional`
|
|
93
|
+
|
|
94
|
+
**Example structure:**
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
development_status:
|
|
98
|
+
epic-1: backlog
|
|
99
|
+
1-1-user-authentication: backlog
|
|
100
|
+
1-2-account-management: backlog
|
|
101
|
+
epic-1-retrospective: optional
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
</step>
|
|
105
|
+
|
|
106
|
+
<step n="3" goal="Apply intelligent status detection">
|
|
107
|
+
<action>For each story, detect current status by checking files:</action>
|
|
108
|
+
|
|
109
|
+
**Story file detection:**
|
|
110
|
+
|
|
111
|
+
- Check: `{story_location_absolute}/{story-key}.md` (e.g., `stories/1-1-user-authentication.md`)
|
|
112
|
+
- If exists → upgrade status to at least `ready-for-dev`
|
|
113
|
+
|
|
114
|
+
**Preservation rule:**
|
|
115
|
+
|
|
116
|
+
- If existing `{status_file}` exists and has more advanced status, preserve it
|
|
117
|
+
- Never downgrade status (e.g., don't change `done` to `ready-for-dev`)
|
|
118
|
+
|
|
119
|
+
**Status Flow Reference:**
|
|
120
|
+
|
|
121
|
+
- Epic: `backlog` → `in-progress` → `done`
|
|
122
|
+
- Story: `backlog` → `ready-for-dev` → `in-progress` → `review` → `done`
|
|
123
|
+
- Retrospective: `optional` ↔ `done`
|
|
124
|
+
</step>
|
|
125
|
+
|
|
126
|
+
<step n="4" goal="Generate sprint status file">
|
|
127
|
+
<action>Create or update {status_file} with:</action>
|
|
128
|
+
|
|
129
|
+
**File Structure:**
|
|
130
|
+
|
|
131
|
+
```yaml
|
|
132
|
+
# generated: {date}
|
|
133
|
+
# last_updated: {date}
|
|
134
|
+
# project: {project_name}
|
|
135
|
+
# project_key: {project_key}
|
|
136
|
+
# tracking_system: {tracking_system}
|
|
137
|
+
# story_location: {story_location}
|
|
138
|
+
|
|
139
|
+
# STATUS DEFINITIONS:
|
|
140
|
+
# ==================
|
|
141
|
+
# Epic Status:
|
|
142
|
+
# - backlog: Epic not yet started
|
|
143
|
+
# - in-progress: Epic actively being worked on
|
|
144
|
+
# - done: All stories in epic completed
|
|
145
|
+
#
|
|
146
|
+
# Epic Status Transitions:
|
|
147
|
+
# - backlog → in-progress: Automatically when first story is created (via create-story)
|
|
148
|
+
# - in-progress → done: Manually when all stories reach 'done' status
|
|
149
|
+
#
|
|
150
|
+
# Story Status:
|
|
151
|
+
# - backlog: Story only exists in epic file
|
|
152
|
+
# - ready-for-dev: Story file created in stories folder
|
|
153
|
+
# - in-progress: Developer actively working on implementation
|
|
154
|
+
# - review: Ready for code review (via Dev's code-review workflow)
|
|
155
|
+
# - done: Story completed
|
|
156
|
+
#
|
|
157
|
+
# Retrospective Status:
|
|
158
|
+
# - optional: Can be completed but not required
|
|
159
|
+
# - done: Retrospective has been completed
|
|
160
|
+
#
|
|
161
|
+
# WORKFLOW NOTES:
|
|
162
|
+
# ===============
|
|
163
|
+
# - Epic transitions to 'in-progress' automatically when first story is created
|
|
164
|
+
# - Stories can be worked in parallel if team capacity allows
|
|
165
|
+
# - SM typically creates next story after previous one is 'done' to incorporate learnings
|
|
166
|
+
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
|
|
167
|
+
|
|
168
|
+
generated: { date }
|
|
169
|
+
last_updated: { date }
|
|
170
|
+
project: { project_name }
|
|
171
|
+
project_key: { project_key }
|
|
172
|
+
tracking_system: { tracking_system }
|
|
173
|
+
story_location: { story_location }
|
|
174
|
+
|
|
175
|
+
development_status:
|
|
176
|
+
# All epics, stories, and retrospectives in order
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
<action>Write the complete sprint status YAML to {status_file}</action>
|
|
180
|
+
<action>CRITICAL: Metadata appears TWICE - once as comments (#) for documentation, once as YAML key:value fields for parsing</action>
|
|
181
|
+
<action>Ensure all items are ordered: epic, its stories, its retrospective, next epic...</action>
|
|
182
|
+
</step>
|
|
183
|
+
|
|
184
|
+
<step n="5" goal="Validate and report">
|
|
185
|
+
<action>Perform validation checks:</action>
|
|
186
|
+
|
|
187
|
+
- [ ] Every epic in epic files appears in {status_file}
|
|
188
|
+
- [ ] Every story in epic files appears in {status_file}
|
|
189
|
+
- [ ] Every epic has a corresponding retrospective entry
|
|
190
|
+
- [ ] No items in {status_file} that don't exist in epic files
|
|
191
|
+
- [ ] All status values are legal (match state machine definitions)
|
|
192
|
+
- [ ] File is valid YAML syntax
|
|
193
|
+
|
|
194
|
+
<action>Count totals:</action>
|
|
195
|
+
|
|
196
|
+
- Total epics: {{epic_count}}
|
|
197
|
+
- Total stories: {{story_count}}
|
|
198
|
+
- Epics in-progress: {{in_progress_count}}
|
|
199
|
+
- Stories done: {{done_count}}
|
|
200
|
+
|
|
201
|
+
<action>Display completion summary to {user_name} in {communication_language}:</action>
|
|
202
|
+
|
|
203
|
+
**Sprint Status Generated Successfully**
|
|
204
|
+
|
|
205
|
+
- **File Location:** {status_file}
|
|
206
|
+
- **Total Epics:** {{epic_count}}
|
|
207
|
+
- **Total Stories:** {{story_count}}
|
|
208
|
+
- **Epics In Progress:** {{in_progress_count}}
|
|
209
|
+
- **Stories Completed:** {{done_count}}
|
|
210
|
+
|
|
211
|
+
**Next Steps:**
|
|
212
|
+
|
|
213
|
+
1. Review the generated {status_file}
|
|
214
|
+
2. Use this file to track development progress
|
|
215
|
+
3. Agents will update statuses as they work
|
|
216
|
+
4. Re-run this workflow to refresh auto-detected statuses
|
|
217
|
+
|
|
218
|
+
</step>
|
|
219
|
+
|
|
220
|
+
</workflow>
|
|
221
|
+
|
|
222
|
+
## Additional Documentation
|
|
223
|
+
|
|
224
|
+
### Status State Machine
|
|
225
|
+
|
|
226
|
+
**Epic Status Flow:**
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
backlog → in-progress → done
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
- **backlog**: Epic not yet started
|
|
233
|
+
- **in-progress**: Epic actively being worked on (stories being created/implemented)
|
|
234
|
+
- **done**: All stories in epic completed
|
|
235
|
+
|
|
236
|
+
**Story Status Flow:**
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
backlog → ready-for-dev → in-progress → review → done
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
- **backlog**: Story only exists in epic file
|
|
243
|
+
- **ready-for-dev**: Story file created (e.g., `stories/1-3-plant-naming.md`)
|
|
244
|
+
- **in-progress**: Developer actively working
|
|
245
|
+
- **review**: Ready for code review (via Dev's code-review workflow)
|
|
246
|
+
- **done**: Completed
|
|
247
|
+
|
|
248
|
+
**Retrospective Status:**
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
optional ↔ done
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
- **optional**: Ready to be conducted but not required
|
|
255
|
+
- **done**: Finished
|
|
256
|
+
|
|
257
|
+
### Guidelines
|
|
258
|
+
|
|
259
|
+
1. **Epic Activation**: Mark epic as `in-progress` when starting work on its first story
|
|
260
|
+
2. **Sequential Default**: Stories are typically worked in order, but parallel work is supported
|
|
261
|
+
3. **Parallel Work Supported**: Multiple stories can be `in-progress` if team capacity allows
|
|
262
|
+
4. **Review Before Done**: Stories should pass through `review` before `done`
|
|
263
|
+
5. **Learning Transfer**: SM typically creates next story after previous one is `done` to incorporate learnings
|