@sixsevenai/ai-dlc-installer 1.4.1 → 1.4.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 (153) hide show
  1. package/dist/cli.js +65 -5
  2. package/dist/cli.js.map +1 -1
  3. package/library/commands/ai-dlc/add-unit.md +142 -142
  4. package/library/commands/ai-dlc/analyze-refinement-scope.md +224 -224
  5. package/library/commands/ai-dlc/apply-refinements.md +240 -240
  6. package/library/commands/ai-dlc/archive-session.md +281 -281
  7. package/library/commands/ai-dlc/assess-risks.md +392 -392
  8. package/library/commands/ai-dlc/build-tests.md +276 -276
  9. package/library/commands/ai-dlc/claude-execute.md +209 -209
  10. package/library/commands/ai-dlc/claude-parallel.md +383 -383
  11. package/library/commands/ai-dlc/claude-review.md +399 -399
  12. package/library/commands/ai-dlc/code-skeptic.md +359 -359
  13. package/library/commands/ai-dlc/codex-execute.md +105 -105
  14. package/library/commands/ai-dlc/collect-refinement-feedback.md +243 -243
  15. package/library/commands/ai-dlc/complete-bolt.md +317 -317
  16. package/library/commands/ai-dlc/construct-unit.md +234 -234
  17. package/library/commands/ai-dlc/create-diagram.md +327 -327
  18. package/library/commands/ai-dlc/create-excalidraw-diagram.md +319 -319
  19. package/library/commands/ai-dlc/create-pipeline.md +391 -391
  20. package/library/commands/ai-dlc/create-runbook.md +263 -263
  21. package/library/commands/ai-dlc/create-units.md +335 -335
  22. package/library/commands/ai-dlc/deploy.md +270 -270
  23. package/library/commands/ai-dlc/design-api.md +371 -371
  24. package/library/commands/ai-dlc/design-database.md +311 -311
  25. package/library/commands/ai-dlc/design-domain-models.md +100 -100
  26. package/library/commands/ai-dlc/design-ui-tests.md +351 -351
  27. package/library/commands/ai-dlc/design-ui.md +347 -347
  28. package/library/commands/ai-dlc/domain-model.md +339 -339
  29. package/library/commands/ai-dlc/elicit-nfrs.md +384 -384
  30. package/library/commands/ai-dlc/engage-stakeholders.md +91 -91
  31. package/library/commands/ai-dlc/generate-code.md +273 -273
  32. package/library/commands/ai-dlc/generate-docs.md +359 -359
  33. package/library/commands/ai-dlc/generate-stories.md +337 -337
  34. package/library/commands/ai-dlc/handle-cross-phase-refinement.md +225 -225
  35. package/library/commands/ai-dlc/implement-ui-tests.md +320 -320
  36. package/library/commands/ai-dlc/incident-respond.md +264 -264
  37. package/library/commands/ai-dlc/logical-design.md +339 -339
  38. package/library/commands/ai-dlc/maker-execute.md +316 -316
  39. package/library/commands/ai-dlc/maker-status.md +422 -422
  40. package/library/commands/ai-dlc/mob-elaborate.md +172 -172
  41. package/library/commands/ai-dlc/multi-ai-compare.md +156 -156
  42. package/library/commands/ai-dlc/next-bolt.md +373 -373
  43. package/library/commands/ai-dlc/next-phase.md +229 -229
  44. package/library/commands/ai-dlc/package-unit.md +198 -198
  45. package/library/commands/ai-dlc/plan-bolt.md +423 -423
  46. package/library/commands/ai-dlc/plan-workflow.md +219 -219
  47. package/library/commands/ai-dlc/prepare-release.md +207 -207
  48. package/library/commands/ai-dlc/review-artifacts.md +725 -725
  49. package/library/commands/ai-dlc/review-code.md +321 -321
  50. package/library/commands/ai-dlc/run-workflow.md +215 -215
  51. package/library/commands/ai-dlc/security-audit.md +421 -421
  52. package/library/commands/ai-dlc/setup-monitoring.md +195 -195
  53. package/library/commands/ai-dlc/setup.md +771 -771
  54. package/library/commands/ai-dlc/start-intent.md +349 -349
  55. package/library/commands/ai-dlc/status.md +190 -190
  56. package/library/commands/ai-dlc/talk.md +97 -97
  57. package/library/commands/ai-dlc/trace.md +200 -200
  58. package/library/commands/ai-dlc/upgrade.md +178 -178
  59. package/library/commands/ai-dlc/validate-framework.md +292 -292
  60. package/library/commands/ai-dlc/validate-phase.md +328 -328
  61. package/library/commands/ai-dlc/validate-unit.md +635 -635
  62. package/library/commands/ai-dlc/validate-workflow.md +118 -118
  63. package/library/commands/ai-dlc/visualize.md +386 -386
  64. package/library/commands/ai-dlc/workflow-cancel.md +145 -145
  65. package/library/commands/ai-dlc/workflow-pause.md +114 -114
  66. package/library/commands/ai-dlc/workflow-resume.md +149 -149
  67. package/library/commands/ai-dlc/workflow-status.md +209 -209
  68. package/library/commands/brn/assess.md +95 -95
  69. package/library/commands/brn/audit.md +38 -38
  70. package/library/commands/brn/document.md +41 -41
  71. package/library/commands/brn/modernize.md +38 -38
  72. package/library/commands/brn/optimize.md +41 -41
  73. package/library/commands/brn/plan.md +126 -126
  74. package/library/commands/brn/refactor.md +41 -41
  75. package/library/commands/brn/roi.md +41 -41
  76. package/library/commands/brn/secure.md +42 -42
  77. package/library/commands/brn/test.md +44 -44
  78. package/library/commands/dba/azure-advisor.md +163 -163
  79. package/library/commands/dba/azure-health.md +235 -235
  80. package/library/commands/dba/azure-scale.md +238 -238
  81. package/library/commands/dba/backup-status.md +194 -194
  82. package/library/commands/dba/bacpac-export.md +192 -192
  83. package/library/commands/dba/bacpac-import.md +206 -206
  84. package/library/commands/dba/blocking.md +263 -263
  85. package/library/commands/dba/dacpac-extract.md +176 -176
  86. package/library/commands/dba/dacpac-publish.md +248 -248
  87. package/library/commands/dba/explain-plan.md +189 -189
  88. package/library/commands/dba/format-sql.md +223 -223
  89. package/library/commands/dba/health-check.md +216 -216
  90. package/library/commands/dba/index-analysis.md +293 -293
  91. package/library/commands/dba/index-rebuild.md +257 -257
  92. package/library/commands/dba/index-stats.md +274 -274
  93. package/library/commands/dba/migrate-assess.md +190 -190
  94. package/library/commands/dba/monitor.md +206 -206
  95. package/library/commands/dba/parquet-export.md +168 -168
  96. package/library/commands/dba/parquet-import.md +181 -181
  97. package/library/commands/dba/query.md +194 -194
  98. package/library/commands/dba/schema-compare.md +190 -190
  99. package/library/commands/dba/top-queries.md +242 -242
  100. package/library/commands/dba/wait-stats.md +222 -222
  101. package/library/commands/docs/ask-codebase.md +94 -94
  102. package/library/commands/docs/document-solution.md +90 -90
  103. package/library/commands/docs/shard.md +188 -188
  104. package/library/commands/elicit/brainstorm.md +74 -74
  105. package/library/commands/elicit/challenge.md +88 -88
  106. package/library/commands/elicit/design.md +80 -80
  107. package/library/commands/elicit/edges.md +89 -89
  108. package/library/commands/elicit/empathy.md +96 -96
  109. package/library/commands/elicit/five-whys.md +89 -89
  110. package/library/commands/elicit/jobs.md +86 -86
  111. package/library/commands/elicit/prioritize.md +93 -93
  112. package/library/commands/elicit/requirements.md +75 -75
  113. package/library/commands/elicit/scamper.md +83 -83
  114. package/library/commands/elicit/stories.md +89 -89
  115. package/library/commands/elicit/technique.md +83 -83
  116. package/library/commands/elicit/validate.md +78 -78
  117. package/library/commands/elicit/value.md +88 -88
  118. package/library/commands/elicit/vision.md +82 -82
  119. package/library/commands/git/check-duplicates.md +592 -592
  120. package/library/commands/instruct-me.md +218 -218
  121. package/library/commands/issue-to-done.md +143 -143
  122. package/library/commands/it-ops/azure-costs.md +76 -76
  123. package/library/commands/it-ops/azure-health.md +63 -63
  124. package/library/commands/it-ops/entra-audit.md +72 -72
  125. package/library/commands/it-ops/entra-users.md +66 -66
  126. package/library/commands/it-ops/helpdesk-new.md +95 -95
  127. package/library/commands/it-ops/helpdesk-summary.md +86 -86
  128. package/library/commands/it-ops/intune-compliance.md +65 -65
  129. package/library/commands/it-ops/intune-devices.md +63 -63
  130. package/library/commands/it-ops/o365-health.md +65 -65
  131. package/library/commands/it-ops/o365-licenses.md +64 -64
  132. package/library/commands/it-ops/soc-incidents.md +80 -80
  133. package/library/commands/it-ops/soc-score.md +69 -69
  134. package/library/commands/spec/analyze.md +245 -245
  135. package/library/commands/spec/checklist.md +251 -251
  136. package/library/commands/spec/clarify.md +310 -310
  137. package/library/commands/spec/complete.md +92 -92
  138. package/library/commands/spec/constitution.md +90 -90
  139. package/library/commands/spec/implement.md +218 -218
  140. package/library/commands/spec/plan.md +94 -94
  141. package/library/commands/spec/specify.md +425 -425
  142. package/library/commands/spec/task-to-issue.md +47 -47
  143. package/library/commands/spec/tasks.md +191 -191
  144. package/library/commands/spec/to-intent.md +106 -106
  145. package/library/commands/task/clarify.md +205 -205
  146. package/library/commands/task/complete.md +301 -301
  147. package/library/commands/task/execute.md +391 -391
  148. package/library/commands/task/plan.md +327 -327
  149. package/library/commands/worktree/create.md +184 -184
  150. package/library/commands/worktree/list.md +149 -149
  151. package/library/commands/worktree/remove.md +260 -260
  152. package/library/commands/worktree/status.md +229 -229
  153. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -109,7 +109,7 @@ function shouldSkipStep(stepId, options, isInteractive) {
109
109
  case "select-overwrite-mode":
110
110
  return options.force;
111
111
  case "select-categories":
112
- return !options.custom && options.overwrite.length === 0;
112
+ return false;
113
113
  case "confirm-installation":
114
114
  return options.force || !isInteractive;
115
115
  default:
@@ -1067,6 +1067,9 @@ var INSTALL_CATEGORIES = [
1067
1067
  { id: "ai-dlc", pathPrefix: "ai-dlc/", label: "AI-DLC Core", hint: "Core AI-DLC framework files" },
1068
1068
  { id: "memory", pathPrefix: "memory/", label: "Memory", hint: "Memory templates" }
1069
1069
  ];
1070
+ var PROTECTED_FILES = /* @__PURE__ */ new Set([
1071
+ "memory/spec/constitution.md"
1072
+ ]);
1070
1073
  function filterMappingsByCategories(mappings, categories) {
1071
1074
  const prefixes = INSTALL_CATEGORIES.filter((cat) => categories.includes(cat.id)).map((cat) => cat.pathPrefix);
1072
1075
  if (prefixes.length === 0) {
@@ -1077,6 +1080,18 @@ function filterMappingsByCategories(mappings, categories) {
1077
1080
  return prefixes.some((prefix) => normalised.startsWith(prefix));
1078
1081
  });
1079
1082
  }
1083
+ function filterProtectedFiles(mappings, existingTargetFiles, protectedPaths = PROTECTED_FILES) {
1084
+ const skipped = [];
1085
+ const filtered = mappings.filter((mapping) => {
1086
+ const normalised = mapping.relativePath.replace(/\\/g, "/");
1087
+ if (protectedPaths.has(normalised) && existingTargetFiles.has(normalised)) {
1088
+ skipped.push(normalised);
1089
+ return false;
1090
+ }
1091
+ return true;
1092
+ });
1093
+ return { filtered, skipped };
1094
+ }
1080
1095
  function resolveCategories(overwriteFlags) {
1081
1096
  const validIds = INSTALL_CATEGORIES.map((cat) => cat.id);
1082
1097
  const unknown = overwriteFlags.filter((flag) => !validIds.includes(flag));
@@ -1105,6 +1120,10 @@ function renderSummary(summary, nextSteps, theme, categoryInfo) {
1105
1120
  lines.push(...renderComponentCounts(summary.componentCounts, theme));
1106
1121
  lines.push("");
1107
1122
  }
1123
+ if (summary.protectedFilesPreserved && summary.protectedFilesPreserved.length > 0) {
1124
+ lines.push(...renderProtectedFiles(summary.protectedFilesPreserved, theme));
1125
+ lines.push("");
1126
+ }
1108
1127
  lines.push(...renderFileStatistics(summary, theme));
1109
1128
  lines.push("");
1110
1129
  lines.push(` Total time: ${theme.bold(summary.totalDuration.formatted)}`);
@@ -1161,10 +1180,10 @@ function renderComponentCounts(counts, theme) {
1161
1180
  lines.push(` ${theme.bold(theme.colorize("Components installed:", "header"))}`);
1162
1181
  const items = [
1163
1182
  { label: "agents", count: counts.agents },
1164
- { label: "skills", count: counts.skills },
1183
+ { label: "skill files", count: counts.skills },
1165
1184
  { label: "commands", count: counts.commands },
1166
1185
  { label: "TypeScript CLI files", count: counts.cliFiles },
1167
- { label: "configuration files", count: counts.other }
1186
+ { label: "other files", count: counts.other }
1168
1187
  ];
1169
1188
  for (const item of items) {
1170
1189
  if (item.count > 0) {
@@ -1197,6 +1216,15 @@ function renderInstalledCategories(categoryInfo, theme) {
1197
1216
  }
1198
1217
  return lines;
1199
1218
  }
1219
+ function renderProtectedFiles(protectedPaths, theme) {
1220
+ const bullet = theme.symbolSet.bullet;
1221
+ const lines = [];
1222
+ lines.push(` ${theme.bold(theme.colorize("Protected files preserved:", "header"))}`);
1223
+ for (const filePath of protectedPaths) {
1224
+ lines.push(` ${bullet} ${theme.colorize(filePath, "accent")} (not overwritten)`);
1225
+ }
1226
+ return lines;
1227
+ }
1200
1228
  function renderFileStatistics(summary, theme) {
1201
1229
  const lines = [];
1202
1230
  lines.push(` ${theme.bold(theme.colorize("File statistics:", "header"))}`);
@@ -3616,7 +3644,8 @@ function createInitialContext(sourceDirectory) {
3616
3644
  validationReport: null,
3617
3645
  fileMappings: [],
3618
3646
  overwriteMode: null,
3619
- selectedCategories: []
3647
+ selectedCategories: [],
3648
+ protectedFilesSkipped: []
3620
3649
  };
3621
3650
  }
3622
3651
  function buildTerminalCapabilities(env) {
@@ -4103,6 +4132,14 @@ async function executeSelectOverwriteMode(ctx, options, theme) {
4103
4132
  summary: `Overwrite mode: choose (${ctx.selectedCategories.length} categories from CLI)`
4104
4133
  };
4105
4134
  }
4135
+ if (options.categories.length > 0) {
4136
+ ctx.selectedCategories = resolveCategories(options.categories);
4137
+ ctx.overwriteMode = "choose";
4138
+ return {
4139
+ data: { mode: "choose", categories: ctx.selectedCategories },
4140
+ summary: `Overwrite mode: choose (${ctx.selectedCategories.length} categories from --categories)`
4141
+ };
4142
+ }
4106
4143
  if (options.profile) {
4107
4144
  const profileCategories = await loadProfileCategories(options.profile);
4108
4145
  ctx.selectedCategories = profileCategories;
@@ -4182,6 +4219,13 @@ async function executeSelectCategories(ctx, options, theme) {
4182
4219
  summary: `${ctx.selectedCategories.length} categories selected via --profile "${options.profile}"`
4183
4220
  };
4184
4221
  }
4222
+ if (options.categories.length > 0 && ctx.selectedCategories.length > 0) {
4223
+ ctx.fileMappings = applySelectedCategoryFilter(ctx);
4224
+ return {
4225
+ data: { categories: ctx.selectedCategories, source: "cli-categories" },
4226
+ summary: `${ctx.selectedCategories.length} categories selected via --categories`
4227
+ };
4228
+ }
4185
4229
  if (ctx.overwriteMode !== "choose") {
4186
4230
  return {
4187
4231
  data: { skipped: true, reason: `overwrite-mode-${ctx.overwriteMode ?? "null"}` },
@@ -4339,6 +4383,20 @@ async function executeInstallFiles(ctx, options, theme) {
4339
4383
  );
4340
4384
  }
4341
4385
  }
4386
+ if (ctx.conflictReport) {
4387
+ const existingSet = new Set(
4388
+ ctx.conflictReport.existingFiles.map((p) => p.replace(/\\/g, "/"))
4389
+ );
4390
+ const { filtered: protectedFiltered, skipped: protectedSkipped } = filterProtectedFiles(ctx.fileMappings, existingSet);
4391
+ if (protectedSkipped.length > 0) {
4392
+ ctx.fileMappings = protectedFiltered;
4393
+ ctx.protectedFilesSkipped = protectedSkipped;
4394
+ verboseLog(
4395
+ options.verbose,
4396
+ `Protected files preserved (not overwritten): ${protectedSkipped.join(", ")}`
4397
+ );
4398
+ }
4399
+ }
4342
4400
  if (options.dryRun) {
4343
4401
  return {
4344
4402
  data: { dryRun: true, fileCount: ctx.fileMappings.length },
@@ -4520,7 +4578,8 @@ async function executeShowSummary(ctx, options, theme) {
4520
4578
  totalFilesCopied: ctx.installationResult?.copiedCount ?? 0,
4521
4579
  totalFilesSkipped: ctx.installationResult?.skippedCount ?? 0,
4522
4580
  totalFilesFailed: ctx.installationResult?.errors.length ?? 0,
4523
- installerVersion: INSTALLER_VERSION
4581
+ installerVersion: INSTALLER_VERSION,
4582
+ protectedFilesPreserved: ctx.protectedFilesSkipped.length > 0 ? ctx.protectedFilesSkipped : void 0
4524
4583
  };
4525
4584
  const nextSteps = getDefaultNextSteps(summary.success);
4526
4585
  if (theme && !options.quiet) {
@@ -4586,6 +4645,7 @@ async function runInstaller(options = {}) {
4586
4645
  overwrite: options.overwrite ?? [],
4587
4646
  custom: options.custom ?? false,
4588
4647
  profile: options.profile ?? null,
4648
+ categories: options.categories ?? [],
4589
4649
  rawArgs: []
4590
4650
  };
4591
4651
  let exitCode;