siesa-agents 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/README.md +84 -0
  2. package/bin/install.js +155 -0
  3. package/bin/prepare-publish.js +27 -0
  4. package/bin/restore-folders.js +27 -0
  5. package/bmad-core/agent-teams/team-all.yaml +15 -0
  6. package/bmad-core/agent-teams/team-fullstack.yaml +19 -0
  7. package/bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
  8. package/bmad-core/agent-teams/team-no-ui.yaml +14 -0
  9. package/bmad-core/agents/analyst.md +84 -0
  10. package/bmad-core/agents/architect.md +94 -0
  11. package/bmad-core/agents/backend-agent.md +190 -0
  12. package/bmad-core/agents/bmad-master.md +110 -0
  13. package/bmad-core/agents/bmad-orchestrator.md +147 -0
  14. package/bmad-core/agents/dev.md +81 -0
  15. package/bmad-core/agents/frontend-agent.md +169 -0
  16. package/bmad-core/agents/pm.md +84 -0
  17. package/bmad-core/agents/po.md +79 -0
  18. package/bmad-core/agents/qa.md +91 -0
  19. package/bmad-core/agents/sm.md +65 -0
  20. package/bmad-core/agents/ux-expert.md +69 -0
  21. package/bmad-core/checklists/architect-checklist.md +440 -0
  22. package/bmad-core/checklists/backend-checklist.md +143 -0
  23. package/bmad-core/checklists/change-checklist.md +184 -0
  24. package/bmad-core/checklists/frontend-checklist.md +106 -0
  25. package/bmad-core/checklists/pm-checklist.md +372 -0
  26. package/bmad-core/checklists/po-master-checklist.md +434 -0
  27. package/bmad-core/checklists/story-dod-checklist.md +96 -0
  28. package/bmad-core/checklists/story-draft-checklist.md +155 -0
  29. package/bmad-core/core-config.yaml +22 -0
  30. package/bmad-core/data/backend-standards.md +440 -0
  31. package/bmad-core/data/bmad-kb.md +809 -0
  32. package/bmad-core/data/brainstorming-techniques.md +38 -0
  33. package/bmad-core/data/elicitation-methods.md +156 -0
  34. package/bmad-core/data/frontend-standards.md +324 -0
  35. package/bmad-core/data/technical-preferences.md +5 -0
  36. package/bmad-core/data/test-levels-framework.md +148 -0
  37. package/bmad-core/data/test-priorities-matrix.md +174 -0
  38. package/bmad-core/enhanced-ide-development-workflow.md +248 -0
  39. package/bmad-core/install-manifest.yaml +230 -0
  40. package/bmad-core/tasks/advanced-elicitation.md +119 -0
  41. package/bmad-core/tasks/apply-qa-fixes.md +150 -0
  42. package/bmad-core/tasks/brownfield-create-epic.md +162 -0
  43. package/bmad-core/tasks/brownfield-create-story.md +149 -0
  44. package/bmad-core/tasks/correct-course.md +72 -0
  45. package/bmad-core/tasks/create-brownfield-story.md +314 -0
  46. package/bmad-core/tasks/create-component.md +103 -0
  47. package/bmad-core/tasks/create-deep-research-prompt.md +280 -0
  48. package/bmad-core/tasks/create-doc.md +103 -0
  49. package/bmad-core/tasks/create-entity.md +133 -0
  50. package/bmad-core/tasks/create-feature.md +91 -0
  51. package/bmad-core/tasks/create-next-story.md +114 -0
  52. package/bmad-core/tasks/create-service.md +118 -0
  53. package/bmad-core/tasks/create-use-case.md +141 -0
  54. package/bmad-core/tasks/document-project.md +345 -0
  55. package/bmad-core/tasks/execute-checklist.md +88 -0
  56. package/bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
  57. package/bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
  58. package/bmad-core/tasks/index-docs.md +175 -0
  59. package/bmad-core/tasks/kb-mode-interaction.md +77 -0
  60. package/bmad-core/tasks/nfr-assess.md +345 -0
  61. package/bmad-core/tasks/qa-gate.md +163 -0
  62. package/bmad-core/tasks/review-story.md +316 -0
  63. package/bmad-core/tasks/risk-profile.md +355 -0
  64. package/bmad-core/tasks/scaffold-backend.md +111 -0
  65. package/bmad-core/tasks/scaffold-frontend.md +79 -0
  66. package/bmad-core/tasks/shard-doc.md +187 -0
  67. package/bmad-core/tasks/test-design.md +176 -0
  68. package/bmad-core/tasks/trace-requirements.md +266 -0
  69. package/bmad-core/tasks/validate-next-story.md +136 -0
  70. package/bmad-core/templates/architecture-tmpl.yaml +662 -0
  71. package/bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
  72. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
  73. package/bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
  74. package/bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
  75. package/bmad-core/templates/front-end-architecture-tmpl.yaml +258 -0
  76. package/bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
  77. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
  78. package/bmad-core/templates/market-research-tmpl.yaml +253 -0
  79. package/bmad-core/templates/prd-tmpl.yaml +203 -0
  80. package/bmad-core/templates/project-brief-tmpl.yaml +222 -0
  81. package/bmad-core/templates/qa-gate-tmpl.yaml +103 -0
  82. package/bmad-core/templates/story-tmpl.yaml +138 -0
  83. package/bmad-core/user-guide.md +530 -0
  84. package/bmad-core/utils/bmad-doc-template.md +327 -0
  85. package/bmad-core/utils/workflow-management.md +71 -0
  86. package/bmad-core/workflows/brownfield-fullstack.yaml +298 -0
  87. package/bmad-core/workflows/brownfield-service.yaml +188 -0
  88. package/bmad-core/workflows/brownfield-ui.yaml +198 -0
  89. package/bmad-core/workflows/greenfield-fullstack.yaml +241 -0
  90. package/bmad-core/workflows/greenfield-service.yaml +207 -0
  91. package/bmad-core/workflows/greenfield-ui.yaml +236 -0
  92. package/bmad-core/working-in-the-brownfield.md +606 -0
  93. package/github/b-mad-expert.md +742 -0
  94. package/github/chatmodes/analyst.chatmode.md +89 -0
  95. package/github/chatmodes/architect.chatmode.md +97 -0
  96. package/github/chatmodes/backend.chatmode.md +195 -0
  97. package/github/chatmodes/bmad-master.chatmode.md +115 -0
  98. package/github/chatmodes/bmad-orchestrator.chatmode.md +152 -0
  99. package/github/chatmodes/dev.chatmode.md +86 -0
  100. package/github/chatmodes/frontend.chatmode.md +158 -0
  101. package/github/chatmodes/pm.chatmode.md +89 -0
  102. package/github/chatmodes/po.chatmode.md +84 -0
  103. package/github/chatmodes/qa.chatmode.md +96 -0
  104. package/github/chatmodes/sm.chatmode.md +70 -0
  105. package/github/chatmodes/ux-expert.chatmode.md +74 -0
  106. package/index.js +11 -0
  107. package/package.json +41 -0
  108. package/vscode/mcp.json +11 -0
  109. package/vscode/settings.json +13 -0
@@ -0,0 +1,103 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
3
+ # Create Document from Template (YAML Driven)
4
+
5
+ ## ⚠️ CRITICAL EXECUTION NOTICE ⚠️
6
+
7
+ **THIS IS AN EXECUTABLE WORKFLOW - NOT REFERENCE MATERIAL**
8
+
9
+ When this task is invoked:
10
+
11
+ 1. **DISABLE ALL EFFICIENCY OPTIMIZATIONS** - This workflow requires full user interaction
12
+ 2. **MANDATORY STEP-BY-STEP EXECUTION** - Each section must be processed sequentially with user feedback
13
+ 3. **ELICITATION IS REQUIRED** - When `elicit: true`, you MUST use the 1-9 format and wait for user response
14
+ 4. **NO SHORTCUTS ALLOWED** - Complete documents cannot be created without following this workflow
15
+
16
+ **VIOLATION INDICATOR:** If you create a complete document without user interaction, you have violated this workflow.
17
+
18
+ ## Critical: Template Discovery
19
+
20
+ If a YAML Template has not been provided, list all templates from .bmad-core/templates or ask the user to provide another.
21
+
22
+ ## CRITICAL: Mandatory Elicitation Format
23
+
24
+ **When `elicit: true`, this is a HARD STOP requiring user interaction:**
25
+
26
+ **YOU MUST:**
27
+
28
+ 1. Present section content
29
+ 2. Provide detailed rationale (explain trade-offs, assumptions, decisions made)
30
+ 3. **STOP and present numbered options 1-9:**
31
+ - **Option 1:** Always "Proceed to next section"
32
+ - **Options 2-9:** Select 8 methods from data/elicitation-methods
33
+ - End with: "Select 1-9 or just type your question/feedback:"
34
+ 4. **WAIT FOR USER RESPONSE** - Do not proceed until user selects option or provides feedback
35
+
36
+ **WORKFLOW VIOLATION:** Creating content for elicit=true sections without user interaction violates this task.
37
+
38
+ **NEVER ask yes/no questions or use any other format.**
39
+
40
+ ## Processing Flow
41
+
42
+ 1. **Parse YAML template** - Load template metadata and sections
43
+ 2. **Set preferences** - Show current mode (Interactive), confirm output file
44
+ 3. **Process each section:**
45
+ - Skip if condition unmet
46
+ - Check agent permissions (owner/editors) - note if section is restricted to specific agents
47
+ - Draft content using section instruction
48
+ - Present content + detailed rationale
49
+ - **IF elicit: true** → MANDATORY 1-9 options format
50
+ - Save to file if possible
51
+ 4. **Continue until complete**
52
+
53
+ ## Detailed Rationale Requirements
54
+
55
+ When presenting section content, ALWAYS include rationale that explains:
56
+
57
+ - Trade-offs and choices made (what was chosen over alternatives and why)
58
+ - Key assumptions made during drafting
59
+ - Interesting or questionable decisions that need user attention
60
+ - Areas that might need validation
61
+
62
+ ## Elicitation Results Flow
63
+
64
+ After user selects elicitation method (2-9):
65
+
66
+ 1. Execute method from data/elicitation-methods
67
+ 2. Present results with insights
68
+ 3. Offer options:
69
+ - **1. Apply changes and update section**
70
+ - **2. Return to elicitation menu**
71
+ - **3. Ask any questions or engage further with this elicitation**
72
+
73
+ ## Agent Permissions
74
+
75
+ When processing sections with agent permission fields:
76
+
77
+ - **owner**: Note which agent role initially creates/populates the section
78
+ - **editors**: List agent roles allowed to modify the section
79
+ - **readonly**: Mark sections that cannot be modified after creation
80
+
81
+ **For sections with restricted access:**
82
+
83
+ - Include a note in the generated document indicating the responsible agent
84
+ - Example: "_(This section is owned by dev-agent and can only be modified by dev-agent)_"
85
+
86
+ ## YOLO Mode
87
+
88
+ User can type `#yolo` to toggle to YOLO mode (process all sections at once).
89
+
90
+ ## CRITICAL REMINDERS
91
+
92
+ **❌ NEVER:**
93
+
94
+ - Ask yes/no questions for elicitation
95
+ - Use any format other than 1-9 numbered options
96
+ - Create new elicitation methods
97
+
98
+ **✅ ALWAYS:**
99
+
100
+ - Use exact 1-9 format when elicit: true
101
+ - Select options 2-9 from data/elicitation-methods only
102
+ - Provide detailed rationale explaining decisions
103
+ - End with "Select 1-9 or just type your question/feedback:"
@@ -0,0 +1,133 @@
1
+ # Create Domain Entity
2
+
3
+ ## Purpose
4
+ Create a domain entity with value objects, aggregates, and business rules following DDD principles.
5
+
6
+ ## Task Configuration
7
+ ```yaml
8
+ elicit: true
9
+ interactive: true
10
+ required_params:
11
+ - entity_name
12
+ - service_name
13
+ - properties
14
+ optional_params:
15
+ - value_objects
16
+ - business_rules
17
+ - domain_events
18
+ ```
19
+
20
+ ## Task Execution
21
+
22
+ ### Step 1: Elicit Entity Requirements
23
+ Ask user for:
24
+
25
+ **Entity Name**: What is the entity name? (use PascalCase)
26
+ **Service Name**: Which bounded context does this entity belong to?
27
+ **Properties**: What are the entity properties? (name, type, validation rules)
28
+ **Value Objects**: Any complex properties that should be value objects? (optional)
29
+ **Business Rules**: What business rules should this entity enforce? (optional)
30
+ **Domain Events**: What events should this entity publish? (optional)
31
+
32
+ ### Step 2: Generate Entity Structure
33
+ Create the following files:
34
+
35
+ ```
36
+ src/modules/{service-name}/domain/
37
+ ├── entities/
38
+ │ └── {entity}.entity.ts
39
+ ├── value-objects/
40
+ │ ├── {entity}-id.value-object.ts
41
+ │ └── {property}.value-object.ts
42
+ ├── aggregates/
43
+ │ └── {entity}.aggregate.ts
44
+ └── events/
45
+ └── {entity}-{action}.event.ts
46
+ ```
47
+
48
+ ### Step 3: Create Domain Entity
49
+ Generate entity with:
50
+ - Unique identifier (UUID or custom ID)
51
+ - Properties with proper typing
52
+ - Business rule validation methods
53
+ - Factory methods for creation
54
+ - Domain event publishing
55
+ - Immutability patterns
56
+
57
+ Example structure:
58
+ ```typescript
59
+ export class {Entity}Entity extends AggregateRoot {{
60
+ private constructor(
61
+ public readonly id: {Entity}Id,
62
+ private _property: PropertyValueObject,
63
+ // ... other properties
64
+ ) {{
65
+ super();
66
+ }}
67
+
68
+ static create(props: Create{Entity}Props): {Entity}Entity {{
69
+ // Validation logic
70
+ // Business rule enforcement
71
+ const entity = new {Entity}Entity(/* ... */);
72
+ entity.addDomainEvent(new {Entity}CreatedEvent(entity.id));
73
+ return entity;
74
+ }}
75
+
76
+ // Business methods
77
+ public updateProperty(newValue: PropertyValueObject): void {{
78
+ // Business rule validation
79
+ this._property = newValue;
80
+ this.addDomainEvent(new {Entity}UpdatedEvent(this.id));
81
+ }}
82
+
83
+ // Getters
84
+ get property(): PropertyValueObject {{
85
+ return this._property;
86
+ }}
87
+ }}
88
+ ```
89
+
90
+ ### Step 4: Generate Value Objects
91
+ For each value object:
92
+ - Immutable classes with validation
93
+ - Equality based on value, not reference
94
+ - Factory methods with validation
95
+ - Type safety and domain expressiveness
96
+
97
+ ### Step 5: Create Aggregate Root
98
+ If entity is an aggregate root:
99
+ - Extend AggregateRoot base class
100
+ - Manage domain events
101
+ - Enforce consistency boundaries
102
+ - Handle child entity relationships
103
+
104
+ ### Step 6: Generate Domain Events
105
+ For each domain event:
106
+ - Event class with entity data
107
+ - Event handler interfaces
108
+ - Integration with application layer
109
+ - Serialization for external systems
110
+
111
+ ### Step 7: Generate Prisma Schema
112
+ Update Prisma schema with:
113
+ - Entity table definition
114
+ - Proper field types and constraints
115
+ - Relationships with other entities
116
+ - Indexes for performance
117
+ - Migrations for schema changes
118
+
119
+ ### Step 8: Generate Tests
120
+ Create comprehensive tests:
121
+ - Entity business rule tests
122
+ - Value object validation tests
123
+ - Aggregate consistency tests
124
+ - Domain event publishing tests
125
+ - Factory method tests
126
+
127
+ ## Completion Criteria
128
+ - Entity follows DDD patterns
129
+ - Business rules properly enforced
130
+ - Value objects provide type safety
131
+ - Domain events properly implemented
132
+ - Prisma schema updated
133
+ - Comprehensive test coverage
@@ -0,0 +1,91 @@
1
+ # Create Frontend Feature
2
+
3
+ ## Purpose
4
+ Create a complete feature following Clean Architecture + DDD principles with all necessary layers.
5
+
6
+ ## Task Configuration
7
+ ```yaml
8
+ elicit: true
9
+ interactive: true
10
+ required_params:
11
+ - feature_name
12
+ - entities
13
+ - use_cases
14
+ optional_params:
15
+ - api_endpoints
16
+ - ui_components
17
+ ```
18
+
19
+ ## Task Execution
20
+
21
+ ### Step 1: Elicit Feature Requirements
22
+ Ask user for:
23
+
24
+ **Feature Name**: What is the name of the feature? (use kebab-case)
25
+ **Domain Entities**: What are the main business entities for this feature?
26
+ **Use Cases**: What are the main use cases/operations users can perform?
27
+ **API Endpoints**: What backend endpoints will this feature consume? (optional)
28
+ **UI Components**: Any specific components you know you'll need? (optional)
29
+
30
+ ### Step 2: Create Feature Structure
31
+ Generate the following structure:
32
+
33
+ ```
34
+ src/features/{feature_name}/
35
+ ├── domain/
36
+ │ ├── entities/
37
+ │ ├── repositories/
38
+ │ ├── services/
39
+ │ └── types/
40
+ ├── application/
41
+ │ ├── use-cases/
42
+ │ ├── hooks/
43
+ │ └── store/
44
+ ├── infrastructure/
45
+ │ ├── repositories/
46
+ │ ├── api/
47
+ │ └── adapters/
48
+ └── presentation/
49
+ ├── components/
50
+ ├── pages/
51
+ └── styles/
52
+ ```
53
+
54
+ ### Step 3: Generate Domain Layer
55
+ For each entity:
56
+ - Create TypeScript interfaces/types
57
+ - Define value objects if needed
58
+ - Create repository interfaces
59
+ - Define domain services if complex business rules exist
60
+
61
+ ### Step 4: Generate Application Layer
62
+ For each use case:
63
+ - Create use case implementation
64
+ - Create custom hooks that consume use cases
65
+ - Setup Zustand store for feature state
66
+ - Implement error handling and loading states
67
+
68
+ ### Step 5: Generate Infrastructure Layer
69
+ - Implement repository concrete classes
70
+ - Setup API clients with proper typing
71
+ - Create adapters for external services
72
+ - Configure error handling and retries
73
+
74
+ ### Step 6: Generate Presentation Layer
75
+ - Create feature-specific components
76
+ - Setup routing for feature pages
77
+ - Implement accessibility features
78
+ - Add loading and error states
79
+
80
+ ### Step 7: Generate Tests
81
+ - Unit tests for domain entities and services
82
+ - Integration tests for use cases
83
+ - Component tests for presentation layer
84
+ - API integration tests for infrastructure layer
85
+
86
+ ## Completion Criteria
87
+ - All layers properly implemented
88
+ - Clean Architecture dependencies respected
89
+ - TypeScript compilation successful
90
+ - All tests passing
91
+ - Feature integrated with main application
@@ -0,0 +1,114 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
3
+ # Create Next Story Task
4
+
5
+ ## Purpose
6
+
7
+ To identify the next logical story based on project progress and epic definitions, and then to prepare a comprehensive, self-contained, and actionable story file using the `Story Template`. This task ensures the story is enriched with all necessary technical context, requirements, and acceptance criteria, making it ready for efficient implementation by a Developer Agent with minimal need for additional research or finding its own context.
8
+
9
+ ## SEQUENTIAL Task Execution (Do not proceed until current Task is complete)
10
+
11
+ ### 0. Load Core Configuration and Check Workflow
12
+
13
+ - Load `.bmad-core/core-config.yaml` from the project root
14
+ - If the file does not exist, HALT and inform the user: "core-config.yaml not found. This file is required for story creation. You can either: 1) Copy it from GITHUB bmad-core/core-config.yaml and configure it for your project OR 2) Run the BMad installer against your project to upgrade and add the file automatically. Please add and configure core-config.yaml before proceeding."
15
+ - Extract key configurations: `devStoryLocation`, `prd.*`, `architecture.*`, `workflow.*`
16
+
17
+ ### 1. Identify Next Story for Preparation
18
+
19
+ #### 1.1 Locate Epic Files and Review Existing Stories
20
+
21
+ - Based on `prdSharded` from config, locate epic files (sharded location/pattern or monolithic PRD sections)
22
+ - If `devStoryLocation` has story files, load the highest `{epicNum}.{storyNum}.story.md` file
23
+ - **If highest story exists:**
24
+ - Verify status is 'Done'. If not, alert user: "ALERT: Found incomplete story! File: {lastEpicNum}.{lastStoryNum}.story.md Status: [current status] You should fix this story first, but would you like to accept risk & override to create the next story in draft?"
25
+ - If proceeding, select next sequential story in the current epic
26
+ - If epic is complete, prompt user: "Epic {epicNum} Complete: All stories in Epic {epicNum} have been completed. Would you like to: 1) Begin Epic {epicNum + 1} with story 1 2) Select a specific story to work on 3) Cancel story creation"
27
+ - **CRITICAL**: NEVER automatically skip to another epic. User MUST explicitly instruct which story to create.
28
+ - **If no story files exist:** The next story is ALWAYS 1.1 (first story of first epic)
29
+ - Announce the identified story to the user: "Identified next story for preparation: {epicNum}.{storyNum} - {Story Title}"
30
+
31
+ ### 2. Gather Story Requirements and Previous Story Context
32
+
33
+ - Extract story requirements from the identified epic file
34
+ - If previous story exists, review Dev Agent Record sections for:
35
+ - Completion Notes and Debug Log References
36
+ - Implementation deviations and technical decisions
37
+ - Challenges encountered and lessons learned
38
+ - Extract relevant insights that inform the current story's preparation
39
+
40
+ ### 3. Gather Architecture Context
41
+
42
+ #### 3.1 Determine Architecture Reading Strategy
43
+
44
+ - **If `architectureVersion: >= v4` and `architectureSharded: true`**: Read `{architectureShardedLocation}/index.md` then follow structured reading order below
45
+ - **Else**: Use monolithic `architectureFile` for similar sections
46
+
47
+ #### 3.2 Read Architecture Documents Based on Story Type
48
+
49
+ **For ALL Stories:** tech-stack.md, unified-project-structure.md, coding-standards.md, testing-strategy.md
50
+
51
+ **For Backend/API Stories, additionally:** data-models.md, database-schema.md, backend-architecture.md, rest-api-spec.md, external-apis.md
52
+
53
+ **For Frontend/UI Stories, additionally:** frontend-architecture.md, components.md, core-workflows.md, data-models.md
54
+
55
+ **For Full-Stack Stories:** Read both Backend and Frontend sections above
56
+
57
+ #### 3.3 Extract Story-Specific Technical Details
58
+
59
+ Extract ONLY information directly relevant to implementing the current story. Do NOT invent new libraries, patterns, or standards not in the source documents.
60
+
61
+ Extract:
62
+
63
+ - Specific data models, schemas, or structures the story will use
64
+ - API endpoints the story must implement or consume
65
+ - Component specifications for UI elements in the story
66
+ - File paths and naming conventions for new code
67
+ - Testing requirements specific to the story's features
68
+ - Security or performance considerations affecting the story
69
+
70
+ ALWAYS cite source documents: `[Source: architecture/{filename}.md#{section}]`
71
+
72
+ ### 4. Verify Project Structure Alignment
73
+
74
+ - Cross-reference story requirements with Project Structure Guide from `docs/architecture/unified-project-structure.md`
75
+ - Ensure file paths, component locations, or module names align with defined structures
76
+ - Document any structural conflicts in "Project Structure Notes" section within the story draft
77
+
78
+ ### 5. Populate Story Template with Full Context
79
+
80
+ - Create new story file: `{devStoryLocation}/{epicNum}.{storyNum}.story.md` using Story Template
81
+ - Fill in basic story information: Title, Status (Draft), Story statement, Acceptance Criteria from Epic
82
+ - **`Dev Notes` section (CRITICAL):**
83
+ - CRITICAL: This section MUST contain ONLY information extracted from architecture documents. NEVER invent or assume technical details.
84
+ - Include ALL relevant technical details from Steps 2-3, organized by category:
85
+ - **Previous Story Insights**: Key learnings from previous story
86
+ - **Data Models**: Specific schemas, validation rules, relationships [with source references]
87
+ - **API Specifications**: Endpoint details, request/response formats, auth requirements [with source references]
88
+ - **Component Specifications**: UI component details, props, state management [with source references]
89
+ - **File Locations**: Exact paths where new code should be created based on project structure
90
+ - **Testing Requirements**: Specific test cases or strategies from testing-strategy.md
91
+ - **Technical Constraints**: Version requirements, performance considerations, security rules
92
+ - Every technical detail MUST include its source reference: `[Source: architecture/{filename}.md#{section}]`
93
+ - If information for a category is not found in the architecture docs, explicitly state: "No specific guidance found in architecture docs"
94
+ - **`Tasks / Subtasks` section:**
95
+ - Generate detailed, sequential list of technical tasks based ONLY on: Epic Requirements, Story AC, Reviewed Architecture Information
96
+ - Each task must reference relevant architecture documentation
97
+ - Include unit testing as explicit subtasks based on the Testing Strategy
98
+ - Link tasks to ACs where applicable (e.g., `Task 1 (AC: 1, 3)`)
99
+ - Add notes on project structure alignment or discrepancies found in Step 4
100
+
101
+ ### 6. Story Draft Completion and Review
102
+
103
+ - Review all sections for completeness and accuracy
104
+ - Verify all source references are included for technical details
105
+ - Ensure tasks align with both epic requirements and architecture constraints
106
+ - Update status to "Draft" and save the story file
107
+ - Execute `.bmad-core/tasks/execute-checklist` `.bmad-core/checklists/story-draft-checklist`
108
+ - Provide summary to user including:
109
+ - Story created: `{devStoryLocation}/{epicNum}.{storyNum}.story.md`
110
+ - Status: Draft
111
+ - Key technical components included from architecture docs
112
+ - Any deviations or conflicts noted between epic and architecture
113
+ - Checklist Results
114
+ - Next steps: For Complex stories, suggest the user carefully review the story draft and also optionally have the PO run the task `.bmad-core/tasks/validate-next-story`
@@ -0,0 +1,118 @@
1
+ # Create Backend Service (Bounded Context)
2
+
3
+ ## Purpose
4
+ Create a new bounded context/service within an existing microservice following hexagonal architecture and DDD principles.
5
+
6
+ ## Task Configuration
7
+ ```yaml
8
+ elicit: true
9
+ interactive: true
10
+ required_params:
11
+ - service_name
12
+ - microservice_name
13
+ - domain_entities
14
+ - use_cases
15
+ optional_params:
16
+ - external_integrations
17
+ - events
18
+ ```
19
+
20
+ ## Task Execution
21
+
22
+ ### Step 1: Elicit Service Requirements
23
+ Ask user for:
24
+
25
+ **Service Name**: What is the bounded context name? (use kebab-case)
26
+ **Microservice Name**: Which microservice will contain this service?
27
+ **Domain Entities**: What are the main business entities? (e.g., Quote, Product, Customer)
28
+ **Use Cases**: What are the main operations users can perform?
29
+ **External Integrations**: Any external services this context needs to integrate with? (optional)
30
+ **Domain Events**: Any domain events this context will publish/subscribe to? (optional)
31
+
32
+ ### Step 2: Create Hexagonal Architecture Structure
33
+ Generate the following structure:
34
+
35
+ ```
36
+ src/modules/{service-name}/
37
+ ├── application/
38
+ │ ├── ports/
39
+ │ │ ├── repositories/
40
+ │ │ │ └── {entity}.repository.interface.ts
41
+ │ │ └── services/
42
+ │ │ └── {external-service}.interface.ts
43
+ │ ├── use-cases/
44
+ │ │ ├── create-{entity}.use-case.ts
45
+ │ │ ├── get-{entity}.use-case.ts
46
+ │ │ ├── update-{entity}.use-case.ts
47
+ │ │ └── delete-{entity}.use-case.ts
48
+ │ ├── commands/
49
+ │ │ └── create-{entity}.command.ts
50
+ │ ├── queries/
51
+ │ │ └── get-{entity}.query.ts
52
+ │ └── dto/
53
+ │ ├── create-{entity}.dto.ts
54
+ │ └── {entity}.response.dto.ts
55
+ ├── domain/
56
+ │ ├── entities/
57
+ │ │ └── {entity}.entity.ts
58
+ │ ├── value-objects/
59
+ │ │ └── {entity}-id.value-object.ts
60
+ │ ├── aggregates/
61
+ │ │ └── {entity}.aggregate.ts
62
+ │ ├── events/
63
+ │ │ └── {entity}-created.event.ts
64
+ │ └── services/
65
+ │ └── {entity}.domain-service.ts
66
+ └── infrastructure/
67
+ ├── repositories/
68
+ │ └── prisma-{entity}.repository.ts
69
+ ├── services/
70
+ │ └── {external-service}.adapter.ts
71
+ └── events/
72
+ └── {entity}-event.handler.ts
73
+ ```
74
+
75
+ ### Step 3: Generate Domain Layer
76
+ For each entity:
77
+ - Create domain entity with business rules
78
+ - Generate value objects for type safety
79
+ - Create aggregates for consistency boundaries
80
+ - Define domain events for side effects
81
+ - Implement domain services for complex business logic
82
+
83
+ ### Step 4: Generate Application Layer
84
+ For each use case:
85
+ - Create use case with dependency injection
86
+ - Define command/query objects
87
+ - Create DTOs for input/output
88
+ - Implement application services
89
+ - Define repository and service interfaces (ports)
90
+
91
+ ### Step 5: Generate Infrastructure Layer
92
+ - Implement Prisma repository adapters
93
+ - Create external service adapters
94
+ - Implement event handlers
95
+ - Configure dependency injection
96
+ - Setup database migrations for new entities
97
+
98
+ ### Step 6: Generate API Layer
99
+ - Create REST controllers
100
+ - Add validation decorators
101
+ - Configure Swagger documentation
102
+ - Implement guards and middleware
103
+ - Add error handling
104
+
105
+ ### Step 7: Generate Tests
106
+ - Unit tests for domain entities and services
107
+ - Integration tests for use cases
108
+ - Repository tests with test database
109
+ - Controller tests with mocked dependencies
110
+ - E2E tests for complete workflows
111
+
112
+ ## Completion Criteria
113
+ - Service follows hexagonal architecture patterns
114
+ - All layers properly separated and tested
115
+ - Prisma schema updated and migrated
116
+ - API endpoints documented in Swagger
117
+ - Tests cover all critical paths
118
+ - Dependencies properly injected
@@ -0,0 +1,141 @@
1
+ # Create Application Use Case
2
+
3
+ ## Purpose
4
+ Create an application use case following hexagonal architecture with ports, adapters, and dependency injection.
5
+
6
+ ## Task Configuration
7
+ ```yaml
8
+ elicit: true
9
+ interactive: true
10
+ required_params:
11
+ - use_case_name
12
+ - service_name
13
+ - input_data
14
+ - output_data
15
+ optional_params:
16
+ - external_dependencies
17
+ - business_rules
18
+ - error_scenarios
19
+ ```
20
+
21
+ ## Task Execution
22
+
23
+ ### Step 1: Elicit Use Case Requirements
24
+ Ask user for:
25
+
26
+ **Use Case Name**: What is the use case name? (use kebab-case, e.g., create-quote)
27
+ **Service Name**: Which bounded context does this use case belong to?
28
+ **Input Data**: What data does this use case receive? (DTOs, commands)
29
+ **Output Data**: What data does this use case return? (response DTOs, events)
30
+ **External Dependencies**: What repositories/services does it need? (optional)
31
+ **Business Rules**: What business rules must be enforced? (optional)
32
+ **Error Scenarios**: What error conditions should be handled? (optional)
33
+
34
+ ### Step 2: Generate Use Case Structure
35
+ Create the following files:
36
+
37
+ ```
38
+ src/modules/{service-name}/application/
39
+ ├── use-cases/
40
+ │ └── {use-case-name}.use-case.ts
41
+ ├── commands/
42
+ │ └── {use-case-name}.command.ts
43
+ ├── queries/
44
+ │ └── {use-case-name}.query.ts
45
+ ├── dto/
46
+ │ ├── {use-case-name}.dto.ts
47
+ │ └── {use-case-name}.response.dto.ts
48
+ └── ports/
49
+ ├── repositories/
50
+ │ └── {entity}.repository.interface.ts
51
+ └── services/
52
+ └── {external-service}.interface.ts
53
+ ```
54
+
55
+ ### Step 3: Create Command/Query Objects
56
+ Generate input objects with:
57
+ - Property validation decorators
58
+ - Type safety with TypeScript
59
+ - Documentation with Swagger decorators
60
+ - Immutable data structures
61
+
62
+ Example Command:
63
+ ```typescript
64
+ export class Create{Entity}Command {{
65
+ @IsString()
66
+ @IsNotEmpty()
67
+ readonly property: string;
68
+
69
+ @IsOptional()
70
+ @IsUUID()
71
+ readonly optionalId?: string;
72
+ }}
73
+ ```
74
+
75
+ ### Step 4: Create Use Case Implementation
76
+ Generate use case with:
77
+ - Dependency injection decorators
78
+ - Input validation
79
+ - Business logic orchestration
80
+ - Error handling
81
+ - Transaction management
82
+ - Domain event handling
83
+
84
+ Example Use Case:
85
+ ```typescript
86
+ @Injectable()
87
+ export class Create{Entity}UseCase {{
88
+ constructor(
89
+ @Inject('{Entity}_REPOSITORY')
90
+ private readonly {entity}Repository: {Entity}RepositoryInterface,
91
+ @Inject('EVENT_BUS')
92
+ private readonly eventBus: EventBusInterface,
93
+ ) {{}}
94
+
95
+ async execute(command: Create{Entity}Command): Promise<{Entity}ResponseDto> {{
96
+ // Validation
97
+ // Business logic
98
+ // Repository operations
99
+ // Event publishing
100
+ // Response mapping
101
+ }}
102
+ }}
103
+ ```
104
+
105
+ ### Step 5: Create Repository Interface (Port)
106
+ Define repository contract:
107
+ - Method signatures for data operations
108
+ - Return types with domain entities
109
+ - Query parameters and filters
110
+ - Error handling contracts
111
+
112
+ ### Step 6: Create Response DTOs
113
+ Generate output objects:
114
+ - Serialization decorators
115
+ - API documentation
116
+ - Type transformations
117
+ - Nested object handling
118
+
119
+ ### Step 7: Generate Tests
120
+ Create comprehensive test suite:
121
+ - Unit tests with mocked dependencies
122
+ - Integration tests with test database
123
+ - Error scenario testing
124
+ - Performance testing for complex operations
125
+ - Contract testing for external dependencies
126
+
127
+ ### Step 8: Configure Dependency Injection
128
+ Update module configuration:
129
+ - Provider registration
130
+ - Interface-to-implementation binding
131
+ - Scope management (singleton, request)
132
+ - Circular dependency resolution
133
+
134
+ ## Completion Criteria
135
+ - Use case follows hexagonal architecture
136
+ - Dependencies properly injected
137
+ - Input/output properly validated
138
+ - Business rules enforced
139
+ - Error handling comprehensive
140
+ - Tests cover all scenarios
141
+ - Documentation complete