bmad-method 4.5.1 → 4.6.1

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/bmad-core/agents/bmad-orchestrator.md +55 -66
  3. package/bmad-core/agents/pm.md +0 -1
  4. package/bmad-core/tasks/doc-migration-task.md +9 -9
  5. package/bmad-core/tasks/index-docs.md +3 -7
  6. package/bmad-core/templates/architecture-tmpl.md +2 -0
  7. package/bmad-core/templates/brownfield-architecture-tmpl.md +2 -0
  8. package/bmad-core/templates/brownfield-prd-tmpl.md +2 -0
  9. package/bmad-core/templates/competitor-analysis-tmpl.md +2 -0
  10. package/bmad-core/templates/front-end-architecture-tmpl.md +2 -0
  11. package/bmad-core/templates/front-end-spec-tmpl.md +3 -1
  12. package/bmad-core/templates/fullstack-architecture-tmpl.md +62 -60
  13. package/bmad-core/templates/market-research-tmpl.md +2 -0
  14. package/bmad-core/templates/prd-tmpl.md +4 -2
  15. package/bmad-core/templates/project-brief-tmpl.md +2 -0
  16. package/bmad-core/workflows/brownfield-fullstack.yml +19 -58
  17. package/bmad-core/workflows/brownfield-service.yml +19 -58
  18. package/bmad-core/workflows/brownfield-ui.yml +20 -59
  19. package/bmad-core/workflows/greenfield-fullstack.yml +31 -77
  20. package/bmad-core/workflows/greenfield-service.yml +22 -68
  21. package/bmad-core/workflows/greenfield-ui.yml +30 -76
  22. package/dist/agents/architect.txt +60 -60
  23. package/dist/agents/bmad-master.txt +66 -70
  24. package/dist/agents/bmad-orchestrator.txt +55 -66
  25. package/dist/agents/pm.txt +2 -467
  26. package/dist/agents/ux-expert.txt +1 -1
  27. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +481 -0
  28. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +100 -0
  29. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +100 -0
  30. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +4757 -2941
  31. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +35 -0
  32. package/dist/expansion-packs/expansion-creator/agents/bmad-the-creator.txt +438 -32
  33. package/dist/teams/team-all.txt +368 -1099
  34. package/dist/teams/team-fullstack.txt +286 -1017
  35. package/dist/teams/team-ide-minimal.txt +55 -66
  36. package/dist/teams/team-no-ui.txt +224 -785
  37. package/docs/versioning-and-releases.md +6 -6
  38. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yml +1 -0
  39. package/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md +17 -13
  40. package/package.json +1 -1
  41. package/tools/builders/web-builder.js +189 -20
  42. package/tools/installer/package.json +1 -1
  43. package/bmad-core/templates/simple-project-prd-tmpl.md +0 -461
@@ -1,461 +0,0 @@
1
- # {{Project Name}} Product Requirements Document (PRD)
2
-
3
- [[LLM: If available, review any provided document or ask if any are optionally available: Project Brief]]
4
-
5
- ## Goals and Background Context
6
-
7
- [[LLM: Populate the 2 child sections based on what we have received from user description or the provided brief. Allow user to review the 2 sections and offer changes before proceeding]]
8
-
9
- ### Goals
10
-
11
- [[LLM: Bullet list of 1 line desired outcomes the PRD will deliver if successful - user and project desires]]
12
-
13
- ### Background Context
14
-
15
- [[LLM: 1-2 short paragraphs summarizing the background context, such as what we learned in the brief without being redundant with the goals, what and why this solves a problem, what the current landscape or need is etc...]]
16
-
17
- ### Change Log
18
-
19
- [[LLM: Track document versions and changes]]
20
-
21
- | Date | Version | Description | Author |
22
- | :--- | :------ | :---------- | :----- |
23
-
24
- ## Requirements
25
-
26
- [[LLM: Draft the list of functional and non functional requirements under the two child sections, and immediately execute tasks#advanced-elicitation display]]
27
-
28
- ### Functional
29
-
30
- [[LLM: Each Requirement will be a bullet markdown and an identifier sequence starting with FR`.]]
31
- @{example: - FR6: The Todo List uses AI to detect and warn against adding potentially duplicate todo items that are worded differently.}
32
-
33
- ### Non Functional
34
-
35
- [[LLM: Each Requirement will be a bullet markdown and an identifier sequence starting with NFR`.]]
36
- @{example: - NFR1: AWS service usage **must** aim to stay within free-tier limits where feasible.}
37
-
38
- ^^CONDITION: has_ui^^
39
-
40
- ## User Interface Design Goals
41
-
42
- [[LLM: Capture high-level UI/UX vision to inform story creation and also generate a prompt for Lovable or V0 if the user would like either. Steps:
43
-
44
- 1. Pre-fill all subsections with educated guesses based on project context
45
- 2. Present the complete rendered section to user
46
- 3. Clearly let the user know where assumptions were made
47
- 4. Ask targeted questions for unclear/missing elements or areas needing more specification
48
- 5. This is NOT detailed UI spec - focus on product vision and user goals
49
- 6. After section completion, immediately apply `tasks#advanced-elicitation` protocol]]
50
-
51
- ### Overall UX Vision
52
-
53
- ### Key Interaction Paradigms
54
-
55
- ### Core Screens and Views
56
-
57
- [[LLM: From a product perspective, what are the most critical screens or views necessary to deliver the the PRD values and goals? This is meant to be Conceptual High Level to Drive Rough Epic or User Stories]]
58
-
59
- @{example}
60
-
61
- - Login Screen
62
- - Main Dashboard
63
- - Item Detail Page
64
- - Settings Page
65
- @{/example}
66
-
67
- ### Accessibility: { None, WCAG, etc }
68
-
69
- ### Branding
70
-
71
- [[LLM: Any known branding elements or style guides that must be incorporated?]]
72
-
73
- @{example}
74
-
75
- - Replicate the look and feel of early 1900s black and white cinema, including animated effects replicating film damage or projector glitches during page or state transitions.
76
- - Attached is the full color pallet and tokens for our corporate branding.
77
- @{/example}
78
-
79
- ### Target Device and Platforms
80
-
81
- @{example}
82
- "Web Responsive, and all mobile platforms", "IPhone Only", "ASCII Windows Desktop"
83
- @{/example}
84
-
85
- ^^/CONDITION: has_ui^^
86
-
87
- ## Technical Assumptions
88
-
89
- [[LLM: Gather technical decisions that will be used for this simple technical PRD that includes architecture decisions. Steps:
90
-
91
- 1. Check if `data#technical-preferences` or an attached `technical-preferences` file exists - use it to pre-populate choices
92
- 2. Ask user about: languages, frameworks, starter templates, libraries, APIs, deployment targets
93
- 3. For unknowns, offer guidance based on project goals and MVP scope
94
- 4. Document ALL technical choices with rationale (why this choice fits the project)
95
- 5. These become constraints for the Architect - be specific and complete
96
- 6. After section completion, apply `tasks#advanced-elicitation` protocol.]]
97
-
98
- ### Repository Structure: { Monorepo, Polyrepo, etc...}
99
-
100
- ### Service Architecture
101
-
102
- [[LLM: CRITICAL DECISION - Document the high-level service architecture (e.g., Monolith, Microservices, Serverless functions within a Monorepo).]]
103
-
104
- ## Testing requirements
105
-
106
- [[LLM: CRITICAL DECISION - Document the testing requirements, unit only, integration, e2e, manual, need for manual testing convenience methods).]]
107
-
108
- ### Additional Technical Assumptions and Requests
109
-
110
- [[LLM: Throughout the entire process of drafting this document, if any other technical assumptions are raised or discovered appropriate for the architect, add them here as additional bulleted items]]
111
-
112
- ## Data Models
113
-
114
- [[LLM: Define the core data models/entities that will be used in the front end (if there is one), core application or back end, and if both, shared between frontend and backend:
115
-
116
- 1. Review PRD requirements and identify key business entities
117
- 2. For each model, explain its purpose and relationships
118
- 3. Include key attributes and data types
119
- 4. Show relationships between models
120
- 5. Create TypeScript interfaces that can be shared
121
- 6. Discuss design decisions with user
122
-
123
- Create a clear conceptual model before moving to database schema.
124
-
125
- After presenting all data models, apply `tasks#advanced-elicitation` protocol]]
126
-
127
- <<REPEAT: data_model>>
128
-
129
- ### {{model_name}}
130
-
131
- **Purpose:** {{model_purpose}}
132
-
133
- **Key Attributes:**
134
-
135
- - {{attribute_1}}: {{type_1}} - {{description_1}}
136
- - {{attribute_2}}: {{type_2}} - {{description_2}}
137
-
138
- **TypeScript Interface:**
139
-
140
- ````typescript
141
- {
142
- {
143
- model_interface;
144
- }
145
- }
146
- ```text
147
-
148
- **Relationships:**
149
-
150
- - {{relationship_1}}
151
- - {{relationship_2}}
152
- <</REPEAT>>
153
-
154
- @{example: data_model}
155
-
156
- ### User
157
-
158
- **Purpose:** Represents authenticated users in the system
159
-
160
- **Key Attributes:**
161
-
162
- - id: string - Unique identifier
163
- - email: string - User's email address
164
- - name: string - Display name
165
- - role: enum - User permission level
166
- - timestamps: Date - Created and updated times
167
-
168
- **TypeScript Interface:**
169
-
170
- ```typescript
171
- interface User {
172
- id: string;
173
- email: string;
174
- name: string;
175
- role: "admin" | "user" | "guest";
176
- createdAt: Date;
177
- updatedAt: Date;
178
- profile?: UserProfile;
179
- }
180
-
181
- interface UserProfile {
182
- avatarUrl?: string;
183
- bio?: string;
184
- preferences: Record<string, any>;
185
- }
186
- ````
187
-
188
- **Relationships:**
189
-
190
- - Has many Posts (1:n)
191
- - Has one Profile (1:1)
192
- @{/example}
193
-
194
- ## REST API Spec
195
-
196
- [[LLM: Based on the chosen API style from Tech Stack:
197
-
198
- 1. If REST API, create an OpenAPI 3.0 specification
199
- 2. If GraphQL, provide the GraphQL schema
200
- 3. If tRPC, show router definitions
201
- 4. Include all endpoints from epics/stories
202
- 5. Define request/response schemas based on data models
203
- 6. Document authentication requirements
204
- 7. Include example requests/responses
205
-
206
- Use appropriate format for the chosen API style. If no API (e.g., static site), skip this section.]]
207
-
208
- ^^CONDITION: has_rest_api^^
209
-
210
- ````yml
211
- openapi: 3.0.0
212
- info:
213
- title:
214
- '[object Object]': null
215
- version:
216
- '[object Object]': null
217
- description:
218
- '[object Object]': null
219
- servers:
220
- - url:
221
- '[object Object]': null
222
- description:
223
- '[object Object]': null
224
- ```text
225
-
226
- ^^/CONDITION: has_rest_api^^
227
-
228
- ^^CONDITION: has_graphql_api^^
229
-
230
- ```graphql
231
- # GraphQL Schema
232
- {{graphql_schema}}
233
- ````
234
-
235
- ^^/CONDITION: has_graphql_api^^
236
-
237
- ^^CONDITION: has_trpc_api^^
238
-
239
- ```typescript
240
- // tRPC Router Definitions
241
- {
242
- {
243
- trpc_routers;
244
- }
245
- }
246
- ```
247
-
248
- ^^/CONDITION: has_trpc_api^^
249
-
250
- [[LLM: After presenting the API spec (or noting its absence if not applicable), apply `tasks#advanced-elicitation` protocol]]
251
-
252
- ## Components
253
-
254
- [[LLM: Based on the architectural patterns, tech stack, and data models from above:
255
-
256
- 1. Identify major logical components/services across the fullstack
257
- 2. Consider both frontend and backend components
258
- 3. Define clear boundaries and interfaces between components
259
- 4. For each component, specify:
260
-
261
- - Primary responsibility
262
- - Key interfaces/APIs exposed
263
- - Dependencies on other components
264
- - Technology specifics based on tech stack choices
265
-
266
- 5. Create component diagrams where helpful
267
- 6. After presenting all components, apply `tasks#advanced-elicitation` protocol]]
268
-
269
- <<REPEAT: component>>
270
-
271
- ### {{component_name}}
272
-
273
- **Responsibility:** {{component_description}}
274
-
275
- **Key Interfaces:**
276
-
277
- - {{interface_1}}
278
- - {{interface_2}}
279
-
280
- **Dependencies:** {{dependencies}}
281
-
282
- **Technology Stack:** {{component_tech_details}}
283
- <</REPEAT>>
284
-
285
- ### Component Diagrams
286
-
287
- [[LLM: Create Mermaid diagrams to visualize component relationships. Options:
288
-
289
- - C4 Container diagram for high-level view
290
- - Component diagram for detailed internal structure
291
- - Sequence diagrams for complex interactions
292
- Choose the most appropriate for clarity
293
-
294
- After presenting the diagrams, apply `tasks#advanced-elicitation` protocol]]
295
-
296
- ## External APIs
297
-
298
- [[LLM: For each external service integration:
299
-
300
- 1. Identify APIs needed based on PRD requirements and component design
301
- 2. If documentation URLs are unknown, ask user for specifics
302
- 3. Document authentication methods and security considerations
303
- 4. List specific endpoints that will be used
304
- 5. Note any rate limits or usage constraints
305
-
306
- If no external APIs are needed, state this explicitly and skip to next section.]]
307
-
308
- ^^CONDITION: has_external_apis^^
309
-
310
- <<REPEAT: external_api>>
311
-
312
- ### {{api_name}} API
313
-
314
- - **Purpose:** {{api_purpose}}
315
- - **Documentation:** {{api_docs_url}}
316
- - **Base URL(s):** {{api_base_url}}
317
- - **Authentication:** {{auth_method}}
318
- - **Rate Limits:** {{rate_limits}}
319
-
320
- **Key Endpoints Used:**
321
- <<REPEAT: endpoint>>
322
-
323
- - `{{method}} {{endpoint_path}}` - {{endpoint_purpose}}
324
- <</REPEAT>>
325
-
326
- **Integration Notes:** {{integration_considerations}}
327
- <</REPEAT>>
328
-
329
- @{example: external_api}
330
-
331
- ### Stripe API
332
-
333
- - **Purpose:** Payment processing and subscription management
334
- - **Documentation:** https://stripe.com/docs/api
335
- - **Base URL(s):** `https://api.stripe.com/v1`
336
- - **Authentication:** Bearer token with secret key
337
- - **Rate Limits:** 100 requests per second
338
-
339
- **Key Endpoints Used:**
340
-
341
- - `POST /customers` - Create customer profiles
342
- - `POST /payment_intents` - Process payments
343
- - `POST /subscriptions` - Manage subscriptions
344
- @{/example}
345
-
346
- ^^/CONDITION: has_external_apis^^
347
-
348
- [[LLM: After presenting external APIs (or noting their absence), apply `tasks#advanced-elicitation` protocol]]
349
-
350
- ## Coding Standards
351
-
352
- [[LLM: Define MINIMAL but CRITICAL standards for AI agents. Focus only on project-specific rules that prevent common mistakes. These will be used by dev agents.
353
-
354
- After presenting this section, apply `tasks#advanced-elicitation` protocol]]
355
-
356
- ### Critical Fullstack Rules
357
-
358
- <<REPEAT: critical_rule>>
359
-
360
- - **{{rule_name}}:** {{rule_description}}
361
- <</REPEAT>>
362
-
363
- @{example: critical_rules}
364
-
365
- - **Type Sharing:** Always define types in packages/shared and import from there
366
- - **API Calls:** Never make direct HTTP calls - use the service layer
367
- - **Environment Variables:** Access only through config objects, never process.env directly
368
- - **Error Handling:** All API routes must use the standard error handler
369
- - **State Updates:** Never mutate state directly - use proper state management patterns
370
- @{/example}
371
-
372
- ### Naming Conventions
373
-
374
- | Element | Frontend | Backend | Example |
375
- | :-------------- | :------------------- | :--------- | :------------------ |
376
- | Components | PascalCase | - | `UserProfile.tsx` |
377
- | Hooks | camelCase with 'use' | - | `useAuth.ts` |
378
- | API Routes | - | kebab-case | `/api/user-profile` |
379
- | Database Tables | - | snake_case | `user_profiles` |
380
-
381
- ## Epics
382
-
383
- [[LLM: First, present a high-level list of all epics for user approval, the epic_list and immediately execute tasks#advanced-elicitation display. Each epic should have a title and a short (1 sentence) goal statement. This allows the user to review the overall structure before diving into details.
384
-
385
- CRITICAL: Epics MUST be logically sequential following agile best practices:
386
-
387
- - Each epic should deliver a significant, end-to-end, fully deployable increment of testable functionality
388
- - Epic 1 must establish foundational project infrastructure (app setup, Git, CI/CD, core services) unless we are adding new functionality to an existing app, while also delivering an initial piece of functionality, even as simple as a health-check route or display of a simple canary page
389
- - Each subsequent epic builds upon previous epics' functionality delivering major blocks of functionality that provide tangible value to users or business when deployed
390
- - Not every project needs multiple epics, an epic needs to deliver value. For example, an API completed can deliver value even if a UI is not complete and planned for a separate epic.
391
- - Err on the side of less epics, but let the user know your rationale and offer options for splitting them if it seems some are too large or focused on disparate things.
392
- - Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.]]
393
-
394
- <<REPEAT: epic_list>>
395
-
396
- - Epic{{epic_number}} {{epic_title}}: {{short_goal}}
397
-
398
- <</REPEAT>>
399
-
400
- @{example: epic_list}
401
-
402
- 1. Foundation & Core Infrastructure: Establish project setup, authentication, and basic user management
403
- 2. Core Business Entities: Create and manage primary domain objects with CRUD operations
404
- 3. User Workflows & Interactions: Enable key user journeys and business processes
405
- 4. Reporting & Analytics: Provide insights and data visualization for users
406
-
407
- @{/example}
408
-
409
- [[LLM: After the epic list is approved, present each `epic_details` with all its stories and acceptance criteria as a complete review unit and immediately execute tasks#advanced-elicitation display, before moving on to the next epic.]]
410
-
411
- <<REPEAT: epic_details>>
412
-
413
- ## Epic {{epic_number}} {{epic_title}}
414
-
415
- {{epic_goal}} [[LLM: Expanded goal - 2-3 sentences describing the objective and value all the stories will achieve]]
416
-
417
- [[LLM: CRITICAL STORY SEQUENCING REQUIREMENTS:
418
-
419
- - Stories within each epic MUST be logically sequential
420
- - Each story should be a "vertical slice" delivering complete functionality
421
- - No story should depend on work from a later story or epic
422
- - Identify and note any direct prerequisite stories
423
- - Focus on "what" and "why" not "how" (leave technical implementation to Architect) yet be precise enough to support a logical sequential order of operations from story to story.
424
- - Ensure each story delivers clear user or business value, try to avoid enablers and build them into stories that deliver value.
425
- - Size stories for AI agent execution: Each story must be completable by a single AI agent in one focused session without context overflow
426
- - Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
427
- - If a story seems complex, break it down further as long as it can deliver a vertical slice
428
- - Each story should result in working, testable code before the agent's context window fills]]
429
-
430
- <<REPEAT: story>>
431
-
432
- ### Story {{epic_number}}.{{story_number}} {{story_title}}
433
-
434
- As a {{user_type}},
435
- I want {{action}},
436
- so that {{benefit}}.
437
-
438
- #### Acceptance Criteria
439
-
440
- [[LLM: Define clear, comprehensive, and testable acceptance criteria that:
441
-
442
- - Precisely define what "done" means from a functional perspective
443
- - Are unambiguous and serve as basis for verification
444
- - Include any critical non-functional requirements from the PRD
445
- - Consider local testability for backend/data components
446
- - Specify UI/UX requirements and framework adherence where applicable
447
- - Avoid cross-cutting concerns that should be in other stories or PRD sections]]
448
-
449
- <<REPEAT: criteria>>
450
-
451
- - {{criterion number}}: {{criteria}}
452
-
453
- <</REPEAT>>
454
- <</REPEAT>>
455
- <</REPEAT>>
456
-
457
- ## Next Steps
458
-
459
- ### Design Architect Prompt
460
-
461
- [[LLM: This section will contain the prompt for the Design Architect, keep it short and to the point to initiate create architecture mode using this document as input.]]