bmad-method 4.36.1 → 4.37.0-beta.1

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.
@@ -3,6 +3,7 @@ name: Release
3
3
  push:
4
4
  branches:
5
5
  - main
6
+ - stable
6
7
  workflow_dispatch:
7
8
  inputs:
8
9
  version_type:
package/.releaserc.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
- "branches": ["main"],
2
+ "branches": [
3
+ {
4
+ "name": "main",
5
+ "prerelease": "beta"
6
+ },
7
+ {
8
+ "name": "stable"
9
+ }
10
+ ],
3
11
  "plugins": [
4
12
  "@semantic-release/commit-analyzer",
5
13
  "@semantic-release/release-notes-generator",
6
14
  "@semantic-release/changelog",
7
15
  "@semantic-release/npm",
8
16
  "./tools/semantic-release-sync-installer.js",
9
- [
10
- "@semantic-release/git",
11
- {
12
- "assets": ["package.json", "package-lock.json", "tools/installer/package.json", "CHANGELOG.md"],
13
- "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
14
- }
15
- ],
16
17
  "@semantic-release/github"
17
18
  ]
18
19
  }
package/CHANGELOG.md CHANGED
@@ -1,9 +1,28 @@
1
- ## [4.36.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.0...v4.36.1) (2025-08-09)
1
+ # [4.37.0-beta.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.2...v4.37.0-beta.1) (2025-08-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **docs:** fix broken link in GUIDING-PRINCIPLES.md ([#428](https://github.com/bmadcode/BMAD-METHOD/issues/428)) ([3efcfd5](https://github.com/bmadcode/BMAD-METHOD/commit/3efcfd54d47f4c3cdc6527a438f86fc615a8700c))
7
+ * remove git plugin to resolve branch protection conflicts ([8e324f6](https://github.com/bmadcode/BMAD-METHOD/commit/8e324f60b0dad2f385ff62bd63615afc73c575f8))
8
+
9
+
10
+ ### Features
11
+
12
+ * implement dual NPM publishing strategy ([d92ba83](https://github.com/bmadcode/BMAD-METHOD/commit/d92ba835fa6e720059b943e352a03435f2a704c9))
13
+ * install Cursor rules to subdirectory ([#438](https://github.com/bmadcode/BMAD-METHOD/issues/438)) ([d563266](https://github.com/bmadcode/BMAD-METHOD/commit/d563266b9738b5d3c5ec1e31ab683aad517e2604)), closes [#376](https://github.com/bmadcode/BMAD-METHOD/issues/376) [#376](https://github.com/bmadcode/BMAD-METHOD/issues/376)
2
14
 
15
+ ## [4.36.2](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.1...v4.36.2) (2025-08-10)
16
+
17
+ ### Bug Fixes
18
+
19
+ - align installer dependencies with root package versions for ESM compatibility ([#420](https://github.com/bmadcode/BMAD-METHOD/issues/420)) ([3f6b674](https://github.com/bmadcode/BMAD-METHOD/commit/3f6b67443d61ae6add98656374bed27da4704644))
20
+
21
+ ## [4.36.1](https://github.com/bmadcode/BMAD-METHOD/compare/v4.36.0...v4.36.1) (2025-08-09)
3
22
 
4
23
  ### Bug Fixes
5
24
 
6
- * update Node.js version to 20 in release workflow and reduce Discord spam ([3f7e19a](https://github.com/bmadcode/BMAD-METHOD/commit/3f7e19a098155341a2b89796addc47b0623cb87a))
25
+ - update Node.js version to 20 in release workflow and reduce Discord spam ([3f7e19a](https://github.com/bmadcode/BMAD-METHOD/commit/3f7e19a098155341a2b89796addc47b0623cb87a))
7
26
 
8
27
  # [4.36.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.35.3...v4.36.0) (2025-08-09)
9
28
 
@@ -65,7 +65,7 @@ See [Expansion Packs Guide](../docs/expansion-packs.md) for detailed examples an
65
65
 
66
66
  ### Template Rules
67
67
 
68
- Templates follow the [BMad Document Template](common/utils/bmad-doc-template.md) specification using YAML format:
68
+ Templates follow the [BMad Document Template](../common/utils/bmad-doc-template.md) specification using YAML format:
69
69
 
70
70
  1. **Structure**: Templates are defined in YAML with clear metadata, workflow configuration, and section hierarchy
71
71
  2. **Separation of Concerns**: Instructions for LLMs are in `instruction` fields, separate from content
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.36.1",
3
+ "version": "4.37.0-beta.1",
4
4
  "description": "Breakthrough Method of Agile AI-driven Development",
5
5
  "main": "tools/cli.js",
6
6
  "bin": {
@@ -6,13 +6,17 @@ const fs = require('fs').promises;
6
6
  const yaml = require('js-yaml');
7
7
  const chalk = require('chalk');
8
8
  const inquirer = require('inquirer');
9
+ const semver = require('semver');
10
+ const https = require('https');
9
11
 
10
12
  // Handle both execution contexts (from root via npx or from installer directory)
11
13
  let version;
12
14
  let installer;
15
+ let packageName;
13
16
  try {
14
17
  // Try installer context first (when run from tools/installer/)
15
18
  version = require('../package.json').version;
19
+ packageName = require('../package.json').name;
16
20
  installer = require('../lib/installer');
17
21
  } catch (e) {
18
22
  // Fall back to root context (when run via npx from GitHub)
@@ -86,6 +90,60 @@ program
86
90
  }
87
91
  });
88
92
 
93
+ // Command to check if updates are available
94
+ program
95
+ .command('update-check')
96
+ .description('Check for BMad Update')
97
+ .action(async () => {
98
+ console.log('Checking for updates...');
99
+
100
+ // Make HTTP request to npm registry for latest version info
101
+ const req = https.get(`https://registry.npmjs.org/${packageName}/latest`, res => {
102
+ // Check for HTTP errors (non-200 status codes)
103
+ if (res.statusCode !== 200) {
104
+ console.error(chalk.red(`Update check failed: Received status code ${res.statusCode}`));
105
+ return;
106
+ }
107
+
108
+ // Accumulate response data chunks
109
+ let data = '';
110
+ res.on('data', chunk => data += chunk);
111
+
112
+ // Process complete response
113
+ res.on('end', () => {
114
+ try {
115
+ // Parse npm registry response and extract version
116
+ const latest = JSON.parse(data).version;
117
+
118
+ // Compare versions using semver
119
+ if (semver.gt(latest, version)) {
120
+ console.log(chalk.bold.blue(`⚠️ ${packageName} update available: ${version} → ${latest}`));
121
+ console.log(chalk.bold.blue('\nInstall latest by running:'));
122
+ console.log(chalk.bold.magenta(` npm install ${packageName}@latest`));
123
+ console.log(chalk.dim(' or'));
124
+ console.log(chalk.bold.magenta(` npx ${packageName}@latest`));
125
+ } else {
126
+ console.log(chalk.bold.blue(`✨ ${packageName} is up to date`));
127
+ }
128
+ } catch (error) {
129
+ // Handle JSON parsing errors
130
+ console.error(chalk.red('Failed to parse npm registry data:'), error.message);
131
+ }
132
+ });
133
+ });
134
+
135
+ // Handle network/connection errors
136
+ req.on('error', error => {
137
+ console.error(chalk.red('Update check failed:'), error.message);
138
+ });
139
+
140
+ // Set 30 second timeout to prevent hanging
141
+ req.setTimeout(30000, () => {
142
+ req.destroy();
143
+ console.error(chalk.red('Update check timed out'));
144
+ });
145
+ });
146
+
89
147
  program
90
148
  .command('list:expansions')
91
149
  .description('List available expansion packs')
@@ -11,7 +11,7 @@ installation-options:
11
11
  ide-configurations:
12
12
  cursor:
13
13
  name: Cursor
14
- rule-dir: .cursor/rules/
14
+ rule-dir: .cursor/rules/bmad/
15
15
  format: multi-file
16
16
  command-suffix: .mdc
17
17
  instructions: |
@@ -68,7 +68,7 @@ class IdeSetup extends BaseIdeSetup {
68
68
  }
69
69
 
70
70
  async setupCursor(installDir, selectedAgent) {
71
- const cursorRulesDir = path.join(installDir, ".cursor", "rules");
71
+ const cursorRulesDir = path.join(installDir, ".cursor", "rules", "bmad");
72
72
  const agents = selectedAgent ? [selectedAgent] : await this.getAllAgentIds(installDir);
73
73
 
74
74
  await fileManager.ensureDirectory(cursorRulesDir);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-method",
3
- "version": "4.36.1",
3
+ "version": "4.37.0-beta.1",
4
4
  "description": "BMad Method installer - AI-powered Agile development framework",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {
@@ -22,12 +22,12 @@
22
22
  "author": "BMad Team",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "chalk": "^5.4.1",
25
+ "chalk": "^4.1.2",
26
26
  "commander": "^14.0.0",
27
27
  "fs-extra": "^11.3.0",
28
- "inquirer": "^12.6.3",
28
+ "inquirer": "^8.2.6",
29
29
  "js-yaml": "^4.1.0",
30
- "ora": "^8.2.0"
30
+ "ora": "^5.4.1"
31
31
  },
32
32
  "engines": {
33
33
  "node": ">=20.0.0"
@@ -557,7 +557,7 @@ class V3ToV4Upgrader {
557
557
 
558
558
  try {
559
559
  const ideMessages = {
560
- cursor: "Rules created in .cursor/rules/",
560
+ cursor: "Rules created in .cursor/rules/bmad/",
561
561
  "claude-code": "Commands created in .claude/commands/BMad/",
562
562
  windsurf: "Rules created in .windsurf/rules/",
563
563
  trae: "Rules created in.trae/rules/",
File without changes