bmad-enhanced 1.3.4 → 1.3.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/CHANGELOG.md +44 -0
- package/package.json +1 -1
- package/scripts/install-all-agents.js +44 -4
- package/scripts/update/bmad-version.js +27 -1
- package/scripts/update/migrations/1.0.x-to-1.3.0.js +2 -2
- package/scripts/update/migrations/1.1.x-to-1.3.0.js +4 -4
- package/scripts/update/migrations/1.2.x-to-1.3.0.js +4 -4
- package/scripts/update/migrations/registry.js +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [1.3.6] - 2026-02-18
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
**🔍 Improved Installation Diagnostics:**
|
|
15
|
+
- Added detailed debugging output to config.yaml creation in install script
|
|
16
|
+
- Shows exact file path where config.yaml will be created
|
|
17
|
+
- Verifies file existence immediately after write
|
|
18
|
+
- Catches and displays any errors during config creation
|
|
19
|
+
- Better error handling with try-catch blocks
|
|
20
|
+
|
|
21
|
+
**📊 Improved Version Check Messaging:**
|
|
22
|
+
- `bmad-version` now distinguishes between "fresh", "partial", and "corrupted" installations
|
|
23
|
+
- "Partial installation" message when config.yaml is missing but other files exist
|
|
24
|
+
- "Corrupted installation" message when required agent files are missing
|
|
25
|
+
- Each scenario now provides specific next steps for resolution
|
|
26
|
+
- No longer shows generic "Not installed" for all cases
|
|
27
|
+
|
|
28
|
+
**What this helps with:**
|
|
29
|
+
- Easier troubleshooting when installations fail
|
|
30
|
+
- Clear indication of what's wrong with partial installations
|
|
31
|
+
- Better guidance on how to fix installation issues
|
|
32
|
+
- More detailed logs for support/debugging
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## [1.3.5] - 2026-02-18
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
|
|
40
|
+
**🚨 CRITICAL Install Script Bug:**
|
|
41
|
+
- Fixed `bmad-install-agents` only copying deprecated workflows, not the 7 new workflows
|
|
42
|
+
- Fixed hardcoded version 1.2.0 (now correctly uses 1.3.5)
|
|
43
|
+
- Install script now copies all 7 Vortex workflows: lean-persona, product-vision, contextualize-scope, mvp, lean-experiment, proof-of-concept, proof-of-value
|
|
44
|
+
- **This was causing "folders are still a mess" issue - workflows were listed in config but never installed**
|
|
45
|
+
|
|
46
|
+
**What was broken in v1.3.4 and earlier:**
|
|
47
|
+
- Fresh installs only got deprecated workflows (empathy-map, wireframe)
|
|
48
|
+
- Config.yaml listed 7 workflows that didn't exist
|
|
49
|
+
- Version was always set to 1.2.0 regardless of package version
|
|
50
|
+
- Validation failed because workflow.md files were missing
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
10
54
|
## [1.3.4] - 2026-02-18
|
|
11
55
|
|
|
12
56
|
### Fixed
|
package/package.json
CHANGED
|
@@ -123,6 +123,32 @@ function copyAllAgentFiles() {
|
|
|
123
123
|
});
|
|
124
124
|
|
|
125
125
|
console.log(`${GREEN} ✓${RESET} Wade installed`);
|
|
126
|
+
|
|
127
|
+
// Copy all 7 new workflow directories
|
|
128
|
+
console.log(`${CYAN} →${RESET} Installing Vortex Framework workflows...`);
|
|
129
|
+
const workflows = [
|
|
130
|
+
'lean-persona',
|
|
131
|
+
'product-vision',
|
|
132
|
+
'contextualize-scope',
|
|
133
|
+
'mvp',
|
|
134
|
+
'lean-experiment',
|
|
135
|
+
'proof-of-concept',
|
|
136
|
+
'proof-of-value'
|
|
137
|
+
];
|
|
138
|
+
|
|
139
|
+
workflows.forEach(workflow => {
|
|
140
|
+
const workflowSourceDir = path.join(sourceDir, 'workflows', workflow);
|
|
141
|
+
const workflowTargetDir = path.join(targetDir, 'workflows', workflow);
|
|
142
|
+
|
|
143
|
+
if (fs.existsSync(workflowSourceDir)) {
|
|
144
|
+
fs.copySync(workflowSourceDir, workflowTargetDir);
|
|
145
|
+
console.log(`${GREEN} ✓${RESET} ${workflow}`);
|
|
146
|
+
} else {
|
|
147
|
+
console.log(`${YELLOW} ⚠${RESET} ${workflow} not found in package (skipping)`);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
console.log(`${GREEN} ✓${RESET} All workflows installed`);
|
|
126
152
|
}
|
|
127
153
|
|
|
128
154
|
function updateConfig() {
|
|
@@ -131,12 +157,14 @@ function updateConfig() {
|
|
|
131
157
|
const configPath = path.join(process.cwd(), '_bmad', 'bme', '_vortex', 'config.yaml');
|
|
132
158
|
const manifestPath = path.join(process.cwd(), '_bmad', '_config', 'agent-manifest.csv');
|
|
133
159
|
|
|
160
|
+
console.log(`${CYAN} →${RESET} Config path: ${configPath}`);
|
|
161
|
+
|
|
134
162
|
// Create config
|
|
135
163
|
const configContent = `---
|
|
136
164
|
submodule_name: _vortex
|
|
137
165
|
description: Contextualize and Externalize streams - Strategic framing and validated learning
|
|
138
166
|
module: bme
|
|
139
|
-
version: 1.
|
|
167
|
+
version: 1.3.6
|
|
140
168
|
|
|
141
169
|
# Output Configuration
|
|
142
170
|
output_folder: "{project-root}/_bmad-output/vortex-artifacts"
|
|
@@ -165,9 +193,21 @@ workflows:
|
|
|
165
193
|
party_mode_enabled: true
|
|
166
194
|
core_module: bme
|
|
167
195
|
`;
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
196
|
+
|
|
197
|
+
try {
|
|
198
|
+
fs.mkdirSync(path.dirname(configPath), { recursive: true });
|
|
199
|
+
fs.writeFileSync(configPath, configContent);
|
|
200
|
+
|
|
201
|
+
// Verify file was created
|
|
202
|
+
if (fs.existsSync(configPath)) {
|
|
203
|
+
console.log(`${GREEN} ✓${RESET} Created config.yaml`);
|
|
204
|
+
} else {
|
|
205
|
+
console.error(`${RED} ✗${RESET} Config file not found after write!`);
|
|
206
|
+
}
|
|
207
|
+
} catch (error) {
|
|
208
|
+
console.error(`${RED} ✗${RESET} Error creating config.yaml:`, error.message);
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
171
211
|
|
|
172
212
|
// Create manifest
|
|
173
213
|
fs.mkdirSync(path.dirname(manifestPath), { recursive: true });
|
|
@@ -21,7 +21,7 @@ async function main() {
|
|
|
21
21
|
console.log('');
|
|
22
22
|
|
|
23
23
|
// Fresh install - not installed yet
|
|
24
|
-
if (scenario === 'fresh'
|
|
24
|
+
if (scenario === 'fresh') {
|
|
25
25
|
console.log(chalk.yellow('Status: Not installed'));
|
|
26
26
|
console.log(`Package version: ${chalk.cyan(targetVersion)}`);
|
|
27
27
|
console.log('');
|
|
@@ -30,6 +30,32 @@ async function main() {
|
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// Partial installation - config.yaml missing but some files exist
|
|
34
|
+
if (scenario === 'partial' || !currentVersion) {
|
|
35
|
+
console.log(chalk.red('Status: Partial installation (config.yaml missing)'));
|
|
36
|
+
console.log(`Package version: ${chalk.cyan(targetVersion)}`);
|
|
37
|
+
console.log('');
|
|
38
|
+
console.log(chalk.yellow('This indicates an installation error.'));
|
|
39
|
+
console.log('');
|
|
40
|
+
console.log('Try running: ' + chalk.cyan('npx bmad-install-agents'));
|
|
41
|
+
console.log('');
|
|
42
|
+
console.log('If the problem persists, check the installation logs.');
|
|
43
|
+
console.log('');
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Corrupted installation
|
|
48
|
+
if (scenario === 'corrupted') {
|
|
49
|
+
console.log(chalk.red('Status: Corrupted installation (missing required files)'));
|
|
50
|
+
console.log(`Package version: ${chalk.cyan(targetVersion)}`);
|
|
51
|
+
console.log('');
|
|
52
|
+
console.log(chalk.yellow('Some required files are missing.'));
|
|
53
|
+
console.log('');
|
|
54
|
+
console.log('Run: ' + chalk.cyan('npx bmad-install-agents') + ' to reinstall');
|
|
55
|
+
console.log('');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
|
|
33
59
|
// Installed
|
|
34
60
|
console.log(`Installed version: ${chalk.cyan(currentVersion)}`);
|
|
35
61
|
console.log(`Package version: ${chalk.cyan(targetVersion)}`);
|
|
@@ -16,7 +16,7 @@ const configMerger = require('../lib/config-merger');
|
|
|
16
16
|
module.exports = {
|
|
17
17
|
name: '1.0.x-to-1.3.0',
|
|
18
18
|
fromVersion: '1.0.x',
|
|
19
|
-
toVersion: '1.3.
|
|
19
|
+
toVersion: '1.3.6',
|
|
20
20
|
breaking: true,
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -65,7 +65,7 @@ module.exports = {
|
|
|
65
65
|
changes.push('Installed 7 new Vortex Framework workflows');
|
|
66
66
|
|
|
67
67
|
// 5. Update config.yaml with new structure
|
|
68
|
-
await updateConfig(targetDir, '1.3.
|
|
68
|
+
await updateConfig(targetDir, '1.3.5');
|
|
69
69
|
changes.push('Updated config.yaml');
|
|
70
70
|
|
|
71
71
|
// 6. Update agent files
|
|
@@ -17,7 +17,7 @@ const configMerger = require('../lib/config-merger');
|
|
|
17
17
|
module.exports = {
|
|
18
18
|
name: '1.1.x-to-1.3.0',
|
|
19
19
|
fromVersion: '1.1.x',
|
|
20
|
-
toVersion: '1.3.
|
|
20
|
+
toVersion: '1.3.6',
|
|
21
21
|
breaking: false,
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -27,7 +27,7 @@ module.exports = {
|
|
|
27
27
|
async preview() {
|
|
28
28
|
return {
|
|
29
29
|
actions: [
|
|
30
|
-
'Update version: 1.1.x → 1.3.
|
|
30
|
+
'Update version: 1.1.x → 1.3.5',
|
|
31
31
|
'Verify deprecated workflows archived',
|
|
32
32
|
'Remove legacy _designos directory (pre-Vortex structure)',
|
|
33
33
|
'Remove deprecated agent files (empathy-mapper.md, wireframe-designer.md)',
|
|
@@ -47,8 +47,8 @@ module.exports = {
|
|
|
47
47
|
const targetDir = path.join(process.cwd(), '_bmad/bme/_vortex');
|
|
48
48
|
|
|
49
49
|
// 1. Update version in config.yaml
|
|
50
|
-
await updateConfigVersion('1.3.
|
|
51
|
-
changes.push('Updated version to 1.3.
|
|
50
|
+
await updateConfigVersion('1.3.5');
|
|
51
|
+
changes.push('Updated version to 1.3.5');
|
|
52
52
|
|
|
53
53
|
// 2. Verify deprecated structure exists
|
|
54
54
|
await ensureDeprecatedStructure(targetDir);
|
|
@@ -17,7 +17,7 @@ const configMerger = require('../lib/config-merger');
|
|
|
17
17
|
module.exports = {
|
|
18
18
|
name: '1.2.x-to-1.3.0',
|
|
19
19
|
fromVersion: '1.2.x',
|
|
20
|
-
toVersion: '1.3.
|
|
20
|
+
toVersion: '1.3.6',
|
|
21
21
|
breaking: false,
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -27,7 +27,7 @@ module.exports = {
|
|
|
27
27
|
async preview() {
|
|
28
28
|
return {
|
|
29
29
|
actions: [
|
|
30
|
-
'Update version: 1.2.x → 1.3.
|
|
30
|
+
'Update version: 1.2.x → 1.3.5',
|
|
31
31
|
'Verify deprecated workflows archived',
|
|
32
32
|
'Remove legacy _designos directory (pre-Vortex structure)',
|
|
33
33
|
'Remove deprecated agent files (empathy-mapper.md, wireframe-designer.md)',
|
|
@@ -47,8 +47,8 @@ module.exports = {
|
|
|
47
47
|
const targetDir = path.join(process.cwd(), '_bmad/bme/_vortex');
|
|
48
48
|
|
|
49
49
|
// 1. Update version in config.yaml
|
|
50
|
-
await updateConfigVersion('1.3.
|
|
51
|
-
changes.push('Updated version to 1.3.
|
|
50
|
+
await updateConfigVersion('1.3.5');
|
|
51
|
+
changes.push('Updated version to 1.3.5');
|
|
52
52
|
|
|
53
53
|
// 2. Verify deprecated structure exists
|
|
54
54
|
await ensureDeprecatedStructure(targetDir);
|
|
@@ -14,7 +14,7 @@ const MIGRATIONS = [
|
|
|
14
14
|
{
|
|
15
15
|
name: '1.0.x-to-1.3.0',
|
|
16
16
|
fromVersion: '1.0.x',
|
|
17
|
-
toVersion: '1.3.
|
|
17
|
+
toVersion: '1.3.6',
|
|
18
18
|
breaking: true,
|
|
19
19
|
description: 'Migrate empathy-map workflow to lean-persona',
|
|
20
20
|
module: null // Loaded on demand
|
|
@@ -22,7 +22,7 @@ const MIGRATIONS = [
|
|
|
22
22
|
{
|
|
23
23
|
name: '1.1.x-to-1.3.0',
|
|
24
24
|
fromVersion: '1.1.x',
|
|
25
|
-
toVersion: '1.3.
|
|
25
|
+
toVersion: '1.3.6',
|
|
26
26
|
breaking: false,
|
|
27
27
|
description: 'Archive deprecated workflows, update agents',
|
|
28
28
|
module: null // Loaded on demand
|
|
@@ -30,7 +30,7 @@ const MIGRATIONS = [
|
|
|
30
30
|
{
|
|
31
31
|
name: '1.2.x-to-1.3.0',
|
|
32
32
|
fromVersion: '1.2.x',
|
|
33
|
-
toVersion: '1.3.
|
|
33
|
+
toVersion: '1.3.6',
|
|
34
34
|
breaking: false,
|
|
35
35
|
description: 'Update to v1.3.0 with migration system',
|
|
36
36
|
module: null // Loaded on demand
|