bmad-method 6.0.0-alpha.4 → 6.0.0-alpha.6
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/agents/bmad-analysis/api-documenter.md +102 -0
- package/.claude/agents/bmad-analysis/codebase-analyzer.md +82 -0
- package/.claude/agents/bmad-analysis/data-analyst.md +101 -0
- package/.claude/agents/bmad-analysis/pattern-detector.md +84 -0
- package/.claude/agents/bmad-planning/dependency-mapper.md +83 -0
- package/.claude/agents/bmad-planning/epic-optimizer.md +81 -0
- package/.claude/agents/bmad-planning/requirements-analyst.md +61 -0
- package/.claude/agents/bmad-planning/technical-decisions-curator.md +168 -0
- package/.claude/agents/bmad-planning/trend-spotter.md +115 -0
- package/.claude/agents/bmad-planning/user-journey-mapper.md +123 -0
- package/.claude/agents/bmad-planning/user-researcher.md +72 -0
- package/.claude/agents/bmad-research/market-researcher.md +51 -0
- package/.claude/agents/bmad-research/tech-debt-auditor.md +106 -0
- package/.claude/agents/bmad-review/document-reviewer.md +102 -0
- package/.claude/agents/bmad-review/technical-evaluator.md +68 -0
- package/.claude/agents/bmad-review/test-coverage-analyzer.md +108 -0
- package/.claude/commands/bmad/bmm/agents/architect.md +0 -1
- package/.claude/commands/bmad/bmm/agents/sm.md +1 -1
- package/.claude/commands/bmad/bmm/agents/{paige.md → tech-writer.md} +3 -3
- package/.claude/commands/bmad/bmm/workflows/README.md +3 -3
- package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +15 -0
- package/.claude/commands/bmad/bmm/workflows/prd.md +1 -1
- package/.claude/commands/bmad/bmm/workflows/tech-spec.md +3 -3
- package/.claude/settings.local.json +3 -8
- package/CHANGELOG.md +305 -0
- package/CONTRIBUTING.md +1 -13
- package/README.md +88 -39
- package/bmad/_cfg/agent-manifest.csv +1 -6
- package/bmad/_cfg/files-manifest.csv +40 -114
- package/bmad/_cfg/ides/claude-code.yaml +4 -3
- package/bmad/_cfg/manifest.yaml +3 -4
- package/bmad/_cfg/task-manifest.csv +0 -1
- package/bmad/_cfg/workflow-manifest.csv +3 -7
- package/bmad/bmb/config.yaml +2 -2
- package/bmad/bmb/workflows/audit-workflow/instructions.md +1 -1
- package/bmad/bmm/README.md +79 -120
- package/bmad/bmm/agents/architect.md +0 -1
- package/bmad/bmm/agents/sm.md +1 -1
- package/bmad/bmm/agents/{paige.md → tech-writer.md} +3 -3
- package/bmad/bmm/config.yaml +4 -3
- package/bmad/bmm/tasks/daily-standup.xml +1 -1
- package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -19
- package/bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +10 -9
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +23 -34
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +105 -331
- package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +23 -11
- package/bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +23 -38
- package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +1 -1
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +38 -16
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +1 -19
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +35 -32
- package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +2 -2
- package/bmad/bmm/workflows/3-solutioning/architecture/instructions.md +7 -18
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +1 -18
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +6 -6
- package/bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +1 -1
- package/bmad/bmm/workflows/techdoc/documentation-standards.md +26 -2
- package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +2 -2
- package/bmad/bmm/workflows/workflow-status/init/instructions.md +623 -242
- package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
- package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
- package/bmad/bmm/workflows/workflow-status/paths/{brownfield-level-3.yaml → method-brownfield.yaml} +33 -31
- package/{src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml → bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml} +31 -21
- package/bmad/bmm/workflows/workflow-status/paths/{brownfield-level-1.yaml → quick-flow-brownfield.yaml} +18 -18
- package/bmad/bmm/workflows/workflow-status/paths/{greenfield-level-1.yaml → quick-flow-greenfield.yaml} +16 -18
- package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +4 -4
- package/bmad/core/config.yaml +2 -2
- package/bmad/core/tasks/workflow.xml +1 -11
- package/package.json +1 -1
- package/src/core/tasks/workflow.xml +1 -11
- package/src/modules/bmb/workflows/audit-workflow/instructions.md +1 -1
- package/src/modules/bmm/README.md +1 -1
- package/src/modules/bmm/_module-installer/install-config.yaml +5 -0
- package/src/modules/bmm/agents/architect.agent.yaml +0 -4
- package/src/modules/bmm/agents/game-dev.agent.yaml +8 -12
- package/src/modules/bmm/agents/sm.agent.yaml +1 -1
- package/src/modules/bmm/agents/{paige.agent.yaml → tech-writer.agent.yaml} +4 -4
- package/src/modules/bmm/docs/README.md +19 -18
- package/src/modules/bmm/docs/agents-guide.md +47 -99
- package/src/modules/bmm/docs/brownfield-guide.md +216 -96
- package/src/modules/bmm/docs/enterprise-agentic-development.md +380 -740
- package/src/modules/bmm/docs/faq.md +16 -16
- package/src/modules/bmm/docs/glossary.md +44 -50
- package/src/modules/bmm/docs/party-mode.md +110 -1122
- package/src/modules/bmm/docs/quick-spec-flow.md +36 -36
- package/src/modules/bmm/docs/quick-start.md +34 -34
- package/src/modules/bmm/docs/scale-adaptive-system.md +304 -454
- package/{bmad/bmm/testarch/README.md → src/modules/bmm/docs/test-architecture.md} +56 -38
- package/src/modules/bmm/docs/troubleshooting.md +7 -7
- package/src/modules/bmm/docs/workflows-analysis.md +64 -28
- package/src/modules/bmm/docs/workflows-implementation.md +196 -1671
- package/src/modules/bmm/docs/workflows-planning.md +74 -35
- package/src/modules/bmm/docs/workflows-solutioning.md +47 -17
- package/src/modules/bmm/tasks/daily-standup.xml +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -19
- package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +10 -9
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +23 -34
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +105 -331
- package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +23 -11
- package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +23 -38
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +38 -16
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +1 -19
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +35 -32
- package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +7 -18
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +1 -18
- package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +6 -6
- package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +1 -1
- package/src/modules/bmm/workflows/techdoc/documentation-standards.md +25 -2
- package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +2 -2
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +623 -242
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
- package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
- package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-3.yaml → method-brownfield.yaml} +33 -31
- package/{bmad/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml → src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml} +31 -21
- package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-1.yaml → quick-flow-brownfield.yaml} +18 -18
- package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-1.yaml → quick-flow-greenfield.yaml} +16 -18
- package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +4 -4
- package/tools/cli/installers/lib/core/config-collector.js +39 -11
- package/tools/cli/installers/lib/core/ide-config-manager.js +3 -1
- package/tools/cli/installers/lib/core/installer.js +20 -9
- package/tools/cli/installers/lib/core/manifest-generator.js +3 -1
- package/tools/cli/installers/lib/core/manifest.js +6 -2
- package/tools/cli/installers/lib/modules/manager.js +6 -0
- package/tools/cli/lib/config.js +3 -1
- package/tools/cli/lib/ui.js +5 -5
- package/tools/cli/lib/yaml-format.js +2 -1
- package/tools/schema/agent.js +2 -0
- package/.claude/commands/bmad/bmm/workflows/tech-spec-sm.md +0 -15
- package/bmad/_cfg/agents/cis-brainstorming-coach.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-creative-problem-solver.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-design-thinking-coach.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-innovation-strategist.customize.yaml +0 -42
- package/bmad/_cfg/agents/cis-storyteller.customize.yaml +0 -42
- package/bmad/bmb/agents/bmad-builder.md.bak +0 -70
- package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +0 -23
- package/bmad/bmb/workflows/create-module/workflow.yaml.bak +0 -42
- package/bmad/bmb/workflows/create-workflow/workflow-template/workflow.yaml.bak +0 -39
- package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +0 -40
- package/bmad/bmb/workflows/edit-agent/workflow.yaml.bak +0 -33
- package/bmad/bmb/workflows/edit-module/workflow.yaml.bak +0 -34
- package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +0 -27
- package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +0 -29
- package/bmad/bmb/workflows/redoc/workflow.yaml.bak +0 -32
- package/bmad/bmm/docs/brownfield-guide.md +0 -1260
- package/bmad/bmm/docs/quick-spec-flow.md +0 -645
- package/bmad/bmm/docs/quick-start.md +0 -341
- package/bmad/bmm/docs/scale-adaptive-system.md +0 -1045
- package/bmad/bmm/tasks/retrospective.xml +0 -104
- package/bmad/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -113
- package/bmad/bmm/workflows/1-analysis/product-brief/README.md +0 -180
- package/bmad/bmm/workflows/1-analysis/research/README.md +0 -454
- package/bmad/bmm/workflows/2-plan-workflows/README.md +0 -258
- package/bmad/bmm/workflows/3-solutioning/README.md +0 -1
- package/bmad/bmm/workflows/3-solutioning/architecture/README.md +0 -318
- package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
- package/bmad/bmm/workflows/4-implementation/README.md +0 -221
- package/bmad/bmm/workflows/4-implementation/code-review/README.md +0 -69
- package/bmad/bmm/workflows/4-implementation/correct-course/README.md +0 -73
- package/bmad/bmm/workflows/4-implementation/create-story/README.md +0 -146
- package/bmad/bmm/workflows/4-implementation/dev-story/README.md +0 -206
- package/bmad/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
- package/bmad/bmm/workflows/4-implementation/retrospective/README.md +0 -77
- package/bmad/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
- package/bmad/bmm/workflows/4-implementation/story-context/README.md +0 -234
- package/bmad/bmm/workflows/README.md +0 -256
- package/bmad/bmm/workflows/document-project/README.md +0 -444
- package/bmad/bmm/workflows/document-project/templates/README.md +0 -38
- package/bmad/bmm/workflows/testarch/README.md +0 -26
- package/bmad/bmm/workflows/testarch/atdd/README.md +0 -672
- package/bmad/bmm/workflows/testarch/automate/README.md +0 -869
- package/bmad/bmm/workflows/testarch/ci/README.md +0 -493
- package/bmad/bmm/workflows/testarch/framework/README.md +0 -340
- package/bmad/bmm/workflows/testarch/nfr-assess/README.md +0 -469
- package/bmad/bmm/workflows/testarch/test-design/README.md +0 -493
- package/bmad/bmm/workflows/testarch/test-review/README.md +0 -775
- package/bmad/bmm/workflows/testarch/trace/README.md +0 -802
- package/bmad/bmm/workflows/workflow-status/README.md +0 -260
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
- package/bmad/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
- package/bmad/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
- package/bmad/cis/README.md +0 -153
- package/bmad/cis/agents/README.md +0 -104
- package/bmad/cis/agents/brainstorming-coach.md +0 -62
- package/bmad/cis/agents/creative-problem-solver.md +0 -62
- package/bmad/cis/agents/design-thinking-coach.md +0 -62
- package/bmad/cis/agents/innovation-strategist.md +0 -62
- package/bmad/cis/agents/storyteller.md +0 -59
- package/bmad/cis/config.yaml +0 -10
- package/bmad/cis/teams/creative-squad.yaml +0 -6
- package/bmad/cis/workflows/README.md +0 -139
- package/bmad/cis/workflows/design-thinking/README.md +0 -56
- package/bmad/cis/workflows/design-thinking/design-methods.csv +0 -31
- package/bmad/cis/workflows/design-thinking/instructions.md +0 -200
- package/bmad/cis/workflows/design-thinking/template.md +0 -111
- package/bmad/cis/workflows/design-thinking/workflow.yaml +0 -32
- package/bmad/cis/workflows/innovation-strategy/README.md +0 -56
- package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +0 -31
- package/bmad/cis/workflows/innovation-strategy/instructions.md +0 -274
- package/bmad/cis/workflows/innovation-strategy/template.md +0 -189
- package/bmad/cis/workflows/innovation-strategy/workflow.yaml +0 -32
- package/bmad/cis/workflows/problem-solving/README.md +0 -56
- package/bmad/cis/workflows/problem-solving/instructions.md +0 -250
- package/bmad/cis/workflows/problem-solving/solving-methods.csv +0 -31
- package/bmad/cis/workflows/problem-solving/template.md +0 -165
- package/bmad/cis/workflows/problem-solving/workflow.yaml +0 -32
- package/bmad/cis/workflows/storytelling/README.md +0 -58
- package/bmad/cis/workflows/storytelling/instructions.md +0 -291
- package/bmad/cis/workflows/storytelling/story-types.csv +0 -26
- package/bmad/cis/workflows/storytelling/template.md +0 -113
- package/bmad/cis/workflows/storytelling/workflow.yaml +0 -32
- package/bmad/core/agents/bmad-master.md.bak +0 -69
- package/src/modules/bmm/docs/brownfield-guide.md.backup +0 -1324
- package/src/modules/bmm/docs/workflows-testing.md +0 -1572
- package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-0.yaml +0 -54
- package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
- package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-4.yaml +0 -88
- package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-0.yaml +0 -45
- package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-3.yaml +0 -73
- package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
- /package/bmad/_cfg/agents/{bmm-paige.customize.yaml → bmm-tech-writer.customize.yaml} +0 -0
|
@@ -7,24 +7,7 @@
|
|
|
7
7
|
<critical>Generate all documents in {document_output_language}</critical>
|
|
8
8
|
<critical>LIVING DOCUMENT: Write to PRD.md continuously as you discover - never wait until the end</critical>
|
|
9
9
|
<critical>GUIDING PRINCIPLE: Find and weave the product's magic throughout - what makes it special should inspire every section</critical>
|
|
10
|
-
|
|
11
|
-
## 📚 Input Document Discovery
|
|
12
|
-
|
|
13
|
-
This workflow requires: product brief, and may reference market research or brownfield project documentation.
|
|
14
|
-
|
|
15
|
-
**Discovery Process** (execute for each referenced document):
|
|
16
|
-
|
|
17
|
-
1. **Search for whole document first** - Use fuzzy file matching to find the complete document
|
|
18
|
-
2. **Check for sharded version** - If whole document not found, look for `{doc-name}/index.md`
|
|
19
|
-
3. **If sharded version found**:
|
|
20
|
-
- Read `index.md` to understand the document structure
|
|
21
|
-
- Read ALL section files listed in the index
|
|
22
|
-
- Treat the combined content as if it were a single document
|
|
23
|
-
4. **Brownfield projects**: The `document-project` workflow always creates `{output_folder}/docs/index.md`
|
|
24
|
-
|
|
25
|
-
**Priority**: If both whole and sharded versions exist, use the whole document.
|
|
26
|
-
|
|
27
|
-
**Fuzzy matching**: Be flexible with document names - users may use variations in naming conventions.
|
|
10
|
+
<critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
|
28
11
|
|
|
29
12
|
<workflow>
|
|
30
13
|
|
|
@@ -37,14 +20,14 @@ This workflow requires: product brief, and may reference market research or brow
|
|
|
37
20
|
<action>Load the FULL file: {status_file}</action>
|
|
38
21
|
<action>Parse workflow_status section</action>
|
|
39
22
|
<action>Check status of "prd" workflow</action>
|
|
40
|
-
<action>Get
|
|
23
|
+
<action>Get project_track from YAML metadata</action>
|
|
41
24
|
<action>Find first non-completed workflow (next expected workflow)</action>
|
|
42
25
|
|
|
43
|
-
<check if="
|
|
44
|
-
<output>**
|
|
26
|
+
<check if="project_track is Quick Flow">
|
|
27
|
+
<output>**Quick Flow Track - Redirecting**
|
|
45
28
|
|
|
46
|
-
|
|
47
|
-
PRD is for
|
|
29
|
+
Quick Flow projects use tech-spec workflow for implementation-focused planning.
|
|
30
|
+
PRD is for BMad Method and Enterprise Method tracks that need comprehensive requirements.</output>
|
|
48
31
|
<action>Exit and suggest tech-spec workflow</action>
|
|
49
32
|
</check>
|
|
50
33
|
|
|
@@ -132,6 +115,7 @@ Weave in the magic:
|
|
|
132
115
|
<check if="business focus">
|
|
133
116
|
<template-output>business_metrics</template-output>
|
|
134
117
|
</check>
|
|
118
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
135
119
|
</step>
|
|
136
120
|
|
|
137
121
|
<step n="3" goal="Scope Definition">
|
|
@@ -156,6 +140,7 @@ For complex domains:
|
|
|
156
140
|
<template-output>mvp_scope</template-output>
|
|
157
141
|
<template-output>growth_features</template-output>
|
|
158
142
|
<template-output>vision_features</template-output>
|
|
143
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
159
144
|
</step>
|
|
160
145
|
|
|
161
146
|
<step n="4" goal="Domain-Specific Exploration" optional="true">
|
|
@@ -256,8 +241,8 @@ Always relate back to the product magic:
|
|
|
256
241
|
</check>
|
|
257
242
|
</step>
|
|
258
243
|
|
|
259
|
-
<step n="7" goal="UX Principles"
|
|
260
|
-
<action>Only if product has a UI
|
|
244
|
+
<step n="7" goal="UX Principles" if="project has UI or UX">
|
|
245
|
+
<action>Only if product has a UI
|
|
261
246
|
|
|
262
247
|
Light touch on UX - not full design:
|
|
263
248
|
|
|
@@ -271,10 +256,10 @@ Light touch on UX - not full design:
|
|
|
271
256
|
Connect to the magic:
|
|
272
257
|
"The UI should reinforce [the special moment] through [design approach]"</action>
|
|
273
258
|
|
|
274
|
-
<check if="has UI">
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
</check>
|
|
259
|
+
<check if="has UI">
|
|
260
|
+
<template-output>ux_principles</template-output>
|
|
261
|
+
<template-output>key_interactions</template-output>
|
|
262
|
+
</check>
|
|
278
263
|
</step>
|
|
279
264
|
|
|
280
265
|
<step n="8" goal="Functional Requirements Synthesis">
|
|
@@ -304,6 +289,7 @@ The magic thread:
|
|
|
304
289
|
Highlight which requirements deliver the special experience</action>
|
|
305
290
|
|
|
306
291
|
<template-output>functional_requirements_complete</template-output>
|
|
292
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
307
293
|
</step>
|
|
308
294
|
|
|
309
295
|
<step n="9" goal="Non-Functional Requirements Discovery">
|
|
@@ -339,9 +325,6 @@ Skip categories that don't apply!</action>
|
|
|
339
325
|
<check if="integration matters">
|
|
340
326
|
<template-output>integration_requirements</template-output>
|
|
341
327
|
</check>
|
|
342
|
-
<check if="no NFRs discussed">
|
|
343
|
-
<template-output>no_nfrs</template-output>
|
|
344
|
-
</check>
|
|
345
328
|
</step>
|
|
346
329
|
|
|
347
330
|
<step n="10" goal="Review PRD and transition to epics">
|
|
@@ -355,9 +338,13 @@ Skip categories that don't apply!</action>
|
|
|
355
338
|
- Requirements: [count] functional, [count] non-functional
|
|
356
339
|
- Special considerations: [domain/innovation]
|
|
357
340
|
|
|
358
|
-
Does this capture your product vision?"
|
|
341
|
+
Does this capture your product vision?"</action>
|
|
342
|
+
|
|
343
|
+
<template-output>prd_summary</template-output>
|
|
344
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
345
|
+
|
|
346
|
+
<action>After PRD review and refinement complete:
|
|
359
347
|
|
|
360
|
-
After confirmation:
|
|
361
348
|
"Excellent! Now we need to break these requirements into implementable epics and stories.
|
|
362
349
|
|
|
363
350
|
For the epic breakdown, you have two options:
|
|
@@ -379,12 +366,10 @@ This keeps each session focused and manageable."
|
|
|
379
366
|
If continue:
|
|
380
367
|
"Let's continue with epic breakdown here..."
|
|
381
368
|
[Proceed with epics-stories subworkflow]
|
|
382
|
-
Set
|
|
369
|
+
Set project_track based on workflow status (BMad Method or Enterprise Method)
|
|
383
370
|
Generate epic_details for the epics breakdown document</action>
|
|
384
371
|
|
|
385
|
-
<template-output>
|
|
386
|
-
<template-output>project_level</template-output>
|
|
387
|
-
<template-output>target_scale</template-output>
|
|
372
|
+
<template-output>project_track</template-output>
|
|
388
373
|
<template-output>epic_details</template-output>
|
|
389
374
|
</step>
|
|
390
375
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Product Requirements Document (PRD) Workflow
|
|
2
2
|
name: prd
|
|
3
|
-
description: "Unified PRD workflow for
|
|
3
|
+
description: "Unified PRD workflow for BMad Method and Enterprise Method tracks. Produces strategic PRD and tactical epic breakdown. Hands off to architecture workflow for technical design. Note: Quick Flow track uses tech-spec workflow."
|
|
4
4
|
author: "BMad"
|
|
5
5
|
|
|
6
6
|
# Critical variables from config
|
|
@@ -47,7 +47,7 @@ standalone: true
|
|
|
47
47
|
|
|
48
48
|
web_bundle:
|
|
49
49
|
name: "prd"
|
|
50
|
-
description: "Unified PRD workflow for
|
|
50
|
+
description: "Unified PRD workflow for BMad Method and Enterprise Method tracks. Produces strategic PRD and tactical epic breakdown. Hands off to architecture workflow for technical design. Note: Quick Flow track uses tech-spec workflow."
|
|
51
51
|
author: "BMad"
|
|
52
52
|
instructions: "bmad/bmm/workflows/2-plan-workflows/prd/instructions.md"
|
|
53
53
|
validation: "bmad/bmm/workflows/2-plan-workflows/prd/checklist.md"
|
|
@@ -5,51 +5,73 @@
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
<!-- Repeat for each epic (N = 1, 2, 3...) -->
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Epic {{N}}: {{epic_title_N}}
|
|
11
|
+
|
|
12
|
+
**Slug:** {{epic_slug_N}}
|
|
11
13
|
|
|
12
14
|
### Goal
|
|
13
15
|
|
|
14
|
-
{{
|
|
16
|
+
{{epic_goal_N}}
|
|
15
17
|
|
|
16
18
|
### Scope
|
|
17
19
|
|
|
18
|
-
{{
|
|
20
|
+
{{epic_scope_N}}
|
|
19
21
|
|
|
20
22
|
### Success Criteria
|
|
21
23
|
|
|
22
|
-
{{
|
|
24
|
+
{{epic_success_criteria_N}}
|
|
23
25
|
|
|
24
26
|
### Dependencies
|
|
25
27
|
|
|
26
|
-
{{
|
|
28
|
+
{{epic_dependencies_N}}
|
|
27
29
|
|
|
28
30
|
---
|
|
29
31
|
|
|
30
|
-
## Story Map
|
|
32
|
+
## Story Map - Epic {{N}}
|
|
31
33
|
|
|
32
|
-
{{
|
|
34
|
+
{{story_map_N}}
|
|
33
35
|
|
|
34
36
|
---
|
|
35
37
|
|
|
36
|
-
##
|
|
38
|
+
## Stories - Epic {{N}}
|
|
37
39
|
|
|
38
|
-
|
|
40
|
+
<!-- Repeat for each story (M = 1, 2, 3...) within epic N -->
|
|
39
41
|
|
|
40
|
-
|
|
42
|
+
### Story {{N}}.{{M}}: {{story_title_N_M}}
|
|
43
|
+
|
|
44
|
+
As a {{user_type}},
|
|
45
|
+
I want {{capability}},
|
|
46
|
+
So that {{value_benefit}}.
|
|
47
|
+
|
|
48
|
+
**Acceptance Criteria:**
|
|
49
|
+
|
|
50
|
+
**Given** {{precondition}}
|
|
51
|
+
**When** {{action}}
|
|
52
|
+
**Then** {{expected_outcome}}
|
|
53
|
+
|
|
54
|
+
**And** {{additional_criteria}}
|
|
41
55
|
|
|
42
|
-
|
|
56
|
+
**Prerequisites:** {{dependencies_on_previous_stories}}
|
|
43
57
|
|
|
44
|
-
**
|
|
58
|
+
**Technical Notes:** {{implementation_guidance}}
|
|
45
59
|
|
|
46
|
-
**Estimated
|
|
60
|
+
**Estimated Effort:** {{story_points}} points ({{time_estimate}})
|
|
61
|
+
|
|
62
|
+
<!-- End story repeat -->
|
|
47
63
|
|
|
48
64
|
---
|
|
49
65
|
|
|
50
|
-
## Implementation
|
|
66
|
+
## Implementation Timeline - Epic {{N}}
|
|
67
|
+
|
|
68
|
+
**Total Story Points:** {{total_points_N}}
|
|
69
|
+
|
|
70
|
+
**Estimated Timeline:** {{estimated_timeline_N}}
|
|
71
|
+
|
|
72
|
+
---
|
|
51
73
|
|
|
52
|
-
|
|
74
|
+
<!-- End epic repeat -->
|
|
53
75
|
|
|
54
76
|
---
|
|
55
77
|
|
|
@@ -10,26 +10,8 @@
|
|
|
10
10
|
<critical>Level 0: tech-spec + single user story | Level 1: tech-spec + epic/stories</critical>
|
|
11
11
|
<critical>LIVING DOCUMENT: Write to tech-spec.md continuously as you discover - never wait until the end</critical>
|
|
12
12
|
<critical>CONTEXT IS KING: Gather ALL available context before generating specs</critical>
|
|
13
|
-
|
|
14
13
|
<critical>DOCUMENT OUTPUT: Technical, precise, definitive. Specific versions only. User skill level ({user_skill_level}) affects conversation style ONLY, not document content.</critical>
|
|
15
|
-
|
|
16
|
-
## 📚 Input Document Discovery
|
|
17
|
-
|
|
18
|
-
This workflow intelligently discovers and loads all available context including: product brief, research documents, brownfield project documentation, and project setup files.
|
|
19
|
-
|
|
20
|
-
**Discovery Process** (execute for each referenced document):
|
|
21
|
-
|
|
22
|
-
1. **Search for whole document first** - Use fuzzy file matching to find the complete document
|
|
23
|
-
2. **Check for sharded version** - If whole document not found, look for `{doc-name}/index.md`
|
|
24
|
-
3. **If sharded version found**:
|
|
25
|
-
- Read `index.md` to understand the document structure
|
|
26
|
-
- Read ALL section files listed in the index
|
|
27
|
-
- Treat the combined content as if it were a single document
|
|
28
|
-
4. **Brownfield projects**: The `document-project` workflow always creates `{output_folder}/docs/index.md`
|
|
29
|
-
|
|
30
|
-
**Priority**: If both whole and sharded versions exist, use the whole document.
|
|
31
|
-
|
|
32
|
-
**Fuzzy matching**: Be flexible with document names - users may use variations in naming conventions.
|
|
14
|
+
<critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
|
33
15
|
|
|
34
16
|
<step n="0" goal="Validate workflow readiness and detect project level" tag="workflow-status">
|
|
35
17
|
<action>Check if {output_folder}/bmm-workflow-status.yaml exists</action>
|
|
@@ -1,65 +1,68 @@
|
|
|
1
|
-
# Story: {{story_title}}
|
|
1
|
+
# Story {{N}}.{{M}}: {{story_title}}
|
|
2
2
|
|
|
3
|
-
Status
|
|
3
|
+
**Status:** Draft
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
I want {{capability}},
|
|
9
|
-
so that {{benefit}}.
|
|
7
|
+
## User Story
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
As a {{user_type}},
|
|
10
|
+
I want {{capability}},
|
|
11
|
+
So that {{value_benefit}}.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
---
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## Acceptance Criteria
|
|
16
16
|
|
|
17
|
-
{{
|
|
17
|
+
**Given** {{precondition}}
|
|
18
|
+
**When** {{action}}
|
|
19
|
+
**Then** {{expected_outcome}}
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
**And** {{additional_criteria}}
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
---
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
## Implementation Details
|
|
24
26
|
|
|
25
|
-
###
|
|
27
|
+
### Tasks / Subtasks
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
{{tasks_subtasks}}
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
### Technical Summary
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
- Framework and library details with versions
|
|
33
|
-
- Existing patterns to follow
|
|
34
|
-
- Integration points and dependencies
|
|
35
|
-
- Complete implementation guidance
|
|
33
|
+
{{technical_summary}}
|
|
36
34
|
|
|
37
35
|
### Project Structure Notes
|
|
38
36
|
|
|
39
37
|
- **Files to modify:** {{files_to_modify}}
|
|
40
38
|
- **Expected test locations:** {{test_locations}}
|
|
41
39
|
- **Estimated effort:** {{story_points}} story points ({{time_estimate}})
|
|
42
|
-
- **
|
|
40
|
+
- **Prerequisites:** {{dependencies}}
|
|
43
41
|
|
|
44
42
|
### Key Code References
|
|
45
43
|
|
|
46
44
|
{{existing_code_references}}
|
|
47
45
|
|
|
48
|
-
### References
|
|
49
|
-
|
|
50
|
-
- **Tech Spec:** [tech-spec.md](../tech-spec.md) - Primary context document
|
|
51
|
-
- **Architecture:** {{architecture_references}}
|
|
52
|
-
|
|
53
46
|
---
|
|
54
47
|
|
|
55
|
-
##
|
|
48
|
+
## Context References
|
|
56
49
|
|
|
57
|
-
|
|
50
|
+
**Tech-Spec:** [tech-spec.md](../tech-spec.md) - Primary context document containing:
|
|
58
51
|
|
|
59
|
-
|
|
52
|
+
- Brownfield codebase analysis (if applicable)
|
|
53
|
+
- Framework and library details with versions
|
|
54
|
+
- Existing patterns to follow
|
|
55
|
+
- Integration points and dependencies
|
|
56
|
+
- Complete implementation guidance
|
|
57
|
+
|
|
58
|
+
**Architecture:** {{architecture_references}}
|
|
60
59
|
|
|
61
60
|
<!-- Additional context XML paths will be added here if story-context workflow is run -->
|
|
62
61
|
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Dev Agent Record
|
|
65
|
+
|
|
63
66
|
### Agent Model Used
|
|
64
67
|
|
|
65
68
|
<!-- Will be populated during dev-story execution -->
|
|
@@ -68,11 +71,11 @@ The tech-spec contains comprehensive context including:
|
|
|
68
71
|
|
|
69
72
|
<!-- Will be populated during dev-story execution -->
|
|
70
73
|
|
|
71
|
-
### Completion Notes
|
|
74
|
+
### Completion Notes
|
|
72
75
|
|
|
73
76
|
<!-- Will be populated during dev-story execution -->
|
|
74
77
|
|
|
75
|
-
###
|
|
78
|
+
### Files Modified
|
|
76
79
|
|
|
77
80
|
<!-- Will be populated during dev-story execution -->
|
|
78
81
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Technical Specification
|
|
2
|
-
name: tech-spec
|
|
1
|
+
# Technical Specification
|
|
2
|
+
name: tech-spec
|
|
3
3
|
description: "Technical specification workflow for Level 0 projects (single atomic changes). Creates focused tech spec for bug fixes, single endpoint additions, or small isolated changes. Tech-spec only - no PRD needed."
|
|
4
4
|
author: "BMad"
|
|
5
5
|
|
|
@@ -9,24 +9,8 @@
|
|
|
9
9
|
<critical>Communicate all responses in {communication_language} and tailor to {user_skill_level}</critical>
|
|
10
10
|
<critical>Generate all documents in {document_output_language}</critical>
|
|
11
11
|
<critical>This workflow replaces architecture with a conversation-driven approach</critical>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
This workflow requires: PRD and epics/stories, and may reference UX design specifications or brownfield project documentation.
|
|
16
|
-
|
|
17
|
-
**Discovery Process** (execute for each referenced document):
|
|
18
|
-
|
|
19
|
-
1. **Search for whole document first** - Use fuzzy file matching to find the complete document
|
|
20
|
-
2. **Check for sharded version** - If whole document not found, look for `{doc-name}/index.md`
|
|
21
|
-
3. **If sharded version found**:
|
|
22
|
-
- Read `index.md` to understand the document structure
|
|
23
|
-
- Read ALL section files listed in the index
|
|
24
|
-
- Treat the combined content as if it were a single document
|
|
25
|
-
4. **Brownfield projects**: The `document-project` workflow always creates `{output_folder}/docs/index.md`
|
|
26
|
-
|
|
27
|
-
**Priority**: If both whole and sharded versions exist, use the whole document.
|
|
28
|
-
|
|
29
|
-
**Fuzzy matching**: Be flexible with document names - users may use variations in naming conventions.
|
|
12
|
+
<critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
|
13
|
+
<critical>ELICITATION POINTS: After completing each major architectural decision area (identified by template-output tags for decision_record, project_structure, novel_pattern_designs, implementation_patterns, and architecture_document), invoke advanced elicitation to refine decisions before proceeding</critical>
|
|
30
14
|
|
|
31
15
|
<step n="0" goal="Validate workflow readiness" tag="workflow-status">
|
|
32
16
|
<action>Check if {output_folder}/bmm-workflow-status.yaml exists</action>
|
|
@@ -379,6 +363,7 @@ Provided by Starter: {{yes_if_from_starter}}
|
|
|
379
363
|
</action>
|
|
380
364
|
|
|
381
365
|
<template-output>decision_record</template-output>
|
|
366
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
382
367
|
</step>
|
|
383
368
|
|
|
384
369
|
<step n="5" goal="Address cross-cutting concerns">
|
|
@@ -408,6 +393,7 @@ Provided by Starter: {{yes_if_from_starter}}
|
|
|
408
393
|
</action>
|
|
409
394
|
|
|
410
395
|
<template-output>project_structure</template-output>
|
|
396
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
411
397
|
</step>
|
|
412
398
|
|
|
413
399
|
<step n="7" goal="Design novel architectural patterns" optional="true">
|
|
@@ -481,6 +467,7 @@ Provided by Starter: {{yes_if_from_starter}}
|
|
|
481
467
|
</check>
|
|
482
468
|
|
|
483
469
|
<template-output>novel_pattern_designs</template-output>
|
|
470
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
484
471
|
</step>
|
|
485
472
|
|
|
486
473
|
<step n="8" goal="Define implementation patterns to prevent agent conflicts">
|
|
@@ -573,6 +560,7 @@ Enforcement: "All agents MUST follow this pattern"
|
|
|
573
560
|
</action>
|
|
574
561
|
|
|
575
562
|
<template-output>implementation_patterns</template-output>
|
|
563
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
576
564
|
</step>
|
|
577
565
|
|
|
578
566
|
<step n="9" goal="Validate architectural coherence">
|
|
@@ -626,6 +614,7 @@ Enforcement: "All agents MUST follow this pattern"
|
|
|
626
614
|
</action>
|
|
627
615
|
|
|
628
616
|
<template-output>architecture_document</template-output>
|
|
617
|
+
<invoke-task halt="true">{project-root}/bmad/core/tasks/adv-elicit.xml</invoke-task>
|
|
629
618
|
</step>
|
|
630
619
|
|
|
631
620
|
<step n="11" goal="Validate document completeness">
|
|
@@ -3,24 +3,7 @@
|
|
|
3
3
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
|
4
4
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml</critical>
|
|
5
5
|
<critical>Communicate all findings and analysis in {communication_language} throughout the assessment</critical>
|
|
6
|
-
|
|
7
|
-
## 📚 Input Document Discovery
|
|
8
|
-
|
|
9
|
-
This workflow validates: PRD, epics/stories, architecture, and may reference UX design, tech specs, or brownfield project documentation.
|
|
10
|
-
|
|
11
|
-
**Discovery Process** (execute for each referenced document):
|
|
12
|
-
|
|
13
|
-
1. **Search for whole document first** - Use fuzzy file matching to find the complete document
|
|
14
|
-
2. **Check for sharded version** - If whole document not found, look for `{doc-name}/index.md`
|
|
15
|
-
3. **If sharded version found**:
|
|
16
|
-
- Read `index.md` to understand the document structure
|
|
17
|
-
- Read ALL section files listed in the index
|
|
18
|
-
- Treat the combined content as if it were a single document
|
|
19
|
-
4. **Brownfield projects**: The `document-project` workflow always creates `{output_folder}/docs/index.md`
|
|
20
|
-
|
|
21
|
-
**Priority**: If both whole and sharded versions exist, use the whole document.
|
|
22
|
-
|
|
23
|
-
**Fuzzy matching**: Be flexible with document names - users may use variations in naming conventions.
|
|
6
|
+
<critical>Input documents specified in workflow.yaml input_file_patterns - workflow engine handles fuzzy matching, whole vs sharded document discovery automatically</critical>
|
|
24
7
|
|
|
25
8
|
<workflow>
|
|
26
9
|
|
|
@@ -24,13 +24,13 @@ validation: "{installed_path}/checklist.md"
|
|
|
24
24
|
# Output configuration
|
|
25
25
|
default_output_file: "{output_folder}/implementation-readiness-report-{{date}}.md"
|
|
26
26
|
|
|
27
|
-
#
|
|
27
|
+
# Input requirements
|
|
28
28
|
recommended_inputs:
|
|
29
|
-
- prd: "
|
|
30
|
-
- architecture: "
|
|
31
|
-
- tech_spec: "
|
|
32
|
-
-
|
|
33
|
-
-
|
|
29
|
+
- prd: "Product Requirements Document with FRs and NFRs"
|
|
30
|
+
- architecture: "System Architecture with decisions and patterns"
|
|
31
|
+
- tech_spec: "Technical Specification (for Quick Flow track)"
|
|
32
|
+
- epics: "Epic breakdown with user stories"
|
|
33
|
+
- ux_design: "UX design specification (if UI components)"
|
|
34
34
|
|
|
35
35
|
# Smart input file references - handles both whole docs and sharded docs
|
|
36
36
|
# Priority: Whole document first, then sharded version
|
|
@@ -1,14 +1,36 @@
|
|
|
1
1
|
# Technical Documentation Standards for BMAD
|
|
2
2
|
|
|
3
|
-
**For Agent:
|
|
3
|
+
**For Agent: Technical Writer**
|
|
4
4
|
**Purpose: Concise reference for documentation creation and review**
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
## CRITICAL
|
|
8
|
+
## CRITICAL RULES
|
|
9
|
+
|
|
10
|
+
### Rule 1: CommonMark Strict Compliance
|
|
9
11
|
|
|
10
12
|
ALL documentation MUST follow CommonMark specification exactly. No exceptions.
|
|
11
13
|
|
|
14
|
+
### Rule 2: NO TIME ESTIMATES
|
|
15
|
+
|
|
16
|
+
NEVER document time estimates, durations, or completion times for any workflow, task, or activity. This includes:
|
|
17
|
+
|
|
18
|
+
- Workflow execution time (e.g., "30-60 min", "2-8 hours")
|
|
19
|
+
- Task duration estimates
|
|
20
|
+
- Reading time estimates
|
|
21
|
+
- Implementation time ranges
|
|
22
|
+
- Any temporal measurements
|
|
23
|
+
|
|
24
|
+
Time varies dramatically based on:
|
|
25
|
+
|
|
26
|
+
- Project complexity
|
|
27
|
+
- Team experience
|
|
28
|
+
- Tooling and environment
|
|
29
|
+
- Context switching
|
|
30
|
+
- Unforeseen blockers
|
|
31
|
+
|
|
32
|
+
**Instead:** Focus on workflow steps, dependencies, and outputs. Let users determine their own timelines.
|
|
33
|
+
|
|
12
34
|
### CommonMark Essentials
|
|
13
35
|
|
|
14
36
|
**Headers:**
|
|
@@ -194,6 +216,7 @@ Apply in this hierarchy:
|
|
|
194
216
|
Before finalizing ANY documentation:
|
|
195
217
|
|
|
196
218
|
- [ ] CommonMark compliant (no violations)
|
|
219
|
+
- [ ] NO time estimates anywhere (Critical Rule 2)
|
|
197
220
|
- [ ] Headers in proper hierarchy
|
|
198
221
|
- [ ] All code blocks have language tags
|
|
199
222
|
- [ ] Links work and have descriptive text
|
|
@@ -355,8 +355,8 @@ See `tea-index.csv` for complete knowledge fragment mapping.
|
|
|
355
355
|
|
|
356
356
|
- Ask in team standup
|
|
357
357
|
- Tag @{tea_agent_username} in Slack/Discord
|
|
358
|
-
- Refer to
|
|
359
|
-
- Consult
|
|
358
|
+
- Refer to `./bmm/docs/tea-README.md` for workflow documentation
|
|
359
|
+
- Consult `./bmm/testarch/knowledge` for testing best practices
|
|
360
360
|
|
|
361
361
|
---
|
|
362
362
|
|