bmalph 2.6.0 → 2.7.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 +33 -31
- package/bmad/lite/create-prd.md +145 -0
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/check-updates.js +1 -1
- package/dist/commands/check-updates.js.map +1 -1
- package/dist/commands/doctor-checks.js +103 -0
- package/dist/commands/doctor-checks.js.map +1 -0
- package/dist/commands/doctor-health-checks.js +101 -0
- package/dist/commands/doctor-health-checks.js.map +1 -0
- package/dist/commands/doctor-runtime-checks.js +143 -0
- package/dist/commands/doctor-runtime-checks.js.map +1 -0
- package/dist/commands/doctor.js +5 -369
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/implement.js +9 -14
- package/dist/commands/implement.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/status.js +4 -44
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/upgrade.js +1 -1
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/installer.js +321 -50
- package/dist/installer.js.map +1 -1
- package/dist/platform/aider.js +1 -1
- package/dist/platform/aider.js.map +1 -1
- package/dist/platform/claude-code.js +1 -1
- package/dist/platform/codex.js +3 -3
- package/dist/platform/codex.js.map +1 -1
- package/dist/platform/copilot.js +1 -1
- package/dist/platform/copilot.js.map +1 -1
- package/dist/platform/cursor.js +5 -4
- package/dist/platform/cursor.js.map +1 -1
- package/dist/platform/doctor-checks.js +16 -7
- package/dist/platform/doctor-checks.js.map +1 -1
- package/dist/platform/instructions-snippet.js +37 -38
- package/dist/platform/instructions-snippet.js.map +1 -1
- package/dist/platform/types.js +9 -1
- package/dist/platform/types.js.map +1 -1
- package/dist/platform/windsurf.js +1 -1
- package/dist/platform/windsurf.js.map +1 -1
- package/dist/reset.js +18 -7
- package/dist/reset.js.map +1 -1
- package/dist/run/ralph-process.js +14 -8
- package/dist/run/ralph-process.js.map +1 -1
- package/dist/transition/artifact-scan.js +3 -13
- package/dist/transition/artifact-scan.js.map +1 -1
- package/dist/transition/orchestration.js +16 -26
- package/dist/transition/orchestration.js.map +1 -1
- package/dist/transition/specs-index.js +4 -4
- package/dist/transition/specs-index.js.map +1 -1
- package/dist/transition/tech-stack.js +1 -1
- package/dist/transition/tech-stack.js.map +1 -1
- package/dist/utils/artifact-definitions.js +19 -0
- package/dist/utils/artifact-definitions.js.map +1 -0
- package/dist/utils/constants.js +4 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/file-system.js +1 -1
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/format-status.js +31 -0
- package/dist/utils/format-status.js.map +1 -0
- package/dist/utils/json.js +3 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/validate.js +12 -15
- package/dist/utils/validate.js.map +1 -1
- package/dist/watch/dashboard.js +22 -11
- package/dist/watch/dashboard.js.map +1 -1
- package/dist/watch/renderer.js +1 -15
- package/dist/watch/renderer.js.map +1 -1
- package/package.json +2 -2
- package/ralph/drivers/cursor.sh +90 -0
- package/ralph/ralph_loop.sh +20 -13
- package/ralph/templates/ralphrc.template +1 -1
- package/dist/platform/index.js +0 -4
- package/dist/platform/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement.js","sourceRoot":"","sources":["../../src/commands/implement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"implement.js","sourceRoot":"","sources":["../../src/commands/implement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAQnE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC9D,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAAyB;IACnD,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEtC,uDAAuD;IACvD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACzE,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CACT,yFAAyF,CAC1F,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAE1D,6CAA6C;IAC7C,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,UAAU;IACV,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,YAAY,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC;IAE5F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,sBAAsB;IACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,wCAAwC,wBAAwB,EAAE,KAAK;YACrE,qBAAqB,QAAQ,CAAC,WAAW,EAAE,CAC9C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAqB;IACzC,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -97,7 +97,7 @@ async function runInit(options) {
|
|
|
97
97
|
const validatedName = validateProjectName(name);
|
|
98
98
|
console.log(chalk.blue(`\nInstalling BMAD + Ralph for ${platform.displayName}...`));
|
|
99
99
|
await installProject(projectDir, platform);
|
|
100
|
-
const bundledVersions = getBundledVersions();
|
|
100
|
+
const bundledVersions = await getBundledVersions();
|
|
101
101
|
const config = {
|
|
102
102
|
name: validatedName,
|
|
103
103
|
description: description ?? "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/status.js
CHANGED
|
@@ -2,6 +2,8 @@ import chalk from "chalk";
|
|
|
2
2
|
import { readConfig } from "../utils/config.js";
|
|
3
3
|
import { readState, readRalphStatus, getPhaseLabel, getPhaseInfo } from "../utils/state.js";
|
|
4
4
|
import { withErrorHandling } from "../utils/errors.js";
|
|
5
|
+
import { formatStatus } from "../utils/format-status.js";
|
|
6
|
+
import { ARTIFACT_DEFINITIONS } from "../utils/artifact-definitions.js";
|
|
5
7
|
import { resolveProjectPlatform } from "../platform/resolve.js";
|
|
6
8
|
import { getFullTierPlatformNames } from "../platform/registry.js";
|
|
7
9
|
import { scanProjectArtifacts } from "../transition/artifact-scan.js";
|
|
@@ -97,7 +99,7 @@ export async function runStatus(options) {
|
|
|
97
99
|
if (phase === 4 && ralphStatus) {
|
|
98
100
|
console.log("");
|
|
99
101
|
console.log(chalk.bold(" Ralph Loop"));
|
|
100
|
-
console.log(` ${chalk.cyan("Status:")} ${
|
|
102
|
+
console.log(` ${chalk.cyan("Status:")} ${formatStatus(ralphStatus.status)}`);
|
|
101
103
|
console.log(` ${chalk.cyan("Loop count:")} ${ralphStatus.loopCount}`);
|
|
102
104
|
console.log(` ${chalk.cyan("Tasks:")} ${ralphStatus.tasksCompleted}/${ralphStatus.tasksTotal}`);
|
|
103
105
|
}
|
|
@@ -116,22 +118,6 @@ export async function runStatus(options) {
|
|
|
116
118
|
console.log(` ${chalk.cyan("Next:")} ${nextAction}`);
|
|
117
119
|
}
|
|
118
120
|
}
|
|
119
|
-
const ARTIFACT_DEFINITIONS = [
|
|
120
|
-
{ phase: 1, name: "Product Brief", required: false },
|
|
121
|
-
{ phase: 1, name: "Market Research", required: false },
|
|
122
|
-
{ phase: 1, name: "Domain Research", required: false },
|
|
123
|
-
{ phase: 1, name: "Technical Research", required: false },
|
|
124
|
-
{ phase: 2, name: "PRD", required: true },
|
|
125
|
-
{ phase: 2, name: "UX Design", required: false },
|
|
126
|
-
{ phase: 3, name: "Architecture", required: true },
|
|
127
|
-
{ phase: 3, name: "Epics & Stories", required: true },
|
|
128
|
-
{ phase: 3, name: "Readiness Report", required: true },
|
|
129
|
-
];
|
|
130
|
-
const PHASE_LABELS = {
|
|
131
|
-
1: "Phase 1 - Analysis",
|
|
132
|
-
2: "Phase 2 - Planning",
|
|
133
|
-
3: "Phase 3 - Solutioning",
|
|
134
|
-
};
|
|
135
121
|
function printArtifactChecklist(scan) {
|
|
136
122
|
const foundByName = new Map();
|
|
137
123
|
for (const artifacts of [scan.phases[1], scan.phases[2], scan.phases[3]]) {
|
|
@@ -143,7 +129,7 @@ function printArtifactChecklist(scan) {
|
|
|
143
129
|
for (const def of ARTIFACT_DEFINITIONS) {
|
|
144
130
|
if (def.phase !== currentPhase) {
|
|
145
131
|
currentPhase = def.phase;
|
|
146
|
-
console.log(` ${
|
|
132
|
+
console.log(` Phase ${currentPhase} - ${getPhaseLabel(currentPhase)}`);
|
|
147
133
|
}
|
|
148
134
|
const found = foundByName.get(def.name);
|
|
149
135
|
if (found) {
|
|
@@ -155,32 +141,6 @@ function printArtifactChecklist(scan) {
|
|
|
155
141
|
}
|
|
156
142
|
}
|
|
157
143
|
}
|
|
158
|
-
function formatStatus(status) {
|
|
159
|
-
switch (status) {
|
|
160
|
-
case "planning":
|
|
161
|
-
return chalk.blue("planning");
|
|
162
|
-
case "implementing":
|
|
163
|
-
return chalk.yellow("implementing");
|
|
164
|
-
case "completed":
|
|
165
|
-
return chalk.green("completed");
|
|
166
|
-
default:
|
|
167
|
-
return status;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
function formatRalphStatus(status) {
|
|
171
|
-
switch (status) {
|
|
172
|
-
case "running":
|
|
173
|
-
return chalk.yellow("running");
|
|
174
|
-
case "blocked":
|
|
175
|
-
return chalk.red("blocked");
|
|
176
|
-
case "completed":
|
|
177
|
-
return chalk.green("completed");
|
|
178
|
-
case "not_started":
|
|
179
|
-
return chalk.dim("not started");
|
|
180
|
-
default:
|
|
181
|
-
return status;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
144
|
function getNextAction(phase, status, ralphStatus, platform) {
|
|
185
145
|
if (status === "completed") {
|
|
186
146
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/upgrade.js
CHANGED
|
@@ -46,7 +46,7 @@ async function runUpgrade(options) {
|
|
|
46
46
|
// Update upstreamVersions in config to match bundled versions
|
|
47
47
|
const config = await readConfig(projectDir);
|
|
48
48
|
if (config) {
|
|
49
|
-
config.upstreamVersions = getBundledVersions();
|
|
49
|
+
config.upstreamVersions = await getBundledVersions();
|
|
50
50
|
await writeConfig(projectDir, config);
|
|
51
51
|
}
|
|
52
52
|
console.log(chalk.green("\nUpdated:"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAqB,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAQhE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAuB;IAC1D,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAAuB;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAEtC,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,qCAAqC;IACrC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE1D,sBAAsB;IACtB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAmB;YAC9B,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;YACzE,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;SAC1E,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;YAC9B,OAAO,EAAE,8CAA8C;YACvD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,QAAQ,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC;IAEnF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAElD,8DAA8D;IAC9D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/installer.js
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { cp, mkdir, readFile, readdir, rm, chmod, rename } from "node:fs/promises";
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
3
2
|
import { join, basename, dirname } from "node:path";
|
|
4
3
|
import { fileURLToPath } from "node:url";
|
|
5
4
|
import { debug, warn } from "./utils/logger.js";
|
|
6
5
|
import { formatError, isEnoent } from "./utils/errors.js";
|
|
7
6
|
import { exists, atomicWriteFile, parseGitignoreLines, replaceSection, } from "./utils/file-system.js";
|
|
8
|
-
import { STATE_DIR, CONFIG_FILE } from "./utils/constants.js";
|
|
7
|
+
import { STATE_DIR, CONFIG_FILE, SKILLS_DIR, SKILLS_PREFIX } from "./utils/constants.js";
|
|
9
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
9
|
const __dirname = dirname(__filename);
|
|
11
|
-
export function getPackageVersion() {
|
|
10
|
+
export async function getPackageVersion() {
|
|
12
11
|
const pkgPath = join(__dirname, "..", "package.json");
|
|
13
12
|
try {
|
|
14
|
-
const pkg = JSON.parse(
|
|
13
|
+
const pkg = JSON.parse(await readFile(pkgPath, "utf-8"));
|
|
15
14
|
return pkg.version ?? "unknown";
|
|
16
15
|
}
|
|
17
|
-
catch {
|
|
16
|
+
catch (err) {
|
|
17
|
+
if (!isEnoent(err)) {
|
|
18
|
+
debug(`Failed to read package.json: ${formatError(err)}`);
|
|
19
|
+
}
|
|
18
20
|
return "unknown";
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
|
-
export function getBundledVersions() {
|
|
23
|
+
export async function getBundledVersions() {
|
|
22
24
|
const versionsPath = join(__dirname, "..", "bundled-versions.json");
|
|
23
25
|
try {
|
|
24
|
-
const versions = JSON.parse(
|
|
26
|
+
const versions = JSON.parse(await readFile(versionsPath, "utf-8"));
|
|
25
27
|
if (!versions || typeof versions.bmadCommit !== "string") {
|
|
26
28
|
throw new Error("Invalid bundled-versions.json structure: missing bmadCommit");
|
|
27
29
|
}
|
|
@@ -75,65 +77,319 @@ async function getDefaultPlatform() {
|
|
|
75
77
|
* Deliver slash commands based on the platform's command delivery strategy.
|
|
76
78
|
*
|
|
77
79
|
* - "directory": Copy command files to a directory (e.g., .claude/commands/)
|
|
78
|
-
* - "
|
|
79
|
-
* - "
|
|
80
|
+
* - "skills": No-op — commands are generated as skills by generateSkills()
|
|
81
|
+
* - "index": No-op — commands are discoverable via _bmad/COMMANDS.md
|
|
80
82
|
*/
|
|
81
83
|
async function deliverCommands(projectDir, platform, slashCommandsDir) {
|
|
82
84
|
const delivery = platform.commandDelivery;
|
|
83
|
-
if (delivery.kind
|
|
85
|
+
if (delivery.kind !== "directory") {
|
|
84
86
|
return [];
|
|
85
87
|
}
|
|
86
88
|
const slashFiles = await readdir(slashCommandsDir);
|
|
87
89
|
const bundledCommandNames = new Set(slashFiles.filter((f) => f.endsWith(".md")));
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
90
|
+
const commandsDir = join(projectDir, delivery.dir);
|
|
91
|
+
await mkdir(commandsDir, { recursive: true });
|
|
92
|
+
// Clean stale bmalph-owned commands before copying (preserve user-created commands)
|
|
93
|
+
try {
|
|
94
|
+
const existingCommands = await readdir(commandsDir);
|
|
95
|
+
for (const file of existingCommands) {
|
|
96
|
+
if (file.endsWith(".md") && bundledCommandNames.has(file)) {
|
|
97
|
+
await rm(join(commandsDir, file), { force: true });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
if (!isEnoent(err))
|
|
103
|
+
throw err;
|
|
104
|
+
}
|
|
105
|
+
for (const file of bundledCommandNames) {
|
|
106
|
+
await cp(join(slashCommandsDir, file), join(commandsDir, file), { dereference: false });
|
|
107
|
+
}
|
|
108
|
+
return [`${delivery.dir}/`];
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Parse a CSV row handling double-quoted fields.
|
|
112
|
+
*/
|
|
113
|
+
function parseCsvRow(row) {
|
|
114
|
+
const fields = [];
|
|
115
|
+
let current = "";
|
|
116
|
+
let inQuotes = false;
|
|
117
|
+
for (let i = 0; i < row.length; i++) {
|
|
118
|
+
const ch = row[i];
|
|
119
|
+
if (inQuotes) {
|
|
120
|
+
if (ch === '"') {
|
|
121
|
+
if (i + 1 < row.length && row[i + 1] === '"') {
|
|
122
|
+
current += '"';
|
|
123
|
+
i++;
|
|
97
124
|
}
|
|
125
|
+
else {
|
|
126
|
+
inQuotes = false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
current += ch;
|
|
98
131
|
}
|
|
99
132
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
throw err;
|
|
133
|
+
else if (ch === '"') {
|
|
134
|
+
inQuotes = true;
|
|
103
135
|
}
|
|
104
|
-
|
|
105
|
-
|
|
136
|
+
else if (ch === ",") {
|
|
137
|
+
fields.push(current);
|
|
138
|
+
current = "";
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
current += ch;
|
|
106
142
|
}
|
|
107
|
-
return [`${delivery.dir}/`];
|
|
108
143
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
144
|
+
fields.push(current);
|
|
145
|
+
return fields;
|
|
146
|
+
}
|
|
147
|
+
const AGENT_DESCRIPTIONS = {
|
|
148
|
+
analyst: "Research, briefs, discovery",
|
|
149
|
+
architect: "Technical design, architecture",
|
|
150
|
+
pm: "PRDs, epics, stories",
|
|
151
|
+
sm: "Sprint planning, status, coordination",
|
|
152
|
+
dev: "Implementation, coding",
|
|
153
|
+
"ux-designer": "User experience, wireframes",
|
|
154
|
+
qa: "Test automation, quality assurance",
|
|
155
|
+
"tech-writer": "Documentation, technical writing",
|
|
156
|
+
"quick-flow-solo-dev": "Quick one-off tasks, small changes",
|
|
157
|
+
};
|
|
158
|
+
const BMALPH_COMMANDS = {
|
|
159
|
+
bmalph: {
|
|
160
|
+
description: "BMAD master agent — navigate phases",
|
|
161
|
+
howToRun: "Read and follow the master agent instructions in this file",
|
|
162
|
+
},
|
|
163
|
+
"bmalph-implement": {
|
|
164
|
+
description: "Transition planning artifacts to Ralph format",
|
|
165
|
+
howToRun: "Run `bmalph implement`",
|
|
166
|
+
},
|
|
167
|
+
"bmalph-status": {
|
|
168
|
+
description: "Show current phase, Ralph progress, version info",
|
|
169
|
+
howToRun: "Run `bmalph status`",
|
|
170
|
+
},
|
|
171
|
+
"bmalph-upgrade": {
|
|
172
|
+
description: "Update bundled assets to current version",
|
|
173
|
+
howToRun: "Run `bmalph upgrade`",
|
|
174
|
+
},
|
|
175
|
+
"bmalph-doctor": {
|
|
176
|
+
description: "Check project health and report issues",
|
|
177
|
+
howToRun: "Run `bmalph doctor`",
|
|
178
|
+
},
|
|
179
|
+
"bmalph-watch": {
|
|
180
|
+
description: "Launch Ralph live dashboard",
|
|
181
|
+
howToRun: "Run `bmalph run`",
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
const PHASE_SECTIONS = [
|
|
185
|
+
{ key: "1-analysis", label: "Phase 1: Analysis" },
|
|
186
|
+
{ key: "2-planning", label: "Phase 2: Planning" },
|
|
187
|
+
{ key: "3-solutioning", label: "Phase 3: Solutioning" },
|
|
188
|
+
{ key: "4-implementation", label: "Phase 4: Implementation" },
|
|
189
|
+
{ key: "anytime", label: "Utilities" },
|
|
190
|
+
];
|
|
191
|
+
// CSV column indices for bmad-help.csv
|
|
192
|
+
const CSV_COL_PHASE = 1;
|
|
193
|
+
const CSV_COL_NAME = 2;
|
|
194
|
+
const CSV_COL_WORKFLOW_FILE = 5;
|
|
195
|
+
const CSV_COL_DESCRIPTION = 10;
|
|
196
|
+
const FALLBACK_PHASE = "anytime";
|
|
197
|
+
/** CLI-pointer bmalph commands are all bmalph-* except the master "bmalph" command. */
|
|
198
|
+
function isCliPointer(cmd) {
|
|
199
|
+
return cmd.kind === "bmalph" && cmd.name !== "bmalph";
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Classify all slash commands by reading CSV metadata and file contents.
|
|
203
|
+
* Shared by generateCommandIndex() and generateSkills().
|
|
204
|
+
*/
|
|
205
|
+
export async function classifyCommands(projectDir, slashCmdsDir) {
|
|
206
|
+
const helpCsvPath = join(projectDir, "_bmad/_config/bmad-help.csv");
|
|
207
|
+
const helpCsv = await readFile(helpCsvPath, "utf-8");
|
|
208
|
+
// Parse CSV: build workflow-file → {phase, description} lookup
|
|
209
|
+
const csvLines = helpCsv.trimEnd().split(/\r?\n/);
|
|
210
|
+
const workflowLookup = new Map();
|
|
211
|
+
for (const line of csvLines.slice(1)) {
|
|
212
|
+
if (!line.trim())
|
|
213
|
+
continue;
|
|
214
|
+
const fields = parseCsvRow(line);
|
|
215
|
+
const workflowFile = fields[CSV_COL_WORKFLOW_FILE]?.trim();
|
|
216
|
+
if (workflowFile) {
|
|
217
|
+
workflowLookup.set(workflowFile, {
|
|
218
|
+
phase: fields[CSV_COL_PHASE]?.trim() ?? FALLBACK_PHASE,
|
|
219
|
+
description: fields[CSV_COL_DESCRIPTION]?.trim() ?? fields[CSV_COL_NAME]?.trim() ?? "",
|
|
220
|
+
});
|
|
115
221
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
222
|
+
}
|
|
223
|
+
// Read slash command files
|
|
224
|
+
const slashFiles = (await readdir(slashCmdsDir)).filter((f) => f.endsWith(".md")).sort();
|
|
225
|
+
const results = [];
|
|
226
|
+
for (const file of slashFiles) {
|
|
227
|
+
const name = file.replace(/\.md$/, "");
|
|
228
|
+
const body = (await readFile(join(slashCmdsDir, file), "utf-8")).trim();
|
|
229
|
+
const firstLine = body.split("\n")[0].trim();
|
|
230
|
+
// Extract _bmad/ file references from content
|
|
231
|
+
const fileRefs = [...body.matchAll(/`(_bmad\/[^`]+)`/g)].map((m) => m[1]);
|
|
232
|
+
const agentRef = fileRefs.find((ref) => ref.includes("/agents/"));
|
|
233
|
+
const workflowRef = fileRefs.find((ref) => ref.includes("/workflows/") || ref.includes("/tasks/"));
|
|
234
|
+
// Classify: bmalph CLI commands
|
|
235
|
+
if (name.startsWith("bmalph")) {
|
|
236
|
+
const known = BMALPH_COMMANDS[name];
|
|
237
|
+
const desc = known?.description ?? name.replace(/-/g, " ");
|
|
238
|
+
const howToRun = known?.howToRun ?? `Run \`bmalph ${name.replace("bmalph-", "")}\``;
|
|
239
|
+
results.push({
|
|
240
|
+
name,
|
|
241
|
+
description: desc,
|
|
242
|
+
invocation: firstLine,
|
|
243
|
+
body,
|
|
244
|
+
kind: "bmalph",
|
|
245
|
+
howToRun,
|
|
246
|
+
});
|
|
247
|
+
continue;
|
|
119
248
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
249
|
+
// Classify: workflow/task commands (matched via CSV)
|
|
250
|
+
if (workflowRef && workflowLookup.has(workflowRef)) {
|
|
251
|
+
const csv = workflowLookup.get(workflowRef);
|
|
252
|
+
results.push({
|
|
253
|
+
name,
|
|
254
|
+
description: csv.description,
|
|
255
|
+
invocation: firstLine,
|
|
256
|
+
body,
|
|
257
|
+
kind: "workflow",
|
|
258
|
+
phase: csv.phase,
|
|
259
|
+
});
|
|
260
|
+
continue;
|
|
125
261
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
262
|
+
// Classify: pure agent commands
|
|
263
|
+
if (agentRef && !workflowRef) {
|
|
264
|
+
results.push({
|
|
265
|
+
name,
|
|
266
|
+
description: AGENT_DESCRIPTIONS[name] ?? name,
|
|
267
|
+
invocation: firstLine,
|
|
268
|
+
body,
|
|
269
|
+
kind: "agent",
|
|
270
|
+
});
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
// Fallback: unmatched commands go to utilities
|
|
274
|
+
results.push({
|
|
275
|
+
name,
|
|
276
|
+
description: name.replace(/-/g, " "),
|
|
277
|
+
invocation: firstLine,
|
|
278
|
+
body,
|
|
279
|
+
kind: "utility",
|
|
280
|
+
phase: FALLBACK_PHASE,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
return results;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Generate _bmad/COMMANDS.md from pre-classified slash commands.
|
|
287
|
+
* Provides command discoverability for platforms without native slash command support.
|
|
288
|
+
*/
|
|
289
|
+
export async function generateCommandIndex(projectDir, classified) {
|
|
290
|
+
const agents = [];
|
|
291
|
+
const phaseGroups = {};
|
|
292
|
+
const bmalpEntries = [];
|
|
293
|
+
for (const cmd of classified) {
|
|
294
|
+
if (cmd.kind === "bmalph") {
|
|
295
|
+
bmalpEntries.push({
|
|
296
|
+
name: cmd.name,
|
|
297
|
+
description: cmd.description,
|
|
298
|
+
howToRun: cmd.howToRun,
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
else if (cmd.kind === "agent") {
|
|
302
|
+
agents.push({ name: cmd.name, description: cmd.description, invocation: cmd.invocation });
|
|
303
|
+
}
|
|
304
|
+
else if (cmd.kind === "workflow") {
|
|
305
|
+
const phase = cmd.phase;
|
|
306
|
+
if (!phaseGroups[phase])
|
|
307
|
+
phaseGroups[phase] = [];
|
|
308
|
+
phaseGroups[phase].push({
|
|
309
|
+
name: cmd.name,
|
|
310
|
+
description: cmd.description,
|
|
311
|
+
invocation: cmd.invocation,
|
|
312
|
+
});
|
|
130
313
|
}
|
|
131
314
|
else {
|
|
132
|
-
|
|
315
|
+
const phase = cmd.phase ?? FALLBACK_PHASE;
|
|
316
|
+
if (!phaseGroups[phase])
|
|
317
|
+
phaseGroups[phase] = [];
|
|
318
|
+
phaseGroups[phase].push({
|
|
319
|
+
name: cmd.name,
|
|
320
|
+
description: cmd.description,
|
|
321
|
+
invocation: cmd.invocation,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
// Build markdown
|
|
326
|
+
const sections = ["# BMAD Commands\n\n> Auto-generated by bmalph. Do not edit.\n"];
|
|
327
|
+
if (agents.length > 0) {
|
|
328
|
+
sections.push(formatCommandTable("Agents", agents));
|
|
329
|
+
}
|
|
330
|
+
for (const { key, label } of PHASE_SECTIONS) {
|
|
331
|
+
const entries = phaseGroups[key];
|
|
332
|
+
if (entries && entries.length > 0) {
|
|
333
|
+
sections.push(formatCommandTable(label, entries));
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
if (bmalpEntries.length > 0) {
|
|
337
|
+
sections.push(formatCommandTable("bmalph CLI", bmalpEntries.map((b) => ({
|
|
338
|
+
name: b.name,
|
|
339
|
+
description: b.description,
|
|
340
|
+
invocation: b.howToRun,
|
|
341
|
+
})), "How to run"));
|
|
342
|
+
}
|
|
343
|
+
await atomicWriteFile(join(projectDir, "_bmad/COMMANDS.md"), sections.join("\n"));
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Generate Codex Skills from pre-classified slash commands.
|
|
347
|
+
* Creates .agents/skills/bmad-<name>/SKILL.md for each non-CLI-pointer command.
|
|
348
|
+
*/
|
|
349
|
+
export async function generateSkills(projectDir, classified) {
|
|
350
|
+
const skillsBaseDir = join(projectDir, SKILLS_DIR);
|
|
351
|
+
// Cleanup: remove existing bmad-* skill directories
|
|
352
|
+
try {
|
|
353
|
+
const existingDirs = await readdir(skillsBaseDir);
|
|
354
|
+
for (const dir of existingDirs) {
|
|
355
|
+
if (dir.startsWith(SKILLS_PREFIX)) {
|
|
356
|
+
await rm(join(skillsBaseDir, dir), { recursive: true, force: true });
|
|
357
|
+
}
|
|
133
358
|
}
|
|
134
|
-
return [platform.instructionsFile];
|
|
135
359
|
}
|
|
136
|
-
|
|
360
|
+
catch (err) {
|
|
361
|
+
if (!isEnoent(err))
|
|
362
|
+
throw err;
|
|
363
|
+
}
|
|
364
|
+
// Generate skills for non-CLI-pointer commands
|
|
365
|
+
for (const cmd of classified) {
|
|
366
|
+
if (isCliPointer(cmd))
|
|
367
|
+
continue;
|
|
368
|
+
const skillDir = join(skillsBaseDir, `${SKILLS_PREFIX}${cmd.name}`);
|
|
369
|
+
await mkdir(skillDir, { recursive: true });
|
|
370
|
+
const skillContent = `---
|
|
371
|
+
name: ${cmd.name}
|
|
372
|
+
description: >
|
|
373
|
+
${cmd.description}. Use when the user asks about ${cmd.name.replace(/-/g, " ")}.
|
|
374
|
+
metadata:
|
|
375
|
+
managed-by: bmalph
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
${cmd.body}
|
|
379
|
+
`;
|
|
380
|
+
await atomicWriteFile(join(skillDir, "SKILL.md"), skillContent);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
function formatCommandTable(heading, entries, thirdCol = "Invocation") {
|
|
384
|
+
const lines = [
|
|
385
|
+
`## ${heading}\n`,
|
|
386
|
+
`| Command | Description | ${thirdCol} |`,
|
|
387
|
+
"|---------|-------------|------------|",
|
|
388
|
+
];
|
|
389
|
+
for (const e of entries) {
|
|
390
|
+
lines.push(`| ${e.name} | ${e.description} | ${e.invocation} |`);
|
|
391
|
+
}
|
|
392
|
+
return lines.join("\n") + "\n";
|
|
137
393
|
}
|
|
138
394
|
export async function copyBundledAssets(projectDir, platform) {
|
|
139
395
|
const p = platform ?? (await getDefaultPlatform());
|
|
@@ -189,6 +445,14 @@ export async function copyBundledAssets(projectDir, platform) {
|
|
|
189
445
|
await rm(bmadOld, { recursive: true, force: true });
|
|
190
446
|
// Generate combined manifest from module-help.csv files
|
|
191
447
|
await generateManifests(projectDir);
|
|
448
|
+
// Classify commands once, reuse for both COMMANDS.md and skills generation
|
|
449
|
+
const classified = await classifyCommands(projectDir, slashCommandsDir);
|
|
450
|
+
// Generate _bmad/COMMANDS.md for command discoverability
|
|
451
|
+
await generateCommandIndex(projectDir, classified);
|
|
452
|
+
// Generate Codex Skills for skills-based platforms
|
|
453
|
+
if (p.commandDelivery.kind === "skills") {
|
|
454
|
+
await generateSkills(projectDir, classified);
|
|
455
|
+
}
|
|
192
456
|
// Generate _bmad/config.yaml with platform-specific value
|
|
193
457
|
const projectName = await deriveProjectName(projectDir);
|
|
194
458
|
const escapedName = projectName.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
@@ -236,7 +500,7 @@ modules:
|
|
|
236
500
|
// Copy Ralph loop and lib → .ralph/
|
|
237
501
|
// Add version marker to ralph_loop.sh
|
|
238
502
|
const loopContent = await readFile(join(ralphDir, "ralph_loop.sh"), "utf-8");
|
|
239
|
-
const markerLine = `# bmalph-version: ${getPackageVersion()}`;
|
|
503
|
+
const markerLine = `# bmalph-version: ${await getPackageVersion()}`;
|
|
240
504
|
// Use .* to handle empty version (edge case) and EOF without newline
|
|
241
505
|
const markedContent = loopContent.includes("# bmalph-version:")
|
|
242
506
|
? loopContent.replace(/# bmalph-version:.*/, markerLine)
|
|
@@ -422,14 +686,18 @@ export async function previewInstall(projectDir, platform) {
|
|
|
422
686
|
".ralph/docs/generated/",
|
|
423
687
|
"_bmad/",
|
|
424
688
|
];
|
|
425
|
-
// Add command directory
|
|
689
|
+
// Add command directory based on delivery strategy
|
|
426
690
|
if (p.commandDelivery.kind === "directory") {
|
|
427
691
|
dirsToCreate.push(`${p.commandDelivery.dir}/`);
|
|
428
692
|
}
|
|
693
|
+
else if (p.commandDelivery.kind === "skills") {
|
|
694
|
+
dirsToCreate.push(`${SKILLS_DIR}/`);
|
|
695
|
+
}
|
|
429
696
|
for (const dir of dirsToCreate) {
|
|
430
697
|
if (await exists(join(projectDir, dir))) {
|
|
431
698
|
if (dir === "_bmad/" ||
|
|
432
|
-
(p.commandDelivery.kind === "directory" && dir === `${p.commandDelivery.dir}/`)
|
|
699
|
+
(p.commandDelivery.kind === "directory" && dir === `${p.commandDelivery.dir}/`) ||
|
|
700
|
+
(p.commandDelivery.kind === "skills" && dir === `${SKILLS_DIR}/`)) {
|
|
433
701
|
wouldModify.push(dir);
|
|
434
702
|
}
|
|
435
703
|
}
|
|
@@ -494,10 +762,13 @@ export async function previewUpgrade(projectDir, platform) {
|
|
|
494
762
|
{ path: ".ralph/RALPH-REFERENCE.md", isDir: false },
|
|
495
763
|
{ path: ".gitignore", isDir: false },
|
|
496
764
|
];
|
|
497
|
-
// Add command directory
|
|
765
|
+
// Add command directory based on delivery strategy
|
|
498
766
|
if (p.commandDelivery.kind === "directory") {
|
|
499
767
|
managedPaths.push({ path: `${p.commandDelivery.dir}/`, isDir: true });
|
|
500
768
|
}
|
|
769
|
+
else if (p.commandDelivery.kind === "skills") {
|
|
770
|
+
managedPaths.push({ path: `${SKILLS_DIR}/`, isDir: true });
|
|
771
|
+
}
|
|
501
772
|
const wouldUpdate = [];
|
|
502
773
|
const wouldCreate = [];
|
|
503
774
|
const wouldPreserve = [];
|