bmad-method 6.2.1-next.2 → 6.2.1-next.21
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/AGENTS.md +3 -0
- package/package.json +4 -6
- package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-analyst/SKILL.md +15 -17
- package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-analyst/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/SKILL.md +13 -16
- package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/SKILL.md +2 -3
- package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/SKILL.md +1 -1
- package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/SKILL.md +1 -1
- package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/SKILL.md +1 -1
- package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-pm/SKILL.md +14 -16
- package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-pm/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-ux-designer/SKILL.md +9 -16
- package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-ux-designer/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01-discovery.md +1 -1
- package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +1 -1
- package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-02-review.md +1 -1
- package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-03-edit.md +1 -1
- package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +1 -1
- package/src/{bmm/agents → bmm-skills/3-solutioning}/bmad-agent-architect/SKILL.md +10 -16
- package/src/{bmm/agents → bmm-skills/3-solutioning}/bmad-agent-architect/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-dev/SKILL.md +10 -16
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-dev/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-qa/SKILL.md +9 -16
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-qa/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-quick-flow-solo-dev/SKILL.md +10 -16
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-sm/SKILL.md +12 -16
- package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-sm/bmad-skill-manifest.yaml +2 -3
- package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/steps/step-01-gather-context.md +3 -2
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +34 -0
- package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/steps/step-03-triage.md +7 -8
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-04-present.md +129 -0
- package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/workflow.md +1 -0
- package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/SKILL.md +1 -1
- package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps → bmm-skills/4-implementation/bmad-quick-dev}/step-01-clarify-and-route.md +12 -13
- package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps → bmm-skills/4-implementation/bmad-quick-dev}/step-02-plan.md +2 -2
- package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps → bmm-skills/4-implementation/bmad-quick-dev}/step-03-implement.md +2 -4
- package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps → bmm-skills/4-implementation/bmad-quick-dev}/step-04-review.md +5 -6
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-05-present.md +61 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +49 -0
- package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/workflow.md +3 -3
- package/src/{bmm → bmm-skills}/module-help.csv +3 -5
- package/src/core-skills/bmad-advanced-elicitation/SKILL.md +6 -0
- package/src/{core/skills → core-skills}/bmad-help/workflow.md +1 -1
- package/tools/cli/installers/lib/core/dependency-resolver.js +11 -11
- package/tools/cli/installers/lib/core/installer.js +3 -3
- package/tools/cli/installers/lib/core/manifest-generator.js +45 -21
- package/tools/cli/installers/lib/core/manifest.js +2 -2
- package/tools/cli/installers/lib/ide/_config-driven.js +1 -1
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +4 -4
- package/tools/cli/installers/lib/modules/manager.js +10 -9
- package/tools/cli/lib/project-root.js +5 -5
- package/tools/cli/lib/yaml-xml-builder.js +6 -4
- package/tools/skill-validator.md +52 -22
- package/tools/validate-skills.js +736 -0
- package/src/bmm/agents/bmad-agent-analyst/bmad-manifest.json +0 -44
- package/src/bmm/agents/bmad-agent-architect/bmad-manifest.json +0 -20
- package/src/bmm/agents/bmad-agent-dev/bmad-manifest.json +0 -20
- package/src/bmm/agents/bmad-agent-pm/bmad-manifest.json +0 -44
- package/src/bmm/agents/bmad-agent-qa/bmad-manifest.json +0 -14
- package/src/bmm/agents/bmad-agent-quick-flow-solo-dev/bmad-manifest.json +0 -32
- package/src/bmm/agents/bmad-agent-sm/bmad-manifest.json +0 -32
- package/src/bmm/agents/bmad-agent-tech-writer/bmad-manifest.json +0 -38
- package/src/bmm/agents/bmad-agent-ux-designer/bmad-manifest.json +0 -14
- package/src/bmm/agents/bmad-skill-manifest.yaml +0 -39
- package/src/bmm/data/project-context-template.md +0 -26
- package/src/bmm/teams/default-party.csv +0 -20
- package/src/bmm/teams/team-fullstack.yaml +0 -12
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md +0 -6
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/product-brief.template.md +0 -10
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md +0 -170
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md +0 -158
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md +0 -193
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md +0 -196
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md +0 -199
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-05-scope.md +0 -213
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-06-complete.md +0 -159
- package/src/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md +0 -55
- package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +0 -182
- package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +0 -237
- package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +0 -249
- package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +0 -259
- package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +0 -177
- package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +0 -476
- package/src/bmm/workflows/1-analysis/research/research.template.md +0 -29
- package/src/bmm/workflows/4-implementation/bmad-code-review/steps/step-02-review.md +0 -41
- package/src/bmm/workflows/4-implementation/bmad-code-review/steps/step-04-present.md +0 -38
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md +0 -6
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md +0 -169
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md +0 -114
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md +0 -107
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md +0 -107
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md +0 -94
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-06-resolve-findings.md +0 -144
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md +0 -38
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-05-present.md +0 -17
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md +0 -6
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md +0 -185
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md +0 -140
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md +0 -123
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-04-review.md +0 -195
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/tech-spec-template.md +0 -74
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md +0 -73
- package/src/core/skills/bmad-advanced-elicitation/SKILL.md +0 -6
- package/src/core/skills/bmad-review-edge-case-hunter/bmad-skill-manifest.yaml +0 -1
- package/src/core/skills/bmad-shard-doc/bmad-skill-manifest.yaml +0 -1
- package/src/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml +0 -1
- package/src/utility/agent-components/activation-rules.txt +0 -6
- package/src/utility/agent-components/activation-steps.txt +0 -14
- package/src/utility/agent-components/agent-command-header.md +0 -1
- package/src/utility/agent-components/agent.customize.template.yaml +0 -41
- package/src/utility/agent-components/handler-action.txt +0 -4
- package/src/utility/agent-components/handler-data.txt +0 -5
- package/src/utility/agent-components/handler-exec.txt +0 -6
- package/src/utility/agent-components/handler-multi.txt +0 -13
- package/src/utility/agent-components/handler-tmpl.txt +0 -5
- package/src/utility/agent-components/menu-handlers.txt +0 -6
- package/tools/schema/agent.js +0 -489
- /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/explain-concept.md +0 -0
- /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/mermaid-gen.md +0 -0
- /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/validate-doc.md +0 -0
- /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/write-document.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/SKILL.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-create-product-brief → bmm-skills/1-analysis/bmad-document-project}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/checklist.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/documentation-requirements.csv +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/instructions.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/deep-dive-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/index-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/project-overview-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/project-scan-report-schema.json +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/source-tree-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/deep-dive-instructions.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/deep-dive-workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/full-scan-instructions.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/full-scan-workflow.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/artifact-analyzer.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/opportunity-reviewer.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/skeptic-reviewer.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/web-researcher.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/bmad-manifest.json +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/contextual-discovery.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/draft-and-review.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/finalize.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/guided-elicitation.md +0 -0
- /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/resources/brief-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/research.template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/research.template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-01-init.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/research.template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/workflow.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/SKILL.md +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/bmad-create-ux-design → bmm-skills/2-plan-workflows/bmad-create-prd}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/bmad-validate-prd → bmm-skills/2-plan-workflows/bmad-create-prd}/data/domain-complexity.csv +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/bmad-validate-prd → bmm-skills/2-plan-workflows/bmad-create-prd}/data/prd-purpose.md +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/bmad-validate-prd → bmm-skills/2-plan-workflows/bmad-create-prd}/data/project-types.csv +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-01-init.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-01b-continue.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-02-discovery.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-02b-vision.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-03-success.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-04-journeys.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-05-domain.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-06-innovation.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-07-project-type.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-08-scoping.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-09-functional.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-11-polish.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-12-complete.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/templates/prd-template.md +0 -0
- /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/SKILL.md +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/bmad-edit-prd → bmm-skills/2-plan-workflows/bmad-create-ux-design}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/ux-design-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/SKILL.md +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/bmad-validate-prd → bmm-skills/2-plan-workflows/bmad-edit-prd}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/SKILL.md +0 -0
- /package/src/{bmm/workflows/3-solutioning/bmad-check-implementation-readiness → bmm-skills/2-plan-workflows/bmad-validate-prd}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/create-prd → bmm-skills/2-plan-workflows/bmad-validate-prd}/data/domain-complexity.csv +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/create-prd → bmm-skills/2-plan-workflows/bmad-validate-prd}/data/prd-purpose.md +0 -0
- /package/src/{bmm/workflows/2-plan-workflows/create-prd → bmm-skills/2-plan-workflows/bmad-validate-prd}/data/project-types.csv +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/workflow.md +0 -0
- /package/src/{core/tasks/bmad-create-prd → bmm-skills/2-plan-workflows/create-prd}/data/domain-complexity.csv +0 -0
- /package/src/{core/tasks/bmad-create-prd → bmm-skills/2-plan-workflows/create-prd}/data/prd-purpose.md +0 -0
- /package/src/{core/tasks/bmad-create-prd → bmm-skills/2-plan-workflows/create-prd}/data/project-types.csv +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/workflow-validate-prd.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/SKILL.md +0 -0
- /package/src/{bmm/workflows/3-solutioning/bmad-create-architecture → bmm-skills/3-solutioning/bmad-check-implementation-readiness}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/SKILL.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/architecture-decision-template.md +0 -0
- /package/src/{bmm/workflows/3-solutioning/bmad-create-epics-and-stories → bmm-skills/3-solutioning/bmad-create-architecture}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/data/domain-complexity.csv +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/data/project-types.csv +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-01-init.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-02-context.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-03-starter.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-04-decisions.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-05-patterns.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-06-structure.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-07-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/SKILL.md +0 -0
- /package/src/{bmm/workflows/4-implementation/bmad-code-review → bmm-skills/3-solutioning/bmad-create-epics-and-stories}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/templates/epics-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/SKILL.md +0 -0
- /package/src/{bmm/workflows/4-implementation/bmad-correct-course → bmm-skills/3-solutioning/bmad-generate-project-context}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/project-context-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/steps/step-01-discover.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/steps/step-02-generate.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/steps/step-03-complete.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/SKILL.md +0 -0
- /package/src/{bmm/workflows/4-implementation/bmad-create-story → bmm-skills/4-implementation/bmad-code-review}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-correct-course/SKILL.md +0 -0
- /package/src/{bmm/workflows/4-implementation/bmad-dev-story → bmm-skills/4-implementation/bmad-correct-course}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-correct-course/checklist.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-correct-course/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/SKILL.md +0 -0
- /package/src/{bmm/workflows/4-implementation/bmad-retrospective → bmm-skills/4-implementation/bmad-create-story}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/checklist.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/discover-inputs.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-dev-story/SKILL.md +0 -0
- /package/src/{bmm/workflows/4-implementation/bmad-sprint-planning → bmm-skills/4-implementation/bmad-dev-story}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-dev-story/checklist.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-dev-story/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/4-implementation}/bmad-qa-generate-e2e-tests/SKILL.md +0 -0
- /package/src/{bmm/workflows/4-implementation/bmad-sprint-status → bmm-skills/4-implementation/bmad-qa-generate-e2e-tests}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills/4-implementation}/bmad-qa-generate-e2e-tests/checklist.md +0 -0
- /package/src/{bmm/workflows → bmm-skills/4-implementation}/bmad-qa-generate-e2e-tests/workflow.md +0 -0
- /package/src/{bmm/workflows/bmad-document-project → bmm-skills/4-implementation/bmad-quick-dev}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/tech-spec-template.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-retrospective/SKILL.md +0 -0
- /package/src/{bmm/workflows/bmad-generate-project-context → bmm-skills/4-implementation/bmad-retrospective}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-retrospective/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/SKILL.md +0 -0
- /package/src/{bmm/workflows/bmad-qa-generate-e2e-tests → bmm-skills/4-implementation/bmad-sprint-planning}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/checklist.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/workflow.md +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-status/SKILL.md +0 -0
- /package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-sprint-status}/bmad-skill-manifest.yaml +0 -0
- /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-status/workflow.md +0 -0
- /package/src/{bmm → bmm-skills}/module.yaml +0 -0
- /package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev → core-skills/bmad-advanced-elicitation}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-advanced-elicitation/methods.csv +0 -0
- /package/src/{core/skills → core-skills}/bmad-advanced-elicitation/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/SKILL.md +0 -0
- /package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-spec → core-skills/bmad-brainstorming}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/brain-methods.csv +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-01-session-setup.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-01b-continue.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02a-user-selected.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02c-random-selection.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-03-technique-execution.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-04-idea-organization.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/template.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-brainstorming/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/SKILL.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/agents/distillate-compressor.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/agents/round-trip-reconstructor.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/resources/compression-rules.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/resources/distillate-format-reference.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/resources/splitting-strategy.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/scripts/analyze_sources.py +0 -0
- /package/src/{core/skills → core-skills}/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -0
- /package/src/{core/skills → core-skills}/bmad-editorial-review-prose/SKILL.md +0 -0
- /package/src/{core/skills/bmad-advanced-elicitation → core-skills/bmad-editorial-review-prose}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-editorial-review-prose/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-editorial-review-structure/SKILL.md +0 -0
- /package/src/{core/skills/bmad-brainstorming → core-skills/bmad-editorial-review-structure}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-editorial-review-structure/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-help/SKILL.md +0 -0
- /package/src/{core/skills/bmad-editorial-review-prose → core-skills/bmad-help}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-index-docs/SKILL.md +0 -0
- /package/src/{core/skills/bmad-editorial-review-structure → core-skills/bmad-index-docs}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-index-docs/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-init/SKILL.md +0 -0
- /package/src/{core/skills/bmad-help → core-skills/bmad-init}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-init/resources/core-module.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-init/scripts/bmad_init.py +0 -0
- /package/src/{core/skills → core-skills}/bmad-init/scripts/tests/test_bmad_init.py +0 -0
- /package/src/{core/skills → core-skills}/bmad-party-mode/SKILL.md +0 -0
- /package/src/{core/skills/bmad-index-docs → core-skills/bmad-party-mode}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-party-mode/steps/step-01-agent-loading.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-party-mode/steps/step-03-graceful-exit.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-party-mode/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-review-adversarial-general/SKILL.md +0 -0
- /package/src/{core/skills/bmad-init → core-skills/bmad-review-adversarial-general}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-review-adversarial-general/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-review-edge-case-hunter/SKILL.md +0 -0
- /package/src/{core/skills/bmad-party-mode → core-skills/bmad-review-edge-case-hunter}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-review-edge-case-hunter/workflow.md +0 -0
- /package/src/{core/skills → core-skills}/bmad-shard-doc/SKILL.md +0 -0
- /package/src/{core/skills/bmad-review-adversarial-general → core-skills/bmad-shard-doc}/bmad-skill-manifest.yaml +0 -0
- /package/src/{core/skills → core-skills}/bmad-shard-doc/workflow.md +0 -0
- /package/src/{core → core-skills}/module-help.csv +0 -0
- /package/src/{core → core-skills}/module.yaml +0 -0
|
@@ -82,11 +82,11 @@ class DependencyResolver {
|
|
|
82
82
|
// Check if this is a source directory (has 'src' subdirectory)
|
|
83
83
|
const srcDir = path.join(bmadDir, 'src');
|
|
84
84
|
if (await fs.pathExists(srcDir)) {
|
|
85
|
-
// Source directory structure: src/core or src/bmm
|
|
85
|
+
// Source directory structure: src/core-skills or src/bmm-skills
|
|
86
86
|
if (module === 'core') {
|
|
87
|
-
moduleDir = path.join(srcDir, 'core');
|
|
87
|
+
moduleDir = path.join(srcDir, 'core-skills');
|
|
88
88
|
} else if (module === 'bmm') {
|
|
89
|
-
moduleDir = path.join(srcDir, 'bmm');
|
|
89
|
+
moduleDir = path.join(srcDir, 'bmm-skills');
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
@@ -401,8 +401,8 @@ class DependencyResolver {
|
|
|
401
401
|
const bmadPath = dep.dependency.replace(/^bmad\//, '');
|
|
402
402
|
|
|
403
403
|
// Try to resolve as if it's in src structure
|
|
404
|
-
// bmad/core/tasks/foo.md -> src/core/tasks/foo.md
|
|
405
|
-
// bmad/bmm/tasks/bar.md -> src/bmm/tasks/bar.md (bmm is directly under src/)
|
|
404
|
+
// bmad/core/tasks/foo.md -> src/core-skills/tasks/foo.md
|
|
405
|
+
// bmad/bmm/tasks/bar.md -> src/bmm-skills/tasks/bar.md (bmm is directly under src/)
|
|
406
406
|
// bmad/cis/agents/bar.md -> src/modules/cis/agents/bar.md
|
|
407
407
|
|
|
408
408
|
if (bmadPath.startsWith('core/')) {
|
|
@@ -584,11 +584,11 @@ class DependencyResolver {
|
|
|
584
584
|
const relative = path.relative(bmadDir, filePath);
|
|
585
585
|
const parts = relative.split(path.sep);
|
|
586
586
|
|
|
587
|
-
// Handle source directory structure (src/core, src/bmm, or src/modules/xxx)
|
|
587
|
+
// Handle source directory structure (src/core-skills, src/bmm-skills, or src/modules/xxx)
|
|
588
588
|
if (parts[0] === 'src') {
|
|
589
|
-
if (parts[1] === 'core') {
|
|
589
|
+
if (parts[1] === 'core-skills') {
|
|
590
590
|
return 'core';
|
|
591
|
-
} else if (parts[1] === 'bmm') {
|
|
591
|
+
} else if (parts[1] === 'bmm-skills') {
|
|
592
592
|
return 'bmm';
|
|
593
593
|
} else if (parts[1] === 'modules' && parts.length > 2) {
|
|
594
594
|
return parts[2];
|
|
@@ -631,11 +631,11 @@ class DependencyResolver {
|
|
|
631
631
|
let moduleBase;
|
|
632
632
|
|
|
633
633
|
// Check if file is in source directory structure
|
|
634
|
-
if (file.includes('/src/core/') || file.includes('/src/bmm/')) {
|
|
634
|
+
if (file.includes('/src/core-skills/') || file.includes('/src/bmm-skills/')) {
|
|
635
635
|
if (module === 'core') {
|
|
636
|
-
moduleBase = path.join(bmadDir, 'src', 'core');
|
|
636
|
+
moduleBase = path.join(bmadDir, 'src', 'core-skills');
|
|
637
637
|
} else if (module === 'bmm') {
|
|
638
|
-
moduleBase = path.join(bmadDir, 'src', 'bmm');
|
|
638
|
+
moduleBase = path.join(bmadDir, 'src', 'bmm-skills');
|
|
639
639
|
}
|
|
640
640
|
} else {
|
|
641
641
|
moduleBase = module === 'core' ? path.join(bmadDir, 'core') : path.join(bmadDir, 'modules', module);
|
|
@@ -1789,8 +1789,8 @@ class Installer {
|
|
|
1789
1789
|
.filter((entry) => entry.isDirectory() && entry.name !== '_config' && entry.name !== 'docs' && entry.name !== '_memory')
|
|
1790
1790
|
.map((entry) => entry.name);
|
|
1791
1791
|
|
|
1792
|
-
// Add core module to scan (it's installed at root level as _config, but we check src/core)
|
|
1793
|
-
const coreModulePath = getSourcePath('core');
|
|
1792
|
+
// Add core module to scan (it's installed at root level as _config, but we check src/core-skills)
|
|
1793
|
+
const coreModulePath = getSourcePath('core-skills');
|
|
1794
1794
|
const modulePaths = new Map();
|
|
1795
1795
|
|
|
1796
1796
|
// Map all module source paths
|
|
@@ -2709,7 +2709,7 @@ class Installer {
|
|
|
2709
2709
|
// Get source path
|
|
2710
2710
|
let sourcePath;
|
|
2711
2711
|
if (moduleId === 'core') {
|
|
2712
|
-
sourcePath = getSourcePath('core');
|
|
2712
|
+
sourcePath = getSourcePath('core-skills');
|
|
2713
2713
|
} else {
|
|
2714
2714
|
// First check if it's in the custom cache
|
|
2715
2715
|
if (customModuleSources.has(moduleId)) {
|
|
@@ -50,6 +50,29 @@ class ManifestGenerator {
|
|
|
50
50
|
return getInstallToBmadShared(manifest, filename);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
/**
|
|
54
|
+
* Native SKILL.md entrypoints can be packaged as either skills or agents.
|
|
55
|
+
* Both need verbatim installation for skill-format IDEs.
|
|
56
|
+
* @param {string|null} artifactType - Manifest type resolved for SKILL.md
|
|
57
|
+
* @returns {boolean} True when the directory should be installed verbatim
|
|
58
|
+
*/
|
|
59
|
+
isNativeSkillDirType(artifactType) {
|
|
60
|
+
return artifactType === 'skill' || artifactType === 'agent';
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Check whether a loaded bmad-skill-manifest.yaml declares a native
|
|
65
|
+
* SKILL.md entrypoint, either as a single-entry manifest or a multi-entry map.
|
|
66
|
+
* @param {Object|null} manifest - Loaded manifest
|
|
67
|
+
* @returns {boolean} True when the manifest contains a native skill/agent entrypoint
|
|
68
|
+
*/
|
|
69
|
+
hasNativeSkillManifest(manifest) {
|
|
70
|
+
if (!manifest) return false;
|
|
71
|
+
if (manifest.__single) return this.isNativeSkillDirType(manifest.__single.type);
|
|
72
|
+
|
|
73
|
+
return Object.values(manifest).some((entry) => this.isNativeSkillDirType(entry?.type));
|
|
74
|
+
}
|
|
75
|
+
|
|
53
76
|
/**
|
|
54
77
|
* Clean text for CSV output by normalizing whitespace.
|
|
55
78
|
* Note: Quote escaping is handled by escapeCsv() at write time.
|
|
@@ -146,9 +169,10 @@ class ManifestGenerator {
|
|
|
146
169
|
}
|
|
147
170
|
|
|
148
171
|
/**
|
|
149
|
-
* Recursively walk a module directory tree, collecting
|
|
150
|
-
* A
|
|
151
|
-
* type: skill AND a SKILL.md file
|
|
172
|
+
* Recursively walk a module directory tree, collecting native SKILL.md entrypoints.
|
|
173
|
+
* A native entrypoint directory is one that contains both a
|
|
174
|
+
* bmad-skill-manifest.yaml with type: skill or type: agent AND a SKILL.md file
|
|
175
|
+
* with name/description frontmatter.
|
|
152
176
|
* Populates this.skills[] and this.skillClaimedDirs (Set of absolute paths).
|
|
153
177
|
*/
|
|
154
178
|
async collectSkills() {
|
|
@@ -172,11 +196,11 @@ class ManifestGenerator {
|
|
|
172
196
|
// Check this directory for skill manifest
|
|
173
197
|
const manifest = await this.loadSkillManifest(dir);
|
|
174
198
|
|
|
175
|
-
// Determine if this directory is a
|
|
199
|
+
// Determine if this directory is a native SKILL.md entrypoint
|
|
176
200
|
const skillFile = 'SKILL.md';
|
|
177
201
|
const artifactType = this.getArtifactType(manifest, skillFile);
|
|
178
202
|
|
|
179
|
-
if (artifactType
|
|
203
|
+
if (this.isNativeSkillDirType(artifactType)) {
|
|
180
204
|
const skillMdPath = path.join(dir, 'SKILL.md');
|
|
181
205
|
const dirName = path.basename(dir);
|
|
182
206
|
|
|
@@ -190,11 +214,12 @@ class ManifestGenerator {
|
|
|
190
214
|
? `${this.bmadFolderName}/${moduleName}/${relativePath}/${skillFile}`
|
|
191
215
|
: `${this.bmadFolderName}/${moduleName}/${skillFile}`;
|
|
192
216
|
|
|
193
|
-
//
|
|
194
|
-
//
|
|
217
|
+
// Native SKILL.md entrypoints derive canonicalId from directory name.
|
|
218
|
+
// Agent entrypoints may keep canonicalId metadata for compatibility, so
|
|
219
|
+
// only warn for non-agent SKILL.md directories.
|
|
195
220
|
if (manifest && manifest.__single && manifest.__single.canonicalId && artifactType !== 'agent') {
|
|
196
221
|
console.warn(
|
|
197
|
-
`Warning:
|
|
222
|
+
`Warning: Native entrypoint manifest at ${dir}/bmad-skill-manifest.yaml contains canonicalId — this field is ignored for SKILL.md directories (directory name is the canonical ID)`,
|
|
198
223
|
);
|
|
199
224
|
}
|
|
200
225
|
const canonicalId = dirName;
|
|
@@ -224,21 +249,21 @@ class ManifestGenerator {
|
|
|
224
249
|
}
|
|
225
250
|
}
|
|
226
251
|
|
|
227
|
-
// Warn if manifest says
|
|
252
|
+
// Warn if manifest says this is a native entrypoint but the directory was not claimed
|
|
228
253
|
if (manifest && !this.skillClaimedDirs.has(dir)) {
|
|
229
|
-
let
|
|
254
|
+
let hasNativeSkillType = false;
|
|
230
255
|
if (manifest.__single) {
|
|
231
|
-
|
|
256
|
+
hasNativeSkillType = this.isNativeSkillDirType(manifest.__single.type);
|
|
232
257
|
} else {
|
|
233
258
|
for (const key of Object.keys(manifest)) {
|
|
234
|
-
if (manifest[key]?.type
|
|
235
|
-
|
|
259
|
+
if (this.isNativeSkillDirType(manifest[key]?.type)) {
|
|
260
|
+
hasNativeSkillType = true;
|
|
236
261
|
break;
|
|
237
262
|
}
|
|
238
263
|
}
|
|
239
264
|
}
|
|
240
|
-
if (
|
|
241
|
-
console.log(`[DEBUG] collectSkills: dir has
|
|
265
|
+
if (hasNativeSkillType && debug) {
|
|
266
|
+
console.log(`[DEBUG] collectSkills: dir has native SKILL.md manifest but failed validation: ${dir}`);
|
|
242
267
|
}
|
|
243
268
|
}
|
|
244
269
|
|
|
@@ -1359,7 +1384,8 @@ class ManifestGenerator {
|
|
|
1359
1384
|
const hasTasks = await fs.pathExists(path.join(modulePath, 'tasks'));
|
|
1360
1385
|
const hasTools = await fs.pathExists(path.join(modulePath, 'tools'));
|
|
1361
1386
|
|
|
1362
|
-
// Check for
|
|
1387
|
+
// Check for native-entrypoint-only modules: recursive scan for
|
|
1388
|
+
// bmad-skill-manifest.yaml with type: skill or type: agent
|
|
1363
1389
|
let hasSkills = false;
|
|
1364
1390
|
if (!hasAgents && !hasWorkflows && !hasTasks && !hasTools) {
|
|
1365
1391
|
hasSkills = await this._hasSkillManifestRecursive(modulePath);
|
|
@@ -1378,7 +1404,8 @@ class ManifestGenerator {
|
|
|
1378
1404
|
}
|
|
1379
1405
|
|
|
1380
1406
|
/**
|
|
1381
|
-
* Recursively check if a directory tree contains a bmad-skill-manifest.yaml
|
|
1407
|
+
* Recursively check if a directory tree contains a bmad-skill-manifest.yaml that
|
|
1408
|
+
* declares a native SKILL.md entrypoint (type: skill or type: agent).
|
|
1382
1409
|
* Skips directories starting with . or _.
|
|
1383
1410
|
* @param {string} dir - Directory to search
|
|
1384
1411
|
* @returns {boolean} True if a skill manifest is found
|
|
@@ -1393,10 +1420,7 @@ class ManifestGenerator {
|
|
|
1393
1420
|
|
|
1394
1421
|
// Check for manifest in this directory
|
|
1395
1422
|
const manifest = await this.loadSkillManifest(dir);
|
|
1396
|
-
if (manifest)
|
|
1397
|
-
const type = this.getArtifactType(manifest, 'workflow.md');
|
|
1398
|
-
if (type === 'skill') return true;
|
|
1399
|
-
}
|
|
1423
|
+
if (this.hasNativeSkillManifest(manifest)) return true;
|
|
1400
1424
|
|
|
1401
1425
|
// Recurse into subdirectories
|
|
1402
1426
|
for (const entry of entries) {
|
|
@@ -764,10 +764,10 @@ class Manifest {
|
|
|
764
764
|
const configs = {};
|
|
765
765
|
|
|
766
766
|
for (const moduleName of modules) {
|
|
767
|
-
// Handle core module differently - it's in src/core not src/modules/core
|
|
767
|
+
// Handle core module differently - it's in src/core-skills not src/modules/core
|
|
768
768
|
const configPath =
|
|
769
769
|
moduleName === 'core'
|
|
770
|
-
? path.join(process.cwd(), 'src', 'core', 'config.yaml')
|
|
770
|
+
? path.join(process.cwd(), 'src', 'core-skills', 'config.yaml')
|
|
771
771
|
: path.join(process.cwd(), 'src', 'modules', moduleName, 'config.yaml');
|
|
772
772
|
|
|
773
773
|
try {
|
|
@@ -630,7 +630,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|
|
630
630
|
}
|
|
631
631
|
|
|
632
632
|
/**
|
|
633
|
-
* Install verbatim
|
|
633
|
+
* Install verbatim native SKILL.md directories from skill-manifest.csv.
|
|
634
634
|
* Copies the entire source directory as-is into the IDE skill directory.
|
|
635
635
|
* The source SKILL.md is used directly — no frontmatter transformation or file generation.
|
|
636
636
|
* @param {string} projectDir - Project directory
|
|
@@ -146,13 +146,13 @@ When running any workflow:
|
|
|
146
146
|
transformWorkflowPath(workflowPath) {
|
|
147
147
|
let transformed = workflowPath;
|
|
148
148
|
|
|
149
|
-
if (workflowPath.includes('/src/bmm/')) {
|
|
150
|
-
const match = workflowPath.match(/\/src\/bmm\/(.+)/);
|
|
149
|
+
if (workflowPath.includes('/src/bmm-skills/')) {
|
|
150
|
+
const match = workflowPath.match(/\/src\/bmm-skills\/(.+)/);
|
|
151
151
|
if (match) {
|
|
152
152
|
transformed = `{project-root}/${this.bmadFolderName}/bmm/${match[1]}`;
|
|
153
153
|
}
|
|
154
|
-
} else if (workflowPath.includes('/src/core/')) {
|
|
155
|
-
const match = workflowPath.match(/\/src\/core\/(.+)/);
|
|
154
|
+
} else if (workflowPath.includes('/src/core-skills/')) {
|
|
155
|
+
const match = workflowPath.match(/\/src\/core-skills\/(.+)/);
|
|
156
156
|
if (match) {
|
|
157
157
|
transformed = `{project-root}/${this.bmadFolderName}/core/${match[1]}`;
|
|
158
158
|
}
|
|
@@ -187,7 +187,7 @@ class ModuleManager {
|
|
|
187
187
|
|
|
188
188
|
/**
|
|
189
189
|
* List all available modules (excluding core which is always installed)
|
|
190
|
-
* bmm is the only built-in module, directly under src/bmm
|
|
190
|
+
* bmm is the only built-in module, directly under src/bmm-skills
|
|
191
191
|
* All other modules come from external-official-modules.yaml
|
|
192
192
|
* @returns {Object} Object with modules array and customModules array
|
|
193
193
|
*/
|
|
@@ -195,10 +195,10 @@ class ModuleManager {
|
|
|
195
195
|
const modules = [];
|
|
196
196
|
const customModules = [];
|
|
197
197
|
|
|
198
|
-
// Add built-in bmm module (directly under src/bmm)
|
|
199
|
-
const bmmPath = getSourcePath('bmm');
|
|
198
|
+
// Add built-in bmm module (directly under src/bmm-skills)
|
|
199
|
+
const bmmPath = getSourcePath('bmm-skills');
|
|
200
200
|
if (await fs.pathExists(bmmPath)) {
|
|
201
|
-
const bmmInfo = await this.getModuleInfo(bmmPath, 'bmm', 'src/bmm');
|
|
201
|
+
const bmmInfo = await this.getModuleInfo(bmmPath, 'bmm', 'src/bmm-skills');
|
|
202
202
|
if (bmmInfo) {
|
|
203
203
|
modules.push(bmmInfo);
|
|
204
204
|
}
|
|
@@ -251,7 +251,8 @@ class ModuleManager {
|
|
|
251
251
|
}
|
|
252
252
|
|
|
253
253
|
// Mark as custom if it's using custom.yaml OR if it's outside src/bmm or src/core
|
|
254
|
-
const isCustomSource =
|
|
254
|
+
const isCustomSource =
|
|
255
|
+
sourceDescription !== 'src/bmm-skills' && sourceDescription !== 'src/core-skills' && sourceDescription !== 'src/modules';
|
|
255
256
|
const moduleInfo = {
|
|
256
257
|
id: defaultName,
|
|
257
258
|
path: modulePath,
|
|
@@ -300,9 +301,9 @@ class ModuleManager {
|
|
|
300
301
|
return this.customModulePaths.get(moduleCode);
|
|
301
302
|
}
|
|
302
303
|
|
|
303
|
-
// Check for built-in bmm module (directly under src/bmm)
|
|
304
|
+
// Check for built-in bmm module (directly under src/bmm-skills)
|
|
304
305
|
if (moduleCode === 'bmm') {
|
|
305
|
-
const bmmPath = getSourcePath('bmm');
|
|
306
|
+
const bmmPath = getSourcePath('bmm-skills');
|
|
306
307
|
if (await fs.pathExists(bmmPath)) {
|
|
307
308
|
return bmmPath;
|
|
308
309
|
}
|
|
@@ -1141,10 +1142,10 @@ class ModuleManager {
|
|
|
1141
1142
|
const projectRoot = path.dirname(bmadDir);
|
|
1142
1143
|
const emptyResult = { createdDirs: [], movedDirs: [], createdWdsFolders: [] };
|
|
1143
1144
|
|
|
1144
|
-
// Special handling for core module - it's in src/core not src/modules
|
|
1145
|
+
// Special handling for core module - it's in src/core-skills not src/modules
|
|
1145
1146
|
let sourcePath;
|
|
1146
1147
|
if (moduleName === 'core') {
|
|
1147
|
-
sourcePath = getSourcePath('core');
|
|
1148
|
+
sourcePath = getSourcePath('core-skills');
|
|
1148
1149
|
} else {
|
|
1149
1150
|
sourcePath = await this.findModuleSource(moduleName, { silent: true });
|
|
1150
1151
|
if (!sourcePath) {
|
|
@@ -16,7 +16,7 @@ function findProjectRoot(startPath = __dirname) {
|
|
|
16
16
|
try {
|
|
17
17
|
const pkg = fs.readJsonSync(packagePath);
|
|
18
18
|
// Check if this is the BMAD project
|
|
19
|
-
if (pkg.name === 'bmad-method' || fs.existsSync(path.join(currentPath, 'src', 'core'))) {
|
|
19
|
+
if (pkg.name === 'bmad-method' || fs.existsSync(path.join(currentPath, 'src', 'core-skills'))) {
|
|
20
20
|
return currentPath;
|
|
21
21
|
}
|
|
22
22
|
} catch {
|
|
@@ -24,8 +24,8 @@ function findProjectRoot(startPath = __dirname) {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
// Also check for src/core as a marker
|
|
28
|
-
if (fs.existsSync(path.join(currentPath, 'src', 'core', 'agents'))) {
|
|
27
|
+
// Also check for src/core-skills as a marker
|
|
28
|
+
if (fs.existsSync(path.join(currentPath, 'src', 'core-skills', 'agents'))) {
|
|
29
29
|
return currentPath;
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -61,10 +61,10 @@ function getSourcePath(...segments) {
|
|
|
61
61
|
*/
|
|
62
62
|
function getModulePath(moduleName, ...segments) {
|
|
63
63
|
if (moduleName === 'core') {
|
|
64
|
-
return getSourcePath('core', ...segments);
|
|
64
|
+
return getSourcePath('core-skills', ...segments);
|
|
65
65
|
}
|
|
66
66
|
if (moduleName === 'bmm') {
|
|
67
|
-
return getSourcePath('bmm', ...segments);
|
|
67
|
+
return getSourcePath('bmm-skills', ...segments);
|
|
68
68
|
}
|
|
69
69
|
return getSourcePath('modules', moduleName, ...segments);
|
|
70
70
|
}
|
|
@@ -495,7 +495,7 @@ class YamlXmlBuilder {
|
|
|
495
495
|
|
|
496
496
|
// Extract module from path (e.g., /path/to/modules/bmm/agents/pm.yaml -> bmm)
|
|
497
497
|
// or /path/to/bmad/bmm/agents/pm.yaml -> bmm
|
|
498
|
-
// or /path/to/src/bmm/agents/pm.yaml -> bmm
|
|
498
|
+
// or /path/to/src/bmm-skills/agents/pm.yaml -> bmm
|
|
499
499
|
let module = 'core'; // default to core
|
|
500
500
|
const pathParts = agentYamlPath.split(path.sep);
|
|
501
501
|
|
|
@@ -515,10 +515,12 @@ class YamlXmlBuilder {
|
|
|
515
515
|
module = potentialModule;
|
|
516
516
|
}
|
|
517
517
|
} else if (srcIndex !== -1 && pathParts[srcIndex + 1]) {
|
|
518
|
-
// Path contains /src/{module}/ (bmm and core are directly under src/)
|
|
518
|
+
// Path contains /src/{module}/ (bmm-skills and core-skills are directly under src/)
|
|
519
519
|
const potentialModule = pathParts[srcIndex + 1];
|
|
520
|
-
if (potentialModule === 'bmm'
|
|
521
|
-
module =
|
|
520
|
+
if (potentialModule === 'bmm-skills') {
|
|
521
|
+
module = 'bmm';
|
|
522
|
+
} else if (potentialModule === 'core-skills') {
|
|
523
|
+
module = 'core';
|
|
522
524
|
}
|
|
523
525
|
}
|
|
524
526
|
|
package/tools/skill-validator.md
CHANGED
|
@@ -2,14 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
An LLM-readable validation prompt for skills following the Agent Skills open standard.
|
|
4
4
|
|
|
5
|
+
## First Pass — Deterministic Checks
|
|
6
|
+
|
|
7
|
+
Before running inference-based validation, run the deterministic validator:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node tools/validate-skills.js --json path/to/skill-dir
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This checks 14 rules deterministically: SKILL-01, SKILL-02, SKILL-03, SKILL-04, SKILL-05, SKILL-06, SKILL-07, WF-01, WF-02, PATH-02, STEP-01, STEP-06, STEP-07, SEQ-02.
|
|
14
|
+
|
|
15
|
+
Review its JSON output. For any rule that produced **zero findings** in the first pass, **skip it** during inference-based validation below — it has already been verified. If a rule produced any findings, the inference validator should still review that rule (some rules like SKILL-04 and SKILL-06 have sub-checks that benefit from judgment). Focus your inference effort on the remaining rules that require judgment (PATH-01, PATH-03, PATH-04, PATH-05, WF-03, STEP-02, STEP-03, STEP-04, STEP-05, SEQ-01, REF-01, REF-02, REF-03).
|
|
16
|
+
|
|
5
17
|
## How to Use
|
|
6
18
|
|
|
7
19
|
1. You are given a **skill directory path** to validate.
|
|
8
|
-
2.
|
|
9
|
-
3.
|
|
10
|
-
4.
|
|
20
|
+
2. Run the deterministic first pass (see above) and note which rules passed.
|
|
21
|
+
3. Read every file in the skill directory recursively.
|
|
22
|
+
4. Apply every rule in the catalog below to every applicable file, **skipping rules that passed the deterministic first pass**.
|
|
23
|
+
5. Produce a findings report using the report template at the end, including any deterministic findings from the first pass.
|
|
11
24
|
|
|
12
|
-
If no findings are generated, the skill passes validation.
|
|
25
|
+
If no findings are generated (from either pass), the skill passes validation.
|
|
13
26
|
|
|
14
27
|
---
|
|
15
28
|
|
|
@@ -55,9 +68,9 @@ If no findings are generated, the skill passes validation.
|
|
|
55
68
|
|
|
56
69
|
- **Severity:** HIGH
|
|
57
70
|
- **Applies to:** `SKILL.md`
|
|
58
|
-
- **Rule:** The `name` value must use only lowercase letters, numbers, and hyphens
|
|
59
|
-
- **Detection:** Regex test: `^[a-z0-9]
|
|
60
|
-
- **Fix:** Rename to comply with the format.
|
|
71
|
+
- **Rule:** The `name` value must start with `bmad-`, use only lowercase letters, numbers, and single hyphens between segments.
|
|
72
|
+
- **Detection:** Regex test: `^bmad-[a-z0-9]+(-[a-z0-9]+)*$`.
|
|
73
|
+
- **Fix:** Rename to comply with the format (e.g., `bmad-my-skill`).
|
|
61
74
|
|
|
62
75
|
### SKILL-05 — `name` Must Match Directory Name
|
|
63
76
|
|
|
@@ -75,23 +88,33 @@ If no findings are generated, the skill passes validation.
|
|
|
75
88
|
- **Detection:** Check length. Look for trigger phrases like "Use when" or "Use if" — their absence suggests the description only says _what_ but not _when_.
|
|
76
89
|
- **Fix:** Append a "Use when..." clause to the description.
|
|
77
90
|
|
|
91
|
+
### SKILL-07 — SKILL.md Must Have Body Content
|
|
92
|
+
|
|
93
|
+
- **Severity:** HIGH
|
|
94
|
+
- **Applies to:** `SKILL.md`
|
|
95
|
+
- **Rule:** SKILL.md must have non-empty markdown body content after the frontmatter. The body provides L2 instructions — a SKILL.md with only frontmatter is incomplete.
|
|
96
|
+
- **Detection:** Extract content after the closing `---` frontmatter delimiter and check it is non-empty after trimming whitespace.
|
|
97
|
+
- **Fix:** Add markdown body with skill instructions after the closing `---`.
|
|
98
|
+
|
|
78
99
|
---
|
|
79
100
|
|
|
80
|
-
### WF-01 —
|
|
101
|
+
### WF-01 — Only SKILL.md May Have `name` in Frontmatter
|
|
81
102
|
|
|
82
103
|
- **Severity:** HIGH
|
|
83
|
-
- **Applies to:**
|
|
84
|
-
- **Rule:** The `name` field belongs only in `SKILL.md`.
|
|
85
|
-
- **Detection:** Parse frontmatter and check for `name:` key.
|
|
86
|
-
- **Fix:** Remove the `name:` line from
|
|
104
|
+
- **Applies to:** all `.md` files except `SKILL.md`
|
|
105
|
+
- **Rule:** The `name` field belongs only in `SKILL.md`. No other markdown file in the skill directory may have `name:` in its frontmatter.
|
|
106
|
+
- **Detection:** Parse frontmatter of every non-SKILL.md markdown file and check for `name:` key.
|
|
107
|
+
- **Fix:** Remove the `name:` line from the file's frontmatter.
|
|
108
|
+
- **Exception:** `bmad-agent-tech-writer` — has sub-skill files with intentional `name` fields (to be revisited).
|
|
87
109
|
|
|
88
|
-
### WF-02 —
|
|
110
|
+
### WF-02 — Only SKILL.md May Have `description` in Frontmatter
|
|
89
111
|
|
|
90
112
|
- **Severity:** HIGH
|
|
91
|
-
- **Applies to:**
|
|
92
|
-
- **Rule:** The `description` field belongs only in `SKILL.md`.
|
|
93
|
-
- **Detection:** Parse frontmatter and check for `description:` key.
|
|
94
|
-
- **Fix:** Remove the `description:` line from
|
|
113
|
+
- **Applies to:** all `.md` files except `SKILL.md`
|
|
114
|
+
- **Rule:** The `description` field belongs only in `SKILL.md`. No other markdown file in the skill directory may have `description:` in its frontmatter.
|
|
115
|
+
- **Detection:** Parse frontmatter of every non-SKILL.md markdown file and check for `description:` key.
|
|
116
|
+
- **Fix:** Remove the `description:` line from the file's frontmatter.
|
|
117
|
+
- **Exception:** `bmad-agent-tech-writer` — has sub-skill files with intentional `description` fields (to be revisited).
|
|
95
118
|
|
|
96
119
|
### WF-03 — workflow.md Frontmatter Variables Must Be Config or Runtime Only
|
|
97
120
|
|
|
@@ -103,6 +126,7 @@ If no findings are generated, the skill passes validation.
|
|
|
103
126
|
- A legitimate external path expression (must not violate PATH-05 — no paths into another skill's directory)
|
|
104
127
|
|
|
105
128
|
It must NOT be a path to a file within the skill directory (see PATH-04), nor a path into another skill's directory (see PATH-05).
|
|
129
|
+
|
|
106
130
|
- **Detection:** For each frontmatter variable, check if its value resolves to a file inside the skill (e.g., starts with `./`, `{installed_path}`, or is a bare relative path to a sibling file). If so, it is an intra-skill path variable. Also check if the value is a path into another skill's directory — if so, it violates PATH-05 and is not a legitimate external path.
|
|
107
131
|
- **Fix:** Remove the variable. Use a hardcoded relative path inline where the file is referenced.
|
|
108
132
|
|
|
@@ -294,11 +318,11 @@ When reporting findings, use this format:
|
|
|
294
318
|
## Summary
|
|
295
319
|
|
|
296
320
|
| Severity | Count |
|
|
297
|
-
|
|
298
|
-
| CRITICAL | N
|
|
299
|
-
| HIGH | N
|
|
300
|
-
| MEDIUM | N
|
|
301
|
-
| LOW | N
|
|
321
|
+
| -------- | ----- |
|
|
322
|
+
| CRITICAL | N |
|
|
323
|
+
| HIGH | N |
|
|
324
|
+
| MEDIUM | N |
|
|
325
|
+
| LOW | N |
|
|
302
326
|
|
|
303
327
|
## Findings
|
|
304
328
|
|
|
@@ -329,28 +353,34 @@ Quick-reference for the Agent Skills open standard.
|
|
|
329
353
|
For the full standard, see: [Agent Skills specification](https://agentskills.io/specification)
|
|
330
354
|
|
|
331
355
|
### Structure
|
|
356
|
+
|
|
332
357
|
- Every skill is a directory with `SKILL.md` as the required entrypoint
|
|
333
358
|
- YAML frontmatter between `---` markers provides metadata; markdown body provides instructions
|
|
334
359
|
- Supporting files (scripts, templates, references) live alongside SKILL.md
|
|
335
360
|
|
|
336
361
|
### Path resolution
|
|
362
|
+
|
|
337
363
|
- Relative file references resolve from the directory of the file that contains the reference, not from the skill root
|
|
338
364
|
- Example: from `branch-a/deep/next.md`, `./deeper/final.md` resolves to `branch-a/deep/deeper/final.md`
|
|
339
365
|
- Example: from `branch-a/deep/next.md`, `./branch-b/alt/leaf.md` incorrectly resolves to `branch-a/deep/branch-b/alt/leaf.md`
|
|
340
366
|
|
|
341
367
|
### Frontmatter fields (standard)
|
|
368
|
+
|
|
342
369
|
- `name`: lowercase letters, numbers, hyphens only; max 64 chars; no "anthropic" or "claude"
|
|
343
370
|
- `description`: required, max 1024 chars; should state what the skill does AND when to use it
|
|
344
371
|
|
|
345
372
|
### Progressive disclosure — three loading levels
|
|
373
|
+
|
|
346
374
|
- **L1 Metadata** (~100 tokens): `name` + `description` loaded at startup into system prompt
|
|
347
375
|
- **L2 Instructions** (<5k tokens): SKILL.md body loaded only when skill is triggered
|
|
348
376
|
- **L3 Resources** (unlimited): additional files + scripts loaded/executed on demand; script output enters context, script code does not
|
|
349
377
|
|
|
350
378
|
### Key design principle
|
|
379
|
+
|
|
351
380
|
- Skills are filesystem-based directories, not API payloads — Claude reads them via bash/file tools
|
|
352
381
|
- Keep SKILL.md focused; offload detailed reference to separate files
|
|
353
382
|
|
|
354
383
|
### Practical tips
|
|
384
|
+
|
|
355
385
|
- Keep SKILL.md under 500 lines
|
|
356
386
|
- `description` drives auto-discovery — use keywords users would naturally say
|