bmad-plus 0.12.2 → 0.13.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/CHANGELOG.md +25 -0
- package/README.md +36 -8
- package/package.json +6 -4
- package/readme-international/README.de.md +37 -8
- package/readme-international/README.es.md +38 -9
- package/readme-international/README.fr.md +37 -8
- package/src/bmad-plus/agents/agent-orchestrator/SKILL.md +2 -0
- package/src/bmad-plus/module.yaml +270 -220
- package/src/bmad-plus/packs/pack-seo/scripts/seo_apis.py +8 -8
- package/src/bmad-plus/packs/pack-seo/scripts/seo_fetch.py +1 -2
- package/src/bmad-plus/packs/pack-seo/scripts/seo_report.py +0 -1
- package/src/bmad-plus/skills/bmad-plus-autopilot/SKILL.md +1 -1
- package/tools/bmad-plus-npx.js +4 -2
- package/tools/build/adapters.config.js +60 -51
- package/tools/build/check-counts.js +52 -54
- package/tools/build/check-install-contract.js +298 -0
- package/tools/build/generate-adapters.js +252 -56
- package/tools/build/generate.js +187 -10
- package/tools/build/generated-adapters/.codex/AGENTS.md +20 -7
- package/tools/build/generated-adapters/.cursor/rules/bmad-plus.mdc +20 -7
- package/tools/build/generated-adapters/.opencode/AGENTS.md +20 -7
- package/tools/build/generated-adapters/AGENTS.md +20 -7
- package/tools/build/generated-adapters/CLAUDE.md +20 -7
- package/tools/build/generated-adapters/CONVENTIONS.md +20 -7
- package/tools/build/generated-adapters/GEMINI.md +20 -7
- package/tools/build/module.template.yaml +82 -0
- package/tools/cli/bmad-plus-cli.js +16 -1
- package/tools/cli/commands/doctor.js +12 -40
- package/tools/cli/commands/install.js +108 -163
- package/tools/cli/commands/uninstall.js +173 -65
- package/tools/cli/commands/update-check.js +31 -0
- package/tools/cli/commands/update-policy.js +39 -0
- package/tools/cli/commands/update.js +102 -113
- package/tools/cli/i18n.js +60 -0
- package/tools/cli/lib/ide-config.js +4 -261
- package/tools/cli/lib/install-manifest.js +17 -0
- package/tools/cli/lib/installed-adapters.js +89 -0
- package/tools/cli/lib/npm-runner.js +177 -0
- package/tools/cli/lib/pack-copy.js +62 -66
- package/tools/cli/lib/packs.js +437 -3
- package/tools/cli/lib/update-check.js +153 -0
- package/tools/cli/lib/update-dispatch.js +182 -0
- package/tools/cli/lib/update-policy.js +90 -0
- package/tools/cli/lib/update-transaction.js +334 -0
|
@@ -1,28 +1,114 @@
|
|
|
1
|
+
# AUTO-GENERATED from registry.yaml + tools/build/module.template.yaml — DO NOT EDIT.
|
|
1
2
|
code: bmad-plus
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
3
|
+
name: BMAD+ Streamlined AI-Driven Development
|
|
4
|
+
description: Augmented BMAD framework with multi-role agents, autopilot mode, and parallel execution
|
|
4
5
|
default_selected: true
|
|
5
|
-
|
|
6
|
-
# Compatibility with upstream
|
|
7
6
|
extends: bmm
|
|
8
7
|
compatibility:
|
|
9
|
-
min_core_version:
|
|
10
|
-
max_core_version:
|
|
11
|
-
replaces_modules:
|
|
8
|
+
min_core_version: 6.0.0
|
|
9
|
+
max_core_version: 7.0.0
|
|
10
|
+
replaces_modules:
|
|
11
|
+
- bmm
|
|
12
12
|
keeps_core_skills: true
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
install_packs:
|
|
14
|
+
prompt:
|
|
15
|
+
- Quels packs additionnels souhaites-tu installer ?
|
|
16
|
+
- Core est toujours inclus.
|
|
17
|
+
default: none
|
|
18
|
+
result: '{value}'
|
|
19
|
+
multi-select:
|
|
20
|
+
- value: osint
|
|
21
|
+
label: 🔍 OSINT Intelligence — Investigation & scraping (55+ Apify actors, 7 APIs).
|
|
22
|
+
- value: maker
|
|
23
|
+
label: 🧬 Agent Creator — Design, build, validate, and package new BMAD+-compatible agents.
|
|
24
|
+
- value: shield
|
|
25
|
+
label: 🛡️ Shield — GRC Compliance — 27 compliance agents + 11 workflows across 26+ frameworks.
|
|
26
|
+
- value: seo
|
|
27
|
+
label: 🔍 SEO Audit 360 — 3 agents (Scout, Chief, Judge) + 6-phase audit + PageSpeed loop.
|
|
28
|
+
- value: memory
|
|
29
|
+
label: 🧠 Memory — Persistent Brain — Cross-session memory + project scanner + Karpathy guardrails.
|
|
30
|
+
- value: dev-studio
|
|
31
|
+
label: >-
|
|
32
|
+
🏗️ Dev Studio — Full SDLC — 6 specialized agents + 38 workflows: Analysis → Planning → Architecture →
|
|
33
|
+
Implementation → Review.
|
|
34
|
+
- value: backup
|
|
35
|
+
label: 🗂️ Universal Backup — Timestamped ZIP backup with smart exclusions.
|
|
36
|
+
- value: animated
|
|
37
|
+
label: 🎬 Animated Website — Luxury scroll-driven website from video.
|
|
38
|
+
- value: all
|
|
39
|
+
label: Tout installer
|
|
40
|
+
- value: none
|
|
41
|
+
label: Aucun — Core uniquement
|
|
42
|
+
project_name:
|
|
43
|
+
prompt: What is your project called?
|
|
44
|
+
default: '{directory_name}'
|
|
45
|
+
result: '{value}'
|
|
46
|
+
user_skill_level:
|
|
47
|
+
prompt:
|
|
48
|
+
- What is your development experience level?
|
|
49
|
+
- This affects how agents explain concepts in chat.
|
|
50
|
+
default: expert
|
|
51
|
+
result: '{value}'
|
|
52
|
+
single-select:
|
|
53
|
+
- value: beginner
|
|
54
|
+
label: Beginner - Explain things clearly
|
|
55
|
+
- value: intermediate
|
|
56
|
+
label: Intermediate - Balance detail with speed
|
|
57
|
+
- value: expert
|
|
58
|
+
label: Expert - Be direct and technical
|
|
59
|
+
execution_mode:
|
|
60
|
+
prompt:
|
|
61
|
+
- How do you want to work with BMAD+ agents?
|
|
62
|
+
- 'Manual: you call agents when needed. Autopilot: orchestrator manages everything.'
|
|
63
|
+
default: manual
|
|
64
|
+
result: '{value}'
|
|
65
|
+
single-select:
|
|
66
|
+
- value: manual
|
|
67
|
+
label: Manual - Call agents yourself
|
|
68
|
+
- value: autopilot
|
|
69
|
+
label: Autopilot - Orchestrator manages the pipeline
|
|
70
|
+
- value: hybrid
|
|
71
|
+
label: Hybrid - Autopilot with frequent checkpoints
|
|
72
|
+
auto_role_activation:
|
|
73
|
+
prompt: Enable intelligent auto-activation of agent roles based on context?
|
|
74
|
+
default: 'true'
|
|
75
|
+
result: '{value}'
|
|
76
|
+
single-select:
|
|
77
|
+
- value: 'true'
|
|
78
|
+
label: Yes - Agents auto-switch roles when context demands it
|
|
79
|
+
- value: 'false'
|
|
80
|
+
label: No - Only switch roles when I explicitly ask
|
|
81
|
+
parallel_execution:
|
|
82
|
+
prompt: Enable parallel multi-agent execution for independent tasks?
|
|
83
|
+
default: 'true'
|
|
84
|
+
result: '{value}'
|
|
85
|
+
single-select:
|
|
86
|
+
- value: 'true'
|
|
87
|
+
label: Yes - Run independent tasks in parallel
|
|
88
|
+
- value: 'false'
|
|
89
|
+
label: No - Sequential execution only
|
|
90
|
+
planning_artifacts:
|
|
91
|
+
prompt: Where should planning artifacts be stored? (Discovery phase output)
|
|
92
|
+
default: '{output_folder}/discovery'
|
|
93
|
+
result: '{project-root}/{value}'
|
|
94
|
+
implementation_artifacts:
|
|
95
|
+
prompt: Where should implementation artifacts be stored? (Build & Ship phase output)
|
|
96
|
+
default: '{output_folder}/build'
|
|
97
|
+
result: '{project-root}/{value}'
|
|
98
|
+
project_knowledge:
|
|
99
|
+
prompt: Where should long-term project knowledge be stored?
|
|
100
|
+
default: docs
|
|
101
|
+
result: '{project-root}/{value}'
|
|
102
|
+
directories:
|
|
103
|
+
- '{planning_artifacts}'
|
|
104
|
+
- '{implementation_artifacts}'
|
|
105
|
+
- '{project_knowledge}'
|
|
20
106
|
packs:
|
|
21
107
|
core:
|
|
22
|
-
name:
|
|
23
|
-
icon:
|
|
24
|
-
description:
|
|
25
|
-
required: true
|
|
108
|
+
name: Core Development
|
|
109
|
+
icon: ⚙️
|
|
110
|
+
description: Multi-role agents for the full development lifecycle.
|
|
111
|
+
required: true
|
|
26
112
|
agents:
|
|
27
113
|
- agent-strategist
|
|
28
114
|
- agent-architect-dev
|
|
@@ -34,17 +120,15 @@ packs:
|
|
|
34
120
|
- bmad-plus-sync
|
|
35
121
|
data:
|
|
36
122
|
- role-triggers.yaml
|
|
37
|
-
|
|
38
123
|
osint:
|
|
39
|
-
name:
|
|
40
|
-
icon:
|
|
41
|
-
description:
|
|
124
|
+
name: OSINT Intelligence
|
|
125
|
+
icon: 🔍
|
|
126
|
+
description: Investigation & scraping (55+ Apify actors, 7 APIs).
|
|
42
127
|
required: false
|
|
43
128
|
agents:
|
|
44
129
|
- agent-shadow
|
|
45
|
-
skills:
|
|
46
|
-
|
|
47
|
-
external_package: "osint-agent-package"
|
|
130
|
+
skills: []
|
|
131
|
+
external_package: osint-agent-package
|
|
48
132
|
required_keys:
|
|
49
133
|
- APIFY_API_TOKEN
|
|
50
134
|
optional_keys:
|
|
@@ -52,232 +136,198 @@ packs:
|
|
|
52
136
|
- EXA_API_KEY
|
|
53
137
|
- TAVILY_API_KEY
|
|
54
138
|
- JINA_API_KEY
|
|
55
|
-
|
|
56
139
|
maker:
|
|
57
|
-
name:
|
|
58
|
-
icon:
|
|
59
|
-
description:
|
|
140
|
+
name: Agent Creator
|
|
141
|
+
icon: 🧬
|
|
142
|
+
description: Design, build, validate, and package new BMAD+-compatible agents.
|
|
60
143
|
required: false
|
|
61
144
|
agents:
|
|
62
145
|
- agent-maker
|
|
63
146
|
skills: []
|
|
64
|
-
|
|
147
|
+
data: []
|
|
65
148
|
shield:
|
|
66
|
-
name:
|
|
67
|
-
icon:
|
|
68
|
-
description:
|
|
149
|
+
name: Shield — GRC Compliance
|
|
150
|
+
icon: 🛡️
|
|
151
|
+
description: 27 compliance agents + 11 workflows across 26+ frameworks.
|
|
69
152
|
required: false
|
|
70
|
-
|
|
71
|
-
|
|
153
|
+
agents:
|
|
154
|
+
- shield-orchestrator
|
|
155
|
+
skills: []
|
|
72
156
|
orchestrator: shield-orchestrator
|
|
73
157
|
categories:
|
|
74
158
|
- id: data-privacy
|
|
75
|
-
name:
|
|
76
|
-
|
|
77
|
-
|
|
159
|
+
name: Data Privacy
|
|
160
|
+
agents:
|
|
161
|
+
- gdpr-agent
|
|
162
|
+
- ccpa-agent
|
|
163
|
+
- lgpd-agent
|
|
164
|
+
- dpdpa-agent
|
|
165
|
+
- iso27701-agent
|
|
78
166
|
- id: cybersecurity
|
|
79
|
-
name:
|
|
80
|
-
|
|
81
|
-
|
|
167
|
+
name: Cybersecurity
|
|
168
|
+
agents:
|
|
169
|
+
- iso27001-agent
|
|
170
|
+
- nist-csf-agent
|
|
171
|
+
- nist-800-53-agent
|
|
172
|
+
- cis-controls-agent
|
|
173
|
+
- nis2-agent
|
|
174
|
+
- ism-agent
|
|
82
175
|
- id: industry-compliance
|
|
83
|
-
name:
|
|
84
|
-
|
|
85
|
-
|
|
176
|
+
name: Industry Compliance
|
|
177
|
+
agents:
|
|
178
|
+
- soc2-agent
|
|
179
|
+
- pci-dss-agent
|
|
180
|
+
- hipaa-agent
|
|
181
|
+
- swift-csp-agent
|
|
182
|
+
- dora-agent
|
|
183
|
+
- fedramp-agent
|
|
86
184
|
- id: defense-export
|
|
87
|
-
name:
|
|
88
|
-
|
|
89
|
-
|
|
185
|
+
name: Defense & Export Control
|
|
186
|
+
agents:
|
|
187
|
+
- cmmc-agent
|
|
188
|
+
- itar-agent
|
|
189
|
+
- ear-agent
|
|
190
|
+
- tsa-agent
|
|
90
191
|
- id: ai-governance
|
|
91
|
-
name:
|
|
92
|
-
|
|
93
|
-
|
|
192
|
+
name: AI Governance
|
|
193
|
+
agents:
|
|
194
|
+
- eu-ai-act-agent
|
|
195
|
+
- iso42001-agent
|
|
196
|
+
- nist-ai-rmf-agent
|
|
94
197
|
- id: accessibility-esg
|
|
95
|
-
name:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
198
|
+
name: Accessibility & ESG
|
|
199
|
+
agents:
|
|
200
|
+
- wcag-agent
|
|
201
|
+
- section508-agent
|
|
202
|
+
- csrd-agent
|
|
203
|
+
workflows:
|
|
204
|
+
- dpia-sentinel
|
|
205
|
+
- breach-sentinel
|
|
206
|
+
- legitimate-interest
|
|
207
|
+
- privacy-advisor
|
|
208
|
+
- privacy-notice-gen
|
|
209
|
+
- privacy-policy-gen
|
|
210
|
+
- cookie-policy-gen
|
|
211
|
+
- ai-act-classifier
|
|
212
|
+
- ai-act-roles
|
|
213
|
+
- ai-act-fria
|
|
214
|
+
- ai-act-incidents
|
|
215
|
+
packDir: pack-shield
|
|
216
|
+
packSrcDir: packs
|
|
217
|
+
seo:
|
|
218
|
+
name: SEO Audit 360
|
|
219
|
+
icon: 🔍
|
|
220
|
+
description: 3 agents (Scout, Chief, Judge) + 6-phase audit + PageSpeed loop.
|
|
107
221
|
required: false
|
|
108
|
-
|
|
222
|
+
agents:
|
|
223
|
+
- seo-scout
|
|
224
|
+
- seo-chief
|
|
225
|
+
- seo-judge
|
|
226
|
+
skills: []
|
|
227
|
+
packDir: pack-seo
|
|
228
|
+
packSrcDir: packs
|
|
229
|
+
memory:
|
|
230
|
+
name: Memory — Persistent Brain
|
|
231
|
+
icon: 🧠
|
|
232
|
+
description: Cross-session memory + project scanner + Karpathy guardrails.
|
|
233
|
+
required: false
|
|
234
|
+
agents:
|
|
235
|
+
- zecher
|
|
236
|
+
skills: []
|
|
237
|
+
cohabitation_warning: Detects and links existing brains (_brain/, ~/.claude/memory/); NEVER overwrites memory files.
|
|
238
|
+
packDir: pack-memory
|
|
109
239
|
packSrcDir: packs
|
|
240
|
+
dev-studio:
|
|
241
|
+
name: Dev Studio — Full SDLC
|
|
242
|
+
icon: 🏗️
|
|
243
|
+
description: '6 specialized agents + 38 workflows: Analysis → Planning → Architecture → Implementation → Review.'
|
|
244
|
+
required: false
|
|
245
|
+
agents:
|
|
246
|
+
- dev-studio-orchestrator
|
|
247
|
+
skills:
|
|
248
|
+
- dev-studio
|
|
110
249
|
orchestrator: dev-studio-orchestrator
|
|
111
|
-
cohabitation_warning: "Dev Studio agents overlap with Core agents (Atlas/Forge/Sentinel/Nexus). Both can be installed — Dev Studio offers more specialized, phase-specific workflows."
|
|
112
250
|
categories:
|
|
113
251
|
- id: analysis
|
|
114
|
-
name:
|
|
115
|
-
|
|
116
|
-
|
|
252
|
+
name: Analysis
|
|
253
|
+
workflows:
|
|
254
|
+
- product-brief
|
|
255
|
+
- prfaq
|
|
256
|
+
- document-project
|
|
257
|
+
- market-research
|
|
258
|
+
- domain-research
|
|
259
|
+
- technical-research
|
|
117
260
|
- id: planning
|
|
118
|
-
name:
|
|
119
|
-
|
|
120
|
-
|
|
261
|
+
name: Planning
|
|
262
|
+
workflows:
|
|
263
|
+
- create-prd
|
|
264
|
+
- prd
|
|
265
|
+
- edit-prd
|
|
266
|
+
- validate-prd
|
|
267
|
+
- create-ux-design
|
|
121
268
|
- id: architecture
|
|
122
|
-
name:
|
|
123
|
-
|
|
124
|
-
|
|
269
|
+
name: Architecture
|
|
270
|
+
workflows:
|
|
271
|
+
- create-architecture
|
|
272
|
+
- create-epics-stories
|
|
273
|
+
- implementation-readiness
|
|
274
|
+
- generate-project-context
|
|
125
275
|
- id: implementation
|
|
126
|
-
name:
|
|
127
|
-
|
|
128
|
-
|
|
276
|
+
name: Implementation
|
|
277
|
+
workflows:
|
|
278
|
+
- sprint-planning
|
|
279
|
+
- create-story
|
|
280
|
+
- dev-story
|
|
281
|
+
- code-review
|
|
282
|
+
- quick-dev
|
|
283
|
+
- sprint-status
|
|
284
|
+
- retrospective
|
|
285
|
+
- correct-course
|
|
286
|
+
- investigate
|
|
287
|
+
- checkpoint-preview
|
|
288
|
+
- qa-e2e-tests
|
|
129
289
|
- id: utilities
|
|
130
|
-
name:
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
290
|
+
name: Utilities
|
|
291
|
+
workflows:
|
|
292
|
+
- distillator
|
|
293
|
+
- party-mode
|
|
294
|
+
- brainstorming
|
|
295
|
+
- adversarial-review
|
|
296
|
+
- edge-case-hunter
|
|
297
|
+
- editorial-review-prose
|
|
298
|
+
- editorial-review-structure
|
|
299
|
+
- advanced-elicitation
|
|
300
|
+
- shard-doc
|
|
301
|
+
- index-docs
|
|
302
|
+
- bmad-help
|
|
303
|
+
- customize
|
|
304
|
+
sub_agents:
|
|
305
|
+
- analyst-agent
|
|
306
|
+
- tech-writer-agent
|
|
307
|
+
- pm-agent
|
|
308
|
+
- ux-designer-agent
|
|
309
|
+
- architect-agent
|
|
310
|
+
- dev-agent
|
|
311
|
+
cohabitation_warning: Dev Studio agents overlap with Core (Atlas/Forge/Sentinel/Nexus); both can coexist.
|
|
312
|
+
packDir: pack-dev-studio
|
|
140
313
|
packSrcDir: packs
|
|
141
|
-
agents:
|
|
142
|
-
- seo-scout
|
|
143
|
-
- seo-chief
|
|
144
|
-
- seo-judge
|
|
145
|
-
|
|
146
314
|
backup:
|
|
147
|
-
name:
|
|
148
|
-
icon:
|
|
149
|
-
description:
|
|
315
|
+
name: Universal Backup
|
|
316
|
+
icon: 🗂️
|
|
317
|
+
description: Timestamped ZIP backup with smart exclusions.
|
|
150
318
|
required: false
|
|
151
|
-
packDir: pack-backup
|
|
152
|
-
packSrcDir: packs
|
|
153
319
|
agents:
|
|
154
320
|
- backup-agent
|
|
155
|
-
|
|
321
|
+
skills: []
|
|
322
|
+
packDir: pack-backup
|
|
323
|
+
packSrcDir: packs
|
|
156
324
|
animated:
|
|
157
|
-
name:
|
|
158
|
-
icon:
|
|
159
|
-
description:
|
|
325
|
+
name: Animated Website
|
|
326
|
+
icon: 🎬
|
|
327
|
+
description: Luxury scroll-driven website from video.
|
|
160
328
|
required: false
|
|
161
|
-
packDir: pack-animated
|
|
162
|
-
packSrcDir: packs
|
|
163
329
|
agents:
|
|
164
330
|
- animated-website-agent
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
name: "Memory — Persistent Brain"
|
|
168
|
-
icon: "🧠"
|
|
169
|
-
description: "Cross-session memory + project scanner + Karpathy guardrails"
|
|
170
|
-
required: false
|
|
171
|
-
packDir: pack-memory
|
|
331
|
+
skills: []
|
|
332
|
+
packDir: pack-animated
|
|
172
333
|
packSrcDir: packs
|
|
173
|
-
agents:
|
|
174
|
-
- zecher
|
|
175
|
-
cohabitation_warning: "Memory can detect and link to existing brain directories (_brain/, ~/.claude/memory/). It will NEVER overwrite existing memory files."
|
|
176
|
-
|
|
177
|
-
install_packs:
|
|
178
|
-
prompt:
|
|
179
|
-
- "Quels packs additionnels souhaites-tu installer ?"
|
|
180
|
-
- "Core (Atlas, Forge, Sentinel, Nexus) est toujours inclus."
|
|
181
|
-
default: "none"
|
|
182
|
-
result: "{value}"
|
|
183
|
-
multi-select:
|
|
184
|
-
- value: "osint"
|
|
185
|
-
label: "🔍 OSINT — Agent Shadow (investigation, scraping, psychoprofil)"
|
|
186
|
-
- value: "maker"
|
|
187
|
-
label: "🧬 Agent Creator — Créer de nouveaux agents BMAD+ compatibles"
|
|
188
|
-
- value: "shield"
|
|
189
|
-
label: "🛡️ Shield GRC — 27 agents de conformité + 11 workflows (GDPR, ISO 27001, SOC 2, EU AI Act...)"
|
|
190
|
-
- value: "dev-studio"
|
|
191
|
-
label: "🏗️ Dev Studio — 6 agents + 38 workflows SDLC complet (Miriam, Yosef, Bezalel, Oholiab...)"
|
|
192
|
-
- value: "seo"
|
|
193
|
-
label: "🔍 SEO Audit 360 — 3 agents (Scout, Chief, Judge)"
|
|
194
|
-
- value: "backup"
|
|
195
|
-
label: "🗂️ Universal Backup — Backup ZIP intelligent"
|
|
196
|
-
- value: "animated"
|
|
197
|
-
label: "🎬 Animated Website — Luxury scroll-driven site from video"
|
|
198
|
-
- value: "memory"
|
|
199
|
-
label: "🧠 Memory — Cerveau persistant + scanner de projets + guardrails Karpathy"
|
|
200
|
-
- value: "all"
|
|
201
|
-
label: "🤖 Tout installer"
|
|
202
|
-
- value: "none"
|
|
203
|
-
label: "Aucun — Core uniquement"
|
|
204
|
-
|
|
205
|
-
# Variables from Core Config inserted:
|
|
206
|
-
## user_name
|
|
207
|
-
## communication_language
|
|
208
|
-
## document_output_language
|
|
209
|
-
## output_folder
|
|
210
|
-
|
|
211
|
-
project_name:
|
|
212
|
-
prompt: "What is your project called?"
|
|
213
|
-
default: "{directory_name}"
|
|
214
|
-
result: "{value}"
|
|
215
|
-
|
|
216
|
-
user_skill_level:
|
|
217
|
-
prompt:
|
|
218
|
-
- "What is your development experience level?"
|
|
219
|
-
- "This affects how agents explain concepts in chat."
|
|
220
|
-
default: "expert"
|
|
221
|
-
result: "{value}"
|
|
222
|
-
single-select:
|
|
223
|
-
- value: "beginner"
|
|
224
|
-
label: "Beginner - Explain things clearly"
|
|
225
|
-
- value: "intermediate"
|
|
226
|
-
label: "Intermediate - Balance detail with speed"
|
|
227
|
-
- value: "expert"
|
|
228
|
-
label: "Expert - Be direct and technical"
|
|
229
|
-
|
|
230
|
-
execution_mode:
|
|
231
|
-
prompt:
|
|
232
|
-
- "How do you want to work with BMAD+ agents?"
|
|
233
|
-
- "Manual: you call agents when needed. Autopilot: orchestrator manages everything."
|
|
234
|
-
default: "manual"
|
|
235
|
-
result: "{value}"
|
|
236
|
-
single-select:
|
|
237
|
-
- value: "manual"
|
|
238
|
-
label: "Manual - Call agents yourself"
|
|
239
|
-
- value: "autopilot"
|
|
240
|
-
label: "Autopilot - Orchestrator manages the pipeline"
|
|
241
|
-
- value: "hybrid"
|
|
242
|
-
label: "Hybrid - Autopilot with frequent checkpoints"
|
|
243
|
-
|
|
244
|
-
auto_role_activation:
|
|
245
|
-
prompt: "Enable intelligent auto-activation of agent roles based on context?"
|
|
246
|
-
default: "true"
|
|
247
|
-
result: "{value}"
|
|
248
|
-
single-select:
|
|
249
|
-
- value: "true"
|
|
250
|
-
label: "Yes - Agents auto-switch roles when context demands it"
|
|
251
|
-
- value: "false"
|
|
252
|
-
label: "No - Only switch roles when I explicitly ask"
|
|
253
|
-
|
|
254
|
-
parallel_execution:
|
|
255
|
-
prompt: "Enable parallel multi-agent execution for independent tasks?"
|
|
256
|
-
default: "true"
|
|
257
|
-
result: "{value}"
|
|
258
|
-
single-select:
|
|
259
|
-
- value: "true"
|
|
260
|
-
label: "Yes - Run independent tasks in parallel"
|
|
261
|
-
- value: "false"
|
|
262
|
-
label: "No - Sequential execution only"
|
|
263
|
-
|
|
264
|
-
planning_artifacts:
|
|
265
|
-
prompt: "Where should planning artifacts be stored? (Discovery phase output)"
|
|
266
|
-
default: "{output_folder}/discovery"
|
|
267
|
-
result: "{project-root}/{value}"
|
|
268
|
-
|
|
269
|
-
implementation_artifacts:
|
|
270
|
-
prompt: "Where should implementation artifacts be stored? (Build & Ship phase output)"
|
|
271
|
-
default: "{output_folder}/build"
|
|
272
|
-
result: "{project-root}/{value}"
|
|
273
|
-
|
|
274
|
-
project_knowledge:
|
|
275
|
-
prompt: "Where should long-term project knowledge be stored?"
|
|
276
|
-
default: "docs"
|
|
277
|
-
result: "{project-root}/{value}"
|
|
278
|
-
|
|
279
|
-
# Directories to create during installation
|
|
280
|
-
directories:
|
|
281
|
-
- "{planning_artifacts}"
|
|
282
|
-
- "{implementation_artifacts}"
|
|
283
|
-
- "{project_knowledge}"
|
|
@@ -298,16 +298,16 @@ def run_rich_results_test(url: str) -> dict:
|
|
|
298
298
|
|
|
299
299
|
def run_all(url: str) -> dict:
|
|
300
300
|
"""Run all available API checks and merge results."""
|
|
301
|
-
print(
|
|
301
|
+
print("Running PageSpeed Insights (mobile)...", file=sys.stderr)
|
|
302
302
|
psi_mobile = run_pagespeed(url, strategy="mobile")
|
|
303
303
|
|
|
304
|
-
print(
|
|
304
|
+
print("Running PageSpeed Insights (desktop)...", file=sys.stderr)
|
|
305
305
|
psi_desktop = run_pagespeed(url, strategy="desktop")
|
|
306
306
|
|
|
307
|
-
print(
|
|
307
|
+
print("Running CrUX API...", file=sys.stderr)
|
|
308
308
|
crux = run_crux(url)
|
|
309
309
|
|
|
310
|
-
print(
|
|
310
|
+
print("Running Mobile-Friendly Test...", file=sys.stderr)
|
|
311
311
|
rich = run_rich_results_test(url)
|
|
312
312
|
|
|
313
313
|
return {
|
|
@@ -339,21 +339,21 @@ def print_psi_summary(result: dict, label: str):
|
|
|
339
339
|
|
|
340
340
|
cwv = result.get("cwv", {})
|
|
341
341
|
if cwv:
|
|
342
|
-
print(
|
|
342
|
+
print("\n Core Web Vitals:")
|
|
343
343
|
for metric, data in cwv.items():
|
|
344
344
|
icon = "🟢" if data["score"] >= 90 else "🟡" if data["score"] >= 50 else "🔴"
|
|
345
345
|
print(f" {icon} {metric}: {data['display']} ({data['score']}/100)")
|
|
346
346
|
|
|
347
347
|
failures = result.get("failing_audits", [])[:5]
|
|
348
348
|
if failures:
|
|
349
|
-
print(
|
|
349
|
+
print("\n Top Failing Audits:")
|
|
350
350
|
for audit in failures:
|
|
351
351
|
icon = "🔴" if audit["severity"] == "critical" else "🟠"
|
|
352
352
|
print(f" {icon} {audit['title']} ({audit['score']}/100)")
|
|
353
353
|
|
|
354
354
|
opps = result.get("opportunities", [])[:3]
|
|
355
355
|
if opps:
|
|
356
|
-
print(
|
|
356
|
+
print("\n Top Opportunities:")
|
|
357
357
|
for opp in opps:
|
|
358
358
|
print(f" 💡 {opp['title']} (save {opp['savings_ms']}ms)")
|
|
359
359
|
|
|
@@ -397,7 +397,7 @@ def main():
|
|
|
397
397
|
|
|
398
398
|
crux = result["crux"]
|
|
399
399
|
if not crux.get("error"):
|
|
400
|
-
print(
|
|
400
|
+
print("\n 📊 CrUX Field Data:")
|
|
401
401
|
for metric, data in crux.get("metrics", {}).items():
|
|
402
402
|
print(f" {metric}: p75 = {data['p75']}")
|
|
403
403
|
else:
|
|
@@ -18,7 +18,6 @@ import ipaddress
|
|
|
18
18
|
import json
|
|
19
19
|
import socket
|
|
20
20
|
import sys
|
|
21
|
-
from typing import Optional
|
|
22
21
|
from urllib.parse import urljoin, urlparse
|
|
23
22
|
|
|
24
23
|
try:
|
|
@@ -290,7 +289,7 @@ def main():
|
|
|
290
289
|
print(result["content"])
|
|
291
290
|
|
|
292
291
|
# Metadata to stderr
|
|
293
|
-
print(
|
|
292
|
+
print("\n--- Fetch Summary ---", file=sys.stderr)
|
|
294
293
|
print(f"Final URL: {result['final_url']}", file=sys.stderr)
|
|
295
294
|
print(f"Status: {result['status_code']}", file=sys.stderr)
|
|
296
295
|
print(f"Size: {result['content_length']:,} bytes", file=sys.stderr)
|
|
@@ -136,7 +136,6 @@ def generate_html_report(audit_data: dict) -> str:
|
|
|
136
136
|
total_score_esc = html.escape(str(total_score))
|
|
137
137
|
categories = audit_data.get("score", {}).get("categories", {})
|
|
138
138
|
issues = audit_data.get("issues", [])
|
|
139
|
-
pages = audit_data.get("pages", [])
|
|
140
139
|
|
|
141
140
|
# Generate radar chart
|
|
142
141
|
radar_svg = generate_radar_svg(categories) if categories else ""
|
|
@@ -48,7 +48,7 @@ The autopilot executes the following pipeline:
|
|
|
48
48
|
|
|
49
49
|
### Checkpoint Behavior
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Before starting, read `execution_mode` and `checkpoints` from `_bmad/config.yaml`. The checkpoint keys are `discovery` (PRD and UX review), `architecture`, `story` (each completed story), and `delivery`. Apply the configured behavior at each stage:
|
|
52
52
|
|
|
53
53
|
- **require_approval** (🔴 STOP): Pause execution, send WhatsApp notification, wait for user approval.
|
|
54
54
|
- **notify_only** (🟡 INFO): Send notification, continue unless user intervenes.
|
package/tools/bmad-plus-npx.js
CHANGED
|
@@ -21,8 +21,10 @@ if (isNpxExecution) {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
try {
|
|
24
|
-
const result = spawnSync(
|
|
25
|
-
if (result.
|
|
24
|
+
const result = spawnSync(process.execPath, [cliPath, ...args], { stdio: 'inherit' });
|
|
25
|
+
if (result.error) console.error(`Error: Could not launch BMAD+: ${result.error.message}`);
|
|
26
|
+
if (result.error || result.signal || result.status === null) process.exit(1);
|
|
27
|
+
if (result.status !== 0) process.exit(result.status || 1);
|
|
26
28
|
} catch (error) {
|
|
27
29
|
process.exit(error.status || 1);
|
|
28
30
|
}
|