buildcrew 1.8.2 → 1.8.3

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/bin/setup.js +26 -5
  2. package/package.json +1 -1
package/bin/setup.js CHANGED
@@ -303,16 +303,37 @@ ${d.hasAI ? "- AI-generated content treated as untrusted (sanitize before render
303
303
  if (d.apiRoutes.length > 0) log(` ${CYAN}API Routes${RESET} ${d.apiRoutes.length} found`);
304
304
  if (d.locales.length > 0) log(` ${CYAN}Locales${RESET} ${d.locales.join(", ")}`);
305
305
 
306
- // Available extras
306
+ // Interactive: offer remaining templates
307
307
  const remaining = Object.entries(TEMPLATES).filter(([name, t]) => t.file && !autoTemplates.includes(name));
308
308
  if (remaining.length > 0) {
309
- log(`\n ${BOLD}Add more:${RESET}`);
310
- for (const [name, t] of remaining) {
311
- log(` ${DIM}npx buildcrew add ${CYAN}${name}${RESET}`);
309
+ log(`\n ${BOLD}Additional harness files available:${RESET}\n`);
310
+ for (let i = 0; i < remaining.length; i++) {
311
+ const [name, t] = remaining[i];
312
+ log(` ${BOLD}${i + 1})${RESET} ${CYAN}${name}${RESET} — ${DIM}${t.desc}${RESET}`);
313
+ }
314
+ log(` ${BOLD}A)${RESET} All of the above`);
315
+ log(` ${BOLD}S)${RESET} Skip\n`);
316
+
317
+ const answer = await ask(` Which ones? ${DIM}(numbers separated by space, A for all, S to skip)${RESET} `);
318
+
319
+ if (answer === "a" || answer === "all") {
320
+ for (const [name, t] of remaining) {
321
+ await copyFile(join(TEMPLATES_SRC, t.file), join(HARNESS_DIR, `${name}.md`));
322
+ log(` ${GREEN} + ${RESET} ${name}.md`);
323
+ }
324
+ log("");
325
+ } else if (answer && answer !== "s" && answer !== "skip") {
326
+ const nums = answer.split(/[\s,]+/).map(n => parseInt(n) - 1).filter(n => n >= 0 && n < remaining.length);
327
+ for (const idx of nums) {
328
+ const [name, t] = remaining[idx];
329
+ await copyFile(join(TEMPLATES_SRC, t.file), join(HARNESS_DIR, `${name}.md`));
330
+ log(` ${GREEN} + ${RESET} ${name}.md`);
331
+ }
332
+ if (nums.length > 0) log("");
312
333
  }
313
334
  }
314
335
 
315
- log(`\n ${BOLD}Next step:${RESET} Edit ${CYAN}.claude/harness/*.md${RESET} to fill in project-specific details.`);
336
+ log(` ${BOLD}Next step:${RESET} Edit ${CYAN}.claude/harness/*.md${RESET} fill in project-specific details.`);
316
337
  log(` ${DIM}Look for <!-- comments --> — those are the parts to customize.${RESET}\n`);
317
338
  }
318
339
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buildcrew",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "description": "15 AI agents for Claude Code — full development lifecycle from product thinking to production monitoring",
5
5
  "homepage": "https://buildcrew-landing.vercel.app",
6
6
  "author": "z1nun",