prd-tmpl.yaml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. # <!-- Powered by BMAD™ Core -->
  2. template:
  3. id: prd-template-v2
  4. name: Product Requirements Document
  5. version: 2.0
  6. output:
  7. format: markdown
  8. filename: docs/prd.md
  9. title: "{{project_name}} Product Requirements Document (PRD)"
  10. workflow:
  11. mode: interactive
  12. elicitation: advanced-elicitation
  13. sections:
  14. - id: goals-context
  15. title: Goals and Background Context
  16. instruction: |
  17. Ask if Project Brief document is available. If NO Project Brief exists, STRONGLY recommend creating one first using project-brief-tmpl (it provides essential foundation: problem statement, target users, success metrics, MVP scope, constraints). If user insists on PRD without brief, gather this information during Goals section. If Project Brief exists, review and use it to populate Goals (bullet list of desired outcomes) and Background Context (1-2 paragraphs on what this solves and why) so we can determine what is and is not in scope for PRD mvp. Either way this is critical to determine the requirements. Include Change Log table.
  18. sections:
  19. - id: goals
  20. title: Goals
  21. type: bullet-list
  22. instruction: Bullet list of 1 line desired outcomes the PRD will deliver if successful - user and project desires
  23. - id: background
  24. title: Background Context
  25. type: paragraphs
  26. instruction: 1-2 short paragraphs summarizing the background context, such as what we learned in the brief without being redundant with the goals, what and why this solves a problem, what the current landscape or need is
  27. - id: changelog
  28. title: Change Log
  29. type: table
  30. columns: [Date, Version, Description, Author]
  31. instruction: Track document versions and changes
  32. - id: requirements
  33. title: Requirements
  34. instruction: Draft the list of functional and non functional requirements under the two child sections
  35. elicit: true
  36. sections:
  37. - id: functional
  38. title: Functional
  39. type: numbered-list
  40. prefix: FR
  41. instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with FR
  42. examples:
  43. - "FR6: The Todo List uses AI to detect and warn against potentially duplicate todo items that are worded differently."
  44. - id: non-functional
  45. title: Non Functional
  46. type: numbered-list
  47. prefix: NFR
  48. instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with NFR
  49. examples:
  50. - "NFR1: AWS service usage must aim to stay within free-tier limits where feasible."
  51. - id: ui-goals
  52. title: User Interface Design Goals
  53. condition: PRD has UX/UI requirements
  54. instruction: |
  55. Capture high-level UI/UX vision to guide Design Architect and to inform story creation. Steps:
  56. 1. Pre-fill all subsections with educated guesses based on project context
  57. 2. Present the complete rendered section to user
  58. 3. Clearly let the user know where assumptions were made
  59. 4. Ask targeted questions for unclear/missing elements or areas needing more specification
  60. 5. This is NOT detailed UI spec - focus on product vision and user goals
  61. elicit: true
  62. choices:
  63. accessibility: [None, WCAG AA, WCAG AAA]
  64. platforms: [Web Responsive, Mobile Only, Desktop Only, Cross-Platform]
  65. sections:
  66. - id: ux-vision
  67. title: Overall UX Vision
  68. - id: interaction-paradigms
  69. title: Key Interaction Paradigms
  70. - id: core-screens
  71. title: Core Screens and Views
  72. instruction: From a product perspective, what are the most critical screens or views necessary to deliver the the PRD values and goals? This is meant to be Conceptual High Level to Drive Rough Epic or User Stories
  73. examples:
  74. - "Login Screen"
  75. - "Main Dashboard"
  76. - "Item Detail Page"
  77. - "Settings Page"
  78. - id: accessibility
  79. title: "Accessibility: {None|WCAG AA|WCAG AAA|Custom Requirements}"
  80. - id: branding
  81. title: Branding
  82. instruction: Any known branding elements or style guides that must be incorporated?
  83. examples:
  84. - "Replicate the look and feel of early 1900s black and white cinema, including animated effects replicating film damage or projector glitches during page or state transitions."
  85. - "Attached is the full color pallet and tokens for our corporate branding."
  86. - id: target-platforms
  87. title: "Target Device and Platforms: {Web Responsive|Mobile Only|Desktop Only|Cross-Platform}"
  88. examples:
  89. - "Web Responsive, and all mobile platforms"
  90. - "iPhone Only"
  91. - "ASCII Windows Desktop"
  92. - id: technical-assumptions
  93. title: Technical Assumptions
  94. instruction: |
  95. Gather technical decisions that will guide the Architect. Steps:
  96. 1. Check if .bmad-core/data/technical-preferences.yaml or an attached technical-preferences file exists - use it to pre-populate choices
  97. 2. Ask user about: languages, frameworks, starter templates, libraries, APIs, deployment targets
  98. 3. For unknowns, offer guidance based on project goals and MVP scope
  99. 4. Document ALL technical choices with rationale (why this choice fits the project)
  100. 5. These become constraints for the Architect - be specific and complete
  101. elicit: true
  102. choices:
  103. repository: [Monorepo, Polyrepo]
  104. architecture: [Monolith, Microservices, Serverless]
  105. testing: [Unit Only, Unit + Integration, Full Testing Pyramid]
  106. sections:
  107. - id: repository-structure
  108. title: "Repository Structure: {Monorepo|Polyrepo|Multi-repo}"
  109. - id: service-architecture
  110. title: Service Architecture
  111. instruction: "CRITICAL DECISION - Document the high-level service architecture (e.g., Monolith, Microservices, Serverless functions within a Monorepo)."
  112. - id: testing-requirements
  113. title: Testing Requirements
  114. instruction: "CRITICAL DECISION - Document the testing requirements, unit only, integration, e2e, manual, need for manual testing convenience methods)."
  115. - id: additional-assumptions
  116. title: Additional Technical Assumptions and Requests
  117. instruction: Throughout the entire process of drafting this document, if any other technical assumptions are raised or discovered appropriate for the architect, add them here as additional bulleted items
  118. - id: epic-list
  119. title: Epic List
  120. instruction: |
  121. 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.
  122. CRITICAL: Epics MUST be logically sequential following agile best practices:
  123. - Each epic should deliver a significant, end-to-end, fully deployable increment of testable functionality
  124. - 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!
  125. - Each subsequent epic builds upon previous epics' functionality delivering major blocks of functionality that provide tangible value to users or business when deployed
  126. - Not every project needs multiple epics, an epic needs to deliver value. For example, an API completed can deliver value even if a UI is not complete and planned for a separate epic.
  127. - Err on the side of less epics, but let the user know your rationale and offer options for splitting them if it seems some are too large or focused on disparate things.
  128. - Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.
  129. elicit: true
  130. examples:
  131. - "Epic 1: Foundation & Core Infrastructure: Establish project setup, authentication, and basic user management"
  132. - "Epic 2: Core Business Entities: Create and manage primary domain objects with CRUD operations"
  133. - "Epic 3: User Workflows & Interactions: Enable key user journeys and business processes"
  134. - "Epic 4: Reporting & Analytics: Provide insights and data visualization for users"
  135. - id: epic-details
  136. title: Epic {{epic_number}} {{epic_title}}
  137. repeatable: true
  138. instruction: |
  139. After the epic list is approved, present each epic with all its stories and acceptance criteria as a complete review unit.
  140. For each epic provide expanded goal (2-3 sentences describing the objective and value all the stories will achieve).
  141. CRITICAL STORY SEQUENCING REQUIREMENTS:
  142. - Stories within each epic MUST be logically sequential
  143. - Each story should be a "vertical slice" delivering complete functionality aside from early enabler stories for project foundation
  144. - No story should depend on work from a later story or epic
  145. - Identify and note any direct prerequisite stories
  146. - Focus on "what" and "why" not "how" (leave technical implementation to Architect) yet be precise enough to support a logical sequential order of operations from story to story.
  147. - Ensure each story delivers clear user or business value, try to avoid enablers and build them into stories that deliver value.
  148. - Size stories for AI agent execution: Each story must be completable by a single AI agent in one focused session without context overflow
  149. - Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
  150. - If a story seems complex, break it down further as long as it can deliver a vertical slice
  151. elicit: true
  152. template: "{{epic_goal}}"
  153. sections:
  154. - id: story
  155. title: Story {{epic_number}}.{{story_number}} {{story_title}}
  156. repeatable: true
  157. template: |
  158. As a {{user_type}},
  159. I want {{action}},
  160. so that {{benefit}}.
  161. sections:
  162. - id: acceptance-criteria
  163. title: Acceptance Criteria
  164. type: numbered-list
  165. item_template: "{{criterion_number}}: {{criteria}}"
  166. repeatable: true
  167. instruction: |
  168. Define clear, comprehensive, and testable acceptance criteria that:
  169. - Precisely define what "done" means from a functional perspective
  170. - Are unambiguous and serve as basis for verification
  171. - Include any critical non-functional requirements from the PRD
  172. - Consider local testability for backend/data components
  173. - Specify UI/UX requirements and framework adherence where applicable
  174. - Avoid cross-cutting concerns that should be in other stories or PRD sections
  175. - id: checklist-results
  176. title: Checklist Results Report
  177. instruction: Before running the checklist and drafting the prompts, offer to output the full updated PRD. If outputting it, confirm with the user that you will be proceeding to run the checklist and produce the report. Once the user confirms, execute the pm-checklist and populate the results in this section.
  178. - id: next-steps
  179. title: Next Steps
  180. sections:
  181. - id: ux-expert-prompt
  182. title: UX Expert Prompt
  183. instruction: This section will contain the prompt for the UX Expert, keep it short and to the point to initiate create architecture mode using this document as input.
  184. - id: architect-prompt
  185. title: Architect Prompt
  186. instruction: This section will contain the prompt for the Architect, keep it short and to the point to initiate create architecture mode using this document as input.