bmad-enhanced 1.3.6 → 1.3.8

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-enhanced",
3
- "version": "1.3.6",
3
+ "version": "1.3.8",
4
4
  "description": "Vortex Framework - Contextualize and Externalize streams for Lean Startup validation",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -29,29 +29,20 @@ function checkPrerequisites() {
29
29
  const targetDir = process.cwd();
30
30
  const bmadDir = path.join(targetDir, '_bmad');
31
31
 
32
- // Check if BMAD Method is installed
32
+ // Create _bmad directory if it doesn't exist
33
33
  if (!fs.existsSync(bmadDir)) {
34
- console.log('');
35
- console.error(`${RED}${BOLD}✗ BMAD Method not found!${RESET}`);
36
- console.log('');
37
- console.log(`${YELLOW}BMAD-Enhanced requires BMAD Method to be installed first.${RESET}`);
38
- console.log('');
39
- console.log('Please install BMAD Method:');
40
- console.log(` ${CYAN}npx bmad-method@alpha install${RESET}`);
41
- console.log('');
42
- console.log('Then run this installer again.');
43
- console.log('');
44
- process.exit(1);
34
+ console.log(`${YELLOW} ⚠${RESET} _bmad directory not found - creating it`);
35
+ fs.mkdirSync(bmadDir, { recursive: true });
36
+ } else {
37
+ console.log(`${GREEN} ✓${RESET} BMAD directory detected`);
45
38
  }
46
39
 
47
- console.log(`${GREEN} ✓${RESET} BMAD Method detected`);
48
-
49
- // Check for BMAD version/compatibility (optional but recommended)
40
+ // Check for BMAD Method configuration (optional)
50
41
  const bmadConfigPath = path.join(bmadDir, '_config', 'bmad.yaml');
51
42
  if (fs.existsSync(bmadConfigPath)) {
52
- console.log(`${GREEN} ✓${RESET} BMAD configuration found`);
43
+ console.log(`${GREEN} ✓${RESET} BMAD Method configuration found`);
53
44
  } else {
54
- console.log(`${YELLOW} ⚠${RESET} BMAD configuration not found (continuing anyway)`);
45
+ console.log(`${YELLOW} ⚠${RESET} BMAD Method not detected (BMAD-Enhanced will install standalone)`);
55
46
  }
56
47
 
57
48
  console.log(`${GREEN} ✓${RESET} Prerequisites met`);
@@ -164,7 +155,7 @@ function updateConfig() {
164
155
  submodule_name: _vortex
165
156
  description: Contextualize and Externalize streams - Strategic framing and validated learning
166
157
  module: bme
167
- version: 1.3.6
158
+ version: 1.3.8
168
159
 
169
160
  # Output Configuration
170
161
  output_folder: "{project-root}/_bmad-output/vortex-artifacts"
@@ -302,11 +293,43 @@ function printSuccess() {
302
293
  console.log('');
303
294
  }
304
295
 
296
+ function cleanupLegacyFiles() {
297
+ console.log(`${CYAN} →${RESET} Cleaning up legacy files...`);
298
+
299
+ // Remove _designos directory (pre-Vortex structure) from all possible locations
300
+ const legacyPaths = [
301
+ path.join(process.cwd(), '_bmad', 'bme', '_designos'),
302
+ path.join(process.cwd(), '_bmad', '_designos'),
303
+ ];
304
+
305
+ for (const legacyPath of legacyPaths) {
306
+ if (fs.existsSync(legacyPath)) {
307
+ fs.removeSync(legacyPath);
308
+ console.log(`${GREEN} ✓${RESET} Removed legacy directory: ${path.relative(process.cwd(), legacyPath)}`);
309
+ }
310
+ }
311
+
312
+ // Remove deprecated agent files from _vortex/agents
313
+ const agentsDir = path.join(process.cwd(), '_bmad', 'bme', '_vortex', 'agents');
314
+ const deprecatedAgents = ['empathy-mapper.md', 'wireframe-designer.md'];
315
+
316
+ for (const agent of deprecatedAgents) {
317
+ const agentPath = path.join(agentsDir, agent);
318
+ if (fs.existsSync(agentPath)) {
319
+ fs.removeSync(agentPath);
320
+ console.log(`${GREEN} ✓${RESET} Removed deprecated agent: ${agent}`);
321
+ }
322
+ }
323
+
324
+ console.log(`${GREEN} ✓${RESET} Legacy cleanup complete`);
325
+ }
326
+
305
327
  async function main() {
306
328
  try {
307
329
  printBanner();
308
330
  checkPrerequisites();
309
331
  copyAllAgentFiles();
332
+ cleanupLegacyFiles();
310
333
  updateConfig();
311
334
  createOutputDirectory();
312
335
  verifyInstallation();
@@ -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.6',
19
+ toVersion: '1.3.8',
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.5');
68
+ await updateConfig(targetDir, '1.3.8');
69
69
  changes.push('Updated config.yaml');
70
70
 
71
71
  // 6. Update agent files
@@ -289,12 +289,21 @@ async function copyUserGuides() {
289
289
  * Remove old _designos directory (pre-Vortex structure)
290
290
  */
291
291
  async function removeOldDesignosDirectory() {
292
- const designosPath = path.join(process.cwd(), '_bmad/bme/_designos');
292
+ const legacyPaths = [
293
+ path.join(process.cwd(), '_bmad/bme/_designos'),
294
+ path.join(process.cwd(), '_bmad/_designos'),
295
+ ];
293
296
 
294
- if (fs.existsSync(designosPath)) {
295
- await fs.remove(designosPath);
296
- console.log(' Removed legacy _designos directory');
297
- } else {
297
+ let removed = false;
298
+ for (const designosPath of legacyPaths) {
299
+ if (fs.existsSync(designosPath)) {
300
+ await fs.remove(designosPath);
301
+ console.log(` Removed legacy directory: ${path.relative(process.cwd(), designosPath)}`);
302
+ removed = true;
303
+ }
304
+ }
305
+
306
+ if (!removed) {
298
307
  console.log(' No legacy _designos directory found (OK)');
299
308
  }
300
309
  }
@@ -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.6',
20
+ toVersion: '1.3.8',
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.5',
30
+ 'Update version: 1.1.x → 1.3.8',
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.5');
51
- changes.push('Updated version to 1.3.5');
50
+ await updateConfigVersion('1.3.8');
51
+ changes.push('Updated version to 1.3.8');
52
52
 
53
53
  // 2. Verify deprecated structure exists
54
54
  await ensureDeprecatedStructure(targetDir);
@@ -190,12 +190,21 @@ async function copyUserGuides() {
190
190
  * Remove old _designos directory (pre-Vortex structure)
191
191
  */
192
192
  async function removeOldDesignosDirectory() {
193
- const designosPath = path.join(process.cwd(), '_bmad/bme/_designos');
193
+ const legacyPaths = [
194
+ path.join(process.cwd(), '_bmad/bme/_designos'),
195
+ path.join(process.cwd(), '_bmad/_designos'),
196
+ ];
194
197
 
195
- if (fs.existsSync(designosPath)) {
196
- await fs.remove(designosPath);
197
- console.log(' Removed legacy _designos directory');
198
- } else {
198
+ let removed = false;
199
+ for (const designosPath of legacyPaths) {
200
+ if (fs.existsSync(designosPath)) {
201
+ await fs.remove(designosPath);
202
+ console.log(` Removed legacy directory: ${path.relative(process.cwd(), designosPath)}`);
203
+ removed = true;
204
+ }
205
+ }
206
+
207
+ if (!removed) {
199
208
  console.log(' No legacy _designos directory found (OK)');
200
209
  }
201
210
  }
@@ -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.6',
20
+ toVersion: '1.3.8',
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.5',
30
+ 'Update version: 1.2.x → 1.3.8',
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.5');
51
- changes.push('Updated version to 1.3.5');
50
+ await updateConfigVersion('1.3.8');
51
+ changes.push('Updated version to 1.3.8');
52
52
 
53
53
  // 2. Verify deprecated structure exists
54
54
  await ensureDeprecatedStructure(targetDir);
@@ -190,12 +190,21 @@ async function copyUserGuides() {
190
190
  * Remove old _designos directory (pre-Vortex structure)
191
191
  */
192
192
  async function removeOldDesignosDirectory() {
193
- const designosPath = path.join(process.cwd(), '_bmad/bme/_designos');
193
+ const legacyPaths = [
194
+ path.join(process.cwd(), '_bmad/bme/_designos'),
195
+ path.join(process.cwd(), '_bmad/_designos'),
196
+ ];
194
197
 
195
- if (fs.existsSync(designosPath)) {
196
- await fs.remove(designosPath);
197
- console.log(' Removed legacy _designos directory');
198
- } else {
198
+ let removed = false;
199
+ for (const designosPath of legacyPaths) {
200
+ if (fs.existsSync(designosPath)) {
201
+ await fs.remove(designosPath);
202
+ console.log(` Removed legacy directory: ${path.relative(process.cwd(), designosPath)}`);
203
+ removed = true;
204
+ }
205
+ }
206
+
207
+ if (!removed) {
199
208
  console.log(' No legacy _designos directory found (OK)');
200
209
  }
201
210
  }
@@ -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.6',
17
+ toVersion: '1.3.8',
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.6',
25
+ toVersion: '1.3.8',
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.6',
33
+ toVersion: '1.3.8',
34
34
  breaking: false,
35
35
  description: 'Update to v1.3.0 with migration system',
36
36
  module: null // Loaded on demand