bmad-method 6.8.1-next.9 → 6.9.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.
- package/.claude-plugin/marketplace.json +9 -3
- package/package.json +10 -4
- package/src/bmm-skills/1-analysis/bmad-prfaq/SKILL.md +2 -2
- package/src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md +8 -8
- package/src/bmm-skills/2-plan-workflows/bmad-prd/SKILL.md +7 -7
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/headless-schemas.md +2 -2
- package/src/bmm-skills/2-plan-workflows/bmad-prd/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/headless.md +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/validate.md +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-ux/SKILL.md +8 -8
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-directions.md +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/headless-schemas.md +2 -2
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/key-screens.md +4 -4
- package/src/bmm-skills/2-plan-workflows/bmad-ux/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/creative-tools.md +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/headless.md +1 -1
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/validate.md +2 -2
- package/src/bmm-skills/3-solutioning/bmad-agent-architect/customize.toml +2 -2
- package/src/bmm-skills/3-solutioning/bmad-architecture/SKILL.md +85 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/assets/spine-template.md +79 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/customize.toml +100 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/references/headless.md +26 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/references/reviewer-gate.md +13 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/scripts/lint_spine.py +257 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/scripts/tests/test_lint_spine.py +270 -0
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/SKILL.md +16 -60
- package/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md +15 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-planning/SKILL.md +20 -1
- package/src/bmm-skills/4-implementation/bmad-sprint-planning/checklist.md +2 -1
- package/src/bmm-skills/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +13 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-status/SKILL.md +13 -0
- package/src/bmm-skills/module-help.csv +2 -2
- package/src/core-skills/bmad-brainstorming/SKILL.md +8 -10
- package/src/core-skills/bmad-brainstorming/references/converge.md +1 -1
- package/src/core-skills/bmad-brainstorming/references/finalize.md +1 -1
- package/src/core-skills/bmad-brainstorming/references/headless.md +4 -4
- package/src/core-skills/bmad-brainstorming/references/in-chat-techniques.md +1 -1
- package/src/core-skills/bmad-brainstorming/references/mode-autonomous.md +1 -1
- package/src/core-skills/bmad-brainstorming/scripts/tests/test_brain.py +2 -2
- package/src/core-skills/bmad-customize/scripts/tests/test_list_customizable_skills.py +1 -1
- package/src/core-skills/bmad-forge-idea/SKILL.md +79 -0
- package/src/core-skills/bmad-forge-idea/customize.toml +42 -0
- package/src/core-skills/bmad-forge-idea/scripts/resolve_personas.py +270 -0
- package/src/core-skills/bmad-forge-idea/scripts/tests/test_resolve_personas.py +138 -0
- package/src/core-skills/bmad-party-mode/SKILL.md +39 -56
- package/src/core-skills/bmad-party-mode/customize.toml +175 -0
- package/src/core-skills/bmad-party-mode/references/create-party.md +70 -0
- package/src/core-skills/bmad-party-mode/references/mode-agent-team.md +11 -0
- package/src/core-skills/bmad-party-mode/references/mode-auto.md +13 -0
- package/src/core-skills/bmad-party-mode/references/mode-subagent.md +19 -0
- package/src/core-skills/bmad-party-mode/references/party-memory.md +51 -0
- package/src/core-skills/bmad-party-mode/scripts/resolve_party.py +272 -0
- package/src/core-skills/bmad-party-mode/scripts/tests/test-resolve_party.py +146 -0
- package/src/core-skills/bmad-spec/SKILL.md +5 -3
- package/src/core-skills/bmad-spec/assets/spec-template.md +3 -3
- package/src/core-skills/module-help.csv +1 -0
- package/src/scripts/resolve_config.py +8 -6
- package/src/scripts/resolve_customization.py +8 -6
- package/tools/installer/commands/install.js +3 -0
- package/tools/installer/core/installer.js +3 -0
- package/tools/installer/core/uv-check.js +97 -0
- package/tools/installer/core/wsl-node-check.js +109 -0
- package/tools/installer/ide/platform-codes.yaml +7 -0
- package/tools/installer/install-messages.yaml +4 -0
- package/tools/installer/ui.js +10 -9
- package/evals/bmm-skills/bmad-product-brief/evals.json +0 -237
- package/evals/bmm-skills/bmad-product-brief/files/branfield-memo.md +0 -46
- package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/addendum.md +0 -40
- package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/brief.md +0 -56
- package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/decision-log.md +0 -27
- package/evals/bmm-skills/bmad-product-brief/files/meridian-mobility-report.md +0 -116
- package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/addendum.md +0 -41
- package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/brief.md +0 -57
- package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/decision-log.md +0 -29
- package/evals/bmm-skills/bmad-product-brief/files/pantry-bridge-interviews.md +0 -90
- package/evals/bmm-skills/bmad-product-brief/files/q2-brainstorm.md +0 -101
- package/evals/bmm-skills/bmad-product-brief/triggers.json +0 -18
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/architecture-decision-template.md +0 -12
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/data/domain-complexity.csv +0 -13
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/data/project-types.csv +0 -7
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-01-init.md +0 -153
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md +0 -173
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-02-context.md +0 -224
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-03-starter.md +0 -329
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-04-decisions.md +0 -318
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-05-patterns.md +0 -359
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-06-structure.md +0 -379
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-07-validation.md +0 -361
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +0 -82
- package/src/core-skills/bmad-brainstorming/scripts/memlog.py +0 -202
- package/src/core-skills/bmad-brainstorming/scripts/tests/test_memlog.py +0 -265
- package/tools/installer/core/python-check.js +0 -199
|
@@ -1,361 +0,0 @@
|
|
|
1
|
-
# Step 7: Architecture Validation & Completion
|
|
2
|
-
|
|
3
|
-
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
4
|
-
|
|
5
|
-
- 🛑 NEVER generate content without user input
|
|
6
|
-
|
|
7
|
-
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
|
8
|
-
- 🔄 CRITICAL: When loading next step with 'C', ensure the entire file is read and understood before proceeding
|
|
9
|
-
- ✅ ALWAYS treat this as collaborative discovery between architectural peers
|
|
10
|
-
- 📋 YOU ARE A FACILITATOR, not a content generator
|
|
11
|
-
- 💬 FOCUS on validating architectural coherence and completeness
|
|
12
|
-
- ✅ VALIDATE all requirements are covered by architectural decisions
|
|
13
|
-
- ⚠️ ABSOLUTELY NO TIME ESTIMATES - AI development speed has fundamentally changed
|
|
14
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
15
|
-
|
|
16
|
-
## EXECUTION PROTOCOLS:
|
|
17
|
-
|
|
18
|
-
- 🎯 Show your analysis before taking any action
|
|
19
|
-
- ✅ Run comprehensive validation checks on the complete architecture
|
|
20
|
-
- ⚠️ Present A/P/C menu after generating validation results
|
|
21
|
-
- 💾 ONLY save when user chooses C (Continue)
|
|
22
|
-
- 📖 Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]` before loading next step
|
|
23
|
-
- 🚫 FORBIDDEN to load next step until C is selected
|
|
24
|
-
|
|
25
|
-
## COLLABORATION MENUS (A/P/C):
|
|
26
|
-
|
|
27
|
-
This step will generate content and present choices:
|
|
28
|
-
|
|
29
|
-
- **A (Advanced Elicitation)**: Use discovery protocols to address complex architectural issues found during validation
|
|
30
|
-
- **P (Party Mode)**: Bring multiple perspectives to resolve validation concerns
|
|
31
|
-
- **C (Continue)**: Save the validation results and complete the architecture
|
|
32
|
-
|
|
33
|
-
## PROTOCOL INTEGRATION:
|
|
34
|
-
|
|
35
|
-
- When 'A' selected: Invoke the `bmad-advanced-elicitation` skill
|
|
36
|
-
- When 'P' selected: Invoke the `bmad-party-mode` skill
|
|
37
|
-
- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed
|
|
38
|
-
- User accepts/rejects protocol changes before proceeding
|
|
39
|
-
|
|
40
|
-
## CONTEXT BOUNDARIES:
|
|
41
|
-
|
|
42
|
-
- Complete architecture document with all sections is available
|
|
43
|
-
- All architectural decisions, patterns, and structure are defined
|
|
44
|
-
- Focus on validation, gap analysis, and coherence checking
|
|
45
|
-
- Prepare for handoff to implementation phase
|
|
46
|
-
|
|
47
|
-
## YOUR TASK:
|
|
48
|
-
|
|
49
|
-
Validate the complete architecture for coherence, completeness, and readiness to guide AI agents through consistent implementation.
|
|
50
|
-
|
|
51
|
-
## VALIDATION SEQUENCE:
|
|
52
|
-
|
|
53
|
-
### 1. Coherence Validation
|
|
54
|
-
|
|
55
|
-
Check that all architectural decisions work together:
|
|
56
|
-
|
|
57
|
-
**Decision Compatibility:**
|
|
58
|
-
|
|
59
|
-
- Do all technology choices work together without conflicts?
|
|
60
|
-
- Are all versions compatible with each other?
|
|
61
|
-
- Do patterns align with technology choices?
|
|
62
|
-
- Are there any contradictory decisions?
|
|
63
|
-
|
|
64
|
-
**Pattern Consistency:**
|
|
65
|
-
|
|
66
|
-
- Do implementation patterns support the architectural decisions?
|
|
67
|
-
- Are naming conventions consistent across all areas?
|
|
68
|
-
- Do structure patterns align with technology stack?
|
|
69
|
-
- Are communication patterns coherent?
|
|
70
|
-
|
|
71
|
-
**Structure Alignment:**
|
|
72
|
-
|
|
73
|
-
- Does the project structure support all architectural decisions?
|
|
74
|
-
- Are boundaries properly defined and respected?
|
|
75
|
-
- Does the structure enable the chosen patterns?
|
|
76
|
-
- Are integration points properly structured?
|
|
77
|
-
|
|
78
|
-
### 2. Requirements Coverage Validation
|
|
79
|
-
|
|
80
|
-
Verify all project requirements are architecturally supported:
|
|
81
|
-
|
|
82
|
-
**From Epics (if available):**
|
|
83
|
-
|
|
84
|
-
- Does every epic have architectural support?
|
|
85
|
-
- Are all user stories implementable with these decisions?
|
|
86
|
-
- Are cross-epic dependencies handled architecturally?
|
|
87
|
-
- Are there any gaps in epic coverage?
|
|
88
|
-
|
|
89
|
-
**From FR Categories (if no epics):**
|
|
90
|
-
|
|
91
|
-
- Does every functional requirement have architectural support?
|
|
92
|
-
- Are all FR categories fully covered by architectural decisions?
|
|
93
|
-
- Are cross-cutting FRs properly addressed?
|
|
94
|
-
- Are there any missing architectural capabilities?
|
|
95
|
-
|
|
96
|
-
**Non-Functional Requirements:**
|
|
97
|
-
|
|
98
|
-
- Are performance requirements addressed architecturally?
|
|
99
|
-
- Are security requirements fully covered?
|
|
100
|
-
- Are scalability considerations properly handled?
|
|
101
|
-
- Are compliance requirements architecturally supported?
|
|
102
|
-
|
|
103
|
-
### 3. Implementation Readiness Validation
|
|
104
|
-
|
|
105
|
-
Assess if AI agents can implement consistently:
|
|
106
|
-
|
|
107
|
-
**Decision Completeness:**
|
|
108
|
-
|
|
109
|
-
- Are all critical decisions documented with versions?
|
|
110
|
-
- Are implementation patterns comprehensive enough?
|
|
111
|
-
- Are consistency rules clear and enforceable?
|
|
112
|
-
- Are examples provided for all major patterns?
|
|
113
|
-
|
|
114
|
-
**Structure Completeness:**
|
|
115
|
-
|
|
116
|
-
- Is the project structure complete and specific?
|
|
117
|
-
- Are all files and directories defined?
|
|
118
|
-
- Are integration points clearly specified?
|
|
119
|
-
- Are component boundaries well-defined?
|
|
120
|
-
|
|
121
|
-
**Pattern Completeness:**
|
|
122
|
-
|
|
123
|
-
- Are all potential conflict points addressed?
|
|
124
|
-
- Are naming conventions comprehensive?
|
|
125
|
-
- Are communication patterns fully specified?
|
|
126
|
-
- Are process patterns (error handling, etc.) complete?
|
|
127
|
-
|
|
128
|
-
### 4. Gap Analysis
|
|
129
|
-
|
|
130
|
-
Identify and document any missing elements:
|
|
131
|
-
|
|
132
|
-
**Critical Gaps:**
|
|
133
|
-
|
|
134
|
-
- Missing architectural decisions that block implementation
|
|
135
|
-
- Incomplete patterns that could cause conflicts
|
|
136
|
-
- Missing structural elements needed for development
|
|
137
|
-
- Undefined integration points
|
|
138
|
-
|
|
139
|
-
**Important Gaps:**
|
|
140
|
-
|
|
141
|
-
- Areas that need more detailed specification
|
|
142
|
-
- Patterns that could be more comprehensive
|
|
143
|
-
- Documentation that would help implementation
|
|
144
|
-
- Examples that would clarify complex decisions
|
|
145
|
-
|
|
146
|
-
**Nice-to-Have Gaps:**
|
|
147
|
-
|
|
148
|
-
- Additional patterns that would be helpful
|
|
149
|
-
- Supplementary documentation
|
|
150
|
-
- Tooling recommendations
|
|
151
|
-
- Development workflow optimizations
|
|
152
|
-
|
|
153
|
-
### 5. Address Validation Issues
|
|
154
|
-
|
|
155
|
-
For any issues found, facilitate resolution:
|
|
156
|
-
|
|
157
|
-
**Critical Issues:**
|
|
158
|
-
"I found some issues that need to be addressed before implementation:
|
|
159
|
-
|
|
160
|
-
{{critical_issue_description}}
|
|
161
|
-
|
|
162
|
-
These could cause implementation problems. How would you like to resolve this?"
|
|
163
|
-
|
|
164
|
-
**Important Issues:**
|
|
165
|
-
"I noticed a few areas that could be improved:
|
|
166
|
-
|
|
167
|
-
{{important_issue_description}}
|
|
168
|
-
|
|
169
|
-
These aren't blocking, but addressing them would make implementation smoother. Should we work on these?"
|
|
170
|
-
|
|
171
|
-
**Minor Issues:**
|
|
172
|
-
"Here are some minor suggestions for improvement:
|
|
173
|
-
|
|
174
|
-
{{minor_issue_description}}
|
|
175
|
-
|
|
176
|
-
These are optional refinements. Would you like to address any of these?"
|
|
177
|
-
|
|
178
|
-
### 6. Generate Validation Content
|
|
179
|
-
|
|
180
|
-
Prepare the content to append to the document:
|
|
181
|
-
|
|
182
|
-
#### Content Structure:
|
|
183
|
-
|
|
184
|
-
```markdown
|
|
185
|
-
## Architecture Validation Results
|
|
186
|
-
|
|
187
|
-
### Coherence Validation ✅
|
|
188
|
-
|
|
189
|
-
**Decision Compatibility:**
|
|
190
|
-
{{assessment_of_how_all_decisions_work_together}}
|
|
191
|
-
|
|
192
|
-
**Pattern Consistency:**
|
|
193
|
-
{{verification_that_patterns_support_decisions}}
|
|
194
|
-
|
|
195
|
-
**Structure Alignment:**
|
|
196
|
-
{{confirmation_that_structure_supports_architecture}}
|
|
197
|
-
|
|
198
|
-
### Requirements Coverage Validation ✅
|
|
199
|
-
|
|
200
|
-
**Epic/Feature Coverage:**
|
|
201
|
-
{{verification_that_all_epics_or_features_are_supported}}
|
|
202
|
-
|
|
203
|
-
**Functional Requirements Coverage:**
|
|
204
|
-
{{confirmation_that_all_FRs_are_architecturally_supported}}
|
|
205
|
-
|
|
206
|
-
**Non-Functional Requirements Coverage:**
|
|
207
|
-
{{verification_that_NFRs_are_addressed}}
|
|
208
|
-
|
|
209
|
-
### Implementation Readiness Validation ✅
|
|
210
|
-
|
|
211
|
-
**Decision Completeness:**
|
|
212
|
-
{{assessment_of_decision_documentation_completeness}}
|
|
213
|
-
|
|
214
|
-
**Structure Completeness:**
|
|
215
|
-
{{evaluation_of_project_structure_completeness}}
|
|
216
|
-
|
|
217
|
-
**Pattern Completeness:**
|
|
218
|
-
{{verification_of_implementation_patterns_completeness}}
|
|
219
|
-
|
|
220
|
-
### Gap Analysis Results
|
|
221
|
-
|
|
222
|
-
{{gap_analysis_findings_with_priority_levels}}
|
|
223
|
-
|
|
224
|
-
### Validation Issues Addressed
|
|
225
|
-
|
|
226
|
-
{{description_of_any_issues_found_and_resolutions}}
|
|
227
|
-
|
|
228
|
-
### Architecture Completeness Checklist
|
|
229
|
-
|
|
230
|
-
Mark each item `[x]` only if validation confirms it; leave `[ ]` if it is missing, partial, or unverified. Any unchecked item must be reflected in the Gap Analysis above and in the Overall Status below.
|
|
231
|
-
|
|
232
|
-
**Requirements Analysis**
|
|
233
|
-
|
|
234
|
-
- [ ] Project context thoroughly analyzed
|
|
235
|
-
- [ ] Scale and complexity assessed
|
|
236
|
-
- [ ] Technical constraints identified
|
|
237
|
-
- [ ] Cross-cutting concerns mapped
|
|
238
|
-
|
|
239
|
-
**Architectural Decisions**
|
|
240
|
-
|
|
241
|
-
- [ ] Critical decisions documented with versions
|
|
242
|
-
- [ ] Technology stack fully specified
|
|
243
|
-
- [ ] Integration patterns defined
|
|
244
|
-
- [ ] Performance considerations addressed
|
|
245
|
-
|
|
246
|
-
**Implementation Patterns**
|
|
247
|
-
|
|
248
|
-
- [ ] Naming conventions established
|
|
249
|
-
- [ ] Structure patterns defined
|
|
250
|
-
- [ ] Communication patterns specified
|
|
251
|
-
- [ ] Process patterns documented
|
|
252
|
-
|
|
253
|
-
**Project Structure**
|
|
254
|
-
|
|
255
|
-
- [ ] Complete directory structure defined
|
|
256
|
-
- [ ] Component boundaries established
|
|
257
|
-
- [ ] Integration points mapped
|
|
258
|
-
- [ ] Requirements to structure mapping complete
|
|
259
|
-
|
|
260
|
-
### Architecture Readiness Assessment
|
|
261
|
-
|
|
262
|
-
**Overall Status:** {{READY FOR IMPLEMENTATION | READY WITH MINOR GAPS | NOT READY}} (choose READY FOR IMPLEMENTATION only when all 16 checklist items are `[x]` and no Critical Gaps remain; choose NOT READY when any Critical Gap is open or any Requirements Analysis or Architectural Decisions item is unchecked; otherwise READY WITH MINOR GAPS)
|
|
263
|
-
|
|
264
|
-
**Confidence Level:** {{high/medium/low}} based on validation results
|
|
265
|
-
|
|
266
|
-
**Key Strengths:**
|
|
267
|
-
{{list_of_architecture_strengths}}
|
|
268
|
-
|
|
269
|
-
**Areas for Future Enhancement:**
|
|
270
|
-
{{areas_that_could_be_improved_later}}
|
|
271
|
-
|
|
272
|
-
### Implementation Handoff
|
|
273
|
-
|
|
274
|
-
**AI Agent Guidelines:**
|
|
275
|
-
|
|
276
|
-
- Follow all architectural decisions exactly as documented
|
|
277
|
-
- Use implementation patterns consistently across all components
|
|
278
|
-
- Respect project structure and boundaries
|
|
279
|
-
- Refer to this document for all architectural questions
|
|
280
|
-
|
|
281
|
-
**First Implementation Priority:**
|
|
282
|
-
{{starter_template_command_or_first_architectural_step}}
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### 7. Present Content and Menu
|
|
286
|
-
|
|
287
|
-
Show the validation results and present choices:
|
|
288
|
-
|
|
289
|
-
"I've completed a comprehensive validation of your architecture.
|
|
290
|
-
|
|
291
|
-
**Validation Summary:**
|
|
292
|
-
|
|
293
|
-
- ✅ Coherence: All decisions work together
|
|
294
|
-
- ✅ Coverage: All requirements are supported
|
|
295
|
-
- ✅ Readiness: AI agents can implement consistently
|
|
296
|
-
|
|
297
|
-
**Here's what I'll add to complete the architecture document:**
|
|
298
|
-
|
|
299
|
-
[Show the complete markdown content from step 6]
|
|
300
|
-
|
|
301
|
-
**What would you like to do?**
|
|
302
|
-
[A] Advanced Elicitation - Address any complex architectural concerns
|
|
303
|
-
[P] Party Mode - Review validation from different implementation perspectives
|
|
304
|
-
[C] Continue - Complete the architecture and finish workflow
|
|
305
|
-
|
|
306
|
-
### 8. Handle Menu Selection
|
|
307
|
-
|
|
308
|
-
#### If 'A' (Advanced Elicitation):
|
|
309
|
-
|
|
310
|
-
- Invoke the `bmad-advanced-elicitation` skill with validation issues
|
|
311
|
-
- Process enhanced solutions for complex concerns
|
|
312
|
-
- Ask user: "Accept these architectural improvements? (y/n)"
|
|
313
|
-
- If yes: Update content, then return to A/P/C menu
|
|
314
|
-
- If no: Keep original content, then return to A/P/C menu
|
|
315
|
-
|
|
316
|
-
#### If 'P' (Party Mode):
|
|
317
|
-
|
|
318
|
-
- Invoke the `bmad-party-mode` skill with validation context
|
|
319
|
-
- Process collaborative insights on implementation readiness
|
|
320
|
-
- Ask user: "Accept these changes to the validation results? (y/n)"
|
|
321
|
-
- If yes: Update content, then return to A/P/C menu
|
|
322
|
-
- If no: Keep original content, then return to A/P/C menu
|
|
323
|
-
|
|
324
|
-
#### If 'C' (Continue):
|
|
325
|
-
|
|
326
|
-
- Append the final content to `{planning_artifacts}/architecture.md`
|
|
327
|
-
- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]`
|
|
328
|
-
- Load `./step-08-complete.md`
|
|
329
|
-
|
|
330
|
-
## APPEND TO DOCUMENT:
|
|
331
|
-
|
|
332
|
-
When user selects 'C', append the content directly to the document using the structure from step 6.
|
|
333
|
-
|
|
334
|
-
## SUCCESS METRICS:
|
|
335
|
-
|
|
336
|
-
✅ All architectural decisions validated for coherence
|
|
337
|
-
✅ Complete requirements coverage verified
|
|
338
|
-
✅ Implementation readiness confirmed
|
|
339
|
-
✅ All gaps identified and addressed
|
|
340
|
-
✅ Comprehensive validation checklist completed
|
|
341
|
-
✅ A/P/C menu presented and handled correctly
|
|
342
|
-
✅ Content properly appended to document when C selected
|
|
343
|
-
|
|
344
|
-
## FAILURE MODES:
|
|
345
|
-
|
|
346
|
-
❌ Skipping validation of decision compatibility
|
|
347
|
-
❌ Not verifying all requirements are architecturally supported
|
|
348
|
-
❌ Missing potential implementation conflicts
|
|
349
|
-
❌ Not addressing gaps found during validation
|
|
350
|
-
❌ Providing incomplete validation checklist
|
|
351
|
-
❌ Not presenting A/P/C menu after content generation
|
|
352
|
-
|
|
353
|
-
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
|
354
|
-
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
|
355
|
-
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
|
356
|
-
|
|
357
|
-
## NEXT STEP:
|
|
358
|
-
|
|
359
|
-
After user selects 'C' and content is saved to document, load `./step-08-complete.md` to complete the workflow and provide implementation guidance.
|
|
360
|
-
|
|
361
|
-
Remember: Do NOT proceed to step-08 until user explicitly selects 'C' from the A/P/C menu and content is saved!
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# Step 8: Architecture Completion & Handoff
|
|
2
|
-
|
|
3
|
-
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
4
|
-
|
|
5
|
-
- 🛑 NEVER generate content without user input
|
|
6
|
-
|
|
7
|
-
- 📖 CRITICAL: ALWAYS read the complete step file before taking any action - partial understanding leads to incomplete decisions
|
|
8
|
-
- ✅ ALWAYS treat this as collaborative completion between architectural peers
|
|
9
|
-
- 📋 YOU ARE A FACILITATOR, not a content generator
|
|
10
|
-
- 💬 FOCUS on successful workflow completion and implementation handoff
|
|
11
|
-
- 🎯 PROVIDE clear next steps for implementation phase
|
|
12
|
-
- ⚠️ ABSOLUTELY NO TIME ESTIMATES - AI development speed has fundamentally changed
|
|
13
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
14
|
-
|
|
15
|
-
## EXECUTION PROTOCOLS:
|
|
16
|
-
|
|
17
|
-
- 🎯 Show your analysis before taking any action
|
|
18
|
-
- 🎯 Present completion summary and implementation guidance
|
|
19
|
-
- 📖 Update frontmatter with final workflow state
|
|
20
|
-
- 🚫 THIS IS THE FINAL STEP IN THIS WORKFLOW
|
|
21
|
-
|
|
22
|
-
## YOUR TASK:
|
|
23
|
-
|
|
24
|
-
Complete the architecture workflow, provide a comprehensive completion summary, and guide the user to the next phase of their project development.
|
|
25
|
-
|
|
26
|
-
## COMPLETION SEQUENCE:
|
|
27
|
-
|
|
28
|
-
### 1. Congratulate the User on Completion
|
|
29
|
-
|
|
30
|
-
Both you and the User completed something amazing here - give a summary of what you achieved together and really congratulate the user on a job well done.
|
|
31
|
-
|
|
32
|
-
### 2. Update the created document's frontmatter
|
|
33
|
-
|
|
34
|
-
```yaml
|
|
35
|
-
stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]
|
|
36
|
-
workflowType: 'architecture'
|
|
37
|
-
lastStep: 8
|
|
38
|
-
status: 'complete'
|
|
39
|
-
completedAt: '{{current_date}}'
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### 3. Next Steps Guidance
|
|
43
|
-
|
|
44
|
-
Architecture complete. Invoke the `bmad-help` skill.
|
|
45
|
-
|
|
46
|
-
Upon Completion of task output: offer to answer any questions about the Architecture Document.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
## SUCCESS METRICS:
|
|
50
|
-
|
|
51
|
-
✅ Complete architecture document delivered with all sections
|
|
52
|
-
✅ All architectural decisions documented and validated
|
|
53
|
-
✅ Implementation patterns and consistency rules finalized
|
|
54
|
-
✅ Project structure complete with all files and directories
|
|
55
|
-
✅ User provided with clear next steps and implementation guidance
|
|
56
|
-
✅ Workflow status properly updated
|
|
57
|
-
✅ User collaboration maintained throughout completion process
|
|
58
|
-
|
|
59
|
-
## FAILURE MODES:
|
|
60
|
-
|
|
61
|
-
❌ Not providing clear implementation guidance
|
|
62
|
-
❌ Missing final validation of document completeness
|
|
63
|
-
❌ Not updating workflow status appropriately
|
|
64
|
-
❌ Failing to celebrate the successful completion
|
|
65
|
-
❌ Not providing specific next steps for the user
|
|
66
|
-
❌ Rushing completion without proper summary
|
|
67
|
-
|
|
68
|
-
❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions
|
|
69
|
-
❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file
|
|
70
|
-
❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols
|
|
71
|
-
|
|
72
|
-
## WORKFLOW COMPLETE:
|
|
73
|
-
|
|
74
|
-
This is the final step of the Architecture workflow. The user now has a complete, validated architecture document ready for AI agent implementation.
|
|
75
|
-
|
|
76
|
-
The architecture will serve as the single source of truth for all technical decisions, ensuring consistent implementation across the entire project development lifecycle.
|
|
77
|
-
|
|
78
|
-
## On Complete
|
|
79
|
-
|
|
80
|
-
Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete`
|
|
81
|
-
|
|
82
|
-
If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
# /// script
|
|
3
|
-
# requires-python = ">=3.10"
|
|
4
|
-
# ///
|
|
5
|
-
"""memlog — an append-only memory log: LLM-optimal working memory for a skill.
|
|
6
|
-
|
|
7
|
-
A memlog is the dense, chronological record of everything that mattered in a piece of
|
|
8
|
-
work — every item the user generated or accepted — kept minimal like human memory: only
|
|
9
|
-
what's important, never bloated. It persists ACROSS sessions, so a fresh session can
|
|
10
|
-
load it and continue. It is NOT a deliverable; downstream artifacts (a brief, a PRD, a
|
|
11
|
-
deck, a report) are *derived* from it on demand. The host skill supplies the vocabulary
|
|
12
|
-
by how it calls `append` — the tool stays neutral.
|
|
13
|
-
|
|
14
|
-
It is a FLAT log: there are no sections or grouping. Every entry is one line, recorded
|
|
15
|
-
at the END in the order it happened. The chronology itself is the structure — an event
|
|
16
|
-
like "started technique X" is just another entry, same as an idea or an insight.
|
|
17
|
-
|
|
18
|
-
Two invariants make it trustworthy:
|
|
19
|
-
|
|
20
|
-
1. Append-only, chronological. Entries land at the end, in the order they happen.
|
|
21
|
-
Nothing is ever inserted backward, reordered, or grouped.
|
|
22
|
-
2. Write-only / blind. Every command is an atomic, context-free write and echoes the
|
|
23
|
-
new state as JSON, so the caller never re-reads the file mid-session. The one time
|
|
24
|
-
the file is read is on resume — and the caller reads it itself, not via this script.
|
|
25
|
-
|
|
26
|
-
The file shape (.memlog.md):
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
topic: Onboarding flow for a budgeting app
|
|
30
|
-
goal: lift week-1 retention
|
|
31
|
-
status: active
|
|
32
|
-
updated: 2026-05-30T14:22
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
- (note) user picked techniques: SCAMPER, then Six Thinking Hats
|
|
36
|
-
- (technique) started SCAMPER
|
|
37
|
-
- (idea) skip the signup wall: let people try with sample data first
|
|
38
|
-
- (idea) auto-import one bank account so the first screen shows real numbers
|
|
39
|
-
- (question) is open-banking consent too heavy for step one?
|
|
40
|
-
- (technique) started Six Thinking Hats
|
|
41
|
-
- (idea) black-hat: imported transactions look scary before they're categorized
|
|
42
|
-
- (insight) the "scary numbers" risk and the "real numbers" idea are one lever: show real data, pre-categorized
|
|
43
|
-
- (direction) user wants to optimize for the anxious first-timer, not the power user
|
|
44
|
-
- (decision) lead with one pre-categorized account; defer multi-account import
|
|
45
|
-
|
|
46
|
-
Each entry may carry an optional `--type` — what KIND it is (idea, insight, question,
|
|
47
|
-
decision, technique, …) — and an optional `--by` naming who it came from (e.g. `user`,
|
|
48
|
-
`coach`), for sessions where authorship matters. Both render into one short inline tag:
|
|
49
|
-
`(idea)`, `(idea by user)`, `(by coach)`. Omit them for a plain note. The host skill
|
|
50
|
-
names the vocabulary; the script does not.
|
|
51
|
-
|
|
52
|
-
Commands:
|
|
53
|
-
init --workspace DIR [--field k=v ...] create the memlog (errors if it exists)
|
|
54
|
-
append --workspace DIR --text STR [--type T] [--by W] append one entry at the end
|
|
55
|
-
set --workspace DIR --key K --value V set/replace a frontmatter field
|
|
56
|
-
|
|
57
|
-
The workspace is the run folder; the memlog is always {workspace}/.memlog.md.
|
|
58
|
-
"""
|
|
59
|
-
import argparse
|
|
60
|
-
import json
|
|
61
|
-
import os
|
|
62
|
-
import sys
|
|
63
|
-
from datetime import datetime
|
|
64
|
-
from pathlib import Path
|
|
65
|
-
|
|
66
|
-
MEMLOG = ".memlog.md"
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def now() -> str:
|
|
70
|
-
return datetime.now().strftime("%Y-%m-%dT%H:%M")
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
def memlog_path(workspace: str) -> Path:
|
|
74
|
-
return Path(workspace) / MEMLOG
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
def split(text: str) -> tuple[dict, str]:
|
|
78
|
-
"""Return (frontmatter dict in source order, body str). Frontmatter is plain key: value.
|
|
79
|
-
|
|
80
|
-
The closing fence is the first line that is *exactly* `---`, so a `---` inside a
|
|
81
|
-
field value (topic/goal are free user text) never truncates the frontmatter.
|
|
82
|
-
"""
|
|
83
|
-
lines = text.splitlines()
|
|
84
|
-
if not lines or lines[0] != "---":
|
|
85
|
-
raise ValueError(".memlog.md has no frontmatter")
|
|
86
|
-
end = next((i for i in range(1, len(lines)) if lines[i] == "---"), None)
|
|
87
|
-
if end is None:
|
|
88
|
-
raise ValueError(".memlog.md frontmatter is not terminated")
|
|
89
|
-
meta: dict[str, str] = {}
|
|
90
|
-
for line in lines[1:end]:
|
|
91
|
-
if ":" in line:
|
|
92
|
-
k, v = line.split(":", 1)
|
|
93
|
-
meta[k.strip()] = v.strip()
|
|
94
|
-
return meta, "\n".join(lines[end + 1:]).lstrip("\n")
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
def render(meta: dict, body: str) -> str:
|
|
98
|
-
# Neutralize newlines in values so a multi-line field can't break the fence on re-read.
|
|
99
|
-
fm = "\n".join(f"{k}: {' '.join(str(v).splitlines())}" for k, v in meta.items())
|
|
100
|
-
return "---\n" + fm + "\n---\n\n" + body.rstrip("\n") + "\n"
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
def touch(meta: dict) -> None:
|
|
104
|
-
"""Stamp `updated` and keep it last so the field order stays predictable."""
|
|
105
|
-
meta.pop("updated", None)
|
|
106
|
-
meta["updated"] = now()
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
def write_atomic(path: Path, text: str) -> None:
|
|
110
|
-
tmp = path.with_suffix(path.suffix + ".tmp")
|
|
111
|
-
tmp.write_text(text, encoding="utf-8")
|
|
112
|
-
os.replace(tmp, path)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
def entry_count(body: str) -> int:
|
|
116
|
-
return sum(1 for ln in body.splitlines() if ln.startswith("- "))
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
def ack(path: Path, meta: dict, body: str) -> None:
|
|
120
|
-
"""Echo new state so the caller never re-reads the file to know where it stands."""
|
|
121
|
-
print(json.dumps({
|
|
122
|
-
"ok": True,
|
|
123
|
-
"memlog": str(path),
|
|
124
|
-
"status": meta.get("status", ""),
|
|
125
|
-
"entries": entry_count(body),
|
|
126
|
-
}))
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def cmd_init(args) -> int:
|
|
130
|
-
path = memlog_path(args.workspace)
|
|
131
|
-
if path.exists():
|
|
132
|
-
print(f"error: {path} already exists; use append/set to update it", file=sys.stderr)
|
|
133
|
-
return 2
|
|
134
|
-
path.parent.mkdir(parents=True, exist_ok=True)
|
|
135
|
-
meta: dict[str, str] = {}
|
|
136
|
-
for pair in args.field or []:
|
|
137
|
-
if "=" not in pair:
|
|
138
|
-
print(f"error: --field expects key=value, got {pair!r}", file=sys.stderr)
|
|
139
|
-
return 2
|
|
140
|
-
k, v = pair.split("=", 1)
|
|
141
|
-
meta[k.strip()] = v.strip()
|
|
142
|
-
meta.setdefault("status", "active")
|
|
143
|
-
touch(meta)
|
|
144
|
-
write_atomic(path, render(meta, ""))
|
|
145
|
-
ack(path, meta, "")
|
|
146
|
-
return 0
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
def cmd_append(args) -> int:
|
|
150
|
-
path = memlog_path(args.workspace)
|
|
151
|
-
meta, body = split(path.read_text(encoding="utf-8"))
|
|
152
|
-
text = " ".join(args.text.split()) # collapse newlines/runs → one-line entry, no prose bloat
|
|
153
|
-
label = args.type or ""
|
|
154
|
-
if args.by:
|
|
155
|
-
label = f"{label} by {args.by}".strip() # attribution: "(idea by user)" / "(by coach)"
|
|
156
|
-
tag = f"({label}) " if label else ""
|
|
157
|
-
entry = f"- {tag}{text}"
|
|
158
|
-
body = (body.rstrip("\n") + "\n" + entry) if body.strip() else entry # always at the end
|
|
159
|
-
touch(meta)
|
|
160
|
-
write_atomic(path, render(meta, body))
|
|
161
|
-
ack(path, meta, body)
|
|
162
|
-
return 0
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
def cmd_set(args) -> int:
|
|
166
|
-
path = memlog_path(args.workspace)
|
|
167
|
-
meta, body = split(path.read_text(encoding="utf-8"))
|
|
168
|
-
meta[args.key] = args.value
|
|
169
|
-
touch(meta)
|
|
170
|
-
write_atomic(path, render(meta, body))
|
|
171
|
-
ack(path, meta, body)
|
|
172
|
-
return 0
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
def main(argv: list[str] | None = None) -> int:
|
|
176
|
-
p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
177
|
-
sub = p.add_subparsers(dest="cmd", required=True)
|
|
178
|
-
|
|
179
|
-
pi = sub.add_parser("init", help="create the memlog")
|
|
180
|
-
pi.add_argument("--workspace", required=True)
|
|
181
|
-
pi.add_argument("--field", action="append", metavar="KEY=VALUE", help="frontmatter field (repeatable)")
|
|
182
|
-
pi.set_defaults(func=cmd_init)
|
|
183
|
-
|
|
184
|
-
pa = sub.add_parser("append", help="append one entry at the end")
|
|
185
|
-
pa.add_argument("--workspace", required=True)
|
|
186
|
-
pa.add_argument("--text", required=True)
|
|
187
|
-
pa.add_argument("--type", help="entry kind, rendered as an inline tag")
|
|
188
|
-
pa.add_argument("--by", help="who the entry came from (e.g. user, coach); rendered into the tag")
|
|
189
|
-
pa.set_defaults(func=cmd_append)
|
|
190
|
-
|
|
191
|
-
pset = sub.add_parser("set", help="set a frontmatter field")
|
|
192
|
-
pset.add_argument("--workspace", required=True)
|
|
193
|
-
pset.add_argument("--key", required=True)
|
|
194
|
-
pset.add_argument("--value", required=True)
|
|
195
|
-
pset.set_defaults(func=cmd_set)
|
|
196
|
-
|
|
197
|
-
args = p.parse_args(argv)
|
|
198
|
-
return args.func(args)
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if __name__ == "__main__":
|
|
202
|
-
sys.exit(main())
|