bmad-method 6.0.5-next.8 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/bmm/agents/analyst.agent.yaml +1 -1
- package/src/bmm/module-help.csv +1 -1
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +1 -1
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +1 -1
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +1 -1
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +1 -1
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +2 -2
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +2 -2
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +2 -2
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +2 -2
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +2 -2
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +2 -2
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +2 -2
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +2 -2
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +31 -13
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +1 -1
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +6 -2
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +1 -1
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +4 -0
- package/src/bmm/workflows/4-implementation/code-review/workflow.md +4 -7
- package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md +0 -4
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +1 -1
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +1 -1
- package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +1 -1
- package/src/core/module-help.csv +2 -2
- package/src/core/workflows/bmad-brainstorming/SKILL.md +6 -0
- package/src/core/workflows/bmad-brainstorming/bmad-skill-manifest.yaml +1 -0
- package/src/core/workflows/{brainstorming → bmad-brainstorming}/workflow.md +2 -5
- package/src/core/workflows/bmad-party-mode/SKILL.md +6 -0
- package/src/core/workflows/bmad-party-mode/bmad-skill-manifest.yaml +1 -0
- package/src/core/workflows/{party-mode → bmad-party-mode}/steps/step-03-graceful-exit.md +0 -1
- package/src/core/workflows/{party-mode → bmad-party-mode}/workflow.md +0 -4
- package/tools/cli/external-official-modules.yaml +18 -18
- package/tools/cli/installers/lib/core/installer.js +25 -8
- package/tools/cli/installers/lib/ide/_base-ide.js +0 -1
- package/tools/cli/installers/lib/ide/_config-driven.js +9 -4
- package/tools/cli/installers/lib/ide/manager.js +3 -3
- package/tools/cli/lib/agent/compiler.js +1 -1
- package/.augment/code_review_guidelines.yaml +0 -231
- package/.coderabbit.yaml +0 -85
- package/.github/CODE_OF_CONDUCT.md +0 -128
- package/.github/FUNDING.yaml +0 -15
- package/.github/ISSUE_TEMPLATE/bug-report.yaml +0 -124
- package/.github/ISSUE_TEMPLATE/config.yaml +0 -8
- package/.github/ISSUE_TEMPLATE/documentation.yaml +0 -55
- package/.github/ISSUE_TEMPLATE/feature-request.md +0 -22
- package/.github/ISSUE_TEMPLATE/issue.md +0 -32
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -13
- package/.github/scripts/discord-helpers.sh +0 -34
- package/.github/workflows/coderabbit-review.yaml +0 -22
- package/.github/workflows/discord.yaml +0 -90
- package/.github/workflows/docs.yaml +0 -64
- package/.github/workflows/publish.yaml +0 -133
- package/.github/workflows/quality.yaml +0 -116
- package/.husky/pre-commit +0 -20
- package/.markdownlint-cli2.yaml +0 -41
- package/.nvmrc +0 -1
- package/.prettierignore +0 -12
- package/.vscode/settings.json +0 -96
- package/CHANGELOG.md +0 -1785
- package/CNAME +0 -1
- package/CONTRIBUTING.md +0 -176
- package/CONTRIBUTORS.md +0 -32
- package/SECURITY.md +0 -85
- package/TRADEMARK.md +0 -55
- package/Wordmark.png +0 -0
- package/banner-bmad-method.png +0 -0
- package/docs/404.md +0 -9
- package/docs/_STYLE_GUIDE.md +0 -370
- package/docs/explanation/advanced-elicitation.md +0 -49
- package/docs/explanation/adversarial-review.md +0 -59
- package/docs/explanation/brainstorming.md +0 -33
- package/docs/explanation/established-projects-faq.md +0 -50
- package/docs/explanation/party-mode.md +0 -59
- package/docs/explanation/preventing-agent-conflicts.md +0 -112
- package/docs/explanation/project-context.md +0 -157
- package/docs/explanation/quick-dev-new-preview.md +0 -73
- package/docs/explanation/quick-flow.md +0 -77
- package/docs/explanation/why-solutioning-matters.md +0 -77
- package/docs/how-to/customize-bmad.md +0 -172
- package/docs/how-to/established-projects.md +0 -117
- package/docs/how-to/get-answers-about-bmad.md +0 -138
- package/docs/how-to/install-bmad.md +0 -116
- package/docs/how-to/non-interactive-installation.md +0 -171
- package/docs/how-to/project-context.md +0 -136
- package/docs/how-to/quick-fixes.md +0 -123
- package/docs/how-to/shard-large-documents.md +0 -78
- package/docs/how-to/upgrade-to-v6.md +0 -100
- package/docs/index.md +0 -60
- package/docs/reference/agents.md +0 -28
- package/docs/reference/commands.md +0 -145
- package/docs/reference/modules.md +0 -76
- package/docs/reference/testing.md +0 -106
- package/docs/reference/workflow-map.md +0 -89
- package/docs/roadmap.mdx +0 -136
- package/docs/tutorials/getting-started.md +0 -275
- package/docs/zh-cn/404.md +0 -9
- package/docs/zh-cn/_STYLE_GUIDE.md +0 -370
- package/docs/zh-cn/explanation/advanced-elicitation.md +0 -62
- package/docs/zh-cn/explanation/adversarial-review.md +0 -71
- package/docs/zh-cn/explanation/brainstorming.md +0 -43
- package/docs/zh-cn/explanation/established-projects-faq.md +0 -60
- package/docs/zh-cn/explanation/party-mode.md +0 -79
- package/docs/zh-cn/explanation/preventing-agent-conflicts.md +0 -137
- package/docs/zh-cn/explanation/project-context.md +0 -176
- package/docs/zh-cn/explanation/quick-flow.md +0 -93
- package/docs/zh-cn/explanation/why-solutioning-matters.md +0 -90
- package/docs/zh-cn/how-to/customize-bmad.md +0 -182
- package/docs/zh-cn/how-to/established-projects.md +0 -134
- package/docs/zh-cn/how-to/get-answers-about-bmad.md +0 -144
- package/docs/zh-cn/how-to/install-bmad.md +0 -105
- package/docs/zh-cn/how-to/non-interactive-installation.md +0 -181
- package/docs/zh-cn/how-to/project-context.md +0 -152
- package/docs/zh-cn/how-to/quick-fixes.md +0 -140
- package/docs/zh-cn/how-to/shard-large-documents.md +0 -86
- package/docs/zh-cn/how-to/upgrade-to-v6.md +0 -120
- package/docs/zh-cn/index.md +0 -69
- package/docs/zh-cn/reference/agents.md +0 -41
- package/docs/zh-cn/reference/commands.md +0 -166
- package/docs/zh-cn/reference/modules.md +0 -94
- package/docs/zh-cn/reference/testing.md +0 -122
- package/docs/zh-cn/reference/workflow-map.md +0 -104
- package/docs/zh-cn/roadmap.mdx +0 -152
- package/docs/zh-cn/tutorials/getting-started.md +0 -300
- package/eslint.config.mjs +0 -141
- package/prettier.config.mjs +0 -32
- package/src/core/workflows/brainstorming/bmad-skill-manifest.yaml +0 -3
- package/src/core/workflows/party-mode/bmad-skill-manifest.yaml +0 -3
- package/test/README.md +0 -295
- package/test/adversarial-review-tests/README.md +0 -56
- package/test/adversarial-review-tests/sample-content.md +0 -46
- package/test/adversarial-review-tests/test-cases.yaml +0 -103
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +0 -27
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +0 -30
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +0 -22
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +0 -20
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +0 -24
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +0 -31
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +0 -25
- package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +0 -26
- package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +0 -24
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +0 -27
- package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +0 -23
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +0 -24
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +0 -27
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +0 -27
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +0 -24
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +0 -29
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +0 -31
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +0 -28
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +0 -28
- package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +0 -5
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +0 -28
- package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +0 -11
- package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +0 -19
- package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +0 -18
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +0 -22
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +0 -27
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +0 -31
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +0 -22
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +0 -38
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +0 -23
- package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +0 -31
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +0 -34
- package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +0 -23
- package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +0 -24
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +0 -22
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +0 -28
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +0 -30
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +0 -24
- package/test/fixtures/file-refs-csv/invalid/all-empty-workflow.csv +0 -3
- package/test/fixtures/file-refs-csv/invalid/empty-data.csv +0 -1
- package/test/fixtures/file-refs-csv/invalid/no-workflow-column.csv +0 -3
- package/test/fixtures/file-refs-csv/invalid/unresolvable-vars.csv +0 -3
- package/test/fixtures/file-refs-csv/valid/bmm-style.csv +0 -3
- package/test/fixtures/file-refs-csv/valid/core-style.csv +0 -3
- package/test/fixtures/file-refs-csv/valid/minimal.csv +0 -2
- package/test/test-agent-schema.js +0 -387
- package/test/test-cli-integration.sh +0 -159
- package/test/test-file-refs-csv.js +0 -133
- package/test/test-install-to-bmad.js +0 -154
- package/test/test-installation-components.js +0 -1796
- package/test/test-rehype-plugins.mjs +0 -1050
- package/test/test-workflow-path-regex.js +0 -88
- package/test/unit-test-schema.js +0 -133
- package/tools/build-docs.mjs +0 -464
- package/tools/docs/_prompt-external-modules-page.md +0 -59
- package/tools/docs/fix-refs.md +0 -91
- package/tools/docs/native-skills-migration-checklist.md +0 -281
- package/tools/fix-doc-links.js +0 -285
- package/tools/validate-agent-schema.js +0 -110
- package/tools/validate-doc-links.js +0 -407
- package/tools/validate-file-refs.js +0 -556
- package/website/README.md +0 -75
- package/website/astro.config.mjs +0 -157
- package/website/public/diagrams/quick-dev-diagram.png +0 -0
- package/website/public/favicon.ico +0 -0
- package/website/public/img/bmad-dark.png +0 -0
- package/website/public/img/bmad-light.png +0 -0
- package/website/public/workflow-map-diagram.html +0 -361
- package/website/src/components/Banner.astro +0 -62
- package/website/src/components/Header.astro +0 -96
- package/website/src/components/MobileMenuFooter.astro +0 -33
- package/website/src/content/config.ts +0 -7
- package/website/src/content/i18n/zh-CN.json +0 -28
- package/website/src/lib/site-url.mjs +0 -25
- package/website/src/pages/404.astro +0 -11
- package/website/src/pages/robots.txt.ts +0 -48
- package/website/src/rehype-base-paths.js +0 -112
- package/website/src/rehype-markdown-links.js +0 -119
- package/website/src/styles/custom.css +0 -805
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/brain-methods.csv +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-01-session-setup.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-01b-continue.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-02a-user-selected.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-02b-ai-recommended.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-02c-random-selection.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-02d-progressive-flow.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-03-technique-execution.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/steps/step-04-idea-organization.md +0 -0
- /package/src/core/workflows/{brainstorming → bmad-brainstorming}/template.md +0 -0
- /package/src/core/workflows/{party-mode → bmad-party-mode}/steps/step-01-agent-loading.md +0 -0
- /package/src/core/workflows/{party-mode → bmad-party-mode}/steps/step-02-discussion-orchestration.md +0 -0
|
@@ -14,7 +14,7 @@ epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
|
|
14
14
|
|
|
15
15
|
# Task References
|
|
16
16
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
|
17
|
-
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
17
|
+
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
|
18
18
|
|
|
19
19
|
# Template References
|
|
20
20
|
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
|
@@ -154,20 +154,31 @@ Review the Architecture document for technical requirements that impact epic and
|
|
|
154
154
|
...
|
|
155
155
|
```
|
|
156
156
|
|
|
157
|
-
### 6. Extract
|
|
157
|
+
### 6. Extract UX Design Requirements (if UX document exists)
|
|
158
158
|
|
|
159
|
-
|
|
159
|
+
**IMPORTANT**: The UX Design Specification is a first-class input document, not supplementary material. Requirements from the UX spec must be extracted with the same rigor as PRD functional requirements.
|
|
160
|
+
|
|
161
|
+
Read the FULL UX Design document and extract ALL actionable work items:
|
|
160
162
|
|
|
161
163
|
**Look for:**
|
|
162
164
|
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
-
|
|
165
|
+
- **Design token work**: Color systems, spacing scales, typography tokens that need implementation or consolidation
|
|
166
|
+
- **Component proposals**: Reusable UI components identified in the UX spec (e.g., ConfirmActions, StatusMessage, EmptyState, FocusIndicator)
|
|
167
|
+
- **Visual standardization**: Semantic CSS classes, consistent color palette usage, design pattern consolidation
|
|
168
|
+
- **Accessibility requirements**: Contrast audit fixes, ARIA patterns, keyboard navigation, screen reader support
|
|
169
|
+
- **Responsive design requirements**: Breakpoints, layout adaptations, mobile-specific interactions
|
|
170
|
+
- **Interaction patterns**: Animations, transitions, loading states, error handling UX
|
|
171
|
+
- **Browser/device compatibility**: Target platforms, progressive enhancement requirements
|
|
172
|
+
|
|
173
|
+
**Format UX Design Requirements as a SEPARATE section (not merged into Additional Requirements):**
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
UX-DR1: [Actionable UX design requirement with clear implementation scope]
|
|
177
|
+
UX-DR2: [Actionable UX design requirement with clear implementation scope]
|
|
178
|
+
...
|
|
179
|
+
```
|
|
169
180
|
|
|
170
|
-
|
|
181
|
+
**🚨 CRITICAL**: Do NOT reduce UX requirements to vague summaries. Each UX-DR must be specific enough to generate a story with testable acceptance criteria. If the UX spec identifies 6 reusable components, list all 6 — not "create reusable components."
|
|
171
182
|
|
|
172
183
|
### 7. Load and Initialize Template
|
|
173
184
|
|
|
@@ -178,7 +189,8 @@ Load {epicsTemplate} and initialize {outputFile}:
|
|
|
178
189
|
3. Replace placeholder sections with extracted requirements:
|
|
179
190
|
- {{fr_list}} → extracted FRs
|
|
180
191
|
- {{nfr_list}} → extracted NFRs
|
|
181
|
-
- {{additional_requirements}} → extracted additional requirements
|
|
192
|
+
- {{additional_requirements}} → extracted additional requirements (from Architecture)
|
|
193
|
+
- {{ux_design_requirements}} → extracted UX Design Requirements (if UX document exists)
|
|
182
194
|
4. Leave {{requirements_coverage_map}} and {{epics_list}} as placeholders for now
|
|
183
195
|
|
|
184
196
|
### 8. Present Extracted Requirements
|
|
@@ -197,12 +209,17 @@ Display to user:
|
|
|
197
209
|
- Display key NFRs
|
|
198
210
|
- Ask if any constraints were missed
|
|
199
211
|
|
|
200
|
-
**Additional Requirements:**
|
|
212
|
+
**Additional Requirements (Architecture):**
|
|
201
213
|
|
|
202
214
|
- Summarize technical requirements from Architecture
|
|
203
|
-
- Summarize UX requirements (if applicable)
|
|
204
215
|
- Verify completeness
|
|
205
216
|
|
|
217
|
+
**UX Design Requirements (if applicable):**
|
|
218
|
+
|
|
219
|
+
- Show count of UX-DRs found
|
|
220
|
+
- Display key UX Design requirements (design tokens, components, accessibility)
|
|
221
|
+
- Verify each UX-DR is specific enough for story creation
|
|
222
|
+
|
|
206
223
|
### 9. Get User Confirmation
|
|
207
224
|
|
|
208
225
|
Ask: "Do these extracted requirements accurately represent what needs to be built? Any additions or corrections?"
|
|
@@ -216,6 +233,7 @@ After extraction and confirmation, update {outputFile} with:
|
|
|
216
233
|
- Complete FR list in {{fr_list}} section
|
|
217
234
|
- Complete NFR list in {{nfr_list}} section
|
|
218
235
|
- All additional requirements in {{additional_requirements}} section
|
|
236
|
+
- UX Design requirements in {{ux_design_requirements}} section (if UX document exists)
|
|
219
237
|
|
|
220
238
|
### 10. Present MENU OPTIONS
|
|
221
239
|
|
package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md
CHANGED
|
@@ -13,7 +13,7 @@ outputFile: '{planning_artifacts}/epics.md'
|
|
|
13
13
|
|
|
14
14
|
# Task References
|
|
15
15
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
|
16
|
-
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
16
|
+
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
|
17
17
|
|
|
18
18
|
# Template References
|
|
19
19
|
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md
CHANGED
|
@@ -13,7 +13,7 @@ outputFile: '{planning_artifacts}/epics.md'
|
|
|
13
13
|
|
|
14
14
|
# Task References
|
|
15
15
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
|
16
|
-
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
16
|
+
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
|
17
17
|
|
|
18
18
|
# Template References
|
|
19
19
|
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
|
@@ -66,9 +66,11 @@ Load {outputFile} and review:
|
|
|
66
66
|
|
|
67
67
|
- Approved epics_list from Step 2
|
|
68
68
|
- FR coverage map
|
|
69
|
-
- All requirements (FRs, NFRs, additional)
|
|
69
|
+
- All requirements (FRs, NFRs, additional, **UX Design requirements if present**)
|
|
70
70
|
- Template structure at the end of the document
|
|
71
71
|
|
|
72
|
+
**UX Design Integration**: If UX Design Requirements (UX-DRs) were extracted in Step 1, ensure they are visible during story creation. UX-DRs must be covered by stories — either within existing epics (e.g., accessibility fixes for a feature epic) or in a dedicated "Design System / UX Polish" epic.
|
|
73
|
+
|
|
72
74
|
### 2. Explain Story Creation Approach
|
|
73
75
|
|
|
74
76
|
**STORY CREATION GUIDELINES:**
|
|
@@ -146,6 +148,7 @@ Display:
|
|
|
146
148
|
- Epic goal statement
|
|
147
149
|
- FRs covered by this epic
|
|
148
150
|
- Any NFRs or additional requirements relevant
|
|
151
|
+
- Any UX Design Requirements (UX-DRs) relevant to this epic
|
|
149
152
|
|
|
150
153
|
#### B. Story Breakdown
|
|
151
154
|
|
|
@@ -207,6 +210,7 @@ After all epics and stories are generated:
|
|
|
207
210
|
- Verify the document follows template structure exactly
|
|
208
211
|
- Ensure all placeholders are replaced
|
|
209
212
|
- Confirm all FRs are covered
|
|
213
|
+
- **Confirm all UX Design Requirements (UX-DRs) are covered by at least one story** (if UX document was an input)
|
|
210
214
|
- Check formatting consistency
|
|
211
215
|
|
|
212
216
|
## TEMPLATE STRUCTURE COMPLIANCE:
|
package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md
CHANGED
|
@@ -12,7 +12,7 @@ outputFile: '{planning_artifacts}/epics.md'
|
|
|
12
12
|
|
|
13
13
|
# Task References
|
|
14
14
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
|
15
|
-
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
15
|
+
partyModeWorkflow: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
|
16
16
|
|
|
17
17
|
# Template References
|
|
18
18
|
epicsTemplate: '{workflow_path}/templates/epics-template.md'
|
|
@@ -13,7 +13,7 @@ description: 'Perform adversarial code review finding specific issues. Use when
|
|
|
13
13
|
- Generate all documents in {document_output_language}
|
|
14
14
|
- Your purpose: Validate story file claims against actual implementation
|
|
15
15
|
- Challenge everything: Are tasks marked [x] actually done? Are ACs really implemented?
|
|
16
|
-
-
|
|
16
|
+
- Be thorough and specific — find real issues, not manufactured ones. If the code is genuinely good after fixes, say so
|
|
17
17
|
- Read EVERY file in the File List - verify implementation against story requirements
|
|
18
18
|
- Tasks marked complete but not done = CRITICAL finding
|
|
19
19
|
- Acceptance Criteria not implemented = HIGH severity finding
|
|
@@ -136,17 +136,14 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
|
136
136
|
5. **Test Quality**: Are tests real assertions or placeholders?
|
|
137
137
|
</action>
|
|
138
138
|
|
|
139
|
-
<check if="total_issues_found
|
|
140
|
-
<
|
|
141
|
-
<action>Re-examine code for:
|
|
139
|
+
<check if="total_issues_found == 0">
|
|
140
|
+
<action>Double-check by re-examining code for:
|
|
142
141
|
- Edge cases and null handling
|
|
143
142
|
- Architecture violations
|
|
144
|
-
- Documentation gaps
|
|
145
143
|
- Integration issues
|
|
146
144
|
- Dependency problems
|
|
147
|
-
- Git commit message quality (if applicable)
|
|
148
145
|
</action>
|
|
149
|
-
<action>
|
|
146
|
+
<action>If still no issues found after thorough re-examination, that is a valid outcome — report a clean review</action>
|
|
150
147
|
</check>
|
|
151
148
|
</step>
|
|
152
149
|
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
---
|
|
2
2
|
main_config: '{project-root}/_bmad/bmm/config.yaml'
|
|
3
|
-
|
|
4
|
-
# Related workflows
|
|
5
|
-
advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
|
6
|
-
party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
7
3
|
---
|
|
8
4
|
|
|
9
5
|
# Quick Dev New Preview Workflow
|
|
@@ -40,7 +40,7 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
|
40
40
|
### Related Workflows
|
|
41
41
|
|
|
42
42
|
- `quick_spec_workflow` = `{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md`
|
|
43
|
-
- `party_mode_exec` = `{project-root}/_bmad/core/workflows/party-mode/workflow.md`
|
|
43
|
+
- `party_mode_exec` = `{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md`
|
|
44
44
|
- `advanced_elicitation` = `{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md`
|
|
45
45
|
|
|
46
46
|
---
|
|
@@ -5,7 +5,7 @@ main_config: '{project-root}/_bmad/bmm/config.yaml'
|
|
|
5
5
|
|
|
6
6
|
# Checkpoint handler paths
|
|
7
7
|
advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md'
|
|
8
|
-
party_mode_exec: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
|
8
|
+
party_mode_exec: '{project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md'
|
|
9
9
|
quick_dev_workflow: '{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md'
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -30,7 +30,7 @@ This step will generate content and present choices for each rule category:
|
|
|
30
30
|
## PROTOCOL INTEGRATION:
|
|
31
31
|
|
|
32
32
|
- When 'A' selected: Execute {project-root}/_bmad/core/workflows/advanced-elicitation/workflow.md
|
|
33
|
-
- When 'P' selected: Execute {project-root}/_bmad/core/workflows/party-mode
|
|
33
|
+
- When 'P' selected: Execute {project-root}/_bmad/core/workflows/bmad-party-mode/workflow.md
|
|
34
34
|
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
|
|
35
35
|
- User accepts/rejects protocol changes before proceeding
|
|
36
36
|
|
package/src/core/module-help.csv
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs
|
|
2
|
-
core,anytime,Brainstorming,BSP,,
|
|
3
|
-
core,anytime,Party Mode,PM,,
|
|
2
|
+
core,anytime,Brainstorming,BSP,,skill:bmad-brainstorming,bmad-brainstorming,false,analyst,,"Generate diverse ideas through interactive techniques. Use early in ideation phase or when stuck generating ideas.",{output_folder}/brainstorming/brainstorming-session-{{date}}.md,,
|
|
3
|
+
core,anytime,Party Mode,PM,,skill:bmad-party-mode,bmad-party-mode,false,party-mode facilitator,,"Orchestrate multi-agent discussions. Use when you need multiple agent perspectives or want agents to collaborate.",,
|
|
4
4
|
core,anytime,bmad-help,BH,,skill:bmad-help,bmad-help,false,,,"Get unstuck by showing what workflow steps come next or answering BMad Method questions.",,
|
|
5
5
|
core,anytime,Index Docs,ID,,skill:bmad-index-docs,bmad-index-docs,false,,,"Create lightweight index for quick LLM scanning. Use when LLM needs to understand available docs without loading everything.",,
|
|
6
6
|
core,anytime,Shard Document,SD,,skill:bmad-shard-doc,bmad-shard-doc,false,,,"Split large documents into smaller files by sections. Use when doc becomes too large (>500 lines) to manage effectively.",,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bmad-brainstorming
|
|
3
|
+
description: 'Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods. Use when the user says help me brainstorm or help me ideate.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Follow the instructions in [workflow.md](workflow.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
type: skill
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: brainstorming
|
|
3
|
-
description: 'Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods. Use when the user says help me brainstorm or help me ideate.'
|
|
4
2
|
context_file: '' # Optional context file path for project-specific guidance
|
|
5
3
|
---
|
|
6
4
|
|
|
@@ -42,9 +40,8 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
|
|
|
42
40
|
|
|
43
41
|
### Paths
|
|
44
42
|
|
|
45
|
-
- `
|
|
46
|
-
- `
|
|
47
|
-
- `brain_techniques_path` = `{installed_path}/brain-methods.csv`
|
|
43
|
+
- `template_path` = `./template.md`
|
|
44
|
+
- `brain_techniques_path` = `./brain-methods.csv`
|
|
48
45
|
- `brainstorming_session_output_file` = `{output_folder}/brainstorming/brainstorming-session-{{date}}-{{time}}.md` (evaluated once at workflow start)
|
|
49
46
|
|
|
50
47
|
All steps MUST reference `{brainstorming_session_output_file}` instead of the full path pattern.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
type: skill
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: party-mode
|
|
3
|
-
description: 'Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations. Use when user requests party mode.'
|
|
4
2
|
---
|
|
5
3
|
|
|
6
4
|
# Party Mode Workflow
|
|
@@ -36,7 +34,6 @@ Load config from `{project-root}/_bmad/core/config.yaml` and resolve:
|
|
|
36
34
|
|
|
37
35
|
### Paths
|
|
38
36
|
|
|
39
|
-
- `installed_path` = `{project-root}/_bmad/core/workflows/party-mode`
|
|
40
37
|
- `agent_manifest_path` = `{project-root}/_bmad/_config/agent-manifest.csv`
|
|
41
38
|
- `standalone_mode` = `true` (party mode is an interactive workflow)
|
|
42
39
|
|
|
@@ -115,7 +112,6 @@ Load step: `./steps/step-02-discussion-orchestration.md`
|
|
|
115
112
|
```yaml
|
|
116
113
|
---
|
|
117
114
|
stepsCompleted: [1]
|
|
118
|
-
workflowType: 'party-mode'
|
|
119
115
|
user_name: '{{user_name}}'
|
|
120
116
|
date: '{{date}}'
|
|
121
117
|
agents_loaded: true
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
# allowing us to keep the source of these projects in separate repos.
|
|
3
3
|
|
|
4
4
|
modules:
|
|
5
|
-
bmad-builder:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
# bmad-builder:
|
|
6
|
+
# url: https://github.com/bmad-code-org/bmad-builder
|
|
7
|
+
# module-definition: src/module.yaml
|
|
8
|
+
# code: bmb
|
|
9
|
+
# name: "BMad Builder"
|
|
10
|
+
# description: "Agent, Workflow and Module Builder"
|
|
11
|
+
# defaultSelected: false
|
|
12
|
+
# type: bmad-org
|
|
13
|
+
# npmPackage: bmad-builder
|
|
14
14
|
|
|
15
15
|
bmad-creative-intelligence-suite:
|
|
16
16
|
url: https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite
|
|
@@ -42,12 +42,12 @@ modules:
|
|
|
42
42
|
type: bmad-org
|
|
43
43
|
npmPackage: bmad-method-test-architecture-enterprise
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
whiteport-design-studio:
|
|
46
|
+
url: https://github.com/bmad-code-org/bmad-method-wds-expansion
|
|
47
|
+
module-definition: src/module.yaml
|
|
48
|
+
code: wds
|
|
49
|
+
name: "Whiteport Design Studio (For UX Professionals)"
|
|
50
|
+
description: "Whiteport Design Studio (For UX Professionals)"
|
|
51
|
+
defaultSelected: false
|
|
52
|
+
type: community
|
|
53
|
+
npmPackage: bmad-method-wds-expansion
|
|
@@ -1153,12 +1153,6 @@ class Installer {
|
|
|
1153
1153
|
preservedModules: modulesForCsvPreserve,
|
|
1154
1154
|
});
|
|
1155
1155
|
|
|
1156
|
-
addResult(
|
|
1157
|
-
'Manifests',
|
|
1158
|
-
'ok',
|
|
1159
|
-
`${manifestStats.workflows} workflows, ${manifestStats.agents} agents, ${manifestStats.tasks} tasks, ${manifestStats.tools} tools`,
|
|
1160
|
-
);
|
|
1161
|
-
|
|
1162
1156
|
// Merge help catalogs
|
|
1163
1157
|
message('Generating help catalog...');
|
|
1164
1158
|
await this.mergeModuleHelpCatalogs(bmadDir);
|
|
@@ -1379,10 +1373,27 @@ class Installer {
|
|
|
1379
1373
|
*/
|
|
1380
1374
|
async renderInstallSummary(results, context = {}) {
|
|
1381
1375
|
const color = await prompts.getColor();
|
|
1376
|
+
const selectedIdes = new Set((context.ides || []).map((ide) => String(ide).toLowerCase()));
|
|
1382
1377
|
|
|
1383
1378
|
// Build step lines with status indicators
|
|
1384
1379
|
const lines = [];
|
|
1385
1380
|
for (const r of results) {
|
|
1381
|
+
let stepLabel = null;
|
|
1382
|
+
|
|
1383
|
+
if (r.status !== 'ok') {
|
|
1384
|
+
stepLabel = r.step;
|
|
1385
|
+
} else if (r.step === 'Core') {
|
|
1386
|
+
stepLabel = 'BMAD';
|
|
1387
|
+
} else if (r.step.startsWith('Module: ')) {
|
|
1388
|
+
stepLabel = r.step;
|
|
1389
|
+
} else if (selectedIdes.has(String(r.step).toLowerCase())) {
|
|
1390
|
+
stepLabel = r.step;
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
if (!stepLabel) {
|
|
1394
|
+
continue;
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1386
1397
|
let icon;
|
|
1387
1398
|
if (r.status === 'ok') {
|
|
1388
1399
|
icon = color.green('\u2713');
|
|
@@ -1392,7 +1403,11 @@ class Installer {
|
|
|
1392
1403
|
icon = color.red('\u2717');
|
|
1393
1404
|
}
|
|
1394
1405
|
const detail = r.detail ? color.dim(` (${r.detail})`) : '';
|
|
1395
|
-
lines.push(` ${icon} ${
|
|
1406
|
+
lines.push(` ${icon} ${stepLabel}${detail}`);
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
if ((context.ides || []).length === 0) {
|
|
1410
|
+
lines.push(` ${color.green('\u2713')} No IDE selected ${color.dim('(installed in _bmad only)')}`);
|
|
1396
1411
|
}
|
|
1397
1412
|
|
|
1398
1413
|
// Context and warnings
|
|
@@ -1415,8 +1430,10 @@ class Installer {
|
|
|
1415
1430
|
` Join our Discord: ${color.dim('https://discord.gg/gk8jAdXWmj')}`,
|
|
1416
1431
|
` Star us on GitHub: ${color.dim('https://github.com/bmad-code-org/BMAD-METHOD/')}`,
|
|
1417
1432
|
` Subscribe on YouTube: ${color.dim('https://www.youtube.com/@BMadCode')}`,
|
|
1418
|
-
` Invoke the ${color.cyan('bmad-help')} skill in your IDE Agent to get started`,
|
|
1419
1433
|
);
|
|
1434
|
+
if (context.ides && context.ides.length > 0) {
|
|
1435
|
+
lines.push(` Invoke the ${color.cyan('bmad-help')} skill in your IDE Agent to get started`);
|
|
1436
|
+
}
|
|
1420
1437
|
|
|
1421
1438
|
await prompts.note(lines.join('\n'), 'BMAD is ready to use!');
|
|
1422
1439
|
}
|
|
@@ -349,7 +349,6 @@ class BaseIdeSetup {
|
|
|
349
349
|
} else if (entry.isFile() && entry.name === 'workflow.md') {
|
|
350
350
|
// Read workflow.md frontmatter to get name and standalone property
|
|
351
351
|
try {
|
|
352
|
-
const yaml = require('yaml');
|
|
353
352
|
const content = await fs.readFile(fullPath, 'utf8');
|
|
354
353
|
const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
355
354
|
if (!frontmatterMatch) continue;
|
|
@@ -129,6 +129,7 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
|
|
|
129
129
|
|
|
130
130
|
const selectedModules = options.selectedModules || [];
|
|
131
131
|
const results = { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 };
|
|
132
|
+
this.skillWriteTracker = config.skill_format ? new Set() : null;
|
|
132
133
|
|
|
133
134
|
// Install standard artifacts (agents, workflows, tasks, tools)
|
|
134
135
|
if (!skipStandardArtifacts) {
|
|
@@ -159,9 +160,11 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
|
|
|
159
160
|
// Install verbatim skills (type: skill)
|
|
160
161
|
if (config.skill_format) {
|
|
161
162
|
results.skills = await this.installVerbatimSkills(projectDir, bmadDir, targetPath, config);
|
|
163
|
+
results.skillDirectories = this.skillWriteTracker ? this.skillWriteTracker.size : 0;
|
|
162
164
|
}
|
|
163
165
|
|
|
164
166
|
await this.printSummary(results, target_dir, options);
|
|
167
|
+
this.skillWriteTracker = null;
|
|
165
168
|
return { success: true, results };
|
|
166
169
|
}
|
|
167
170
|
|
|
@@ -495,6 +498,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|
|
495
498
|
// Create skill directory
|
|
496
499
|
const skillDir = path.join(targetPath, skillName);
|
|
497
500
|
await this.ensureDir(skillDir);
|
|
501
|
+
this.skillWriteTracker?.add(skillName);
|
|
498
502
|
|
|
499
503
|
// Transform content: rewrite frontmatter for skills format
|
|
500
504
|
const skillContent = this.transformToSkillFormat(content, skillName);
|
|
@@ -667,6 +671,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|
|
667
671
|
const skillDir = path.join(targetPath, canonicalId);
|
|
668
672
|
await fs.remove(skillDir);
|
|
669
673
|
await fs.ensureDir(skillDir);
|
|
674
|
+
this.skillWriteTracker?.add(canonicalId);
|
|
670
675
|
|
|
671
676
|
// Copy all skill files, filtering OS/editor artifacts recursively
|
|
672
677
|
const skipPatterns = new Set(['.DS_Store', 'Thumbs.db', 'desktop.ini']);
|
|
@@ -707,11 +712,11 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|
|
707
712
|
async printSummary(results, targetDir, options = {}) {
|
|
708
713
|
if (options.silent) return;
|
|
709
714
|
const parts = [];
|
|
715
|
+
const totalDirs =
|
|
716
|
+
results.skillDirectories || (results.workflows || 0) + (results.tasks || 0) + (results.tools || 0) + (results.skills || 0);
|
|
717
|
+
const skillCount = totalDirs - (results.agents || 0);
|
|
718
|
+
if (skillCount > 0) parts.push(`${skillCount} skills`);
|
|
710
719
|
if (results.agents > 0) parts.push(`${results.agents} agents`);
|
|
711
|
-
if (results.workflows > 0) parts.push(`${results.workflows} workflows`);
|
|
712
|
-
if (results.tasks > 0) parts.push(`${results.tasks} tasks`);
|
|
713
|
-
if (results.tools > 0) parts.push(`${results.tools} tools`);
|
|
714
|
-
if (results.skills > 0) parts.push(`${results.skills} skills`);
|
|
715
720
|
await prompts.log.success(`${this.name} configured: ${parts.join(', ')} → ${targetDir}`);
|
|
716
721
|
}
|
|
717
722
|
|
|
@@ -162,10 +162,10 @@ class IdeManager {
|
|
|
162
162
|
// Config-driven handlers return { success, results: { agents, workflows, tasks, tools } }
|
|
163
163
|
const r = handlerResult.results;
|
|
164
164
|
const parts = [];
|
|
165
|
+
const totalDirs = r.skillDirectories || (r.workflows || 0) + (r.tasks || 0) + (r.tools || 0) + (r.skills || 0);
|
|
166
|
+
const skillCount = totalDirs - (r.agents || 0);
|
|
167
|
+
if (skillCount > 0) parts.push(`${skillCount} skills`);
|
|
165
168
|
if (r.agents > 0) parts.push(`${r.agents} agents`);
|
|
166
|
-
if (r.workflows > 0) parts.push(`${r.workflows} workflows`);
|
|
167
|
-
if (r.tasks > 0) parts.push(`${r.tasks} tasks`);
|
|
168
|
-
if (r.tools > 0) parts.push(`${r.tools} tools`);
|
|
169
169
|
detail = parts.join(', ');
|
|
170
170
|
}
|
|
171
171
|
// Propagate handler's success status (default true for backward compat)
|
|
@@ -157,7 +157,7 @@ function buildMenuXml(menuItems) {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
xml += ` <item cmd="PM or fuzzy match on party-mode" exec="
|
|
160
|
+
xml += ` <item cmd="PM or fuzzy match on party-mode" exec="skill:bmad-party-mode">[PM] Start Party Mode</item>\n`;
|
|
161
161
|
xml += ` <item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>\n`;
|
|
162
162
|
|
|
163
163
|
xml += ' </menu>\n';
|