mustard-claude 2.0.13 → 3.0.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.
Files changed (262) hide show
  1. package/README.md +169 -296
  2. package/dist/cli.js +4 -11
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts +5 -2
  5. package/dist/commands/init.js +91 -353
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/update.d.ts +4 -4
  8. package/dist/commands/update.js +65 -224
  9. package/dist/commands/update.js.map +1 -1
  10. package/package.json +1 -3
  11. package/templates/CLAUDE.md +23 -344
  12. package/templates/commands/mustard/approve/SKILL.md +58 -0
  13. package/templates/commands/mustard/bugfix/SKILL.md +56 -0
  14. package/templates/commands/mustard/complete/SKILL.md +66 -0
  15. package/templates/commands/mustard/feature/SKILL.md +132 -0
  16. package/templates/commands/mustard/git/SKILL.md +137 -0
  17. package/templates/commands/mustard/knowledge/SKILL.md +112 -0
  18. package/templates/commands/mustard/maint/SKILL.md +70 -0
  19. package/templates/commands/mustard/resume/SKILL.md +124 -0
  20. package/templates/commands/mustard/scan/SKILL.md +352 -0
  21. package/templates/commands/mustard/scan-format/SKILL.md +261 -0
  22. package/templates/commands/mustard/skill/SKILL.md +151 -0
  23. package/templates/commands/mustard/status/SKILL.md +29 -0
  24. package/templates/commands/mustard/task/SKILL.md +203 -0
  25. package/templates/commands/mustard/templates/agent-prompt/SKILL.md +112 -0
  26. package/templates/hooks/__tests__/hooks.test.js +241 -0
  27. package/templates/hooks/auto-format.js +124 -0
  28. package/templates/hooks/bash-safety.js +60 -0
  29. package/templates/hooks/enforce-registry.js +21 -36
  30. package/templates/hooks/file-guard.js +61 -0
  31. package/templates/hooks/guard-verify.js +147 -0
  32. package/templates/hooks/pre-compact.js +119 -0
  33. package/templates/hooks/session-cleanup.js +159 -0
  34. package/templates/hooks/subagent-tracker.js +219 -0
  35. package/templates/pipeline-config.md +68 -0
  36. package/templates/scripts/statusline.js +346 -63
  37. package/templates/scripts/sync-detect.js +946 -0
  38. package/templates/scripts/sync-registry.js +452 -0
  39. package/templates/settings.json +135 -11
  40. package/templates/skills/commit-workflow/SKILL.md +39 -0
  41. package/templates/skills/design-craft/SKILL.md +197 -0
  42. package/templates/skills/design-craft/references/critique.md +67 -0
  43. package/templates/skills/design-craft/references/example.md +86 -0
  44. package/templates/skills/design-craft/references/palettes-catalog.md +85 -0
  45. package/templates/skills/design-craft/references/principles.md +235 -0
  46. package/templates/skills/design-craft/references/styles-catalog.md +93 -0
  47. package/templates/skills/design-craft/references/typography-catalog.md +70 -0
  48. package/templates/skills/design-craft/references/ux-guidelines.md +79 -0
  49. package/templates/skills/design-craft/references/validation.md +48 -0
  50. package/templates/skills/pipeline-execution/SKILL.md +131 -0
  51. package/templates/skills/react-best-practices/SKILL.md +44 -0
  52. package/templates/skills/react-best-practices/references/rules/_sections.md +46 -0
  53. package/templates/skills/react-best-practices/references/rules/_template.md +28 -0
  54. package/templates/skills/react-best-practices/references/rules/advanced-event-handler-refs.md +38 -0
  55. package/templates/skills/react-best-practices/references/rules/advanced-use-latest.md +49 -0
  56. package/templates/skills/react-best-practices/references/rules/async-api-routes.md +38 -0
  57. package/templates/skills/react-best-practices/references/rules/async-defer-await.md +80 -0
  58. package/templates/skills/react-best-practices/references/rules/async-dependencies.md +36 -0
  59. package/templates/skills/react-best-practices/references/rules/async-parallel.md +28 -0
  60. package/templates/skills/react-best-practices/references/rules/async-suspense-boundaries.md +66 -0
  61. package/templates/skills/react-best-practices/references/rules/bundle-barrel-imports.md +59 -0
  62. package/templates/skills/react-best-practices/references/rules/bundle-conditional.md +31 -0
  63. package/templates/skills/react-best-practices/references/rules/bundle-defer-third-party.md +49 -0
  64. package/templates/skills/react-best-practices/references/rules/bundle-dynamic-imports.md +35 -0
  65. package/templates/skills/react-best-practices/references/rules/bundle-preload.md +50 -0
  66. package/templates/skills/react-best-practices/references/rules/client-event-listeners.md +74 -0
  67. package/templates/skills/react-best-practices/references/rules/client-swr-dedup.md +56 -0
  68. package/templates/skills/react-best-practices/references/rules/js-batch-dom-css.md +82 -0
  69. package/templates/skills/react-best-practices/references/rules/js-cache-function-results.md +80 -0
  70. package/templates/skills/react-best-practices/references/rules/js-cache-property-access.md +28 -0
  71. package/templates/skills/react-best-practices/references/rules/js-cache-storage.md +68 -0
  72. package/templates/skills/react-best-practices/references/rules/js-combine-iterations.md +32 -0
  73. package/templates/skills/react-best-practices/references/rules/js-early-exit.md +50 -0
  74. package/templates/skills/react-best-practices/references/rules/js-hoist-regexp.md +43 -0
  75. package/templates/skills/react-best-practices/references/rules/js-index-maps.md +37 -0
  76. package/templates/skills/react-best-practices/references/rules/js-length-check-first.md +49 -0
  77. package/templates/skills/react-best-practices/references/rules/js-min-max-loop.md +82 -0
  78. package/templates/skills/react-best-practices/references/rules/js-set-map-lookups.md +24 -0
  79. package/templates/skills/react-best-practices/references/rules/js-tosorted-immutable.md +57 -0
  80. package/templates/skills/react-best-practices/references/rules/rendering-activity.md +26 -0
  81. package/templates/skills/react-best-practices/references/rules/rendering-animate-svg-wrapper.md +47 -0
  82. package/templates/skills/react-best-practices/references/rules/rendering-conditional-render.md +40 -0
  83. package/templates/skills/react-best-practices/references/rules/rendering-content-visibility.md +38 -0
  84. package/templates/skills/react-best-practices/references/rules/rendering-hoist-jsx.md +44 -0
  85. package/templates/skills/react-best-practices/references/rules/rendering-hydration-no-flicker.md +82 -0
  86. package/templates/skills/react-best-practices/references/rules/rendering-svg-precision.md +28 -0
  87. package/templates/skills/react-best-practices/references/rules/rerender-defer-reads.md +39 -0
  88. package/templates/skills/react-best-practices/references/rules/rerender-dependencies.md +45 -0
  89. package/templates/skills/react-best-practices/references/rules/rerender-derived-state.md +29 -0
  90. package/templates/skills/react-best-practices/references/rules/rerender-lazy-state-init.md +58 -0
  91. package/templates/skills/react-best-practices/references/rules/rerender-memo.md +42 -0
  92. package/templates/skills/react-best-practices/references/rules/rerender-transitions.md +40 -0
  93. package/templates/skills/react-best-practices/references/rules/server-cache-lru.md +37 -0
  94. package/templates/skills/react-best-practices/references/rules/server-cache-react.md +26 -0
  95. package/templates/skills/react-best-practices/references/rules/server-parallel-fetching.md +79 -0
  96. package/templates/skills/react-best-practices/references/rules/server-serialization.md +38 -0
  97. package/templates/skills/senior-architect/SKILL.md +209 -0
  98. package/templates/skills/senior-architect/references/architecture_patterns.md +103 -0
  99. package/templates/skills/senior-architect/references/system_design_workflows.md +103 -0
  100. package/templates/skills/senior-architect/references/tech_decision_guide.md +103 -0
  101. package/templates/skills/senior-architect/scripts/architecture_diagram_generator.py +114 -0
  102. package/templates/skills/senior-architect/scripts/dependency_analyzer.py +114 -0
  103. package/templates/skills/senior-architect/scripts/project_architect.py +114 -0
  104. package/templates/skills/skill-creator/LICENSE.txt +202 -0
  105. package/templates/skills/skill-creator/SKILL.md +485 -0
  106. package/templates/skills/skill-creator/agents/analyzer.md +274 -0
  107. package/templates/skills/skill-creator/agents/comparator.md +202 -0
  108. package/templates/skills/skill-creator/agents/grader.md +223 -0
  109. package/templates/skills/skill-creator/assets/eval_review.html +146 -0
  110. package/templates/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  111. package/templates/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  112. package/templates/skills/skill-creator/references/schemas.md +430 -0
  113. package/templates/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  114. package/templates/skills/skill-creator/scripts/generate_report.py +326 -0
  115. package/templates/skills/skill-creator/scripts/improve_description.py +247 -0
  116. package/templates/skills/skill-creator/scripts/package_skill.py +136 -0
  117. package/templates/skills/skill-creator/scripts/quick_validate.py +103 -0
  118. package/templates/skills/skill-creator/scripts/run_eval.py +310 -0
  119. package/templates/skills/skill-creator/scripts/run_loop.py +328 -0
  120. package/templates/skills/skill-creator/scripts/utils.py +47 -0
  121. package/dist/analyzers/llm.d.ts +0 -9
  122. package/dist/analyzers/llm.js +0 -116
  123. package/dist/analyzers/llm.js.map +0 -1
  124. package/dist/analyzers/semantic.d.ts +0 -13
  125. package/dist/analyzers/semantic.js +0 -215
  126. package/dist/analyzers/semantic.js.map +0 -1
  127. package/dist/commands/sync.d.ts +0 -5
  128. package/dist/commands/sync.js +0 -354
  129. package/dist/commands/sync.js.map +0 -1
  130. package/dist/generators/claude-md-llm.d.ts +0 -5
  131. package/dist/generators/claude-md-llm.js +0 -101
  132. package/dist/generators/claude-md-llm.js.map +0 -1
  133. package/dist/generators/claude-md-template.d.ts +0 -5
  134. package/dist/generators/claude-md-template.js +0 -257
  135. package/dist/generators/claude-md-template.js.map +0 -1
  136. package/dist/generators/commands.d.ts +0 -12
  137. package/dist/generators/commands.js +0 -840
  138. package/dist/generators/commands.js.map +0 -1
  139. package/dist/generators/context.d.ts +0 -16
  140. package/dist/generators/context.js +0 -15
  141. package/dist/generators/context.js.map +0 -1
  142. package/dist/generators/hooks.d.ts +0 -5
  143. package/dist/generators/hooks.js +0 -393
  144. package/dist/generators/hooks.js.map +0 -1
  145. package/dist/generators/index.d.ts +0 -11
  146. package/dist/generators/index.js +0 -673
  147. package/dist/generators/index.js.map +0 -1
  148. package/dist/generators/prompts.d.ts +0 -13
  149. package/dist/generators/prompts.js +0 -276
  150. package/dist/generators/prompts.js.map +0 -1
  151. package/dist/generators/registry.d.ts +0 -8
  152. package/dist/generators/registry.js +0 -50
  153. package/dist/generators/registry.js.map +0 -1
  154. package/dist/scanners/dependencies.d.ts +0 -7
  155. package/dist/scanners/dependencies.js +0 -195
  156. package/dist/scanners/dependencies.js.map +0 -1
  157. package/dist/scanners/index.d.ts +0 -6
  158. package/dist/scanners/index.js +0 -37
  159. package/dist/scanners/index.js.map +0 -1
  160. package/dist/scanners/samples.d.ts +0 -8
  161. package/dist/scanners/samples.js +0 -193
  162. package/dist/scanners/samples.js.map +0 -1
  163. package/dist/scanners/stack.d.ts +0 -5
  164. package/dist/scanners/stack.js +0 -294
  165. package/dist/scanners/stack.js.map +0 -1
  166. package/dist/scanners/structure.d.ts +0 -5
  167. package/dist/scanners/structure.js +0 -274
  168. package/dist/scanners/structure.js.map +0 -1
  169. package/dist/services/grepai.d.ts +0 -25
  170. package/dist/services/grepai.js +0 -89
  171. package/dist/services/grepai.js.map +0 -1
  172. package/dist/services/ollama.d.ts +0 -22
  173. package/dist/services/ollama.js +0 -86
  174. package/dist/services/ollama.js.map +0 -1
  175. package/dist/services/package-manager.d.ts +0 -95
  176. package/dist/services/package-manager.js +0 -164
  177. package/dist/services/package-manager.js.map +0 -1
  178. package/dist/types.d.ts +0 -239
  179. package/dist/types.js +0 -5
  180. package/dist/types.js.map +0 -1
  181. package/templates/_backup_20260206/CLAUDE.md +0 -633
  182. package/templates/_backup_20260206/enforcement.md +0 -320
  183. package/templates/_backup_20260206/mustard/approve.md +0 -245
  184. package/templates/_backup_20260206/mustard/bugfix-team.md +0 -325
  185. package/templates/_backup_20260206/mustard/bugfix.md +0 -225
  186. package/templates/_backup_20260206/mustard/checkpoint.md +0 -287
  187. package/templates/_backup_20260206/mustard/commit-push.md +0 -64
  188. package/templates/_backup_20260206/mustard/commit.md +0 -102
  189. package/templates/_backup_20260206/mustard/compile-context.md +0 -160
  190. package/templates/_backup_20260206/mustard/complete.md +0 -374
  191. package/templates/_backup_20260206/mustard/feature-team.md +0 -285
  192. package/templates/_backup_20260206/mustard/feature.md +0 -258
  193. package/templates/_backup_20260206/mustard/install-deps.md +0 -144
  194. package/templates/_backup_20260206/mustard/merge-main.md +0 -91
  195. package/templates/_backup_20260206/mustard/report-daily.md +0 -70
  196. package/templates/_backup_20260206/mustard/report-weekly.md +0 -95
  197. package/templates/_backup_20260206/mustard/resume.md +0 -316
  198. package/templates/_backup_20260206/mustard/scan.md +0 -144
  199. package/templates/_backup_20260206/mustard/status.md +0 -81
  200. package/templates/_backup_20260206/mustard/sync-context.md +0 -317
  201. package/templates/_backup_20260206/mustard/sync-registry.md +0 -112
  202. package/templates/_backup_20260206/mustard/task-analyze.md +0 -138
  203. package/templates/_backup_20260206/mustard/task-docs.md +0 -194
  204. package/templates/_backup_20260206/mustard/task-refactor.md +0 -233
  205. package/templates/_backup_20260206/mustard/task-review.md +0 -163
  206. package/templates/_backup_20260206/mustard/validate.md +0 -160
  207. package/templates/_backup_20260206/pipeline.md +0 -482
  208. package/templates/commands/README.md +0 -55
  209. package/templates/commands/mustard/approve.md +0 -150
  210. package/templates/commands/mustard/bugfix-team.md +0 -325
  211. package/templates/commands/mustard/bugfix.md +0 -225
  212. package/templates/commands/mustard/checkpoint.md +0 -207
  213. package/templates/commands/mustard/commit-push.md +0 -64
  214. package/templates/commands/mustard/commit.md +0 -102
  215. package/templates/commands/mustard/compile-context.md +0 -234
  216. package/templates/commands/mustard/complete.md +0 -374
  217. package/templates/commands/mustard/feature-team.md +0 -285
  218. package/templates/commands/mustard/feature.md +0 -190
  219. package/templates/commands/mustard/install-deps.md +0 -144
  220. package/templates/commands/mustard/merge-main.md +0 -91
  221. package/templates/commands/mustard/report-daily.md +0 -70
  222. package/templates/commands/mustard/report-weekly.md +0 -95
  223. package/templates/commands/mustard/resume.md +0 -316
  224. package/templates/commands/mustard/scan.md +0 -144
  225. package/templates/commands/mustard/status.md +0 -81
  226. package/templates/commands/mustard/sync-context.md +0 -317
  227. package/templates/commands/mustard/sync-registry.md +0 -112
  228. package/templates/commands/mustard/task-analyze.md +0 -138
  229. package/templates/commands/mustard/task-docs.md +0 -194
  230. package/templates/commands/mustard/task-refactor.md +0 -233
  231. package/templates/commands/mustard/task-review.md +0 -163
  232. package/templates/commands/mustard/validate.md +0 -160
  233. package/templates/context/README.md +0 -97
  234. package/templates/context/backend/patterns.md +0 -136
  235. package/templates/context/bugfix/.gitkeep +0 -0
  236. package/templates/context/database/patterns.md +0 -117
  237. package/templates/context/frontend/patterns.md +0 -79
  238. package/templates/context/orchestrator/.gitkeep +0 -0
  239. package/templates/context/review/.gitkeep +0 -0
  240. package/templates/context/shared/conventions.md +0 -52
  241. package/templates/context/team-lead/README.md +0 -39
  242. package/templates/context/team-lead/coordination.md +0 -103
  243. package/templates/context/team-lead/task-list.md +0 -126
  244. package/templates/core/enforcement.md +0 -290
  245. package/templates/core/entity-registry-spec.md +0 -193
  246. package/templates/core/pipeline.md +0 -482
  247. package/templates/hooks/enforce-context.js +0 -202
  248. package/templates/hooks/enforce-grepai.js +0 -30
  249. package/templates/hooks/enforce-pipeline.js +0 -89
  250. package/templates/hooks/l0-enforcement.md +0 -133
  251. package/templates/prompts/_index.md +0 -148
  252. package/templates/prompts/backend.md +0 -141
  253. package/templates/prompts/bugfix.md +0 -163
  254. package/templates/prompts/database.md +0 -148
  255. package/templates/prompts/frontend.md +0 -151
  256. package/templates/prompts/naming.md +0 -225
  257. package/templates/prompts/orchestrator.md +0 -248
  258. package/templates/prompts/report.md +0 -165
  259. package/templates/prompts/review.md +0 -208
  260. package/templates/prompts/team-lead.md +0 -240
  261. package/templates/skills/design-principles.md +0 -237
  262. /package/templates/{context/.gitkeep → skills/skill-creator/scripts/__init__.py} +0 -0
@@ -1,377 +1,115 @@
1
- import { existsSync } from 'fs';
2
- import { rename, rm, cp } from 'fs/promises';
3
- import { join, resolve } from 'path';
1
+ import { existsSync, readdirSync } from 'fs';
2
+ import { mkdir, copyFile, cp } from 'fs/promises';
3
+ import { join, resolve, dirname } from 'path';
4
+ import { fileURLToPath } from 'url';
4
5
  import chalk from 'chalk';
5
6
  import ora from 'ora';
6
7
  import inquirer from 'inquirer';
7
- import { scanProject } from '../scanners/index.js';
8
- import { scanCodeSamples } from '../scanners/samples.js';
9
- import * as ollamaService from '../services/ollama.js';
10
- import * as grepaiService from '../services/grepai.js';
11
- import * as semanticAnalyzer from '../analyzers/semantic.js';
12
- import * as llmAnalyzer from '../analyzers/llm.js';
13
- import { generateAll } from '../generators/index.js';
8
+ function getTemplatesDir() {
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = dirname(__filename);
11
+ return join(__dirname, '..', '..', 'templates');
12
+ }
14
13
  /**
15
- * Main init command
14
+ * Recursively copy a directory. If overwrite=false, skip existing files.
16
15
  */
17
- export async function initCommand(options) {
18
- const projectPath = resolve(process.cwd());
19
- console.log(chalk.bold('\n🌿 Mustard CLI v2.0\n'));
20
- // Check for existing .claude directory
21
- const claudePath = join(projectPath, '.claude');
22
- const claudeMdPath = join(claudePath, 'CLAUDE.md');
23
- let overwriteClaudeMd = true;
24
- if (existsSync(claudePath) && !options.force) {
25
- if (options.yes) {
26
- // With --yes, preserve existing files (no backup, just update)
27
- console.log(chalk.gray(' .claude/ exists - updating files...'));
16
+ async function copyDir(src, dest, overwrite = true) {
17
+ let count = 0;
18
+ await mkdir(dest, { recursive: true });
19
+ const entries = readdirSync(src, { withFileTypes: true });
20
+ for (const entry of entries) {
21
+ const srcPath = join(src, entry.name);
22
+ const destPath = join(dest, entry.name);
23
+ if (entry.isDirectory()) {
24
+ count += await copyDir(srcPath, destPath, overwrite);
28
25
  }
29
26
  else {
30
- const handleExisting = await promptExistingClaude();
31
- if (handleExisting === 'cancel') {
32
- console.log(chalk.yellow('\nāš ļø Cancelled.\n'));
33
- return;
27
+ if (overwrite || !existsSync(destPath)) {
28
+ await copyFile(srcPath, destPath);
29
+ count++;
34
30
  }
35
- if (handleExisting === 'backup') {
36
- await backupExistingClaude(claudePath);
37
- }
38
- // 'overwrite' continues without backup
39
31
  }
40
32
  }
41
- // Check if CLAUDE.md already exists and prompt user
42
- if (existsSync(claudeMdPath) && !options.force) {
43
- if (options.yes) {
44
- // With --yes, default to NOT overwriting existing CLAUDE.md
45
- overwriteClaudeMd = false;
46
- console.log(chalk.yellow('āš ļø CLAUDE.md already exists - preserving existing file'));
33
+ return count;
34
+ }
35
+ /**
36
+ * mustard init — copies templates/ → .claude/
37
+ */
38
+ export async function initCommand(options) {
39
+ const projectPath = resolve(process.cwd());
40
+ const claudePath = join(projectPath, '.claude');
41
+ const templatesDir = getTemplatesDir();
42
+ console.log(chalk.bold('\n🌿 Mustard\n'));
43
+ // Handle existing .claude/
44
+ if (existsSync(claudePath)) {
45
+ if (options.force) {
46
+ // Force: overwrite without backup
47
+ }
48
+ else if (options.yes) {
49
+ console.log(chalk.gray(' .claude/ exists — updating without overwriting user files'));
50
+ const spinner = ora('Copying templates...').start();
51
+ const count = await copyDir(templatesDir, claudePath, false);
52
+ spinner.succeed(`Copied ${count} new files (existing files preserved)`);
53
+ printNextSteps();
54
+ return;
47
55
  }
48
56
  else {
49
- overwriteClaudeMd = await promptOverwriteClaudeMd();
50
- if (!overwriteClaudeMd) {
51
- console.log(chalk.gray(' CLAUDE.md will be preserved'));
52
- }
53
- }
54
- }
55
- // Check dependencies
56
- const deps = await checkDependencies(options);
57
- // Phase 1: Basic scan
58
- const scanSpinner = ora('Scanning project...').start();
59
- let projectInfo;
60
- try {
61
- projectInfo = await scanProject(projectPath, { verbose: options.verbose });
62
- scanSpinner.succeed('Project scanned');
63
- }
64
- catch (error) {
65
- scanSpinner.fail('Scan failed');
66
- const message = error instanceof Error ? error.message : 'Unknown error';
67
- console.error(chalk.red(message));
68
- return;
69
- }
70
- // Display detected info
71
- displayProjectInfo(projectInfo);
72
- // Confirm with user
73
- const confirmed = await promptConfirmation(projectInfo, options.yes);
74
- if (!confirmed) {
75
- console.log(chalk.yellow('\nāš ļø Cancelled.\n'));
76
- return;
77
- }
78
- // Phase 2: Semantic analysis (if grepai available)
79
- let patterns = { services: [], repositories: [], endpoints: [], components: [], hooks: [], entities: [], callGraph: null };
80
- if (deps.grepai && options.grepai !== false) {
81
- const semanticSpinner = ora('Analyzing codebase semantically (grepai)...').start();
82
- try {
83
- patterns = await semanticAnalyzer.discoverPatterns({
84
- stacks: projectInfo.stacks,
85
- verbose: options.verbose
86
- });
87
- // Discover entities
88
- const entities = await semanticAnalyzer.discoverEntities(projectInfo.stacks);
89
- patterns.entities = entities;
90
- semanticSpinner.succeed(`Found ${patterns.entities.length} entities`);
91
- }
92
- catch (error) {
93
- semanticSpinner.warn('Semantic analysis limited');
94
- if (options.verbose) {
95
- const message = error instanceof Error ? error.message : 'Unknown error';
96
- console.log(chalk.gray(` ${message}`));
97
- }
98
- }
99
- }
100
- // Phase 3: LLM analysis (if Ollama available)
101
- let analysis = {
102
- architecture: projectInfo.structure?.architecture ?? { type: 'unknown', confidence: 'low' },
103
- patterns: [],
104
- rules: [],
105
- entities: patterns.entities
106
- };
107
- // Get code samples for context generation
108
- let codeSamples = {};
109
- if (deps.grepai && options.grepai !== false) {
110
- try {
111
- codeSamples = await semanticAnalyzer.getCodeSamples(patterns);
112
- }
113
- catch {
114
- // Ignore - samples are optional
115
- }
116
- }
117
- // Fallback: scan filesystem for code samples if grepai didn't find any
118
- if (Object.keys(codeSamples).length === 0) {
119
- const sampleSpinner = ora('Scanning for code samples...').start();
120
- try {
121
- codeSamples = await scanCodeSamples(projectPath, projectInfo.stacks, { verbose: options.verbose });
122
- const found = Object.keys(codeSamples).length;
123
- if (found > 0) {
124
- sampleSpinner.succeed(`Found ${found} code sample${found > 1 ? 's' : ''}`);
125
- }
126
- else {
127
- sampleSpinner.warn('No code samples found');
128
- }
129
- }
130
- catch {
131
- sampleSpinner.warn('Code sample scan failed');
132
- }
133
- }
134
- if (deps.ollama && options.ollama === true) {
135
- const llmSpinner = ora('Analyzing code patterns (Ollama)...').start();
136
- try {
137
- const samplesList = Object.values(codeSamples).filter((s) => Boolean(s));
138
- if (samplesList.length > 0) {
139
- const llmResult = await llmAnalyzer.analyzeCode(samplesList, {
140
- model: deps.ollamaModel ?? undefined
141
- });
142
- analysis = { ...analysis, ...llmResult };
143
- llmSpinner.succeed('Code patterns analyzed');
144
- }
145
- else {
146
- llmSpinner.warn('No code samples for analysis');
147
- }
148
- }
149
- catch (error) {
150
- llmSpinner.warn('LLM analysis limited');
151
- if (options.verbose) {
152
- const message = error instanceof Error ? error.message : 'Unknown error';
153
- console.log(chalk.gray(` ${message}`));
57
+ const { action } = await inquirer.prompt([{
58
+ type: 'list',
59
+ name: 'action',
60
+ message: '.claude/ already exists.',
61
+ choices: [
62
+ { name: 'Backup and overwrite', value: 'backup' },
63
+ { name: 'Merge (skip existing files)', value: 'merge' },
64
+ { name: 'Cancel', value: 'cancel' }
65
+ ]
66
+ }]);
67
+ if (action === 'cancel') {
68
+ console.log(chalk.yellow('\nāš ļø Cancelled.\n'));
69
+ return;
154
70
  }
155
- }
156
- }
157
- // Phase 4: Generate files
158
- const genSpinner = ora('Generating .claude/ structure...').start();
159
- try {
160
- const files = await generateAll(projectPath, projectInfo, analysis, {
161
- useOllama: deps.ollama && options.ollama === true, // Only for CLAUDE.md
162
- model: deps.ollamaModel ?? undefined,
163
- hasGrepai: deps.grepai,
164
- verbose: options.verbose,
165
- overwriteClaudeMd,
166
- codeSamples
167
- });
168
- genSpinner.succeed(`Generated ${files.length} files`);
169
- // Display generated files
170
- console.log(chalk.gray('\n Generated files:'));
171
- const grouped = groupFiles(files);
172
- for (const [dir, dirFiles] of Object.entries(grouped)) {
173
- if (dir === '') {
174
- for (const file of dirFiles) {
175
- console.log(chalk.gray(` .claude/${file}`));
71
+ if (action === 'backup') {
72
+ const ts = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
73
+ const backupPath = `${claudePath}.backup.${ts}`;
74
+ const backupSpinner = ora('Creating backup...').start();
75
+ try {
76
+ await cp(claudePath, backupPath, { recursive: true });
77
+ backupSpinner.succeed(`Backup: ${backupPath}`);
176
78
  }
177
- }
178
- else {
179
- console.log(chalk.gray(` .claude/${dir}/`));
180
- for (const file of dirFiles) {
181
- console.log(chalk.gray(` ${file}`));
79
+ catch {
80
+ backupSpinner.fail('Backup failed');
81
+ return;
182
82
  }
183
83
  }
184
- }
185
- }
186
- catch (error) {
187
- genSpinner.fail('Generation failed');
188
- const message = error instanceof Error ? error.message : 'Unknown error';
189
- console.error(chalk.red(message));
190
- if (options.verbose && error instanceof Error) {
191
- console.error(error.stack);
192
- }
193
- return;
194
- }
195
- // Done!
196
- console.log(chalk.green.bold('\nāœ… Done!\n'));
197
- console.log(chalk.white('Use these commands to get started:'));
198
- console.log(chalk.cyan(' /feature <name>') + chalk.gray(' - Start a new feature'));
199
- console.log(chalk.cyan(' /bugfix <error>') + chalk.gray(' - Fix a bug'));
200
- console.log(chalk.cyan(' /status') + chalk.gray(' - Check project status'));
201
- console.log();
202
- }
203
- /**
204
- * Check available dependencies (Ollama, grepai)
205
- */
206
- async function checkDependencies(options) {
207
- const deps = {
208
- ollama: false,
209
- ollamaModel: null,
210
- grepai: false
211
- };
212
- // Check Ollama (only if --ollama flag is passed)
213
- if (options.ollama === true) {
214
- const ollamaSpinner = ora('Checking Ollama...').start();
215
- const ollamaAvailable = await ollamaService.checkOllamaAvailable();
216
- if (ollamaAvailable) {
217
- const models = await ollamaService.getAvailableModels();
218
- if (models.length > 0) {
219
- deps.ollama = true;
220
- deps.ollamaModel = await ollamaService.selectBestModel(models);
221
- ollamaSpinner.succeed(`Ollama: ${deps.ollamaModel}`);
222
- }
223
- else {
224
- ollamaSpinner.warn('Ollama running but no models');
84
+ if (action === 'merge') {
85
+ const spinner = ora('Merging templates...').start();
86
+ const count = await copyDir(templatesDir, claudePath, false);
87
+ spinner.succeed(`Copied ${count} new files (existing files preserved)`);
88
+ printNextSteps();
89
+ return;
225
90
  }
226
91
  }
227
- else {
228
- ollamaSpinner.warn('Ollama not available (using templates)');
229
- }
230
92
  }
231
- // Check grepai
232
- if (options.grepai !== false) {
233
- const grepaiSpinner = ora('Checking grepai...').start();
234
- const grepaiAvailable = await grepaiService.checkGrepaiAvailable();
235
- if (grepaiAvailable) {
236
- deps.grepai = true;
237
- grepaiSpinner.succeed('grepai: available');
238
- }
239
- else {
240
- grepaiSpinner.warn('grepai not available (limited semantic search)');
241
- }
242
- }
243
- return deps;
244
- }
245
- /**
246
- * Prompt user about existing .claude directory
247
- */
248
- async function promptExistingClaude() {
249
- const { action } = await inquirer.prompt([
250
- {
251
- type: 'list',
252
- name: 'action',
253
- message: '.claude/ directory already exists. What would you like to do?',
254
- choices: [
255
- { name: 'Backup and overwrite', value: 'backup' },
256
- { name: 'Overwrite without backup', value: 'overwrite' },
257
- { name: 'Cancel', value: 'cancel' }
258
- ]
259
- }
260
- ]);
261
- return action;
262
- }
263
- /**
264
- * Prompt user about overwriting existing CLAUDE.md
265
- */
266
- async function promptOverwriteClaudeMd() {
267
- const { overwrite } = await inquirer.prompt([
268
- {
269
- type: 'confirm',
270
- name: 'overwrite',
271
- message: 'CLAUDE.md already exists. Do you want to overwrite it?',
272
- default: false
273
- }
274
- ]);
275
- return overwrite;
276
- }
277
- /**
278
- * Backup existing .claude directory
279
- */
280
- async function backupExistingClaude(claudePath) {
281
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
282
- const backupPath = `${claudePath}.backup.${timestamp}`;
283
- const spinner = ora('Creating backup...').start();
284
- try {
285
- // Try rename first (faster)
286
- await rename(claudePath, backupPath);
287
- spinner.succeed(`Backup created: ${backupPath}`);
288
- }
289
- catch (error) {
290
- // On Windows, rename can fail if files are locked
291
- // Fall back to copy + delete
292
- const err = error;
293
- if (err.code === 'EPERM' || err.code === 'EBUSY') {
294
- try {
295
- await cp(claudePath, backupPath, { recursive: true });
296
- await rm(claudePath, { recursive: true, force: true });
297
- spinner.succeed(`Backup created: ${backupPath}`);
298
- }
299
- catch (copyError) {
300
- spinner.fail('Backup failed');
301
- throw copyError;
302
- }
303
- }
304
- else {
305
- spinner.fail('Backup failed');
306
- throw error;
307
- }
93
+ // Fresh copy
94
+ const spinner = ora('Copying .claude/ structure...').start();
95
+ const count = await copyDir(templatesDir, claudePath, true);
96
+ // Create empty entity-registry.json
97
+ const registryPath = join(claudePath, 'entity-registry.json');
98
+ if (!existsSync(registryPath)) {
99
+ const { writeFile } = await import('fs/promises');
100
+ await writeFile(registryPath, JSON.stringify({ _patterns: {}, _enums: {}, e: {} }, null, 2));
101
+ count; // already counted
308
102
  }
103
+ spinner.succeed(`Copied ${count} files to .claude/`);
104
+ printNextSteps();
309
105
  }
310
- /**
311
- * Display detected project info
312
- */
313
- function displayProjectInfo(projectInfo) {
314
- console.log(chalk.bold('\nšŸ“‹ Detected:\n'));
315
- // Project type
316
- console.log(chalk.white(` Type: ${chalk.cyan(projectInfo.type)}`));
317
- // Stacks
318
- console.log(chalk.white(' Stacks:'));
319
- for (const stack of projectInfo.stacks) {
320
- const version = stack.version ? ` ${stack.version}` : '';
321
- const path = stack.path !== '.' ? ` (${stack.path})` : '';
322
- console.log(chalk.gray(` • ${stack.name}${version}${path}`));
323
- }
324
- // Architecture
325
- if (projectInfo.structure?.architecture?.type !== 'unknown') {
326
- console.log(chalk.white(` Architecture: ${chalk.cyan(projectInfo.structure.architecture.type)}`));
327
- }
328
- // Package manager
329
- if (projectInfo.packageManager) {
330
- console.log(chalk.white(` Package manager: ${chalk.cyan(projectInfo.packageManager)}`));
331
- }
332
- // Naming patterns
333
- if (projectInfo.patterns) {
334
- console.log(chalk.white(' Naming:'));
335
- console.log(chalk.gray(` • Classes: ${projectInfo.patterns.classes}`));
336
- console.log(chalk.gray(` • Folders: ${projectInfo.patterns.folders}`));
337
- }
106
+ function printNextSteps() {
107
+ console.log(chalk.green.bold('\nāœ… Done!\n'));
108
+ console.log(chalk.white('Next: open Claude Code and run /scan to analyze your codebase.\n'));
109
+ console.log(chalk.white('Commands available after /scan:'));
110
+ console.log(chalk.cyan(' /feature <name>') + chalk.gray(' — Start a feature pipeline'));
111
+ console.log(chalk.cyan(' /bugfix <error>') + chalk.gray(' — Fix a bug'));
112
+ console.log(chalk.cyan(' /status') + chalk.gray(' — Check project status'));
338
113
  console.log();
339
114
  }
340
- /**
341
- * Prompt user for confirmation
342
- */
343
- async function promptConfirmation(projectInfo, skipPrompt = false) {
344
- if (skipPrompt) {
345
- return true;
346
- }
347
- const { confirmed } = await inquirer.prompt([
348
- {
349
- type: 'confirm',
350
- name: 'confirmed',
351
- message: 'Generate .claude/ structure with these settings?',
352
- default: true
353
- }
354
- ]);
355
- return confirmed;
356
- }
357
- /**
358
- * Group files by directory for display
359
- */
360
- function groupFiles(files) {
361
- const grouped = {};
362
- for (const file of files) {
363
- const parts = file.split('/');
364
- if (parts.length === 1) {
365
- grouped[''] = grouped[''] ?? [];
366
- grouped[''].push(file);
367
- }
368
- else {
369
- const dir = parts[0];
370
- const name = parts.slice(1).join('/');
371
- grouped[dir] = grouped[dir] ?? [];
372
- grouped[dir].push(name);
373
- }
374
- }
375
- return grouped;
376
- }
377
115
  //# sourceMappingURL=init.js.map
@@ -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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"}
@@ -1,8 +1,8 @@
1
- import type { InitOptions } from '../types.js';
2
- export interface UpdateOptions extends InitOptions {
3
- includeClaudeMd?: boolean;
1
+ export interface UpdateOptions {
2
+ force?: boolean;
4
3
  }
5
4
  /**
6
- * Update command - updates Mustard core files while preserving client customizations
5
+ * mustard update — deletes core folders and re-copies from templates
6
+ * Preserves: CLAUDE.md, pipeline-config.md, entity-registry.json, commands/* (user), docs/, agent-memory/, spec/
7
7
  */
8
8
  export declare function updateCommand(options: UpdateOptions): Promise<void>;