bmad-method 4.2.0 → 4.4.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.
- package/.claude/commands/analyst.md +14 -20
- package/.claude/commands/architect.md +15 -20
- package/.claude/commands/bmad-master.md +18 -26
- package/.claude/commands/bmad-orchestrator.md +80 -33
- package/.claude/commands/dev.md +5 -4
- package/.claude/commands/pm.md +11 -16
- package/.claude/commands/sm.md +20 -25
- package/.cursor/rules/analyst.mdc +13 -19
- package/.cursor/rules/architect.mdc +14 -19
- package/.cursor/rules/bmad-master.mdc +18 -26
- package/.cursor/rules/bmad-orchestrator.mdc +80 -33
- package/.cursor/rules/dev.mdc +5 -4
- package/.cursor/rules/pm.mdc +11 -16
- package/.cursor/rules/sm.mdc +19 -24
- package/.releaserc.json +2 -1
- package/.roo/README.md +0 -11
- package/.vscode/settings.json +4 -0
- package/.windsurf/rules/analyst.md +13 -19
- package/.windsurf/rules/architect.md +14 -19
- package/.windsurf/rules/bmad-master.md +18 -26
- package/.windsurf/rules/bmad-orchestrator.md +80 -33
- package/.windsurf/rules/dev.md +5 -4
- package/.windsurf/rules/pm.md +11 -16
- package/.windsurf/rules/sm.md +19 -24
- package/CHANGELOG.md +126 -2
- package/CONTRIBUTING.md +2 -0
- package/README.md +20 -2
- package/{.bmad-core → bmad-core}/agent-teams/team-all.yml +1 -3
- package/bmad-core/agent-teams/team-fullstack.yml +18 -0
- package/{.bmad-core → bmad-core}/agent-teams/team-no-ui.yml +0 -2
- package/{.bmad-core → bmad-core}/agents/analyst.md +14 -20
- package/{.bmad-core → bmad-core}/agents/architect.md +15 -20
- package/{.bmad-core → bmad-core}/agents/bmad-master.md +18 -26
- package/bmad-core/agents/bmad-orchestrator.md +128 -0
- package/{.bmad-core → bmad-core}/agents/dev.md +5 -4
- package/{.bmad-core → bmad-core}/agents/pm.md +11 -16
- package/{.bmad-core → bmad-core}/agents/qa.md +11 -17
- package/bmad-core/agents/sm.md +55 -0
- package/{.bmad-core → bmad-core}/agents/ux-expert.md +14 -20
- package/bmad-core/bmad-core-config.yml +60 -0
- package/bmad-core/data/bmad-kb.md +47 -0
- package/bmad-core/tasks/doc-migration-task.md +143 -0
- package/bmad-core/tasks/document-project.md +389 -0
- package/bmad-core/tasks/generate-ai-frontend-prompt.md +51 -0
- package/{.bmad-core → bmad-core}/tasks/index-docs.md +8 -3
- package/{.bmad-core → bmad-core}/tasks/shard-doc.md +5 -3
- package/{.bmad-core → bmad-core}/templates/architecture-tmpl.md +16 -13
- package/{.bmad-core → bmad-core}/templates/brownfield-architecture-tmpl.md +6 -6
- package/{.bmad-core → bmad-core}/templates/front-end-spec-tmpl.md +6 -6
- package/{.bmad-core → bmad-core}/templates/fullstack-architecture-tmpl.md +85 -103
- package/{.bmad-core → bmad-core}/templates/prd-tmpl.md +1 -1
- package/bmad-core/templates/simple-project-prd-tmpl.md +461 -0
- package/{.bmad-core → bmad-core}/templates/story-tmpl.md +2 -2
- package/{.bmad-core → bmad-core}/utils/agent-switcher.ide.md +6 -6
- package/{.bmad-core → bmad-core}/utils/workflow-management.md +14 -15
- package/{.bmad-core → bmad-core}/web-bundles/agents/analyst.txt +26 -21
- package/{.bmad-core → bmad-core}/web-bundles/agents/architect.txt +608 -236
- package/{.bmad-core → bmad-core}/web-bundles/agents/bmad-master.txt +467 -1049
- package/bmad-core/web-bundles/agents/bmad-orchestrator.txt +647 -0
- package/{.bmad-core → bmad-core}/web-bundles/agents/dev.txt +5 -4
- package/{.bmad-core → bmad-core}/web-bundles/agents/pm.txt +477 -18
- package/{.bmad-core → bmad-core}/web-bundles/agents/po.txt +3 -3
- package/{.bmad-core → bmad-core}/web-bundles/agents/qa.txt +11 -17
- package/{.bmad-core → bmad-core}/web-bundles/agents/sm.txt +22 -27
- package/{.bmad-core → bmad-core}/web-bundles/agents/ux-expert.txt +57 -70
- package/{.bmad-core → bmad-core}/workflows/greenfield-fullstack.yml +3 -3
- package/{.bmad-core → creator-tools}/tasks/create-agent.md +10 -12
- package/{.bmad-core/tasks/create-expansion-pack.md → creator-tools/tasks/generate-expansion-pack.md} +8 -6
- package/docs/bmad-workflow-guide.md +161 -0
- package/docs/claude-code-guide.md +119 -0
- package/docs/core-architecture.md +213 -0
- package/docs/cursor-guide.md +127 -0
- package/docs/how-to-contribute-with-pull-requests.md +141 -0
- package/docs/roo-code-guide.md +140 -0
- package/docs/user-guide.md +1044 -0
- package/docs/versioning-and-releases.md +4 -4
- package/docs/windsurf-guide.md +127 -0
- package/expansion-packs/README.md +1 -111
- package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/team-game-dev.yml +12 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +58 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +66 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +51 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +201 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +160 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +254 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +631 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/manifest.yml +45 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +111 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +216 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +308 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.md +560 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.md +345 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.md +331 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.md +235 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.md +451 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/agents/game-designer.txt +1758 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/agents/game-developer.txt +1444 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/agents/game-sm.txt +674 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/team-game-dev.txt +4395 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/web-bundles/teams/team-game-dev.txt +4395 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yml +183 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yml +175 -0
- package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/README.md +5 -5
- package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/agents/infra-devops-platform.md +3 -3
- package/expansion-packs/bmad-infrastructure-devops/manifest.yml +23 -0
- package/expansion-packs/bmad-infrastructure-devops/tasks/create-doc.md +74 -0
- package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/templates/infrastructure-platform-from-arch-tmpl.md +0 -0
- package/expansion-packs/bmad-infrastructure-devops/web-bundles/agents/infra-devops-platform.txt +2021 -0
- package/package.json +20 -14
- package/tools/builders/web-builder.js +207 -17
- package/tools/cli.js +55 -7
- package/tools/installer/README.md +2 -2
- package/tools/installer/bin/bmad.js +107 -28
- package/tools/installer/config/install.config.yml +43 -43
- package/tools/installer/lib/config-loader.js +39 -2
- package/tools/installer/lib/file-manager.js +20 -3
- package/tools/installer/lib/ide-setup.js +11 -1
- package/tools/installer/lib/installer.js +275 -29
- package/tools/installer/package-lock.json +538 -336
- package/tools/installer/package.json +8 -8
- package/tools/lib/dependency-resolver.js +2 -2
- package/tools/semantic-release-sync-installer.js +31 -0
- package/tools/sync-installer-version.js +34 -0
- package/tools/upgraders/v3-to-v4-upgrader.js +18 -13
- package/tools/version-bump.js +33 -26
- package/tools/yaml-format.js +54 -25
- package/.bmad-core/agent-teams/team-fullstack.yml +0 -26
- package/.bmad-core/agents/bmad-orchestrator.md +0 -81
- package/.bmad-core/agents/sm.md +0 -60
- package/.bmad-core/data/bmad-kb.md +0 -36
- package/.bmad-core/schemas/agent-team-schema.yml +0 -153
- package/.bmad-core/tasks/create-team.md +0 -229
- package/.bmad-core/tasks/doc-migration-task.md +0 -198
- package/.bmad-core/tasks/generate-ai-frontend-prompt.md +0 -58
- package/.bmad-core/web-bundles/agents/bmad-orchestrator.txt +0 -1455
- package/.bmad-core/web-bundles/teams/team-all.txt +0 -10315
- package/.bmad-core/web-bundles/teams/team-fullstack.txt +0 -9663
- package/.bmad-core/web-bundles/teams/team-no-ui.txt +0 -8504
- package/.claude/settings.local.json +0 -22
- package/expansion-packs/infrastructure-devops/manifest.yml +0 -38
- /package/{.bmad-core → bmad-core}/agents/po.md +0 -0
- /package/{.bmad-core → bmad-core}/checklists/architect-checklist.md +0 -0
- /package/{.bmad-core → bmad-core}/checklists/change-checklist.md +0 -0
- /package/{.bmad-core → bmad-core}/checklists/pm-checklist.md +0 -0
- /package/{.bmad-core → bmad-core}/checklists/po-master-checklist.md +0 -0
- /package/{.bmad-core → bmad-core}/checklists/story-dod-checklist.md +0 -0
- /package/{.bmad-core → bmad-core}/checklists/story-draft-checklist.md +0 -0
- /package/{.bmad-core → bmad-core}/data/technical-preferences.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/advanced-elicitation.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/brainstorming-techniques.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/brownfield-create-epic.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/brownfield-create-story.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/core-dump.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/correct-course.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/create-deep-research-prompt.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/create-doc.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/create-next-story.md +0 -0
- /package/{.bmad-core → bmad-core}/tasks/execute-checklist.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/agent-tmpl.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/brownfield-prd-tmpl.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/competitor-analysis-tmpl.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/expansion-pack-plan-tmpl.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/front-end-architecture-tmpl.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/market-research-tmpl.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/project-brief-tmpl.md +0 -0
- /package/{.bmad-core → bmad-core}/templates/web-agent-startup-instructions-template.md +0 -0
- /package/{.bmad-core → bmad-core}/utils/template-format.md +0 -0
- /package/{.bmad-core → bmad-core}/workflows/brownfield-fullstack.yml +0 -0
- /package/{.bmad-core → bmad-core}/workflows/brownfield-service.yml +0 -0
- /package/{.bmad-core → bmad-core}/workflows/brownfield-ui.yml +0 -0
- /package/{.bmad-core → bmad-core}/workflows/greenfield-service.yml +0 -0
- /package/{.bmad-core → bmad-core}/workflows/greenfield-ui.yml +0 -0
- /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/checklists/infrastructure-checklist.md +0 -0
- /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/tasks/review-infrastructure.md +0 -0
- /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/tasks/validate-infrastructure.md +0 -0
- /package/expansion-packs/{infrastructure-devops → bmad-infrastructure-devops}/templates/infrastructure-architecture-tmpl.md +0 -0
|
@@ -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
|
|
@@ -88,7 +88,8 @@ Documents within the `another-folder/` directory:
|
|
|
88
88
|
### [Nested Document](./another-folder/document.md)
|
|
89
89
|
|
|
90
90
|
Description of nested document.
|
|
91
|
-
|
|
91
|
+
|
|
92
|
+
````text
|
|
92
93
|
|
|
93
94
|
### Index Entry Format
|
|
94
95
|
|
|
@@ -98,7 +99,10 @@ Each entry should follow this format:
|
|
|
98
99
|
### [Document Title](relative/path/to/file.md)
|
|
99
100
|
|
|
100
101
|
Brief description of the document's purpose and contents.
|
|
101
|
-
|
|
102
|
+
````
|
|
103
|
+
`````
|
|
104
|
+
|
|
105
|
+
````
|
|
102
106
|
|
|
103
107
|
### Rules of Operation
|
|
104
108
|
|
|
@@ -176,3 +180,4 @@ Please provide:
|
|
|
176
180
|
5. Whether to include hidden files/folders (starting with `.`)
|
|
177
181
|
|
|
178
182
|
Would you like to proceed with documentation indexing? Please provide the required input above.
|
|
183
|
+
````
|
|
@@ -101,7 +101,7 @@ Create an `index.md` file in the sharded folder that:
|
|
|
101
101
|
1. Contains the original level 1 heading and any content before the first level 2 section
|
|
102
102
|
2. Lists all the sharded files with links:
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
````markdown
|
|
105
105
|
# Original Document Title
|
|
106
106
|
|
|
107
107
|
[Original introduction content if any]
|
|
@@ -112,7 +112,8 @@ Create an `index.md` file in the sharded folder that:
|
|
|
112
112
|
- [Section Name 2](./section-name-2.md)
|
|
113
113
|
- [Section Name 3](./section-name-3.md)
|
|
114
114
|
...
|
|
115
|
-
|
|
115
|
+
|
|
116
|
+
````text
|
|
116
117
|
|
|
117
118
|
### 5. Preserve Special Content
|
|
118
119
|
|
|
@@ -122,7 +123,8 @@ Create an `index.md` file in the sharded folder that:
|
|
|
122
123
|
|
|
123
124
|
```language
|
|
124
125
|
content
|
|
125
|
-
|
|
126
|
+
````
|
|
127
|
+
````
|
|
126
128
|
|
|
127
129
|
2. **Mermaid diagrams**: Preserve complete syntax:
|
|
128
130
|
|
|
@@ -136,7 +136,7 @@ Common patterns to consider:
|
|
|
136
136
|
|
|
137
137
|
[[LLM: This is the DEFINITIVE technology selection section. Work with the user to make specific choices:
|
|
138
138
|
|
|
139
|
-
1. Review PRD technical assumptions and any preferences from `data#technical-preferences`
|
|
139
|
+
1. Review PRD technical assumptions and any preferences from `data#technical-preferences` or an attached `technical-preferences`
|
|
140
140
|
2. For each category, present 2-3 viable options with pros/cons
|
|
141
141
|
3. Make a clear recommendation based on project needs
|
|
142
142
|
4. Get explicit user approval for each selection
|
|
@@ -341,18 +341,21 @@ Use YAML format for better readability. If no REST API, skip this section.]]
|
|
|
341
341
|
|
|
342
342
|
^^CONDITION: has_rest_api^^
|
|
343
343
|
|
|
344
|
-
|
|
344
|
+
````yaml
|
|
345
345
|
openapi: 3.0.0
|
|
346
346
|
info:
|
|
347
|
-
title:
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
347
|
+
title:
|
|
348
|
+
'[object Object]': null
|
|
349
|
+
version:
|
|
350
|
+
'[object Object]': null
|
|
351
|
+
description:
|
|
352
|
+
'[object Object]': null
|
|
351
353
|
servers:
|
|
352
|
-
- url:
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
354
|
+
- url:
|
|
355
|
+
'[object Object]': null
|
|
356
|
+
description:
|
|
357
|
+
'[object Object]': null
|
|
358
|
+
```text
|
|
356
359
|
|
|
357
360
|
^^/CONDITION: has_rest_api^^
|
|
358
361
|
|
|
@@ -415,7 +418,7 @@ After presenting the structure, apply `tasks#advanced-elicitation` protocol to r
|
|
|
415
418
|
├── {{package-manifest}} # Dependencies manifest
|
|
416
419
|
├── {{config-files}} # Language/framework configs
|
|
417
420
|
└── README.md # Project documentation
|
|
418
|
-
```
|
|
421
|
+
```text
|
|
419
422
|
|
|
420
423
|
@{example: monorepo-structure}
|
|
421
424
|
project-root/
|
|
@@ -463,9 +466,9 @@ Get user input on deployment preferences and CI/CD tool choices.]]
|
|
|
463
466
|
|
|
464
467
|
### Environment Promotion Flow
|
|
465
468
|
|
|
466
|
-
```
|
|
469
|
+
```text
|
|
467
470
|
{{promotion_flow_diagram}}
|
|
468
|
-
|
|
471
|
+
````
|
|
469
472
|
|
|
470
473
|
### Rollback Strategy
|
|
471
474
|
|
|
@@ -222,9 +222,9 @@ Present component architecture and apply `tasks#advanced-elicitation` protocol]]
|
|
|
222
222
|
|
|
223
223
|
[[LLM: Create Mermaid diagram showing how new components interact with existing ones]]
|
|
224
224
|
|
|
225
|
-
|
|
225
|
+
````mermaid
|
|
226
226
|
{{component_interaction_diagram}}
|
|
227
|
-
```
|
|
227
|
+
```text
|
|
228
228
|
|
|
229
229
|
## API Design and Integration
|
|
230
230
|
|
|
@@ -258,13 +258,13 @@ Present API design and apply `tasks#advanced-elicitation` protocol]]
|
|
|
258
258
|
|
|
259
259
|
```json
|
|
260
260
|
{{request_schema}}
|
|
261
|
-
|
|
261
|
+
````
|
|
262
262
|
|
|
263
263
|
**Response:**
|
|
264
264
|
|
|
265
|
-
|
|
265
|
+
````json
|
|
266
266
|
{{response_schema}}
|
|
267
|
-
```
|
|
267
|
+
```text
|
|
268
268
|
|
|
269
269
|
<</REPEAT>>
|
|
270
270
|
|
|
@@ -313,7 +313,7 @@ Present integration plan and apply `tasks#advanced-elicitation` protocol]]
|
|
|
313
313
|
|
|
314
314
|
```plaintext
|
|
315
315
|
{{existing_structure_relevant_parts}}
|
|
316
|
-
|
|
316
|
+
````
|
|
317
317
|
|
|
318
318
|
### New File Organization
|
|
319
319
|
|
|
@@ -74,9 +74,9 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
74
74
|
|
|
75
75
|
### Site Map / Screen Inventory
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
````mermaid
|
|
78
78
|
{{sitemap_diagram}}
|
|
79
|
-
```
|
|
79
|
+
```text
|
|
80
80
|
|
|
81
81
|
@{example: sitemap}
|
|
82
82
|
|
|
@@ -93,7 +93,7 @@ graph TD
|
|
|
93
93
|
D --> D1[Profile]
|
|
94
94
|
D --> D2[Settings]
|
|
95
95
|
D --> D3[Billing]
|
|
96
|
-
|
|
96
|
+
````
|
|
97
97
|
|
|
98
98
|
@{/example}
|
|
99
99
|
|
|
@@ -129,9 +129,9 @@ Create subsections for each major flow. After presenting all flows, apply `tasks
|
|
|
129
129
|
|
|
130
130
|
#### Flow Diagram
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
````mermaid
|
|
133
133
|
{{flow_diagram}}
|
|
134
|
-
```
|
|
134
|
+
```text
|
|
135
135
|
|
|
136
136
|
**Edge Cases & Error Handling:**
|
|
137
137
|
|
|
@@ -165,7 +165,7 @@ graph TD
|
|
|
165
165
|
Validate -->|Yes| Verify[Email Verification]
|
|
166
166
|
Verify --> Complete[Account Created]
|
|
167
167
|
Complete --> Dashboard[Redirect to Dashboard]
|
|
168
|
-
|
|
168
|
+
````
|
|
169
169
|
|
|
170
170
|
**Edge Cases & Error Handling:**
|
|
171
171
|
|
|
@@ -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
|
+
```text
|
|
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
|
+
```text
|
|
266
266
|
|
|
267
267
|
**Relationships:**
|
|
268
268
|
|
|
@@ -286,27 +286,30 @@ Use appropriate format for the chosen API style. If no API (e.g., static site),
|
|
|
286
286
|
|
|
287
287
|
^^CONDITION: has_rest_api^^
|
|
288
288
|
|
|
289
|
-
```
|
|
289
|
+
```yml
|
|
290
290
|
openapi: 3.0.0
|
|
291
291
|
info:
|
|
292
|
-
title:
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
292
|
+
title:
|
|
293
|
+
'[object Object]': null
|
|
294
|
+
version:
|
|
295
|
+
'[object Object]': null
|
|
296
|
+
description:
|
|
297
|
+
'[object Object]': null
|
|
296
298
|
servers:
|
|
297
|
-
- url:
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
- url:
|
|
300
|
+
'[object Object]': null
|
|
301
|
+
description:
|
|
302
|
+
'[object Object]': null
|
|
303
|
+
````
|
|
301
304
|
|
|
302
305
|
^^/CONDITION: has_rest_api^^
|
|
303
306
|
|
|
304
307
|
^^CONDITION: has_graphql_api^^
|
|
305
308
|
|
|
306
|
-
|
|
309
|
+
````graphql
|
|
307
310
|
# GraphQL Schema
|
|
308
311
|
{{graphql_schema}}
|
|
309
|
-
```
|
|
312
|
+
```text
|
|
310
313
|
|
|
311
314
|
^^/CONDITION: has_graphql_api^^
|
|
312
315
|
|
|
@@ -319,7 +322,7 @@ servers:
|
|
|
319
322
|
trpc_routers;
|
|
320
323
|
}
|
|
321
324
|
}
|
|
322
|
-
|
|
325
|
+
````
|
|
323
326
|
|
|
324
327
|
^^/CONDITION: has_trpc_api^^
|
|
325
328
|
|
|
@@ -464,19 +467,19 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
464
467
|
|
|
465
468
|
**Component Organization:**
|
|
466
469
|
|
|
467
|
-
|
|
470
|
+
`````text
|
|
468
471
|
{{component_structure}}
|
|
469
|
-
```
|
|
472
|
+
```text
|
|
470
473
|
|
|
471
474
|
**Component Template:**
|
|
472
475
|
|
|
473
|
-
|
|
476
|
+
````typescript
|
|
474
477
|
{
|
|
475
478
|
{
|
|
476
479
|
component_template;
|
|
477
480
|
}
|
|
478
481
|
}
|
|
479
|
-
```
|
|
482
|
+
```text
|
|
480
483
|
|
|
481
484
|
### State Management Architecture
|
|
482
485
|
|
|
@@ -490,7 +493,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
490
493
|
state_structure;
|
|
491
494
|
}
|
|
492
495
|
}
|
|
493
|
-
|
|
496
|
+
`````
|
|
494
497
|
|
|
495
498
|
**State Management Patterns:**
|
|
496
499
|
|
|
@@ -503,19 +506,19 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
503
506
|
|
|
504
507
|
**Route Organization:**
|
|
505
508
|
|
|
506
|
-
|
|
509
|
+
`````text
|
|
507
510
|
{{route_structure}}
|
|
508
|
-
```
|
|
511
|
+
```text
|
|
509
512
|
|
|
510
513
|
**Protected Route Pattern:**
|
|
511
514
|
|
|
512
|
-
|
|
515
|
+
````typescript
|
|
513
516
|
{
|
|
514
517
|
{
|
|
515
518
|
protected_route_example;
|
|
516
519
|
}
|
|
517
520
|
}
|
|
518
|
-
```
|
|
521
|
+
```text
|
|
519
522
|
|
|
520
523
|
### Frontend Services Layer
|
|
521
524
|
|
|
@@ -529,17 +532,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
529
532
|
api_client_setup;
|
|
530
533
|
}
|
|
531
534
|
}
|
|
532
|
-
|
|
535
|
+
`````
|
|
533
536
|
|
|
534
537
|
**Service Example:**
|
|
535
538
|
|
|
536
|
-
|
|
539
|
+
````typescript
|
|
537
540
|
{
|
|
538
541
|
{
|
|
539
542
|
service_example;
|
|
540
543
|
}
|
|
541
544
|
}
|
|
542
|
-
```
|
|
545
|
+
```text
|
|
543
546
|
|
|
544
547
|
## Backend Architecture
|
|
545
548
|
|
|
@@ -554,9 +557,11 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
554
557
|
^^CONDITION: serverless^^
|
|
555
558
|
**Function Organization:**
|
|
556
559
|
|
|
557
|
-
|
|
560
|
+
````
|
|
561
|
+
|
|
558
562
|
{{function_structure}}
|
|
559
|
-
|
|
563
|
+
|
|
564
|
+
````text
|
|
560
565
|
|
|
561
566
|
**Function Template:**
|
|
562
567
|
|
|
@@ -566,26 +571,26 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
566
571
|
function_template;
|
|
567
572
|
}
|
|
568
573
|
}
|
|
569
|
-
|
|
574
|
+
````
|
|
570
575
|
|
|
571
576
|
^^/CONDITION: serverless^^
|
|
572
577
|
|
|
573
578
|
^^CONDITION: traditional_server^^
|
|
574
579
|
**Controller/Route Organization:**
|
|
575
580
|
|
|
576
|
-
|
|
581
|
+
`````text
|
|
577
582
|
{{controller_structure}}
|
|
578
|
-
```
|
|
583
|
+
```text
|
|
579
584
|
|
|
580
585
|
**Controller Template:**
|
|
581
586
|
|
|
582
|
-
|
|
587
|
+
````typescript
|
|
583
588
|
{
|
|
584
589
|
{
|
|
585
590
|
controller_template;
|
|
586
591
|
}
|
|
587
592
|
}
|
|
588
|
-
```
|
|
593
|
+
```text
|
|
589
594
|
|
|
590
595
|
^^/CONDITION: traditional_server^^
|
|
591
596
|
|
|
@@ -597,17 +602,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
597
602
|
|
|
598
603
|
```sql
|
|
599
604
|
{{database_schema}}
|
|
600
|
-
|
|
605
|
+
`````
|
|
601
606
|
|
|
602
607
|
**Data Access Layer:**
|
|
603
608
|
|
|
604
|
-
|
|
609
|
+
````typescript
|
|
605
610
|
{
|
|
606
611
|
{
|
|
607
612
|
repository_pattern;
|
|
608
613
|
}
|
|
609
614
|
}
|
|
610
|
-
```
|
|
615
|
+
```text
|
|
611
616
|
|
|
612
617
|
### Authentication and Authorization
|
|
613
618
|
|
|
@@ -617,17 +622,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
617
622
|
|
|
618
623
|
```mermaid
|
|
619
624
|
{{auth_flow_diagram}}
|
|
620
|
-
|
|
625
|
+
````
|
|
621
626
|
|
|
622
627
|
**Middleware/Guards:**
|
|
623
628
|
|
|
624
|
-
|
|
629
|
+
````typescript
|
|
625
630
|
{
|
|
626
631
|
{
|
|
627
632
|
auth_middleware;
|
|
628
633
|
}
|
|
629
634
|
}
|
|
630
|
-
```
|
|
635
|
+
```text
|
|
631
636
|
|
|
632
637
|
## Unified Project Structure
|
|
633
638
|
|
|
@@ -687,7 +692,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
687
692
|
├── package.json # Root package.json
|
|
688
693
|
├── {{monorepo_config}} # Monorepo configuration
|
|
689
694
|
└── README.md
|
|
690
|
-
|
|
695
|
+
````
|
|
691
696
|
|
|
692
697
|
@{example: vercel_structure}
|
|
693
698
|
apps/
|
|
@@ -709,19 +714,19 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
709
714
|
|
|
710
715
|
**Prerequisites:**
|
|
711
716
|
|
|
712
|
-
|
|
717
|
+
````bash
|
|
713
718
|
{{prerequisites_commands}}
|
|
714
|
-
```
|
|
719
|
+
```text
|
|
715
720
|
|
|
716
721
|
**Initial Setup:**
|
|
717
722
|
|
|
718
723
|
```bash
|
|
719
724
|
{{setup_commands}}
|
|
720
|
-
|
|
725
|
+
````
|
|
721
726
|
|
|
722
727
|
**Development Commands:**
|
|
723
728
|
|
|
724
|
-
|
|
729
|
+
````bash
|
|
725
730
|
# Start all services
|
|
726
731
|
{{start_all_command}}
|
|
727
732
|
|
|
@@ -733,7 +738,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
733
738
|
|
|
734
739
|
# Run tests
|
|
735
740
|
{{test_commands}}
|
|
736
|
-
```
|
|
741
|
+
```text
|
|
737
742
|
|
|
738
743
|
### Environment Configuration
|
|
739
744
|
|
|
@@ -748,7 +753,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
748
753
|
|
|
749
754
|
# Shared
|
|
750
755
|
{{shared_env_vars}}
|
|
751
|
-
|
|
756
|
+
````
|
|
752
757
|
|
|
753
758
|
## Deployment Architecture
|
|
754
759
|
|
|
@@ -771,9 +776,9 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
771
776
|
|
|
772
777
|
### CI/CD Pipeline
|
|
773
778
|
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
```
|
|
779
|
+
````yaml
|
|
780
|
+
'[object Object]': null
|
|
781
|
+
```text
|
|
777
782
|
|
|
778
783
|
### Environments
|
|
779
784
|
|
|
@@ -831,33 +836,42 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
831
836
|
|
|
832
837
|
### Testing Pyramid
|
|
833
838
|
|
|
834
|
-
|
|
839
|
+
````
|
|
840
|
+
|
|
835
841
|
E2E Tests
|
|
836
842
|
/ \
|
|
837
843
|
Integration Tests
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
844
|
+
|
|
845
|
+
/ \
|
|
846
|
+
Frontend Unit Backend Unit
|
|
847
|
+
|
|
848
|
+
```text
|
|
841
849
|
|
|
842
850
|
### Test Organization
|
|
843
851
|
|
|
844
852
|
**Frontend Tests:**
|
|
845
853
|
|
|
846
854
|
```
|
|
855
|
+
|
|
847
856
|
{{frontend_test_structure}}
|
|
848
|
-
|
|
857
|
+
|
|
858
|
+
````text
|
|
849
859
|
|
|
850
860
|
**Backend Tests:**
|
|
851
861
|
|
|
852
|
-
```
|
|
862
|
+
```text
|
|
863
|
+
|
|
853
864
|
{{backend_test_structure}}
|
|
854
|
-
|
|
865
|
+
|
|
866
|
+
```text
|
|
855
867
|
|
|
856
868
|
**E2E Tests:**
|
|
857
869
|
|
|
858
|
-
|
|
870
|
+
````
|
|
871
|
+
|
|
859
872
|
{{e2e_test_structure}}
|
|
860
|
-
|
|
873
|
+
|
|
874
|
+
````text
|
|
861
875
|
|
|
862
876
|
### Test Examples
|
|
863
877
|
|
|
@@ -869,17 +883,17 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
869
883
|
frontend_test_example;
|
|
870
884
|
}
|
|
871
885
|
}
|
|
872
|
-
|
|
886
|
+
````
|
|
873
887
|
|
|
874
888
|
**Backend API Test:**
|
|
875
889
|
|
|
876
|
-
|
|
890
|
+
````typescript
|
|
877
891
|
{
|
|
878
892
|
{
|
|
879
893
|
backend_test_example;
|
|
880
894
|
}
|
|
881
895
|
}
|
|
882
|
-
```
|
|
896
|
+
```text
|
|
883
897
|
|
|
884
898
|
**E2E Test:**
|
|
885
899
|
|
|
@@ -889,7 +903,7 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
889
903
|
e2e_test_example;
|
|
890
904
|
}
|
|
891
905
|
}
|
|
892
|
-
|
|
906
|
+
````
|
|
893
907
|
|
|
894
908
|
## Coding Standards
|
|
895
909
|
|
|
@@ -930,9 +944,9 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
930
944
|
|
|
931
945
|
### Error Flow
|
|
932
946
|
|
|
933
|
-
|
|
947
|
+
````mermaid
|
|
934
948
|
{{error_flow_diagram}}
|
|
935
|
-
```
|
|
949
|
+
```text
|
|
936
950
|
|
|
937
951
|
### Error Response Format
|
|
938
952
|
|
|
@@ -946,17 +960,17 @@ interface ApiError {
|
|
|
946
960
|
requestId: string;
|
|
947
961
|
};
|
|
948
962
|
}
|
|
949
|
-
|
|
963
|
+
````
|
|
950
964
|
|
|
951
965
|
### Frontend Error Handling
|
|
952
966
|
|
|
953
|
-
|
|
967
|
+
````typescript
|
|
954
968
|
{
|
|
955
969
|
{
|
|
956
970
|
frontend_error_handler;
|
|
957
971
|
}
|
|
958
972
|
}
|
|
959
|
-
```
|
|
973
|
+
```text
|
|
960
974
|
|
|
961
975
|
### Backend Error Handling
|
|
962
976
|
|
|
@@ -966,7 +980,7 @@ interface ApiError {
|
|
|
966
980
|
backend_error_handler;
|
|
967
981
|
}
|
|
968
982
|
}
|
|
969
|
-
|
|
983
|
+
````
|
|
970
984
|
|
|
971
985
|
## Monitoring and Observability
|
|
972
986
|
|
|
@@ -1000,35 +1014,3 @@ After presenting this section, apply `tasks#advanced-elicitation` protocol]]
|
|
|
1000
1014
|
## Checklist Results Report
|
|
1001
1015
|
|
|
1002
1016
|
[[LLM: Before running the checklist, offer to output the full architecture document. Once user confirms, execute the `architect-checklist` and populate results here.]]
|
|
1003
|
-
|
|
1004
|
-
## Next Steps
|
|
1005
|
-
|
|
1006
|
-
[[LLM: Provide specific next steps for implementation.]]
|
|
1007
|
-
|
|
1008
|
-
### Implementation Order
|
|
1009
|
-
|
|
1010
|
-
1. **Environment Setup**
|
|
1011
|
-
|
|
1012
|
-
- Initialize monorepo structure
|
|
1013
|
-
- Configure development environment
|
|
1014
|
-
- Set up version control
|
|
1015
|
-
|
|
1016
|
-
2. **Foundation (Epic 1)**
|
|
1017
|
-
|
|
1018
|
-
- Implement authentication flow
|
|
1019
|
-
- Set up database schema
|
|
1020
|
-
- Create basic API structure
|
|
1021
|
-
- Implement core UI components
|
|
1022
|
-
|
|
1023
|
-
3. **Feature Development**
|
|
1024
|
-
- Follow story sequence from PRD
|
|
1025
|
-
- Maintain type safety across stack
|
|
1026
|
-
- Write tests as you go
|
|
1027
|
-
|
|
1028
|
-
### Developer Handoff Prompts
|
|
1029
|
-
|
|
1030
|
-
**For Scrum Master:**
|
|
1031
|
-
"Create stories for {{Project Name}} using the PRD at docs/prd.md and this fullstack architecture at docs/fullstack-architecture.md. Focus on Epic 1 implementation."
|
|
1032
|
-
|
|
1033
|
-
**For Developer:**
|
|
1034
|
-
"Implement Story 1.1 from docs/stories/epic1/story-1.1.md using the fullstack architecture at docs/fullstack-architecture.md. Follow the coding standards and use the defined tech stack."
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
|
|
89
89
|
[[LLM: Gather technical decisions that will guide the Architect. Steps:
|
|
90
90
|
|
|
91
|
-
1. Check if `data#technical-preferences` file exists - use it to pre-populate choices
|
|
91
|
+
1. Check if `data#technical-preferences` or an attached `technical-preferences` file exists - use it to pre-populate choices
|
|
92
92
|
2. Ask user about: languages, frameworks, starter templates, libraries, APIs, deployment targets
|
|
93
93
|
3. For unknowns, offer guidance based on project goals and MVP scope
|
|
94
94
|
4. Document ALL technical choices with rationale (why this choice fits the project)
|