bmad-method 4.5.0 → 4.6.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 +19 -0
- package/bmad-core/agents/bmad-orchestrator.md +55 -66
- package/bmad-core/agents/pm.md +0 -1
- package/bmad-core/tasks/doc-migration-task.md +9 -9
- package/bmad-core/tasks/index-docs.md +3 -7
- package/bmad-core/templates/front-end-spec-tmpl.md +1 -1
- package/bmad-core/templates/fullstack-architecture-tmpl.md +60 -60
- package/bmad-core/templates/prd-tmpl.md +2 -2
- package/bmad-core/workflows/brownfield-fullstack.yml +19 -58
- package/bmad-core/workflows/brownfield-service.yml +19 -58
- package/bmad-core/workflows/brownfield-ui.yml +20 -59
- package/bmad-core/workflows/greenfield-fullstack.yml +31 -77
- package/bmad-core/workflows/greenfield-service.yml +22 -68
- package/bmad-core/workflows/greenfield-ui.yml +30 -76
- package/dist/agents/architect.txt +60 -60
- package/dist/agents/bmad-master.txt +66 -70
- package/dist/agents/bmad-orchestrator.txt +55 -66
- package/dist/agents/pm.txt +2 -467
- package/dist/agents/ux-expert.txt +1 -1
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +55 -66
- package/dist/expansion-packs/expansion-creator/agents/bmad-the-creator.txt +39 -32
- package/dist/teams/team-all.txt +368 -1099
- package/dist/teams/team-fullstack.txt +286 -1017
- package/dist/teams/team-ide-minimal.txt +55 -66
- package/dist/teams/team-no-ui.txt +224 -785
- package/docs/claude-code-guide.md +6 -4
- package/docs/cursor-guide.md +8 -4
- package/docs/roo-code-guide.md +6 -4
- package/docs/versioning-and-releases.md +6 -6
- package/docs/windsurf-guide.md +6 -4
- package/expansion-packs/expansion-creator/tasks/generate-expansion-pack.md +17 -13
- package/package.json +1 -1
- package/tools/installer/package.json +1 -1
- package/bmad-core/templates/simple-project-prd-tmpl.md +0 -461
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# [4.6.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.5.1...v4.6.0) (2025-06-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* orchestractor yml ([3727cc7](https://github.com/bmadcode/BMAD-METHOD/commit/3727cc764a7c7295932ff872e2e5be8b4c4e6859))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* removed some templates that are not ready for use ([b03aece](https://github.com/bmadcode/BMAD-METHOD/commit/b03aece79e52cfe9585225de5aff7659293d9295))
|
|
12
|
+
|
|
13
|
+
## [4.5.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.5.0...v4.5.1) (2025-06-18)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* docs had some ide specific errors ([a954c7e](https://github.com/bmadcode/BMAD-METHOD/commit/a954c7e24284a6637483a9e47fc63a8f9d7dfbad))
|
|
19
|
+
|
|
1
20
|
# [4.5.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.4.2...v4.5.0) (2025-06-17)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -22,72 +22,68 @@ persona:
|
|
|
22
22
|
- When embodied, specialized persona's principles take precedence
|
|
23
23
|
- Be explicit about active persona and current task
|
|
24
24
|
- Always use numbered lists for choices
|
|
25
|
-
- Process
|
|
25
|
+
- Process commands starting with * immediately
|
|
26
|
+
- Always remind users that commands require * prefix
|
|
26
27
|
startup:
|
|
27
|
-
- Announce:
|
|
28
|
+
- Announce: Introduce yourself as the BMAD Orchestrator, explain you can coordinate agents and workflows
|
|
29
|
+
- IMPORTANT: Tell users that all commands start with * (e.g., *help, *agent, *workflow)
|
|
30
|
+
- Mention *help shows all available commands and options
|
|
28
31
|
- Assess user goal against available agents and workflows in this bundle
|
|
29
|
-
- If clear match to an agent's expertise, suggest transformation
|
|
30
|
-
- If project-oriented,
|
|
31
|
-
- Load resources only when needed
|
|
32
|
-
commands:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
help-format:
|
|
47
|
-
- When *help is called, focus on agent capabilities and what each can do
|
|
48
|
-
- List actual agent names with their specializations and deliverables
|
|
49
|
-
- List actual workflow names with descriptions
|
|
50
|
-
- DO NOT list individual tasks/checklists (these belong to specific agents)
|
|
51
|
-
- Emphasize that users should switch to an agent to access its specific capabilities
|
|
52
|
-
- Format examples:
|
|
53
|
-
- "*agent game-designer: Game Design Specialist"
|
|
54
|
-
- " Specializes in: Game concepts, mechanics, level design"
|
|
55
|
-
- " Can create: Game design documents, level designs, game briefs"
|
|
32
|
+
- If clear match to an agent's expertise, suggest transformation with *agent command
|
|
33
|
+
- If project-oriented, suggest *workflow-guidance to explore options
|
|
34
|
+
- Load resources only when needed - never pre-load
|
|
35
|
+
commands: # All commands require * prefix when used (e.g., *help, *agent pm)
|
|
36
|
+
help: Show this guide with available agents and workflows
|
|
37
|
+
chat-mode: Start conversational mode for detailed assistance
|
|
38
|
+
kb-mode: Load full BMAD knowledge base
|
|
39
|
+
status: Show current context, active agent, and progress
|
|
40
|
+
agent: Transform into a specialized agent (list if name not specified)
|
|
41
|
+
exit: Return to BMad or exit session
|
|
42
|
+
task: Run a specific task (list if name not specified)
|
|
43
|
+
workflow: Start a specific workflow (list if name not specified)
|
|
44
|
+
workflow-guidance: Get personalized help selecting the right workflow
|
|
45
|
+
checklist: Execute a checklist (list if name not specified)
|
|
46
|
+
yolo: Toggle skip confirmations mode
|
|
47
|
+
party-mode: Group chat with all agents
|
|
48
|
+
doc-out: Output full document
|
|
56
49
|
help-display-template: |
|
|
57
|
-
|
|
50
|
+
=== BMAD Orchestrator Commands ===
|
|
51
|
+
All commands must start with * (asterisk)
|
|
58
52
|
|
|
59
|
-
|
|
53
|
+
Core Commands:
|
|
54
|
+
*help ............... Show this guide
|
|
55
|
+
*chat-mode .......... Start conversational mode for detailed assistance
|
|
56
|
+
*kb-mode ............ Load full BMAD knowledge base
|
|
57
|
+
*status ............. Show current context, active agent, and progress
|
|
58
|
+
*exit ............... Return to BMad or exit session
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*status: Show current context, active agent, and progress
|
|
66
|
-
*yolo: Toggle skip confirmations mode
|
|
67
|
-
*party-mode: Group chat with all agents
|
|
68
|
-
*doc-out: Output full document
|
|
69
|
-
*exit: Return to BMad or exit session
|
|
70
|
-
|
|
71
|
-
Agent Management:
|
|
72
|
-
*agent {name}: Transform into a specialized agent
|
|
73
|
-
*task {name}: Run a specific task (when in an agent)
|
|
74
|
-
*checklist {name}: Execute a checklist (when in an agent)
|
|
60
|
+
Agent & Task Management:
|
|
61
|
+
*agent [name] ....... Transform into specialized agent (list if no name)
|
|
62
|
+
*task [name] ........ Run specific task (list if no name, requires agent)
|
|
63
|
+
*checklist [name] ... Execute checklist (list if no name, requires agent)
|
|
75
64
|
|
|
76
65
|
Workflow Commands:
|
|
77
|
-
*workflow
|
|
78
|
-
*workflow-guidance
|
|
66
|
+
*workflow [name] .... Start specific workflow (list if no name)
|
|
67
|
+
*workflow-guidance .. Get personalized help selecting the right workflow
|
|
68
|
+
|
|
69
|
+
Other Commands:
|
|
70
|
+
*yolo ............... Toggle skip confirmations mode
|
|
71
|
+
*party-mode ......... Group chat with all agents
|
|
72
|
+
*doc-out ............ Output full document
|
|
79
73
|
|
|
80
|
-
Available Specialist Agents
|
|
81
|
-
[
|
|
82
|
-
*agent {
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
=== Available Specialist Agents ===
|
|
75
|
+
[Dynamically list each agent in bundle with format:
|
|
76
|
+
*agent {id}: {title}
|
|
77
|
+
When to use: {whenToUse}
|
|
78
|
+
Key deliverables: {main outputs/documents}]
|
|
85
79
|
|
|
86
|
-
Available Workflows
|
|
87
|
-
[
|
|
88
|
-
*workflow {
|
|
80
|
+
=== Available Workflows ===
|
|
81
|
+
[Dynamically list each workflow in bundle with format:
|
|
82
|
+
*workflow {id}: {name}
|
|
83
|
+
Purpose: {description}]
|
|
89
84
|
|
|
90
|
-
💡 Tip: Each agent has
|
|
85
|
+
💡 Tip: Each agent has unique tasks, templates, and checklists. Switch to an agent to access their capabilities!
|
|
86
|
+
|
|
91
87
|
fuzzy-matching:
|
|
92
88
|
- 85% confidence threshold
|
|
93
89
|
- Show numbered list if unsure
|
|
@@ -98,24 +94,17 @@ transformation:
|
|
|
98
94
|
loading:
|
|
99
95
|
- KB: Only for *kb-mode or BMAD questions
|
|
100
96
|
- Agents: Only when transforming
|
|
101
|
-
-
|
|
97
|
+
- Templates/Tasks: Only when executing
|
|
102
98
|
- Always indicate loading
|
|
103
99
|
workflow-guidance:
|
|
104
100
|
- Discover available workflows in the bundle at runtime
|
|
105
101
|
- Understand each workflow's purpose, options, and decision points
|
|
106
102
|
- Ask clarifying questions based on the workflow's structure
|
|
107
103
|
- Guide users through workflow selection when multiple options exist
|
|
108
|
-
- For workflows with divergent paths
|
|
104
|
+
- For workflows with divergent paths, help users choose the right path
|
|
109
105
|
- Adapt questions to the specific domain (e.g., game dev vs infrastructure vs web dev)
|
|
110
106
|
- Only recommend workflows that actually exist in the current bundle
|
|
111
|
-
workflow-guidance
|
|
112
|
-
- When *workflow-guidance is called, start an interactive session
|
|
113
|
-
- First, list all available workflows with brief descriptions
|
|
114
|
-
- Ask about the user's project goals and constraints
|
|
115
|
-
- Based on answers, recommend the most suitable workflow
|
|
116
|
-
- If a workflow has multiple paths, help choose between them (e.g., complex vs simple project flow)
|
|
117
|
-
- Explain what documents will be created and which agents will be involved
|
|
118
|
-
- Offer to start the recommended workflow immediately
|
|
107
|
+
- When *workflow-guidance is called, start an interactive session and list all available workflows with brief descriptions
|
|
119
108
|
dependencies:
|
|
120
109
|
tasks:
|
|
121
110
|
- advanced-elicitation
|
package/bmad-core/agents/pm.md
CHANGED
|
@@ -68,7 +68,7 @@ The epic numbering starts at 1 and increments for each epic found.
|
|
|
68
68
|
|
|
69
69
|
### Before (PRD):
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
```markdown
|
|
72
72
|
# Product Requirements Document
|
|
73
73
|
|
|
74
74
|
## 1. Executive Summary
|
|
@@ -91,9 +91,10 @@ Epic content...
|
|
|
91
91
|
|
|
92
92
|
Content here...
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
```
|
|
95
95
|
|
|
96
96
|
### After (PRD):
|
|
97
|
+
|
|
97
98
|
```markdown
|
|
98
99
|
# Product Requirements Document
|
|
99
100
|
|
|
@@ -113,9 +114,11 @@ Epic content...
|
|
|
113
114
|
|
|
114
115
|
## Success Metrics
|
|
115
116
|
Content here...
|
|
116
|
-
|
|
117
|
+
|
|
118
|
+
```
|
|
117
119
|
|
|
118
120
|
### Before (Non-PRD):
|
|
121
|
+
|
|
119
122
|
```markdown
|
|
120
123
|
# Architecture Document
|
|
121
124
|
|
|
@@ -124,9 +127,10 @@ Content...
|
|
|
124
127
|
|
|
125
128
|
## 2.1 Technical Stack & Tools
|
|
126
129
|
Content...
|
|
127
|
-
```
|
|
130
|
+
```
|
|
128
131
|
|
|
129
132
|
### After (Non-PRD):
|
|
133
|
+
|
|
130
134
|
```markdown
|
|
131
135
|
# Architecture Document
|
|
132
136
|
|
|
@@ -135,9 +139,5 @@ Content...
|
|
|
135
139
|
|
|
136
140
|
## Technical Stack Tools
|
|
137
141
|
Content...
|
|
138
|
-
````
|
|
139
|
-
`````
|
|
140
142
|
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
```
|
|
143
|
+
```
|
|
@@ -56,7 +56,7 @@ You are now operating as a Documentation Indexer. Your goal is to ensure all doc
|
|
|
56
56
|
|
|
57
57
|
The index should be organized as follows:
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
```markdown
|
|
60
60
|
# Documentation Index
|
|
61
61
|
|
|
62
62
|
## Root Documents
|
|
@@ -89,7 +89,7 @@ Documents within the `another-folder/` directory:
|
|
|
89
89
|
|
|
90
90
|
Description of nested document.
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
```
|
|
93
93
|
|
|
94
94
|
### Index Entry Format
|
|
95
95
|
|
|
@@ -99,10 +99,7 @@ Each entry should follow this format:
|
|
|
99
99
|
### [Document Title](relative/path/to/file.md)
|
|
100
100
|
|
|
101
101
|
Brief description of the document's purpose and contents.
|
|
102
|
-
|
|
103
|
-
`````
|
|
104
|
-
|
|
105
|
-
````
|
|
102
|
+
```
|
|
106
103
|
|
|
107
104
|
### Rules of Operation
|
|
108
105
|
|
|
@@ -180,4 +177,3 @@ Please provide:
|
|
|
180
177
|
5. Whether to include hidden files/folders (starting with `.`)
|
|
181
178
|
|
|
182
179
|
Would you like to proceed with documentation indexing? Please provide the required input above.
|
|
183
|
-
````
|
|
@@ -84,7 +84,7 @@ Document the choice and key services that will be used.]]
|
|
|
84
84
|
|
|
85
85
|
### Repository Structure
|
|
86
86
|
|
|
87
|
-
[[LLM: Define the repository approach based on PRD requirements and platform choice:
|
|
87
|
+
[[LLM: Define the repository approach based on PRD requirements and platform choice, explain your rationale or ask quetsions to the user if unsure:
|
|
88
88
|
|
|
89
89
|
1. For modern fullstack apps, monorepo is often preferred
|
|
90
90
|
2. Consider tooling (Nx, Turborepo, Lerna, npm workspaces)
|
|
@@ -109,9 +109,9 @@ Document the choice and key services that will be used.]]
|
|
|
109
109
|
|
|
110
110
|
Use appropriate diagram type for clarity.]]
|
|
111
111
|
|
|
112
|
-
|
|
112
|
+
```mermaid
|
|
113
113
|
{{architecture_diagram}}
|
|
114
|
-
```
|
|
114
|
+
```
|
|
115
115
|
|
|
116
116
|
### Architectural Patterns
|
|
117
117
|
|
|
@@ -222,7 +222,7 @@ After presenting all data models, apply `tasks#advanced-elicitation` protocol]]
|
|
|
222
222
|
model_interface;
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
|
-
|
|
225
|
+
```
|
|
226
226
|
|
|
227
227
|
**Relationships:**
|
|
228
228
|
|
|
@@ -246,7 +246,7 @@ After presenting all data models, apply `tasks#advanced-elicitation` protocol]]
|
|
|
246
246
|
|
|
247
247
|
**TypeScript Interface:**
|
|
248
248
|
|
|
249
|
-
|
|
249
|
+
```typescript
|
|
250
250
|
interface User {
|
|
251
251
|
id: string;
|
|
252
252
|
email: string;
|
|
@@ -262,7 +262,7 @@ interface UserProfile {
|
|
|
262
262
|
bio?: string;
|
|
263
263
|
preferences: Record<string, any>;
|
|
264
264
|
}
|
|
265
|
-
```
|
|
265
|
+
```
|
|
266
266
|
|
|
267
267
|
**Relationships:**
|
|
268
268
|
|
|
@@ -300,16 +300,16 @@ servers:
|
|
|
300
300
|
'[object Object]': null
|
|
301
301
|
description:
|
|
302
302
|
'[object Object]': null
|
|
303
|
-
|
|
303
|
+
```
|
|
304
304
|
|
|
305
305
|
^^/CONDITION: has_rest_api^^
|
|
306
306
|
|
|
307
307
|
^^CONDITION: has_graphql_api^^
|
|
308
308
|
|
|
309
|
-
|
|
309
|
+
```graphql
|
|
310
310
|
# GraphQL Schema
|
|
311
311
|
{{graphql_schema}}
|
|
312
|
-
```
|
|
312
|
+
```
|
|
313
313
|
|
|
314
314
|
^^/CONDITION: has_graphql_api^^
|
|
315
315
|
|
|
@@ -322,7 +322,7 @@ servers:
|
|
|
322
322
|
trpc_routers;
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
|
-
|
|
325
|
+
```
|
|
326
326
|
|
|
327
327
|
^^/CONDITION: has_trpc_api^^
|
|
328
328
|
|
|
@@ -467,19 +467,19 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
467
467
|
|
|
468
468
|
**Component Organization:**
|
|
469
469
|
|
|
470
|
-
`````text
|
|
471
|
-
{{component_structure}}
|
|
472
470
|
```text
|
|
471
|
+
{{component_structure}}
|
|
472
|
+
```
|
|
473
473
|
|
|
474
474
|
**Component Template:**
|
|
475
475
|
|
|
476
|
-
|
|
476
|
+
```typescript
|
|
477
477
|
{
|
|
478
478
|
{
|
|
479
479
|
component_template;
|
|
480
480
|
}
|
|
481
481
|
}
|
|
482
|
-
```
|
|
482
|
+
```
|
|
483
483
|
|
|
484
484
|
### State Management Architecture
|
|
485
485
|
|
|
@@ -493,7 +493,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
493
493
|
state_structure;
|
|
494
494
|
}
|
|
495
495
|
}
|
|
496
|
-
|
|
496
|
+
```
|
|
497
497
|
|
|
498
498
|
**State Management Patterns:**
|
|
499
499
|
|
|
@@ -508,17 +508,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
508
508
|
|
|
509
509
|
```text
|
|
510
510
|
{{route_structure}}
|
|
511
|
-
```
|
|
511
|
+
```
|
|
512
512
|
|
|
513
513
|
**Protected Route Pattern:**
|
|
514
514
|
|
|
515
|
-
|
|
515
|
+
```typescript
|
|
516
516
|
{
|
|
517
517
|
{
|
|
518
518
|
protected_route_example;
|
|
519
519
|
}
|
|
520
520
|
}
|
|
521
|
-
```
|
|
521
|
+
```
|
|
522
522
|
|
|
523
523
|
### Frontend Services Layer
|
|
524
524
|
|
|
@@ -532,17 +532,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
532
532
|
api_client_setup;
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
|
-
|
|
535
|
+
```
|
|
536
536
|
|
|
537
537
|
**Service Example:**
|
|
538
538
|
|
|
539
|
-
|
|
539
|
+
```typescript
|
|
540
540
|
{
|
|
541
541
|
{
|
|
542
542
|
service_example;
|
|
543
543
|
}
|
|
544
544
|
}
|
|
545
|
-
```
|
|
545
|
+
```
|
|
546
546
|
|
|
547
547
|
## Backend Architecture
|
|
548
548
|
|
|
@@ -557,11 +557,11 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
557
557
|
^^CONDITION: serverless^^
|
|
558
558
|
**Function Organization:**
|
|
559
559
|
|
|
560
|
-
|
|
560
|
+
```text
|
|
561
561
|
|
|
562
562
|
{{function_structure}}
|
|
563
563
|
|
|
564
|
-
|
|
564
|
+
```
|
|
565
565
|
|
|
566
566
|
**Function Template:**
|
|
567
567
|
|
|
@@ -571,26 +571,26 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
571
571
|
function_template;
|
|
572
572
|
}
|
|
573
573
|
}
|
|
574
|
-
|
|
574
|
+
```
|
|
575
575
|
|
|
576
576
|
^^/CONDITION: serverless^^
|
|
577
577
|
|
|
578
578
|
^^CONDITION: traditional_server^^
|
|
579
579
|
**Controller/Route Organization:**
|
|
580
580
|
|
|
581
|
-
`````text
|
|
582
|
-
{{controller_structure}}
|
|
583
581
|
```text
|
|
582
|
+
{{controller_structure}}
|
|
583
|
+
```
|
|
584
584
|
|
|
585
585
|
**Controller Template:**
|
|
586
586
|
|
|
587
|
-
|
|
587
|
+
```typescript
|
|
588
588
|
{
|
|
589
589
|
{
|
|
590
590
|
controller_template;
|
|
591
591
|
}
|
|
592
592
|
}
|
|
593
|
-
```
|
|
593
|
+
```
|
|
594
594
|
|
|
595
595
|
^^/CONDITION: traditional_server^^
|
|
596
596
|
|
|
@@ -602,17 +602,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
602
602
|
|
|
603
603
|
```sql
|
|
604
604
|
{{database_schema}}
|
|
605
|
-
|
|
605
|
+
```
|
|
606
606
|
|
|
607
607
|
**Data Access Layer:**
|
|
608
608
|
|
|
609
|
-
|
|
609
|
+
```typescript
|
|
610
610
|
{
|
|
611
611
|
{
|
|
612
612
|
repository_pattern;
|
|
613
613
|
}
|
|
614
614
|
}
|
|
615
|
-
```
|
|
615
|
+
```
|
|
616
616
|
|
|
617
617
|
### Authentication and Authorization
|
|
618
618
|
|
|
@@ -622,17 +622,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
622
622
|
|
|
623
623
|
```mermaid
|
|
624
624
|
{{auth_flow_diagram}}
|
|
625
|
-
|
|
625
|
+
```
|
|
626
626
|
|
|
627
627
|
**Middleware/Guards:**
|
|
628
628
|
|
|
629
|
-
|
|
629
|
+
```typescript
|
|
630
630
|
{
|
|
631
631
|
{
|
|
632
632
|
auth_middleware;
|
|
633
633
|
}
|
|
634
634
|
}
|
|
635
|
-
```
|
|
635
|
+
```
|
|
636
636
|
|
|
637
637
|
## Unified Project Structure
|
|
638
638
|
|
|
@@ -692,7 +692,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
692
692
|
├── package.json # Root package.json
|
|
693
693
|
├── {{monorepo_config}} # Monorepo configuration
|
|
694
694
|
└── README.md
|
|
695
|
-
|
|
695
|
+
```
|
|
696
696
|
|
|
697
697
|
@{example: vercel_structure}
|
|
698
698
|
apps/
|
|
@@ -714,19 +714,19 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
714
714
|
|
|
715
715
|
**Prerequisites:**
|
|
716
716
|
|
|
717
|
-
|
|
717
|
+
```bash
|
|
718
718
|
{{prerequisites_commands}}
|
|
719
|
-
```
|
|
719
|
+
```
|
|
720
720
|
|
|
721
721
|
**Initial Setup:**
|
|
722
722
|
|
|
723
723
|
```bash
|
|
724
724
|
{{setup_commands}}
|
|
725
|
-
|
|
725
|
+
```
|
|
726
726
|
|
|
727
727
|
**Development Commands:**
|
|
728
728
|
|
|
729
|
-
|
|
729
|
+
```bash
|
|
730
730
|
# Start all services
|
|
731
731
|
{{start_all_command}}
|
|
732
732
|
|
|
@@ -738,7 +738,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
738
738
|
|
|
739
739
|
# Run tests
|
|
740
740
|
{{test_commands}}
|
|
741
|
-
```
|
|
741
|
+
```
|
|
742
742
|
|
|
743
743
|
### Environment Configuration
|
|
744
744
|
|
|
@@ -753,7 +753,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
753
753
|
|
|
754
754
|
# Shared
|
|
755
755
|
{{shared_env_vars}}
|
|
756
|
-
|
|
756
|
+
```
|
|
757
757
|
|
|
758
758
|
## Deployment Architecture
|
|
759
759
|
|
|
@@ -776,9 +776,9 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
776
776
|
|
|
777
777
|
### CI/CD Pipeline
|
|
778
778
|
|
|
779
|
-
|
|
779
|
+
```yaml
|
|
780
780
|
'[object Object]': null
|
|
781
|
-
```
|
|
781
|
+
```
|
|
782
782
|
|
|
783
783
|
### Environments
|
|
784
784
|
|
|
@@ -836,7 +836,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
836
836
|
|
|
837
837
|
### Testing Pyramid
|
|
838
838
|
|
|
839
|
-
|
|
839
|
+
```text
|
|
840
840
|
|
|
841
841
|
E2E Tests
|
|
842
842
|
/ \
|
|
@@ -845,17 +845,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
845
845
|
/ \
|
|
846
846
|
Frontend Unit Backend Unit
|
|
847
847
|
|
|
848
|
-
```
|
|
848
|
+
```
|
|
849
849
|
|
|
850
850
|
### Test Organization
|
|
851
851
|
|
|
852
852
|
**Frontend Tests:**
|
|
853
853
|
|
|
854
|
-
```
|
|
854
|
+
```text
|
|
855
855
|
|
|
856
856
|
{{frontend_test_structure}}
|
|
857
857
|
|
|
858
|
-
|
|
858
|
+
```
|
|
859
859
|
|
|
860
860
|
**Backend Tests:**
|
|
861
861
|
|
|
@@ -863,15 +863,15 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
863
863
|
|
|
864
864
|
{{backend_test_structure}}
|
|
865
865
|
|
|
866
|
-
```
|
|
866
|
+
```
|
|
867
867
|
|
|
868
868
|
**E2E Tests:**
|
|
869
869
|
|
|
870
|
-
|
|
870
|
+
```text
|
|
871
871
|
|
|
872
872
|
{{e2e_test_structure}}
|
|
873
873
|
|
|
874
|
-
|
|
874
|
+
```
|
|
875
875
|
|
|
876
876
|
### Test Examples
|
|
877
877
|
|
|
@@ -883,17 +883,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
883
883
|
frontend_test_example;
|
|
884
884
|
}
|
|
885
885
|
}
|
|
886
|
-
|
|
886
|
+
```
|
|
887
887
|
|
|
888
888
|
**Backend API Test:**
|
|
889
889
|
|
|
890
|
-
|
|
890
|
+
```typescript
|
|
891
891
|
{
|
|
892
892
|
{
|
|
893
893
|
backend_test_example;
|
|
894
894
|
}
|
|
895
895
|
}
|
|
896
|
-
```
|
|
896
|
+
```
|
|
897
897
|
|
|
898
898
|
**E2E Test:**
|
|
899
899
|
|
|
@@ -903,7 +903,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
903
903
|
e2e_test_example;
|
|
904
904
|
}
|
|
905
905
|
}
|
|
906
|
-
|
|
906
|
+
```
|
|
907
907
|
|
|
908
908
|
## Coding Standards
|
|
909
909
|
|
|
@@ -944,9 +944,9 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
944
944
|
|
|
945
945
|
### Error Flow
|
|
946
946
|
|
|
947
|
-
|
|
947
|
+
```mermaid
|
|
948
948
|
{{error_flow_diagram}}
|
|
949
|
-
```
|
|
949
|
+
```
|
|
950
950
|
|
|
951
951
|
### Error Response Format
|
|
952
952
|
|
|
@@ -960,17 +960,17 @@ interface ApiError {
|
|
|
960
960
|
requestId: string;
|
|
961
961
|
};
|
|
962
962
|
}
|
|
963
|
-
|
|
963
|
+
```
|
|
964
964
|
|
|
965
965
|
### Frontend Error Handling
|
|
966
966
|
|
|
967
|
-
|
|
967
|
+
```typescript
|
|
968
968
|
{
|
|
969
969
|
{
|
|
970
970
|
frontend_error_handler;
|
|
971
971
|
}
|
|
972
972
|
}
|
|
973
|
-
```
|
|
973
|
+
```
|
|
974
974
|
|
|
975
975
|
### Backend Error Handling
|
|
976
976
|
|
|
@@ -980,7 +980,7 @@ interface ApiError {
|
|
|
980
980
|
backend_error_handler;
|
|
981
981
|
}
|
|
982
982
|
}
|
|
983
|
-
|
|
983
|
+
```
|
|
984
984
|
|
|
985
985
|
## Monitoring and Observability
|
|
986
986
|
|