@mark-gozner/aigile-method 0.4.5
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/LICENSE.md +26 -0
- package/README.md +300 -0
- package/core/agent-teams/team-all.yaml +24 -0
- package/core/agent-teams/team-company.yaml +17 -0
- package/core/agent-teams/team-enterprise.yaml +17 -0
- package/core/agent-teams/team-fullstack.yaml +16 -0
- package/core/agent-teams/team-ide-minimal.yaml +10 -0
- package/core/agents/aigile-master.md +476 -0
- package/core/agents/aigile-orchestrator.agent.md +200 -0
- package/core/agents/analyst.md +45 -0
- package/core/agents/architect.md +43 -0
- package/core/agents/code-tour.agent.md +208 -0
- package/core/agents/dev.agent.md +145 -0
- package/core/agents/dev.md +130 -0
- package/core/agents/expert-react-frontend-engineer.agent.md +741 -0
- package/core/agents/pm.md +33 -0
- package/core/agents/po.md +35 -0
- package/core/agents/qa.md +38 -0
- package/core/agents/sm.md +31 -0
- package/core/agents/ui-expert.md +39 -0
- package/core/agents/ux-expert.md +31 -0
- package/core/checklists/architect-checklist.md +246 -0
- package/core/checklists/change-checklist.md +182 -0
- package/core/checklists/pm-checklist.md +286 -0
- package/core/checklists/po-master-checklist.md +291 -0
- package/core/checklists/story-dod-checklist.md +94 -0
- package/core/checklists/story-draft-checklist.md +153 -0
- package/core/core-config.yaml +22 -0
- package/core/data/aigile-kb.md +112 -0
- package/core/data/brainstorming-techniques.md +73 -0
- package/core/data/elicitation-methods.md +42 -0
- package/core/data/technical-preferences.md +52 -0
- package/core/data/test-levels-framework.md +43 -0
- package/core/data/test-priorities-matrix.md +26 -0
- package/core/instructions/csharp.instructions.md +656 -0
- package/core/instructions/dotnet/csharp.instructions.md +656 -0
- package/core/instructions/java/java.instructions.md +67 -0
- package/core/instructions/java/spring-boot.instructions.md +122 -0
- package/core/instructions/java.instructions.md +67 -0
- package/core/instructions/spring-boot.instructions.md +122 -0
- package/core/prompts/README.md +11 -0
- package/core/prompts/architecture/architecture-blueprint-generator.prompt.md +322 -0
- package/core/prompts/architecture/architecture-validation.prompt.md +71 -0
- package/core/prompts/architecture/file-tree-generator.prompt.md +405 -0
- package/core/prompts/architecture/technical-project-analyze.prompt.md +43 -0
- package/core/prompts/architecture-blueprint-generator.prompt.md +322 -0
- package/core/prompts/architecture-validation.prompt.md +71 -0
- package/core/prompts/code-review.prompt.md +107 -0
- package/core/prompts/confluence-in-md.prompt.md +167 -0
- package/core/prompts/copilot-instructions-blueprint-generator.prompt.md +294 -0
- package/core/prompts/create-implementation-plan.prompt.md +157 -0
- package/core/prompts/create-oo-component-documentation.prompt.md +193 -0
- package/core/prompts/file-tree-generator.prompt.md +405 -0
- package/core/prompts/generate-unit-tests.prompt.md +291 -0
- package/core/prompts/java/java-doc.prompt.md +24 -0
- package/core/prompts/java/java-junit.prompt.md +64 -0
- package/core/prompts/java/junit-5.prompt.md +64 -0
- package/core/prompts/java-doc.prompt.md +24 -0
- package/core/prompts/java-junit.prompt.md +64 -0
- package/core/prompts/junit-5.prompt.md +64 -0
- package/core/prompts/release-notes/README.md +11 -0
- package/core/prompts/release-notes/release-notes.prompt.md +723 -0
- package/core/prompts/release-notes.prompt.md +723 -0
- package/core/prompts/technical-project-analyze.prompt.md +43 -0
- package/core/tasks/advanced-elicitation.md +119 -0
- package/core/tasks/check-story-implemented.md +44 -0
- package/core/tasks/code-arch-review-with-github.md +40 -0
- package/core/tasks/create-architecture-doc.md +55 -0
- package/core/tasks/create-jira-epic-from-confluence.md +70 -0
- package/core/tasks/create-jira-story-from-confluence.md +39 -0
- package/core/tasks/create-jira-story-from-text.md +39 -0
- package/core/tasks/create-next-story.md +35 -0
- package/core/tasks/create-prd-doc.md +54 -0
- package/core/tasks/create-stories-from-epic.md +66 -0
- package/core/tasks/create-tasks-for-story.md +60 -0
- package/core/tasks/document-project.md +69 -0
- package/core/tasks/execute-checklist.md +37 -0
- package/core/tasks/explain-story-from-jira.md +44 -0
- package/core/tasks/facilitate-brainstorming-session.md +69 -0
- package/core/tasks/figma-audit-design-system.md +20 -0
- package/core/tasks/front-end-spec-from-design.md +33 -0
- package/core/tasks/gate.md +64 -0
- package/core/tasks/groom-jira-story.md +52 -0
- package/core/tasks/help.md +27 -0
- package/core/tasks/implement-freeform-work-item.md +30 -0
- package/core/tasks/implement-story-from-jira.md +63 -0
- package/core/tasks/implement-unit-tests.md +45 -0
- package/core/tasks/market-research-from-context7.md +37 -0
- package/core/tasks/review-story.md +30 -0
- package/core/tasks/sonarqube-hotspot-review.md +39 -0
- package/core/tasks/standup-digest.md +21 -0
- package/core/tasks/sync-jira-backlog.md +32 -0
- package/core/tasks/test-design.md +68 -0
- package/core/tasks/validate-next-story.md +37 -0
- package/core/tasks/verify-jira-story-e2e.md +45 -0
- package/core/templates/architecture-tmpl.yaml +651 -0
- package/core/templates/brainstorming-output-tmpl.yaml +156 -0
- package/core/templates/brownfield-architecture-tmpl.yaml +477 -0
- package/core/templates/brownfield-prd-tmpl.yaml +281 -0
- package/core/templates/front-end-architecture-tmpl.yaml +219 -0
- package/core/templates/front-end-spec-tmpl.yaml +350 -0
- package/core/templates/fullstack-architecture-tmpl.yaml +824 -0
- package/core/templates/market-research-tmpl.yaml +253 -0
- package/core/templates/prd-tmpl.yaml +203 -0
- package/core/templates/project-brief-tmpl.yaml +222 -0
- package/core/templates/qa-gate-tmpl.yaml +103 -0
- package/core/templates/story-tmpl.yaml +138 -0
- package/core/workflows/brownfield-fullstack.yaml +298 -0
- package/core/workflows/brownfield-service.yaml +188 -0
- package/core/workflows/brownfield-ui.yaml +198 -0
- package/core/workflows/greenfield-fullstack.yaml +241 -0
- package/core/workflows/greenfield-service.yaml +207 -0
- package/core/workflows/greenfield-ui.yaml +236 -0
- package/dist/agents/aigile-master.txt +500 -0
- package/dist/agents/aigile-orchestrator.agent.txt +224 -0
- package/dist/agents/analyst.txt +69 -0
- package/dist/agents/architect.txt +67 -0
- package/dist/agents/code-tour.agent.txt +232 -0
- package/dist/agents/dev.agent.txt +169 -0
- package/dist/agents/dev.txt +154 -0
- package/dist/agents/expert-react-frontend-engineer.agent.txt +765 -0
- package/dist/agents/pm.txt +57 -0
- package/dist/agents/po.txt +59 -0
- package/dist/agents/qa.txt +62 -0
- package/dist/agents/sm.txt +55 -0
- package/dist/agents/ui-expert.txt +63 -0
- package/dist/agents/ux-expert.txt +55 -0
- package/dist/dev-agent-bundle.txt +154 -0
- package/dist/teams/team-company.txt +10789 -0
- package/docs/mcp-servers.md +102 -0
- package/docs/orchestrator-guide.md +526 -0
- package/mcp/servers.json +108 -0
- package/mcp/servers.yaml +124 -0
- package/package.json +72 -0
- package/tools/cli.js +1864 -0
- package/tools/installer/README.md +24 -0
- package/tools/installer/lib/ide-setup.js +295 -0
- package/tools/installer/lib/installer.js +131 -0
- package/tools/md-assets/web-agent-startup-instructions.md +21 -0
- package/tools/postinstall.js +72 -0
- package/tools/shared/bannerArt.js +68 -0
- package/tools/validate-bundles.js +54 -0
- package/tools/verify-publish-registry.js +34 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# <!-- Powered by BMAD™ Core -->
|
|
2
|
+
template:
|
|
3
|
+
id: brownfield-prd-template-v2
|
|
4
|
+
name: Brownfield Enhancement PRD
|
|
5
|
+
version: 2.0
|
|
6
|
+
output:
|
|
7
|
+
format: markdown
|
|
8
|
+
filename: docs/prd.md
|
|
9
|
+
title: "{{project_name}} Brownfield Enhancement PRD"
|
|
10
|
+
|
|
11
|
+
workflow:
|
|
12
|
+
mode: interactive
|
|
13
|
+
elicitation: advanced-elicitation
|
|
14
|
+
|
|
15
|
+
sections:
|
|
16
|
+
- id: intro-analysis
|
|
17
|
+
title: Intro Project Analysis and Context
|
|
18
|
+
instruction: |
|
|
19
|
+
IMPORTANT - SCOPE ASSESSMENT REQUIRED:
|
|
20
|
+
|
|
21
|
+
This PRD is for SIGNIFICANT enhancements to existing projects that require comprehensive planning and multiple stories. Before proceeding:
|
|
22
|
+
|
|
23
|
+
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."
|
|
24
|
+
|
|
25
|
+
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.
|
|
26
|
+
|
|
27
|
+
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.
|
|
28
|
+
|
|
29
|
+
Gather comprehensive information about the existing project. This section must be completed before proceeding with requirements.
|
|
30
|
+
|
|
31
|
+
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?"
|
|
32
|
+
|
|
33
|
+
Do not proceed with any recommendations until the user has validated your understanding of the existing system.
|
|
34
|
+
sections:
|
|
35
|
+
- id: existing-project-overview
|
|
36
|
+
title: Existing Project Overview
|
|
37
|
+
instruction: Check if document-project analysis was already performed. If yes, reference that output instead of re-analyzing.
|
|
38
|
+
sections:
|
|
39
|
+
- id: analysis-source
|
|
40
|
+
title: Analysis Source
|
|
41
|
+
instruction: |
|
|
42
|
+
Indicate one of the following:
|
|
43
|
+
- Document-project output available at: {{path}}
|
|
44
|
+
- IDE-based fresh analysis
|
|
45
|
+
- User-provided information
|
|
46
|
+
- id: current-state
|
|
47
|
+
title: Current Project State
|
|
48
|
+
instruction: |
|
|
49
|
+
- If document-project output exists: Extract summary from "High Level Architecture" and "Technical Summary" sections
|
|
50
|
+
- Otherwise: Brief description of what the project currently does and its primary purpose
|
|
51
|
+
- id: documentation-analysis
|
|
52
|
+
title: Available Documentation Analysis
|
|
53
|
+
instruction: |
|
|
54
|
+
If document-project was run:
|
|
55
|
+
- Note: "Document-project analysis available - using existing technical documentation"
|
|
56
|
+
- List key documents created by document-project
|
|
57
|
+
- Skip the missing documentation check below
|
|
58
|
+
|
|
59
|
+
Otherwise, check for existing documentation:
|
|
60
|
+
sections:
|
|
61
|
+
- id: available-docs
|
|
62
|
+
title: Available Documentation
|
|
63
|
+
type: checklist
|
|
64
|
+
items:
|
|
65
|
+
- Tech Stack Documentation [[LLM: If from document-project, check ✓]]
|
|
66
|
+
- Source Tree/Architecture [[LLM: If from document-project, check ✓]]
|
|
67
|
+
- Coding Standards [[LLM: If from document-project, may be partial]]
|
|
68
|
+
- API Documentation [[LLM: If from document-project, check ✓]]
|
|
69
|
+
- External API Documentation [[LLM: If from document-project, check ✓]]
|
|
70
|
+
- UX/UI Guidelines [[LLM: May not be in document-project]]
|
|
71
|
+
- Technical Debt Documentation [[LLM: If from document-project, check ✓]]
|
|
72
|
+
- "Other: {{other_docs}}"
|
|
73
|
+
instruction: |
|
|
74
|
+
- If document-project was already run: "Using existing project analysis from document-project output."
|
|
75
|
+
- If critical documentation is missing and no document-project: "I recommend running the document-project task first..."
|
|
76
|
+
- id: enhancement-scope
|
|
77
|
+
title: Enhancement Scope Definition
|
|
78
|
+
instruction: Work with user to clearly define what type of enhancement this is. This is critical for scoping and approach.
|
|
79
|
+
sections:
|
|
80
|
+
- id: enhancement-type
|
|
81
|
+
title: Enhancement Type
|
|
82
|
+
type: checklist
|
|
83
|
+
instruction: Determine with user which applies
|
|
84
|
+
items:
|
|
85
|
+
- New Feature Addition
|
|
86
|
+
- Major Feature Modification
|
|
87
|
+
- Integration with New Systems
|
|
88
|
+
- Performance/Scalability Improvements
|
|
89
|
+
- UI/UX Overhaul
|
|
90
|
+
- Technology Stack Upgrade
|
|
91
|
+
- Bug Fix and Stability Improvements
|
|
92
|
+
- "Other: {{other_type}}"
|
|
93
|
+
- id: enhancement-description
|
|
94
|
+
title: Enhancement Description
|
|
95
|
+
instruction: 2-3 sentences describing what the user wants to add or change
|
|
96
|
+
- id: impact-assessment
|
|
97
|
+
title: Impact Assessment
|
|
98
|
+
type: checklist
|
|
99
|
+
instruction: Assess the scope of impact on existing codebase
|
|
100
|
+
items:
|
|
101
|
+
- Minimal Impact (isolated additions)
|
|
102
|
+
- Moderate Impact (some existing code changes)
|
|
103
|
+
- Significant Impact (substantial existing code changes)
|
|
104
|
+
- Major Impact (architectural changes required)
|
|
105
|
+
- id: goals-context
|
|
106
|
+
title: Goals and Background Context
|
|
107
|
+
sections:
|
|
108
|
+
- id: goals
|
|
109
|
+
title: Goals
|
|
110
|
+
type: bullet-list
|
|
111
|
+
instruction: Bullet list of 1-line desired outcomes this enhancement will deliver if successful
|
|
112
|
+
- id: background
|
|
113
|
+
title: Background Context
|
|
114
|
+
type: paragraphs
|
|
115
|
+
instruction: 1-2 short paragraphs explaining why this enhancement is needed, what problem it solves, and how it fits with the existing project
|
|
116
|
+
- id: changelog
|
|
117
|
+
title: Change Log
|
|
118
|
+
type: table
|
|
119
|
+
columns: [Change, Date, Version, Description, Author]
|
|
120
|
+
|
|
121
|
+
- id: requirements
|
|
122
|
+
title: Requirements
|
|
123
|
+
instruction: |
|
|
124
|
+
Draft functional and non-functional requirements based on your validated understanding of the existing project. Before presenting requirements, confirm: "These requirements are based on my understanding of your existing system. Please review carefully and confirm they align with your project's reality."
|
|
125
|
+
elicit: true
|
|
126
|
+
sections:
|
|
127
|
+
- id: functional
|
|
128
|
+
title: Functional
|
|
129
|
+
type: numbered-list
|
|
130
|
+
prefix: FR
|
|
131
|
+
instruction: Each Requirement will be a bullet markdown with identifier starting with FR
|
|
132
|
+
examples:
|
|
133
|
+
- "FR1: The existing Todo List will integrate with the new AI duplicate detection service without breaking current functionality."
|
|
134
|
+
- id: non-functional
|
|
135
|
+
title: Non Functional
|
|
136
|
+
type: numbered-list
|
|
137
|
+
prefix: NFR
|
|
138
|
+
instruction: Each Requirement will be a bullet markdown with identifier starting with NFR. Include constraints from existing system
|
|
139
|
+
examples:
|
|
140
|
+
- "NFR1: Enhancement must maintain existing performance characteristics and not exceed current memory usage by more than 20%."
|
|
141
|
+
- id: compatibility
|
|
142
|
+
title: Compatibility Requirements
|
|
143
|
+
instruction: Critical for brownfield - what must remain compatible
|
|
144
|
+
type: numbered-list
|
|
145
|
+
prefix: CR
|
|
146
|
+
template: "{{requirement}}: {{description}}"
|
|
147
|
+
items:
|
|
148
|
+
- id: cr1
|
|
149
|
+
template: "CR1: {{existing_api_compatibility}}"
|
|
150
|
+
- id: cr2
|
|
151
|
+
template: "CR2: {{database_schema_compatibility}}"
|
|
152
|
+
- id: cr3
|
|
153
|
+
template: "CR3: {{ui_ux_consistency}}"
|
|
154
|
+
- id: cr4
|
|
155
|
+
template: "CR4: {{integration_compatibility}}"
|
|
156
|
+
|
|
157
|
+
- id: ui-enhancement-goals
|
|
158
|
+
title: User Interface Enhancement Goals
|
|
159
|
+
condition: Enhancement includes UI changes
|
|
160
|
+
instruction: For UI changes, capture how they will integrate with existing UI patterns and design systems
|
|
161
|
+
sections:
|
|
162
|
+
- id: existing-ui-integration
|
|
163
|
+
title: Integration with Existing UI
|
|
164
|
+
instruction: Describe how new UI elements will fit with existing design patterns, style guides, and component libraries
|
|
165
|
+
- id: modified-screens
|
|
166
|
+
title: Modified/New Screens and Views
|
|
167
|
+
instruction: List only the screens/views that will be modified or added
|
|
168
|
+
- id: ui-consistency
|
|
169
|
+
title: UI Consistency Requirements
|
|
170
|
+
instruction: Specific requirements for maintaining visual and interaction consistency with existing application
|
|
171
|
+
|
|
172
|
+
- id: technical-constraints
|
|
173
|
+
title: Technical Constraints and Integration Requirements
|
|
174
|
+
instruction: This section replaces separate architecture documentation. Gather detailed technical constraints from existing project analysis.
|
|
175
|
+
sections:
|
|
176
|
+
- id: existing-tech-stack
|
|
177
|
+
title: Existing Technology Stack
|
|
178
|
+
instruction: |
|
|
179
|
+
If document-project output available:
|
|
180
|
+
- Extract from "Actual Tech Stack" table in High Level Architecture section
|
|
181
|
+
- Include version numbers and any noted constraints
|
|
182
|
+
|
|
183
|
+
Otherwise, document the current technology stack:
|
|
184
|
+
template: |
|
|
185
|
+
**Languages**: {{languages}}
|
|
186
|
+
**Frameworks**: {{frameworks}}
|
|
187
|
+
**Database**: {{database}}
|
|
188
|
+
**Infrastructure**: {{infrastructure}}
|
|
189
|
+
**External Dependencies**: {{external_dependencies}}
|
|
190
|
+
- id: integration-approach
|
|
191
|
+
title: Integration Approach
|
|
192
|
+
instruction: Define how the enhancement will integrate with existing architecture
|
|
193
|
+
template: |
|
|
194
|
+
**Database Integration Strategy**: {{database_integration}}
|
|
195
|
+
**API Integration Strategy**: {{api_integration}}
|
|
196
|
+
**Frontend Integration Strategy**: {{frontend_integration}}
|
|
197
|
+
**Testing Integration Strategy**: {{testing_integration}}
|
|
198
|
+
- id: code-organization
|
|
199
|
+
title: Code Organization and Standards
|
|
200
|
+
instruction: Based on existing project analysis, define how new code will fit existing patterns
|
|
201
|
+
template: |
|
|
202
|
+
**File Structure Approach**: {{file_structure}}
|
|
203
|
+
**Naming Conventions**: {{naming_conventions}}
|
|
204
|
+
**Coding Standards**: {{coding_standards}}
|
|
205
|
+
**Documentation Standards**: {{documentation_standards}}
|
|
206
|
+
- id: deployment-operations
|
|
207
|
+
title: Deployment and Operations
|
|
208
|
+
instruction: How the enhancement fits existing deployment pipeline
|
|
209
|
+
template: |
|
|
210
|
+
**Build Process Integration**: {{build_integration}}
|
|
211
|
+
**Deployment Strategy**: {{deployment_strategy}}
|
|
212
|
+
**Monitoring and Logging**: {{monitoring_logging}}
|
|
213
|
+
**Configuration Management**: {{config_management}}
|
|
214
|
+
- id: risk-assessment
|
|
215
|
+
title: Risk Assessment and Mitigation
|
|
216
|
+
instruction: |
|
|
217
|
+
If document-project output available:
|
|
218
|
+
- Reference "Technical Debt and Known Issues" section
|
|
219
|
+
- Include "Workarounds and Gotchas" that might impact enhancement
|
|
220
|
+
- Note any identified constraints from "Critical Technical Debt"
|
|
221
|
+
|
|
222
|
+
Build risk assessment incorporating existing known issues:
|
|
223
|
+
template: |
|
|
224
|
+
**Technical Risks**: {{technical_risks}}
|
|
225
|
+
**Integration Risks**: {{integration_risks}}
|
|
226
|
+
**Deployment Risks**: {{deployment_risks}}
|
|
227
|
+
**Mitigation Strategies**: {{mitigation_strategies}}
|
|
228
|
+
|
|
229
|
+
- id: epic-structure
|
|
230
|
+
title: Epic and Story Structure
|
|
231
|
+
instruction: |
|
|
232
|
+
For brownfield projects, favor a single comprehensive epic unless the user is clearly requesting multiple unrelated enhancements. Before presenting the epic structure, confirm: "Based on my analysis of your existing project, I believe this enhancement should be structured as [single epic/multiple epics] because [rationale based on actual project analysis]. Does this align with your understanding of the work required?"
|
|
233
|
+
elicit: true
|
|
234
|
+
sections:
|
|
235
|
+
- id: epic-approach
|
|
236
|
+
title: Epic Approach
|
|
237
|
+
instruction: Explain the rationale for epic structure - typically single epic for brownfield unless multiple unrelated features
|
|
238
|
+
template: "**Epic Structure Decision**: {{epic_decision}} with rationale"
|
|
239
|
+
|
|
240
|
+
- id: epic-details
|
|
241
|
+
title: "Epic 1: {{enhancement_title}}"
|
|
242
|
+
instruction: |
|
|
243
|
+
Comprehensive epic that delivers the brownfield enhancement while maintaining existing functionality
|
|
244
|
+
|
|
245
|
+
CRITICAL STORY SEQUENCING FOR BROWNFIELD:
|
|
246
|
+
- Stories must ensure existing functionality remains intact
|
|
247
|
+
- Each story should include verification that existing features still work
|
|
248
|
+
- Stories should be sequenced to minimize risk to existing system
|
|
249
|
+
- Include rollback considerations for each story
|
|
250
|
+
- Focus on incremental integration rather than big-bang changes
|
|
251
|
+
- Size stories for AI agent execution in existing codebase context
|
|
252
|
+
- MANDATORY: Present the complete story sequence and ask: "This story sequence is designed to minimize risk to your existing system. Does this order make sense given your project's architecture and constraints?"
|
|
253
|
+
- Stories must be logically sequential with clear dependencies identified
|
|
254
|
+
- Each story must deliver value while maintaining system integrity
|
|
255
|
+
template: |
|
|
256
|
+
**Epic Goal**: {{epic_goal}}
|
|
257
|
+
|
|
258
|
+
**Integration Requirements**: {{integration_requirements}}
|
|
259
|
+
sections:
|
|
260
|
+
- id: story
|
|
261
|
+
title: "Story 1.{{story_number}} {{story_title}}"
|
|
262
|
+
repeatable: true
|
|
263
|
+
template: |
|
|
264
|
+
As a {{user_type}},
|
|
265
|
+
I want {{action}},
|
|
266
|
+
so that {{benefit}}.
|
|
267
|
+
sections:
|
|
268
|
+
- id: acceptance-criteria
|
|
269
|
+
title: Acceptance Criteria
|
|
270
|
+
type: numbered-list
|
|
271
|
+
instruction: Define criteria that include both new functionality and existing system integrity
|
|
272
|
+
item_template: "{{criterion_number}}: {{criteria}}"
|
|
273
|
+
- id: integration-verification
|
|
274
|
+
title: Integration Verification
|
|
275
|
+
instruction: Specific verification steps to ensure existing functionality remains intact
|
|
276
|
+
type: numbered-list
|
|
277
|
+
prefix: IV
|
|
278
|
+
items:
|
|
279
|
+
- template: "IV1: {{existing_functionality_verification}}"
|
|
280
|
+
- template: "IV2: {{integration_point_verification}}"
|
|
281
|
+
- template: "IV3: {{performance_impact_verification}}"
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# <!-- Powered by BMAD™ Core -->
|
|
2
|
+
template:
|
|
3
|
+
id: frontend-architecture-template-v2
|
|
4
|
+
name: Frontend Architecture Document
|
|
5
|
+
version: 2.0
|
|
6
|
+
output:
|
|
7
|
+
format: markdown
|
|
8
|
+
filename: docs/ui-architecture.md
|
|
9
|
+
title: "{{project_name}} Frontend Architecture Document"
|
|
10
|
+
|
|
11
|
+
workflow:
|
|
12
|
+
mode: interactive
|
|
13
|
+
elicitation: advanced-elicitation
|
|
14
|
+
|
|
15
|
+
sections:
|
|
16
|
+
- id: template-framework-selection
|
|
17
|
+
title: Template and Framework Selection
|
|
18
|
+
instruction: |
|
|
19
|
+
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.
|
|
20
|
+
|
|
21
|
+
Before proceeding with frontend architecture design, check if the project is using a frontend starter template or existing codebase:
|
|
22
|
+
|
|
23
|
+
1. Review the PRD, main architecture document, and brainstorming brief for mentions of:
|
|
24
|
+
- Frontend starter templates (e.g., Create React App, Next.js, Vite, Vue CLI, Angular CLI, etc.)
|
|
25
|
+
- UI kit or component library starters
|
|
26
|
+
- Existing frontend projects being used as a foundation
|
|
27
|
+
- Admin dashboard templates or other specialized starters
|
|
28
|
+
- Design system implementations
|
|
29
|
+
|
|
30
|
+
2. If a frontend starter template or existing project is mentioned:
|
|
31
|
+
- Ask the user to provide access via one of these methods:
|
|
32
|
+
- Link to the starter template documentation
|
|
33
|
+
- Upload/attach the project files (for small projects)
|
|
34
|
+
- Share a link to the project repository
|
|
35
|
+
- Analyze the starter/existing project to understand:
|
|
36
|
+
- Pre-installed dependencies and versions
|
|
37
|
+
- Folder structure and file organization
|
|
38
|
+
- Built-in components and utilities
|
|
39
|
+
- Styling approach (CSS modules, styled-components, Tailwind, etc.)
|
|
40
|
+
- State management setup (if any)
|
|
41
|
+
- Routing configuration
|
|
42
|
+
- Testing setup and patterns
|
|
43
|
+
- Build and development scripts
|
|
44
|
+
- Use this analysis to ensure your frontend architecture aligns with the starter's patterns
|
|
45
|
+
|
|
46
|
+
3. If no frontend starter is mentioned but this is a new UI, ensure we know what the ui language and framework is:
|
|
47
|
+
- Based on the framework choice, suggest appropriate starters:
|
|
48
|
+
- React: Create React App, Next.js, Vite + React
|
|
49
|
+
- Vue: Vue CLI, Nuxt.js, Vite + Vue
|
|
50
|
+
- Angular: Angular CLI
|
|
51
|
+
- Or suggest popular UI templates if applicable
|
|
52
|
+
- Explain benefits specific to frontend development
|
|
53
|
+
|
|
54
|
+
4. If the user confirms no starter template will be used:
|
|
55
|
+
- Note that all tooling, bundling, and configuration will need manual setup
|
|
56
|
+
- Proceed with frontend architecture from scratch
|
|
57
|
+
|
|
58
|
+
Document the starter template decision and any constraints it imposes before proceeding.
|
|
59
|
+
sections:
|
|
60
|
+
- id: changelog
|
|
61
|
+
title: Change Log
|
|
62
|
+
type: table
|
|
63
|
+
columns: [Date, Version, Description, Author]
|
|
64
|
+
instruction: Track document versions and changes
|
|
65
|
+
|
|
66
|
+
- id: frontend-tech-stack
|
|
67
|
+
title: Frontend Tech Stack
|
|
68
|
+
instruction: Extract from main architecture's Technology Stack Table. This section MUST remain synchronized with the main architecture document.
|
|
69
|
+
elicit: true
|
|
70
|
+
sections:
|
|
71
|
+
- id: tech-stack-table
|
|
72
|
+
title: Technology Stack Table
|
|
73
|
+
type: table
|
|
74
|
+
columns: [Category, Technology, Version, Purpose, Rationale]
|
|
75
|
+
instruction: Fill in appropriate technology choices based on the selected framework and project requirements.
|
|
76
|
+
rows:
|
|
77
|
+
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
78
|
+
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
79
|
+
- [
|
|
80
|
+
"State Management",
|
|
81
|
+
"{{state_management}}",
|
|
82
|
+
"{{version}}",
|
|
83
|
+
"{{purpose}}",
|
|
84
|
+
"{{why_chosen}}",
|
|
85
|
+
]
|
|
86
|
+
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
87
|
+
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
88
|
+
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
89
|
+
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
90
|
+
- [
|
|
91
|
+
"Component Library",
|
|
92
|
+
"{{component_lib}}",
|
|
93
|
+
"{{version}}",
|
|
94
|
+
"{{purpose}}",
|
|
95
|
+
"{{why_chosen}}",
|
|
96
|
+
]
|
|
97
|
+
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
98
|
+
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
99
|
+
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
|
|
100
|
+
|
|
101
|
+
- id: project-structure
|
|
102
|
+
title: Project Structure
|
|
103
|
+
instruction: Define exact directory structure for AI tools based on the chosen framework. Be specific about where each type of file goes. Generate a structure that follows the framework's best practices and conventions.
|
|
104
|
+
elicit: true
|
|
105
|
+
type: code
|
|
106
|
+
language: plaintext
|
|
107
|
+
|
|
108
|
+
- id: component-standards
|
|
109
|
+
title: Component Standards
|
|
110
|
+
instruction: Define exact patterns for component creation based on the chosen framework.
|
|
111
|
+
elicit: true
|
|
112
|
+
sections:
|
|
113
|
+
- id: component-template
|
|
114
|
+
title: Component Template
|
|
115
|
+
instruction: Generate a minimal but complete component template following the framework's best practices. Include TypeScript types, proper imports, and basic structure.
|
|
116
|
+
type: code
|
|
117
|
+
language: typescript
|
|
118
|
+
- id: naming-conventions
|
|
119
|
+
title: Naming Conventions
|
|
120
|
+
instruction: Provide naming conventions specific to the chosen framework for components, files, services, state management, and other architectural elements.
|
|
121
|
+
|
|
122
|
+
- id: state-management
|
|
123
|
+
title: State Management
|
|
124
|
+
instruction: Define state management patterns based on the chosen framework.
|
|
125
|
+
elicit: true
|
|
126
|
+
sections:
|
|
127
|
+
- id: store-structure
|
|
128
|
+
title: Store Structure
|
|
129
|
+
instruction: Generate the state management directory structure appropriate for the chosen framework and selected state management solution.
|
|
130
|
+
type: code
|
|
131
|
+
language: plaintext
|
|
132
|
+
- id: state-template
|
|
133
|
+
title: State Management Template
|
|
134
|
+
instruction: Provide a basic state management template/example following the framework's recommended patterns. Include TypeScript types and common operations like setting, updating, and clearing state.
|
|
135
|
+
type: code
|
|
136
|
+
language: typescript
|
|
137
|
+
|
|
138
|
+
- id: api-integration
|
|
139
|
+
title: API Integration
|
|
140
|
+
instruction: Define API service patterns based on the chosen framework.
|
|
141
|
+
elicit: true
|
|
142
|
+
sections:
|
|
143
|
+
- id: service-template
|
|
144
|
+
title: Service Template
|
|
145
|
+
instruction: Provide an API service template that follows the framework's conventions. Include proper TypeScript types, error handling, and async patterns.
|
|
146
|
+
type: code
|
|
147
|
+
language: typescript
|
|
148
|
+
- id: api-client-config
|
|
149
|
+
title: API Client Configuration
|
|
150
|
+
instruction: Show how to configure the HTTP client for the chosen framework, including authentication interceptors/middleware and error handling.
|
|
151
|
+
type: code
|
|
152
|
+
language: typescript
|
|
153
|
+
|
|
154
|
+
- id: routing
|
|
155
|
+
title: Routing
|
|
156
|
+
instruction: Define routing structure and patterns based on the chosen framework.
|
|
157
|
+
elicit: true
|
|
158
|
+
sections:
|
|
159
|
+
- id: route-configuration
|
|
160
|
+
title: Route Configuration
|
|
161
|
+
instruction: Provide routing configuration appropriate for the chosen framework. Include protected route patterns, lazy loading where applicable, and authentication guards/middleware.
|
|
162
|
+
type: code
|
|
163
|
+
language: typescript
|
|
164
|
+
|
|
165
|
+
- id: styling-guidelines
|
|
166
|
+
title: Styling Guidelines
|
|
167
|
+
instruction: Define styling approach based on the chosen framework.
|
|
168
|
+
elicit: true
|
|
169
|
+
sections:
|
|
170
|
+
- id: styling-approach
|
|
171
|
+
title: Styling Approach
|
|
172
|
+
instruction: Describe the styling methodology appropriate for the chosen framework (CSS Modules, Styled Components, Tailwind, etc.) and provide basic patterns.
|
|
173
|
+
- id: global-theme
|
|
174
|
+
title: Global Theme Variables
|
|
175
|
+
instruction: Provide a CSS custom properties (CSS variables) theme system that works across all frameworks. Include colors, spacing, typography, shadows, and dark mode support.
|
|
176
|
+
type: code
|
|
177
|
+
language: css
|
|
178
|
+
|
|
179
|
+
- id: testing-requirements
|
|
180
|
+
title: Testing Requirements
|
|
181
|
+
instruction: Define minimal testing requirements based on the chosen framework.
|
|
182
|
+
elicit: true
|
|
183
|
+
sections:
|
|
184
|
+
- id: component-test-template
|
|
185
|
+
title: Component Test Template
|
|
186
|
+
instruction: Provide a basic component test template using the framework's recommended testing library. Include examples of rendering tests, user interaction tests, and mocking.
|
|
187
|
+
type: code
|
|
188
|
+
language: typescript
|
|
189
|
+
- id: testing-best-practices
|
|
190
|
+
title: Testing Best Practices
|
|
191
|
+
type: numbered-list
|
|
192
|
+
items:
|
|
193
|
+
- "**Unit Tests**: Test individual components in isolation"
|
|
194
|
+
- "**Integration Tests**: Test component interactions"
|
|
195
|
+
- "**E2E Tests**: Test critical user flows (using Cypress/Playwright)"
|
|
196
|
+
- "**Coverage Goals**: Aim for 80% code coverage"
|
|
197
|
+
- "**Test Structure**: Arrange-Act-Assert pattern"
|
|
198
|
+
- "**Mock External Dependencies**: API calls, routing, state management"
|
|
199
|
+
|
|
200
|
+
- id: environment-configuration
|
|
201
|
+
title: Environment Configuration
|
|
202
|
+
instruction: List required environment variables based on the chosen framework. Show the appropriate format and naming conventions for the framework.
|
|
203
|
+
elicit: true
|
|
204
|
+
|
|
205
|
+
- id: frontend-developer-standards
|
|
206
|
+
title: Frontend Developer Standards
|
|
207
|
+
sections:
|
|
208
|
+
- id: critical-coding-rules
|
|
209
|
+
title: Critical Coding Rules
|
|
210
|
+
instruction: List essential rules that prevent common AI mistakes, including both universal rules and framework-specific ones.
|
|
211
|
+
elicit: true
|
|
212
|
+
- id: quick-reference
|
|
213
|
+
title: Quick Reference
|
|
214
|
+
instruction: |
|
|
215
|
+
Create a framework-specific cheat sheet with:
|
|
216
|
+
- Common commands (dev server, build, test)
|
|
217
|
+
- Key import patterns
|
|
218
|
+
- File naming conventions
|
|
219
|
+
- Project-specific patterns and utilities
|