bmad-method 5.0.0-beta.2 → 5.0.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/.github/ISSUE_TEMPLATE/bug_report.md +3 -3
- package/.github/ISSUE_TEMPLATE/feature_request.md +3 -3
- package/.github/workflows/discord.yaml +11 -2
- package/.github/workflows/format-check.yaml +42 -0
- package/.github/workflows/manual-release.yaml +173 -0
- package/.husky/pre-commit +3 -0
- package/.vscode/settings.json +26 -1
- package/CHANGELOG.md +0 -11
- package/README.md +2 -0
- package/bmad-core/agent-teams/team-all.yaml +1 -1
- package/bmad-core/agents/bmad-orchestrator.md +1 -1
- package/bmad-core/agents/dev.md +4 -4
- package/bmad-core/data/bmad-kb.md +1 -1
- package/bmad-core/data/test-levels-framework.md +12 -12
- package/bmad-core/tasks/facilitate-brainstorming-session.md +1 -1
- package/bmad-core/tasks/nfr-assess.md +10 -10
- package/bmad-core/tasks/qa-gate.md +23 -23
- package/bmad-core/tasks/review-story.md +18 -18
- package/bmad-core/tasks/risk-profile.md +25 -25
- package/bmad-core/tasks/test-design.md +9 -9
- package/bmad-core/tasks/trace-requirements.md +21 -21
- package/bmad-core/templates/architecture-tmpl.yaml +49 -49
- package/bmad-core/templates/brainstorming-output-tmpl.yaml +5 -5
- package/bmad-core/templates/brownfield-architecture-tmpl.yaml +31 -31
- package/bmad-core/templates/brownfield-prd-tmpl.yaml +13 -13
- package/bmad-core/templates/competitor-analysis-tmpl.yaml +19 -6
- package/bmad-core/templates/front-end-architecture-tmpl.yaml +21 -9
- package/bmad-core/templates/front-end-spec-tmpl.yaml +24 -24
- package/bmad-core/templates/fullstack-architecture-tmpl.yaml +122 -104
- package/bmad-core/templates/market-research-tmpl.yaml +2 -2
- package/bmad-core/templates/prd-tmpl.yaml +9 -9
- package/bmad-core/templates/project-brief-tmpl.yaml +4 -4
- package/bmad-core/templates/qa-gate-tmpl.yaml +9 -9
- package/bmad-core/templates/story-tmpl.yaml +12 -12
- package/bmad-core/workflows/brownfield-fullstack.yaml +9 -9
- package/bmad-core/workflows/brownfield-service.yaml +1 -1
- package/bmad-core/workflows/brownfield-ui.yaml +1 -1
- package/bmad-core/workflows/greenfield-fullstack.yaml +1 -1
- package/bmad-core/workflows/greenfield-service.yaml +1 -1
- package/bmad-core/workflows/greenfield-ui.yaml +1 -1
- package/common/utils/bmad-doc-template.md +5 -5
- package/dist/agents/analyst.txt +28 -15
- package/dist/agents/architect.txt +220 -190
- package/dist/agents/bmad-master.txt +298 -255
- package/dist/agents/bmad-orchestrator.txt +1 -1
- package/dist/agents/pm.txt +20 -20
- package/dist/agents/po.txt +11 -11
- package/dist/agents/qa.txt +275 -618
- package/dist/agents/sm.txt +11 -11
- package/dist/agents/ux-expert.txt +23 -23
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +109 -109
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +75 -77
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +41 -41
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +483 -474
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +1 -1
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +149 -149
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +20 -20
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +371 -358
- package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +25 -25
- package/dist/teams/team-all.txt +581 -881
- package/dist/teams/team-fullstack.txt +316 -273
- package/dist/teams/team-ide-minimal.txt +276 -619
- package/dist/teams/team-no-ui.txt +281 -238
- package/docs/versioning-and-releases.md +114 -44
- package/eslint.config.mjs +119 -0
- package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +26 -26
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +4 -4
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +1 -1
- package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +26 -28
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +50 -50
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +23 -23
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +24 -24
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +42 -42
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +5 -5
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +1 -1
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +3 -3
- package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +1 -1
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +23 -23
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +63 -63
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +20 -20
- package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +5 -5
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +1 -1
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +20 -20
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +7 -7
- package/package.json +62 -39
- package/prettier.config.mjs +32 -0
- package/release_notes.md +30 -0
- package/tools/bmad-npx-wrapper.js +10 -10
- package/tools/builders/web-builder.js +124 -130
- package/tools/bump-all-versions.js +42 -33
- package/tools/bump-expansion-version.js +23 -16
- package/tools/cli.js +10 -12
- package/tools/flattener/aggregate.js +10 -10
- package/tools/flattener/binary.js +44 -17
- package/tools/flattener/discovery.js +19 -18
- package/tools/flattener/files.js +6 -6
- package/tools/flattener/ignoreRules.js +125 -125
- package/tools/flattener/main.js +201 -304
- package/tools/flattener/projectRoot.js +75 -73
- package/tools/flattener/prompts.js +9 -9
- package/tools/flattener/stats.helpers.js +131 -67
- package/tools/flattener/stats.js +3 -3
- package/tools/flattener/test-matrix.js +201 -193
- package/tools/flattener/xml.js +33 -31
- package/tools/installer/bin/bmad.js +130 -89
- package/tools/installer/config/ide-agent-config.yaml +1 -1
- package/tools/installer/config/install.config.yaml +2 -2
- package/tools/installer/lib/config-loader.js +46 -42
- package/tools/installer/lib/file-manager.js +91 -113
- package/tools/installer/lib/ide-base-setup.js +57 -56
- package/tools/installer/lib/ide-setup.js +375 -343
- package/tools/installer/lib/installer.js +875 -714
- package/tools/installer/lib/memory-profiler.js +54 -53
- package/tools/installer/lib/module-manager.js +19 -15
- package/tools/installer/lib/resource-locator.js +26 -28
- package/tools/installer/package.json +19 -19
- package/tools/lib/dependency-resolver.js +26 -30
- package/tools/lib/yaml-utils.js +7 -7
- package/tools/preview-release-notes.js +66 -0
- package/tools/shared/bannerArt.js +3 -3
- package/tools/sync-installer-version.js +7 -9
- package/tools/update-expansion-version.js +14 -15
- package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
- package/tools/version-bump.js +41 -26
- package/tools/yaml-format.js +56 -43
- package/.github/workflows/promote-to-stable.yml +0 -144
- package/.github/workflows/release.yaml +0 -60
- package/.releaserc.json +0 -21
- package/tools/semantic-release-sync-installer.js +0 -30
|
@@ -1044,7 +1044,7 @@ You are the "Vibe CEO" - thinking like a CEO with unlimited resources and a sing
|
|
|
1044
1044
|
|
|
1045
1045
|
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
|
|
1046
1046
|
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
|
|
1047
|
-
- **Windsurf**:
|
|
1047
|
+
- **Windsurf**: `/agent-name` (e.g., `/bmad-master`)
|
|
1048
1048
|
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
|
|
1049
1049
|
- **Roo Code**: Select mode from mode selector (e.g., `bmad-master`)
|
|
1050
1050
|
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
|
|
@@ -1784,7 +1784,7 @@ Agents should be workflow-aware: know active workflow, their role, access artifa
|
|
|
1784
1784
|
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
|
|
1785
1785
|
---
|
|
1786
1786
|
docOutputLocation: docs/brainstorming-session-results.md
|
|
1787
|
-
template:
|
|
1787
|
+
template: '.bmad-core/templates/brainstorming-output-tmpl.yaml'
|
|
1788
1788
|
---
|
|
1789
1789
|
|
|
1790
1790
|
# Facilitate Brainstorming Session Task
|
|
@@ -2578,12 +2578,12 @@ sections:
|
|
|
2578
2578
|
- id: introduction
|
|
2579
2579
|
instruction: |
|
|
2580
2580
|
This template guides creation of a comprehensive Project Brief that serves as the foundational input for product development.
|
|
2581
|
-
|
|
2581
|
+
|
|
2582
2582
|
Start by asking the user which mode they prefer:
|
|
2583
|
-
|
|
2583
|
+
|
|
2584
2584
|
1. **Interactive Mode** - Work through each section collaboratively
|
|
2585
2585
|
2. **YOLO Mode** - Generate complete draft for review and refinement
|
|
2586
|
-
|
|
2586
|
+
|
|
2587
2587
|
Before beginning, understand what inputs are available (brainstorming results, market research, competitive analysis, initial ideas) and gather project context.
|
|
2588
2588
|
|
|
2589
2589
|
- id: executive-summary
|
|
@@ -2904,7 +2904,7 @@ sections:
|
|
|
2904
2904
|
instruction: Map the end-to-end customer experience for primary segments
|
|
2905
2905
|
template: |
|
|
2906
2906
|
For primary customer segment:
|
|
2907
|
-
|
|
2907
|
+
|
|
2908
2908
|
1. **Awareness:** {{discovery_process}}
|
|
2909
2909
|
2. **Consideration:** {{evaluation_criteria}}
|
|
2910
2910
|
3. **Purchase:** {{decision_triggers}}
|
|
@@ -3105,7 +3105,7 @@ sections:
|
|
|
3105
3105
|
title: Competitor Prioritization Matrix
|
|
3106
3106
|
instruction: |
|
|
3107
3107
|
Help categorize competitors by market share and strategic threat level
|
|
3108
|
-
|
|
3108
|
+
|
|
3109
3109
|
Create a 2x2 matrix:
|
|
3110
3110
|
- Priority 1 (Core Competitors): High Market Share + High Threat
|
|
3111
3111
|
- Priority 2 (Emerging Threats): Low Market Share + High Threat
|
|
@@ -3170,7 +3170,14 @@ sections:
|
|
|
3170
3170
|
title: Feature Comparison Matrix
|
|
3171
3171
|
instruction: Create a detailed comparison table of key features across competitors
|
|
3172
3172
|
type: table
|
|
3173
|
-
columns:
|
|
3173
|
+
columns:
|
|
3174
|
+
[
|
|
3175
|
+
"Feature Category",
|
|
3176
|
+
"{{your_company}}",
|
|
3177
|
+
"{{competitor_1}}",
|
|
3178
|
+
"{{competitor_2}}",
|
|
3179
|
+
"{{competitor_3}}",
|
|
3180
|
+
]
|
|
3174
3181
|
rows:
|
|
3175
3182
|
- category: "Core Functionality"
|
|
3176
3183
|
items:
|
|
@@ -3182,7 +3189,13 @@ sections:
|
|
|
3182
3189
|
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
|
|
3183
3190
|
- category: "Integration & Ecosystem"
|
|
3184
3191
|
items:
|
|
3185
|
-
- [
|
|
3192
|
+
- [
|
|
3193
|
+
"API Availability",
|
|
3194
|
+
"{{availability}}",
|
|
3195
|
+
"{{availability}}",
|
|
3196
|
+
"{{availability}}",
|
|
3197
|
+
"{{availability}}",
|
|
3198
|
+
]
|
|
3186
3199
|
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
|
|
3187
3200
|
- category: "Pricing & Plans"
|
|
3188
3201
|
items:
|
|
@@ -3209,7 +3222,7 @@ sections:
|
|
|
3209
3222
|
title: Positioning Map
|
|
3210
3223
|
instruction: |
|
|
3211
3224
|
Describe competitor positions on key dimensions
|
|
3212
|
-
|
|
3225
|
+
|
|
3213
3226
|
Create a positioning description using 2 key dimensions relevant to the market, such as:
|
|
3214
3227
|
- Price vs. Features
|
|
3215
3228
|
- Ease of Use vs. Power
|
|
@@ -3244,7 +3257,7 @@ sections:
|
|
|
3244
3257
|
title: Blue Ocean Opportunities
|
|
3245
3258
|
instruction: |
|
|
3246
3259
|
Identify uncontested market spaces
|
|
3247
|
-
|
|
3260
|
+
|
|
3248
3261
|
List opportunities to create new market space:
|
|
3249
3262
|
- Underserved segments
|
|
3250
3263
|
- Unaddressed use cases
|
|
@@ -3348,11 +3361,11 @@ sections:
|
|
|
3348
3361
|
- id: summary-details
|
|
3349
3362
|
template: |
|
|
3350
3363
|
**Topic:** {{session_topic}}
|
|
3351
|
-
|
|
3364
|
+
|
|
3352
3365
|
**Session Goals:** {{stated_goals}}
|
|
3353
|
-
|
|
3366
|
+
|
|
3354
3367
|
**Techniques Used:** {{techniques_list}}
|
|
3355
|
-
|
|
3368
|
+
|
|
3356
3369
|
**Total Ideas Generated:** {{total_ideas}}
|
|
3357
3370
|
- id: key-themes
|
|
3358
3371
|
title: "Key Themes Identified:"
|
|
@@ -3477,7 +3490,7 @@ sections:
|
|
|
3477
3490
|
- id: footer
|
|
3478
3491
|
content: |
|
|
3479
3492
|
---
|
|
3480
|
-
|
|
3493
|
+
|
|
3481
3494
|
*Session facilitated using the BMAD-METHOD brainstorming framework*
|
|
3482
3495
|
==================== END: .bmad-core/templates/brainstorming-output-tmpl.yaml ====================
|
|
3483
3496
|
|
|
@@ -4242,7 +4255,7 @@ sections:
|
|
|
4242
4255
|
condition: PRD has UX/UI requirements
|
|
4243
4256
|
instruction: |
|
|
4244
4257
|
Capture high-level UI/UX vision to guide Design Architect and to inform story creation. Steps:
|
|
4245
|
-
|
|
4258
|
+
|
|
4246
4259
|
1. Pre-fill all subsections with educated guesses based on project context
|
|
4247
4260
|
2. Present the complete rendered section to user
|
|
4248
4261
|
3. Clearly let the user know where assumptions were made
|
|
@@ -4284,7 +4297,7 @@ sections:
|
|
|
4284
4297
|
title: Technical Assumptions
|
|
4285
4298
|
instruction: |
|
|
4286
4299
|
Gather technical decisions that will guide the Architect. Steps:
|
|
4287
|
-
|
|
4300
|
+
|
|
4288
4301
|
1. Check if .bmad-core/data/technical-preferences.yaml or an attached technical-preferences file exists - use it to pre-populate choices
|
|
4289
4302
|
2. Ask user about: languages, frameworks, starter templates, libraries, APIs, deployment targets
|
|
4290
4303
|
3. For unknowns, offer guidance based on project goals and MVP scope
|
|
@@ -4312,9 +4325,9 @@ sections:
|
|
|
4312
4325
|
title: Epic List
|
|
4313
4326
|
instruction: |
|
|
4314
4327
|
Present a high-level list of all epics for user approval. 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.
|
|
4315
|
-
|
|
4328
|
+
|
|
4316
4329
|
CRITICAL: Epics MUST be logically sequential following agile best practices:
|
|
4317
|
-
|
|
4330
|
+
|
|
4318
4331
|
- Each epic should deliver a significant, end-to-end, fully deployable increment of testable functionality
|
|
4319
4332
|
- 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 - remember this when we produce the stories for the first epic!
|
|
4320
4333
|
- Each subsequent epic builds upon previous epics' functionality delivering major blocks of functionality that provide tangible value to users or business when deployed
|
|
@@ -4333,11 +4346,11 @@ sections:
|
|
|
4333
4346
|
repeatable: true
|
|
4334
4347
|
instruction: |
|
|
4335
4348
|
After the epic list is approved, present each epic with all its stories and acceptance criteria as a complete review unit.
|
|
4336
|
-
|
|
4349
|
+
|
|
4337
4350
|
For each epic provide expanded goal (2-3 sentences describing the objective and value all the stories will achieve).
|
|
4338
|
-
|
|
4351
|
+
|
|
4339
4352
|
CRITICAL STORY SEQUENCING REQUIREMENTS:
|
|
4340
|
-
|
|
4353
|
+
|
|
4341
4354
|
- Stories within each epic MUST be logically sequential
|
|
4342
4355
|
- Each story should be a "vertical slice" delivering complete functionality aside from early enabler stories for project foundation
|
|
4343
4356
|
- No story should depend on work from a later story or epic
|
|
@@ -4365,7 +4378,7 @@ sections:
|
|
|
4365
4378
|
repeatable: true
|
|
4366
4379
|
instruction: |
|
|
4367
4380
|
Define clear, comprehensive, and testable acceptance criteria that:
|
|
4368
|
-
|
|
4381
|
+
|
|
4369
4382
|
- Precisely define what "done" means from a functional perspective
|
|
4370
4383
|
- Are unambiguous and serve as basis for verification
|
|
4371
4384
|
- Include any critical non-functional requirements from the PRD
|
|
@@ -4407,19 +4420,19 @@ sections:
|
|
|
4407
4420
|
title: Intro Project Analysis and Context
|
|
4408
4421
|
instruction: |
|
|
4409
4422
|
IMPORTANT - SCOPE ASSESSMENT REQUIRED:
|
|
4410
|
-
|
|
4423
|
+
|
|
4411
4424
|
This PRD is for SIGNIFICANT enhancements to existing projects that require comprehensive planning and multiple stories. Before proceeding:
|
|
4412
|
-
|
|
4425
|
+
|
|
4413
4426
|
1. **Assess Enhancement Complexity**: If this is a simple feature addition or bug fix that could be completed in 1-2 focused development sessions, STOP and recommend: "For simpler changes, consider using the brownfield-create-epic or brownfield-create-story task with the Product Owner instead. This full PRD process is designed for substantial enhancements that require architectural planning and multiple coordinated stories."
|
|
4414
|
-
|
|
4427
|
+
|
|
4415
4428
|
2. **Project Context**: Determine if we're working in an IDE with the project already loaded or if the user needs to provide project information. If project files are available, analyze existing documentation in the docs folder. If insufficient documentation exists, recommend running the document-project task first.
|
|
4416
|
-
|
|
4429
|
+
|
|
4417
4430
|
3. **Deep Assessment Requirement**: You MUST thoroughly analyze the existing project structure, patterns, and constraints before making ANY suggestions. Every recommendation must be grounded in actual project analysis, not assumptions.
|
|
4418
|
-
|
|
4431
|
+
|
|
4419
4432
|
Gather comprehensive information about the existing project. This section must be completed before proceeding with requirements.
|
|
4420
|
-
|
|
4433
|
+
|
|
4421
4434
|
CRITICAL: Throughout this analysis, explicitly confirm your understanding with the user. For every assumption you make about the existing project, ask: "Based on my analysis, I understand that [assumption]. Is this correct?"
|
|
4422
|
-
|
|
4435
|
+
|
|
4423
4436
|
Do not proceed with any recommendations until the user has validated your understanding of the existing system.
|
|
4424
4437
|
sections:
|
|
4425
4438
|
- id: existing-project-overview
|
|
@@ -4445,7 +4458,7 @@ sections:
|
|
|
4445
4458
|
- Note: "Document-project analysis available - using existing technical documentation"
|
|
4446
4459
|
- List key documents created by document-project
|
|
4447
4460
|
- Skip the missing documentation check below
|
|
4448
|
-
|
|
4461
|
+
|
|
4449
4462
|
Otherwise, check for existing documentation:
|
|
4450
4463
|
sections:
|
|
4451
4464
|
- id: available-docs
|
|
@@ -4569,7 +4582,7 @@ sections:
|
|
|
4569
4582
|
If document-project output available:
|
|
4570
4583
|
- Extract from "Actual Tech Stack" table in High Level Architecture section
|
|
4571
4584
|
- Include version numbers and any noted constraints
|
|
4572
|
-
|
|
4585
|
+
|
|
4573
4586
|
Otherwise, document the current technology stack:
|
|
4574
4587
|
template: |
|
|
4575
4588
|
**Languages**: {{languages}}
|
|
@@ -4608,7 +4621,7 @@ sections:
|
|
|
4608
4621
|
- Reference "Technical Debt and Known Issues" section
|
|
4609
4622
|
- Include "Workarounds and Gotchas" that might impact enhancement
|
|
4610
4623
|
- Note any identified constraints from "Critical Technical Debt"
|
|
4611
|
-
|
|
4624
|
+
|
|
4612
4625
|
Build risk assessment incorporating existing known issues:
|
|
4613
4626
|
template: |
|
|
4614
4627
|
**Technical Risks**: {{technical_risks}}
|
|
@@ -4631,7 +4644,7 @@ sections:
|
|
|
4631
4644
|
title: "Epic 1: {{enhancement_title}}"
|
|
4632
4645
|
instruction: |
|
|
4633
4646
|
Comprehensive epic that delivers the brownfield enhancement while maintaining existing functionality
|
|
4634
|
-
|
|
4647
|
+
|
|
4635
4648
|
CRITICAL STORY SEQUENCING FOR BROWNFIELD:
|
|
4636
4649
|
- Stories must ensure existing functionality remains intact
|
|
4637
4650
|
- Each story should include verification that existing features still work
|
|
@@ -4644,7 +4657,7 @@ sections:
|
|
|
4644
4657
|
- Each story must deliver value while maintaining system integrity
|
|
4645
4658
|
template: |
|
|
4646
4659
|
**Epic Goal**: {{epic_goal}}
|
|
4647
|
-
|
|
4660
|
+
|
|
4648
4661
|
**Integration Requirements**: {{integration_requirements}}
|
|
4649
4662
|
sections:
|
|
4650
4663
|
- id: story
|
|
@@ -5258,20 +5271,20 @@ sections:
|
|
|
5258
5271
|
- id: intro-content
|
|
5259
5272
|
content: |
|
|
5260
5273
|
This document outlines the overall project architecture for {{project_name}}, including backend systems, shared services, and non-UI specific concerns. Its primary goal is to serve as the guiding architectural blueprint for AI-driven development, ensuring consistency and adherence to chosen patterns and technologies.
|
|
5261
|
-
|
|
5274
|
+
|
|
5262
5275
|
**Relationship to Frontend Architecture:**
|
|
5263
5276
|
If the project includes a significant user interface, a separate Frontend Architecture Document will detail the frontend-specific design and MUST be used in conjunction with this document. Core technology stack choices documented herein (see "Tech Stack") are definitive for the entire project, including any frontend components.
|
|
5264
5277
|
- id: starter-template
|
|
5265
5278
|
title: Starter Template or Existing Project
|
|
5266
5279
|
instruction: |
|
|
5267
5280
|
Before proceeding further with architecture design, check if the project is based on a starter template or existing codebase:
|
|
5268
|
-
|
|
5281
|
+
|
|
5269
5282
|
1. Review the PRD and brainstorming brief for any mentions of:
|
|
5270
5283
|
- Starter templates (e.g., Create React App, Next.js, Vue CLI, Angular CLI, etc.)
|
|
5271
5284
|
- Existing projects or codebases being used as a foundation
|
|
5272
5285
|
- Boilerplate projects or scaffolding tools
|
|
5273
5286
|
- Previous projects to be cloned or adapted
|
|
5274
|
-
|
|
5287
|
+
|
|
5275
5288
|
2. If a starter template or existing project is mentioned:
|
|
5276
5289
|
- Ask the user to provide access via one of these methods:
|
|
5277
5290
|
- Link to the starter template documentation
|
|
@@ -5284,16 +5297,16 @@ sections:
|
|
|
5284
5297
|
- Existing architectural patterns and conventions
|
|
5285
5298
|
- Any limitations or constraints imposed by the starter
|
|
5286
5299
|
- Use this analysis to inform and align your architecture decisions
|
|
5287
|
-
|
|
5300
|
+
|
|
5288
5301
|
3. If no starter template is mentioned but this is a greenfield project:
|
|
5289
5302
|
- Suggest appropriate starter templates based on the tech stack preferences
|
|
5290
5303
|
- Explain the benefits (faster setup, best practices, community support)
|
|
5291
5304
|
- Let the user decide whether to use one
|
|
5292
|
-
|
|
5305
|
+
|
|
5293
5306
|
4. If the user confirms no starter template will be used:
|
|
5294
5307
|
- Proceed with architecture design from scratch
|
|
5295
5308
|
- Note that manual setup will be required for all tooling and configuration
|
|
5296
|
-
|
|
5309
|
+
|
|
5297
5310
|
Document the decision here before proceeding with the architecture design. If none, just say N/A
|
|
5298
5311
|
elicit: true
|
|
5299
5312
|
- id: changelog
|
|
@@ -5321,7 +5334,7 @@ sections:
|
|
|
5321
5334
|
title: High Level Overview
|
|
5322
5335
|
instruction: |
|
|
5323
5336
|
Based on the PRD's Technical Assumptions section, describe:
|
|
5324
|
-
|
|
5337
|
+
|
|
5325
5338
|
1. The main architectural style (e.g., Monolith, Microservices, Serverless, Event-Driven)
|
|
5326
5339
|
2. Repository structure decision from PRD (Monorepo/Polyrepo)
|
|
5327
5340
|
3. Service architecture decision from PRD
|
|
@@ -5338,17 +5351,17 @@ sections:
|
|
|
5338
5351
|
- Data flow directions
|
|
5339
5352
|
- External integrations
|
|
5340
5353
|
- User entry points
|
|
5341
|
-
|
|
5354
|
+
|
|
5342
5355
|
- id: architectural-patterns
|
|
5343
5356
|
title: Architectural and Design Patterns
|
|
5344
5357
|
instruction: |
|
|
5345
5358
|
List the key high-level patterns that will guide the architecture. For each pattern:
|
|
5346
|
-
|
|
5359
|
+
|
|
5347
5360
|
1. Present 2-3 viable options if multiple exist
|
|
5348
5361
|
2. Provide your recommendation with clear rationale
|
|
5349
5362
|
3. Get user confirmation before finalizing
|
|
5350
5363
|
4. These patterns should align with the PRD's technical assumptions and project goals
|
|
5351
|
-
|
|
5364
|
+
|
|
5352
5365
|
Common patterns to consider:
|
|
5353
5366
|
- Architectural style patterns (Serverless, Event-Driven, Microservices, CQRS, Hexagonal)
|
|
5354
5367
|
- Code organization patterns (Dependency Injection, Repository, Module, Factory)
|
|
@@ -5364,23 +5377,23 @@ sections:
|
|
|
5364
5377
|
title: Tech Stack
|
|
5365
5378
|
instruction: |
|
|
5366
5379
|
This is the DEFINITIVE technology selection section. Work with the user to make specific choices:
|
|
5367
|
-
|
|
5380
|
+
|
|
5368
5381
|
1. Review PRD technical assumptions and any preferences from .bmad-core/data/technical-preferences.yaml or an attached technical-preferences
|
|
5369
5382
|
2. For each category, present 2-3 viable options with pros/cons
|
|
5370
5383
|
3. Make a clear recommendation based on project needs
|
|
5371
5384
|
4. Get explicit user approval for each selection
|
|
5372
5385
|
5. Document exact versions (avoid "latest" - pin specific versions)
|
|
5373
5386
|
6. This table is the single source of truth - all other docs must reference these choices
|
|
5374
|
-
|
|
5387
|
+
|
|
5375
5388
|
Key decisions to finalize - before displaying the table, ensure you are aware of or ask the user about - let the user know if they are not sure on any that you can also provide suggestions with rationale:
|
|
5376
|
-
|
|
5389
|
+
|
|
5377
5390
|
- Starter templates (if any)
|
|
5378
5391
|
- Languages and runtimes with exact versions
|
|
5379
5392
|
- Frameworks and libraries / packages
|
|
5380
5393
|
- Cloud provider and key services choices
|
|
5381
5394
|
- Database and storage solutions - if unclear suggest sql or nosql or other types depending on the project and depending on cloud provider offer a suggestion
|
|
5382
5395
|
- Development tools
|
|
5383
|
-
|
|
5396
|
+
|
|
5384
5397
|
Upon render of the table, ensure the user is aware of the importance of this sections choices, should also look for gaps or disagreements with anything, ask for any clarifications if something is unclear why its in the list, and also right away elicit feedback - this statement and the options should be rendered and then prompt right all before allowing user input.
|
|
5385
5398
|
elicit: true
|
|
5386
5399
|
sections:
|
|
@@ -5404,13 +5417,13 @@ sections:
|
|
|
5404
5417
|
title: Data Models
|
|
5405
5418
|
instruction: |
|
|
5406
5419
|
Define the core data models/entities:
|
|
5407
|
-
|
|
5420
|
+
|
|
5408
5421
|
1. Review PRD requirements and identify key business entities
|
|
5409
5422
|
2. For each model, explain its purpose and relationships
|
|
5410
5423
|
3. Include key attributes and data types
|
|
5411
5424
|
4. Show relationships between models
|
|
5412
5425
|
5. Discuss design decisions with user
|
|
5413
|
-
|
|
5426
|
+
|
|
5414
5427
|
Create a clear conceptual model before moving to database schema.
|
|
5415
5428
|
elicit: true
|
|
5416
5429
|
repeatable: true
|
|
@@ -5419,11 +5432,11 @@ sections:
|
|
|
5419
5432
|
title: "{{model_name}}"
|
|
5420
5433
|
template: |
|
|
5421
5434
|
**Purpose:** {{model_purpose}}
|
|
5422
|
-
|
|
5435
|
+
|
|
5423
5436
|
**Key Attributes:**
|
|
5424
5437
|
- {{attribute_1}}: {{type_1}} - {{description_1}}
|
|
5425
5438
|
- {{attribute_2}}: {{type_2}} - {{description_2}}
|
|
5426
|
-
|
|
5439
|
+
|
|
5427
5440
|
**Relationships:**
|
|
5428
5441
|
- {{relationship_1}}
|
|
5429
5442
|
- {{relationship_2}}
|
|
@@ -5432,7 +5445,7 @@ sections:
|
|
|
5432
5445
|
title: Components
|
|
5433
5446
|
instruction: |
|
|
5434
5447
|
Based on the architectural patterns, tech stack, and data models from above:
|
|
5435
|
-
|
|
5448
|
+
|
|
5436
5449
|
1. Identify major logical components/services and their responsibilities
|
|
5437
5450
|
2. Consider the repository structure (monorepo/polyrepo) from PRD
|
|
5438
5451
|
3. Define clear boundaries and interfaces between components
|
|
@@ -5441,7 +5454,7 @@ sections:
|
|
|
5441
5454
|
- Key interfaces/APIs exposed
|
|
5442
5455
|
- Dependencies on other components
|
|
5443
5456
|
- Technology specifics based on tech stack choices
|
|
5444
|
-
|
|
5457
|
+
|
|
5445
5458
|
5. Create component diagrams where helpful
|
|
5446
5459
|
elicit: true
|
|
5447
5460
|
sections:
|
|
@@ -5450,13 +5463,13 @@ sections:
|
|
|
5450
5463
|
title: "{{component_name}}"
|
|
5451
5464
|
template: |
|
|
5452
5465
|
**Responsibility:** {{component_description}}
|
|
5453
|
-
|
|
5466
|
+
|
|
5454
5467
|
**Key Interfaces:**
|
|
5455
5468
|
- {{interface_1}}
|
|
5456
5469
|
- {{interface_2}}
|
|
5457
|
-
|
|
5470
|
+
|
|
5458
5471
|
**Dependencies:** {{dependencies}}
|
|
5459
|
-
|
|
5472
|
+
|
|
5460
5473
|
**Technology Stack:** {{component_tech_details}}
|
|
5461
5474
|
- id: component-diagrams
|
|
5462
5475
|
title: Component Diagrams
|
|
@@ -5473,13 +5486,13 @@ sections:
|
|
|
5473
5486
|
condition: Project requires external API integrations
|
|
5474
5487
|
instruction: |
|
|
5475
5488
|
For each external service integration:
|
|
5476
|
-
|
|
5489
|
+
|
|
5477
5490
|
1. Identify APIs needed based on PRD requirements and component design
|
|
5478
5491
|
2. If documentation URLs are unknown, ask user for specifics
|
|
5479
5492
|
3. Document authentication methods and security considerations
|
|
5480
5493
|
4. List specific endpoints that will be used
|
|
5481
5494
|
5. Note any rate limits or usage constraints
|
|
5482
|
-
|
|
5495
|
+
|
|
5483
5496
|
If no external APIs are needed, state this explicitly and skip to next section.
|
|
5484
5497
|
elicit: true
|
|
5485
5498
|
repeatable: true
|
|
@@ -5492,10 +5505,10 @@ sections:
|
|
|
5492
5505
|
- **Base URL(s):** {{api_base_url}}
|
|
5493
5506
|
- **Authentication:** {{auth_method}}
|
|
5494
5507
|
- **Rate Limits:** {{rate_limits}}
|
|
5495
|
-
|
|
5508
|
+
|
|
5496
5509
|
**Key Endpoints Used:**
|
|
5497
5510
|
- `{{method}} {{endpoint_path}}` - {{endpoint_purpose}}
|
|
5498
|
-
|
|
5511
|
+
|
|
5499
5512
|
**Integration Notes:** {{integration_considerations}}
|
|
5500
5513
|
|
|
5501
5514
|
- id: core-workflows
|
|
@@ -5504,13 +5517,13 @@ sections:
|
|
|
5504
5517
|
mermaid_type: sequence
|
|
5505
5518
|
instruction: |
|
|
5506
5519
|
Illustrate key system workflows using sequence diagrams:
|
|
5507
|
-
|
|
5520
|
+
|
|
5508
5521
|
1. Identify critical user journeys from PRD
|
|
5509
5522
|
2. Show component interactions including external APIs
|
|
5510
5523
|
3. Include error handling paths
|
|
5511
5524
|
4. Document async operations
|
|
5512
5525
|
5. Create both high-level and detailed diagrams as needed
|
|
5513
|
-
|
|
5526
|
+
|
|
5514
5527
|
Focus on workflows that clarify architecture decisions or complex interactions.
|
|
5515
5528
|
elicit: true
|
|
5516
5529
|
|
|
@@ -5521,13 +5534,13 @@ sections:
|
|
|
5521
5534
|
language: yaml
|
|
5522
5535
|
instruction: |
|
|
5523
5536
|
If the project includes a REST API:
|
|
5524
|
-
|
|
5537
|
+
|
|
5525
5538
|
1. Create an OpenAPI 3.0 specification
|
|
5526
5539
|
2. Include all endpoints from epics/stories
|
|
5527
5540
|
3. Define request/response schemas based on data models
|
|
5528
5541
|
4. Document authentication requirements
|
|
5529
5542
|
5. Include example requests/responses
|
|
5530
|
-
|
|
5543
|
+
|
|
5531
5544
|
Use YAML format for better readability. If no REST API, skip this section.
|
|
5532
5545
|
elicit: true
|
|
5533
5546
|
template: |
|
|
@@ -5544,13 +5557,13 @@ sections:
|
|
|
5544
5557
|
title: Database Schema
|
|
5545
5558
|
instruction: |
|
|
5546
5559
|
Transform the conceptual data models into concrete database schemas:
|
|
5547
|
-
|
|
5560
|
+
|
|
5548
5561
|
1. Use the database type(s) selected in Tech Stack
|
|
5549
5562
|
2. Create schema definitions using appropriate notation
|
|
5550
5563
|
3. Include indexes, constraints, and relationships
|
|
5551
5564
|
4. Consider performance and scalability
|
|
5552
5565
|
5. For NoSQL, show document structures
|
|
5553
|
-
|
|
5566
|
+
|
|
5554
5567
|
Present schema in format appropriate to database type (SQL DDL, JSON schema, etc.)
|
|
5555
5568
|
elicit: true
|
|
5556
5569
|
|
|
@@ -5560,14 +5573,14 @@ sections:
|
|
|
5560
5573
|
language: plaintext
|
|
5561
5574
|
instruction: |
|
|
5562
5575
|
Create a project folder structure that reflects:
|
|
5563
|
-
|
|
5576
|
+
|
|
5564
5577
|
1. The chosen repository structure (monorepo/polyrepo)
|
|
5565
5578
|
2. The service architecture (monolith/microservices/serverless)
|
|
5566
5579
|
3. The selected tech stack and languages
|
|
5567
5580
|
4. Component organization from above
|
|
5568
5581
|
5. Best practices for the chosen frameworks
|
|
5569
5582
|
6. Clear separation of concerns
|
|
5570
|
-
|
|
5583
|
+
|
|
5571
5584
|
Adapt the structure based on project needs. For monorepos, show service separation. For serverless, show function organization. Include language-specific conventions.
|
|
5572
5585
|
elicit: true
|
|
5573
5586
|
examples:
|
|
@@ -5585,13 +5598,13 @@ sections:
|
|
|
5585
5598
|
title: Infrastructure and Deployment
|
|
5586
5599
|
instruction: |
|
|
5587
5600
|
Define the deployment architecture and practices:
|
|
5588
|
-
|
|
5601
|
+
|
|
5589
5602
|
1. Use IaC tool selected in Tech Stack
|
|
5590
5603
|
2. Choose deployment strategy appropriate for the architecture
|
|
5591
5604
|
3. Define environments and promotion flow
|
|
5592
5605
|
4. Establish rollback procedures
|
|
5593
5606
|
5. Consider security, monitoring, and cost optimization
|
|
5594
|
-
|
|
5607
|
+
|
|
5595
5608
|
Get user input on deployment preferences and CI/CD tool choices.
|
|
5596
5609
|
elicit: true
|
|
5597
5610
|
sections:
|
|
@@ -5627,13 +5640,13 @@ sections:
|
|
|
5627
5640
|
title: Error Handling Strategy
|
|
5628
5641
|
instruction: |
|
|
5629
5642
|
Define comprehensive error handling approach:
|
|
5630
|
-
|
|
5643
|
+
|
|
5631
5644
|
1. Choose appropriate patterns for the language/framework from Tech Stack
|
|
5632
5645
|
2. Define logging standards and tools
|
|
5633
5646
|
3. Establish error categories and handling rules
|
|
5634
5647
|
4. Consider observability and debugging needs
|
|
5635
5648
|
5. Ensure security (no sensitive data in logs)
|
|
5636
|
-
|
|
5649
|
+
|
|
5637
5650
|
This section guides both AI and human developers in consistent error handling.
|
|
5638
5651
|
elicit: true
|
|
5639
5652
|
sections:
|
|
@@ -5680,13 +5693,13 @@ sections:
|
|
|
5680
5693
|
title: Coding Standards
|
|
5681
5694
|
instruction: |
|
|
5682
5695
|
These standards are MANDATORY for AI agents. Work with user to define ONLY the critical rules needed to prevent bad code. Explain that:
|
|
5683
|
-
|
|
5696
|
+
|
|
5684
5697
|
1. This section directly controls AI developer behavior
|
|
5685
5698
|
2. Keep it minimal - assume AI knows general best practices
|
|
5686
5699
|
3. Focus on project-specific conventions and gotchas
|
|
5687
5700
|
4. Overly detailed standards bloat context and slow development
|
|
5688
5701
|
5. Standards will be extracted to separate file for dev agent use
|
|
5689
|
-
|
|
5702
|
+
|
|
5690
5703
|
For each standard, get explicit user confirmation it's necessary.
|
|
5691
5704
|
elicit: true
|
|
5692
5705
|
sections:
|
|
@@ -5708,7 +5721,7 @@ sections:
|
|
|
5708
5721
|
- "Never use console.log in production code - use logger"
|
|
5709
5722
|
- "All API responses must use ApiResponse wrapper type"
|
|
5710
5723
|
- "Database queries must use repository pattern, never direct ORM"
|
|
5711
|
-
|
|
5724
|
+
|
|
5712
5725
|
Avoid obvious rules like "use SOLID principles" or "write clean code"
|
|
5713
5726
|
repeatable: true
|
|
5714
5727
|
template: "- **{{rule_name}}:** {{rule_description}}"
|
|
@@ -5726,14 +5739,14 @@ sections:
|
|
|
5726
5739
|
title: Test Strategy and Standards
|
|
5727
5740
|
instruction: |
|
|
5728
5741
|
Work with user to define comprehensive test strategy:
|
|
5729
|
-
|
|
5742
|
+
|
|
5730
5743
|
1. Use test frameworks from Tech Stack
|
|
5731
5744
|
2. Decide on TDD vs test-after approach
|
|
5732
5745
|
3. Define test organization and naming
|
|
5733
5746
|
4. Establish coverage goals
|
|
5734
5747
|
5. Determine integration test infrastructure
|
|
5735
5748
|
6. Plan for test data and external dependencies
|
|
5736
|
-
|
|
5749
|
+
|
|
5737
5750
|
Note: Basic info goes in Coding Standards for dev agent. This detailed section is for QA agent and team reference.
|
|
5738
5751
|
elicit: true
|
|
5739
5752
|
sections:
|
|
@@ -5754,7 +5767,7 @@ sections:
|
|
|
5754
5767
|
- **Location:** {{unit_test_location}}
|
|
5755
5768
|
- **Mocking Library:** {{mocking_library}}
|
|
5756
5769
|
- **Coverage Requirement:** {{unit_coverage}}
|
|
5757
|
-
|
|
5770
|
+
|
|
5758
5771
|
**AI Agent Requirements:**
|
|
5759
5772
|
- Generate tests for all public methods
|
|
5760
5773
|
- Cover edge cases and error conditions
|
|
@@ -5796,7 +5809,7 @@ sections:
|
|
|
5796
5809
|
title: Security
|
|
5797
5810
|
instruction: |
|
|
5798
5811
|
Define MANDATORY security requirements for AI and human developers:
|
|
5799
|
-
|
|
5812
|
+
|
|
5800
5813
|
1. Focus on implementation-specific rules
|
|
5801
5814
|
2. Reference security tools from Tech Stack
|
|
5802
5815
|
3. Define clear patterns for common scenarios
|
|
@@ -5865,16 +5878,16 @@ sections:
|
|
|
5865
5878
|
title: Next Steps
|
|
5866
5879
|
instruction: |
|
|
5867
5880
|
After completing the architecture:
|
|
5868
|
-
|
|
5881
|
+
|
|
5869
5882
|
1. If project has UI components:
|
|
5870
5883
|
- Use "Frontend Architecture Mode"
|
|
5871
5884
|
- Provide this document as input
|
|
5872
|
-
|
|
5885
|
+
|
|
5873
5886
|
2. For all projects:
|
|
5874
5887
|
- Review with Product Owner
|
|
5875
5888
|
- Begin story implementation with Dev agent
|
|
5876
5889
|
- Set up infrastructure with DevOps agent
|
|
5877
|
-
|
|
5890
|
+
|
|
5878
5891
|
3. Include specific prompts for next agents if needed
|
|
5879
5892
|
sections:
|
|
5880
5893
|
- id: architect-prompt
|
|
@@ -5907,16 +5920,16 @@ sections:
|
|
|
5907
5920
|
title: Template and Framework Selection
|
|
5908
5921
|
instruction: |
|
|
5909
5922
|
Review provided documents including PRD, UX-UI Specification, and main Architecture Document. Focus on extracting technical implementation details needed for AI frontend tools and developer agents. Ask the user for any of these documents if you are unable to locate and were not provided.
|
|
5910
|
-
|
|
5923
|
+
|
|
5911
5924
|
Before proceeding with frontend architecture design, check if the project is using a frontend starter template or existing codebase:
|
|
5912
|
-
|
|
5925
|
+
|
|
5913
5926
|
1. Review the PRD, main architecture document, and brainstorming brief for mentions of:
|
|
5914
5927
|
- Frontend starter templates (e.g., Create React App, Next.js, Vite, Vue CLI, Angular CLI, etc.)
|
|
5915
5928
|
- UI kit or component library starters
|
|
5916
5929
|
- Existing frontend projects being used as a foundation
|
|
5917
5930
|
- Admin dashboard templates or other specialized starters
|
|
5918
5931
|
- Design system implementations
|
|
5919
|
-
|
|
5932
|
+
|
|
5920
5933
|
2. If a frontend starter template or existing project is mentioned:
|
|
5921
5934
|
- Ask the user to provide access via one of these methods:
|
|
5922
5935
|
- Link to the starter template documentation
|
|
@@ -5932,7 +5945,7 @@ sections:
|
|
|
5932
5945
|
- Testing setup and patterns
|
|
5933
5946
|
- Build and development scripts
|
|
5934
5947
|
- Use this analysis to ensure your frontend architecture aligns with the starter's patterns
|
|
5935
|
-
|
|
5948
|
+
|
|
5936
5949
|
3. If no frontend starter is mentioned but this is a new UI, ensure we know what the ui language and framework is:
|
|
5937
5950
|
- Based on the framework choice, suggest appropriate starters:
|
|
5938
5951
|
- React: Create React App, Next.js, Vite + React
|
|
@@ -5940,11 +5953,11 @@ sections:
|
|
|
5940
5953
|
- Angular: Angular CLI
|
|
5941
5954
|
- Or suggest popular UI templates if applicable
|
|
5942
5955
|
- Explain benefits specific to frontend development
|
|
5943
|
-
|
|
5956
|
+
|
|
5944
5957
|
4. If the user confirms no starter template will be used:
|
|
5945
5958
|
- Note that all tooling, bundling, and configuration will need manual setup
|
|
5946
5959
|
- Proceed with frontend architecture from scratch
|
|
5947
|
-
|
|
5960
|
+
|
|
5948
5961
|
Document the starter template decision and any constraints it imposes before proceeding.
|
|
5949
5962
|
sections:
|
|
5950
5963
|
- id: changelog
|
|
@@ -5966,12 +5979,24 @@ sections:
|
|
|
5966
5979
|
rows:
|
|
5967
5980
|
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5968
5981
|
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5969
|
-
- [
|
|
5982
|
+
- [
|
|
5983
|
+
"State Management",
|
|
5984
|
+
"{{state_management}}",
|
|
5985
|
+
"{{version}}",
|
|
5986
|
+
"{{purpose}}",
|
|
5987
|
+
"{{why_chosen}}",
|
|
5988
|
+
]
|
|
5970
5989
|
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5971
5990
|
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5972
5991
|
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5973
5992
|
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5974
|
-
- [
|
|
5993
|
+
- [
|
|
5994
|
+
"Component Library",
|
|
5995
|
+
"{{component_lib}}",
|
|
5996
|
+
"{{version}}",
|
|
5997
|
+
"{{purpose}}",
|
|
5998
|
+
"{{why_chosen}}",
|
|
5999
|
+
]
|
|
5975
6000
|
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5976
6001
|
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
5977
6002
|
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
@@ -6119,33 +6144,33 @@ sections:
|
|
|
6119
6144
|
elicit: true
|
|
6120
6145
|
content: |
|
|
6121
6146
|
This document outlines the complete fullstack architecture for {{project_name}}, including backend systems, frontend implementation, and their integration. It serves as the single source of truth for AI-driven development, ensuring consistency across the entire technology stack.
|
|
6122
|
-
|
|
6147
|
+
|
|
6123
6148
|
This unified approach combines what would traditionally be separate backend and frontend architecture documents, streamlining the development process for modern fullstack applications where these concerns are increasingly intertwined.
|
|
6124
6149
|
sections:
|
|
6125
6150
|
- id: starter-template
|
|
6126
6151
|
title: Starter Template or Existing Project
|
|
6127
6152
|
instruction: |
|
|
6128
6153
|
Before proceeding with architecture design, check if the project is based on any starter templates or existing codebases:
|
|
6129
|
-
|
|
6154
|
+
|
|
6130
6155
|
1. Review the PRD and other documents for mentions of:
|
|
6131
6156
|
- Fullstack starter templates (e.g., T3 Stack, MEAN/MERN starters, Django + React templates)
|
|
6132
6157
|
- Monorepo templates (e.g., Nx, Turborepo starters)
|
|
6133
6158
|
- Platform-specific starters (e.g., Vercel templates, AWS Amplify starters)
|
|
6134
6159
|
- Existing projects being extended or cloned
|
|
6135
|
-
|
|
6160
|
+
|
|
6136
6161
|
2. If starter templates or existing projects are mentioned:
|
|
6137
6162
|
- Ask the user to provide access (links, repos, or files)
|
|
6138
6163
|
- Analyze to understand pre-configured choices and constraints
|
|
6139
6164
|
- Note any architectural decisions already made
|
|
6140
6165
|
- Identify what can be modified vs what must be retained
|
|
6141
|
-
|
|
6166
|
+
|
|
6142
6167
|
3. If no starter is mentioned but this is greenfield:
|
|
6143
6168
|
- Suggest appropriate fullstack starters based on tech preferences
|
|
6144
6169
|
- Consider platform-specific options (Vercel, AWS, etc.)
|
|
6145
6170
|
- Let user decide whether to use one
|
|
6146
|
-
|
|
6171
|
+
|
|
6147
6172
|
4. Document the decision and any constraints it imposes
|
|
6148
|
-
|
|
6173
|
+
|
|
6149
6174
|
If none, state "N/A - Greenfield project"
|
|
6150
6175
|
- id: changelog
|
|
6151
6176
|
title: Change Log
|
|
@@ -6171,17 +6196,17 @@ sections:
|
|
|
6171
6196
|
title: Platform and Infrastructure Choice
|
|
6172
6197
|
instruction: |
|
|
6173
6198
|
Based on PRD requirements and technical assumptions, make a platform recommendation:
|
|
6174
|
-
|
|
6199
|
+
|
|
6175
6200
|
1. Consider common patterns (not an exhaustive list, use your own best judgement and search the web as needed for emerging trends):
|
|
6176
6201
|
- **Vercel + Supabase**: For rapid development with Next.js, built-in auth/storage
|
|
6177
6202
|
- **AWS Full Stack**: For enterprise scale with Lambda, API Gateway, S3, Cognito
|
|
6178
6203
|
- **Azure**: For .NET ecosystems or enterprise Microsoft environments
|
|
6179
6204
|
- **Google Cloud**: For ML/AI heavy applications or Google ecosystem integration
|
|
6180
|
-
|
|
6205
|
+
|
|
6181
6206
|
2. Present 2-3 viable options with clear pros/cons
|
|
6182
6207
|
3. Make a recommendation with rationale
|
|
6183
6208
|
4. Get explicit user confirmation
|
|
6184
|
-
|
|
6209
|
+
|
|
6185
6210
|
Document the choice and key services that will be used.
|
|
6186
6211
|
template: |
|
|
6187
6212
|
**Platform:** {{selected_platform}}
|
|
@@ -6191,7 +6216,7 @@ sections:
|
|
|
6191
6216
|
title: Repository Structure
|
|
6192
6217
|
instruction: |
|
|
6193
6218
|
Define the repository approach based on PRD requirements and platform choice, explain your rationale or ask questions to the user if unsure:
|
|
6194
|
-
|
|
6219
|
+
|
|
6195
6220
|
1. For modern fullstack apps, monorepo is often preferred
|
|
6196
6221
|
2. Consider tooling (Nx, Turborepo, Lerna, npm workspaces)
|
|
6197
6222
|
3. Define package/app boundaries
|
|
@@ -6213,7 +6238,7 @@ sections:
|
|
|
6213
6238
|
- Databases and storage
|
|
6214
6239
|
- External integrations
|
|
6215
6240
|
- CDN and caching layers
|
|
6216
|
-
|
|
6241
|
+
|
|
6217
6242
|
Use appropriate diagram type for clarity.
|
|
6218
6243
|
- id: architectural-patterns
|
|
6219
6244
|
title: Architectural Patterns
|
|
@@ -6223,7 +6248,7 @@ sections:
|
|
|
6223
6248
|
- Frontend patterns (e.g., Component-based, State management)
|
|
6224
6249
|
- Backend patterns (e.g., Repository, CQRS, Event-driven)
|
|
6225
6250
|
- Integration patterns (e.g., BFF, API Gateway)
|
|
6226
|
-
|
|
6251
|
+
|
|
6227
6252
|
For each pattern, provide recommendation and rationale.
|
|
6228
6253
|
repeatable: true
|
|
6229
6254
|
template: "- **{{pattern_name}}:** {{pattern_description}} - _Rationale:_ {{rationale}}"
|
|
@@ -6237,7 +6262,7 @@ sections:
|
|
|
6237
6262
|
title: Tech Stack
|
|
6238
6263
|
instruction: |
|
|
6239
6264
|
This is the DEFINITIVE technology selection for the entire project. Work with user to finalize all choices. This table is the single source of truth - all development must use these exact versions.
|
|
6240
|
-
|
|
6265
|
+
|
|
6241
6266
|
Key areas to cover:
|
|
6242
6267
|
- Frontend and backend languages/frameworks
|
|
6243
6268
|
- Databases and caching
|
|
@@ -6246,7 +6271,7 @@ sections:
|
|
|
6246
6271
|
- Testing tools for both frontend and backend
|
|
6247
6272
|
- Build and deployment tools
|
|
6248
6273
|
- Monitoring and logging
|
|
6249
|
-
|
|
6274
|
+
|
|
6250
6275
|
Upon render, elicit feedback immediately.
|
|
6251
6276
|
elicit: true
|
|
6252
6277
|
sections:
|
|
@@ -6256,11 +6281,29 @@ sections:
|
|
|
6256
6281
|
columns: [Category, Technology, Version, Purpose, Rationale]
|
|
6257
6282
|
rows:
|
|
6258
6283
|
- ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
6259
|
-
- [
|
|
6260
|
-
|
|
6284
|
+
- [
|
|
6285
|
+
"Frontend Framework",
|
|
6286
|
+
"{{fe_framework}}",
|
|
6287
|
+
"{{version}}",
|
|
6288
|
+
"{{purpose}}",
|
|
6289
|
+
"{{why_chosen}}",
|
|
6290
|
+
]
|
|
6291
|
+
- [
|
|
6292
|
+
"UI Component Library",
|
|
6293
|
+
"{{ui_library}}",
|
|
6294
|
+
"{{version}}",
|
|
6295
|
+
"{{purpose}}",
|
|
6296
|
+
"{{why_chosen}}",
|
|
6297
|
+
]
|
|
6261
6298
|
- ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
6262
6299
|
- ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
6263
|
-
- [
|
|
6300
|
+
- [
|
|
6301
|
+
"Backend Framework",
|
|
6302
|
+
"{{be_framework}}",
|
|
6303
|
+
"{{version}}",
|
|
6304
|
+
"{{purpose}}",
|
|
6305
|
+
"{{why_chosen}}",
|
|
6306
|
+
]
|
|
6264
6307
|
- ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
6265
6308
|
- ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
6266
6309
|
- ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
@@ -6281,14 +6324,14 @@ sections:
|
|
|
6281
6324
|
title: Data Models
|
|
6282
6325
|
instruction: |
|
|
6283
6326
|
Define the core data models/entities that will be shared between frontend and backend:
|
|
6284
|
-
|
|
6327
|
+
|
|
6285
6328
|
1. Review PRD requirements and identify key business entities
|
|
6286
6329
|
2. For each model, explain its purpose and relationships
|
|
6287
6330
|
3. Include key attributes and data types
|
|
6288
6331
|
4. Show relationships between models
|
|
6289
6332
|
5. Create TypeScript interfaces that can be shared
|
|
6290
6333
|
6. Discuss design decisions with user
|
|
6291
|
-
|
|
6334
|
+
|
|
6292
6335
|
Create a clear conceptual model before moving to database schema.
|
|
6293
6336
|
elicit: true
|
|
6294
6337
|
repeatable: true
|
|
@@ -6297,7 +6340,7 @@ sections:
|
|
|
6297
6340
|
title: "{{model_name}}"
|
|
6298
6341
|
template: |
|
|
6299
6342
|
**Purpose:** {{model_purpose}}
|
|
6300
|
-
|
|
6343
|
+
|
|
6301
6344
|
**Key Attributes:**
|
|
6302
6345
|
- {{attribute_1}}: {{type_1}} - {{description_1}}
|
|
6303
6346
|
- {{attribute_2}}: {{type_2}} - {{description_2}}
|
|
@@ -6316,7 +6359,7 @@ sections:
|
|
|
6316
6359
|
title: API Specification
|
|
6317
6360
|
instruction: |
|
|
6318
6361
|
Based on the chosen API style from Tech Stack:
|
|
6319
|
-
|
|
6362
|
+
|
|
6320
6363
|
1. If REST API, create an OpenAPI 3.0 specification
|
|
6321
6364
|
2. If GraphQL, provide the GraphQL schema
|
|
6322
6365
|
3. If tRPC, show router definitions
|
|
@@ -6324,7 +6367,7 @@ sections:
|
|
|
6324
6367
|
5. Define request/response schemas based on data models
|
|
6325
6368
|
6. Document authentication requirements
|
|
6326
6369
|
7. Include example requests/responses
|
|
6327
|
-
|
|
6370
|
+
|
|
6328
6371
|
Use appropriate format for the chosen API style. If no API (e.g., static site), skip this section.
|
|
6329
6372
|
elicit: true
|
|
6330
6373
|
sections:
|
|
@@ -6359,7 +6402,7 @@ sections:
|
|
|
6359
6402
|
title: Components
|
|
6360
6403
|
instruction: |
|
|
6361
6404
|
Based on the architectural patterns, tech stack, and data models from above:
|
|
6362
|
-
|
|
6405
|
+
|
|
6363
6406
|
1. Identify major logical components/services across the fullstack
|
|
6364
6407
|
2. Consider both frontend and backend components
|
|
6365
6408
|
3. Define clear boundaries and interfaces between components
|
|
@@ -6368,7 +6411,7 @@ sections:
|
|
|
6368
6411
|
- Key interfaces/APIs exposed
|
|
6369
6412
|
- Dependencies on other components
|
|
6370
6413
|
- Technology specifics based on tech stack choices
|
|
6371
|
-
|
|
6414
|
+
|
|
6372
6415
|
5. Create component diagrams where helpful
|
|
6373
6416
|
elicit: true
|
|
6374
6417
|
sections:
|
|
@@ -6377,13 +6420,13 @@ sections:
|
|
|
6377
6420
|
title: "{{component_name}}"
|
|
6378
6421
|
template: |
|
|
6379
6422
|
**Responsibility:** {{component_description}}
|
|
6380
|
-
|
|
6423
|
+
|
|
6381
6424
|
**Key Interfaces:**
|
|
6382
6425
|
- {{interface_1}}
|
|
6383
6426
|
- {{interface_2}}
|
|
6384
|
-
|
|
6427
|
+
|
|
6385
6428
|
**Dependencies:** {{dependencies}}
|
|
6386
|
-
|
|
6429
|
+
|
|
6387
6430
|
**Technology Stack:** {{component_tech_details}}
|
|
6388
6431
|
- id: component-diagrams
|
|
6389
6432
|
title: Component Diagrams
|
|
@@ -6400,13 +6443,13 @@ sections:
|
|
|
6400
6443
|
condition: Project requires external API integrations
|
|
6401
6444
|
instruction: |
|
|
6402
6445
|
For each external service integration:
|
|
6403
|
-
|
|
6446
|
+
|
|
6404
6447
|
1. Identify APIs needed based on PRD requirements and component design
|
|
6405
6448
|
2. If documentation URLs are unknown, ask user for specifics
|
|
6406
6449
|
3. Document authentication methods and security considerations
|
|
6407
6450
|
4. List specific endpoints that will be used
|
|
6408
6451
|
5. Note any rate limits or usage constraints
|
|
6409
|
-
|
|
6452
|
+
|
|
6410
6453
|
If no external APIs are needed, state this explicitly and skip to next section.
|
|
6411
6454
|
elicit: true
|
|
6412
6455
|
repeatable: true
|
|
@@ -6419,10 +6462,10 @@ sections:
|
|
|
6419
6462
|
- **Base URL(s):** {{api_base_url}}
|
|
6420
6463
|
- **Authentication:** {{auth_method}}
|
|
6421
6464
|
- **Rate Limits:** {{rate_limits}}
|
|
6422
|
-
|
|
6465
|
+
|
|
6423
6466
|
**Key Endpoints Used:**
|
|
6424
6467
|
- `{{method}} {{endpoint_path}}` - {{endpoint_purpose}}
|
|
6425
|
-
|
|
6468
|
+
|
|
6426
6469
|
**Integration Notes:** {{integration_considerations}}
|
|
6427
6470
|
|
|
6428
6471
|
- id: core-workflows
|
|
@@ -6431,14 +6474,14 @@ sections:
|
|
|
6431
6474
|
mermaid_type: sequence
|
|
6432
6475
|
instruction: |
|
|
6433
6476
|
Illustrate key system workflows using sequence diagrams:
|
|
6434
|
-
|
|
6477
|
+
|
|
6435
6478
|
1. Identify critical user journeys from PRD
|
|
6436
6479
|
2. Show component interactions including external APIs
|
|
6437
6480
|
3. Include both frontend and backend flows
|
|
6438
6481
|
4. Include error handling paths
|
|
6439
6482
|
5. Document async operations
|
|
6440
6483
|
6. Create both high-level and detailed diagrams as needed
|
|
6441
|
-
|
|
6484
|
+
|
|
6442
6485
|
Focus on workflows that clarify architecture decisions or complex interactions.
|
|
6443
6486
|
elicit: true
|
|
6444
6487
|
|
|
@@ -6446,13 +6489,13 @@ sections:
|
|
|
6446
6489
|
title: Database Schema
|
|
6447
6490
|
instruction: |
|
|
6448
6491
|
Transform the conceptual data models into concrete database schemas:
|
|
6449
|
-
|
|
6492
|
+
|
|
6450
6493
|
1. Use the database type(s) selected in Tech Stack
|
|
6451
6494
|
2. Create schema definitions using appropriate notation
|
|
6452
6495
|
3. Include indexes, constraints, and relationships
|
|
6453
6496
|
4. Consider performance and scalability
|
|
6454
6497
|
5. For NoSQL, show document structures
|
|
6455
|
-
|
|
6498
|
+
|
|
6456
6499
|
Present schema in format appropriate to database type (SQL DDL, JSON schema, etc.)
|
|
6457
6500
|
elicit: true
|
|
6458
6501
|
|
|
@@ -6588,60 +6631,60 @@ sections:
|
|
|
6588
6631
|
type: code
|
|
6589
6632
|
language: plaintext
|
|
6590
6633
|
examples:
|
|
6591
|
-
|
|
6592
|
-
|
|
6593
|
-
|
|
6594
|
-
|
|
6595
|
-
|
|
6596
|
-
|
|
6597
|
-
|
|
6598
|
-
|
|
6599
|
-
|
|
6600
|
-
|
|
6601
|
-
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
6605
|
-
|
|
6606
|
-
|
|
6607
|
-
|
|
6608
|
-
|
|
6609
|
-
|
|
6610
|
-
|
|
6611
|
-
|
|
6612
|
-
|
|
6613
|
-
|
|
6614
|
-
|
|
6615
|
-
|
|
6616
|
-
|
|
6617
|
-
|
|
6618
|
-
|
|
6619
|
-
|
|
6620
|
-
|
|
6621
|
-
|
|
6622
|
-
|
|
6623
|
-
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
|
|
6627
|
-
|
|
6628
|
-
|
|
6629
|
-
|
|
6630
|
-
|
|
6631
|
-
|
|
6632
|
-
|
|
6633
|
-
|
|
6634
|
-
|
|
6635
|
-
|
|
6636
|
-
|
|
6637
|
-
|
|
6638
|
-
|
|
6639
|
-
|
|
6640
|
-
|
|
6641
|
-
|
|
6642
|
-
|
|
6643
|
-
|
|
6644
|
-
|
|
6634
|
+
- |
|
|
6635
|
+
{{project-name}}/
|
|
6636
|
+
├── .github/ # CI/CD workflows
|
|
6637
|
+
│ └── workflows/
|
|
6638
|
+
│ ├── ci.yaml
|
|
6639
|
+
│ └── deploy.yaml
|
|
6640
|
+
├── apps/ # Application packages
|
|
6641
|
+
│ ├── web/ # Frontend application
|
|
6642
|
+
│ │ ├── src/
|
|
6643
|
+
│ │ │ ├── components/ # UI components
|
|
6644
|
+
│ │ │ ├── pages/ # Page components/routes
|
|
6645
|
+
│ │ │ ├── hooks/ # Custom React hooks
|
|
6646
|
+
│ │ │ ├── services/ # API client services
|
|
6647
|
+
│ │ │ ├── stores/ # State management
|
|
6648
|
+
│ │ │ ├── styles/ # Global styles/themes
|
|
6649
|
+
│ │ │ └── utils/ # Frontend utilities
|
|
6650
|
+
│ │ ├── public/ # Static assets
|
|
6651
|
+
│ │ ├── tests/ # Frontend tests
|
|
6652
|
+
│ │ └── package.json
|
|
6653
|
+
│ └── api/ # Backend application
|
|
6654
|
+
│ ├── src/
|
|
6655
|
+
│ │ ├── routes/ # API routes/controllers
|
|
6656
|
+
│ │ ├── services/ # Business logic
|
|
6657
|
+
│ │ ├── models/ # Data models
|
|
6658
|
+
│ │ ├── middleware/ # Express/API middleware
|
|
6659
|
+
│ │ ├── utils/ # Backend utilities
|
|
6660
|
+
│ │ └── {{serverless_or_server_entry}}
|
|
6661
|
+
│ ├── tests/ # Backend tests
|
|
6662
|
+
│ └── package.json
|
|
6663
|
+
├── packages/ # Shared packages
|
|
6664
|
+
│ ├── shared/ # Shared types/utilities
|
|
6665
|
+
│ │ ├── src/
|
|
6666
|
+
│ │ │ ├── types/ # TypeScript interfaces
|
|
6667
|
+
│ │ │ ├── constants/ # Shared constants
|
|
6668
|
+
│ │ │ └── utils/ # Shared utilities
|
|
6669
|
+
│ │ └── package.json
|
|
6670
|
+
│ ├── ui/ # Shared UI components
|
|
6671
|
+
│ │ ├── src/
|
|
6672
|
+
│ │ └── package.json
|
|
6673
|
+
│ └── config/ # Shared configuration
|
|
6674
|
+
│ ├── eslint/
|
|
6675
|
+
│ ├── typescript/
|
|
6676
|
+
│ └── jest/
|
|
6677
|
+
├── infrastructure/ # IaC definitions
|
|
6678
|
+
│ └── {{iac_structure}}
|
|
6679
|
+
├── scripts/ # Build/deploy scripts
|
|
6680
|
+
├── docs/ # Documentation
|
|
6681
|
+
│ ├── prd.md
|
|
6682
|
+
│ ├── front-end-spec.md
|
|
6683
|
+
│ └── fullstack-architecture.md
|
|
6684
|
+
├── .env.example # Environment template
|
|
6685
|
+
├── package.json # Root package.json
|
|
6686
|
+
├── {{monorepo_config}} # Monorepo configuration
|
|
6687
|
+
└── README.md
|
|
6645
6688
|
|
|
6646
6689
|
- id: development-workflow
|
|
6647
6690
|
title: Development Workflow
|
|
@@ -6668,13 +6711,13 @@ sections:
|
|
|
6668
6711
|
template: |
|
|
6669
6712
|
# Start all services
|
|
6670
6713
|
{{start_all_command}}
|
|
6671
|
-
|
|
6714
|
+
|
|
6672
6715
|
# Start frontend only
|
|
6673
6716
|
{{start_frontend_command}}
|
|
6674
|
-
|
|
6717
|
+
|
|
6675
6718
|
# Start backend only
|
|
6676
6719
|
{{start_backend_command}}
|
|
6677
|
-
|
|
6720
|
+
|
|
6678
6721
|
# Run tests
|
|
6679
6722
|
{{test_commands}}
|
|
6680
6723
|
- id: environment-config
|
|
@@ -6687,10 +6730,10 @@ sections:
|
|
|
6687
6730
|
template: |
|
|
6688
6731
|
# Frontend (.env.local)
|
|
6689
6732
|
{{frontend_env_vars}}
|
|
6690
|
-
|
|
6733
|
+
|
|
6691
6734
|
# Backend (.env)
|
|
6692
6735
|
{{backend_env_vars}}
|
|
6693
|
-
|
|
6736
|
+
|
|
6694
6737
|
# Shared
|
|
6695
6738
|
{{shared_env_vars}}
|
|
6696
6739
|
|
|
@@ -6707,7 +6750,7 @@ sections:
|
|
|
6707
6750
|
- **Build Command:** {{frontend_build_command}}
|
|
6708
6751
|
- **Output Directory:** {{frontend_output_dir}}
|
|
6709
6752
|
- **CDN/Edge:** {{cdn_strategy}}
|
|
6710
|
-
|
|
6753
|
+
|
|
6711
6754
|
**Backend Deployment:**
|
|
6712
6755
|
- **Platform:** {{backend_deploy_platform}}
|
|
6713
6756
|
- **Build Command:** {{backend_build_command}}
|
|
@@ -6738,12 +6781,12 @@ sections:
|
|
|
6738
6781
|
- CSP Headers: {{csp_policy}}
|
|
6739
6782
|
- XSS Prevention: {{xss_strategy}}
|
|
6740
6783
|
- Secure Storage: {{storage_strategy}}
|
|
6741
|
-
|
|
6784
|
+
|
|
6742
6785
|
**Backend Security:**
|
|
6743
6786
|
- Input Validation: {{validation_approach}}
|
|
6744
6787
|
- Rate Limiting: {{rate_limit_config}}
|
|
6745
6788
|
- CORS Policy: {{cors_config}}
|
|
6746
|
-
|
|
6789
|
+
|
|
6747
6790
|
**Authentication Security:**
|
|
6748
6791
|
- Token Storage: {{token_strategy}}
|
|
6749
6792
|
- Session Management: {{session_approach}}
|
|
@@ -6755,7 +6798,7 @@ sections:
|
|
|
6755
6798
|
- Bundle Size Target: {{bundle_size}}
|
|
6756
6799
|
- Loading Strategy: {{loading_approach}}
|
|
6757
6800
|
- Caching Strategy: {{fe_cache_strategy}}
|
|
6758
|
-
|
|
6801
|
+
|
|
6759
6802
|
**Backend Performance:**
|
|
6760
6803
|
- Response Time Target: {{response_target}}
|
|
6761
6804
|
- Database Optimization: {{db_optimization}}
|
|
@@ -6771,10 +6814,10 @@ sections:
|
|
|
6771
6814
|
type: code
|
|
6772
6815
|
language: text
|
|
6773
6816
|
template: |
|
|
6774
|
-
|
|
6775
|
-
|
|
6776
|
-
|
|
6777
|
-
|
|
6817
|
+
E2E Tests
|
|
6818
|
+
/ \
|
|
6819
|
+
Integration Tests
|
|
6820
|
+
/ \
|
|
6778
6821
|
Frontend Unit Backend Unit
|
|
6779
6822
|
- id: test-organization
|
|
6780
6823
|
title: Test Organization
|
|
@@ -6893,7 +6936,7 @@ sections:
|
|
|
6893
6936
|
- JavaScript errors
|
|
6894
6937
|
- API response times
|
|
6895
6938
|
- User interactions
|
|
6896
|
-
|
|
6939
|
+
|
|
6897
6940
|
**Backend Metrics:**
|
|
6898
6941
|
- Request rate
|
|
6899
6942
|
- Error rate
|
|
@@ -6924,40 +6967,40 @@ sections:
|
|
|
6924
6967
|
title: Introduction
|
|
6925
6968
|
instruction: |
|
|
6926
6969
|
IMPORTANT - SCOPE AND ASSESSMENT REQUIRED:
|
|
6927
|
-
|
|
6970
|
+
|
|
6928
6971
|
This architecture document is for SIGNIFICANT enhancements to existing projects that require comprehensive architectural planning. Before proceeding:
|
|
6929
|
-
|
|
6972
|
+
|
|
6930
6973
|
1. **Verify Complexity**: Confirm this enhancement requires architectural planning. For simple additions, recommend: "For simpler changes that don't require architectural planning, consider using the brownfield-create-epic or brownfield-create-story task with the Product Owner instead."
|
|
6931
|
-
|
|
6974
|
+
|
|
6932
6975
|
2. **REQUIRED INPUTS**:
|
|
6933
6976
|
- Completed brownfield-prd.md
|
|
6934
6977
|
- Existing project technical documentation (from docs folder or user-provided)
|
|
6935
6978
|
- Access to existing project structure (IDE or uploaded files)
|
|
6936
|
-
|
|
6979
|
+
|
|
6937
6980
|
3. **DEEP ANALYSIS MANDATE**: You MUST conduct thorough analysis of the existing codebase, architecture patterns, and technical constraints before making ANY architectural recommendations. Every suggestion must be based on actual project analysis, not assumptions.
|
|
6938
|
-
|
|
6981
|
+
|
|
6939
6982
|
4. **CONTINUOUS VALIDATION**: Throughout this process, explicitly validate your understanding with the user. For every architectural decision, confirm: "Based on my analysis of your existing system, I recommend [decision] because [evidence from actual project]. Does this align with your system's reality?"
|
|
6940
|
-
|
|
6983
|
+
|
|
6941
6984
|
If any required inputs are missing, request them before proceeding.
|
|
6942
6985
|
elicit: true
|
|
6943
6986
|
sections:
|
|
6944
6987
|
- id: intro-content
|
|
6945
6988
|
content: |
|
|
6946
6989
|
This document outlines the architectural approach for enhancing {{project_name}} with {{enhancement_description}}. Its primary goal is to serve as the guiding architectural blueprint for AI-driven development of new features while ensuring seamless integration with the existing system.
|
|
6947
|
-
|
|
6990
|
+
|
|
6948
6991
|
**Relationship to Existing Architecture:**
|
|
6949
6992
|
This document supplements existing project architecture by defining how new components will integrate with current systems. Where conflicts arise between new and existing patterns, this document provides guidance on maintaining consistency while implementing enhancements.
|
|
6950
6993
|
- id: existing-project-analysis
|
|
6951
6994
|
title: Existing Project Analysis
|
|
6952
6995
|
instruction: |
|
|
6953
6996
|
Analyze the existing project structure and architecture:
|
|
6954
|
-
|
|
6997
|
+
|
|
6955
6998
|
1. Review existing documentation in docs folder
|
|
6956
6999
|
2. Examine current technology stack and versions
|
|
6957
7000
|
3. Identify existing architectural patterns and conventions
|
|
6958
7001
|
4. Note current deployment and infrastructure setup
|
|
6959
7002
|
5. Document any constraints or limitations
|
|
6960
|
-
|
|
7003
|
+
|
|
6961
7004
|
CRITICAL: After your analysis, explicitly validate your findings: "Based on my analysis of your project, I've identified the following about your existing system: [key findings]. Please confirm these observations are accurate before I proceed with architectural recommendations."
|
|
6962
7005
|
elicit: true
|
|
6963
7006
|
sections:
|
|
@@ -6986,12 +7029,12 @@ sections:
|
|
|
6986
7029
|
title: Enhancement Scope and Integration Strategy
|
|
6987
7030
|
instruction: |
|
|
6988
7031
|
Define how the enhancement will integrate with the existing system:
|
|
6989
|
-
|
|
7032
|
+
|
|
6990
7033
|
1. Review the brownfield PRD enhancement scope
|
|
6991
7034
|
2. Identify integration points with existing code
|
|
6992
7035
|
3. Define boundaries between new and existing functionality
|
|
6993
7036
|
4. Establish compatibility requirements
|
|
6994
|
-
|
|
7037
|
+
|
|
6995
7038
|
VALIDATION CHECKPOINT: Before presenting the integration strategy, confirm: "Based on my analysis, the integration approach I'm proposing takes into account [specific existing system characteristics]. These integration points and boundaries respect your current architecture patterns. Is this assessment accurate?"
|
|
6996
7039
|
elicit: true
|
|
6997
7040
|
sections:
|
|
@@ -7020,7 +7063,7 @@ sections:
|
|
|
7020
7063
|
title: Tech Stack Alignment
|
|
7021
7064
|
instruction: |
|
|
7022
7065
|
Ensure new components align with existing technology choices:
|
|
7023
|
-
|
|
7066
|
+
|
|
7024
7067
|
1. Use existing technology stack as the foundation
|
|
7025
7068
|
2. Only introduce new technologies if absolutely necessary
|
|
7026
7069
|
3. Justify any new additions with clear rationale
|
|
@@ -7043,7 +7086,7 @@ sections:
|
|
|
7043
7086
|
title: Data Models and Schema Changes
|
|
7044
7087
|
instruction: |
|
|
7045
7088
|
Define new data models and how they integrate with existing schema:
|
|
7046
|
-
|
|
7089
|
+
|
|
7047
7090
|
1. Identify new entities required for the enhancement
|
|
7048
7091
|
2. Define relationships with existing data models
|
|
7049
7092
|
3. Plan database schema changes (additions, modifications)
|
|
@@ -7059,11 +7102,11 @@ sections:
|
|
|
7059
7102
|
template: |
|
|
7060
7103
|
**Purpose:** {{model_purpose}}
|
|
7061
7104
|
**Integration:** {{integration_with_existing}}
|
|
7062
|
-
|
|
7105
|
+
|
|
7063
7106
|
**Key Attributes:**
|
|
7064
7107
|
- {{attribute_1}}: {{type_1}} - {{description_1}}
|
|
7065
7108
|
- {{attribute_2}}: {{type_2}} - {{description_2}}
|
|
7066
|
-
|
|
7109
|
+
|
|
7067
7110
|
**Relationships:**
|
|
7068
7111
|
- **With Existing:** {{existing_relationships}}
|
|
7069
7112
|
- **With New:** {{new_relationships}}
|
|
@@ -7075,7 +7118,7 @@ sections:
|
|
|
7075
7118
|
- **Modified Tables:** {{modified_tables_list}}
|
|
7076
7119
|
- **New Indexes:** {{new_indexes_list}}
|
|
7077
7120
|
- **Migration Strategy:** {{migration_approach}}
|
|
7078
|
-
|
|
7121
|
+
|
|
7079
7122
|
**Backward Compatibility:**
|
|
7080
7123
|
- {{compatibility_measure_1}}
|
|
7081
7124
|
- {{compatibility_measure_2}}
|
|
@@ -7084,12 +7127,12 @@ sections:
|
|
|
7084
7127
|
title: Component Architecture
|
|
7085
7128
|
instruction: |
|
|
7086
7129
|
Define new components and their integration with existing architecture:
|
|
7087
|
-
|
|
7130
|
+
|
|
7088
7131
|
1. Identify new components required for the enhancement
|
|
7089
7132
|
2. Define interfaces with existing components
|
|
7090
7133
|
3. Establish clear boundaries and responsibilities
|
|
7091
7134
|
4. Plan integration points and data flow
|
|
7092
|
-
|
|
7135
|
+
|
|
7093
7136
|
MANDATORY VALIDATION: Before presenting component architecture, confirm: "The new components I'm proposing follow the existing architectural patterns I identified in your codebase: [specific patterns]. The integration interfaces respect your current component structure and communication patterns. Does this match your project's reality?"
|
|
7094
7137
|
elicit: true
|
|
7095
7138
|
sections:
|
|
@@ -7102,15 +7145,15 @@ sections:
|
|
|
7102
7145
|
template: |
|
|
7103
7146
|
**Responsibility:** {{component_description}}
|
|
7104
7147
|
**Integration Points:** {{integration_points}}
|
|
7105
|
-
|
|
7148
|
+
|
|
7106
7149
|
**Key Interfaces:**
|
|
7107
7150
|
- {{interface_1}}
|
|
7108
7151
|
- {{interface_2}}
|
|
7109
|
-
|
|
7152
|
+
|
|
7110
7153
|
**Dependencies:**
|
|
7111
7154
|
- **Existing Components:** {{existing_dependencies}}
|
|
7112
7155
|
- **New Components:** {{new_dependencies}}
|
|
7113
|
-
|
|
7156
|
+
|
|
7114
7157
|
**Technology Stack:** {{component_tech_details}}
|
|
7115
7158
|
- id: interaction-diagram
|
|
7116
7159
|
title: Component Interaction Diagram
|
|
@@ -7123,7 +7166,7 @@ sections:
|
|
|
7123
7166
|
condition: Enhancement requires API changes
|
|
7124
7167
|
instruction: |
|
|
7125
7168
|
Define new API endpoints and integration with existing APIs:
|
|
7126
|
-
|
|
7169
|
+
|
|
7127
7170
|
1. Plan new API endpoints required for the enhancement
|
|
7128
7171
|
2. Ensure consistency with existing API patterns
|
|
7129
7172
|
3. Define authentication and authorization integration
|
|
@@ -7173,17 +7216,17 @@ sections:
|
|
|
7173
7216
|
- **Base URL:** {{api_base_url}}
|
|
7174
7217
|
- **Authentication:** {{auth_method}}
|
|
7175
7218
|
- **Integration Method:** {{integration_approach}}
|
|
7176
|
-
|
|
7219
|
+
|
|
7177
7220
|
**Key Endpoints Used:**
|
|
7178
7221
|
- `{{method}} {{endpoint_path}}` - {{endpoint_purpose}}
|
|
7179
|
-
|
|
7222
|
+
|
|
7180
7223
|
**Error Handling:** {{error_handling_strategy}}
|
|
7181
7224
|
|
|
7182
7225
|
- id: source-tree-integration
|
|
7183
7226
|
title: Source Tree Integration
|
|
7184
7227
|
instruction: |
|
|
7185
7228
|
Define how new code will integrate with existing project structure:
|
|
7186
|
-
|
|
7229
|
+
|
|
7187
7230
|
1. Follow existing project organization patterns
|
|
7188
7231
|
2. Identify where new files/folders will be placed
|
|
7189
7232
|
3. Ensure consistency with existing naming conventions
|
|
@@ -7222,7 +7265,7 @@ sections:
|
|
|
7222
7265
|
title: Infrastructure and Deployment Integration
|
|
7223
7266
|
instruction: |
|
|
7224
7267
|
Define how the enhancement will be deployed alongside existing infrastructure:
|
|
7225
|
-
|
|
7268
|
+
|
|
7226
7269
|
1. Use existing deployment pipeline and infrastructure
|
|
7227
7270
|
2. Identify any infrastructure changes needed
|
|
7228
7271
|
3. Plan deployment strategy to minimize risk
|
|
@@ -7252,7 +7295,7 @@ sections:
|
|
|
7252
7295
|
title: Coding Standards and Conventions
|
|
7253
7296
|
instruction: |
|
|
7254
7297
|
Ensure new code follows existing project conventions:
|
|
7255
|
-
|
|
7298
|
+
|
|
7256
7299
|
1. Document existing coding standards from project analysis
|
|
7257
7300
|
2. Identify any enhancement-specific requirements
|
|
7258
7301
|
3. Ensure consistency with existing codebase patterns
|
|
@@ -7283,7 +7326,7 @@ sections:
|
|
|
7283
7326
|
title: Testing Strategy
|
|
7284
7327
|
instruction: |
|
|
7285
7328
|
Define testing approach for the enhancement:
|
|
7286
|
-
|
|
7329
|
+
|
|
7287
7330
|
1. Integrate with existing test suite
|
|
7288
7331
|
2. Ensure existing functionality remains intact
|
|
7289
7332
|
3. Plan for testing new features
|
|
@@ -7323,7 +7366,7 @@ sections:
|
|
|
7323
7366
|
title: Security Integration
|
|
7324
7367
|
instruction: |
|
|
7325
7368
|
Ensure security consistency with existing system:
|
|
7326
|
-
|
|
7369
|
+
|
|
7327
7370
|
1. Follow existing security patterns and tools
|
|
7328
7371
|
2. Ensure new features don't introduce vulnerabilities
|
|
7329
7372
|
3. Maintain existing security posture
|
|
@@ -7358,7 +7401,7 @@ sections:
|
|
|
7358
7401
|
title: Next Steps
|
|
7359
7402
|
instruction: |
|
|
7360
7403
|
After completing the brownfield architecture:
|
|
7361
|
-
|
|
7404
|
+
|
|
7362
7405
|
1. Review integration points with existing system
|
|
7363
7406
|
2. Begin story implementation with Dev agent
|
|
7364
7407
|
3. Set up deployment pipeline integration
|
|
@@ -7977,7 +8020,7 @@ workflow:
|
|
|
7977
8020
|
elicitation: advanced-elicitation
|
|
7978
8021
|
|
|
7979
8022
|
agent_config:
|
|
7980
|
-
editable_sections:
|
|
8023
|
+
editable_sections:
|
|
7981
8024
|
- Status
|
|
7982
8025
|
- Story
|
|
7983
8026
|
- Acceptance Criteria
|
|
@@ -7994,7 +8037,7 @@ sections:
|
|
|
7994
8037
|
instruction: Select the current status of the story
|
|
7995
8038
|
owner: scrum-master
|
|
7996
8039
|
editors: [scrum-master, dev-agent]
|
|
7997
|
-
|
|
8040
|
+
|
|
7998
8041
|
- id: story
|
|
7999
8042
|
title: Story
|
|
8000
8043
|
type: template-text
|
|
@@ -8006,7 +8049,7 @@ sections:
|
|
|
8006
8049
|
elicit: true
|
|
8007
8050
|
owner: scrum-master
|
|
8008
8051
|
editors: [scrum-master]
|
|
8009
|
-
|
|
8052
|
+
|
|
8010
8053
|
- id: acceptance-criteria
|
|
8011
8054
|
title: Acceptance Criteria
|
|
8012
8055
|
type: numbered-list
|
|
@@ -8014,7 +8057,7 @@ sections:
|
|
|
8014
8057
|
elicit: true
|
|
8015
8058
|
owner: scrum-master
|
|
8016
8059
|
editors: [scrum-master]
|
|
8017
|
-
|
|
8060
|
+
|
|
8018
8061
|
- id: tasks-subtasks
|
|
8019
8062
|
title: Tasks / Subtasks
|
|
8020
8063
|
type: bullet-list
|
|
@@ -8031,7 +8074,7 @@ sections:
|
|
|
8031
8074
|
elicit: true
|
|
8032
8075
|
owner: scrum-master
|
|
8033
8076
|
editors: [scrum-master, dev-agent]
|
|
8034
|
-
|
|
8077
|
+
|
|
8035
8078
|
- id: dev-notes
|
|
8036
8079
|
title: Dev Notes
|
|
8037
8080
|
instruction: |
|
|
@@ -8055,7 +8098,7 @@ sections:
|
|
|
8055
8098
|
elicit: true
|
|
8056
8099
|
owner: scrum-master
|
|
8057
8100
|
editors: [scrum-master]
|
|
8058
|
-
|
|
8101
|
+
|
|
8059
8102
|
- id: change-log
|
|
8060
8103
|
title: Change Log
|
|
8061
8104
|
type: table
|
|
@@ -8063,7 +8106,7 @@ sections:
|
|
|
8063
8106
|
instruction: Track changes made to this story document
|
|
8064
8107
|
owner: scrum-master
|
|
8065
8108
|
editors: [scrum-master, dev-agent, qa-agent]
|
|
8066
|
-
|
|
8109
|
+
|
|
8067
8110
|
- id: dev-agent-record
|
|
8068
8111
|
title: Dev Agent Record
|
|
8069
8112
|
instruction: This section is populated by the development agent during implementation
|
|
@@ -8076,25 +8119,25 @@ sections:
|
|
|
8076
8119
|
instruction: Record the specific AI agent model and version used for development
|
|
8077
8120
|
owner: dev-agent
|
|
8078
8121
|
editors: [dev-agent]
|
|
8079
|
-
|
|
8122
|
+
|
|
8080
8123
|
- id: debug-log-references
|
|
8081
8124
|
title: Debug Log References
|
|
8082
8125
|
instruction: Reference any debug logs or traces generated during development
|
|
8083
8126
|
owner: dev-agent
|
|
8084
8127
|
editors: [dev-agent]
|
|
8085
|
-
|
|
8128
|
+
|
|
8086
8129
|
- id: completion-notes
|
|
8087
8130
|
title: Completion Notes List
|
|
8088
8131
|
instruction: Notes about the completion of tasks and any issues encountered
|
|
8089
8132
|
owner: dev-agent
|
|
8090
8133
|
editors: [dev-agent]
|
|
8091
|
-
|
|
8134
|
+
|
|
8092
8135
|
- id: file-list
|
|
8093
8136
|
title: File List
|
|
8094
8137
|
instruction: List all files created, modified, or affected during story implementation
|
|
8095
8138
|
owner: dev-agent
|
|
8096
8139
|
editors: [dev-agent]
|
|
8097
|
-
|
|
8140
|
+
|
|
8098
8141
|
- id: qa-results
|
|
8099
8142
|
title: QA Results
|
|
8100
8143
|
instruction: Results from QA Agent QA review of the completed story implementation
|
|
@@ -8675,7 +8718,7 @@ workflow:
|
|
|
8675
8718
|
notes: |
|
|
8676
8719
|
All stories implemented and reviewed!
|
|
8677
8720
|
Service development phase complete.
|
|
8678
|
-
|
|
8721
|
+
|
|
8679
8722
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
|
8680
8723
|
|
|
8681
8724
|
flow_diagram: |
|
|
@@ -8876,7 +8919,7 @@ workflow:
|
|
|
8876
8919
|
notes: |
|
|
8877
8920
|
All stories implemented and reviewed!
|
|
8878
8921
|
Project development phase complete.
|
|
8879
|
-
|
|
8922
|
+
|
|
8880
8923
|
Reference: .bmad-core/data/bmad-kb.md#IDE Development Workflow
|
|
8881
8924
|
|
|
8882
8925
|
flow_diagram: |
|