bmad-method 6.2.1-next.16 → 6.2.1-next.18
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/package.json +1 -1
- package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/SKILL.md +2 -3
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/SKILL.md +1 -1
- package/src/bmm-skills/1-analysis/research/bmad-market-research/SKILL.md +1 -1
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/SKILL.md +1 -1
- package/src/bmm-skills/module-help.csv +1 -1
- package/tools/cli/installers/lib/core/manifest-generator.js +45 -21
- package/tools/cli/installers/lib/ide/_config-driven.js +1 -1
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/SKILL.md +0 -6
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/product-brief.template.md +0 -10
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/steps/step-01-init.md +0 -170
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md +0 -158
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/steps/step-02-vision.md +0 -193
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/steps/step-03-users.md +0 -196
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md +0 -199
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/steps/step-05-scope.md +0 -213
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/steps/step-06-complete.md +0 -159
- package/src/bmm-skills/1-analysis/bmad-create-product-brief/workflow.md +0 -55
- package/src/bmm-skills/1-analysis/bmad-product-brief-preview/bmad-skill-manifest.yaml +0 -1
- package/src/bmm-skills/1-analysis/research/market-steps/step-01-init.md +0 -182
- package/src/bmm-skills/1-analysis/research/market-steps/step-02-customer-behavior.md +0 -237
- package/src/bmm-skills/1-analysis/research/market-steps/step-03-customer-pain-points.md +0 -249
- package/src/bmm-skills/1-analysis/research/market-steps/step-04-customer-decisions.md +0 -259
- package/src/bmm-skills/1-analysis/research/market-steps/step-05-competitive-analysis.md +0 -177
- package/src/bmm-skills/1-analysis/research/market-steps/step-06-research-completion.md +0 -476
- package/src/bmm-skills/1-analysis/research/research.template.md +0 -29
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/agents/artifact-analyzer.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/agents/opportunity-reviewer.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/agents/skeptic-reviewer.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/agents/web-researcher.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/bmad-manifest.json +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-create-product-brief → bmad-product-brief}/bmad-skill-manifest.yaml +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/prompts/contextual-discovery.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/prompts/draft-and-review.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/prompts/finalize.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/prompts/guided-elicitation.md +0 -0
- /package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/resources/brief-template.md +0 -0
package/package.json
CHANGED
package/src/bmm-skills/1-analysis/{bmad-product-brief-preview → bmad-product-brief}/SKILL.md
RENAMED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: bmad-product-brief
|
|
3
|
-
description: Create or update product briefs through guided or autonomous discovery. Use when the user requests to
|
|
4
|
-
argument-hint: "[optional --create, --edit, --optimize, --distillate, --inputs, --headless] [brief idea]"
|
|
2
|
+
name: bmad-product-brief
|
|
3
|
+
description: Create or update product briefs through guided or autonomous discovery. Use when the user requests to create or update a Product Brief.
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# Create Product Brief
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bmad-domain-research
|
|
3
|
-
description: 'Conduct domain and industry research. Use when the user says
|
|
3
|
+
description: 'Conduct domain and industry research. Use when the user says wants to do domain research for a topic or industry'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Follow the instructions in ./workflow.md.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bmad-market-research
|
|
3
|
-
description: 'Conduct market research on competition and customers. Use when the user says
|
|
3
|
+
description: 'Conduct market research on competition and customers. Use when the user says they need market research'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Follow the instructions in ./workflow.md.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bmad-technical-research
|
|
3
|
-
description: 'Conduct technical research on technologies and architecture. Use when the user says
|
|
3
|
+
description: 'Conduct technical research on technologies and architecture. Use when the user says they would like to do or produce a technical research report'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Follow the instructions in ./workflow.md.
|
|
@@ -12,7 +12,7 @@ bmm,1-analysis,Brainstorm Project,BP,10,skill:bmad-brainstorming,bmad-brainstorm
|
|
|
12
12
|
bmm,1-analysis,Market Research,MR,20,skill:bmad-market-research,bmad-bmm-market-research,false,analyst,Create Mode,"Market analysis competitive landscape customer needs and trends","planning_artifacts|project-knowledge","research documents",
|
|
13
13
|
bmm,1-analysis,Domain Research,DR,21,skill:bmad-domain-research,bmad-bmm-domain-research,false,analyst,Create Mode,"Industry domain deep dive subject matter expertise and terminology","planning_artifacts|project_knowledge","research documents",
|
|
14
14
|
bmm,1-analysis,Technical Research,TR,22,skill:bmad-technical-research,bmad-bmm-technical-research,false,analyst,Create Mode,"Technical feasibility architecture options and implementation approaches","planning_artifacts|project_knowledge","research documents",
|
|
15
|
-
bmm,1-analysis,Create Brief,CB,30,skill:bmad-
|
|
15
|
+
bmm,1-analysis,Create Brief,CB,30,skill:bmad-product-brief,bmad-bmm-product-brief,false,analyst,Create Mode,"A guided experience to nail down your product idea",planning_artifacts,"product brief",
|
|
16
16
|
bmm,2-planning,Create PRD,CP,10,skill:bmad-create-prd,bmad-bmm-create-prd,true,pm,Create Mode,"Expert led facilitation to produce your Product Requirements Document",planning_artifacts,prd,
|
|
17
17
|
bmm,2-planning,Validate PRD,VP,20,skill:bmad-validate-prd,bmad-bmm-validate-prd,false,pm,Validate Mode,"Validate PRD is comprehensive lean well organized and cohesive",planning_artifacts,"prd validation report",
|
|
18
18
|
bmm,2-planning,Edit PRD,EP,25,skill:bmad-edit-prd,bmad-bmm-edit-prd,false,pm,Edit Mode,"Improve and enhance an existing PRD",planning_artifacts,"updated prd",
|
|
@@ -50,6 +50,29 @@ class ManifestGenerator {
|
|
|
50
50
|
return getInstallToBmadShared(manifest, filename);
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
/**
|
|
54
|
+
* Native SKILL.md entrypoints can be packaged as either skills or agents.
|
|
55
|
+
* Both need verbatim installation for skill-format IDEs.
|
|
56
|
+
* @param {string|null} artifactType - Manifest type resolved for SKILL.md
|
|
57
|
+
* @returns {boolean} True when the directory should be installed verbatim
|
|
58
|
+
*/
|
|
59
|
+
isNativeSkillDirType(artifactType) {
|
|
60
|
+
return artifactType === 'skill' || artifactType === 'agent';
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Check whether a loaded bmad-skill-manifest.yaml declares a native
|
|
65
|
+
* SKILL.md entrypoint, either as a single-entry manifest or a multi-entry map.
|
|
66
|
+
* @param {Object|null} manifest - Loaded manifest
|
|
67
|
+
* @returns {boolean} True when the manifest contains a native skill/agent entrypoint
|
|
68
|
+
*/
|
|
69
|
+
hasNativeSkillManifest(manifest) {
|
|
70
|
+
if (!manifest) return false;
|
|
71
|
+
if (manifest.__single) return this.isNativeSkillDirType(manifest.__single.type);
|
|
72
|
+
|
|
73
|
+
return Object.values(manifest).some((entry) => this.isNativeSkillDirType(entry?.type));
|
|
74
|
+
}
|
|
75
|
+
|
|
53
76
|
/**
|
|
54
77
|
* Clean text for CSV output by normalizing whitespace.
|
|
55
78
|
* Note: Quote escaping is handled by escapeCsv() at write time.
|
|
@@ -146,9 +169,10 @@ class ManifestGenerator {
|
|
|
146
169
|
}
|
|
147
170
|
|
|
148
171
|
/**
|
|
149
|
-
* Recursively walk a module directory tree, collecting
|
|
150
|
-
* A
|
|
151
|
-
* type: skill AND a SKILL.md file
|
|
172
|
+
* Recursively walk a module directory tree, collecting native SKILL.md entrypoints.
|
|
173
|
+
* A native entrypoint directory is one that contains both a
|
|
174
|
+
* bmad-skill-manifest.yaml with type: skill or type: agent AND a SKILL.md file
|
|
175
|
+
* with name/description frontmatter.
|
|
152
176
|
* Populates this.skills[] and this.skillClaimedDirs (Set of absolute paths).
|
|
153
177
|
*/
|
|
154
178
|
async collectSkills() {
|
|
@@ -172,11 +196,11 @@ class ManifestGenerator {
|
|
|
172
196
|
// Check this directory for skill manifest
|
|
173
197
|
const manifest = await this.loadSkillManifest(dir);
|
|
174
198
|
|
|
175
|
-
// Determine if this directory is a
|
|
199
|
+
// Determine if this directory is a native SKILL.md entrypoint
|
|
176
200
|
const skillFile = 'SKILL.md';
|
|
177
201
|
const artifactType = this.getArtifactType(manifest, skillFile);
|
|
178
202
|
|
|
179
|
-
if (artifactType
|
|
203
|
+
if (this.isNativeSkillDirType(artifactType)) {
|
|
180
204
|
const skillMdPath = path.join(dir, 'SKILL.md');
|
|
181
205
|
const dirName = path.basename(dir);
|
|
182
206
|
|
|
@@ -190,11 +214,12 @@ class ManifestGenerator {
|
|
|
190
214
|
? `${this.bmadFolderName}/${moduleName}/${relativePath}/${skillFile}`
|
|
191
215
|
: `${this.bmadFolderName}/${moduleName}/${skillFile}`;
|
|
192
216
|
|
|
193
|
-
//
|
|
194
|
-
//
|
|
217
|
+
// Native SKILL.md entrypoints derive canonicalId from directory name.
|
|
218
|
+
// Agent entrypoints may keep canonicalId metadata for compatibility, so
|
|
219
|
+
// only warn for non-agent SKILL.md directories.
|
|
195
220
|
if (manifest && manifest.__single && manifest.__single.canonicalId && artifactType !== 'agent') {
|
|
196
221
|
console.warn(
|
|
197
|
-
`Warning:
|
|
222
|
+
`Warning: Native entrypoint manifest at ${dir}/bmad-skill-manifest.yaml contains canonicalId — this field is ignored for SKILL.md directories (directory name is the canonical ID)`,
|
|
198
223
|
);
|
|
199
224
|
}
|
|
200
225
|
const canonicalId = dirName;
|
|
@@ -224,21 +249,21 @@ class ManifestGenerator {
|
|
|
224
249
|
}
|
|
225
250
|
}
|
|
226
251
|
|
|
227
|
-
// Warn if manifest says
|
|
252
|
+
// Warn if manifest says this is a native entrypoint but the directory was not claimed
|
|
228
253
|
if (manifest && !this.skillClaimedDirs.has(dir)) {
|
|
229
|
-
let
|
|
254
|
+
let hasNativeSkillType = false;
|
|
230
255
|
if (manifest.__single) {
|
|
231
|
-
|
|
256
|
+
hasNativeSkillType = this.isNativeSkillDirType(manifest.__single.type);
|
|
232
257
|
} else {
|
|
233
258
|
for (const key of Object.keys(manifest)) {
|
|
234
|
-
if (manifest[key]?.type
|
|
235
|
-
|
|
259
|
+
if (this.isNativeSkillDirType(manifest[key]?.type)) {
|
|
260
|
+
hasNativeSkillType = true;
|
|
236
261
|
break;
|
|
237
262
|
}
|
|
238
263
|
}
|
|
239
264
|
}
|
|
240
|
-
if (
|
|
241
|
-
console.log(`[DEBUG] collectSkills: dir has
|
|
265
|
+
if (hasNativeSkillType && debug) {
|
|
266
|
+
console.log(`[DEBUG] collectSkills: dir has native SKILL.md manifest but failed validation: ${dir}`);
|
|
242
267
|
}
|
|
243
268
|
}
|
|
244
269
|
|
|
@@ -1359,7 +1384,8 @@ class ManifestGenerator {
|
|
|
1359
1384
|
const hasTasks = await fs.pathExists(path.join(modulePath, 'tasks'));
|
|
1360
1385
|
const hasTools = await fs.pathExists(path.join(modulePath, 'tools'));
|
|
1361
1386
|
|
|
1362
|
-
// Check for
|
|
1387
|
+
// Check for native-entrypoint-only modules: recursive scan for
|
|
1388
|
+
// bmad-skill-manifest.yaml with type: skill or type: agent
|
|
1363
1389
|
let hasSkills = false;
|
|
1364
1390
|
if (!hasAgents && !hasWorkflows && !hasTasks && !hasTools) {
|
|
1365
1391
|
hasSkills = await this._hasSkillManifestRecursive(modulePath);
|
|
@@ -1378,7 +1404,8 @@ class ManifestGenerator {
|
|
|
1378
1404
|
}
|
|
1379
1405
|
|
|
1380
1406
|
/**
|
|
1381
|
-
* Recursively check if a directory tree contains a bmad-skill-manifest.yaml
|
|
1407
|
+
* Recursively check if a directory tree contains a bmad-skill-manifest.yaml that
|
|
1408
|
+
* declares a native SKILL.md entrypoint (type: skill or type: agent).
|
|
1382
1409
|
* Skips directories starting with . or _.
|
|
1383
1410
|
* @param {string} dir - Directory to search
|
|
1384
1411
|
* @returns {boolean} True if a skill manifest is found
|
|
@@ -1393,10 +1420,7 @@ class ManifestGenerator {
|
|
|
1393
1420
|
|
|
1394
1421
|
// Check for manifest in this directory
|
|
1395
1422
|
const manifest = await this.loadSkillManifest(dir);
|
|
1396
|
-
if (manifest)
|
|
1397
|
-
const type = this.getArtifactType(manifest, 'workflow.md');
|
|
1398
|
-
if (type === 'skill') return true;
|
|
1399
|
-
}
|
|
1423
|
+
if (this.hasNativeSkillManifest(manifest)) return true;
|
|
1400
1424
|
|
|
1401
1425
|
// Recurse into subdirectories
|
|
1402
1426
|
for (const entry of entries) {
|
|
@@ -630,7 +630,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
|
|
|
630
630
|
}
|
|
631
631
|
|
|
632
632
|
/**
|
|
633
|
-
* Install verbatim
|
|
633
|
+
* Install verbatim native SKILL.md directories from skill-manifest.csv.
|
|
634
634
|
* Copies the entire source directory as-is into the IDE skill directory.
|
|
635
635
|
* The source SKILL.md is used directly — no frontmatter transformation or file generation.
|
|
636
636
|
* @param {string} projectDir - Project directory
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# File References
|
|
3
|
-
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Step 1: Product Brief Initialization
|
|
7
|
-
|
|
8
|
-
## STEP GOAL:
|
|
9
|
-
|
|
10
|
-
Initialize the product brief workflow by detecting continuation state and setting up the document structure for collaborative product discovery.
|
|
11
|
-
|
|
12
|
-
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
13
|
-
|
|
14
|
-
### Universal Rules:
|
|
15
|
-
|
|
16
|
-
- 🛑 NEVER generate content without user input
|
|
17
|
-
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
18
|
-
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
|
19
|
-
- 📋 YOU ARE A FACILITATOR, not a content generator
|
|
20
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
21
|
-
|
|
22
|
-
### Role Reinforcement:
|
|
23
|
-
|
|
24
|
-
- ✅ You are a product-focused Business Analyst facilitator
|
|
25
|
-
- ✅ If you already have been given a name, communication_style and persona, continue to use those while playing this new role
|
|
26
|
-
- ✅ We engage in collaborative dialogue, not command-response
|
|
27
|
-
- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision
|
|
28
|
-
- ✅ Maintain collaborative discovery tone throughout
|
|
29
|
-
|
|
30
|
-
### Step-Specific Rules:
|
|
31
|
-
|
|
32
|
-
- 🎯 Focus only on initialization and setup - no content generation yet
|
|
33
|
-
- 🚫 FORBIDDEN to look ahead to future steps or assume knowledge from them
|
|
34
|
-
- 💬 Approach: Systematic setup with clear reporting to user
|
|
35
|
-
- 📋 Detect existing workflow state and handle continuation properly
|
|
36
|
-
|
|
37
|
-
## EXECUTION PROTOCOLS:
|
|
38
|
-
|
|
39
|
-
- 🎯 Show your analysis of current state before taking any action
|
|
40
|
-
- 💾 Initialize document structure and update frontmatter appropriately
|
|
41
|
-
- 📖 Set up frontmatter `stepsCompleted: [1]` before loading next step
|
|
42
|
-
- 🚫 FORBIDDEN to load next step until user selects 'C' (Continue)
|
|
43
|
-
|
|
44
|
-
## CONTEXT BOUNDARIES:
|
|
45
|
-
|
|
46
|
-
- Available context: Variables from workflow.md are available in memory
|
|
47
|
-
- Focus: Workflow initialization and document setup only
|
|
48
|
-
- Limits: Don't assume knowledge from other steps or create content yet
|
|
49
|
-
- Dependencies: Configuration loaded from workflow.md initialization
|
|
50
|
-
|
|
51
|
-
## Sequence of Instructions (Do not deviate, skip, or optimize)
|
|
52
|
-
|
|
53
|
-
### 1. Check for Existing Workflow State
|
|
54
|
-
|
|
55
|
-
First, check if the output document already exists:
|
|
56
|
-
|
|
57
|
-
**Workflow State Detection:**
|
|
58
|
-
|
|
59
|
-
- Look for file `{outputFile}`
|
|
60
|
-
- If exists, read the complete file including frontmatter
|
|
61
|
-
- If not exists, this is a fresh workflow
|
|
62
|
-
|
|
63
|
-
### 2. Handle Continuation (If Document Exists)
|
|
64
|
-
|
|
65
|
-
If the document exists and has frontmatter with `stepsCompleted`:
|
|
66
|
-
|
|
67
|
-
**Continuation Protocol:**
|
|
68
|
-
|
|
69
|
-
- **STOP immediately** and load `./step-01b-continue.md`
|
|
70
|
-
- Do not proceed with any initialization tasks
|
|
71
|
-
- Let step-01b handle all continuation logic
|
|
72
|
-
- This is an auto-proceed situation - no user choice needed
|
|
73
|
-
|
|
74
|
-
### 3. Fresh Workflow Setup (If No Document)
|
|
75
|
-
|
|
76
|
-
If no document exists or no `stepsCompleted` in frontmatter:
|
|
77
|
-
|
|
78
|
-
#### A. Input Document Discovery
|
|
79
|
-
|
|
80
|
-
load context documents using smart discovery. Documents can be in the following locations:
|
|
81
|
-
- {planning_artifacts}/**
|
|
82
|
-
- {output_folder}/**
|
|
83
|
-
- {product_knowledge}/**
|
|
84
|
-
- {project-root}/docs/**
|
|
85
|
-
|
|
86
|
-
Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For Example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content)
|
|
87
|
-
|
|
88
|
-
Try to discover the following:
|
|
89
|
-
- Brainstorming Reports (`*brainstorming*.md`)
|
|
90
|
-
- Research Documents (`*research*.md`)
|
|
91
|
-
- Project Documentation (generally multiple documents might be found for this in the `{product_knowledge}` or `docs` folder.)
|
|
92
|
-
- Project Context (`**/project-context.md`)
|
|
93
|
-
|
|
94
|
-
<critical>Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules</critical>
|
|
95
|
-
|
|
96
|
-
**Loading Rules:**
|
|
97
|
-
|
|
98
|
-
- Load ALL discovered files completely that the user confirmed or provided (no offset/limit)
|
|
99
|
-
- If there is a project context, whatever is relevant should try to be biased in the remainder of this whole workflow process
|
|
100
|
-
- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document
|
|
101
|
-
- index.md is a guide to what's relevant whenever available
|
|
102
|
-
- Track all successfully loaded files in frontmatter `inputDocuments` array
|
|
103
|
-
|
|
104
|
-
#### B. Create Initial Document
|
|
105
|
-
|
|
106
|
-
**Document Setup:**
|
|
107
|
-
|
|
108
|
-
- Copy the template from `../product-brief.template.md` to `{outputFile}`, and update the frontmatter fields
|
|
109
|
-
|
|
110
|
-
#### C. Present Initialization Results
|
|
111
|
-
|
|
112
|
-
**Setup Report to User:**
|
|
113
|
-
"Welcome {{user_name}}! I've set up your product brief workspace for {{project_name}}.
|
|
114
|
-
|
|
115
|
-
**Document Setup:**
|
|
116
|
-
|
|
117
|
-
- Created: `{outputFile}` from template
|
|
118
|
-
- Initialized frontmatter with workflow state
|
|
119
|
-
|
|
120
|
-
**Input Documents Discovered:**
|
|
121
|
-
|
|
122
|
-
- Research: {number of research files loaded or "None found"}
|
|
123
|
-
- Brainstorming: {number of brainstorming files loaded or "None found"}
|
|
124
|
-
- Project docs: {number of project files loaded or "None found"}
|
|
125
|
-
- Project Context: {number of project context files loaded or "None found"}
|
|
126
|
-
|
|
127
|
-
**Files loaded:** {list of specific file names or "No additional documents found"}
|
|
128
|
-
|
|
129
|
-
Do you have any other documents you'd like me to include, or shall we continue to the next step?"
|
|
130
|
-
|
|
131
|
-
### 4. Present MENU OPTIONS
|
|
132
|
-
|
|
133
|
-
Display: "**Proceeding to product vision discovery...**"
|
|
134
|
-
|
|
135
|
-
#### Menu Handling Logic:
|
|
136
|
-
|
|
137
|
-
- After setup report is presented, without delay, read fully and follow: ./step-02-vision.md
|
|
138
|
-
|
|
139
|
-
#### EXECUTION RULES:
|
|
140
|
-
|
|
141
|
-
- This is an initialization step with auto-proceed after setup completion
|
|
142
|
-
- Proceed directly to next step after document setup and reporting
|
|
143
|
-
|
|
144
|
-
## CRITICAL STEP COMPLETION NOTE
|
|
145
|
-
|
|
146
|
-
ONLY WHEN [setup completion is achieved and frontmatter properly updated], will you then read fully and follow: `./step-02-vision.md` to begin product vision discovery.
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
151
|
-
|
|
152
|
-
### ✅ SUCCESS:
|
|
153
|
-
|
|
154
|
-
- Existing workflow detected and properly handed off to step-01b
|
|
155
|
-
- Fresh workflow initialized with template and proper frontmatter
|
|
156
|
-
- Input documents discovered and loaded using sharded-first logic
|
|
157
|
-
- All discovered files tracked in frontmatter `inputDocuments`
|
|
158
|
-
- Menu presented and user input handled correctly
|
|
159
|
-
- Frontmatter updated with `stepsCompleted: [1]` before proceeding
|
|
160
|
-
|
|
161
|
-
### ❌ SYSTEM FAILURE:
|
|
162
|
-
|
|
163
|
-
- Proceeding with fresh initialization when existing workflow exists
|
|
164
|
-
- Not updating frontmatter with discovered input documents
|
|
165
|
-
- Creating document without proper template structure
|
|
166
|
-
- Not checking sharded folders first before whole files
|
|
167
|
-
- Not reporting discovered documents to user clearly
|
|
168
|
-
- Proceeding without user selecting 'C' (Continue)
|
|
169
|
-
|
|
170
|
-
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
# File References
|
|
3
|
-
outputFile: '{planning_artifacts}/product-brief-{{project_name}}-{{date}}.md'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Step 1B: Product Brief Continuation
|
|
7
|
-
|
|
8
|
-
## STEP GOAL:
|
|
9
|
-
|
|
10
|
-
Resume the product brief workflow from where it was left off, ensuring smooth continuation with full context restoration.
|
|
11
|
-
|
|
12
|
-
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
13
|
-
|
|
14
|
-
### Universal Rules:
|
|
15
|
-
|
|
16
|
-
- 🛑 NEVER generate content without user input
|
|
17
|
-
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
18
|
-
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
|
|
19
|
-
- 📋 YOU ARE A FACILITATOR, not a content generator
|
|
20
|
-
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
21
|
-
|
|
22
|
-
### Role Reinforcement:
|
|
23
|
-
|
|
24
|
-
- ✅ You are a product-focused Business Analyst facilitator
|
|
25
|
-
- ✅ If you already have been given a name, communication_style and persona, continue to use those while playing this new role
|
|
26
|
-
- ✅ We engage in collaborative dialogue, not command-response
|
|
27
|
-
- ✅ You bring structured thinking and facilitation skills, while the user brings domain expertise and product vision
|
|
28
|
-
- ✅ Maintain collaborative continuation tone throughout
|
|
29
|
-
|
|
30
|
-
### Step-Specific Rules:
|
|
31
|
-
|
|
32
|
-
- 🎯 Focus only on understanding where we left off and continuing appropriately
|
|
33
|
-
- 🚫 FORBIDDEN to modify content completed in previous steps
|
|
34
|
-
- 💬 Approach: Systematic state analysis with clear progress reporting
|
|
35
|
-
- 📋 Resume workflow from exact point where it was interrupted
|
|
36
|
-
|
|
37
|
-
## EXECUTION PROTOCOLS:
|
|
38
|
-
|
|
39
|
-
- 🎯 Show your analysis of current state before taking any action
|
|
40
|
-
- 💾 Keep existing frontmatter `stepsCompleted` values
|
|
41
|
-
- 📖 Only load documents that were already tracked in `inputDocuments`
|
|
42
|
-
- 🚫 FORBIDDEN to discover new input documents during continuation
|
|
43
|
-
|
|
44
|
-
## CONTEXT BOUNDARIES:
|
|
45
|
-
|
|
46
|
-
- Available context: Current document and frontmatter are already loaded
|
|
47
|
-
- Focus: Workflow state analysis and continuation logic only
|
|
48
|
-
- Limits: Don't assume knowledge beyond what's in the document
|
|
49
|
-
- Dependencies: Existing workflow state from previous session
|
|
50
|
-
|
|
51
|
-
## Sequence of Instructions (Do not deviate, skip, or optimize)
|
|
52
|
-
|
|
53
|
-
### 1. Analyze Current State
|
|
54
|
-
|
|
55
|
-
**State Assessment:**
|
|
56
|
-
Review the frontmatter to understand:
|
|
57
|
-
|
|
58
|
-
- `stepsCompleted`: Which steps are already done
|
|
59
|
-
- `lastStep`: The most recently completed step number
|
|
60
|
-
- `inputDocuments`: What context was already loaded
|
|
61
|
-
- All other frontmatter variables
|
|
62
|
-
|
|
63
|
-
### 2. Restore Context Documents
|
|
64
|
-
|
|
65
|
-
**Context Reloading:**
|
|
66
|
-
|
|
67
|
-
- For each document in `inputDocuments`, load the complete file
|
|
68
|
-
- This ensures you have full context for continuation
|
|
69
|
-
- Don't discover new documents - only reload what was previously processed
|
|
70
|
-
- Maintain the same context as when workflow was interrupted
|
|
71
|
-
|
|
72
|
-
### 3. Present Current Progress
|
|
73
|
-
|
|
74
|
-
**Progress Report to User:**
|
|
75
|
-
"Welcome back {{user_name}}! I'm resuming our product brief collaboration for {{project_name}}.
|
|
76
|
-
|
|
77
|
-
**Current Progress:**
|
|
78
|
-
|
|
79
|
-
- Steps completed: {stepsCompleted}
|
|
80
|
-
- Last worked on: Step {lastStep}
|
|
81
|
-
- Context documents available: {len(inputDocuments)} files
|
|
82
|
-
|
|
83
|
-
**Document Status:**
|
|
84
|
-
|
|
85
|
-
- Current product brief is ready with all completed sections
|
|
86
|
-
- Ready to continue from where we left off
|
|
87
|
-
|
|
88
|
-
Does this look right, or do you want to make any adjustments before we proceed?"
|
|
89
|
-
|
|
90
|
-
### 4. Determine Continuation Path
|
|
91
|
-
|
|
92
|
-
**Next Step Logic:**
|
|
93
|
-
Based on `lastStep` value, determine which step to load next:
|
|
94
|
-
|
|
95
|
-
- If `lastStep = 1` → Load `./step-02-vision.md`
|
|
96
|
-
- If `lastStep = 2` → Load `./step-03-users.md`
|
|
97
|
-
- If `lastStep = 3` → Load `./step-04-metrics.md`
|
|
98
|
-
- Continue this pattern for all steps
|
|
99
|
-
- If `lastStep = 6` → Workflow already complete
|
|
100
|
-
|
|
101
|
-
### 5. Handle Workflow Completion
|
|
102
|
-
|
|
103
|
-
**If workflow already complete (`lastStep = 6`):**
|
|
104
|
-
"Great news! It looks like we've already completed the product brief workflow for {{project_name}}.
|
|
105
|
-
|
|
106
|
-
The final document is ready at `{outputFile}` with all sections completed through step 6.
|
|
107
|
-
|
|
108
|
-
Would you like me to:
|
|
109
|
-
|
|
110
|
-
- Review the completed product brief with you
|
|
111
|
-
- Suggest next workflow steps (like PRD creation)
|
|
112
|
-
- Start a new product brief revision
|
|
113
|
-
|
|
114
|
-
What would be most helpful?"
|
|
115
|
-
|
|
116
|
-
### 6. Present MENU OPTIONS
|
|
117
|
-
|
|
118
|
-
**If workflow not complete:**
|
|
119
|
-
Display: "Ready to continue with Step {nextStepNumber}: {nextStepTitle}?
|
|
120
|
-
|
|
121
|
-
**Select an Option:** [C] Continue to Step {nextStepNumber}"
|
|
122
|
-
|
|
123
|
-
#### Menu Handling Logic:
|
|
124
|
-
|
|
125
|
-
- IF C: Read fully and follow the appropriate next step file based on `lastStep`
|
|
126
|
-
- IF Any other comments or queries: respond and redisplay menu
|
|
127
|
-
|
|
128
|
-
#### EXECUTION RULES:
|
|
129
|
-
|
|
130
|
-
- ALWAYS halt and wait for user input after presenting menu
|
|
131
|
-
- ONLY proceed to next step when user selects 'C'
|
|
132
|
-
- User can chat or ask questions about current progress
|
|
133
|
-
|
|
134
|
-
## CRITICAL STEP COMPLETION NOTE
|
|
135
|
-
|
|
136
|
-
ONLY WHEN [C continue option] is selected and [current state confirmed], will you then read fully and follow the appropriate next step file to resume the workflow.
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
141
|
-
|
|
142
|
-
### ✅ SUCCESS:
|
|
143
|
-
|
|
144
|
-
- All previous input documents successfully reloaded
|
|
145
|
-
- Current workflow state accurately analyzed and presented
|
|
146
|
-
- User confirms understanding of progress before continuation
|
|
147
|
-
- Correct next step identified and prepared for loading
|
|
148
|
-
- Proper continuation path determined based on `lastStep`
|
|
149
|
-
|
|
150
|
-
### ❌ SYSTEM FAILURE:
|
|
151
|
-
|
|
152
|
-
- Discovering new input documents instead of reloading existing ones
|
|
153
|
-
- Modifying content from already completed steps
|
|
154
|
-
- Loading wrong next step based on `lastStep` value
|
|
155
|
-
- Proceeding without user confirmation of current state
|
|
156
|
-
- Not maintaining context consistency from previous session
|
|
157
|
-
|
|
158
|
-
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|