@winspan/claude-forge 9.2.0 → 9.12.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 (591) hide show
  1. package/DEVELOPMENT.md +80 -19
  2. package/README.md +13 -6
  3. package/dist/catalogs/agents.json +19 -24
  4. package/dist/catalogs/skills.json +139 -27
  5. package/dist/claudemd/templates/swarm-protocol.md +1 -1
  6. package/dist/cli/commands/agent.d.ts +169 -0
  7. package/dist/cli/commands/agent.d.ts.map +1 -0
  8. package/dist/cli/commands/agent.js +690 -0
  9. package/dist/cli/commands/agent.js.map +1 -0
  10. package/dist/cli/commands/codegraph.d.ts +17 -0
  11. package/dist/cli/commands/codegraph.d.ts.map +1 -0
  12. package/dist/cli/commands/codegraph.js +263 -0
  13. package/dist/cli/commands/codegraph.js.map +1 -0
  14. package/dist/cli/commands/decisions.d.ts.map +1 -1
  15. package/dist/cli/commands/decisions.js +46 -9
  16. package/dist/cli/commands/decisions.js.map +1 -1
  17. package/dist/cli/commands/executions.d.ts.map +1 -1
  18. package/dist/cli/commands/executions.js +2 -1
  19. package/dist/cli/commands/executions.js.map +1 -1
  20. package/dist/cli/commands/insights-goal-check.d.ts +5 -1
  21. package/dist/cli/commands/insights-goal-check.d.ts.map +1 -1
  22. package/dist/cli/commands/insights-goal-check.js +15 -15
  23. package/dist/cli/commands/insights-goal-check.js.map +1 -1
  24. package/dist/cli/commands/knowledge.d.ts +51 -0
  25. package/dist/cli/commands/knowledge.d.ts.map +1 -1
  26. package/dist/cli/commands/knowledge.js +202 -29
  27. package/dist/cli/commands/knowledge.js.map +1 -1
  28. package/dist/cli/commands/loop.d.ts +95 -0
  29. package/dist/cli/commands/loop.d.ts.map +1 -0
  30. package/dist/cli/commands/loop.js +408 -0
  31. package/dist/cli/commands/loop.js.map +1 -0
  32. package/dist/cli/commands/maintenance.d.ts +33 -0
  33. package/dist/cli/commands/maintenance.d.ts.map +1 -0
  34. package/dist/cli/commands/maintenance.js +75 -0
  35. package/dist/cli/commands/maintenance.js.map +1 -0
  36. package/dist/cli/commands/mcp.d.ts +23 -0
  37. package/dist/cli/commands/mcp.d.ts.map +1 -1
  38. package/dist/cli/commands/mcp.js +82 -0
  39. package/dist/cli/commands/mcp.js.map +1 -1
  40. package/dist/cli/commands/skills.d.ts +131 -0
  41. package/dist/cli/commands/skills.d.ts.map +1 -1
  42. package/dist/cli/commands/skills.js +409 -9
  43. package/dist/cli/commands/skills.js.map +1 -1
  44. package/dist/cli/commands/stats.d.ts.map +1 -1
  45. package/dist/cli/commands/stats.js +9 -2
  46. package/dist/cli/commands/stats.js.map +1 -1
  47. package/dist/cli/index.js +8 -0
  48. package/dist/cli/index.js.map +1 -1
  49. package/dist/core/constants.d.ts +37 -0
  50. package/dist/core/constants.d.ts.map +1 -1
  51. package/dist/core/constants.js +43 -0
  52. package/dist/core/constants.js.map +1 -1
  53. package/dist/core/diagnostics/checks.d.ts.map +1 -1
  54. package/dist/core/diagnostics/checks.js +2 -1
  55. package/dist/core/diagnostics/checks.js.map +1 -1
  56. package/dist/core/diagnostics/daemon-status.d.ts +1 -1
  57. package/dist/core/diagnostics/daemon-status.d.ts.map +1 -1
  58. package/dist/core/diagnostics/daemon-status.js +1 -1
  59. package/dist/core/diagnostics/daemon-status.js.map +1 -1
  60. package/dist/core/diagnostics/entropy-checks.d.ts +3 -2
  61. package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -1
  62. package/dist/core/diagnostics/entropy-checks.js +10 -5
  63. package/dist/core/diagnostics/entropy-checks.js.map +1 -1
  64. package/dist/core/diagnostics/heartbeat-reader.d.ts +28 -0
  65. package/dist/core/diagnostics/heartbeat-reader.d.ts.map +1 -0
  66. package/dist/core/diagnostics/heartbeat-reader.js +50 -0
  67. package/dist/core/diagnostics/heartbeat-reader.js.map +1 -0
  68. package/dist/core/event-fields.d.ts +27 -0
  69. package/dist/core/event-fields.d.ts.map +1 -1
  70. package/dist/core/event-fields.js +43 -0
  71. package/dist/core/event-fields.js.map +1 -1
  72. package/dist/core/governance/global-inject.d.ts +34 -4
  73. package/dist/core/governance/global-inject.d.ts.map +1 -1
  74. package/dist/core/governance/global-inject.js +80 -25
  75. package/dist/core/governance/global-inject.js.map +1 -1
  76. package/dist/core/insights/agent-anchor-guard.d.ts +77 -0
  77. package/dist/core/insights/agent-anchor-guard.d.ts.map +1 -0
  78. package/dist/core/insights/agent-anchor-guard.js +119 -0
  79. package/dist/core/insights/agent-anchor-guard.js.map +1 -0
  80. package/dist/core/insights/agent-distill-context.d.ts +55 -0
  81. package/dist/core/insights/agent-distill-context.d.ts.map +1 -0
  82. package/dist/core/insights/agent-distill-context.js +146 -0
  83. package/dist/core/insights/agent-distill-context.js.map +1 -0
  84. package/dist/core/insights/agent-distill-spawn.d.ts +56 -0
  85. package/dist/core/insights/agent-distill-spawn.d.ts.map +1 -0
  86. package/dist/core/insights/agent-distill-spawn.js +179 -0
  87. package/dist/core/insights/agent-distill-spawn.js.map +1 -0
  88. package/dist/core/insights/agent-drift.d.ts +66 -0
  89. package/dist/core/insights/agent-drift.d.ts.map +1 -0
  90. package/dist/core/insights/agent-drift.js +109 -0
  91. package/dist/core/insights/agent-drift.js.map +1 -0
  92. package/dist/core/insights/agent-evolution-sources.d.ts +21 -0
  93. package/dist/core/insights/agent-evolution-sources.d.ts.map +1 -0
  94. package/dist/core/insights/agent-evolution-sources.js +36 -0
  95. package/dist/core/insights/agent-evolution-sources.js.map +1 -0
  96. package/dist/core/insights/agent-health.d.ts +142 -0
  97. package/dist/core/insights/agent-health.d.ts.map +1 -0
  98. package/dist/core/insights/agent-health.js +296 -0
  99. package/dist/core/insights/agent-health.js.map +1 -0
  100. package/dist/core/insights/agent-patch-apply.d.ts +45 -0
  101. package/dist/core/insights/agent-patch-apply.d.ts.map +1 -0
  102. package/dist/core/insights/agent-patch-apply.js +165 -0
  103. package/dist/core/insights/agent-patch-apply.js.map +1 -0
  104. package/dist/core/insights/agent-suggest.d.ts +128 -0
  105. package/dist/core/insights/agent-suggest.d.ts.map +1 -0
  106. package/dist/core/insights/agent-suggest.js +284 -0
  107. package/dist/core/insights/agent-suggest.js.map +1 -0
  108. package/dist/core/insights/coverage-tiers.d.ts +46 -0
  109. package/dist/core/insights/coverage-tiers.d.ts.map +1 -0
  110. package/dist/core/insights/coverage-tiers.js +95 -0
  111. package/dist/core/insights/coverage-tiers.js.map +1 -0
  112. package/dist/{daemon/services → core/insights}/experience-extractor.d.ts +0 -7
  113. package/dist/core/insights/experience-extractor.d.ts.map +1 -0
  114. package/dist/{daemon/services → core/insights}/experience-extractor.js +5 -9
  115. package/dist/core/insights/experience-extractor.js.map +1 -0
  116. package/dist/{daemon/services → core/insights}/violation-reporter.d.ts +20 -1
  117. package/dist/core/insights/violation-reporter.d.ts.map +1 -0
  118. package/dist/{daemon/services → core/insights}/violation-reporter.js +56 -4
  119. package/dist/core/insights/violation-reporter.js.map +1 -0
  120. package/dist/core/loop/loop-engine.d.ts +140 -0
  121. package/dist/core/loop/loop-engine.d.ts.map +1 -0
  122. package/dist/core/loop/loop-engine.js +266 -0
  123. package/dist/core/loop/loop-engine.js.map +1 -0
  124. package/dist/core/queue/index.d.ts.map +1 -1
  125. package/dist/core/queue/index.js +2 -1
  126. package/dist/core/queue/index.js.map +1 -1
  127. package/dist/core/storage/base.d.ts +159 -0
  128. package/dist/core/storage/base.d.ts.map +1 -1
  129. package/dist/core/storage/base.js +523 -0
  130. package/dist/core/storage/base.js.map +1 -1
  131. package/dist/core/storage/codegraph-types.d.ts +79 -0
  132. package/dist/core/storage/codegraph-types.d.ts.map +1 -0
  133. package/dist/core/storage/codegraph-types.js +14 -0
  134. package/dist/core/storage/codegraph-types.js.map +1 -0
  135. package/dist/core/storage/codegraph.d.ts +186 -0
  136. package/dist/core/storage/codegraph.d.ts.map +1 -0
  137. package/dist/core/storage/codegraph.js +452 -0
  138. package/dist/core/storage/codegraph.js.map +1 -0
  139. package/dist/core/storage/decisions.d.ts +30 -5
  140. package/dist/core/storage/decisions.d.ts.map +1 -1
  141. package/dist/core/storage/decisions.js +45 -13
  142. package/dist/core/storage/decisions.js.map +1 -1
  143. package/dist/core/storage/events.d.ts +127 -0
  144. package/dist/core/storage/events.d.ts.map +1 -1
  145. package/dist/core/storage/events.js +318 -3
  146. package/dist/core/storage/events.js.map +1 -1
  147. package/dist/core/storage/feedback.d.ts +3 -23
  148. package/dist/core/storage/feedback.d.ts.map +1 -1
  149. package/dist/core/storage/feedback.js +37 -38
  150. package/dist/core/storage/feedback.js.map +1 -1
  151. package/dist/core/storage/injections.d.ts +40 -0
  152. package/dist/core/storage/injections.d.ts.map +1 -1
  153. package/dist/core/storage/injections.js +69 -0
  154. package/dist/core/storage/injections.js.map +1 -1
  155. package/dist/core/storage/knowledge.d.ts +226 -0
  156. package/dist/core/storage/knowledge.d.ts.map +1 -1
  157. package/dist/core/storage/knowledge.js +391 -4
  158. package/dist/core/storage/knowledge.js.map +1 -1
  159. package/dist/core/storage/pipeline-rollup.d.ts +1 -7
  160. package/dist/core/storage/pipeline-rollup.d.ts.map +1 -1
  161. package/dist/core/storage/pipeline-rollup.js +18 -57
  162. package/dist/core/storage/pipeline-rollup.js.map +1 -1
  163. package/dist/core/storage/routing.d.ts +34 -0
  164. package/dist/core/storage/routing.d.ts.map +1 -1
  165. package/dist/core/storage/routing.js +92 -2
  166. package/dist/core/storage/routing.js.map +1 -1
  167. package/dist/core/storage/rows.d.ts +5 -25
  168. package/dist/core/storage/rows.d.ts.map +1 -1
  169. package/dist/core/storage/schema.sql +92 -27
  170. package/dist/core/storage/sessions.d.ts.map +1 -1
  171. package/dist/core/storage/sessions.js +2 -1
  172. package/dist/core/storage/sessions.js.map +1 -1
  173. package/dist/core/storage/skills.d.ts +159 -0
  174. package/dist/core/storage/skills.d.ts.map +1 -1
  175. package/dist/core/storage/skills.js +350 -4
  176. package/dist/core/storage/skills.js.map +1 -1
  177. package/dist/core/storage/sqlite.d.ts +81 -25
  178. package/dist/core/storage/sqlite.d.ts.map +1 -1
  179. package/dist/core/storage/sqlite.js +143 -45
  180. package/dist/core/storage/sqlite.js.map +1 -1
  181. package/dist/core/storage/tasks.d.ts +270 -0
  182. package/dist/core/storage/tasks.d.ts.map +1 -1
  183. package/dist/core/storage/tasks.js +495 -16
  184. package/dist/core/storage/tasks.js.map +1 -1
  185. package/dist/core/storage/tool-intercepts.d.ts +1 -1
  186. package/dist/core/storage/tool-intercepts.js +1 -1
  187. package/dist/core/types.d.ts +26 -3
  188. package/dist/core/types.d.ts.map +1 -1
  189. package/dist/core/types.js +1 -3
  190. package/dist/core/types.js.map +1 -1
  191. package/dist/core/utils/binary-paths.d.ts +32 -0
  192. package/dist/core/utils/binary-paths.d.ts.map +1 -1
  193. package/dist/core/utils/binary-paths.js +52 -0
  194. package/dist/core/utils/binary-paths.js.map +1 -1
  195. package/dist/core/utils/claude-cli-resolver.d.ts.map +1 -0
  196. package/dist/{skills/distill → core/utils}/claude-cli-resolver.js +1 -1
  197. package/dist/core/utils/claude-cli-resolver.js.map +1 -0
  198. package/dist/core/utils/claude-cli-spawn.d.ts +1 -1
  199. package/dist/core/utils/claude-cli-spawn.js +2 -2
  200. package/dist/core/utils/claude-cli-spawn.js.map +1 -1
  201. package/dist/core/utils/noise-prompt.d.ts +1 -1
  202. package/dist/core/utils/noise-prompt.js +1 -1
  203. package/dist/core/utils/time.d.ts +26 -0
  204. package/dist/core/utils/time.d.ts.map +1 -1
  205. package/dist/core/utils/time.js +33 -0
  206. package/dist/core/utils/time.js.map +1 -1
  207. package/dist/daemon/config-store.d.ts.map +1 -1
  208. package/dist/daemon/config-store.js +14 -5
  209. package/dist/daemon/config-store.js.map +1 -1
  210. package/dist/daemon/event-parser.d.ts.map +1 -1
  211. package/dist/daemon/event-parser.js +5 -0
  212. package/dist/daemon/event-parser.js.map +1 -1
  213. package/dist/daemon/handlers/post-tool-use.d.ts +24 -16
  214. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  215. package/dist/daemon/handlers/post-tool-use.js +76 -116
  216. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  217. package/dist/daemon/handlers/pre-tool-use.d.ts +35 -10
  218. package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -1
  219. package/dist/daemon/handlers/pre-tool-use.js +71 -38
  220. package/dist/daemon/handlers/pre-tool-use.js.map +1 -1
  221. package/dist/daemon/handlers/stop.d.ts +20 -0
  222. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  223. package/dist/daemon/handlers/stop.js +96 -8
  224. package/dist/daemon/handlers/stop.js.map +1 -1
  225. package/dist/daemon/handlers/user-prompt.d.ts +16 -1
  226. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  227. package/dist/daemon/handlers/user-prompt.js +97 -56
  228. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  229. package/dist/daemon/handlers/violation-content-backfill.d.ts +76 -0
  230. package/dist/daemon/handlers/violation-content-backfill.d.ts.map +1 -0
  231. package/dist/daemon/handlers/violation-content-backfill.js +167 -0
  232. package/dist/daemon/handlers/violation-content-backfill.js.map +1 -0
  233. package/dist/daemon/index.d.ts +19 -0
  234. package/dist/daemon/index.d.ts.map +1 -1
  235. package/dist/daemon/index.js +125 -200
  236. package/dist/daemon/index.js.map +1 -1
  237. package/dist/daemon/rules/defaults.d.ts.map +1 -1
  238. package/dist/daemon/rules/defaults.js +151 -64
  239. package/dist/daemon/rules/defaults.js.map +1 -1
  240. package/dist/daemon/rules/types.d.ts +28 -22
  241. package/dist/daemon/rules/types.d.ts.map +1 -1
  242. package/dist/daemon/rules/workflow-defaults.js +9 -9
  243. package/dist/daemon/rules/workflow-defaults.js.map +1 -1
  244. package/dist/daemon/services/codegraph-sync.d.ts +94 -0
  245. package/dist/daemon/services/codegraph-sync.d.ts.map +1 -0
  246. package/dist/daemon/services/codegraph-sync.js +159 -0
  247. package/dist/daemon/services/codegraph-sync.js.map +1 -0
  248. package/dist/daemon/services/decision-hint.d.ts +47 -10
  249. package/dist/daemon/services/decision-hint.d.ts.map +1 -1
  250. package/dist/daemon/services/decision-hint.js +99 -24
  251. package/dist/daemon/services/decision-hint.js.map +1 -1
  252. package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -1
  253. package/dist/daemon/services/event-ttl-sweep.js +3 -2
  254. package/dist/daemon/services/event-ttl-sweep.js.map +1 -1
  255. package/dist/daemon/services/feedback-aggregator.d.ts +14 -26
  256. package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -1
  257. package/dist/daemon/services/feedback-aggregator.js +23 -63
  258. package/dist/daemon/services/feedback-aggregator.js.map +1 -1
  259. package/dist/daemon/services/heartbeat-writer.d.ts +6 -15
  260. package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -1
  261. package/dist/daemon/services/heartbeat-writer.js +7 -36
  262. package/dist/daemon/services/heartbeat-writer.js.map +1 -1
  263. package/dist/daemon/services/kb-injector.d.ts +1 -1
  264. package/dist/daemon/services/kb-injector.d.ts.map +1 -1
  265. package/dist/daemon/services/kb-injector.js +10 -2
  266. package/dist/daemon/services/kb-injector.js.map +1 -1
  267. package/dist/daemon/services/kb-rebuild-scheduler.d.ts +95 -0
  268. package/dist/daemon/services/kb-rebuild-scheduler.d.ts.map +1 -0
  269. package/dist/daemon/services/kb-rebuild-scheduler.js +149 -0
  270. package/dist/daemon/services/kb-rebuild-scheduler.js.map +1 -0
  271. package/dist/daemon/services/loop-hint.d.ts +139 -0
  272. package/dist/daemon/services/loop-hint.d.ts.map +1 -0
  273. package/dist/daemon/services/loop-hint.js +272 -0
  274. package/dist/daemon/services/loop-hint.js.map +1 -0
  275. package/dist/daemon/services/outcome-classification-service.js +1 -1
  276. package/dist/daemon/services/outcome-classification-service.js.map +1 -1
  277. package/dist/daemon/services/task-segmenter.d.ts +11 -0
  278. package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
  279. package/dist/daemon/services/task-segmenter.js +48 -2
  280. package/dist/daemon/services/task-segmenter.js.map +1 -1
  281. package/dist/daemon/startup/maintenance-schedulers.d.ts +68 -0
  282. package/dist/daemon/startup/maintenance-schedulers.d.ts.map +1 -0
  283. package/dist/daemon/startup/maintenance-schedulers.js +294 -0
  284. package/dist/daemon/startup/maintenance-schedulers.js.map +1 -0
  285. package/dist/daemon/templates/agents/agent-retro-distiller.md +106 -0
  286. package/dist/daemon/templates/agents/claudemd-writer.md +1 -0
  287. package/dist/daemon/templates/agents/coder.md +165 -8
  288. package/dist/daemon/templates/agents/decision-maker.md +107 -21
  289. package/dist/daemon/templates/agents/doc-reviewer.md +4 -1
  290. package/dist/daemon/templates/agents/harness-debug-full.md +85 -3
  291. package/dist/daemon/templates/agents/knowledge-builder.md +1 -0
  292. package/dist/daemon/templates/agents/patch-applier.md +1 -0
  293. package/dist/daemon/templates/agents/planner.md +55 -3
  294. package/dist/daemon/templates/agents/safety-net-implementer.md +278 -0
  295. package/dist/daemon/templates/agents/skill-distiller.md +1 -0
  296. package/dist/daemon/templates/agents/task-boundary-classifier.md +1 -0
  297. package/dist/daemon/templates/agents/verify-agent.md +128 -5
  298. package/dist/hooks/stop.sh +7 -1
  299. package/dist/knowledge/builder.js +36 -7
  300. package/dist/knowledge/builder.js.map +1 -1
  301. package/dist/knowledge/constants.d.ts +10 -5
  302. package/dist/knowledge/constants.d.ts.map +1 -1
  303. package/dist/knowledge/constants.js +10 -5
  304. package/dist/knowledge/constants.js.map +1 -1
  305. package/dist/knowledge/graph/edge-extractor.d.ts +45 -0
  306. package/dist/knowledge/graph/edge-extractor.d.ts.map +1 -0
  307. package/dist/knowledge/graph/edge-extractor.js +242 -0
  308. package/dist/knowledge/graph/edge-extractor.js.map +1 -0
  309. package/dist/knowledge/graph/impact.d.ts +73 -0
  310. package/dist/knowledge/graph/impact.d.ts.map +1 -0
  311. package/dist/knowledge/graph/impact.js +94 -0
  312. package/dist/knowledge/graph/impact.js.map +1 -0
  313. package/dist/knowledge/graph/types.d.ts +22 -0
  314. package/dist/knowledge/graph/types.d.ts.map +1 -0
  315. package/dist/knowledge/graph/types.js +13 -0
  316. package/dist/knowledge/graph/types.js.map +1 -0
  317. package/dist/knowledge/prompt.d.ts +9 -0
  318. package/dist/knowledge/prompt.d.ts.map +1 -1
  319. package/dist/knowledge/prompt.js +17 -5
  320. package/dist/knowledge/prompt.js.map +1 -1
  321. package/dist/knowledge/query.d.ts +13 -0
  322. package/dist/knowledge/query.d.ts.map +1 -1
  323. package/dist/knowledge/query.js +107 -10
  324. package/dist/knowledge/query.js.map +1 -1
  325. package/dist/knowledge/repo-map.d.ts +11 -5
  326. package/dist/knowledge/repo-map.d.ts.map +1 -1
  327. package/dist/knowledge/repo-map.js +42 -3
  328. package/dist/knowledge/repo-map.js.map +1 -1
  329. package/dist/knowledge/validator.d.ts.map +1 -1
  330. package/dist/knowledge/validator.js +69 -2
  331. package/dist/knowledge/validator.js.map +1 -1
  332. package/dist/mcp/server.d.ts +64 -8
  333. package/dist/mcp/server.d.ts.map +1 -1
  334. package/dist/mcp/server.js +233 -18
  335. package/dist/mcp/server.js.map +1 -1
  336. package/dist/skills/distill/distiller.js +1 -1
  337. package/dist/skills/distill/distiller.js.map +1 -1
  338. package/dist/skills/distilled/distilled-api-design.md +4 -0
  339. package/dist/skills/distilled/distilled-brainstorming.md +79 -0
  340. package/dist/skills/distilled/distilled-brand-guidelines.md +86 -0
  341. package/dist/skills/distilled/distilled-canvas-design.md +128 -0
  342. package/dist/skills/distilled/distilled-claude-api.md +185 -0
  343. package/dist/skills/distilled/distilled-creator.md +5 -2
  344. package/dist/skills/distilled/distilled-dispatching-parallel-agents.md +136 -0
  345. package/dist/skills/distilled/distilled-doc-coauthoring.md +144 -0
  346. package/dist/skills/distilled/distilled-docx.md +231 -0
  347. package/dist/skills/distilled/distilled-executing-plans.md +85 -50
  348. package/dist/skills/distilled/distilled-finishing-a-development-branch.md +213 -0
  349. package/dist/skills/distilled/distilled-frontend-design.md +118 -0
  350. package/dist/skills/distilled/distilled-harness-engineering.md +1 -1
  351. package/dist/skills/distilled/distilled-receiving-code-review.md +185 -0
  352. package/dist/skills/distilled/distilled-subagent-driven-development.md +124 -0
  353. package/dist/skills/distilled/distilled-systematic-debugging.md +108 -260
  354. package/dist/skills/distilled/distilled-test-driven-development.md +432 -0
  355. package/dist/skills/distilled/distilled-using-superpowers.md +134 -0
  356. package/dist/skills/distilled/distilled-verification-before-completion.md +88 -78
  357. package/dist/skills/distilled/distilled-writing-skills.md +175 -0
  358. package/dist/skills/registry.d.ts +10 -50
  359. package/dist/skills/registry.d.ts.map +1 -1
  360. package/dist/skills/registry.js +7 -118
  361. package/dist/skills/registry.js.map +1 -1
  362. package/dist/skills/tools/pipeline-suggest.js +2 -2
  363. package/dist/skills/tools/pipeline-suggest.js.map +1 -1
  364. package/dist/skills/tools/skill-invoke.d.ts +2 -1
  365. package/dist/skills/tools/skill-invoke.d.ts.map +1 -1
  366. package/dist/skills/tools/skill-invoke.js +3 -1
  367. package/dist/skills/tools/skill-invoke.js.map +1 -1
  368. package/dist/web/analytics/anti-pattern-detector.d.ts.map +1 -1
  369. package/dist/web/analytics/anti-pattern-detector.js +6 -1
  370. package/dist/web/analytics/anti-pattern-detector.js.map +1 -1
  371. package/dist/web/analytics/drift-detector.d.ts +6 -0
  372. package/dist/web/analytics/drift-detector.d.ts.map +1 -1
  373. package/dist/web/analytics/drift-detector.js +15 -8
  374. package/dist/web/analytics/drift-detector.js.map +1 -1
  375. package/dist/web/analytics/weekly-report.d.ts +13 -0
  376. package/dist/web/analytics/weekly-report.d.ts.map +1 -1
  377. package/dist/web/analytics/weekly-report.js +17 -3
  378. package/dist/web/analytics/weekly-report.js.map +1 -1
  379. package/dist/web/routes/_helpers.d.ts +31 -0
  380. package/dist/web/routes/_helpers.d.ts.map +1 -1
  381. package/dist/web/routes/_helpers.js +33 -0
  382. package/dist/web/routes/_helpers.js.map +1 -1
  383. package/dist/web/routes/agent-distill.d.ts +49 -0
  384. package/dist/web/routes/agent-distill.d.ts.map +1 -0
  385. package/dist/web/routes/agent-distill.js +526 -0
  386. package/dist/web/routes/agent-distill.js.map +1 -0
  387. package/dist/web/routes/config.d.ts +56 -0
  388. package/dist/web/routes/config.d.ts.map +1 -0
  389. package/dist/web/routes/config.js +243 -0
  390. package/dist/web/routes/config.js.map +1 -0
  391. package/dist/web/routes/decisions.js +1 -1
  392. package/dist/web/routes/decisions.js.map +1 -1
  393. package/dist/web/routes/error-handler.d.ts +0 -4
  394. package/dist/web/routes/error-handler.d.ts.map +1 -1
  395. package/dist/web/routes/error-handler.js +0 -8
  396. package/dist/web/routes/error-handler.js.map +1 -1
  397. package/dist/web/routes/events.d.ts.map +1 -1
  398. package/dist/web/routes/events.js +2 -1
  399. package/dist/web/routes/events.js.map +1 -1
  400. package/dist/web/routes/insights.d.ts.map +1 -1
  401. package/dist/web/routes/insights.js +0 -0
  402. package/dist/web/routes/insights.js.map +1 -1
  403. package/dist/web/routes/knowledge.d.ts +43 -2
  404. package/dist/web/routes/knowledge.d.ts.map +1 -1
  405. package/dist/web/routes/knowledge.js +117 -6
  406. package/dist/web/routes/knowledge.js.map +1 -1
  407. package/dist/web/routes/pipeline.d.ts +0 -9
  408. package/dist/web/routes/pipeline.d.ts.map +1 -1
  409. package/dist/web/routes/pipeline.js +0 -4
  410. package/dist/web/routes/pipeline.js.map +1 -1
  411. package/dist/web/routes/rules.d.ts.map +1 -1
  412. package/dist/web/routes/rules.js +20 -6
  413. package/dist/web/routes/rules.js.map +1 -1
  414. package/dist/web/routes/sessions.d.ts.map +1 -1
  415. package/dist/web/routes/sessions.js +8 -7
  416. package/dist/web/routes/sessions.js.map +1 -1
  417. package/dist/web/routes/skill-stats.d.ts.map +1 -1
  418. package/dist/web/routes/skill-stats.js +153 -16
  419. package/dist/web/routes/skill-stats.js.map +1 -1
  420. package/dist/web/routes/skills-distill.js +1 -1
  421. package/dist/web/routes/skills-distill.js.map +1 -1
  422. package/dist/web/routes/stats.d.ts.map +1 -1
  423. package/dist/web/routes/stats.js +2 -1
  424. package/dist/web/routes/stats.js.map +1 -1
  425. package/dist/web/routes/task-timeline.d.ts +95 -19
  426. package/dist/web/routes/task-timeline.d.ts.map +1 -1
  427. package/dist/web/routes/task-timeline.js +344 -88
  428. package/dist/web/routes/task-timeline.js.map +1 -1
  429. package/dist/web/routes/tasks.d.ts.map +1 -1
  430. package/dist/web/routes/tasks.js +52 -30
  431. package/dist/web/routes/tasks.js.map +1 -1
  432. package/dist/web/routes/violations.d.ts +1 -1
  433. package/dist/web/routes/violations.d.ts.map +1 -1
  434. package/dist/web/routes/violations.js +3 -2
  435. package/dist/web/routes/violations.js.map +1 -1
  436. package/dist/web/server.d.ts.map +1 -1
  437. package/dist/web/server.js +20 -0
  438. package/dist/web/server.js.map +1 -1
  439. package/dist/web/services/agent-distill-manager.d.ts +122 -0
  440. package/dist/web/services/agent-distill-manager.d.ts.map +1 -0
  441. package/dist/web/services/agent-distill-manager.js +397 -0
  442. package/dist/web/services/agent-distill-manager.js.map +1 -0
  443. package/dist/web/services/distill-manager.d.ts +47 -0
  444. package/dist/web/services/distill-manager.d.ts.map +1 -1
  445. package/dist/web/services/distill-manager.js +103 -0
  446. package/dist/web/services/distill-manager.js.map +1 -1
  447. package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js +2 -0
  448. package/dist/web/static/assets/AgentDetailPage-DlUeA1sX.js.map +1 -0
  449. package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js +3 -0
  450. package/dist/web/static/assets/AgentDistillRunPage-Cybo4bii.js.map +1 -0
  451. package/dist/web/static/assets/AgentsPage-Qd9FExLG.js +2 -0
  452. package/dist/web/static/assets/AgentsPage-Qd9FExLG.js.map +1 -0
  453. package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js +2 -0
  454. package/dist/web/static/assets/DaemonHealthPage-DTSVqtrI.js.map +1 -0
  455. package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js +2 -0
  456. package/dist/web/static/assets/DecisionDetailPage-b4BA8dhc.js.map +1 -0
  457. package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js +2 -0
  458. package/dist/web/static/assets/DecisionsPage-a3NRo_T7.js.map +1 -0
  459. package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js +2 -0
  460. package/dist/web/static/assets/DiagnosticsPage-DIVdiIQG.js.map +1 -0
  461. package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js +4 -0
  462. package/dist/web/static/assets/DistillDetailPage-U6a3l2iP.js.map +1 -0
  463. package/dist/web/static/assets/DistillPage-O7BHtRN8.js +2 -0
  464. package/dist/web/static/assets/DistillPage-O7BHtRN8.js.map +1 -0
  465. package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js +2 -0
  466. package/dist/web/static/assets/DistillRunPage-D1JuRWWr.js.map +1 -0
  467. package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js +2 -0
  468. package/dist/web/static/assets/GlobalScopeHint-Q3wTJx3F.js.map +1 -0
  469. package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js +2 -0
  470. package/dist/web/static/assets/IssueDetailPage-BDfrtk2C.js.map +1 -0
  471. package/dist/web/static/assets/IssuesPage-SKmhlCrw.js +2 -0
  472. package/dist/web/static/assets/IssuesPage-SKmhlCrw.js.map +1 -0
  473. package/dist/web/static/assets/KbDetailPage-Yna86Na8.js +2 -0
  474. package/dist/web/static/assets/KbDetailPage-Yna86Na8.js.map +1 -0
  475. package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js +2 -0
  476. package/dist/web/static/assets/KbHitsPage-Cljl7H9p.js.map +1 -0
  477. package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js → MarkdownRenderer-DlDQNihj.js} +2 -2
  478. package/dist/web/static/assets/{MarkdownRenderer-DZmTl-8J.js.map → MarkdownRenderer-DlDQNihj.js.map} +1 -1
  479. package/dist/web/static/assets/NotFound-LMzbP51V.js +2 -0
  480. package/dist/web/static/assets/{NotFound-BQPh0vaF.js.map → NotFound-LMzbP51V.js.map} +1 -1
  481. package/dist/web/static/assets/SettingsPage-DzoK4PKg.js +2 -0
  482. package/dist/web/static/assets/SettingsPage-DzoK4PKg.js.map +1 -0
  483. package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js +2 -0
  484. package/dist/web/static/assets/SkillDetailPage-BuBJJ_NX.js.map +1 -0
  485. package/dist/web/static/assets/SkillsPage-aojkJpBc.js +2 -0
  486. package/dist/web/static/assets/SkillsPage-aojkJpBc.js.map +1 -0
  487. package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js +4 -0
  488. package/dist/web/static/assets/TaskDetailPage-1ckxnGhw.js.map +1 -0
  489. package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js +6 -0
  490. package/dist/web/static/assets/TasksHubPage-C2PLh3eg.js.map +1 -0
  491. package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js +2 -0
  492. package/dist/web/static/assets/WorkplacePage-DHrp5VxS.js.map +1 -0
  493. package/dist/web/static/assets/arco-DV6xCLhr.js +14 -0
  494. package/dist/web/static/assets/arco-DV6xCLhr.js.map +1 -0
  495. package/dist/web/static/assets/charts-BSV4cyC4.js +37 -0
  496. package/dist/web/static/assets/charts-BSV4cyC4.js.map +1 -0
  497. package/dist/web/static/assets/{index-7bl3kbcx.css → index-B_v_MKlb.css} +1 -1
  498. package/dist/web/static/assets/index-DileOOE4.js +4 -0
  499. package/dist/web/static/assets/index-DileOOE4.js.map +1 -0
  500. package/dist/web/static/assets/markdown-CA7ePUts.js +30 -0
  501. package/dist/web/static/assets/markdown-CA7ePUts.js.map +1 -0
  502. package/dist/web/static/assets/{outcome-DUn1NjlC.js → outcome-BKGy9azt.js} +2 -2
  503. package/dist/web/static/assets/{outcome-DUn1NjlC.js.map → outcome-BKGy9azt.js.map} +1 -1
  504. package/dist/web/static/assets/{query-S6X1S7K9.js → query-CgCOpYWf.js} +2 -2
  505. package/dist/web/static/assets/{query-S6X1S7K9.js.map → query-CgCOpYWf.js.map} +1 -1
  506. package/dist/web/static/assets/{react-router-JVUrkhdd.js → react-router-Cxmg8RuL.js} +3 -3
  507. package/dist/web/static/assets/{react-router-JVUrkhdd.js.map → react-router-Cxmg8RuL.js.map} +1 -1
  508. package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js → syntax-highlighter-BDYycNja.js} +3 -3
  509. package/dist/web/static/assets/{syntax-highlighter-BkZfCDsz.js.map → syntax-highlighter-BDYycNja.js.map} +1 -1
  510. package/dist/web/static/assets/task-title-BhOcemuR.js +2 -0
  511. package/dist/web/static/assets/task-title-BhOcemuR.js.map +1 -0
  512. package/dist/web/static/assets/useAgentStats-B-uTgqBd.js +2 -0
  513. package/dist/web/static/assets/useAgentStats-B-uTgqBd.js.map +1 -0
  514. package/dist/web/static/assets/useDecisions-D-G2Ft5T.js +2 -0
  515. package/dist/web/static/assets/useDecisions-D-G2Ft5T.js.map +1 -0
  516. package/dist/web/static/assets/useDistill-21dZkXlT.js +3 -0
  517. package/dist/web/static/assets/useDistill-21dZkXlT.js.map +1 -0
  518. package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js +2 -0
  519. package/dist/web/static/assets/useEffectiveProject-DQiyX54y.js.map +1 -0
  520. package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js +2 -0
  521. package/dist/web/static/assets/useIssuesFeed-CFiyQkAL.js.map +1 -0
  522. package/dist/web/static/assets/useKbHits-xKXWgqh9.js +2 -0
  523. package/dist/web/static/assets/useKbHits-xKXWgqh9.js.map +1 -0
  524. package/dist/web/static/assets/useSkillStats-B5hbIwdf.js +2 -0
  525. package/dist/web/static/assets/useSkillStats-B5hbIwdf.js.map +1 -0
  526. package/dist/web/static/assets/vendor-DS-q4Eyc.js +36 -0
  527. package/dist/web/static/assets/vendor-DS-q4Eyc.js.map +1 -0
  528. package/dist/web/static/index.html +6 -6
  529. package/package.json +5 -3
  530. package/dist/core/storage/workflow-recommendations.d.ts +0 -124
  531. package/dist/core/storage/workflow-recommendations.d.ts.map +0 -1
  532. package/dist/core/storage/workflow-recommendations.js +0 -274
  533. package/dist/core/storage/workflow-recommendations.js.map +0 -1
  534. package/dist/daemon/services/experience-extractor.d.ts.map +0 -1
  535. package/dist/daemon/services/experience-extractor.js.map +0 -1
  536. package/dist/daemon/services/violation-reporter.d.ts.map +0 -1
  537. package/dist/daemon/services/violation-reporter.js.map +0 -1
  538. package/dist/daemon/templates/agents/harness-hotfix.md +0 -99
  539. package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +0 -104
  540. package/dist/daemon/templates/agents/refactor-specialist.md +0 -98
  541. package/dist/skills/distill/claude-cli-resolver.d.ts.map +0 -1
  542. package/dist/skills/distill/claude-cli-resolver.js.map +0 -1
  543. package/dist/skills/distilled/distilled-defi-amm-security.md +0 -293
  544. package/dist/skills/keyword-score.d.ts +0 -29
  545. package/dist/skills/keyword-score.d.ts.map +0 -1
  546. package/dist/skills/keyword-score.js +0 -54
  547. package/dist/skills/keyword-score.js.map +0 -1
  548. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +0 -2
  549. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +0 -1
  550. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +0 -2
  551. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +0 -1
  552. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +0 -3
  553. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +0 -1
  554. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +0 -2
  555. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +0 -1
  556. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +0 -2
  557. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +0 -1
  558. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +0 -2
  559. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +0 -1
  560. package/dist/web/static/assets/DriftTab-DqpepOhI.js +0 -2
  561. package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +0 -1
  562. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +0 -3
  563. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +0 -1
  564. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +0 -2
  565. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +0 -1
  566. package/dist/web/static/assets/NotFound-BQPh0vaF.js +0 -2
  567. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +0 -2
  568. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +0 -1
  569. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +0 -2
  570. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +0 -1
  571. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +0 -2
  572. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +0 -1
  573. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +0 -2
  574. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +0 -1
  575. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +0 -2
  576. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +0 -1
  577. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +0 -6
  578. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +0 -1
  579. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +0 -3
  580. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +0 -1
  581. package/dist/web/static/assets/arco-Bhi3a6Qp.js +0 -14
  582. package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +0 -1
  583. package/dist/web/static/assets/charts-BuHQWDbQ.js +0 -37
  584. package/dist/web/static/assets/charts-BuHQWDbQ.js.map +0 -1
  585. package/dist/web/static/assets/index-BIYnq1Dx.js +0 -4
  586. package/dist/web/static/assets/index-BIYnq1Dx.js.map +0 -1
  587. package/dist/web/static/assets/useTabsParam-k8qte_0C.js +0 -2
  588. package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +0 -1
  589. package/dist/web/static/assets/vendor-DWgdB1eY.js +0 -65
  590. package/dist/web/static/assets/vendor-DWgdB1eY.js.map +0 -1
  591. /package/dist/{skills/distill → core/utils}/claude-cli-resolver.d.ts +0 -0
package/DEVELOPMENT.md CHANGED
@@ -24,13 +24,17 @@ src/
24
24
  │ │ ├── base.ts / rows.ts 连接 + 行映射工具
25
25
  │ │ ├── maintenance.ts 清理/压缩
26
26
  │ │ └── performance-indexes.sql 附加索引
27
- │ ├── ai/ ClaudeProvider 封装(用于 classifier、distiller、skill-upgrade)
28
27
  │ ├── queue/ 通用 SQLite 队列工具
29
- │ ├── utils/ logger / git / path / time / lru-cache / forge-resume-block 等
28
+ │ ├── diagnostics/ 自检 / 健康诊断工具
29
+ │ ├── governance/ 治理协议注入(inject-global 等)
30
+ │ ├── utils/ logger / git / path / time / lru-cache / forge-resume-block /
31
+ │ │ claude-cli-spawn(headless `claude` 子进程)等
30
32
  │ ├── config.ts ConfigManager(~/.claude-forge/config.yaml)
31
33
  │ ├── constants.ts FORGE_PATHS、各类阈值常量
32
34
  │ ├── event-fields.ts hook 事件字段统一抽取
33
35
  │ └── types.ts ForgeEvent / HookResult 等核心类型契约
36
+ │ (注:曾经的 core/ai/ ClaudeProvider 目录已整组删除,spec 0902 起所有 LLM
37
+ │ 调用收敛为 `child_process.spawn('claude', ...)` headless 子进程)
34
38
 
35
39
  ├── daemon/ 后台守护进程
36
40
  │ ├── index.ts 入口:socket server + 生命周期 + 同步任务
@@ -40,15 +44,37 @@ src/
40
44
  │ ├── event-parser.ts hook 原始 JSON → ForgeEvent
41
45
  │ ├── hook-sync.ts 启动时把 dist/hooks/ 同步到 ~/.claude/hooks/
42
46
  │ ├── skill-sync.ts 启动时把 dist/skills/distilled/ 同步到 ~/.claude/skills/
47
+ │ ├── agent-sync.ts 启动时把 templates/agents/ 同步到 ~/.claude/agents/
48
+ │ ├── config-store.ts daemon 运行期配置缓存
43
49
  │ ├── launchd-installer.ts macOS launchd 安装
44
50
  │ ├── launchd/ launchd plist 模板
45
- │ ├── handlers/
46
- ├── user-prompt.ts UserPromptSubmit:分类 + skill 推荐 + agent 路由
51
+ │ ├── templates/agents/ canonical agent .md 源(build → dist,sync → ~/.claude/agents/)
52
+ │ ├── handlers/ (5 hook handler)
53
+ │ │ ├── user-prompt.ts UserPromptSubmit:分类 + skill 推荐 + agent 路由 + KB 注入
54
+ │ │ ├── pre-tool-use.ts PreToolUse:规则引擎,按 tool_intercept 规则 deny/warn/allow
47
55
  │ │ ├── post-tool-use.ts PostToolUse:观察,按需注入提示
48
56
  │ │ ├── stop.ts Stop:写 session 摘要、distill 决策
49
57
  │ │ └── history-exporter.ts 导出完整历史到 .claude-forge/history/
50
- └── services/
51
- └── task-segmenter.ts UserPromptSubmit 按时间窗划分任务段
58
+ ├── rules/ (5 个,PreToolUse 规则引擎)
59
+ │ ├── defaults.ts 默认 tool_intercept 规则(edit/write-multi-file-hard 等 deny)
60
+ │ │ ├── registry.ts 规则注册与首个匹配查找
61
+ │ │ ├── workflow-defaults.ts workflow 推荐 / Task spawn 匹配规则
62
+ │ │ ├── whitelist.ts 白名单 / 项目级关闭
63
+ │ │ └── types.ts ToolInterceptRule / RuleContext 类型
64
+ │ └── services/ (约 20 个后台服务)
65
+ │ ├── spec-gate.ts SpecGate:spec/decision 批准短路
66
+ │ ├── spec-approval.ts bare「批准 / approve <token>」批准解析
67
+ │ ├── context-injector.ts 上下文注入
68
+ │ ├── kb-injector.ts 知识库注入
69
+ │ ├── task-segmenter.ts UserPromptSubmit 按时间窗划分任务段
70
+ │ ├── task-boundary-classifier.ts 任务边界分类
71
+ │ ├── violation-reporter.ts 主线程合规违规汇总
72
+ │ ├── decision-hint.ts [DECISION HINT] mint
73
+ │ ├── outcome-classifier.ts / outcome-classification-service.ts / outcome-nudge.ts 决策结果回填
74
+ │ ├── experience-extractor.ts / feedback-aggregator.ts 经验/反馈聚合
75
+ │ ├── intercept-revive.ts / intercept-rollback-guard.ts / intercept-timeout-sweeper.ts 拦截治理
76
+ │ ├── idle-session-sweeper.ts / idle-task-budget.ts / event-ttl-sweep.ts GC / 预算
77
+ │ └── heartbeat-writer.ts 心跳写盘
52
78
 
53
79
  ├── skills/ Skill 推荐与方法论分发
54
80
  │ ├── registry.ts 扫描 ~/.claude/skills/ + src/skills/distilled/,提供 match()(keyword-only since spec 0902 D R-B)
@@ -62,15 +88,22 @@ src/
62
88
  ├── web/ Web 管理后台
63
89
  │ ├── server.ts Express 服务器 + 路由注册
64
90
  │ ├── auth-middleware.ts 本地 token 校验
65
- │ ├── ssrf-guard.ts SSRF 防护
66
- ├── routes/ 每个 API 模块独立文件(sessions / events / tasks / skills / ai / patch ...)
91
+ │ ├── routes/ 每个 API 模块独立文件(sessions / events / tasks / skills /
92
+ │ decisions / knowledge / patch / health / diagnostics / drift /
93
+ │ │ insights / pipeline / reports / rules / trace / violations ...)
67
94
  │ ├── analytics/ 趋势/统计计算
95
+ │ ├── services/ 路由共享服务层
68
96
  │ └── static/ React 前端构建产物的最终落点(dist/web/static/)
97
+ │ (注:曾经的 ssrf-guard.ts 与 routes/ai.ts 已删除)
69
98
 
70
99
  ├── cli/
71
100
  │ ├── index.ts CLI 入口(commander)
72
101
  │ ├── init/ `cf init`:安装 hook 脚本
73
- │ └── commands/ 子命令:daemon / config / skills / claudemd / status / logs / stats / menu / trace / mcp / executions / template
102
+ │ └── commands/ 27 个子命令:daemon / config / skills / claudemd / status /
103
+ │ logs / stats / menu / trace / mcp / executions / template /
104
+ │ init / decisions / governance / knowledge / spec / doctor /
105
+ │ fix / entropy / agents / bypass / insights / insights-goal-check /
106
+ │ project / admin / violations
74
107
 
75
108
  ├── claudemd/ CLAUDE.md 生成与维护
76
109
  │ ├── tech-detector.ts 项目技术栈识别
@@ -92,13 +125,22 @@ src/
92
125
  ├── mcp/ MCP server(暴露 skill_invoke / skill_list / pipeline_suggest 给 agent)
93
126
  │ └── server.ts
94
127
 
95
- ├── knowledge/ v9.0 项目知识库系统
128
+ ├── knowledge/ 项目知识库系统(27 src)
129
+ │ ├── builder.ts KB page 构建(分析 src/ → .forge-knowledge/,每 page 一次 claude spawn)
130
+ │ ├── cli-provider.ts CliKnowledgeProvider:经 claude-cli-spawn headless 生成 KB
96
131
  │ ├── repo-map.ts 仓库结构快照生成
97
- │ ├── builder.ts 知识条目构建(分析 src/ .forge-knowledge/)
98
- │ ├── query.ts 语义/关键词查询接口
132
+ │ ├── module-hash.ts 模块内容 hash(增量 rebuild 判定)
133
+ │ ├── cross-module.ts 跨模块 page 生成
134
+ │ ├── query.ts 关键词查询接口
135
+ │ ├── audit-applier.ts KB 审计修订应用
136
+ │ ├── project-detector.ts 项目类型探测(选择 adapter)
99
137
  │ ├── git-hooks.ts Git hooks 集成(commit 后自动 rebuild)
100
138
  │ ├── validator.ts KB 完整性校验
101
- └── prompt.ts agent prompt 注入工具
139
+ ├── prompt.ts agent prompt 注入工具
140
+ │ ├── constants.ts / types.ts 路径常量 + 类型
141
+ │ ├── adapters/ 多语言项目适配器(typescript / js-vue / python / go /
142
+ │ │ java / kotlin / rust / monorepo)
143
+ │ └── tools/ MCP 工具:knowledge-query / knowledge-get-page / repo-map-lookup
102
144
 
103
145
  └── templates/ 新项目初始化模板
104
146
 
@@ -149,7 +191,7 @@ npm run dev:daemon:stop
149
191
  cd web && npm install && npm run dev
150
192
  ```
151
193
 
152
- Daemon / CLI 都用系统 node(项目要求 Node 18+,实际跑在 24/26 上)。
194
+ Daemon / CLI 都用系统 node(项目要求 Node 24+,实际跑在 24/26 上)。
153
195
 
154
196
  ---
155
197
 
@@ -193,9 +235,10 @@ Claude Code ──hook payload(JSON via stdin)──► src/hooks/*.sh
193
235
 
194
236
 
195
237
  src/daemon/router.ts ──┬──► handlers/user-prompt.ts
238
+ ├──► handlers/pre-tool-use.ts (规则引擎 deny/warn/allow)
196
239
  ├──► handlers/post-tool-use.ts
197
240
  ├──► handlers/stop.ts
198
- └──► (PreToolUse / Notification: 直接 allow)
241
+ └──► (Notification: 直接 allow)
199
242
 
200
243
 
201
244
  core/storage/* 持久化 + 返回 HookResult
@@ -207,7 +250,12 @@ Claude Code ──hook payload(JSON via stdin)──► src/hooks/*.sh
207
250
  要点:
208
251
  - daemon 必须在 100ms 内返回,超时则 Claude Code 视为放行
209
252
  - handler 抛错被 router 捕获,不会让 daemon 崩溃
210
- - `PreToolUse` 当前不做规则阻断,统一放行
253
+ - `PreToolUse` **做规则阻断**:`handlers/pre-tool-use.ts` 跑 `rules/registry.ts`
254
+ 规则引擎,命中 `rules/defaults.ts` 的 `tool_intercept` 规则(如
255
+ `edit-multi-file-hard` / `write-multi-file-hard` / `bash-grep-multi-file`)时
256
+ decision=`deny`(allow=false + hookSpecificOutput),warn 规则注入
257
+ additionalContext。每次决策落 `tool_intercepts` 表(事实表,写失败不阻断 tool)。
258
+ 显式 bypass 标记(`forge:bypass=<reason>`)转 decision=`bypass` 放行
211
259
  - daemon 不主动推消息:任何延后的指令必须等下一次 UserPromptSubmit 注入
212
260
 
213
261
  ### Skill 系统
@@ -333,7 +381,7 @@ hook event ──► writeEvent() ──┐
333
381
  - Schema 由 `src/core/storage/schema.sql` 初始化
334
382
  - 增量改动放 `src/core/storage/migrations/*.sql`(按文件名顺序执行)
335
383
 
336
- ### 长跑稳定性(v8.53.6 加)
384
+ ### 长跑稳定性
337
385
 
338
386
  daemon 通过三个机制保证长时间运行不膨胀:
339
387
 
@@ -409,8 +457,8 @@ spawn general-purpose agent with prompt:
409
457
  ### decision-maker catalog 预生成
410
458
 
411
459
  Build 时 `scripts/dump-catalogs.ts` 会生成:
412
- - `dist/catalogs/agents.json` — 9 agents, ~3KB
413
- - `dist/catalogs/skills.json` — 12 skills, ~5KB
460
+ - `dist/catalogs/agents.json` — 14 agents, ~3KB
461
+ - `dist/catalogs/skills.json` — skills catalog, ~5KB
414
462
 
415
463
  这两个文件由 decision-maker Step 2-3 读取(`cat dist/catalogs/*.json`),
416
464
  替代原来的全读 3250 行 markdown,可减少 ~90% catalog token 消耗。
@@ -419,6 +467,19 @@ Build 时 `scripts/dump-catalogs.ts` 会生成:
419
467
 
420
468
  ---
421
469
 
470
+ ## task-boundary-classifier agent 使用说明
471
+
472
+ `task-boundary-classifier` agent 定义在 `.claude/agents/task-boundary-classifier.md`
473
+ (canonical 在 `src/daemon/templates/agents/`,agent-sync 启动时镜像到
474
+ `~/.claude/agents/`)。它判断一段连续操作是否构成同一任务边界,供
475
+ `src/daemon/services/task-boundary-classifier.ts` 在任务分段时调用。
476
+
477
+ 与其它 agent 一致:程序化调用走 `child_process.spawn('claude', ...)` headless
478
+ 子进程(不受 TUI restart 影响);TUI 内手动 `subagent_type='task-boundary-classifier'`
479
+ spawn 首次需 TUI restart(macOS Cmd+R)。
480
+
481
+ ---
482
+
422
483
  ## skill-distiller agent 使用说明
423
484
 
424
485
  `skill-distiller` agent 定义在 `.claude/agents/skill-distiller.md`(与
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Claude Forge 是一个在本地运行的守护进程,通过 Claude Code 的 Hook API 拦截 `UserPromptSubmit`、`PreToolUse`、`PostToolUse`、`Stop` 等事件,在其中做意图分类、Agent 路由、Skill 推荐、规则阻断、治理建议。
6
6
 
7
- **版本**: 见 `cf --version` · **Node**: >= 18 · **License**: MIT
7
+ **版本**: 见 `cf --version` · **Node**: >= 18(实际跑 24/26)· **License**: MIT
8
8
 
9
9
  ---
10
10
 
@@ -77,13 +77,20 @@ open docs/architecture/diagrams/overview.drawio # macOS 用 drawio desktop / we
77
77
  | 命令 | 说明 |
78
78
  |---|---|
79
79
  | `cf init` | 初始化 hook 脚本到 `~/.claude/hooks/` |
80
- | `cf daemon {start,stop,status}` | daemon 生命周期 |
80
+ | `cf daemon {start,stop,status,restart}` | daemon 生命周期 |
81
+ | `cf daemon {install,uninstall}` | 安装/卸载 macOS LaunchAgent(崩溃 auto-restart)|
82
+ | `cf daemon ensure-running` | 心跳过期或 PID 死亡时强制重启 |
83
+ | `cf daemon logs [--tail]` | 查看 daemon 日志 |
81
84
  | `cf config {show,path,edit,list,get,set}` | 配置管理 — runtime feature flags (forge_config 表) + YAML view/edit。**`ai.*` / `skill_matching.*` 字段已在 spec [`0902`](docs/design/2026-05-29/0902-ai-config-removal-master-spec.md) 子 spec D R-D 从 schema 中彻底删除**(AI 流程改走 `claude` CLI 子进程,不再读 `ANTHROPIC_API_KEY`);老 `~/.claude-forge/config.yaml` 中的残留 `ai:` / `skill_matching:` 会被静默丢弃,daemon 启动时 warn 一次提示用户清理 |
82
85
  | `cf status` | 当前 daemon + Web + 存储概况 |
83
86
  | `cf logs [--tail]` | 查看 daemon 日志 |
84
87
  | `cf stats` | 近期 intent / 路由统计 |
85
- | `cf rules` | 查看/编辑治理规则(YAML) |
86
88
  | `cf agents` | 列出已注册 agent |
89
+ | `cf decisions {register,update,outcome,...}` | 决策治理:注册 spec / 回填 options / 闭环 outcome(C1 统一批准子系统)|
90
+ | `cf governance inject-global` | 把决策治理协议写入 `~/.claude/CLAUDE.md`(`--remove` 撤销)|
91
+ | `cf spec register` | 注册 spec 文件等待批准(`cf decisions register` 的 thin alias)|
92
+ | `cf doctor` | 环境/配置健康自检 |
93
+ | `cf fix` | 一键修复常见环境/配置问题 |
87
94
  | `cf skills list` | 列出所有 skill(内置 + 用户层) |
88
95
  | `cf skills invoke <id>` | 调用指定 skill 并打印方法论 |
89
96
  | `cf skills sync` | 同步内置 skill 到 `~/.claude/skills/` |
@@ -92,7 +99,7 @@ open docs/architecture/diagrams/overview.drawio # macOS 用 drawio desktop / we
92
99
  | `cf executions {list,show}` | 浏览历史执行记录 |
93
100
  | `cf mcp` | MCP 配置 |
94
101
  | `cf claudemd` | 生成/更新项目 CLAUDE.md(通过 `claude` CLI 子进程 + `claudemd-writer` agent,**不再读 `ANTHROPIC_API_KEY`**) |
95
- | `cf knowledge {init,build,update,query,list,audit,clean,rollback}` (alias: `cf kb`) | 项目知识库(`.forge-knowledge/`)。`init` / `build` / `update` 通过 `claude` CLI 子进程 + `knowledge-builder` agent,**不再读 `ANTHROPIC_API_KEY`**;query / list / audit / clean / rollback 纯本地 |
102
+ | `cf knowledge {init,build,update,query,list,audit,clean,rollback,fix}` (alias: `cf kb`) | 项目知识库(`.forge-knowledge/`)。`init` / `build` / `update` / `fix` 通过 `claude` CLI 子进程 + `knowledge-builder` agent,**不再读 `ANTHROPIC_API_KEY`**;`fix` 是一次性维护入口(修补陈旧/缺失 KB page);query / list / audit / clean / rollback 纯本地 |
96
103
  | `cf template` | 模板管理 |
97
104
  | `cf menu` | 交互式菜单(推荐入口) |
98
105
 
@@ -259,9 +266,9 @@ keychain,daemon 自身不持 API key。
259
266
 
260
267
  | 模块 | 一句话职责 |
261
268
  |---|---|
262
- | `src/core/` | 共享内核:SQLite 存储、AI provider、配置、类型契约 |
269
+ | `src/core/` | 共享内核:SQLite 存储、配置、类型契约 |
263
270
  | `src/daemon/` | 守护进程:Unix socket server + hook 事件分发 + 服务编排 |
264
- | `src/skills/` | Skill 系统:内置 18 个 + 用户层 + AI 辅助升级 |
271
+ | `src/skills/` | Skill 系统:内置 12distilled + 用户层 + AI 辅助升级 |
265
272
  | `src/web/` | Express + SSE 后端 + React 仪表盘 |
266
273
  | `src/cli/` | claude-forge / cf 命令入口 |
267
274
  | `src/hooks/` | bash 脚本,与 daemon 通过 Unix socket 通信 |
@@ -1,72 +1,67 @@
1
1
  [
2
+ {
3
+ "name": "agent-retro-distiller",
4
+ "description": "",
5
+ "source_file": "src/daemon/templates/agents/agent-retro-distiller.md"
6
+ },
2
7
  {
3
8
  "name": "claudemd-writer",
4
9
  "description": "",
5
- "source_file": ".claude/agents/claudemd-writer.md"
10
+ "source_file": "src/daemon/templates/agents/claudemd-writer.md"
6
11
  },
7
12
  {
8
13
  "name": "coder",
9
14
  "description": "Standard BMAD implementation agent for spec-driven work in well-tested modules. Use when a spec exists at docs/design/**/*-spec.md AND the target module has >=50% test coverage (or is a brand new modu",
10
- "source_file": ".claude/agents/coder.md"
15
+ "source_file": "src/daemon/templates/agents/coder.md"
11
16
  },
12
17
  {
13
18
  "name": "decision-maker",
14
19
  "description": "Lightweight decision agent for prompts the daemon flagged as decision-worthy. NOT a planner (no implementation plan) — produces a 1-page decision document covering Options + Recommendation + Open Ques",
15
- "source_file": ".claude/agents/decision-maker.md"
20
+ "source_file": "src/daemon/templates/agents/decision-maker.md"
16
21
  },
17
22
  {
18
23
  "name": "doc-reviewer",
19
24
  "description": "Read-only code, spec, or document analysis. Returns a structured report. Use when user asks to review/analyze/compare/audit existing code or docs WITHOUT modifying anything. Triggers on \"review this\",",
20
- "source_file": ".claude/agents/doc-reviewer.md"
25
+ "source_file": "src/daemon/templates/agents/doc-reviewer.md"
21
26
  },
22
27
  {
23
28
  "name": "harness-debug-full",
24
29
  "description": "Unknown or intermittent bug — reproduce, then find root cause, then fix, then verify. Use when symptoms are described but root cause is NOT known, or when behavior is intermittent / random / flaky / \"",
25
- "source_file": ".claude/agents/harness-debug-full.md"
26
- },
27
- {
28
- "name": "harness-hotfix",
29
- "description": "Known-cause bug fixer with safety-net discipline. Use when the root cause of a bug is already identified AND the affected module has <50% test coverage. Triggers on \"修复 X bug\", \"hotfix\", \"urgent fix\",",
30
- "source_file": ".claude/agents/harness-hotfix.md"
31
- },
32
- {
33
- "name": "hybrid-feature-with-safety",
34
- "description": "New feature that touches legacy low-coverage code. Use when adding new functionality that requires modifying files in modules with <50% test coverage. Triggers on \"新功能 + 改老代码\", \"add X to legacy module",
35
- "source_file": ".claude/agents/hybrid-feature-with-safety.md"
30
+ "source_file": "src/daemon/templates/agents/harness-debug-full.md"
36
31
  },
37
32
  {
38
33
  "name": "knowledge-builder",
39
34
  "description": "",
40
- "source_file": ".claude/agents/knowledge-builder.md"
35
+ "source_file": "src/daemon/templates/agents/knowledge-builder.md"
41
36
  },
42
37
  {
43
38
  "name": "patch-applier",
44
39
  "description": "",
45
- "source_file": ".claude/agents/patch-applier.md"
40
+ "source_file": "src/daemon/templates/agents/patch-applier.md"
46
41
  },
47
42
  {
48
43
  "name": "planner",
49
44
  "description": "Spec writer for non-trivial work. Research current state, propose 2-3 options, recommend one, write spec to docs/design/, then STOP. Use for BMAD Phase 1. Triggers on \"write a spec\", \"plan this\", \"BMA",
50
- "source_file": ".claude/agents/planner.md"
45
+ "source_file": "src/daemon/templates/agents/planner.md"
51
46
  },
52
47
  {
53
- "name": "refactor-specialist",
54
- "description": "Behavior-preserving restructure of low-coverage code. Use when user asks to refactor, restructure, clean up, simplify, or extract from a module with <50% test coverage. Triggers on \"重构\", \"refactor\", \"",
55
- "source_file": ".claude/agents/refactor-specialist.md"
48
+ "name": "safety-net-implementer",
49
+ "description": "Safety-net implementation agent for low-coverage (<50%) modules replaces harness-hotfix / refactor-specialist / hybrid-feature-with-safety. Three modes, one discipline. mode=hotfix for known-cause b",
50
+ "source_file": "src/daemon/templates/agents/safety-net-implementer.md"
56
51
  },
57
52
  {
58
53
  "name": "skill-distiller",
59
54
  "description": "",
60
- "source_file": ".claude/agents/skill-distiller.md"
55
+ "source_file": "src/daemon/templates/agents/skill-distiller.md"
61
56
  },
62
57
  {
63
58
  "name": "task-boundary-classifier",
64
59
  "description": "",
65
- "source_file": ".claude/agents/task-boundary-classifier.md"
60
+ "source_file": "src/daemon/templates/agents/task-boundary-classifier.md"
66
61
  },
67
62
  {
68
63
  "name": "verify-agent",
69
64
  "description": "Live runtime verifier. Runs the actual app/CLI/browser, drives the changed surface, probes edges, returns PASS/FAIL/BLOCKED/SKIP with evidence. Use after implementation and before commit. Triggers on ",
70
- "source_file": ".claude/agents/verify-agent.md"
65
+ "source_file": "src/daemon/templates/agents/verify-agent.md"
71
66
  }
72
67
  ]
@@ -10,7 +10,11 @@
10
10
  "api 设计",
11
11
  "restful",
12
12
  "openapi",
13
- "接口设计"
13
+ "接口设计",
14
+ "rest api",
15
+ "web api",
16
+ "http api",
17
+ "endpoint"
14
18
  ]
15
19
  },
16
20
  {
@@ -28,13 +32,51 @@
28
32
  "技术选型"
29
33
  ]
30
34
  },
35
+ {
36
+ "name": "distilled-brainstorming",
37
+ "description": "Distilled IT-universal skill: brainstorming (score 3.5/5)",
38
+ "source_file": "src/skills/distilled/distilled-brainstorming.md",
39
+ "keywords": [
40
+ "brainstorming"
41
+ ]
42
+ },
43
+ {
44
+ "name": "distilled-brand-guidelines",
45
+ "description": "Distilled IT-universal skill: brand-guidelines (score 3/5)",
46
+ "source_file": "src/skills/distilled/distilled-brand-guidelines.md",
47
+ "keywords": [
48
+ "brand",
49
+ "guidelines"
50
+ ]
51
+ },
52
+ {
53
+ "name": "distilled-canvas-design",
54
+ "description": "Distilled IT-universal skill: canvas-design (score 3.5/5)",
55
+ "source_file": "src/skills/distilled/distilled-canvas-design.md",
56
+ "keywords": [
57
+ "canvas",
58
+ "design"
59
+ ]
60
+ },
61
+ {
62
+ "name": "distilled-claude-api",
63
+ "description": "Distilled IT-universal skill: claude-api (score 4/5)",
64
+ "source_file": "src/skills/distilled/distilled-claude-api.md",
65
+ "keywords": [
66
+ "claude",
67
+ "api"
68
+ ]
69
+ },
31
70
  {
32
71
  "name": "distilled-creator",
33
72
  "description": "Distilled IT-universal skill: skill-creator (score 3.5/5)",
34
73
  "source_file": "src/skills/distilled/distilled-creator.md",
35
74
  "keywords": [
36
- "creator",
37
- "skill"
75
+ "skill creation",
76
+ "create skill",
77
+ "创建技能",
78
+ "skill development",
79
+ "distill skill"
38
80
  ]
39
81
  },
40
82
  {
@@ -53,24 +95,60 @@
53
95
  ]
54
96
  },
55
97
  {
56
- "name": "distilled-defi-amm-security",
57
- "description": "Distilled IT-universal skill: defi-amm-security (score 3.5/5)",
58
- "source_file": "src/skills/distilled/distilled-defi-amm-security.md",
98
+ "name": "distilled-dispatching-parallel-agents",
99
+ "description": "Distilled IT-universal skill: dispatching-parallel-agents (score 3.5/5)",
100
+ "source_file": "src/skills/distilled/distilled-dispatching-parallel-agents.md",
101
+ "keywords": [
102
+ "dispatching",
103
+ "parallel",
104
+ "agents"
105
+ ]
106
+ },
107
+ {
108
+ "name": "distilled-doc-coauthoring",
109
+ "description": "Distilled IT-universal skill: doc-coauthoring (score 4.5/5)",
110
+ "source_file": "src/skills/distilled/distilled-doc-coauthoring.md",
59
111
  "keywords": [
60
- "defi",
61
- "amm",
62
- "security"
112
+ "doc",
113
+ "coauthoring"
114
+ ]
115
+ },
116
+ {
117
+ "name": "distilled-docx",
118
+ "description": "Distilled IT-universal skill: docx (score 3/5)",
119
+ "source_file": "src/skills/distilled/distilled-docx.md",
120
+ "keywords": [
121
+ "docx"
63
122
  ]
64
123
  },
65
124
  {
66
125
  "name": "distilled-executing-plans",
67
- "description": "Distilled IT-universal skill: executing-plans (score 4/5)",
126
+ "description": "Distilled IT-universal skill: executing-plans (score 3/5)",
68
127
  "source_file": "src/skills/distilled/distilled-executing-plans.md",
69
128
  "keywords": [
70
129
  "executing",
71
130
  "plans"
72
131
  ]
73
132
  },
133
+ {
134
+ "name": "distilled-finishing-a-development-branch",
135
+ "description": "Distilled IT-universal skill: finishing-a-development-branch (score 4/5)",
136
+ "source_file": "src/skills/distilled/distilled-finishing-a-development-branch.md",
137
+ "keywords": [
138
+ "finishing",
139
+ "development",
140
+ "branch"
141
+ ]
142
+ },
143
+ {
144
+ "name": "distilled-frontend-design",
145
+ "description": "Distilled IT-universal skill: frontend-design (score 4.5/5)",
146
+ "source_file": "src/skills/distilled/distilled-frontend-design.md",
147
+ "keywords": [
148
+ "frontend",
149
+ "design"
150
+ ]
151
+ },
74
152
  {
75
153
  "name": "distilled-harness-engineering",
76
154
  "description": "Distilled IT-universal skill: harness-engineering (score 5/5)",
@@ -87,7 +165,7 @@
87
165
  "改造",
88
166
  "老代码"
89
167
  ],
90
- "spawn_agent": "refactor-specialist"
168
+ "spawn_agent": "safety-net-implementer"
91
169
  },
92
170
  {
93
171
  "name": "distilled-karpathy-guidelines",
@@ -131,6 +209,16 @@
131
209
  "性能"
132
210
  ]
133
211
  },
212
+ {
213
+ "name": "distilled-receiving-code-review",
214
+ "description": "Distilled IT-universal skill: receiving-code-review (score 4/5)",
215
+ "source_file": "src/skills/distilled/distilled-receiving-code-review.md",
216
+ "keywords": [
217
+ "receiving",
218
+ "code",
219
+ "review"
220
+ ]
221
+ },
134
222
  {
135
223
  "name": "distilled-spec-driven-design",
136
224
  "description": "Distilled IT-universal skill: spec-driven design + file-based planning (portable, hand-rewritten 2026-05-27)",
@@ -157,30 +245,45 @@
157
245
  ],
158
246
  "spawn_agent": "planner"
159
247
  },
248
+ {
249
+ "name": "distilled-subagent-driven-development",
250
+ "description": "Distilled IT-universal skill: subagent-driven-development (score 3.5/5)",
251
+ "source_file": "src/skills/distilled/distilled-subagent-driven-development.md",
252
+ "keywords": [
253
+ "subagent",
254
+ "driven",
255
+ "development"
256
+ ]
257
+ },
160
258
  {
161
259
  "name": "distilled-systematic-debugging",
162
- "description": "Distilled IT-universal skill: systematic-debugging (score 5/5)",
260
+ "description": "Distilled IT-universal skill: systematic-debugging (score 4.5/5)",
163
261
  "source_file": "src/skills/distilled/distilled-systematic-debugging.md",
164
262
  "keywords": [
165
263
  "systematic",
166
- "debugging",
167
- "debug",
168
- "调试",
169
- "bug",
170
- "修复",
171
- "fix",
172
- "hotfix",
173
- "报错",
174
- "异常",
175
- "error",
176
- "不工作",
177
- "失败",
178
- "failed",
179
- "crash",
180
- "问题"
264
+ "debugging"
181
265
  ],
182
266
  "spawn_agent": "harness-debug-full"
183
267
  },
268
+ {
269
+ "name": "distilled-test-driven-development",
270
+ "description": "Distilled IT-universal skill: test-driven-development (score 3.5/5)",
271
+ "source_file": "src/skills/distilled/distilled-test-driven-development.md",
272
+ "keywords": [
273
+ "test",
274
+ "driven",
275
+ "development"
276
+ ]
277
+ },
278
+ {
279
+ "name": "distilled-using-superpowers",
280
+ "description": "Distilled IT-universal skill: using-superpowers (score 4.5/5)",
281
+ "source_file": "src/skills/distilled/distilled-using-superpowers.md",
282
+ "keywords": [
283
+ "using",
284
+ "superpowers"
285
+ ]
286
+ },
184
287
  {
185
288
  "name": "distilled-verification-before-completion",
186
289
  "description": "Distilled IT-universal skill: verification-before-completion (score 5/5)",
@@ -190,5 +293,14 @@
190
293
  "before",
191
294
  "completion"
192
295
  ]
296
+ },
297
+ {
298
+ "name": "distilled-writing-skills",
299
+ "description": "Distilled IT-universal skill: writing-skills (score 4/5)",
300
+ "source_file": "src/skills/distilled/distilled-writing-skills.md",
301
+ "keywords": [
302
+ "writing",
303
+ "skills"
304
+ ]
193
305
  }
194
306
  ]
@@ -35,7 +35,7 @@
35
35
  2. **搜索 / 查代码**:任何 grep / find / git diff / 跨文件查找(单文件已知路径的 Read 除外)
36
36
  → spawn `Explore` 或 `doc-reviewer`;主线程不自己查。
37
37
  3. **实施**:用户批准后,实质改动(Edit/Write / 多文件 / 新功能 / 重构 / bugfix)
38
- → spawn `coder` / `refactor-specialist` / `hybrid-feature-with-safety` 等;主线程不自己动手。
38
+ → spawn `coder` / `safety-net-implementer`(mode=hotfix|refactor|hybrid-feature)等;主线程不自己动手。
39
39
  4. **验证**:实施后 spawn `verify-agent` 验证。
40
40
 
41
41
  **并行优先(要效率)**:工作可拆分 / 相互独立时,在一条消息里 batch spawn 多个 agent