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,321 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-cis-storytelling
|
|
3
|
+
description: 'Craft compelling narratives using story frameworks. Use when the user says "help me with storytelling" or "I want to create a narrative through storytelling"'
|
|
4
|
+
standalone: true
|
|
5
|
+
main_config: '{project-root}/_bmad/cis/config.yaml'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Storytelling Workflow
|
|
9
|
+
|
|
10
|
+
**Goal:** Craft compelling narratives through structured story development, emotional arc design, and channel-specific adaptations.
|
|
11
|
+
|
|
12
|
+
**Your Role:** You are a master storyteller and narrative guide. Draw out the user's story through questions, preserve authentic voice, build emotional resonance, and never give time estimates.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## INITIALIZATION
|
|
17
|
+
|
|
18
|
+
### Configuration Loading
|
|
19
|
+
|
|
20
|
+
Load config from `{main_config}` and resolve:
|
|
21
|
+
|
|
22
|
+
- `output_folder`
|
|
23
|
+
- `user_name`
|
|
24
|
+
- `communication_language`
|
|
25
|
+
- `date` as the system-generated current datetime
|
|
26
|
+
|
|
27
|
+
### Paths
|
|
28
|
+
|
|
29
|
+
- `skill_path` = `{project-root}/_bmad/cis/workflows/bmad-cis-storytelling`
|
|
30
|
+
- `template_file` = `./template.md`
|
|
31
|
+
- `story_frameworks_file` = `./story-types.csv`
|
|
32
|
+
- `default_output_file` = `{output_folder}/story-{date}.md`
|
|
33
|
+
|
|
34
|
+
### Inputs
|
|
35
|
+
|
|
36
|
+
- If the caller provides context via the data attribute, load it before Step 1 and use it to ground the storytelling session.
|
|
37
|
+
- If the storyteller agent arrives with sidecar memory already loaded, preserve and use that context throughout the session.
|
|
38
|
+
- Load and understand the full contents of `{story_frameworks_file}` before Step 2.
|
|
39
|
+
- Use `{template_file}` as the structure when writing `{default_output_file}`.
|
|
40
|
+
|
|
41
|
+
### Behavioral Constraints
|
|
42
|
+
|
|
43
|
+
- Communicate all responses in `communication_language`.
|
|
44
|
+
- Do not give time estimates.
|
|
45
|
+
- After every `<template-output>`, immediately save the current artifact to `{default_output_file}`, show a clear checkpoint separator, display the generated content, present options `[a] Advanced Elicitation`, `[c] Continue`, `[p] Party-Mode`, `[y] YOLO`, and wait for the user's response before proceeding.
|
|
46
|
+
|
|
47
|
+
### Facilitation Principles
|
|
48
|
+
|
|
49
|
+
- Guide through questions rather than writing for the user unless they explicitly ask you to draft.
|
|
50
|
+
- Find the conflict, tension, or struggle that makes the story matter.
|
|
51
|
+
- Show rather than tell through vivid, concrete details.
|
|
52
|
+
- Treat change and transformation as central to story structure.
|
|
53
|
+
- Use emotion intentionally because emotion drives memory.
|
|
54
|
+
- Stay anchored in the user's authentic voice and core truth.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## EXECUTION
|
|
59
|
+
|
|
60
|
+
<workflow>
|
|
61
|
+
|
|
62
|
+
<step n="1" goal="Story context setup">
|
|
63
|
+
Check whether context data was provided with the workflow invocation.
|
|
64
|
+
|
|
65
|
+
If context data was passed:
|
|
66
|
+
|
|
67
|
+
- Load the context document from the provided data file path.
|
|
68
|
+
- Study the background information, brand details, or subject matter.
|
|
69
|
+
- Use the provided context to inform story development.
|
|
70
|
+
- Acknowledge the focused storytelling goal.
|
|
71
|
+
- Ask: "I see we're crafting a story based on the context provided. What specific angle or emphasis would you like?"
|
|
72
|
+
|
|
73
|
+
If no context data was provided:
|
|
74
|
+
|
|
75
|
+
- Proceed with context gathering.
|
|
76
|
+
- Ask:
|
|
77
|
+
- What's the purpose of this story? (e.g., marketing, pitch, brand narrative, case study)
|
|
78
|
+
- Who is your target audience?
|
|
79
|
+
- What key messages or takeaways do you want the audience to have?
|
|
80
|
+
- Any constraints? (length, tone, medium, existing brand guidelines)
|
|
81
|
+
- Wait for the user's response before proceeding. This context shapes the narrative approach.
|
|
82
|
+
|
|
83
|
+
<template-output>story_purpose, target_audience, key_messages</template-output>
|
|
84
|
+
</step>
|
|
85
|
+
|
|
86
|
+
<step n="2" goal="Select story framework">
|
|
87
|
+
Load story frameworks from `{story_frameworks_file}`.
|
|
88
|
+
|
|
89
|
+
Parse the framework data with the same storytelling assumptions used by the legacy workflow, including `story_type`, `name`, `description`, `key_elements`, and `best_for`.
|
|
90
|
+
|
|
91
|
+
Based on the context from Step 1, present framework options:
|
|
92
|
+
|
|
93
|
+
I can help craft your story using these proven narrative frameworks:
|
|
94
|
+
|
|
95
|
+
**Transformation Narratives:**
|
|
96
|
+
|
|
97
|
+
1. **Hero's Journey** - Classic transformation arc with adventure and return
|
|
98
|
+
2. **Pixar Story Spine** - Emotional structure building tension to resolution
|
|
99
|
+
3. **Customer Journey Story** - Before/after transformation narrative
|
|
100
|
+
4. **Challenge-Overcome Arc** - Dramatic obstacle-to-victory structure
|
|
101
|
+
|
|
102
|
+
**Strategic Narratives:**
|
|
103
|
+
|
|
104
|
+
5. **Brand Story** - Values, mission, and unique positioning
|
|
105
|
+
6. **Pitch Narrative** - Persuasive problem-to-solution structure
|
|
106
|
+
7. **Vision Narrative** - Future-focused aspirational story
|
|
107
|
+
8. **Origin Story** - Foundational narrative of how it began
|
|
108
|
+
|
|
109
|
+
**Specialized Narratives:**
|
|
110
|
+
|
|
111
|
+
9. **Data Storytelling** - Transform insights into compelling narrative
|
|
112
|
+
10. **Emotional Hooks** - Craft powerful opening and touchpoints
|
|
113
|
+
|
|
114
|
+
Ask which framework best fits the purpose. Accept `1-10` or a request for recommendation.
|
|
115
|
+
|
|
116
|
+
If the user asks for a recommendation:
|
|
117
|
+
|
|
118
|
+
- Analyze `story_purpose`, `target_audience`, and `key_messages`.
|
|
119
|
+
- Recommend the best-fit framework with clear rationale.
|
|
120
|
+
- Use the format:
|
|
121
|
+
- "Based on your {story_purpose} for {target_audience}, I recommend {framework_name} because {rationale}"
|
|
122
|
+
|
|
123
|
+
<template-output>story_type, framework_name</template-output>
|
|
124
|
+
</step>
|
|
125
|
+
|
|
126
|
+
<step n="3" goal="Gather story elements">
|
|
127
|
+
Guide narrative development using the Socratic method. Draw out their story through questions rather than writing it for them unless they explicitly request you to write it.
|
|
128
|
+
|
|
129
|
+
Keep these storytelling principles active:
|
|
130
|
+
|
|
131
|
+
- Every great story has conflict or tension. Find the struggle.
|
|
132
|
+
- Show, don't tell. Use vivid, concrete details.
|
|
133
|
+
- Change is essential. Ask what transforms.
|
|
134
|
+
- Emotion drives memory. Find the feeling.
|
|
135
|
+
- Authenticity resonates. Stay true to the core truth.
|
|
136
|
+
|
|
137
|
+
Based on the selected framework:
|
|
138
|
+
|
|
139
|
+
- Reference `key_elements` from the selected `story_type` in the framework data.
|
|
140
|
+
- Parse pipe-separated `key_elements` into individual components.
|
|
141
|
+
- Guide the user through each element with targeted questions.
|
|
142
|
+
|
|
143
|
+
Framework-specific guidance:
|
|
144
|
+
|
|
145
|
+
For Hero's Journey:
|
|
146
|
+
|
|
147
|
+
- Who or what is the hero of this story?
|
|
148
|
+
- What's their ordinary world before the adventure?
|
|
149
|
+
- What call to adventure disrupts their world?
|
|
150
|
+
- What trials or challenges do they face?
|
|
151
|
+
- How are they transformed by the journey?
|
|
152
|
+
- What wisdom do they bring back?
|
|
153
|
+
|
|
154
|
+
For Pixar Story Spine:
|
|
155
|
+
|
|
156
|
+
- Once upon a time, what was the situation?
|
|
157
|
+
- Every day, what was the routine?
|
|
158
|
+
- Until one day, what changed?
|
|
159
|
+
- Because of that, what happened next?
|
|
160
|
+
- And because of that? (continue chain)
|
|
161
|
+
- Until finally, how was it resolved?
|
|
162
|
+
|
|
163
|
+
For Brand Story:
|
|
164
|
+
|
|
165
|
+
- What was the origin spark for this brand?
|
|
166
|
+
- What core values drive every decision?
|
|
167
|
+
- How does this impact customers or users?
|
|
168
|
+
- What makes this different from alternatives?
|
|
169
|
+
- Where is this heading in the future?
|
|
170
|
+
|
|
171
|
+
For Pitch Narrative:
|
|
172
|
+
|
|
173
|
+
- What's the problem landscape you're addressing?
|
|
174
|
+
- What's your vision for the solution?
|
|
175
|
+
- What proof or traction validates this approach?
|
|
176
|
+
- What action do you want the audience to take?
|
|
177
|
+
|
|
178
|
+
For Data Storytelling:
|
|
179
|
+
|
|
180
|
+
- What context does the audience need?
|
|
181
|
+
- What's the key data revelation or insight?
|
|
182
|
+
- What patterns explain this insight?
|
|
183
|
+
- So what? Why does this matter?
|
|
184
|
+
- What actions should this insight drive?
|
|
185
|
+
|
|
186
|
+
<template-output>story_beats, character_voice, conflict_tension, transformation</template-output>
|
|
187
|
+
</step>
|
|
188
|
+
|
|
189
|
+
<step n="4" goal="Craft emotional arc">
|
|
190
|
+
Develop the emotional journey of the story.
|
|
191
|
+
|
|
192
|
+
Ask:
|
|
193
|
+
|
|
194
|
+
- What emotion should the audience feel at the beginning?
|
|
195
|
+
- What emotional shift happens at the turning point?
|
|
196
|
+
- What emotion should they carry away at the end?
|
|
197
|
+
- Where are the emotional peaks (high tension or joy)?
|
|
198
|
+
- Where are the valleys (low points or struggle)?
|
|
199
|
+
|
|
200
|
+
Help the user identify:
|
|
201
|
+
|
|
202
|
+
- Relatable struggles that create empathy
|
|
203
|
+
- Surprising moments that capture attention
|
|
204
|
+
- Personal stakes that make it matter
|
|
205
|
+
- Satisfying payoffs that create resolution
|
|
206
|
+
|
|
207
|
+
<template-output>emotional_arc, emotional_touchpoints</template-output>
|
|
208
|
+
</step>
|
|
209
|
+
|
|
210
|
+
<step n="5" goal="Develop opening hook">
|
|
211
|
+
The first moment determines whether the audience keeps reading or listening.
|
|
212
|
+
|
|
213
|
+
Ask:
|
|
214
|
+
|
|
215
|
+
- What surprising fact, question, or statement could open this story?
|
|
216
|
+
- What's the most intriguing part of this story to lead with?
|
|
217
|
+
|
|
218
|
+
Guide toward a strong hook that:
|
|
219
|
+
|
|
220
|
+
- Surprises or challenges assumptions
|
|
221
|
+
- Raises an urgent question
|
|
222
|
+
- Creates immediate relatability
|
|
223
|
+
- Promises valuable payoff
|
|
224
|
+
- Uses vivid, concrete details
|
|
225
|
+
|
|
226
|
+
<template-output>opening_hook</template-output>
|
|
227
|
+
</step>
|
|
228
|
+
|
|
229
|
+
<step n="6" goal="Write core narrative">
|
|
230
|
+
Ask whether the user wants to:
|
|
231
|
+
|
|
232
|
+
1. Draft the story themselves with your guidance
|
|
233
|
+
2. Have you write the first draft based on the discussion
|
|
234
|
+
3. Co-create it iteratively together
|
|
235
|
+
|
|
236
|
+
If they choose to draft it themselves:
|
|
237
|
+
|
|
238
|
+
- Provide writing prompts and encouragement.
|
|
239
|
+
- Offer feedback on drafts they share.
|
|
240
|
+
- Suggest refinements for clarity, emotion, and flow.
|
|
241
|
+
|
|
242
|
+
If they want you to write the next draft:
|
|
243
|
+
|
|
244
|
+
- Synthesize all gathered elements.
|
|
245
|
+
- Write the complete narrative in the appropriate tone and style.
|
|
246
|
+
- Structure it according to the chosen framework.
|
|
247
|
+
- Include vivid details and emotional beats.
|
|
248
|
+
- Present the draft for feedback and refinement.
|
|
249
|
+
|
|
250
|
+
If they want collaborative co-creation:
|
|
251
|
+
|
|
252
|
+
- Write the opening paragraph.
|
|
253
|
+
- Get feedback and iterate.
|
|
254
|
+
- Build the story section by section together.
|
|
255
|
+
|
|
256
|
+
<template-output>complete_story, core_narrative</template-output>
|
|
257
|
+
</step>
|
|
258
|
+
|
|
259
|
+
<step n="7" goal="Create story variations">
|
|
260
|
+
Adapt the story for different contexts and lengths.
|
|
261
|
+
|
|
262
|
+
Ask what channels or formats will use this story.
|
|
263
|
+
|
|
264
|
+
Based on the response, create:
|
|
265
|
+
|
|
266
|
+
1. **Short Version** (1-3 sentences) for social media, email subject lines, and quick pitches
|
|
267
|
+
2. **Medium Version** (1-2 paragraphs) for email body, blog intro, and executive summary
|
|
268
|
+
3. **Extended Version** (full narrative) for articles, presentations, case studies, and websites
|
|
269
|
+
|
|
270
|
+
<template-output>short_version, medium_version, extended_version</template-output>
|
|
271
|
+
</step>
|
|
272
|
+
|
|
273
|
+
<step n="8" goal="Usage guidelines">
|
|
274
|
+
Provide strategic guidance for story deployment.
|
|
275
|
+
|
|
276
|
+
Ask where and how the story will be used.
|
|
277
|
+
|
|
278
|
+
Consider:
|
|
279
|
+
|
|
280
|
+
- Best channels for this story type
|
|
281
|
+
- Audience-specific adaptations needed
|
|
282
|
+
- Tone and voice consistency with brand
|
|
283
|
+
- Visual or multimedia enhancements
|
|
284
|
+
- Testing and feedback approach
|
|
285
|
+
|
|
286
|
+
<template-output>best_channels, audience_considerations, tone_notes, adaptation_suggestions</template-output>
|
|
287
|
+
</step>
|
|
288
|
+
|
|
289
|
+
<step n="9" goal="Refinement and next steps">
|
|
290
|
+
Polish the story and plan forward.
|
|
291
|
+
|
|
292
|
+
Ask:
|
|
293
|
+
|
|
294
|
+
- What parts of the story feel strongest?
|
|
295
|
+
- What areas could use more refinement?
|
|
296
|
+
- What's the key resolution or call to action for your story?
|
|
297
|
+
- Do you need additional story versions for other audiences or purposes?
|
|
298
|
+
- How will you test this story with your audience?
|
|
299
|
+
|
|
300
|
+
<template-output>resolution, refinement_opportunities, additional_versions, feedback_plan</template-output>
|
|
301
|
+
</step>
|
|
302
|
+
|
|
303
|
+
<step n="10" goal="Generate final output">
|
|
304
|
+
Compile all story components into the structured template.
|
|
305
|
+
|
|
306
|
+
Before finishing:
|
|
307
|
+
|
|
308
|
+
1. Ensure all story versions are complete and polished.
|
|
309
|
+
2. Format according to the template structure.
|
|
310
|
+
3. Include all strategic guidance and usage notes.
|
|
311
|
+
4. Verify tone and voice consistency.
|
|
312
|
+
5. Fill all template placeholders with actual content.
|
|
313
|
+
|
|
314
|
+
Write the final story document to `{default_output_file}`.
|
|
315
|
+
|
|
316
|
+
Confirm completion with: "Story complete, {user_name}! Your narrative has been saved to {default_output_file}".
|
|
317
|
+
|
|
318
|
+
<template-output>agent_role, agent_name, user_name, date</template-output>
|
|
319
|
+
</step>
|
|
320
|
+
|
|
321
|
+
</workflow>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-code-review
|
|
3
|
+
description: 'Review code changes adversarially using parallel review layers (Blind Hunter, Edge Case Hunter, Acceptance Auditor) with structured triage into actionable categories. Use when the user says "run code review" or "review this code"'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Follow the instructions in ./workflow.md.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
diff_output: '' # set at runtime
|
|
3
|
+
spec_file: '' # set at runtime (path or empty)
|
|
4
|
+
review_mode: '' # set at runtime: "full" or "no-spec"
|
|
5
|
+
story_key: '' # set at runtime when discovered from sprint status
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 1: Gather Context
|
|
9
|
+
|
|
10
|
+
## RULES
|
|
11
|
+
|
|
12
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
13
|
+
- The prompt that triggered this workflow IS the intent — not a hint.
|
|
14
|
+
- Do not modify any files. This step is read-only.
|
|
15
|
+
|
|
16
|
+
## INSTRUCTIONS
|
|
17
|
+
|
|
18
|
+
1. **Detect review intent from invocation text.** Check the triggering prompt for phrases that map to a review mode:
|
|
19
|
+
- "staged" / "staged changes" → Staged changes only
|
|
20
|
+
- "uncommitted" / "working tree" / "all changes" → Uncommitted changes (staged + unstaged)
|
|
21
|
+
- "branch diff" / "vs main" / "against main" / "compared to {branch}" → Branch diff (extract base branch if mentioned)
|
|
22
|
+
- "commit range" / "last N commits" / "{sha}..{sha}" → Specific commit range
|
|
23
|
+
- "this diff" / "provided diff" / "paste" → User-provided diff (do not match bare "diff" — it appears in other modes)
|
|
24
|
+
- When multiple phrases match, prefer the most specific match (e.g., "branch diff" over bare "diff").
|
|
25
|
+
- **If a clear match is found:** Announce the detected mode (e.g., "Detected intent: review staged changes only") and proceed directly to constructing `{diff_output}` using the corresponding sub-case from instruction 3. Skip to instruction 4 (spec question).
|
|
26
|
+
- **If no match from invocation text, check sprint tracking.** Look for a sprint status file (`*sprint-status*`) in `{implementation_artifacts}` or `{planning_artifacts}`. If found, scan for any story with status `review`. Handle as follows:
|
|
27
|
+
- **Exactly one `review` story:** Set `{story_key}` to the story's key (e.g., `1-2-user-auth`). Suggest it: "I found story {{story-id}} in `review` status. Would you like to review its changes? [Y] Yes / [N] No, let me choose". If confirmed, use the story context to determine the diff source (branch name derived from story slug, or uncommitted changes). If declined, clear `{story_key}` and fall through to instruction 2.
|
|
28
|
+
- **Multiple `review` stories:** Present them as numbered options alongside a manual choice option. Wait for user selection. If the user selects a story, set `{story_key}` to the selected story's key and use the selected story's context to determine the diff source as in the single-story case above, and proceed to instruction 3. If the user selects the manual choice, clear `{story_key}` and fall through to instruction 2.
|
|
29
|
+
- **If no match and no sprint tracking:** Fall through to instruction 2.
|
|
30
|
+
|
|
31
|
+
2. HALT. Ask the user: **What do you want to review?** Present these options:
|
|
32
|
+
- **Uncommitted changes** (staged + unstaged)
|
|
33
|
+
- **Staged changes only**
|
|
34
|
+
- **Branch diff** vs a base branch (ask which base branch)
|
|
35
|
+
- **Specific commit range** (ask for the range)
|
|
36
|
+
- **Provided diff or file list** (user pastes or provides a path)
|
|
37
|
+
|
|
38
|
+
3. Construct `{diff_output}` from the chosen source.
|
|
39
|
+
- For **branch diff**: verify the base branch exists before running `git diff`. If it does not exist, HALT and ask the user for a valid branch.
|
|
40
|
+
- For **commit range**: verify the range resolves. If it does not, HALT and ask the user for a valid range.
|
|
41
|
+
- For **provided diff**: validate the content is non-empty and parseable as a unified diff. If it is not parseable, HALT and ask the user to provide a valid diff.
|
|
42
|
+
- For **file list**: validate each path exists in the working tree. Construct `{diff_output}` by running `git diff HEAD -- <path1> <path2> ...`. If any paths are untracked (new files not yet staged), use `git diff --no-index /dev/null <path>` to include them. If the diff is empty (files have no uncommitted changes and are not untracked), ask the user whether to review the full file contents or to specify a different baseline.
|
|
43
|
+
- After constructing `{diff_output}`, verify it is non-empty regardless of source type. If empty, HALT and tell the user there is nothing to review.
|
|
44
|
+
|
|
45
|
+
4. Ask the user: **Is there a spec or story file that provides context for these changes?**
|
|
46
|
+
- If yes: set `{spec_file}` to the path provided, verify the file exists and is readable, then set `{review_mode}` = `"full"`.
|
|
47
|
+
- If no: set `{review_mode}` = `"no-spec"`.
|
|
48
|
+
|
|
49
|
+
5. If `{review_mode}` = `"full"` and the file at `{spec_file}` has a `context` field in its frontmatter listing additional docs, load each referenced document. Warn the user about any docs that cannot be found.
|
|
50
|
+
|
|
51
|
+
6. Sanity check: if `{diff_output}` exceeds approximately 3000 lines, warn the user and offer to chunk the review by file group.
|
|
52
|
+
- If the user opts to chunk: agree on the first group, narrow `{diff_output}` accordingly, and list the remaining groups for the user to note for follow-up runs.
|
|
53
|
+
- If the user declines: proceed as-is with the full diff.
|
|
54
|
+
|
|
55
|
+
### CHECKPOINT
|
|
56
|
+
|
|
57
|
+
Present a summary before proceeding: diff stats (files changed, lines added/removed), `{review_mode}`, and loaded spec/context docs (if any). HALT and wait for user confirmation to proceed.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## NEXT
|
|
61
|
+
|
|
62
|
+
Read fully and follow `./step-02-review.md`
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
failed_layers: '' # set at runtime: comma-separated list of layers that failed or returned empty
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Step 2: Review
|
|
6
|
+
|
|
7
|
+
## RULES
|
|
8
|
+
|
|
9
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
|
+
- The Blind Hunter subagent receives NO project context — diff only.
|
|
11
|
+
- The Edge Case Hunter subagent receives diff and project read access.
|
|
12
|
+
- The Acceptance Auditor subagent receives diff, spec, and context docs.
|
|
13
|
+
|
|
14
|
+
## INSTRUCTIONS
|
|
15
|
+
|
|
16
|
+
1. If `{review_mode}` = `"no-spec"`, note to the user: "Acceptance Auditor skipped — no spec file provided."
|
|
17
|
+
|
|
18
|
+
2. Launch parallel subagents without conversation context. If subagents are not available, generate prompt files in `{implementation_artifacts}` — one per reviewer role below — and HALT. Ask the user to run each in a separate session (ideally a different LLM) and paste back the findings. When findings are pasted, resume from this point and proceed to step 3.
|
|
19
|
+
|
|
20
|
+
- **Blind Hunter** — receives `{diff_output}` only. No spec, no context docs, no project access. Invoke via the `bmad-review-adversarial-general` skill.
|
|
21
|
+
|
|
22
|
+
- **Edge Case Hunter** — receives `{diff_output}` and read access to the project. Invoke via the `bmad-review-edge-case-hunter` skill.
|
|
23
|
+
|
|
24
|
+
- **Acceptance Auditor** (only if `{review_mode}` = `"full"`) — receives `{diff_output}`, the content of the file at `{spec_file}`, and any loaded context docs. Its prompt:
|
|
25
|
+
> You are an Acceptance Auditor. Review this diff against the spec and context docs. Check for: violations of acceptance criteria, deviations from spec intent, missing implementation of specified behavior, contradictions between spec constraints and actual code. Output findings as a Markdown list. Each finding: one-line title, which AC/constraint it violates, and evidence from the diff.
|
|
26
|
+
|
|
27
|
+
3. **Subagent failure handling**: If any subagent fails, times out, or returns empty results, append the layer name to `{failed_layers}` (comma-separated) and proceed with findings from the remaining layers.
|
|
28
|
+
|
|
29
|
+
4. Collect all findings from the completed layers.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## NEXT
|
|
33
|
+
|
|
34
|
+
Read fully and follow `./step-03-triage.md`
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 3: Triage
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
- Be precise. When uncertain between categories, prefer the more conservative classification.
|
|
10
|
+
|
|
11
|
+
## INSTRUCTIONS
|
|
12
|
+
|
|
13
|
+
1. **Normalize** findings into a common format. Expected input formats:
|
|
14
|
+
- Adversarial (Blind Hunter): markdown list of descriptions
|
|
15
|
+
- Edge Case Hunter: JSON array with `location`, `trigger_condition`, `guard_snippet`, `potential_consequence` fields
|
|
16
|
+
- Acceptance Auditor: markdown list with title, AC/constraint reference, and evidence
|
|
17
|
+
|
|
18
|
+
If a layer's output does not match its expected format, attempt best-effort parsing. Note any parsing issues for the user.
|
|
19
|
+
|
|
20
|
+
Convert all to a unified list where each finding has:
|
|
21
|
+
- `id` -- sequential integer
|
|
22
|
+
- `source` -- `blind`, `edge`, `auditor`, or merged sources (e.g., `blind+edge`)
|
|
23
|
+
- `title` -- one-line summary
|
|
24
|
+
- `detail` -- full description
|
|
25
|
+
- `location` -- file and line reference (if available)
|
|
26
|
+
|
|
27
|
+
2. **Deduplicate.** If two or more findings describe the same issue, merge them into one:
|
|
28
|
+
- Use the most specific finding as the base (prefer edge-case JSON with location over adversarial prose).
|
|
29
|
+
- Append any unique detail, reasoning, or location references from the other finding(s) into the surviving `detail` field.
|
|
30
|
+
- Set `source` to the merged sources (e.g., `blind+edge`).
|
|
31
|
+
|
|
32
|
+
3. **Classify** each finding into exactly one bucket:
|
|
33
|
+
- **decision_needed** -- There is an ambiguous choice that requires human input. The code cannot be correctly patched without knowing the user's intent. Only possible if `{review_mode}` = `"full"`.
|
|
34
|
+
- **patch** -- Code issue that is fixable without human input. The correct fix is unambiguous.
|
|
35
|
+
- **defer** -- Pre-existing issue not caused by the current change. Real but not actionable now.
|
|
36
|
+
- **dismiss** -- Noise, false positive, or handled elsewhere.
|
|
37
|
+
|
|
38
|
+
If `{review_mode}` = `"no-spec"` and a finding would otherwise be `decision_needed`, reclassify it as `patch` (if the fix is unambiguous) or `defer` (if not).
|
|
39
|
+
|
|
40
|
+
4. **Drop** all `dismiss` findings. Record the dismiss count for the summary.
|
|
41
|
+
|
|
42
|
+
5. If `{failed_layers}` is non-empty, report which layers failed before announcing results. If zero findings remain after dropping dismissed AND `{failed_layers}` is non-empty, warn the user that the review may be incomplete rather than announcing a clean review.
|
|
43
|
+
|
|
44
|
+
6. If zero findings remain after triage (all rejected or none raised): state "✅ Clean review — all layers passed." (Step 3 already warned if any review layers failed via `{failed_layers}`.)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## NEXT
|
|
48
|
+
|
|
49
|
+
Read fully and follow `./step-04-present.md`
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Step 4: Present and Act
|
|
6
|
+
|
|
7
|
+
## RULES
|
|
8
|
+
|
|
9
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
|
+
- When `{spec_file}` is set, always write findings to the story file before offering action choices.
|
|
11
|
+
- `decision-needed` findings must be resolved before handling `patch` findings.
|
|
12
|
+
|
|
13
|
+
## INSTRUCTIONS
|
|
14
|
+
|
|
15
|
+
### 1. Clean review shortcut
|
|
16
|
+
|
|
17
|
+
If zero findings remain after triage (all dismissed or none raised): state that and proceed to section 6 (Sprint Status Update).
|
|
18
|
+
|
|
19
|
+
### 2. Write findings to the story file
|
|
20
|
+
|
|
21
|
+
If `{spec_file}` exists and contains a Tasks/Subtasks section, append a `### Review Findings` subsection. Write all findings in this order:
|
|
22
|
+
|
|
23
|
+
1. **`decision-needed`** findings (unchecked):
|
|
24
|
+
`- [ ] [Review][Decision] <Title> — <Detail>`
|
|
25
|
+
|
|
26
|
+
2. **`patch`** findings (unchecked):
|
|
27
|
+
`- [ ] [Review][Patch] <Title> [<file>:<line>]`
|
|
28
|
+
|
|
29
|
+
3. **`defer`** findings (checked off, marked deferred):
|
|
30
|
+
`- [x] [Review][Defer] <Title> [<file>:<line>] — deferred, pre-existing`
|
|
31
|
+
|
|
32
|
+
Also append each `defer` finding to `{deferred_work_file}` under a heading `## Deferred from: code review ({date})`. If `{spec_file}` is set, include its basename in the heading (e.g., `code review of story-3.3 (2026-03-18)`). One bullet per finding with description.
|
|
33
|
+
|
|
34
|
+
### 3. Present summary
|
|
35
|
+
|
|
36
|
+
Announce what was written:
|
|
37
|
+
|
|
38
|
+
> **Code review complete.** <D> `decision-needed`, <P> `patch`, <W> `defer`, <R> dismissed as noise.
|
|
39
|
+
|
|
40
|
+
If `{spec_file}` is set, add: `Findings written to the review findings section in {spec_file}.`
|
|
41
|
+
Otherwise add: `Findings are listed above. No story file was provided, so nothing was persisted.`
|
|
42
|
+
|
|
43
|
+
### 4. Resolve decision-needed findings
|
|
44
|
+
|
|
45
|
+
If `decision_needed` findings exist, present each one with its detail and the options available. The user must decide — the correct fix is ambiguous without their input. Walk through each finding (or batch related ones) and get the user's call. Once resolved, each becomes a `patch`, `defer`, or is dismissed.
|
|
46
|
+
|
|
47
|
+
If the user chooses to defer, ask: Quick one-line reason for deferring this item? (helps future reviews): — then append that reason to both the story file bullet and the `{deferred_work_file}` entry.
|
|
48
|
+
|
|
49
|
+
**HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option.
|
|
50
|
+
|
|
51
|
+
### 5. Handle `patch` findings
|
|
52
|
+
|
|
53
|
+
If `patch` findings exist (including any resolved from step 4), HALT. Ask the user:
|
|
54
|
+
|
|
55
|
+
If `{spec_file}` is set, present all three options (if >3 `patch` findings exist, also show option 0):
|
|
56
|
+
|
|
57
|
+
> **How would you like to handle the <Z> `patch` findings?**
|
|
58
|
+
> 0. **Batch-apply all** — automatically fix every non-controversial patch (recommended when there are many)
|
|
59
|
+
> 1. **Fix them automatically** — I will apply fixes now
|
|
60
|
+
> 2. **Leave as action items** — they are already in the story file
|
|
61
|
+
> 3. **Walk through each** — let me show details before deciding
|
|
62
|
+
|
|
63
|
+
If `{spec_file}` is **not** set, present only options 1 and 3 (omit option 2 — findings were not written to a file). If >3 `patch` findings exist, also show option 0:
|
|
64
|
+
|
|
65
|
+
> **How would you like to handle the <Z> `patch` findings?**
|
|
66
|
+
> 0. **Batch-apply all** — automatically fix every non-controversial patch (recommended when there are many)
|
|
67
|
+
> 1. **Fix them automatically** — I will apply fixes now
|
|
68
|
+
> 2. **Walk through each** — let me show details before deciding
|
|
69
|
+
|
|
70
|
+
**HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option.
|
|
71
|
+
|
|
72
|
+
- **Option 0** (only when >3 findings): Apply all non-controversial patches without per-finding confirmation. Skip any finding that requires judgment. Present a summary of changes made and any skipped findings.
|
|
73
|
+
- **Option 1**: Apply each fix. After all patches are applied, present a summary of changes made. If `{spec_file}` is set, check off the items in the story file.
|
|
74
|
+
- **Option 2** (only when `{spec_file}` is set): Done — findings are already written to the story.
|
|
75
|
+
- **Walk through each**: Present each finding with full detail, diff context, and suggested fix. After walkthrough, re-offer the applicable options above.
|
|
76
|
+
|
|
77
|
+
**HALT** — I am waiting for your numbered choice. Reply with only the number (or "0" for batch). Do not proceed until you select an option.
|
|
78
|
+
|
|
79
|
+
**✅ Code review actions complete**
|
|
80
|
+
|
|
81
|
+
- Decision-needed resolved: <D>
|
|
82
|
+
- Patches handled: <P>
|
|
83
|
+
- Deferred: <W>
|
|
84
|
+
- Dismissed: <R>
|
|
85
|
+
|
|
86
|
+
### 6. Update story status and sync sprint tracking
|
|
87
|
+
|
|
88
|
+
Skip this section if `{spec_file}` is not set.
|
|
89
|
+
|
|
90
|
+
#### Determine new status based on review outcome
|
|
91
|
+
|
|
92
|
+
- If all `decision-needed` and `patch` findings were resolved (fixed or dismissed) AND no unresolved HIGH/MEDIUM issues remain: set `{new_status}` = `done`. Update the story file Status section to `done`.
|
|
93
|
+
- If `patch` findings were left as action items, or unresolved issues remain: set `{new_status}` = `in-progress`. Update the story file Status section to `in-progress`.
|
|
94
|
+
|
|
95
|
+
Save the story file.
|
|
96
|
+
|
|
97
|
+
#### Sync sprint-status.yaml
|
|
98
|
+
|
|
99
|
+
If `{story_key}` is not set, skip this subsection and note that sprint status was not synced because no story key was available.
|
|
100
|
+
|
|
101
|
+
If `{sprint_status}` file exists:
|
|
102
|
+
|
|
103
|
+
1. Load the FULL `{sprint_status}` file.
|
|
104
|
+
2. Find the `development_status` entry matching `{story_key}`.
|
|
105
|
+
3. If found: update `development_status[{story_key}]` to `{new_status}`. Update `last_updated` to current date. Save the file, preserving ALL comments and structure including STATUS DEFINITIONS.
|
|
106
|
+
4. If `{story_key}` not found in sprint status: warn the user that the story file was updated but sprint-status sync failed.
|
|
107
|
+
|
|
108
|
+
If `{sprint_status}` file does not exist, note that story status was updated in the story file only.
|
|
109
|
+
|
|
110
|
+
#### Completion summary
|
|
111
|
+
|
|
112
|
+
> **Review Complete!**
|
|
113
|
+
>
|
|
114
|
+
> **Story Status:** `{new_status}`
|
|
115
|
+
> **Issues Fixed:** <fixed_count>
|
|
116
|
+
> **Action Items Created:** <action_count>
|
|
117
|
+
> **Deferred:** <W>
|
|
118
|
+
> **Dismissed:** <R>
|
|
119
|
+
|
|
120
|
+
### 7. Next steps
|
|
121
|
+
|
|
122
|
+
Present the user with follow-up options:
|
|
123
|
+
|
|
124
|
+
> **What would you like to do next?**
|
|
125
|
+
> 1. **Start the next story** — run `dev-story` to pick up the next `ready-for-dev` story
|
|
126
|
+
> 2. **Re-run code review** — address findings and review again
|
|
127
|
+
> 3. **Done** — end the workflow
|
|
128
|
+
|
|
129
|
+
**HALT** — I am waiting for your choice. Do not proceed until the user selects an option.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Code Review Workflow
|
|
6
|
+
|
|
7
|
+
**Goal:** Review code changes adversarially using parallel review layers and structured triage.
|
|
8
|
+
|
|
9
|
+
**Your Role:** You are an elite code reviewer. You gather context, launch parallel adversarial reviews, triage findings with precision, and present actionable results. No noise, no filler.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## WORKFLOW ARCHITECTURE
|
|
13
|
+
|
|
14
|
+
This uses **step-file architecture** for disciplined execution:
|
|
15
|
+
|
|
16
|
+
- **Micro-file Design**: Each step is self-contained and followed exactly
|
|
17
|
+
- **Just-In-Time Loading**: Only load the current step file
|
|
18
|
+
- **Sequential Enforcement**: Complete steps in order, no skipping
|
|
19
|
+
- **State Tracking**: Persist progress via in-memory variables
|
|
20
|
+
- **Append-Only Building**: Build artifacts incrementally
|
|
21
|
+
|
|
22
|
+
### Step Processing Rules
|
|
23
|
+
|
|
24
|
+
1. **READ COMPLETELY**: Read the entire step file before acting
|
|
25
|
+
2. **FOLLOW SEQUENCE**: Execute sections in order
|
|
26
|
+
3. **WAIT FOR INPUT**: Halt at checkpoints and wait for human
|
|
27
|
+
4. **LOAD NEXT**: When directed, read fully and follow the next step file
|
|
28
|
+
|
|
29
|
+
### Critical Rules (NO EXCEPTIONS)
|
|
30
|
+
|
|
31
|
+
- **NEVER** load multiple step files simultaneously
|
|
32
|
+
- **ALWAYS** read entire step file before execution
|
|
33
|
+
- **NEVER** skip steps or optimize the sequence
|
|
34
|
+
- **ALWAYS** follow the exact instructions in the step file
|
|
35
|
+
- **ALWAYS** halt at checkpoints and wait for human input
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## INITIALIZATION SEQUENCE
|
|
39
|
+
|
|
40
|
+
### 1. Configuration Loading
|
|
41
|
+
|
|
42
|
+
Load and read full config from `{main_config}` and resolve:
|
|
43
|
+
|
|
44
|
+
- `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`
|
|
45
|
+
- `communication_language`, `document_output_language`, `user_skill_level`
|
|
46
|
+
- `date` as system-generated current datetime
|
|
47
|
+
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
|
48
|
+
- `project_context` = `**/project-context.md` (load if exists)
|
|
49
|
+
- CLAUDE.md / memory files (load if exist)
|
|
50
|
+
|
|
51
|
+
YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`.
|
|
52
|
+
|
|
53
|
+
### 2. First Step Execution
|
|
54
|
+
|
|
55
|
+
Read fully and follow: `./steps/step-01-gather-context.md` to begin the workflow.
|