maestro-bundle 2.0.1 → 2.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/cli.mjs +44 -15
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro-bundle",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "One command. Full context for your AI agent. Any editor. Install governance bundles with skills, PRD, AGENTS.md and GitHub Spec Kit.",
5
5
  "bin": {
6
6
  "maestro-bundle": "./src/cli.mjs"
package/src/cli.mjs CHANGED
@@ -113,6 +113,7 @@ function showHelp() {
113
113
  console.log("");
114
114
  console.log(chalk.dim(" Usage:"));
115
115
  console.log(` npx maestro-bundle ${chalk.green("<bundle>")} ${chalk.yellow("<editor>")} ${chalk.dim("[directory]")}`);
116
+ console.log(` npx maestro-bundle ${chalk.green("<bundle>")} ${chalk.yellow("<editor>")} ${chalk.dim("[directory]")} --no-sdd`);
116
117
  console.log("");
117
118
  console.log(chalk.dim(" Bundles:"));
118
119
  for (const [key, info] of Object.entries(BUNDLES)) {
@@ -127,8 +128,12 @@ function showHelp() {
127
128
  console.log(` ${chalk.yellow("windsurf".padEnd(12))} .windsurfrules (all in one file)`);
128
129
  console.log(` ${chalk.yellow("all".padEnd(12))} Install for all editors in the same repo`);
129
130
  console.log("");
131
+ console.log(chalk.dim(" Options:"));
132
+ console.log(` ${chalk.dim("--no-sdd")} Skip GitHub Spec Kit (no /speckit.* commands, just AGENTS.md + skills)`);
133
+ console.log("");
130
134
  console.log(chalk.dim(" Examples:"));
131
135
  console.log(` npx maestro-bundle ai-agents claude`);
136
+ console.log(` npx maestro-bundle ai-agents claude --no-sdd ${chalk.dim("# Without SDD")}`);
132
137
  console.log(` npx maestro-bundle jhipster-monorepo cursor ./my-project`);
133
138
  console.log(` npx maestro-bundle frontend-spa all`);
134
139
  console.log("");
@@ -251,9 +256,11 @@ async function main() {
251
256
  process.exit(args.length < 2 && !args.includes("--help") ? 1 : 0);
252
257
  }
253
258
 
254
- const bundleName = args[0];
255
- const editorArg = args[1];
256
- const targetDir = resolve(args[2] || ".");
259
+ const noSdd = args.includes("--no-sdd");
260
+ const filteredArgs = args.filter(a => a !== "--no-sdd");
261
+ const bundleName = filteredArgs[0];
262
+ const editorArg = filteredArgs[1];
263
+ const targetDir = resolve(filteredArgs[2] || ".");
257
264
 
258
265
  if (!BUNDLES[bundleName]) {
259
266
  console.error(chalk.red(`\n Bundle "${bundleName}" not found.\n`));
@@ -276,11 +283,19 @@ async function main() {
276
283
  process.exit(1);
277
284
  }
278
285
 
279
- // Montar AGENTS.md (base + bundle)
286
+ // Build AGENTS.md (base + bundle)
280
287
  let agentsMd = readFile(join(baseDir, "AGENTS.md"));
281
288
  const bundleAgents = readFile(join(bundleDir, "AGENTS.md"));
282
289
  if (bundleAgents) agentsMd += "\n\n---\n\n" + bundleAgents;
283
290
 
291
+ // If --no-sdd, strip SDD sections from AGENTS.md
292
+ if (noSdd) {
293
+ agentsMd = agentsMd
294
+ .replace(/## FUNDAMENTAL RULE: Specification-Driven Development[\s\S]*?(?=\n## )/g, "")
295
+ .replace(/## Specification-Driven Development[\s\S]*?(?=\n## )/g, "")
296
+ .replace(/The fundamental SDD rule[\s\S]*?(?=\n## )/g, "");
297
+ }
298
+
284
299
  // Listar skills
285
300
  const skillDirs = getSkillDirs(templatesDir, bundleName);
286
301
  const skills = listSkills(skillDirs);
@@ -351,7 +366,11 @@ async function main() {
351
366
  }
352
367
  spinner3.succeed("references/ ready");
353
368
 
354
- // 4. GitHub Spec Kit — install CLI + initialize in project
369
+ // 4. GitHub Spec Kit — install CLI + initialize in project (skip with --no-sdd)
370
+ if (noSdd) {
371
+ const spinnerSkip = ora("Skipping Spec Kit (--no-sdd)").start();
372
+ spinnerSkip.info("Spec Kit skipped. Using AGENTS.md + skills only.");
373
+ } else {
355
374
  // Map editor to specify --ai flag
356
375
  const aiFlags = {
357
376
  claude: "claude",
@@ -449,6 +468,7 @@ async function main() {
449
468
  spinner4d.succeed("Bundle constitution integrated with Spec Kit");
450
469
  }
451
470
  }
471
+ } // end if (!noSdd)
452
472
 
453
473
  // Done
454
474
  console.log("");
@@ -474,18 +494,27 @@ async function main() {
474
494
  console.log(` ${chalk.cyan(".windsurfrules")}`);
475
495
  }
476
496
  }
477
- console.log(` ${chalk.cyan("skills/")} (${skills.length} canonical for Deep Agents)`);
478
- console.log(` ${chalk.cyan(".specify/")} (GitHub Spec Kit — /speckit.* commands)`);
479
- console.log("");
480
- console.log(" SDD commands available in your editor:");
481
- console.log(` ${chalk.cyan("/speckit.constitution")} Define project principles`);
482
- console.log(` ${chalk.cyan("/speckit.specify")} — Specify WHAT and WHY`);
483
- console.log(` ${chalk.cyan("/speckit.plan")} — Plan architecture and stack`);
484
- console.log(` ${chalk.cyan("/speckit.tasks")} — Break into atomic tasks`);
485
- console.log(` ${chalk.cyan("/speckit.implement")} — Execute tasks`);
497
+
498
+ if (!noSdd) {
499
+ console.log(` ${chalk.cyan(".specify/")} (GitHub Spec Kit — /speckit.* commands)`);
500
+ console.log("");
501
+ console.log(" SDD commands available in your editor:");
502
+ console.log(` ${chalk.cyan("/speckit.specify")} — Specify WHAT and WHY`);
503
+ console.log(` ${chalk.cyan("/speckit.plan")} — Plan architecture and stack`);
504
+ console.log(` ${chalk.cyan("/speckit.tasks")} — Break into atomic tasks`);
505
+ console.log(` ${chalk.cyan("/speckit.implement")} — Execute tasks`);
506
+ }
507
+
486
508
  console.log("");
487
509
  console.log(" Next step:");
488
- console.log(" Open your project in your AI editor and use " + chalk.cyan("/speckit.specify") + " to get started");
510
+ if (noSdd) {
511
+ console.log(" 1. Fill in PRD.md with your product requirements");
512
+ console.log(" 2. Open the project in your AI editor and start coding");
513
+ } else {
514
+ console.log(" 1. Fill in PRD.md with your product requirements");
515
+ console.log(" 2. Open the project in your AI editor");
516
+ console.log(" 3. Use " + chalk.cyan("/speckit.specify") + " to start your first feature");
517
+ }
489
518
  console.log("");
490
519
  }
491
520