bmad-enhanced 1.0.4-alpha → 1.1.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/README.md +186 -157
- package/_bmad/bme/_vortex/config.yaml +32 -0
- package/package.json +9 -6
- package/scripts/README.md +54 -22
- package/scripts/install-all-agents.js +48 -30
- package/scripts/install-emma.js +32 -19
- package/scripts/install-wade.js +33 -19
- package/_bmad/bme/_designos/agents/empathy-mapper.md +0 -97
- package/_bmad/bme/_designos/agents/wireframe-designer.md +0 -114
- package/_bmad/bme/_designos/config.yaml +0 -24
- package/_bmad/bme/_designos/workflows/empathy-map/empathy-map.template.md +0 -143
- package/_bmad/bme/_designos/workflows/empathy-map/steps/step-01-define-user.md +0 -60
- package/_bmad/bme/_designos/workflows/empathy-map/steps/step-02-says-thinks.md +0 -67
- package/_bmad/bme/_designos/workflows/empathy-map/steps/step-03-does-feels.md +0 -79
- package/_bmad/bme/_designos/workflows/empathy-map/steps/step-04-pain-points.md +0 -87
- package/_bmad/bme/_designos/workflows/empathy-map/steps/step-05-gains.md +0 -103
- package/_bmad/bme/_designos/workflows/empathy-map/steps/step-06-synthesize.md +0 -104
- package/_bmad/bme/_designos/workflows/empathy-map/validate.md +0 -117
- package/_bmad/bme/_designos/workflows/empathy-map/workflow.md +0 -44
- package/_bmad/bme/_designos/workflows/wireframe/steps/step-01-define-requirements.md +0 -85
- package/_bmad/bme/_designos/workflows/wireframe/steps/step-02-user-flows.md +0 -59
- package/_bmad/bme/_designos/workflows/wireframe/steps/step-03-information-architecture.md +0 -68
- package/_bmad/bme/_designos/workflows/wireframe/steps/step-04-wireframe-sketch.md +0 -97
- package/_bmad/bme/_designos/workflows/wireframe/steps/step-05-components.md +0 -128
- package/_bmad/bme/_designos/workflows/wireframe/steps/step-06-synthesize.md +0 -83
- package/_bmad/bme/_designos/workflows/wireframe/wireframe.template.md +0 -287
- package/_bmad/bme/_designos/workflows/wireframe/workflow.md +0 -44
package/scripts/README.md
CHANGED
|
@@ -8,9 +8,9 @@ This directory contains npm-based installation scripts for BMAD-Enhanced agents.
|
|
|
8
8
|
Installs Emma (empathy-mapper) agent into your project.
|
|
9
9
|
|
|
10
10
|
**What it does:**
|
|
11
|
-
- Creates `_bmad/bme/
|
|
11
|
+
- Creates `_bmad/bme/_vortex/` directory structure
|
|
12
12
|
- Copies Emma agent file (`empathy-mapper.md`)
|
|
13
|
-
- Copies
|
|
13
|
+
- Copies Emma workflow files (lean-persona, product-vision, contextualize-scope)
|
|
14
14
|
- Creates/updates `config.yaml`
|
|
15
15
|
- Updates `agent-manifest.csv`
|
|
16
16
|
- Creates output directory
|
|
@@ -26,9 +26,9 @@ npm run install:emma
|
|
|
26
26
|
Installs Wade (wireframe-designer) agent into your project.
|
|
27
27
|
|
|
28
28
|
**What it does:**
|
|
29
|
-
- Creates `_bmad/bme/
|
|
29
|
+
- Creates `_bmad/bme/_vortex/` directory structure
|
|
30
30
|
- Copies Wade agent file (`wireframe-designer.md`)
|
|
31
|
-
- Copies
|
|
31
|
+
- Copies Wade workflow files (mvp, lean-experiment, proof-of-concept, proof-of-value)
|
|
32
32
|
- Creates/updates `config.yaml`
|
|
33
33
|
- Updates `agent-manifest.csv`
|
|
34
34
|
- Creates output directory
|
|
@@ -97,26 +97,37 @@ Success! Agents ready to use
|
|
|
97
97
|
your-project/
|
|
98
98
|
├── _bmad/
|
|
99
99
|
│ ├── bme/
|
|
100
|
-
│ │ └──
|
|
100
|
+
│ │ └── _vortex/
|
|
101
101
|
│ │ ├── agents/
|
|
102
102
|
│ │ │ ├── empathy-mapper.md
|
|
103
103
|
│ │ │ └── wireframe-designer.md
|
|
104
104
|
│ │ ├── workflows/
|
|
105
|
-
│ │ │ ├──
|
|
105
|
+
│ │ │ ├── lean-persona/
|
|
106
106
|
│ │ │ │ ├── workflow.md
|
|
107
|
-
│ │ │ │
|
|
108
|
-
│ │ │
|
|
109
|
-
│ │ │ │
|
|
110
|
-
│ │ │ └──
|
|
107
|
+
│ │ │ │ └── validate.md
|
|
108
|
+
│ │ │ ├── product-vision/
|
|
109
|
+
│ │ │ │ ├── workflow.md
|
|
110
|
+
│ │ │ │ └── validate.md
|
|
111
|
+
│ │ │ ├── contextualize-scope/
|
|
112
|
+
│ │ │ │ ├── workflow.md
|
|
113
|
+
│ │ │ │ └── validate.md
|
|
114
|
+
│ │ │ ├── mvp/
|
|
115
|
+
│ │ │ │ ├── workflow.md
|
|
116
|
+
│ │ │ │ └── validate.md
|
|
117
|
+
│ │ │ ├── lean-experiment/
|
|
118
|
+
│ │ │ │ ├── workflow.md
|
|
119
|
+
│ │ │ │ └── validate.md
|
|
120
|
+
│ │ │ ├── proof-of-concept/
|
|
121
|
+
│ │ │ │ ├── workflow.md
|
|
122
|
+
│ │ │ │ └── validate.md
|
|
123
|
+
│ │ │ └── proof-of-value/
|
|
111
124
|
│ │ │ ├── workflow.md
|
|
112
|
-
│ │ │
|
|
113
|
-
│ │ │ └── steps/
|
|
114
|
-
│ │ │ └── step-01 through step-06.md
|
|
125
|
+
│ │ │ └── validate.md
|
|
115
126
|
│ │ └── config.yaml
|
|
116
127
|
│ └── _config/
|
|
117
128
|
│ └── agent-manifest.csv
|
|
118
129
|
└── _bmad-output/
|
|
119
|
-
└──
|
|
130
|
+
└── vortex-artifacts/
|
|
120
131
|
├── EMMA-USER-GUIDE.md
|
|
121
132
|
└── WADE-USER-GUIDE.md
|
|
122
133
|
```
|
|
@@ -127,17 +138,38 @@ your-project/
|
|
|
127
138
|
|
|
128
139
|
### config.yaml
|
|
129
140
|
```yaml
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
141
|
+
---
|
|
142
|
+
submodule_name: _vortex
|
|
143
|
+
description: Contextualize and Externalize streams - Strategic framing and validated learning
|
|
144
|
+
module: bme
|
|
145
|
+
version: 1.1.0
|
|
146
|
+
|
|
147
|
+
# Output Configuration
|
|
148
|
+
output_folder: "{project-root}/_bmad-output/vortex-artifacts"
|
|
149
|
+
user_name: "{user}"
|
|
150
|
+
communication_language: "en"
|
|
133
151
|
|
|
152
|
+
# Agents in this submodule
|
|
134
153
|
agents:
|
|
135
|
-
- empathy-mapper # Emma
|
|
136
|
-
- wireframe-designer # Wade
|
|
154
|
+
- empathy-mapper # Emma - Contextualization Expert
|
|
155
|
+
- wireframe-designer # Wade - Lean Experiments Specialist
|
|
137
156
|
|
|
157
|
+
# Workflows available
|
|
138
158
|
workflows:
|
|
139
|
-
|
|
140
|
-
-
|
|
159
|
+
# Emma - Contextualize Stream
|
|
160
|
+
- lean-persona # Create lean user personas
|
|
161
|
+
- product-vision # Define product vision
|
|
162
|
+
- contextualize-scope # Decide which problem space to investigate
|
|
163
|
+
|
|
164
|
+
# Wade - Externalize Stream
|
|
165
|
+
- mvp # Design Minimum Viable Product
|
|
166
|
+
- lean-experiment # Run Build-Measure-Learn cycle
|
|
167
|
+
- proof-of-concept # Validate technical feasibility
|
|
168
|
+
- proof-of-value # Validate business value
|
|
169
|
+
|
|
170
|
+
# Integration
|
|
171
|
+
party_mode_enabled: true
|
|
172
|
+
core_module: bme
|
|
141
173
|
```
|
|
142
174
|
|
|
143
175
|
You can customize these values after installation.
|
|
@@ -190,5 +222,5 @@ To add a new agent installer:
|
|
|
190
222
|
|
|
191
223
|
---
|
|
192
224
|
|
|
193
|
-
**Version:** 1.0
|
|
225
|
+
**Version:** 1.1.0
|
|
194
226
|
**Last Updated:** 2026-02-16
|
|
@@ -60,8 +60,8 @@ function checkPrerequisites() {
|
|
|
60
60
|
function copyAllAgentFiles() {
|
|
61
61
|
console.log(`${CYAN}[2/6]${RESET} Installing Emma + Wade agent files...`);
|
|
62
62
|
|
|
63
|
-
const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '
|
|
64
|
-
const targetDir = path.join(process.cwd(), '_bmad', 'bme', '
|
|
63
|
+
const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '_vortex');
|
|
64
|
+
const targetDir = path.join(process.cwd(), '_bmad', 'bme', '_vortex');
|
|
65
65
|
|
|
66
66
|
// Create target directory structure
|
|
67
67
|
fs.mkdirSync(path.join(targetDir, 'agents'), { recursive: true });
|
|
@@ -128,24 +128,42 @@ function copyAllAgentFiles() {
|
|
|
128
128
|
function updateConfig() {
|
|
129
129
|
console.log(`${CYAN}[3/6]${RESET} Configuring agents...`);
|
|
130
130
|
|
|
131
|
-
const configPath = path.join(process.cwd(), '_bmad', 'bme', '
|
|
131
|
+
const configPath = path.join(process.cwd(), '_bmad', 'bme', '_vortex', 'config.yaml');
|
|
132
132
|
const manifestPath = path.join(process.cwd(), '_bmad', '_config', 'agent-manifest.csv');
|
|
133
133
|
|
|
134
134
|
// Create config
|
|
135
|
-
const configContent =
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
135
|
+
const configContent = `---
|
|
136
|
+
submodule_name: _vortex
|
|
137
|
+
description: Contextualize and Externalize streams - Strategic framing and validated learning
|
|
138
|
+
module: bme
|
|
139
|
+
version: 1.1.0
|
|
140
|
+
|
|
141
|
+
# Output Configuration
|
|
142
|
+
output_folder: "{project-root}/_bmad-output/vortex-artifacts"
|
|
143
|
+
user_name: "{user}"
|
|
144
|
+
communication_language: "en"
|
|
145
|
+
|
|
146
|
+
# Agents in this submodule
|
|
142
147
|
agents:
|
|
143
|
-
- empathy-mapper # Emma -
|
|
144
|
-
- wireframe-designer # Wade -
|
|
148
|
+
- empathy-mapper # Emma - Contextualization Expert
|
|
149
|
+
- wireframe-designer # Wade - Lean Experiments Specialist
|
|
145
150
|
|
|
151
|
+
# Workflows available
|
|
146
152
|
workflows:
|
|
147
|
-
|
|
148
|
-
-
|
|
153
|
+
# Emma - Contextualize Stream
|
|
154
|
+
- lean-persona # Create lean user personas
|
|
155
|
+
- product-vision # Define product vision
|
|
156
|
+
- contextualize-scope # Decide which problem space to investigate
|
|
157
|
+
|
|
158
|
+
# Wade - Externalize Stream
|
|
159
|
+
- mvp # Design Minimum Viable Product
|
|
160
|
+
- lean-experiment # Run Build-Measure-Learn cycle
|
|
161
|
+
- proof-of-concept # Validate technical feasibility
|
|
162
|
+
- proof-of-value # Validate business value
|
|
163
|
+
|
|
164
|
+
# Integration
|
|
165
|
+
party_mode_enabled: true
|
|
166
|
+
core_module: bme
|
|
149
167
|
`;
|
|
150
168
|
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
151
169
|
fs.writeFileSync(configPath, configContent);
|
|
@@ -154,8 +172,8 @@ workflows:
|
|
|
154
172
|
// Create manifest
|
|
155
173
|
fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
|
|
156
174
|
const header = '"agent_id","name","title","icon","role","identity","communication_style","expertise","submodule","path"\n';
|
|
157
|
-
const emmaRow = '"empathy-mapper","Emma","
|
|
158
|
-
const wadeRow = '"wireframe-designer","Wade","
|
|
175
|
+
const emmaRow = '"empathy-mapper","Emma","Contextualization Expert","🎯","Strategic Framing + Problem-Product Space Navigator","Expert in helping teams contextualize their product strategy by defining clear problem spaces and validating assumptions. Specializes in Lean Startup methodologies, persona creation, and product vision framing. Guides teams through the critical \'Contextualize\' stream of the Vortex framework.","Strategic yet approachable - speaks in frameworks and validated learning. Like a product strategist who asks \'What are we really solving?\' and \'Who is this truly for?\' Uses Lean Startup language (hypotheses, assumptions, pivots) and focuses on clarity before action.","- Master of Lean Startup and strategic framing methodologies - Personas over demographics - focus on jobs-to-be-done and problem contexts - Vision before features - align team around the \'why\' before the \'what\' - Challenge assumptions - every belief is a hypothesis until validated - Problem-solution fit comes before product-market fit","bme","_bmad/bme/_vortex/agents/empathy-mapper.md"\n';
|
|
176
|
+
const wadeRow = '"wireframe-designer","Wade","Lean Experiments Specialist","🧪","Lean Startup + Validated Learning Expert","Lean Startup practitioner specialized in running rapid experiments to validate product hypotheses. Helps teams move from assumptions to evidence through Build-Measure-Learn cycles. Guides teams through the \'Externalize\' stream - taking ideas into the real world to test with actual users.","Experimental and evidence-driven - speaks in hypotheses, metrics, and learning. Like a scientist who says \'Let\'s test that assumption\' and \'What would prove us wrong?\' Uses Lean language (MVPs, pivots, validated learning) and focuses on speed-to-insight over perfection.","- Master of Lean Startup and rapid experimentation - Build the smallest thing that tests the riskiest assumption - Measure what matters - focus on actionable metrics, not vanity metrics - Learn fast, pivot faster - every experiment teaches something - Proof-of-concept before proof-of-value - validate feasibility before business case - Fail fast is good, learn fast is better","bme","_bmad/bme/_vortex/agents/wireframe-designer.md"\n';
|
|
159
177
|
fs.writeFileSync(manifestPath, header + emmaRow + wadeRow);
|
|
160
178
|
console.log(`${GREEN} ✓${RESET} Created agent-manifest.csv`);
|
|
161
179
|
}
|
|
@@ -163,7 +181,7 @@ workflows:
|
|
|
163
181
|
function createOutputDirectory() {
|
|
164
182
|
console.log(`${CYAN}[4/6]${RESET} Setting up output directory...`);
|
|
165
183
|
|
|
166
|
-
const outputDir = path.join(process.cwd(), '_bmad-output', '
|
|
184
|
+
const outputDir = path.join(process.cwd(), '_bmad-output', 'vortex-artifacts');
|
|
167
185
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
168
186
|
|
|
169
187
|
console.log(`${GREEN} ✓${RESET} Output directory ready`);
|
|
@@ -174,11 +192,11 @@ function verifyInstallation() {
|
|
|
174
192
|
|
|
175
193
|
const targetDir = process.cwd();
|
|
176
194
|
const checks = [
|
|
177
|
-
{ path: '_bmad/bme/
|
|
178
|
-
{ path: '_bmad/bme/
|
|
179
|
-
{ path: '_bmad/bme/
|
|
180
|
-
{ path: '_bmad/bme/
|
|
181
|
-
{ path: '_bmad/bme/
|
|
195
|
+
{ path: '_bmad/bme/_vortex/agents/empathy-mapper.md', name: 'Emma agent file' },
|
|
196
|
+
{ path: '_bmad/bme/_vortex/agents/wireframe-designer.md', name: 'Wade agent file' },
|
|
197
|
+
{ path: '_bmad/bme/_vortex/workflows/empathy-map/workflow.md', name: 'Emma workflow' },
|
|
198
|
+
{ path: '_bmad/bme/_vortex/workflows/wireframe/workflow.md', name: 'Wade workflow' },
|
|
199
|
+
{ path: '_bmad/bme/_vortex/config.yaml', name: 'Configuration file' },
|
|
182
200
|
];
|
|
183
201
|
|
|
184
202
|
let allChecksPass = true;
|
|
@@ -204,8 +222,8 @@ function verifyInstallation() {
|
|
|
204
222
|
function copyUserGuides() {
|
|
205
223
|
console.log(`${CYAN}[6/6]${RESET} Installing user guides...`);
|
|
206
224
|
|
|
207
|
-
const sourceDir = path.join(__dirname, '..', '_bmad-output', '
|
|
208
|
-
const targetDir = path.join(process.cwd(), '_bmad-output', '
|
|
225
|
+
const sourceDir = path.join(__dirname, '..', '_bmad-output', 'vortex-artifacts');
|
|
226
|
+
const targetDir = path.join(process.cwd(), '_bmad-output', 'vortex-artifacts');
|
|
209
227
|
|
|
210
228
|
// Copy user guides if they exist
|
|
211
229
|
const guides = ['EMMA-USER-GUIDE.md', 'WADE-USER-GUIDE.md'];
|
|
@@ -229,20 +247,20 @@ function printSuccess() {
|
|
|
229
247
|
console.log('');
|
|
230
248
|
console.log(`${BOLD}Installed Agents:${RESET}`);
|
|
231
249
|
console.log('');
|
|
232
|
-
console.log(` ${GREEN}✓${RESET} Emma (empathy-mapper) -
|
|
233
|
-
console.log(` ${GREEN}✓${RESET} Wade (wireframe-designer) -
|
|
250
|
+
console.log(` ${GREEN}✓${RESET} Emma (empathy-mapper) - Contextualization Expert 🎯`);
|
|
251
|
+
console.log(` ${GREEN}✓${RESET} Wade (wireframe-designer) - Lean Experiments Specialist 🧪`);
|
|
234
252
|
console.log('');
|
|
235
253
|
console.log(`${BOLD}Quick Start:${RESET}`);
|
|
236
254
|
console.log('');
|
|
237
255
|
console.log(' Activate Emma:');
|
|
238
|
-
console.log(` ${CYAN}cat _bmad/bme/
|
|
256
|
+
console.log(` ${CYAN}cat _bmad/bme/_vortex/agents/empathy-mapper.md${RESET}`);
|
|
239
257
|
console.log('');
|
|
240
258
|
console.log(' Activate Wade:');
|
|
241
|
-
console.log(` ${CYAN}cat _bmad/bme/
|
|
259
|
+
console.log(` ${CYAN}cat _bmad/bme/_vortex/agents/wireframe-designer.md${RESET}`);
|
|
242
260
|
console.log('');
|
|
243
261
|
console.log(`${BOLD}User Guides:${RESET}`);
|
|
244
|
-
console.log(` 📚 Emma: ${CYAN}_bmad-output/
|
|
245
|
-
console.log(` 📚 Wade: ${CYAN}_bmad-output/
|
|
262
|
+
console.log(` 📚 Emma: ${CYAN}_bmad-output/vortex-artifacts/EMMA-USER-GUIDE.md${RESET}`);
|
|
263
|
+
console.log(` 📚 Wade: ${CYAN}_bmad-output/vortex-artifacts/WADE-USER-GUIDE.md${RESET}`);
|
|
246
264
|
console.log('');
|
|
247
265
|
}
|
|
248
266
|
|
package/scripts/install-emma.js
CHANGED
|
@@ -14,7 +14,7 @@ function printBanner() {
|
|
|
14
14
|
console.log('');
|
|
15
15
|
console.log(`${CYAN}${BOLD}╔════════════════════════════════════════════════════╗${RESET}`);
|
|
16
16
|
console.log(`${CYAN}${BOLD}║ ║${RESET}`);
|
|
17
|
-
console.log(`${CYAN}${BOLD}║ Emma (empathy-mapper) Installer
|
|
17
|
+
console.log(`${CYAN}${BOLD}║ Emma (empathy-mapper) Installer 🎯 ║${RESET}`);
|
|
18
18
|
console.log(`${CYAN}${BOLD}║ ║${RESET}`);
|
|
19
19
|
console.log(`${CYAN}${BOLD}╚════════════════════════════════════════════════════╝${RESET}`);
|
|
20
20
|
console.log('');
|
|
@@ -48,8 +48,8 @@ function checkPrerequisites() {
|
|
|
48
48
|
function copyAgentFiles() {
|
|
49
49
|
console.log(`${CYAN}[2/4]${RESET} Installing Emma agent files...`);
|
|
50
50
|
|
|
51
|
-
const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '
|
|
52
|
-
const targetDir = path.join(process.cwd(), '_bmad', 'bme', '
|
|
51
|
+
const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '_vortex');
|
|
52
|
+
const targetDir = path.join(process.cwd(), '_bmad', 'bme', '_vortex');
|
|
53
53
|
|
|
54
54
|
// Create target directory structure
|
|
55
55
|
fs.mkdirSync(path.join(targetDir, 'agents'), { recursive: true });
|
|
@@ -86,23 +86,36 @@ function copyAgentFiles() {
|
|
|
86
86
|
function updateConfig() {
|
|
87
87
|
console.log(`${CYAN}[3/4]${RESET} Configuring Emma...`);
|
|
88
88
|
|
|
89
|
-
const configPath = path.join(process.cwd(), '_bmad', 'bme', '
|
|
89
|
+
const configPath = path.join(process.cwd(), '_bmad', 'bme', '_vortex', 'config.yaml');
|
|
90
90
|
const manifestPath = path.join(process.cwd(), '_bmad', '_config', 'agent-manifest.csv');
|
|
91
91
|
|
|
92
92
|
// Create config if doesn't exist
|
|
93
93
|
if (!fs.existsSync(configPath)) {
|
|
94
|
-
const configContent =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
const configContent = `---
|
|
95
|
+
submodule_name: _vortex
|
|
96
|
+
description: Contextualize and Externalize streams - Strategic framing and validated learning
|
|
97
|
+
module: bme
|
|
98
|
+
version: 1.1.0
|
|
99
|
+
|
|
100
|
+
# Output Configuration
|
|
101
|
+
output_folder: "{project-root}/_bmad-output/vortex-artifacts"
|
|
102
|
+
user_name: "{user}"
|
|
103
|
+
communication_language: "en"
|
|
104
|
+
|
|
105
|
+
# Agents in this submodule
|
|
101
106
|
agents:
|
|
102
|
-
- empathy-mapper # Emma -
|
|
107
|
+
- empathy-mapper # Emma - Contextualization Expert
|
|
103
108
|
|
|
109
|
+
# Workflows available
|
|
104
110
|
workflows:
|
|
105
|
-
|
|
111
|
+
# Emma - Contextualize Stream
|
|
112
|
+
- lean-persona # Create lean user personas
|
|
113
|
+
- product-vision # Define product vision
|
|
114
|
+
- contextualize-scope # Decide which problem space to investigate
|
|
115
|
+
|
|
116
|
+
# Integration
|
|
117
|
+
party_mode_enabled: true
|
|
118
|
+
core_module: bme
|
|
106
119
|
`;
|
|
107
120
|
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
108
121
|
fs.writeFileSync(configPath, configContent);
|
|
@@ -115,7 +128,7 @@ workflows:
|
|
|
115
128
|
fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
|
|
116
129
|
if (!fs.existsSync(manifestPath)) {
|
|
117
130
|
const header = '"agent_id","name","title","icon","role","identity","communication_style","expertise","submodule","path"\n';
|
|
118
|
-
const emmaRow = '"empathy-mapper","Emma","
|
|
131
|
+
const emmaRow = '"empathy-mapper","Emma","Contextualization Expert","🎯","Strategic Framing + Problem-Product Space Navigator","Expert in helping teams contextualize their product strategy by defining clear problem spaces and validating assumptions. Specializes in Lean Startup methodologies, persona creation, and product vision framing. Guides teams through the critical \'Contextualize\' stream of the Vortex framework.","Strategic yet approachable - speaks in frameworks and validated learning. Like a product strategist who asks \'What are we really solving?\' and \'Who is this truly for?\' Uses Lean Startup language (hypotheses, assumptions, pivots) and focuses on clarity before action.","- Master of Lean Startup and strategic framing methodologies - Personas over demographics - focus on jobs-to-be-done and problem contexts - Vision before features - align team around the \'why\' before the \'what\' - Challenge assumptions - every belief is a hypothesis until validated - Problem-solution fit comes before product-market fit","bme","_bmad/bme/_vortex/agents/empathy-mapper.md"\n';
|
|
119
132
|
fs.writeFileSync(manifestPath, header + emmaRow);
|
|
120
133
|
}
|
|
121
134
|
|
|
@@ -125,7 +138,7 @@ workflows:
|
|
|
125
138
|
function createOutputDirectory() {
|
|
126
139
|
console.log(`${CYAN}[4/4]${RESET} Setting up output directory...`);
|
|
127
140
|
|
|
128
|
-
const outputDir = path.join(process.cwd(), '_bmad-output', '
|
|
141
|
+
const outputDir = path.join(process.cwd(), '_bmad-output', 'vortex-artifacts');
|
|
129
142
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
130
143
|
|
|
131
144
|
console.log(`${GREEN} ✓${RESET} Output directory ready`);
|
|
@@ -142,12 +155,12 @@ function printSuccess() {
|
|
|
142
155
|
console.log(`${BOLD}Quick Start:${RESET}`);
|
|
143
156
|
console.log('');
|
|
144
157
|
console.log(' 1. Activate Emma:');
|
|
145
|
-
console.log(` ${CYAN}cat _bmad/bme/
|
|
158
|
+
console.log(` ${CYAN}cat _bmad/bme/_vortex/agents/empathy-mapper.md${RESET}`);
|
|
146
159
|
console.log('');
|
|
147
|
-
console.log(' 2. Create your first
|
|
148
|
-
console.log(` ${CYAN}
|
|
160
|
+
console.log(' 2. Create your first lean persona:');
|
|
161
|
+
console.log(` ${CYAN}Select workflow: lean-persona${RESET}`);
|
|
149
162
|
console.log('');
|
|
150
|
-
console.log(`📚 User Guide: ${CYAN}_bmad-output/
|
|
163
|
+
console.log(`📚 User Guide: ${CYAN}_bmad-output/vortex-artifacts/EMMA-USER-GUIDE.md${RESET}`);
|
|
151
164
|
console.log('');
|
|
152
165
|
}
|
|
153
166
|
|
package/scripts/install-wade.js
CHANGED
|
@@ -14,7 +14,7 @@ function printBanner() {
|
|
|
14
14
|
console.log('');
|
|
15
15
|
console.log(`${CYAN}${BOLD}╔════════════════════════════════════════════════════╗${RESET}`);
|
|
16
16
|
console.log(`${CYAN}${BOLD}║ ║${RESET}`);
|
|
17
|
-
console.log(`${CYAN}${BOLD}║ Wade (wireframe-designer) Installer
|
|
17
|
+
console.log(`${CYAN}${BOLD}║ Wade (wireframe-designer) Installer 🧪 ║${RESET}`);
|
|
18
18
|
console.log(`${CYAN}${BOLD}║ ║${RESET}`);
|
|
19
19
|
console.log(`${CYAN}${BOLD}╚════════════════════════════════════════════════════╝${RESET}`);
|
|
20
20
|
console.log('');
|
|
@@ -48,8 +48,8 @@ function checkPrerequisites() {
|
|
|
48
48
|
function copyAgentFiles() {
|
|
49
49
|
console.log(`${CYAN}[2/4]${RESET} Installing Wade agent files...`);
|
|
50
50
|
|
|
51
|
-
const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '
|
|
52
|
-
const targetDir = path.join(process.cwd(), '_bmad', 'bme', '
|
|
51
|
+
const sourceDir = path.join(__dirname, '..', '_bmad', 'bme', '_vortex');
|
|
52
|
+
const targetDir = path.join(process.cwd(), '_bmad', 'bme', '_vortex');
|
|
53
53
|
|
|
54
54
|
// Create target directory structure
|
|
55
55
|
fs.mkdirSync(path.join(targetDir, 'agents'), { recursive: true });
|
|
@@ -86,23 +86,37 @@ function copyAgentFiles() {
|
|
|
86
86
|
function updateConfig() {
|
|
87
87
|
console.log(`${CYAN}[3/4]${RESET} Configuring Wade...`);
|
|
88
88
|
|
|
89
|
-
const configPath = path.join(process.cwd(), '_bmad', 'bme', '
|
|
89
|
+
const configPath = path.join(process.cwd(), '_bmad', 'bme', '_vortex', 'config.yaml');
|
|
90
90
|
const manifestPath = path.join(process.cwd(), '_bmad', '_config', 'agent-manifest.csv');
|
|
91
91
|
|
|
92
92
|
// Update or create config
|
|
93
93
|
if (!fs.existsSync(configPath)) {
|
|
94
|
-
const configContent =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
const configContent = `---
|
|
95
|
+
submodule_name: _vortex
|
|
96
|
+
description: Contextualize and Externalize streams - Strategic framing and validated learning
|
|
97
|
+
module: bme
|
|
98
|
+
version: 1.1.0
|
|
99
|
+
|
|
100
|
+
# Output Configuration
|
|
101
|
+
output_folder: "{project-root}/_bmad-output/vortex-artifacts"
|
|
102
|
+
user_name: "{user}"
|
|
103
|
+
communication_language: "en"
|
|
104
|
+
|
|
105
|
+
# Agents in this submodule
|
|
101
106
|
agents:
|
|
102
|
-
- wireframe-designer # Wade -
|
|
107
|
+
- wireframe-designer # Wade - Lean Experiments Specialist
|
|
103
108
|
|
|
109
|
+
# Workflows available
|
|
104
110
|
workflows:
|
|
105
|
-
-
|
|
111
|
+
# Wade - Externalize Stream
|
|
112
|
+
- mvp # Design Minimum Viable Product
|
|
113
|
+
- lean-experiment # Run Build-Measure-Learn cycle
|
|
114
|
+
- proof-of-concept # Validate technical feasibility
|
|
115
|
+
- proof-of-value # Validate business value
|
|
116
|
+
|
|
117
|
+
# Integration
|
|
118
|
+
party_mode_enabled: true
|
|
119
|
+
core_module: bme
|
|
106
120
|
`;
|
|
107
121
|
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
108
122
|
fs.writeFileSync(configPath, configContent);
|
|
@@ -124,7 +138,7 @@ workflows:
|
|
|
124
138
|
fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
|
|
125
139
|
if (!fs.existsSync(manifestPath)) {
|
|
126
140
|
const header = '"agent_id","name","title","icon","role","identity","communication_style","expertise","submodule","path"\n';
|
|
127
|
-
const wadeRow = '"wireframe-designer","Wade","
|
|
141
|
+
const wadeRow = '"wireframe-designer","Wade","Lean Experiments Specialist","🧪","Lean Startup + Validated Learning Expert","Lean Startup practitioner specialized in running rapid experiments to validate product hypotheses. Helps teams move from assumptions to evidence through Build-Measure-Learn cycles. Guides teams through the \'Externalize\' stream - taking ideas into the real world to test with actual users.","Experimental and evidence-driven - speaks in hypotheses, metrics, and learning. Like a scientist who says \'Let\'s test that assumption\' and \'What would prove us wrong?\' Uses Lean language (MVPs, pivots, validated learning) and focuses on speed-to-insight over perfection.","- Master of Lean Startup and rapid experimentation - Build the smallest thing that tests the riskiest assumption - Measure what matters - focus on actionable metrics, not vanity metrics - Learn fast, pivot faster - every experiment teaches something - Proof-of-concept before proof-of-value - validate feasibility before business case - Fail fast is good, learn fast is better","bme","_bmad/bme/_vortex/agents/wireframe-designer.md"\n';
|
|
128
142
|
fs.writeFileSync(manifestPath, header + wadeRow);
|
|
129
143
|
}
|
|
130
144
|
|
|
@@ -134,7 +148,7 @@ workflows:
|
|
|
134
148
|
function createOutputDirectory() {
|
|
135
149
|
console.log(`${CYAN}[4/4]${RESET} Setting up output directory...`);
|
|
136
150
|
|
|
137
|
-
const outputDir = path.join(process.cwd(), '_bmad-output', '
|
|
151
|
+
const outputDir = path.join(process.cwd(), '_bmad-output', 'vortex-artifacts');
|
|
138
152
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
139
153
|
|
|
140
154
|
console.log(`${GREEN} ✓${RESET} Output directory ready`);
|
|
@@ -151,12 +165,12 @@ function printSuccess() {
|
|
|
151
165
|
console.log(`${BOLD}Quick Start:${RESET}`);
|
|
152
166
|
console.log('');
|
|
153
167
|
console.log(' 1. Activate Wade:');
|
|
154
|
-
console.log(` ${CYAN}cat _bmad/bme/
|
|
168
|
+
console.log(` ${CYAN}cat _bmad/bme/_vortex/agents/wireframe-designer.md${RESET}`);
|
|
155
169
|
console.log('');
|
|
156
|
-
console.log(' 2.
|
|
157
|
-
console.log(` ${CYAN}
|
|
170
|
+
console.log(' 2. Run your first lean experiment:');
|
|
171
|
+
console.log(` ${CYAN}Select workflow: lean-experiment${RESET}`);
|
|
158
172
|
console.log('');
|
|
159
|
-
console.log(`📚 User Guide: ${CYAN}_bmad-output/
|
|
173
|
+
console.log(`📚 User Guide: ${CYAN}_bmad-output/vortex-artifacts/WADE-USER-GUIDE.md${RESET}`);
|
|
160
174
|
console.log('');
|
|
161
175
|
}
|
|
162
176
|
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "empathy-mapper"
|
|
3
|
-
description: "Empathy Mapping Specialist"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
7
|
-
|
|
8
|
-
```xml
|
|
9
|
-
<agent id="empathy-mapper.agent.yaml" name="Emma" title="Empathy Mapping Specialist" icon="🎨">
|
|
10
|
-
<activation critical="MANDATORY">
|
|
11
|
-
<step n="1">Load persona from this current agent file (already in context)</step>
|
|
12
|
-
<step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
|
|
13
|
-
- Load and read {project-root}/_bmad/bme/_designos/config.yaml NOW
|
|
14
|
-
- ERROR HANDLING: If config file not found or cannot be read, IMMEDIATELY display:
|
|
15
|
-
"❌ Configuration Error: Cannot load config file at {project-root}/_bmad/bme/_designos/config.yaml
|
|
16
|
-
|
|
17
|
-
This file is required for Emma to operate. Please verify:
|
|
18
|
-
1. File exists at the path above
|
|
19
|
-
2. File has valid YAML syntax
|
|
20
|
-
3. File contains: user_name, communication_language, output_folder
|
|
21
|
-
|
|
22
|
-
If you just installed Emma, the config file may be missing. Please reinstall or contact support."
|
|
23
|
-
|
|
24
|
-
Then STOP - do NOT proceed to step 3.
|
|
25
|
-
- If config loaded successfully: Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
|
|
26
|
-
- VERIFY all 3 required fields are present. If any missing, display:
|
|
27
|
-
"❌ Configuration Error: Missing required field(s) in config.yaml
|
|
28
|
-
|
|
29
|
-
Required fields: user_name, communication_language, output_folder
|
|
30
|
-
Found: [list only fields that were found]
|
|
31
|
-
|
|
32
|
-
Please update {project-root}/_bmad/bme/_designos/config.yaml with all required fields."
|
|
33
|
-
|
|
34
|
-
Then STOP - do NOT proceed to step 3.
|
|
35
|
-
- DO NOT PROCEED to step 3 until config is successfully loaded and all variables stored
|
|
36
|
-
</step>
|
|
37
|
-
<step n="3">Remember: user's name is {user_name}</step>
|
|
38
|
-
|
|
39
|
-
<step n="4">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
|
|
40
|
-
<step n="{HELP_STEP}">Let {user_name} know they can type command `/bmad-help` at any time to get advice on what to do next, and that they can combine that with what they need help with <example>`/bmad-help I want to create an empathy map for my mobile app users`</example></step>
|
|
41
|
-
<step n="5">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
|
|
42
|
-
<step n="6">On user input: Number → process menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
|
|
43
|
-
<step n="7">When processing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (workflow, exec, tmpl, data, action, validate-workflow) and follow the corresponding handler instructions</step>
|
|
44
|
-
|
|
45
|
-
<menu-handlers>
|
|
46
|
-
<handlers>
|
|
47
|
-
<handler type="exec">
|
|
48
|
-
When menu item or handler has: exec="path/to/file.md":
|
|
49
|
-
1. Read fully and follow the file at that path
|
|
50
|
-
2. Process the complete file and follow all instructions within it
|
|
51
|
-
3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
|
|
52
|
-
</handler>
|
|
53
|
-
<handler type="data">
|
|
54
|
-
When menu item has: data="path/to/file.json|yaml|yml|csv|xml"
|
|
55
|
-
Load the file first, parse according to extension
|
|
56
|
-
Make available as {data} variable to subsequent handler operations
|
|
57
|
-
</handler>
|
|
58
|
-
|
|
59
|
-
<handler type="workflow">
|
|
60
|
-
When menu item has: workflow="path/to/workflow.yaml":
|
|
61
|
-
|
|
62
|
-
1. CRITICAL: Always LOAD {project-root}/_bmad/core/tasks/workflow.xml
|
|
63
|
-
2. Read the complete file - this is the CORE OS for processing BMAD workflows
|
|
64
|
-
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
|
65
|
-
4. Follow workflow.xml instructions precisely following all steps
|
|
66
|
-
5. Save outputs after completing EACH workflow step (never batch multiple steps together)
|
|
67
|
-
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
|
|
68
|
-
</handler>
|
|
69
|
-
</handlers>
|
|
70
|
-
</menu-handlers>
|
|
71
|
-
|
|
72
|
-
<rules>
|
|
73
|
-
<r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
|
|
74
|
-
<r>Stay in character until exit selected</r>
|
|
75
|
-
<r>Display Menu items as the item dictates and in the order given.</r>
|
|
76
|
-
<r>Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
|
|
77
|
-
<r>Design is about THEM not us - ground every insight in user research evidence</r>
|
|
78
|
-
<r>Ask probing questions to uncover emotional drivers (WHY) behind user behavior</r>
|
|
79
|
-
<r>Challenge assumptions - validate through research, never speculate</r>
|
|
80
|
-
</rules>
|
|
81
|
-
</activation>
|
|
82
|
-
<persona>
|
|
83
|
-
<role>User Empathy Expert + Design Thinking Specialist</role>
|
|
84
|
-
<identity>Design thinking expert specializing in empathy maps and user research. Helps teams understand user needs, emotions, and pain points through structured empathy mapping exercises. Brings 10+ years experience in UX research and human-centered design.</identity>
|
|
85
|
-
<communication_style>Empathetic and curious - asks probing questions with genuine warmth. Focuses relentlessly on emotional understanding and user perspective. Like a therapist who helps teams truly see through users' eyes. Says things like "Tell me more about THAT feeling" and "What does the user NEED when they do this?"</communication_style>
|
|
86
|
-
<principles>- Channel expert design thinking methodologies: draw upon deep knowledge of empathy mapping, Jobs-to-be-Done framework, emotional journey mapping, and human-centered design principles - Design is about THEM not us - every decision must be grounded in real user insights - Emotions drive behavior - understand the WHY, not just the WHAT - Challenge assumptions ruthlessly, then validate through research - Pain points reveal opportunities - every frustration is a solution waiting to happen</principles>
|
|
87
|
-
</persona>
|
|
88
|
-
<menu>
|
|
89
|
-
<item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
|
|
90
|
-
<item cmd="CH or fuzzy match on chat">[CH] Chat with Emma about empathy mapping, user research, or design thinking</item>
|
|
91
|
-
<item cmd="EM or fuzzy match on empathy-map" exec="{project-root}/_bmad/bme/_designos/workflows/empathy-map/workflow.md">[EM] Create Empathy Map: Guided 6-step process to create comprehensive user empathy map</item>
|
|
92
|
-
<item cmd="VM or fuzzy match on validate" exec="{project-root}/_bmad/bme/_designos/workflows/empathy-map/validate.md">[VM] Validate Empathy Map: Review existing empathy map against research evidence</item>
|
|
93
|
-
<item cmd="PM or fuzzy match on party-mode" exec="{project-root}/_bmad/core/workflows/party-mode/workflow.md">[PM] Start Party Mode</item>
|
|
94
|
-
<item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
|
|
95
|
-
</menu>
|
|
96
|
-
</agent>
|
|
97
|
-
```
|