@winspan/claude-forge 0.1.2 → 0.1.4

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 (156) hide show
  1. package/dist/autopilot/index.d.ts +0 -1
  2. package/dist/autopilot/index.d.ts.map +1 -1
  3. package/dist/autopilot/index.js +0 -1
  4. package/dist/autopilot/index.js.map +1 -1
  5. package/dist/autopilot/intent-engine.d.ts +4 -1
  6. package/dist/autopilot/intent-engine.d.ts.map +1 -1
  7. package/dist/autopilot/intent-engine.js +22 -4
  8. package/dist/autopilot/intent-engine.js.map +1 -1
  9. package/dist/autopilot/quality-gate.d.ts +7 -0
  10. package/dist/autopilot/quality-gate.d.ts.map +1 -1
  11. package/dist/autopilot/quality-gate.js +8 -0
  12. package/dist/autopilot/quality-gate.js.map +1 -1
  13. package/dist/claudemd/index.d.ts +1 -1
  14. package/dist/claudemd/index.d.ts.map +1 -1
  15. package/dist/claudemd/index.js +30 -4
  16. package/dist/claudemd/index.js.map +1 -1
  17. package/dist/claudemd/prompts.d.ts +4 -1
  18. package/dist/claudemd/prompts.d.ts.map +1 -1
  19. package/dist/claudemd/prompts.js +41 -5
  20. package/dist/claudemd/prompts.js.map +1 -1
  21. package/dist/cli/commands/init.d.ts +33 -0
  22. package/dist/cli/commands/init.d.ts.map +1 -1
  23. package/dist/cli/commands/init.js +508 -3
  24. package/dist/cli/commands/init.js.map +1 -1
  25. package/dist/cli/index.js +3 -1
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/tui.d.ts.map +1 -1
  28. package/dist/cli/tui.js +4 -0
  29. package/dist/cli/tui.js.map +1 -1
  30. package/dist/config/defaults.d.ts.map +1 -1
  31. package/dist/config/defaults.js +0 -2
  32. package/dist/config/defaults.js.map +1 -1
  33. package/dist/config/schema.d.ts +0 -2
  34. package/dist/config/schema.d.ts.map +1 -1
  35. package/dist/config/schema.js +0 -4
  36. package/dist/config/schema.js.map +1 -1
  37. package/dist/convention/official-sync.d.ts +21 -0
  38. package/dist/convention/official-sync.d.ts.map +1 -0
  39. package/dist/convention/official-sync.js +196 -0
  40. package/dist/convention/official-sync.js.map +1 -0
  41. package/dist/daemon/engine-registry/init-autopilot.d.ts +0 -2
  42. package/dist/daemon/engine-registry/init-autopilot.d.ts.map +1 -1
  43. package/dist/daemon/engine-registry/init-autopilot.js +2 -6
  44. package/dist/daemon/engine-registry/init-autopilot.js.map +1 -1
  45. package/dist/daemon/engine-registry.d.ts.map +1 -1
  46. package/dist/daemon/engine-registry.js +4 -2
  47. package/dist/daemon/engine-registry.js.map +1 -1
  48. package/dist/daemon/handler-context.d.ts +0 -2
  49. package/dist/daemon/handler-context.d.ts.map +1 -1
  50. package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -1
  51. package/dist/daemon/handlers/post-tool-use-handler.js +7 -0
  52. package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -1
  53. package/dist/daemon/handlers/pre-tool-use-handler.d.ts.map +1 -1
  54. package/dist/daemon/handlers/pre-tool-use-handler.js +15 -15
  55. package/dist/daemon/handlers/pre-tool-use-handler.js.map +1 -1
  56. package/dist/daemon/handlers/stop-handler.d.ts.map +1 -1
  57. package/dist/daemon/handlers/stop-handler.js +23 -9
  58. package/dist/daemon/handlers/stop-handler.js.map +1 -1
  59. package/dist/daemon/handlers/user-prompt-handler.d.ts +9 -8
  60. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  61. package/dist/daemon/handlers/user-prompt-handler.js +75 -48
  62. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  63. package/dist/daemon/index.d.ts.map +1 -1
  64. package/dist/daemon/index.js +25 -15
  65. package/dist/daemon/index.js.map +1 -1
  66. package/dist/daemon/lifecycle.d.ts +6 -0
  67. package/dist/daemon/lifecycle.d.ts.map +1 -1
  68. package/dist/daemon/lifecycle.js +28 -0
  69. package/dist/daemon/lifecycle.js.map +1 -1
  70. package/dist/daemon/server.d.ts +2 -1
  71. package/dist/daemon/server.d.ts.map +1 -1
  72. package/dist/daemon/server.js +20 -1
  73. package/dist/daemon/server.js.map +1 -1
  74. package/dist/distill/index.d.ts.map +1 -1
  75. package/dist/distill/index.js +4 -0
  76. package/dist/distill/index.js.map +1 -1
  77. package/dist/distill/writer.d.ts +22 -0
  78. package/dist/distill/writer.d.ts.map +1 -1
  79. package/dist/distill/writer.js +77 -0
  80. package/dist/distill/writer.js.map +1 -1
  81. package/dist/hooks/check-context-limit.sh +0 -0
  82. package/dist/hooks/notification.sh +3 -1
  83. package/dist/hooks/post-tool-use.sh +3 -1
  84. package/dist/hooks/pre-tool-use.sh +3 -1
  85. package/dist/hooks/stop.sh +3 -1
  86. package/dist/hooks/user-prompt-submit.sh +3 -1
  87. package/dist/pipeline/phase-manager.d.ts +4 -0
  88. package/dist/pipeline/phase-manager.d.ts.map +1 -1
  89. package/dist/pipeline/phase-manager.js +52 -10
  90. package/dist/pipeline/phase-manager.js.map +1 -1
  91. package/dist/skill-registry/evolver.d.ts.map +1 -1
  92. package/dist/skill-registry/evolver.js +4 -2
  93. package/dist/skill-registry/evolver.js.map +1 -1
  94. package/package.json +10 -4
  95. package/dist/cli/commands/console.d.ts +0 -3
  96. package/dist/cli/commands/console.d.ts.map +0 -1
  97. package/dist/cli/commands/console.js +0 -11
  98. package/dist/cli/commands/console.js.map +0 -1
  99. package/dist/cli/interceptor.d.ts +0 -5
  100. package/dist/cli/interceptor.d.ts.map +0 -1
  101. package/dist/cli/interceptor.js +0 -55
  102. package/dist/cli/interceptor.js.map +0 -1
  103. package/dist/hooks/hooks/check-context-limit.sh +0 -97
  104. package/dist/hooks/hooks/notification.sh +0 -33
  105. package/dist/hooks/hooks/post-tool-use.sh +0 -49
  106. package/dist/hooks/hooks/pre-tool-use.sh +0 -55
  107. package/dist/hooks/hooks/stop.sh +0 -29
  108. package/dist/hooks/hooks/user-prompt-submit.sh +0 -72
  109. package/dist/skill-registry/recommender.d.ts +0 -25
  110. package/dist/skill-registry/recommender.d.ts.map +0 -1
  111. package/dist/skill-registry/recommender.js +0 -91
  112. package/dist/skill-registry/recommender.js.map +0 -1
  113. package/dist/tests/claude-api.test.d.ts +0 -2
  114. package/dist/tests/claude-api.test.d.ts.map +0 -1
  115. package/dist/tests/claude-api.test.js +0 -96
  116. package/dist/tests/claude-api.test.js.map +0 -1
  117. package/dist/tests/conversational-config-handler.test.d.ts +0 -2
  118. package/dist/tests/conversational-config-handler.test.d.ts.map +0 -1
  119. package/dist/tests/conversational-config-handler.test.js +0 -107
  120. package/dist/tests/conversational-config-handler.test.js.map +0 -1
  121. package/dist/tests/doc-sync.test.d.ts +0 -2
  122. package/dist/tests/doc-sync.test.d.ts.map +0 -1
  123. package/dist/tests/doc-sync.test.js +0 -148
  124. package/dist/tests/doc-sync.test.js.map +0 -1
  125. package/dist/tests/orchestration-config.test.d.ts +0 -2
  126. package/dist/tests/orchestration-config.test.d.ts.map +0 -1
  127. package/dist/tests/orchestration-config.test.js +0 -122
  128. package/dist/tests/orchestration-config.test.js.map +0 -1
  129. package/dist/tests/pipeline-options.test.d.ts +0 -2
  130. package/dist/tests/pipeline-options.test.d.ts.map +0 -1
  131. package/dist/tests/pipeline-options.test.js +0 -68
  132. package/dist/tests/pipeline-options.test.js.map +0 -1
  133. package/dist/tests/resume-context-gen.test.d.ts +0 -2
  134. package/dist/tests/resume-context-gen.test.d.ts.map +0 -1
  135. package/dist/tests/resume-context-gen.test.js +0 -93
  136. package/dist/tests/resume-context-gen.test.js.map +0 -1
  137. package/dist/tests/sqlite.test.d.ts +0 -2
  138. package/dist/tests/sqlite.test.d.ts.map +0 -1
  139. package/dist/tests/sqlite.test.js +0 -154
  140. package/dist/tests/sqlite.test.js.map +0 -1
  141. package/dist/tests/tracker.test.d.ts +0 -2
  142. package/dist/tests/tracker.test.d.ts.map +0 -1
  143. package/dist/tests/tracker.test.js +0 -75
  144. package/dist/tests/tracker.test.js.map +0 -1
  145. package/dist/tests/tui.test.d.ts +0 -2
  146. package/dist/tests/tui.test.d.ts.map +0 -1
  147. package/dist/tests/tui.test.js +0 -39
  148. package/dist/tests/tui.test.js.map +0 -1
  149. package/dist/tests/user-prompt-handler.test.d.ts +0 -2
  150. package/dist/tests/user-prompt-handler.test.d.ts.map +0 -1
  151. package/dist/tests/user-prompt-handler.test.js +0 -182
  152. package/dist/tests/user-prompt-handler.test.js.map +0 -1
  153. package/dist/tui/index.d.ts +0 -2
  154. package/dist/tui/index.d.ts.map +0 -1
  155. package/dist/tui/index.js +0 -486
  156. package/dist/tui/index.js.map +0 -1
@@ -3,7 +3,7 @@ import path from 'path';
3
3
  import os from 'os';
4
4
  import readline from 'readline';
5
5
  import { spawn } from 'child_process';
6
- import { success, info, warning } from '../utils/output.js';
6
+ import { success, info, warning, heading, error } from '../utils/output.js';
7
7
  import { ConfigManager } from '../../config/index.js';
8
8
  import { detectBestModel } from '../../utils/claude-api.js';
9
9
  import { isRunning } from '../../daemon/lifecycle.js';
@@ -11,6 +11,14 @@ const FORGE_HOME = path.join(os.homedir(), '.claude-forge');
11
11
  const CLAUDE_HOME = path.join(os.homedir(), '.claude');
12
12
  const SETTINGS_PATH = path.join(CLAUDE_HOME, 'settings.json');
13
13
  const HOOKS_DIR = path.join(FORGE_HOME, 'hooks');
14
+ const HOOK_SCRIPT_NAMES = [
15
+ 'pre-tool-use.sh',
16
+ 'post-tool-use.sh',
17
+ 'check-context-limit.sh',
18
+ 'user-prompt-submit.sh',
19
+ 'notification.sh',
20
+ 'stop.sh',
21
+ ];
14
22
  function isForgeCommand(cmd) {
15
23
  return cmd.includes('claude-forge') || cmd.includes('.claude-forge');
16
24
  }
@@ -109,8 +117,7 @@ function copyHookScripts() {
109
117
  fs.mkdirSync(HOOKS_DIR, { recursive: true });
110
118
  }
111
119
  const srcHooksDir = path.join(path.dirname(new URL(import.meta.url).pathname), '../../hooks');
112
- const hookFiles = ['pre-tool-use.sh', 'post-tool-use.sh', 'check-context-limit.sh', 'user-prompt-submit.sh', 'notification.sh', 'stop.sh'];
113
- for (const file of hookFiles) {
120
+ for (const file of HOOK_SCRIPT_NAMES) {
114
121
  const src = path.join(srcHooksDir, file);
115
122
  const dest = path.join(HOOKS_DIR, file);
116
123
  if (fs.existsSync(src)) {
@@ -158,6 +165,111 @@ function injectHooks() {
158
165
  }
159
166
  fs.writeFileSync(SETTINGS_PATH, JSON.stringify(settings, null, 2), 'utf-8');
160
167
  }
168
+ /**
169
+ * 检测 ~/.claude-forge/hooks 脚本与 ~/.claude/settings.json 中 Forge 注入是否完整。
170
+ * Daemon 未运行仅作提示,不纳入 hooksHealthy。
171
+ */
172
+ export function diagnoseForgeHookEnvironment() {
173
+ const items = [];
174
+ items.push({
175
+ id: 'forge_home',
176
+ label: 'Forge 数据目录',
177
+ ok: fs.existsSync(FORGE_HOME),
178
+ detail: FORGE_HOME,
179
+ });
180
+ for (const name of HOOK_SCRIPT_NAMES) {
181
+ const p = path.join(HOOKS_DIR, name);
182
+ items.push({
183
+ id: `hook_script_${name.replace(/\W/g, '_')}`,
184
+ label: `Hook 脚本: ${name}`,
185
+ ok: fs.existsSync(p),
186
+ detail: p,
187
+ });
188
+ }
189
+ const forgeTypes = Object.keys(getForgeHookEntries());
190
+ if (!fs.existsSync(SETTINGS_PATH)) {
191
+ items.push({
192
+ id: 'claude_settings',
193
+ label: 'Claude settings.json',
194
+ ok: false,
195
+ detail: `缺失: ${SETTINGS_PATH}`,
196
+ });
197
+ for (const hookType of forgeTypes) {
198
+ items.push({
199
+ id: `settings_hook_${hookType}`,
200
+ label: `settings 中 ${hookType} 注入`,
201
+ ok: false,
202
+ detail: 'settings 文件不存在,无法检测',
203
+ });
204
+ }
205
+ }
206
+ else {
207
+ items.push({
208
+ id: 'claude_settings',
209
+ label: 'Claude settings.json',
210
+ ok: true,
211
+ detail: SETTINGS_PATH,
212
+ });
213
+ try {
214
+ const content = fs.readFileSync(SETTINGS_PATH, 'utf-8');
215
+ const settings = JSON.parse(content);
216
+ for (const hookType of forgeTypes) {
217
+ const raw = settings.hooks?.[hookType];
218
+ const normalized = (raw ?? []).map((item) => {
219
+ const e = parseHookEntry(item);
220
+ return normalizeLegacyForgeEntry(e);
221
+ });
222
+ const injected = normalized.some((item) => entryRefersToForge(item));
223
+ items.push({
224
+ id: `settings_hook_${hookType}`,
225
+ label: `settings 中 ${hookType} Forge 注入`,
226
+ ok: injected,
227
+ detail: injected ? '已检测到 Forge 命令' : '未检测到 Forge 命令,可能被移除或未初始化',
228
+ });
229
+ }
230
+ }
231
+ catch (e) {
232
+ items.push({
233
+ id: 'claude_settings_parse',
234
+ label: 'settings.json 解析',
235
+ ok: false,
236
+ detail: e instanceof Error ? e.message : String(e),
237
+ });
238
+ for (const hookType of forgeTypes) {
239
+ items.push({
240
+ id: `settings_hook_${hookType}`,
241
+ label: `settings 中 ${hookType} 注入`,
242
+ ok: false,
243
+ detail: 'JSON 解析失败,无法检测',
244
+ });
245
+ }
246
+ }
247
+ }
248
+ const daemonUp = isRunning();
249
+ items.push({
250
+ id: 'daemon_process',
251
+ label: 'Daemon 进程',
252
+ ok: daemonUp,
253
+ detail: daemonUp ? '运行中' : '未运行;若修复后仍无事件,请执行 cf daemon start 或重启',
254
+ });
255
+ const hooksRelevant = items.filter((i) => i.id === 'forge_home' ||
256
+ i.id.startsWith('hook_script_') ||
257
+ i.id.startsWith('settings_hook_') ||
258
+ i.id === 'claude_settings' ||
259
+ i.id === 'claude_settings_parse');
260
+ const hooksHealthy = hooksRelevant.every((i) => i.ok);
261
+ return { items, hooksHealthy };
262
+ }
263
+ /** 重装 Hook 脚本并重新注入 settings.json(不改动项目配置与 API Key) */
264
+ export function repairForgeHookEnvironment() {
265
+ if (!fs.existsSync(FORGE_HOME)) {
266
+ fs.mkdirSync(FORGE_HOME, { recursive: true });
267
+ }
268
+ copyHookScripts();
269
+ const backupPath = backupSettings();
270
+ injectHooks();
271
+ return { backupPath };
272
+ }
161
273
  function removeHooks() {
162
274
  if (!fs.existsSync(SETTINGS_PATH)) {
163
275
  return;
@@ -230,6 +342,20 @@ export function registerInitCommand(program) {
230
342
  // 5. 注入 Hooks
231
343
  injectHooks();
232
344
  info('Hooks injected into Claude Code settings');
345
+ // 5b. 同步官方 Convention(BMad、Harness Engineering)
346
+ try {
347
+ const { OfficialConventionSync } = await import('../../convention/official-sync.js');
348
+ const syncReport = new OfficialConventionSync().sync();
349
+ if (syncReport.added.length > 0) {
350
+ info(`官方规范已安装:${syncReport.added.join(', ')}`);
351
+ }
352
+ if (syncReport.updated.length > 0) {
353
+ info(`官方规范已更新:${syncReport.updated.join(', ')}`);
354
+ }
355
+ }
356
+ catch (err) {
357
+ warning(`官方规范同步失败:${err instanceof Error ? err.message : String(err)}`);
358
+ }
233
359
  // 6. API Key 检测与引导
234
360
  let apiKeyConfigured = !!process.env.ANTHROPIC_API_KEY || !!manager.get().distill.api_key;
235
361
  if (!apiKeyConfigured) {
@@ -303,4 +429,383 @@ export function registerInitCommand(program) {
303
429
  success('Claude Forge hooks removed (data preserved in ~/.claude-forge/)');
304
430
  });
305
431
  }
432
+ export function registerDoctorCommand(program) {
433
+ program
434
+ .command('doctor')
435
+ .description('检测 Claude Code Hooks 与 Forge 脚本是否完整,可选一键修复')
436
+ .option('-f, --fix', '重装 ~/.claude-forge/hooks 脚本并重新注入 ~/.claude/settings.json')
437
+ .action(async (opts) => {
438
+ const globalOpts = program.opts();
439
+ const { hooksHealthy, items } = diagnoseForgeHookEnvironment();
440
+ if (opts.fix) {
441
+ const { backupPath } = repairForgeHookEnvironment();
442
+ const after = diagnoseForgeHookEnvironment();
443
+ if (globalOpts.json) {
444
+ console.log(JSON.stringify({
445
+ repaired: true,
446
+ backupPath,
447
+ beforeHooksHealthy: hooksHealthy,
448
+ hooksHealthy: after.hooksHealthy,
449
+ items: after.items,
450
+ }, null, 2));
451
+ }
452
+ else if (!globalOpts.quiet) {
453
+ heading('【Forge:环境修复】');
454
+ if (backupPath) {
455
+ info(`已备份 settings: ${path.basename(backupPath)}`);
456
+ }
457
+ info('已重装 Hook 脚本并完成 settings 注入。');
458
+ heading('【Forge:环境诊断】(修复后)');
459
+ for (const it of after.items) {
460
+ if (it.ok) {
461
+ success(`${it.label} — ${it.detail}`);
462
+ }
463
+ else if (it.id === 'daemon_process') {
464
+ warning(`${it.label} — ${it.detail}`);
465
+ }
466
+ else {
467
+ error(`${it.label} — ${it.detail}`);
468
+ }
469
+ }
470
+ if (after.hooksHealthy) {
471
+ success('Hooks 相关环境已恢复正常。');
472
+ }
473
+ else {
474
+ warning('修复后仍有未通过项,请根据上述列表排查。');
475
+ process.exitCode = 1;
476
+ }
477
+ }
478
+ else if (!after.hooksHealthy) {
479
+ process.exitCode = 1;
480
+ }
481
+ return;
482
+ }
483
+ if (globalOpts.json) {
484
+ console.log(JSON.stringify({ hooksHealthy, items }, null, 2));
485
+ if (!hooksHealthy) {
486
+ process.exitCode = 1;
487
+ }
488
+ return;
489
+ }
490
+ if (!globalOpts.quiet) {
491
+ heading('【Forge:环境诊断】');
492
+ for (const it of items) {
493
+ if (it.ok) {
494
+ success(`${it.label} — ${it.detail}`);
495
+ }
496
+ else if (it.id === 'daemon_process') {
497
+ warning(`${it.label} — ${it.detail}`);
498
+ }
499
+ else {
500
+ error(`${it.label} — ${it.detail}`);
501
+ }
502
+ }
503
+ }
504
+ if (hooksHealthy) {
505
+ if (!globalOpts.quiet) {
506
+ success('Hooks 相关环境正常。');
507
+ const daemonItem = items.find((i) => i.id === 'daemon_process');
508
+ if (daemonItem && !daemonItem.ok) {
509
+ info('提示:Daemon 未运行;若 Claude Code 中无编排事件,可执行 cf daemon start。');
510
+ }
511
+ }
512
+ return;
513
+ }
514
+ if (!globalOpts.quiet) {
515
+ warning('检测到 Hooks 环境不完整,请执行: cf doctor --fix(或在 TUI「初始化/卸载」中选择一键修复)。');
516
+ }
517
+ process.exitCode = 1;
518
+ });
519
+ }
520
+ // ── 项目级环境诊断与修复 ────────────────────────────────────────────────────
521
+ /**
522
+ * 检测项目级 .claude-forge/ 目录下关键文件的完整性。
523
+ */
524
+ export function diagnoseProjectEnvironment(projectPath) {
525
+ const forgeDir = path.join(projectPath, '.claude-forge');
526
+ const items = [];
527
+ // 1. 项目标记目录
528
+ const forgeDirExists = fs.existsSync(forgeDir);
529
+ items.push({
530
+ id: 'project_forge_dir',
531
+ label: '项目 .claude-forge/ 目录',
532
+ ok: forgeDirExists,
533
+ detail: forgeDirExists ? forgeDir : '缺失 — 项目未被 Forge 管理,请执行 cf init',
534
+ });
535
+ if (!forgeDirExists) {
536
+ return { items, healthy: false };
537
+ }
538
+ // 2. 规范绑定文件
539
+ const bindingsPath = path.join(forgeDir, 'project-conventions.json');
540
+ const bindingsExists = fs.existsSync(bindingsPath);
541
+ let bindings = [];
542
+ let bindingsValid = false;
543
+ if (bindingsExists) {
544
+ try {
545
+ bindings = JSON.parse(fs.readFileSync(bindingsPath, 'utf-8'));
546
+ bindingsValid = Array.isArray(bindings);
547
+ }
548
+ catch {
549
+ bindingsValid = false;
550
+ }
551
+ }
552
+ items.push({
553
+ id: 'project_conventions_json',
554
+ label: '规范绑定 (project-conventions.json)',
555
+ ok: bindingsExists && bindingsValid,
556
+ detail: !bindingsExists
557
+ ? '缺失 — 规范绑定丢失,需重新绑定'
558
+ : bindingsValid
559
+ ? `${bindings.length} 个规范已绑定`
560
+ : '文件损坏,JSON 解析失败',
561
+ });
562
+ // 3. 自定义蒸馏规范
563
+ const customConvPath = path.join(forgeDir, 'custom-convention.yaml');
564
+ const hasCustomConv = fs.existsSync(customConvPath);
565
+ const hasCustomBinding = bindings.some(b => b.convention_id?.startsWith('custom-'));
566
+ items.push({
567
+ id: 'project_custom_convention',
568
+ label: '蒸馏规范 (custom-convention.yaml)',
569
+ ok: hasCustomConv || !hasCustomBinding,
570
+ detail: hasCustomConv
571
+ ? '存在'
572
+ : hasCustomBinding
573
+ ? '缺失 — 绑定记录指向自定义规范但文件不存在,需重新 distill'
574
+ : '未创建(无自定义规范绑定,正常)',
575
+ });
576
+ // 4. CLAUDE.md 中 convention 标记一致性
577
+ const claudeMdPath = path.join(projectPath, 'CLAUDE.md');
578
+ if (fs.existsSync(claudeMdPath) && bindings.length > 0) {
579
+ const claudeMd = fs.readFileSync(claudeMdPath, 'utf-8');
580
+ for (const b of bindings) {
581
+ const id = b.convention_id;
582
+ const startTag = `<!-- forge:convention-start:${id} -->`;
583
+ const hasMarker = claudeMd.includes(startTag);
584
+ items.push({
585
+ id: `convention_marker_${id}`,
586
+ label: `CLAUDE.md 规范标记: ${id}`,
587
+ ok: hasMarker,
588
+ detail: hasMarker ? '已注入' : '缺失 — 绑定存在但 CLAUDE.md 中无对应标记',
589
+ });
590
+ }
591
+ }
592
+ // 5. 蒸馏产物
593
+ const decisionsPath = path.join(forgeDir, 'decisions.md');
594
+ items.push({
595
+ id: 'project_decisions',
596
+ label: '蒸馏决策日志 (decisions.md)',
597
+ ok: fs.existsSync(decisionsPath),
598
+ detail: fs.existsSync(decisionsPath) ? '存在' : '缺失(运行时生成,首次蒸馏后自动创建)',
599
+ });
600
+ const timelinePath = path.join(forgeDir, 'timeline.md');
601
+ items.push({
602
+ id: 'project_timeline',
603
+ label: '蒸馏时间线 (timeline.md)',
604
+ ok: fs.existsSync(timelinePath),
605
+ detail: fs.existsSync(timelinePath) ? '存在' : '缺失(运行时生成,首次蒸馏后自动创建)',
606
+ });
607
+ // 6. Persona
608
+ const personaPath = path.join(forgeDir, 'persona.md');
609
+ items.push({
610
+ id: 'project_persona',
611
+ label: '项目人设 (persona.md)',
612
+ ok: fs.existsSync(personaPath),
613
+ detail: fs.existsSync(personaPath) ? '存在' : '缺失(运行时生成,首次 refine 后自动创建)',
614
+ });
615
+ // 7. Refine 状态
616
+ const refineStatePath = path.join(forgeDir, 'refine-state.json');
617
+ items.push({
618
+ id: 'project_refine_state',
619
+ label: 'Refine 状态 (refine-state.json)',
620
+ ok: fs.existsSync(refineStatePath),
621
+ detail: fs.existsSync(refineStatePath) ? '存在' : '缺失(运行时生成,首次 refine 后自动创建)',
622
+ });
623
+ // 健康标准:核心文件必须存在(蒸馏产物和 persona 是运行时生成的,不作为必须项)
624
+ const criticalIds = ['project_forge_dir', 'project_conventions_json', 'project_custom_convention'];
625
+ const markerIds = items.filter(i => i.id.startsWith('convention_marker_')).map(i => i.id);
626
+ const healthCheckIds = [...criticalIds, ...markerIds];
627
+ const healthy = healthCheckIds.every(id => items.find(i => i.id === id)?.ok ?? true);
628
+ return { items, healthy };
629
+ }
630
+ /**
631
+ * 修复项目级环境:重建丢失的绑定文件和 CLAUDE.md 标记。
632
+ */
633
+ export async function repairProjectEnvironment(projectPath) {
634
+ const forgeDir = path.join(projectPath, '.claude-forge');
635
+ const repaired = [];
636
+ // 1. 确保 .claude-forge/ 存在
637
+ if (!fs.existsSync(forgeDir)) {
638
+ fs.mkdirSync(forgeDir, { recursive: true });
639
+ repaired.push('创建 .claude-forge/ 目录');
640
+ }
641
+ // 2. 规范绑定修复
642
+ const bindingsPath = path.join(forgeDir, 'project-conventions.json');
643
+ const claudeMdPath = path.join(projectPath, 'CLAUDE.md');
644
+ let bindings = [];
645
+ if (fs.existsSync(bindingsPath)) {
646
+ try {
647
+ bindings = JSON.parse(fs.readFileSync(bindingsPath, 'utf-8'));
648
+ }
649
+ catch {
650
+ bindings = [];
651
+ }
652
+ }
653
+ // 2a. CLAUDE.md 有 convention 标记但绑定文件缺失 → 从标记反向重建
654
+ if (fs.existsSync(claudeMdPath)) {
655
+ const claudeMd = fs.readFileSync(claudeMdPath, 'utf-8');
656
+ const markerRegex = /<!-- forge:convention-start:([^ ]+) -->/g;
657
+ let match;
658
+ const markeredIds = new Set();
659
+ while ((match = markerRegex.exec(claudeMd)) !== null) {
660
+ markeredIds.add(match[1]);
661
+ }
662
+ // 找出标记存在但绑定缺失的 convention
663
+ for (const id of markeredIds) {
664
+ if (!bindings.some(b => b.convention_id === id)) {
665
+ bindings.push({
666
+ convention_id: id,
667
+ bound_at: new Date().toISOString(),
668
+ project_path: projectPath,
669
+ });
670
+ repaired.push(`从 CLAUDE.md 标记恢复绑定: ${id}`);
671
+ }
672
+ }
673
+ if (repaired.some(r => r.includes('恢复绑定'))) {
674
+ fs.writeFileSync(bindingsPath, JSON.stringify(bindings, null, 2), 'utf-8');
675
+ }
676
+ }
677
+ // 2b. 绑定存在但 CLAUDE.md 标记缺失 → 重新注入
678
+ if (bindings.length > 0 && fs.existsSync(claudeMdPath)) {
679
+ const { ConventionManager } = await import('../../convention/convention-manager.js');
680
+ const manager = new ConventionManager();
681
+ const claudeMd = fs.readFileSync(claudeMdPath, 'utf-8');
682
+ for (const b of bindings) {
683
+ const startTag = `<!-- forge:convention-start:${b.convention_id} -->`;
684
+ if (!claudeMd.includes(startTag)) {
685
+ // 尝试加载 convention 并注入
686
+ try {
687
+ const conventions = manager.getActiveConventions(projectPath);
688
+ const conv = conventions.find(c => c.id === b.convention_id);
689
+ if (conv) {
690
+ manager.injectIntoClaudeMd(projectPath, conv);
691
+ repaired.push(`重新注入 CLAUDE.md 规范标记: ${b.convention_id}`);
692
+ }
693
+ }
694
+ catch {
695
+ // convention 文件可能也不存在,跳过
696
+ }
697
+ }
698
+ }
699
+ }
700
+ // 2c. custom-convention.yaml 缺失但有 custom- 绑定 → 尝试重新 distill
701
+ const hasCustomBinding = bindings.some(b => b.convention_id?.startsWith('custom-'));
702
+ const customConvPath = path.join(forgeDir, 'custom-convention.yaml');
703
+ if (hasCustomBinding && !fs.existsSync(customConvPath)) {
704
+ try {
705
+ const { ConventionDistiller } = await import('../../convention/convention-distiller.js');
706
+ const { ConventionLoader } = await import('../../convention/convention-loader.js');
707
+ const { ConfigManager } = await import('../../config/index.js');
708
+ const { ClaudeAPI } = await import('../../utils/claude-api.js');
709
+ const config = new ConfigManager().get();
710
+ const apiKey = config.distill.api_key || undefined;
711
+ const api = new ClaudeAPI(apiKey, config.distill.model, config.distill.base_url || undefined);
712
+ const loader = new ConventionLoader();
713
+ const distiller = new ConventionDistiller(api, loader);
714
+ const sourceConventions = loader.loadAll();
715
+ if (sourceConventions.length > 0) {
716
+ await distiller.distill(projectPath, sourceConventions);
717
+ repaired.push('重新蒸馏生成 custom-convention.yaml');
718
+ }
719
+ else {
720
+ repaired.push('custom-convention.yaml 重建跳过:无已安装的源规范');
721
+ }
722
+ }
723
+ catch (err) {
724
+ repaired.push(`custom-convention.yaml 重建失败: ${err instanceof Error ? err.message : String(err)}`);
725
+ }
726
+ }
727
+ return repaired;
728
+ }
729
+ export function registerProjectDoctorCommand(program) {
730
+ program
731
+ .command('project-doctor')
732
+ .description('检测当前项目的 Forge 环境是否完整(规范绑定、蒸馏产物等),可选修复')
733
+ .option('-p, --project <path>', '项目路径', process.cwd())
734
+ .option('-f, --fix', '自动修复可恢复的问题')
735
+ .action(async (opts) => {
736
+ const globalOpts = program.opts();
737
+ const projectPath = path.resolve(opts.project);
738
+ const { healthy, items } = diagnoseProjectEnvironment(projectPath);
739
+ if (opts.fix) {
740
+ const repaired = await repairProjectEnvironment(projectPath);
741
+ const after = diagnoseProjectEnvironment(projectPath);
742
+ if (globalOpts.json) {
743
+ console.log(JSON.stringify({ repaired, beforeHealthy: healthy, healthy: after.healthy, items: after.items }, null, 2));
744
+ }
745
+ else if (!globalOpts.quiet) {
746
+ heading('【Forge:项目环境修复】');
747
+ if (repaired.length > 0) {
748
+ for (const r of repaired)
749
+ success(`✓ ${r}`);
750
+ }
751
+ else {
752
+ info('无需修复。');
753
+ }
754
+ heading('【Forge:项目环境诊断】(修复后)');
755
+ for (const it of after.items) {
756
+ if (it.ok) {
757
+ success(`${it.label} — ${it.detail}`);
758
+ }
759
+ else if (it.id.startsWith('project_decisions') || it.id.startsWith('project_timeline') || it.id === 'project_persona' || it.id === 'project_refine_state') {
760
+ info(`${it.label} — ${it.detail}`);
761
+ }
762
+ else {
763
+ error(`${it.label} — ${it.detail}`);
764
+ }
765
+ }
766
+ if (after.healthy) {
767
+ success('项目环境正常。');
768
+ }
769
+ else {
770
+ warning('修复后仍有未通过项,请根据上述列表排查。');
771
+ process.exitCode = 1;
772
+ }
773
+ }
774
+ else if (!after.healthy) {
775
+ process.exitCode = 1;
776
+ }
777
+ return;
778
+ }
779
+ if (globalOpts.json) {
780
+ console.log(JSON.stringify({ healthy, items }, null, 2));
781
+ if (!healthy)
782
+ process.exitCode = 1;
783
+ return;
784
+ }
785
+ if (!globalOpts.quiet) {
786
+ heading(`【Forge:项目环境诊断】${projectPath}`);
787
+ for (const it of items) {
788
+ if (it.ok) {
789
+ success(`${it.label} — ${it.detail}`);
790
+ }
791
+ else if (it.id.startsWith('project_decisions') || it.id.startsWith('project_timeline') || it.id === 'project_persona' || it.id === 'project_refine_state') {
792
+ info(`${it.label} — ${it.detail}`);
793
+ }
794
+ else {
795
+ error(`${it.label} — ${it.detail}`);
796
+ }
797
+ }
798
+ if (healthy) {
799
+ success('项目环境正常。');
800
+ }
801
+ else {
802
+ warning('检测到项目环境不完整,请执行: cf project-doctor --fix');
803
+ process.exitCode = 1;
804
+ }
805
+ }
806
+ else if (!healthy) {
807
+ process.exitCode = 1;
808
+ }
809
+ });
810
+ }
306
811
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
- import { registerInitCommand } from './commands/init.js';
3
+ import { registerInitCommand, registerDoctorCommand, registerProjectDoctorCommand } from './commands/init.js';
4
4
  import { registerDaemonCommand } from './commands/daemon.js';
5
5
  import { registerBackupCommand } from './commands/backup.js';
6
6
  import { registerDistillCommand } from './commands/distill.js';
@@ -26,6 +26,8 @@ program
26
26
  .option('--no-color', 'Disable color output');
27
27
  // 注册所有子命令
28
28
  registerInitCommand(program);
29
+ registerDoctorCommand(program);
30
+ registerProjectDoctorCommand(program);
29
31
  registerDaemonCommand(program);
30
32
  registerBackupCommand(program);
31
33
  registerDistillCommand(program);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAC1D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAEhD,UAAU;AACV,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,iBAAiB;AACjB,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACxB,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,SAAS;AACT,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAC7C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AAE9C,OAAO,CAAC,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,eAAe,EAAE,uBAAuB,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAC1D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AAEhD,UAAU;AACV,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACtC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACnC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAEjC,iBAAiB;AACjB,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;IACxB,MAAM,QAAQ,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,SAAS;AACT,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAC7C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AAE9C,OAAO,CAAC,UAAU,EAAE,CAAC"}