siesa-agents 2.1.48 → 2.1.49
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/bmad/_config/workflow-manifest.csv +1 -1
- package/bmad/bmm/agents/dev.md +1 -1
- package/bmad/bmm/workflows/4-implementation/code-review/steps/step-06-jira-sync.md +19 -7
- package/bmad/bmm/workflows/4-implementation/code-review/steps/step-07-commit-push.md +160 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-01-find-story.md +109 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-02-check-branch.md +74 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-03-load-context.md +46 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-04-env-readiness.md +45 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-05-review-check.md +57 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-06-mark-in-progress.md +52 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-07-implement.md +62 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-08-test-authoring.md +39 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-09-run-tests.md +43 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-10-validate-task.md +63 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-11-mark-review.md +50 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/steps/step-12-communication.md +45 -0
- package/bmad/bmm/workflows/4-implementation/dev-story/workflow.md +44 -0
- package/claude/commands/bmad/bmm/workflows/dev-story.md +2 -2
- package/gemini/commands/bmad-workflow-bmm-dev-story.toml +2 -2
- package/package.json +1 -1
- package/bmad/bmm/workflows/4-implementation/dev-story/instructions.xml +0 -471
- package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -25
|
@@ -17,7 +17,7 @@ name,description,module,path
|
|
|
17
17
|
"code-review","Perform an ADVERSARIAL Senior Developer code review that finds 3-10 specific problems in every story. Challenges everything: code quality, test coverage, architecture compliance, security, performance. NEVER accepts `looks good` - must find minimum issues and can auto-fix with user approval.","bmm","_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml"
|
|
18
18
|
"correct-course","Navigate significant changes during sprint execution by analyzing impact, proposing solutions, and routing for implementation","bmm","_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml"
|
|
19
19
|
"create-story","Create the next user story from epics+stories with enhanced context analysis and direct ready-for-dev marking","bmm","_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml"
|
|
20
|
-
"dev-story","Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria","bmm","_bmad/bmm/workflows/4-implementation/dev-story/workflow.
|
|
20
|
+
"dev-story","Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria","bmm","_bmad/bmm/workflows/4-implementation/dev-story/workflow.md"
|
|
21
21
|
"retrospective","Run after epic completion to review overall success, extract lessons learned, and explore if new information emerged that might impact the next epic","bmm","_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml"
|
|
22
22
|
"sprint-planning","Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle","bmm","_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml"
|
|
23
23
|
"sprint-status","Summarize sprint-status.yaml, surface risks, and route to the right implementation workflow.","bmm","_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml"
|
package/bmad/bmm/agents/dev.md
CHANGED
|
@@ -61,7 +61,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
61
61
|
<menu>
|
|
62
62
|
<item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
|
|
63
63
|
<item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
|
|
64
|
-
<item cmd="DS or fuzzy match on dev-story" workflow="{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.
|
|
64
|
+
<item cmd="DS or fuzzy match on dev-story" workflow="{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.md">[DS] Execute Dev Story workflow (full BMM path with sprint-status)</item>
|
|
65
65
|
<item cmd="CR or fuzzy match on code-review" workflow="{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml">[CR] Perform a thorough clean context code review (Highly Recommended, use fresh context and different LLM)</item>
|
|
66
66
|
<item cmd="PM or fuzzy match on party-mode" exec="{project-root}/_bmad/core/workflows/party-mode/workflow.md">[PM] Start Party Mode</item>
|
|
67
67
|
<item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
|
|
@@ -9,6 +9,7 @@ workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/code-review'
|
|
|
9
9
|
thisStepFile: '{workflow_path}/steps/step-06-jira-sync.md'
|
|
10
10
|
workflowFile: '{workflow_path}/workflow.md'
|
|
11
11
|
outputFile: '{output_folder}/review-{story_key}.md'
|
|
12
|
+
nextStepFile: '{workflow_path}/steps/step-07-commit-push.md'
|
|
12
13
|
|
|
13
14
|
# User Defined References
|
|
14
15
|
storyFile: '{{story_path}}'
|
|
@@ -23,6 +24,7 @@ To synchronize the "Done" status with Jira by transitioning the Story and its Su
|
|
|
23
24
|
- 🛑 ONLY execute if status is 'done'
|
|
24
25
|
- 🧱 Use Pattern B (Cascading Updates) for Jira: Always discover transitions before executing
|
|
25
26
|
- 📄 Update tables in Markdown without breaking format or losing data
|
|
27
|
+
- ⚠️ **NON-BLOCKING**: If any Jira operation fails (Auth, Transitions, API), Log the error and PROCEED to the final transition step. Do NOT stop execution.
|
|
26
28
|
|
|
27
29
|
## Sequence of Instructions
|
|
28
30
|
|
|
@@ -36,7 +38,6 @@ To synchronize the "Done" status with Jira by transitioning the Story and its Su
|
|
|
36
38
|
<action>Call `mcp__atlassian__getAccessibleAtlassianResources` or `mcp__atlassian__atlassianUserInfo`.</action>
|
|
37
39
|
|
|
38
40
|
<check if="Auth failed or no resources returned">
|
|
39
|
-
<action>STOP IMMEDIATELY.</action>
|
|
40
41
|
<output>❌ **MCP Authentication Failed.** I cannot connect to Jira. Please ensure you are authenticated with the Atlassian MCP server.</output>
|
|
41
42
|
<output>Run the following command to authenticate (copy and paste into your terminal/chat):</output>
|
|
42
43
|
<display>
|
|
@@ -51,10 +52,12 @@ To synchronize the "Done" status with Jira by transitioning the Story and its Su
|
|
|
51
52
|
<output>After validating in the browser, please choose an option:</output>
|
|
52
53
|
<menu>
|
|
53
54
|
<item cmd="R" action="restart_step2">Retry Authentication (Re-run check)</item>
|
|
55
|
+
<item cmd="S" action="continue">Skip Jira Sync & Continue</item>
|
|
54
56
|
<item cmd="E" action="exit">Exit Workflow</item>
|
|
55
57
|
</menu>
|
|
56
58
|
<logic>
|
|
57
59
|
<if selection="R">Restart this Step 2 from the beginning.</if>
|
|
60
|
+
<if selection="S">Log warning about skipping Jira sync and proceed directly to Section 6 "Transition to Next Step".</if>
|
|
58
61
|
<if selection="E">Terminate the workflow with a message: "Workflow aborted due to authentication failure."</if>
|
|
59
62
|
</logic>
|
|
60
63
|
</check>
|
|
@@ -66,14 +69,18 @@ To synchronize the "Done" status with Jira by transitioning the Story and its Su
|
|
|
66
69
|
<action>Read `{story_path}`.</action>
|
|
67
70
|
<check if="content does NOT contain '## Jira Information' OR content does NOT contain '## Synced Tasks'">
|
|
68
71
|
<output>
|
|
69
|
-
⚠️ **
|
|
70
|
-
La historia no está vinculada a Jira.
|
|
72
|
+
⚠️ **WARNING: Missing Jira Sections**
|
|
73
|
+
La historia no está vinculada a Jira. Se omitirá la sincronización.
|
|
71
74
|
</output>
|
|
72
|
-
<action>
|
|
75
|
+
<action>Proceed directly to Section 6 "Transition to Next Step".</action>
|
|
73
76
|
</check>
|
|
74
77
|
|
|
75
78
|
### 3. Jira Transition Execution (Pattern B)
|
|
76
79
|
|
|
80
|
+
<check if="Any MCP Exception occurs in this section">
|
|
81
|
+
<action>Log error "Jira Transition Failed" and PROCEED next instruction.</action>
|
|
82
|
+
</check>
|
|
83
|
+
|
|
77
84
|
1. **Extract Key**: Identify the Jira Key (e.g., PIJB-62) from the story content. Let's call it `{{jira_key}}`.
|
|
78
85
|
|
|
79
86
|
2. **Transition Parent Story**:
|
|
@@ -117,7 +124,12 @@ To synchronize the "Done" status with Jira by transitioning the Story and its Su
|
|
|
117
124
|
<output>Status is '{{new_status}}'. Skipping Jira sync because code review outcome is not 'done'.</output>
|
|
118
125
|
</check>
|
|
119
126
|
|
|
120
|
-
### 6.
|
|
127
|
+
### 6. Transition to Next Step
|
|
121
128
|
<action>Update frontmatter of `{outputFile}`: `stepsCompleted: [1, 2, 3, 4, 5, 6]`</action>
|
|
122
|
-
|
|
123
|
-
<
|
|
129
|
+
|
|
130
|
+
<output>Jira sync completed. Ready to commit and push changes.</output>
|
|
131
|
+
|
|
132
|
+
<menu>
|
|
133
|
+
<item cmd="C" action="load_step" file="{nextStepFile}">Continue to Commit & Push</item>
|
|
134
|
+
<item cmd="E" action="exit">Exit Workflow (Skip Commit/Push)</item>
|
|
135
|
+
</menu>
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-07-commit-push'
|
|
3
|
+
description: 'Safely commit and push verified code to the repository'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/code-review'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-07-commit-push.md'
|
|
10
|
+
workflowFile: '{workflow_path}/workflow.md'
|
|
11
|
+
outputFile: '{output_folder}/review-{story_key}.md'
|
|
12
|
+
|
|
13
|
+
# Data References
|
|
14
|
+
sprint_status_file: '{implementation_artifacts}/sprint-status.yaml'
|
|
15
|
+
epicsFile: '{output_folder}/planning-artifacts/epics.md'
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Step 7: Commit & Push
|
|
19
|
+
|
|
20
|
+
## STEP GOAL:
|
|
21
|
+
To securely persist the verified and approved code changes to the repository by validating the development branch and performing a git commit and push operation.
|
|
22
|
+
|
|
23
|
+
## MANDATORY EXECUTION RULES:
|
|
24
|
+
- 🛑 ONLY execute if the story status is explicitly 'done' or 'completed'
|
|
25
|
+
- 🌳 Ensure development is on the correct `Feature/{Epic_Name}` branch
|
|
26
|
+
- 📝 Commit messages must follow the standard format: "feat: implementation for story {{story_key}}"
|
|
27
|
+
|
|
28
|
+
## Sequence of Instructions
|
|
29
|
+
|
|
30
|
+
### 1. Verification of Status
|
|
31
|
+
|
|
32
|
+
**Goal**: ensure we are authorized to push code.
|
|
33
|
+
|
|
34
|
+
<action>
|
|
35
|
+
1. Load `{sprint_status_file}`.
|
|
36
|
+
2. Find the entry for `{{story_key}}` under `development_status`.
|
|
37
|
+
3. Check if the value is `done` (or `completed`).
|
|
38
|
+
</action>
|
|
39
|
+
|
|
40
|
+
<check if="status != 'done' AND status != 'completed'">
|
|
41
|
+
<output>
|
|
42
|
+
⚠️ **COMMIT ABORTED**: Story status is '{{status}}'.
|
|
43
|
+
Changes are only committed and pushed when the story is marked as 'done'.
|
|
44
|
+
</output>
|
|
45
|
+
<action>STOP execution. Do NOT run git commands.</action>
|
|
46
|
+
</check>
|
|
47
|
+
|
|
48
|
+
### 2. Branch Validation
|
|
49
|
+
|
|
50
|
+
**Goal**: Ensure code is committed to the correct Epic feature branch.
|
|
51
|
+
|
|
52
|
+
<check if="status == 'done' OR status == 'completed'">
|
|
53
|
+
|
|
54
|
+
<action>
|
|
55
|
+
1. Extract **Epic ID** from `{{story_key}}` (first number, e.g., '1' from '1-2-user-auth').
|
|
56
|
+
2. Load and read `{epicsFile}`.
|
|
57
|
+
3. Find the header matching `### Epic {Epic_ID}:`.
|
|
58
|
+
4. Extract the Epic Name (e.g., "Project Foundation").
|
|
59
|
+
5. Sanitize Epic Name (Pascal/Kebab case, replacing spaces with dashes: "Project-Foundation").
|
|
60
|
+
6. Construct `target_branch` = `Feature/{Sanitized_Epic_Name}`.
|
|
61
|
+
</action>
|
|
62
|
+
|
|
63
|
+
<action>Run command `git branch --show-current` to get `current_branch`.</action>
|
|
64
|
+
|
|
65
|
+
<check if="current_branch != target_branch">
|
|
66
|
+
<output>🔄 Switching branches (Current: {{current_branch}} -> Target: {{target_branch}})...</output>
|
|
67
|
+
|
|
68
|
+
<action>Check if target branch exists: `git branch --list {{target_branch}}`.</action>
|
|
69
|
+
|
|
70
|
+
<if condition="branch exists">
|
|
71
|
+
<action>Run `git checkout {{target_branch}}`.</action>
|
|
72
|
+
<output>✅ Switched to existing branch: {{target_branch}}</output>
|
|
73
|
+
</if>
|
|
74
|
+
|
|
75
|
+
<if condition="branch does NOT exist">
|
|
76
|
+
<action>Run `git checkout -b {{target_branch}}`.</action>
|
|
77
|
+
<output>✨ Created and switched to new branch: {{target_branch}}</output>
|
|
78
|
+
</if>
|
|
79
|
+
</check>
|
|
80
|
+
|
|
81
|
+
<check if="current_branch == target_branch">
|
|
82
|
+
<output>✅ Already on correct branch: {{target_branch}}</output>
|
|
83
|
+
</check>
|
|
84
|
+
|
|
85
|
+
</check>
|
|
86
|
+
|
|
87
|
+
### 3. Git Operations
|
|
88
|
+
|
|
89
|
+
**Goal**: Persist changes.
|
|
90
|
+
|
|
91
|
+
<check if="status == 'done' OR status == 'completed'">
|
|
92
|
+
|
|
93
|
+
1. **Stage Changes**:
|
|
94
|
+
<action>Run command `git add .`</action>
|
|
95
|
+
|
|
96
|
+
2. **User Confirmation**:
|
|
97
|
+
<output>
|
|
98
|
+
READY TO COMMIT:
|
|
99
|
+
- Branch: {{target_branch}}
|
|
100
|
+
- Message: "feat: implementation for story {{story_key}}"
|
|
101
|
+
|
|
102
|
+
Do you want to proceed with the commit and push?
|
|
103
|
+
</output>
|
|
104
|
+
|
|
105
|
+
<menu>
|
|
106
|
+
<item cmd="C" action="continue">Yes, Commit & Push</item>
|
|
107
|
+
<item cmd="M" action="exit">No, Cancel (Manual Handling)</item>
|
|
108
|
+
</menu>
|
|
109
|
+
|
|
110
|
+
<logic>
|
|
111
|
+
<if selection="M">
|
|
112
|
+
<output>🚫 Commit cancelled by user.</output>
|
|
113
|
+
<output>Changes are staged. You can now commit manually.</output>
|
|
114
|
+
<action>Update frontmatter of `{outputFile}`: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`</action>
|
|
115
|
+
<action>EXIT</action>
|
|
116
|
+
</if>
|
|
117
|
+
</logic>
|
|
118
|
+
|
|
119
|
+
3. **Commit Changes**:
|
|
120
|
+
<action>Run command `git commit -m "feat: implementation for story {{story_key}}"`</action>
|
|
121
|
+
<check if="Commit failed (no changes?)">
|
|
122
|
+
<output>ℹ️ No changes to commit.</output>
|
|
123
|
+
</check>
|
|
124
|
+
|
|
125
|
+
4. **Push to Remote**:
|
|
126
|
+
<action>
|
|
127
|
+
1. Identify current branch (should be {{target_branch}} now): `git branch --show-current`
|
|
128
|
+
2. Push: `git push origin {{target_branch}}`
|
|
129
|
+
</action>
|
|
130
|
+
|
|
131
|
+
<check if="Push failed">
|
|
132
|
+
<output>❌ **Push Failed**. Please check your network or permissions and try pushing manually.</output>
|
|
133
|
+
</check>
|
|
134
|
+
<check if="Push success">
|
|
135
|
+
<output>✅ **Success**: Code pushed to origin.</output>
|
|
136
|
+
</check>
|
|
137
|
+
|
|
138
|
+
</check>
|
|
139
|
+
|
|
140
|
+
### 4. Final Logging
|
|
141
|
+
|
|
142
|
+
<action>Append to `{outputFile}`:</action>
|
|
143
|
+
<template-output>
|
|
144
|
+
## Repository Sync
|
|
145
|
+
- **Branch**: {{target_branch}}
|
|
146
|
+
- **Commit**: [Performed/Skipped]
|
|
147
|
+
- **Push**: [Performed/Skipped]
|
|
148
|
+
- **Status**: Workflow Completed Successfully
|
|
149
|
+
</template-output>
|
|
150
|
+
|
|
151
|
+
### 5. Workflow Completion
|
|
152
|
+
|
|
153
|
+
<output>
|
|
154
|
+
🎉 **Workflow Completed**
|
|
155
|
+
The code review cycle for **{{story_key}}** is finished.
|
|
156
|
+
</output>
|
|
157
|
+
|
|
158
|
+
<action>Update frontmatter of `{outputFile}`: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`</action>
|
|
159
|
+
|
|
160
|
+
<action>EXIT workflow.</action>
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-01-find-story'
|
|
3
|
+
description: 'Find next ready story and load it'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/dev-story'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-01-find-story.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-02-check-branch.md'
|
|
11
|
+
configSource: '{project-root}/_bmad/bmm/config.yaml'
|
|
12
|
+
|
|
13
|
+
# Context References
|
|
14
|
+
sprintStatusFile: '{implementation_artifacts}/sprint-status.yaml'
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Step 1: Find Next Ready Story
|
|
18
|
+
|
|
19
|
+
## STEP GOAL:
|
|
20
|
+
|
|
21
|
+
To identify, locate, and load the correct story file for development, either from the sprint status or by direct search.
|
|
22
|
+
|
|
23
|
+
## MANDATORY EXECUTION RULES:
|
|
24
|
+
|
|
25
|
+
- 🛑 NEVER proceed without a valid story file
|
|
26
|
+
- 📖 Read the entire step file first
|
|
27
|
+
- 💾 Store `story_path` and `story_key` in memory for subsequent steps
|
|
28
|
+
|
|
29
|
+
## EXECUTION PROTOCOLS:
|
|
30
|
+
|
|
31
|
+
### 1. Check for Provided Story Path
|
|
32
|
+
|
|
33
|
+
If `story_path` variable is already provided (e.g., passed by user):
|
|
34
|
+
|
|
35
|
+
1. Use `story_path` directly.
|
|
36
|
+
2. Read the COMPLETE story file.
|
|
37
|
+
3. Extract `story_key` from filename or metadata.
|
|
38
|
+
4. Proceed to **Completion**.
|
|
39
|
+
|
|
40
|
+
### 2. Sprint-Based Discovery (Priority)
|
|
41
|
+
|
|
42
|
+
Check if `{sprintStatusFile}` exists.
|
|
43
|
+
|
|
44
|
+
**IF EXISTS:**
|
|
45
|
+
|
|
46
|
+
1. Load the FULL file `{sprintStatusFile}`.
|
|
47
|
+
2. Read all lines to understand story order.
|
|
48
|
+
3. Find the **FIRST** story where:
|
|
49
|
+
* Key matches pattern: `number-number-name` (e.g., `1-2-user-auth`).
|
|
50
|
+
* NOT an epic key (`epic-X`) or retrospective.
|
|
51
|
+
* Status value equals `ready-for-dev`.
|
|
52
|
+
|
|
53
|
+
**IF NO ready-for-dev story found:**
|
|
54
|
+
|
|
55
|
+
1. Display:
|
|
56
|
+
```
|
|
57
|
+
📋 No ready-for-dev stories found in sprint-status.yaml
|
|
58
|
+
Current Sprint Status: [Summary]
|
|
59
|
+
```
|
|
60
|
+
2. Ask user to choose:
|
|
61
|
+
* [1] Run `create-story` (HALT and suggest command).
|
|
62
|
+
* [2] Run `validate-create-story` (HALT and suggest command).
|
|
63
|
+
* [3] Specify story file path manually.
|
|
64
|
+
* [4] Review detailed sprint status.
|
|
65
|
+
3. **HALT** and wait for input.
|
|
66
|
+
|
|
67
|
+
**IF ready-for-dev story found:**
|
|
68
|
+
|
|
69
|
+
1. Store `story_key` (e.g., "1-2-user-auth").
|
|
70
|
+
2. Find matching story file in `{story_dir}` (from config) using pattern `{{story_key}}.md`.
|
|
71
|
+
3. Read COMPLETE story file.
|
|
72
|
+
4. Proceed to **Completion**.
|
|
73
|
+
|
|
74
|
+
### 3. Non-Sprint Discovery (Fallback)
|
|
75
|
+
|
|
76
|
+
If `{sprintStatusFile}` does **NOT** exist:
|
|
77
|
+
|
|
78
|
+
1. Search `{story_dir}` for markdown files `*-*-*.md`.
|
|
79
|
+
2. Read files to find one with Status: `ready-for-dev`.
|
|
80
|
+
3. If none found, Ask user to specify path or run creation tools.
|
|
81
|
+
4. If found, use that file, extract `story_key`, and read content.
|
|
82
|
+
|
|
83
|
+
### 4. Story Context Extraction
|
|
84
|
+
|
|
85
|
+
Once story file is loaded (from any method above):
|
|
86
|
+
|
|
87
|
+
1. Parse sections: Story, Acceptance Criteria, Tasks/Subtasks, Dev Notes, Dev Agent Record, File List, Change Log, Status.
|
|
88
|
+
2. Load comprehensive context from Dev Notes (architecture, learnings, specs).
|
|
89
|
+
3. Identify first incomplete task (unchecked `[ ]`).
|
|
90
|
+
* If no incomplete tasks: Inform user story seems complete.
|
|
91
|
+
* If incomplete task found: Proceed.
|
|
92
|
+
|
|
93
|
+
### 5. Completion and Next Step
|
|
94
|
+
|
|
95
|
+
Once story is identified and loaded:
|
|
96
|
+
|
|
97
|
+
1. Display:
|
|
98
|
+
```
|
|
99
|
+
✅ Story Selected: {{story_key}}
|
|
100
|
+
Task: {{first_incomplete_task}}
|
|
101
|
+
```
|
|
102
|
+
2. Load, read entire file, then execute `{nextStepFile}` (`step-02-check-branch.md`).
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## CRITICAL:
|
|
107
|
+
|
|
108
|
+
- Do NOT load next step if story is not found or file is unreadable.
|
|
109
|
+
- If user input is required to pick a story, wait for it.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-02-check-branch'
|
|
3
|
+
description: 'Validate and enforce Git branch naming convention'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/dev-story'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-02-check-branch.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-03-load-context.md'
|
|
11
|
+
epicsFile: '{output_folder}/planning-artifacts/epics.md'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Step 2: Git Branch Validation
|
|
15
|
+
|
|
16
|
+
## STEP GOAL:
|
|
17
|
+
|
|
18
|
+
Ensure development occurs on the correct feature branch (`Feature/{Epic_Name}`) corresponding to the selected story's Epic.
|
|
19
|
+
|
|
20
|
+
## MANDATORY EXECUTION RULES:
|
|
21
|
+
|
|
22
|
+
- 🛑 NEVER start development on `main` or `develop` directly
|
|
23
|
+
- 📖 Read `epics.md` to resolve Epic names
|
|
24
|
+
- 🔄 Create or checkout the branch automatically
|
|
25
|
+
|
|
26
|
+
## EXECUTION PROTOCOLS:
|
|
27
|
+
|
|
28
|
+
### 1. Identify Epic
|
|
29
|
+
|
|
30
|
+
Using the `story_key` identified in Step 1 (e.g., `1-2-user-auth`):
|
|
31
|
+
|
|
32
|
+
1. Extract the **Epic ID** (the first number).
|
|
33
|
+
* Example: `1-2-user-auth` -> Epic ID = `1`.
|
|
34
|
+
2. Load and read `{epicsFile}`.
|
|
35
|
+
3. Find the Epic section matching this ID (e.g., `### Epic 1: Project Foundation & Configuration`).
|
|
36
|
+
4. Extract the **Epic Name** (e.g., `Project Foundation & Configuration`).
|
|
37
|
+
|
|
38
|
+
### 2. Construct Branch Name
|
|
39
|
+
|
|
40
|
+
1. Sanitize the Epic Name to create a valid Git branch name:
|
|
41
|
+
* Replace spaces with dashes `-`.
|
|
42
|
+
* Remove special characters.
|
|
43
|
+
* Use PascalCase or Kebab-Case as per project standard (Default to `Feature/Epic-Name-Sanitized`).
|
|
44
|
+
* Example: `Feature/Project-Foundation-Configuration`.
|
|
45
|
+
|
|
46
|
+
### 3. Check Current Branch
|
|
47
|
+
|
|
48
|
+
1. Run `git branch --show-current`.
|
|
49
|
+
2. Compare current branch with constructed `target_branch`.
|
|
50
|
+
|
|
51
|
+
### 4. Enforce Branch
|
|
52
|
+
|
|
53
|
+
**IF Current Branch == Target Branch:**
|
|
54
|
+
- Output: `✅ Already on correct branch: {{target_branch}}`
|
|
55
|
+
- Proceed to Next Step.
|
|
56
|
+
|
|
57
|
+
**IF Current Branch != Target Branch:**
|
|
58
|
+
1. Check if `target_branch` exists: `git branch --list {{target_branch}}`.
|
|
59
|
+
2. **IF Exists:**
|
|
60
|
+
* Run `git checkout {{target_branch}}`.
|
|
61
|
+
* Output: `🔄 Switched to existing branch: {{target_branch}}`.
|
|
62
|
+
3. **IF Not Exists:**
|
|
63
|
+
* Run `git checkout -b {{target_branch}}`.
|
|
64
|
+
* Output: `✨ Created and switched to new branch: {{target_branch}}`.
|
|
65
|
+
|
|
66
|
+
### 5. Validation Fallback
|
|
67
|
+
|
|
68
|
+
If `epics.md` is missing or Epic cannot be identified:
|
|
69
|
+
1. Ask user: "Could not detect Epic name for Story {{story_key}}. Please provide the target branch name or Epic name."
|
|
70
|
+
2. Wait for input and create/switch manually.
|
|
71
|
+
|
|
72
|
+
### 6. Next Step
|
|
73
|
+
|
|
74
|
+
Load, read entire file, then execute `{nextStepFile}` (`step-03-load-context.md`).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-03-load-context'
|
|
3
|
+
description: 'Load project context and story information'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/dev-story'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-03-load-context.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-04-env-readiness.md'
|
|
11
|
+
projectContext: '{project-root}/_bmad-output/project-context.md'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Step 3: Load Context
|
|
15
|
+
|
|
16
|
+
## STEP GOAL:
|
|
17
|
+
|
|
18
|
+
Load all available context to inform implementation, including coding standards, project-wide patterns, and specific story requirements.
|
|
19
|
+
|
|
20
|
+
## EXECUTION PROTOCOLS:
|
|
21
|
+
|
|
22
|
+
### 1. Load Project Context
|
|
23
|
+
|
|
24
|
+
1. Load `{projectContext}` (if exists) for coding standards and project-wide patterns.
|
|
25
|
+
2. Review architectural guidelines, tech stack details, and implementation patterns.
|
|
26
|
+
|
|
27
|
+
### 2. Deep Dive Story Context
|
|
28
|
+
|
|
29
|
+
1. Re-read the **Dev Notes** section of the Story file.
|
|
30
|
+
2. Extract developer guidance:
|
|
31
|
+
* Architecture requirements.
|
|
32
|
+
* Previous learnings.
|
|
33
|
+
* Technical specifications.
|
|
34
|
+
3. Use this enhanced context to inform implementation decisions.
|
|
35
|
+
|
|
36
|
+
### 3. Output Status
|
|
37
|
+
|
|
38
|
+
Display:
|
|
39
|
+
```
|
|
40
|
+
✅ Context Loaded
|
|
41
|
+
Story and project context available for implementation.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 4. Next Step
|
|
45
|
+
|
|
46
|
+
Load, read entire file, then execute `{nextStepFile}` (`step-04-env-readiness.md`).
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-04-env-readiness'
|
|
3
|
+
description: 'Analyze dependencies and ensure environment readiness'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/dev-story'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-04-env-readiness.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-05-review-check.md'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Step 4: Environment Readiness & UI Kit Check
|
|
14
|
+
|
|
15
|
+
## STEP GOAL:
|
|
16
|
+
|
|
17
|
+
Analyze tasks for UI requirements and ensure `siesa-ui-kit` is properly installed and configured if needed.
|
|
18
|
+
|
|
19
|
+
## EXECUTION PROTOCOLS:
|
|
20
|
+
|
|
21
|
+
### 1. Analyze for UI Requirements
|
|
22
|
+
|
|
23
|
+
Scan the Story's Tasks and Acceptance Criteria for UI-related keywords:
|
|
24
|
+
* `table`, `form`, `view`, `css`, `style`, `component`
|
|
25
|
+
* `dark mode`, `modal`, `button`, `input`, `grid`, `layout`
|
|
26
|
+
* `theme`, `icon`, `frontend`, `interface`, `screen`
|
|
27
|
+
* `dialog`, `popup`, `widget`, `dashboard`, `chart`, `visualization`
|
|
28
|
+
|
|
29
|
+
### 2. UI Kit Enforcement
|
|
30
|
+
|
|
31
|
+
**IF NO UI keywords found:**
|
|
32
|
+
1. Output: `ℹ️ No specific UI tasks detected. Skipping siesa-ui-kit check.`
|
|
33
|
+
|
|
34
|
+
**IF UI keywords found:**
|
|
35
|
+
1. **Install/Update**: Run `npm install siesa-ui-kit@latest`.
|
|
36
|
+
* Output: `✅ siesa-ui-kit ensured at latest version.`
|
|
37
|
+
2. **Verify Import**:
|
|
38
|
+
* Locate project main entry file (`src/app/layout.tsx`, `src/main.jsx`, etc.).
|
|
39
|
+
* Read content to check for `siesa-ui-kit/styles.css`.
|
|
40
|
+
* **If missing**: Add `import 'siesa-ui-kit/styles.css'` (or equivalent).
|
|
41
|
+
* Output: `✅ Verified/Added 'siesa-ui-kit/styles.css' import.`
|
|
42
|
+
|
|
43
|
+
### 3. Next Step
|
|
44
|
+
|
|
45
|
+
Load, read entire file, then execute `{nextStepFile}` (`step-05-review-check.md`).
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-05-review-check'
|
|
3
|
+
description: 'Detect review continuation and extract review context'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/dev-story'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-05-review-check.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-06-mark-in-progress.md'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Step 5: Review Context Check
|
|
14
|
+
|
|
15
|
+
## STEP GOAL:
|
|
16
|
+
|
|
17
|
+
Determine if this execution is a continuation after a code review or a fresh start.
|
|
18
|
+
|
|
19
|
+
## EXECUTION PROTOCOLS:
|
|
20
|
+
|
|
21
|
+
### 1. Check for Review Section
|
|
22
|
+
|
|
23
|
+
Inspect the story file for:
|
|
24
|
+
1. Section: `Senior Developer Review (AI)`
|
|
25
|
+
2. Subsection in Tasks: `Review Follow-ups (AI)`
|
|
26
|
+
|
|
27
|
+
### 2. Extract Review Context
|
|
28
|
+
|
|
29
|
+
**IF Review Section EXISTS:**
|
|
30
|
+
1. Set `review_continuation = true`.
|
|
31
|
+
2. Extract:
|
|
32
|
+
* Review Outcome (Approve/Changes Requested/Blocked).
|
|
33
|
+
* Review Date.
|
|
34
|
+
* Action Items (Count checked vs unchecked).
|
|
35
|
+
* Severity Breakdown.
|
|
36
|
+
3. Count unchecked `[ ]` tasks in `Review Follow-ups (AI)`.
|
|
37
|
+
4. Store `pending_review_items` list.
|
|
38
|
+
5. Output:
|
|
39
|
+
```
|
|
40
|
+
⏯️ Resuming Story After Code Review
|
|
41
|
+
Outcome: {{review_outcome}}
|
|
42
|
+
Action Items: {{unchecked_review_count}} remaining
|
|
43
|
+
Strategy: Prioritize review follow-ups [AI-Review] first.
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**IF Review Section DOES NOT EXIST:**
|
|
47
|
+
1. Set `review_continuation = false`.
|
|
48
|
+
2. Set `pending_review_items = empty`.
|
|
49
|
+
3. Output:
|
|
50
|
+
```
|
|
51
|
+
🚀 Starting Fresh Implementation
|
|
52
|
+
Story: {{story_key}}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Next Step
|
|
56
|
+
|
|
57
|
+
Load, read entire file, then execute `{nextStepFile}` (`step-06-mark-in-progress.md`).
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-06-mark-in-progress'
|
|
3
|
+
description: 'Mark story in-progress in sprint status'
|
|
4
|
+
|
|
5
|
+
# Path Definitions
|
|
6
|
+
workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/dev-story'
|
|
7
|
+
|
|
8
|
+
# File References
|
|
9
|
+
thisStepFile: '{workflow_path}/steps/step-06-mark-in-progress.md'
|
|
10
|
+
nextStepFile: '{workflow_path}/steps/step-07-implement.md'
|
|
11
|
+
sprintStatusFile: '{implementation_artifacts}/sprint-status.yaml'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Step 6: Update Sprint Status
|
|
15
|
+
|
|
16
|
+
## STEP GOAL:
|
|
17
|
+
|
|
18
|
+
Update the project's sprint status tracking to reflect that work has started on this story.
|
|
19
|
+
|
|
20
|
+
## EXECUTION PROTOCOLS:
|
|
21
|
+
|
|
22
|
+
### 1. Check Sprint Status File
|
|
23
|
+
|
|
24
|
+
**IF `{sprintStatusFile}` EXISTS:**
|
|
25
|
+
1. Load the FULL file.
|
|
26
|
+
2. Find entry for `{{story_key}}` in `development_status`.
|
|
27
|
+
3. Check current status.
|
|
28
|
+
|
|
29
|
+
### 2. Update Status
|
|
30
|
+
|
|
31
|
+
**IF Current Status == 'ready-for-dev' OR `review_continuation == true`:**
|
|
32
|
+
1. Update status to `in-progress`.
|
|
33
|
+
2. Save file.
|
|
34
|
+
3. Output:
|
|
35
|
+
```
|
|
36
|
+
🚀 Status updated: ready-for-dev → in-progress
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**IF Current Status == 'in-progress':**
|
|
40
|
+
1. Output: `⏯️ Story already in-progress.`
|
|
41
|
+
|
|
42
|
+
**IF Status Unknown/Other:**
|
|
43
|
+
1. Output: `⚠️ Unexpected status: {{current_status}}. Continuing...`
|
|
44
|
+
|
|
45
|
+
### 3. Non-Sprint Tracking
|
|
46
|
+
|
|
47
|
+
**IF `{sprintStatusFile}` DOES NOT EXIST:**
|
|
48
|
+
1. Output: `ℹ️ No sprint status file. Progress tracked in story file only.`
|
|
49
|
+
|
|
50
|
+
### 4. Next Step
|
|
51
|
+
|
|
52
|
+
Load, read entire file, then execute `{nextStepFile}` (`step-07-implement.md`).
|