@winspan/claude-forge 8.54.3 → 9.2.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 (879) hide show
  1. package/DEVELOPMENT.md +649 -33
  2. package/README.md +155 -17
  3. package/dist/catalogs/agents.json +72 -0
  4. package/dist/catalogs/skills.json +194 -0
  5. package/dist/claudemd/claudemd-generator.d.ts +45 -45
  6. package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
  7. package/dist/claudemd/claudemd-generator.js +128 -449
  8. package/dist/claudemd/claudemd-generator.js.map +1 -1
  9. package/dist/claudemd/index.d.ts +14 -4
  10. package/dist/claudemd/index.d.ts.map +1 -1
  11. package/dist/claudemd/index.js +15 -4
  12. package/dist/claudemd/index.js.map +1 -1
  13. package/dist/claudemd/resume-manager.d.ts.map +1 -1
  14. package/dist/claudemd/resume-manager.js +37 -9
  15. package/dist/claudemd/resume-manager.js.map +1 -1
  16. package/dist/claudemd/templates/swarm-protocol.md +35 -186
  17. package/dist/claudemd/violations-manager.d.ts +40 -0
  18. package/dist/claudemd/violations-manager.d.ts.map +1 -0
  19. package/dist/claudemd/violations-manager.js +106 -0
  20. package/dist/claudemd/violations-manager.js.map +1 -0
  21. package/dist/cli/commands/admin.d.ts +15 -0
  22. package/dist/cli/commands/admin.d.ts.map +1 -0
  23. package/dist/cli/commands/admin.js +177 -0
  24. package/dist/cli/commands/admin.js.map +1 -0
  25. package/dist/cli/commands/agents.d.ts +18 -0
  26. package/dist/cli/commands/agents.d.ts.map +1 -0
  27. package/dist/cli/commands/agents.js +160 -0
  28. package/dist/cli/commands/agents.js.map +1 -0
  29. package/dist/cli/commands/bypass.d.ts +18 -0
  30. package/dist/cli/commands/bypass.d.ts.map +1 -0
  31. package/dist/cli/commands/bypass.js +87 -0
  32. package/dist/cli/commands/bypass.js.map +1 -0
  33. package/dist/cli/commands/claudemd.d.ts +60 -0
  34. package/dist/cli/commands/claudemd.d.ts.map +1 -1
  35. package/dist/cli/commands/claudemd.js +174 -37
  36. package/dist/cli/commands/claudemd.js.map +1 -1
  37. package/dist/cli/commands/config.d.ts.map +1 -1
  38. package/dist/cli/commands/config.js +94 -1
  39. package/dist/cli/commands/config.js.map +1 -1
  40. package/dist/cli/commands/daemon.d.ts +39 -0
  41. package/dist/cli/commands/daemon.d.ts.map +1 -1
  42. package/dist/cli/commands/daemon.js +167 -20
  43. package/dist/cli/commands/daemon.js.map +1 -1
  44. package/dist/cli/commands/decisions.d.ts +129 -0
  45. package/dist/cli/commands/decisions.d.ts.map +1 -0
  46. package/dist/cli/commands/decisions.js +669 -0
  47. package/dist/cli/commands/decisions.js.map +1 -0
  48. package/dist/cli/commands/doctor.d.ts +29 -0
  49. package/dist/cli/commands/doctor.d.ts.map +1 -0
  50. package/dist/cli/commands/doctor.js +124 -0
  51. package/dist/cli/commands/doctor.js.map +1 -0
  52. package/dist/cli/commands/entropy.d.ts +35 -0
  53. package/dist/cli/commands/entropy.d.ts.map +1 -0
  54. package/dist/cli/commands/entropy.js +121 -0
  55. package/dist/cli/commands/entropy.js.map +1 -0
  56. package/dist/cli/commands/executions.d.ts +1 -0
  57. package/dist/cli/commands/executions.d.ts.map +1 -1
  58. package/dist/cli/commands/executions.js +10 -1
  59. package/dist/cli/commands/executions.js.map +1 -1
  60. package/dist/cli/commands/fix.d.ts +31 -0
  61. package/dist/cli/commands/fix.d.ts.map +1 -0
  62. package/dist/cli/commands/fix.js +108 -0
  63. package/dist/cli/commands/fix.js.map +1 -0
  64. package/dist/cli/commands/governance.d.ts +21 -0
  65. package/dist/cli/commands/governance.d.ts.map +1 -0
  66. package/dist/cli/commands/governance.js +60 -0
  67. package/dist/cli/commands/governance.js.map +1 -0
  68. package/dist/cli/commands/init.d.ts +27 -0
  69. package/dist/cli/commands/init.d.ts.map +1 -1
  70. package/dist/cli/commands/init.js +158 -146
  71. package/dist/cli/commands/init.js.map +1 -1
  72. package/dist/cli/commands/insights-goal-check.d.ts +50 -0
  73. package/dist/cli/commands/insights-goal-check.d.ts.map +1 -0
  74. package/dist/cli/commands/insights-goal-check.js +318 -0
  75. package/dist/cli/commands/insights-goal-check.js.map +1 -0
  76. package/dist/cli/commands/insights.d.ts +15 -0
  77. package/dist/cli/commands/insights.d.ts.map +1 -0
  78. package/dist/cli/commands/insights.js +127 -0
  79. package/dist/cli/commands/insights.js.map +1 -0
  80. package/dist/cli/commands/knowledge.d.ts +66 -0
  81. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  82. package/dist/cli/commands/knowledge.js +897 -0
  83. package/dist/cli/commands/knowledge.js.map +1 -0
  84. package/dist/cli/commands/mcp.d.ts +0 -12
  85. package/dist/cli/commands/mcp.d.ts.map +1 -1
  86. package/dist/cli/commands/mcp.js +11 -5
  87. package/dist/cli/commands/mcp.js.map +1 -1
  88. package/dist/cli/commands/menu.d.ts.map +1 -1
  89. package/dist/cli/commands/menu.js +10 -184
  90. package/dist/cli/commands/menu.js.map +1 -1
  91. package/dist/cli/commands/project.d.ts +98 -0
  92. package/dist/cli/commands/project.d.ts.map +1 -0
  93. package/dist/cli/commands/project.js +382 -0
  94. package/dist/cli/commands/project.js.map +1 -0
  95. package/dist/cli/commands/skills.d.ts.map +1 -1
  96. package/dist/cli/commands/skills.js +14 -128
  97. package/dist/cli/commands/skills.js.map +1 -1
  98. package/dist/cli/commands/spec.d.ts +40 -0
  99. package/dist/cli/commands/spec.d.ts.map +1 -0
  100. package/dist/cli/commands/spec.js +49 -0
  101. package/dist/cli/commands/spec.js.map +1 -0
  102. package/dist/cli/commands/stats.d.ts.map +1 -1
  103. package/dist/cli/commands/stats.js +3 -2
  104. package/dist/cli/commands/stats.js.map +1 -1
  105. package/dist/cli/commands/status.d.ts.map +1 -1
  106. package/dist/cli/commands/status.js +17 -2
  107. package/dist/cli/commands/status.js.map +1 -1
  108. package/dist/cli/commands/trace.d.ts.map +1 -1
  109. package/dist/cli/commands/trace.js +4 -9
  110. package/dist/cli/commands/trace.js.map +1 -1
  111. package/dist/cli/commands/violations.d.ts +14 -0
  112. package/dist/cli/commands/violations.d.ts.map +1 -0
  113. package/dist/cli/commands/violations.js +43 -0
  114. package/dist/cli/commands/violations.js.map +1 -0
  115. package/dist/cli/index.js +26 -0
  116. package/dist/cli/index.js.map +1 -1
  117. package/dist/cli/init/hook-manager.d.ts +1 -1
  118. package/dist/cli/init/hook-manager.d.ts.map +1 -1
  119. package/dist/cli/init/hook-manager.js +6 -0
  120. package/dist/cli/init/hook-manager.js.map +1 -1
  121. package/dist/cli/utils/resolve-session.d.ts +32 -0
  122. package/dist/cli/utils/resolve-session.d.ts.map +1 -0
  123. package/dist/cli/utils/resolve-session.js +39 -0
  124. package/dist/cli/utils/resolve-session.js.map +1 -0
  125. package/dist/core/config.d.ts +4 -1
  126. package/dist/core/config.d.ts.map +1 -1
  127. package/dist/core/config.js +11 -23
  128. package/dist/core/config.js.map +1 -1
  129. package/dist/core/constants.d.ts +14 -13
  130. package/dist/core/constants.d.ts.map +1 -1
  131. package/dist/core/constants.js +20 -13
  132. package/dist/core/constants.js.map +1 -1
  133. package/dist/core/diagnostics/checks.d.ts +151 -0
  134. package/dist/core/diagnostics/checks.d.ts.map +1 -0
  135. package/dist/core/diagnostics/checks.js +765 -0
  136. package/dist/core/diagnostics/checks.js.map +1 -0
  137. package/dist/core/diagnostics/daemon-status.d.ts +77 -0
  138. package/dist/core/diagnostics/daemon-status.d.ts.map +1 -0
  139. package/dist/core/diagnostics/daemon-status.js +113 -0
  140. package/dist/core/diagnostics/daemon-status.js.map +1 -0
  141. package/dist/core/diagnostics/entropy-checks.d.ts +82 -0
  142. package/dist/core/diagnostics/entropy-checks.d.ts.map +1 -0
  143. package/dist/core/diagnostics/entropy-checks.js +395 -0
  144. package/dist/core/diagnostics/entropy-checks.js.map +1 -0
  145. package/dist/core/diagnostics/fix-runner.d.ts +54 -0
  146. package/dist/core/diagnostics/fix-runner.d.ts.map +1 -0
  147. package/dist/core/diagnostics/fix-runner.js +90 -0
  148. package/dist/core/diagnostics/fix-runner.js.map +1 -0
  149. package/dist/core/diagnostics/knip-runner.d.ts +49 -0
  150. package/dist/core/diagnostics/knip-runner.d.ts.map +1 -0
  151. package/dist/core/diagnostics/knip-runner.js +100 -0
  152. package/dist/core/diagnostics/knip-runner.js.map +1 -0
  153. package/dist/core/diagnostics/markers.d.ts +96 -0
  154. package/dist/core/diagnostics/markers.d.ts.map +1 -0
  155. package/dist/core/diagnostics/markers.js +153 -0
  156. package/dist/core/diagnostics/markers.js.map +1 -0
  157. package/dist/core/governance/global-inject.d.ts +60 -0
  158. package/dist/core/governance/global-inject.d.ts.map +1 -0
  159. package/dist/core/governance/global-inject.js +129 -0
  160. package/dist/core/governance/global-inject.js.map +1 -0
  161. package/dist/core/queue/index.d.ts +16 -3
  162. package/dist/core/queue/index.d.ts.map +1 -1
  163. package/dist/core/queue/index.js +14 -3
  164. package/dist/core/queue/index.js.map +1 -1
  165. package/dist/core/storage/base.d.ts +158 -0
  166. package/dist/core/storage/base.d.ts.map +1 -1
  167. package/dist/core/storage/base.js +570 -0
  168. package/dist/core/storage/base.js.map +1 -1
  169. package/dist/core/storage/codec/tool-input-codec.d.ts +93 -0
  170. package/dist/core/storage/codec/tool-input-codec.d.ts.map +1 -0
  171. package/dist/core/storage/codec/tool-input-codec.js +159 -0
  172. package/dist/core/storage/codec/tool-input-codec.js.map +1 -0
  173. package/dist/core/storage/decisions.d.ts +362 -0
  174. package/dist/core/storage/decisions.d.ts.map +1 -0
  175. package/dist/core/storage/decisions.js +502 -0
  176. package/dist/core/storage/decisions.js.map +1 -0
  177. package/dist/core/storage/events.d.ts +112 -8
  178. package/dist/core/storage/events.d.ts.map +1 -1
  179. package/dist/core/storage/events.js +390 -39
  180. package/dist/core/storage/events.js.map +1 -1
  181. package/dist/core/storage/feedback.d.ts +131 -0
  182. package/dist/core/storage/feedback.d.ts.map +1 -0
  183. package/dist/core/storage/feedback.js +187 -0
  184. package/dist/core/storage/feedback.js.map +1 -0
  185. package/dist/core/storage/forge-config.d.ts +40 -0
  186. package/dist/core/storage/forge-config.d.ts.map +1 -0
  187. package/dist/core/storage/forge-config.js +65 -0
  188. package/dist/core/storage/forge-config.js.map +1 -0
  189. package/dist/core/storage/injections.d.ts +28 -0
  190. package/dist/core/storage/injections.d.ts.map +1 -1
  191. package/dist/core/storage/injections.js +62 -5
  192. package/dist/core/storage/injections.js.map +1 -1
  193. package/dist/core/storage/knowledge.d.ts +106 -0
  194. package/dist/core/storage/knowledge.d.ts.map +1 -0
  195. package/dist/core/storage/knowledge.js +202 -0
  196. package/dist/core/storage/knowledge.js.map +1 -0
  197. package/dist/core/storage/maintenance.d.ts +36 -9
  198. package/dist/core/storage/maintenance.d.ts.map +1 -1
  199. package/dist/core/storage/maintenance.js +56 -24
  200. package/dist/core/storage/maintenance.js.map +1 -1
  201. package/dist/core/storage/pipeline-rollup.d.ts +117 -0
  202. package/dist/core/storage/pipeline-rollup.d.ts.map +1 -0
  203. package/dist/core/storage/pipeline-rollup.js +471 -0
  204. package/dist/core/storage/pipeline-rollup.js.map +1 -0
  205. package/dist/core/storage/routing.d.ts +16 -3
  206. package/dist/core/storage/routing.d.ts.map +1 -1
  207. package/dist/core/storage/routing.js +39 -8
  208. package/dist/core/storage/routing.js.map +1 -1
  209. package/dist/core/storage/rows.d.ts +50 -7
  210. package/dist/core/storage/rows.d.ts.map +1 -1
  211. package/dist/core/storage/schema.sql +302 -23
  212. package/dist/core/storage/sessions.d.ts +136 -0
  213. package/dist/core/storage/sessions.d.ts.map +1 -1
  214. package/dist/core/storage/sessions.js +351 -15
  215. package/dist/core/storage/sessions.js.map +1 -1
  216. package/dist/core/storage/skills.d.ts +1 -0
  217. package/dist/core/storage/skills.d.ts.map +1 -1
  218. package/dist/core/storage/skills.js +21 -6
  219. package/dist/core/storage/skills.js.map +1 -1
  220. package/dist/core/storage/sqlite.d.ts +253 -20
  221. package/dist/core/storage/sqlite.d.ts.map +1 -1
  222. package/dist/core/storage/sqlite.js +425 -16
  223. package/dist/core/storage/sqlite.js.map +1 -1
  224. package/dist/core/storage/tasks.d.ts +474 -2
  225. package/dist/core/storage/tasks.d.ts.map +1 -1
  226. package/dist/core/storage/tasks.js +1213 -18
  227. package/dist/core/storage/tasks.js.map +1 -1
  228. package/dist/core/storage/tool-intercepts.d.ts +69 -0
  229. package/dist/core/storage/tool-intercepts.d.ts.map +1 -0
  230. package/dist/core/storage/tool-intercepts.js +116 -0
  231. package/dist/core/storage/tool-intercepts.js.map +1 -0
  232. package/dist/core/storage/workflow-recommendations.d.ts +124 -0
  233. package/dist/core/storage/workflow-recommendations.d.ts.map +1 -0
  234. package/dist/core/storage/workflow-recommendations.js +274 -0
  235. package/dist/core/storage/workflow-recommendations.js.map +1 -0
  236. package/dist/core/types.d.ts +112 -17
  237. package/dist/core/types.d.ts.map +1 -1
  238. package/dist/core/types.js +12 -0
  239. package/dist/core/types.js.map +1 -1
  240. package/dist/core/utils/backup.d.ts +81 -0
  241. package/dist/core/utils/backup.d.ts.map +1 -0
  242. package/dist/core/utils/backup.js +98 -0
  243. package/dist/core/utils/backup.js.map +1 -0
  244. package/dist/core/utils/binary-paths.d.ts +92 -0
  245. package/dist/core/utils/binary-paths.d.ts.map +1 -0
  246. package/dist/core/utils/binary-paths.js +166 -0
  247. package/dist/core/utils/binary-paths.js.map +1 -0
  248. package/dist/core/utils/bypass-token.d.ts +75 -0
  249. package/dist/core/utils/bypass-token.d.ts.map +1 -0
  250. package/dist/core/utils/bypass-token.js +133 -0
  251. package/dist/core/utils/bypass-token.js.map +1 -0
  252. package/dist/core/utils/cc-builtin-agents.d.ts +3 -0
  253. package/dist/core/utils/cc-builtin-agents.d.ts.map +1 -0
  254. package/dist/core/utils/cc-builtin-agents.js +29 -0
  255. package/dist/core/utils/cc-builtin-agents.js.map +1 -0
  256. package/dist/core/utils/claude-cli-spawn.d.ts +106 -0
  257. package/dist/core/utils/claude-cli-spawn.d.ts.map +1 -0
  258. package/dist/core/utils/claude-cli-spawn.js +219 -0
  259. package/dist/core/utils/claude-cli-spawn.js.map +1 -0
  260. package/dist/core/utils/forge-resume-block.d.ts.map +1 -1
  261. package/dist/core/utils/forge-resume-block.js +3 -2
  262. package/dist/core/utils/forge-resume-block.js.map +1 -1
  263. package/dist/core/utils/logger.d.ts +15 -3
  264. package/dist/core/utils/logger.d.ts.map +1 -1
  265. package/dist/core/utils/logger.js +20 -2
  266. package/dist/core/utils/logger.js.map +1 -1
  267. package/dist/core/utils/noise-prompt.d.ts +97 -0
  268. package/dist/core/utils/noise-prompt.d.ts.map +1 -0
  269. package/dist/core/utils/noise-prompt.js +127 -0
  270. package/dist/core/utils/noise-prompt.js.map +1 -0
  271. package/dist/core/utils/path.d.ts +0 -4
  272. package/dist/core/utils/path.d.ts.map +1 -1
  273. package/dist/core/utils/path.js +0 -7
  274. package/dist/core/utils/path.js.map +1 -1
  275. package/dist/core/utils/time.d.ts +41 -0
  276. package/dist/core/utils/time.d.ts.map +1 -1
  277. package/dist/core/utils/time.js +114 -0
  278. package/dist/core/utils/time.js.map +1 -1
  279. package/dist/daemon/agent-sync.d.ts +24 -0
  280. package/dist/daemon/agent-sync.d.ts.map +1 -0
  281. package/dist/daemon/agent-sync.js +114 -0
  282. package/dist/daemon/agent-sync.js.map +1 -0
  283. package/dist/daemon/config-store.d.ts +55 -0
  284. package/dist/daemon/config-store.d.ts.map +1 -0
  285. package/dist/daemon/config-store.js +137 -0
  286. package/dist/daemon/config-store.js.map +1 -0
  287. package/dist/daemon/event-parser.d.ts +22 -0
  288. package/dist/daemon/event-parser.d.ts.map +1 -1
  289. package/dist/daemon/event-parser.js +49 -3
  290. package/dist/daemon/event-parser.js.map +1 -1
  291. package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
  292. package/dist/daemon/handlers/history-exporter.js +9 -8
  293. package/dist/daemon/handlers/history-exporter.js.map +1 -1
  294. package/dist/daemon/handlers/post-tool-use.d.ts +58 -4
  295. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  296. package/dist/daemon/handlers/post-tool-use.js +261 -8
  297. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  298. package/dist/daemon/handlers/pre-tool-use.d.ts +156 -0
  299. package/dist/daemon/handlers/pre-tool-use.d.ts.map +1 -0
  300. package/dist/daemon/handlers/pre-tool-use.js +585 -0
  301. package/dist/daemon/handlers/pre-tool-use.js.map +1 -0
  302. package/dist/daemon/handlers/stop.d.ts +35 -7
  303. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  304. package/dist/daemon/handlers/stop.js +157 -8
  305. package/dist/daemon/handlers/stop.js.map +1 -1
  306. package/dist/daemon/handlers/user-prompt.d.ts +36 -14
  307. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  308. package/dist/daemon/handlers/user-prompt.js +135 -48
  309. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  310. package/dist/daemon/hook-sync.d.ts.map +1 -1
  311. package/dist/daemon/hook-sync.js +2 -1
  312. package/dist/daemon/hook-sync.js.map +1 -1
  313. package/dist/daemon/index.d.ts.map +1 -1
  314. package/dist/daemon/index.js +471 -43
  315. package/dist/daemon/index.js.map +1 -1
  316. package/dist/daemon/lifecycle.d.ts +48 -1
  317. package/dist/daemon/lifecycle.d.ts.map +1 -1
  318. package/dist/daemon/lifecycle.js +98 -2
  319. package/dist/daemon/lifecycle.js.map +1 -1
  320. package/dist/daemon/router.d.ts +4 -1
  321. package/dist/daemon/router.d.ts.map +1 -1
  322. package/dist/daemon/router.js +4 -2
  323. package/dist/daemon/router.js.map +1 -1
  324. package/dist/daemon/rules/defaults.d.ts +20 -0
  325. package/dist/daemon/rules/defaults.d.ts.map +1 -0
  326. package/dist/daemon/rules/defaults.js +692 -0
  327. package/dist/daemon/rules/defaults.js.map +1 -0
  328. package/dist/daemon/rules/registry.d.ts +47 -0
  329. package/dist/daemon/rules/registry.d.ts.map +1 -0
  330. package/dist/daemon/rules/registry.js +84 -0
  331. package/dist/daemon/rules/registry.js.map +1 -0
  332. package/dist/daemon/rules/types.d.ts +170 -0
  333. package/dist/daemon/rules/types.d.ts.map +1 -0
  334. package/dist/daemon/rules/types.js +15 -0
  335. package/dist/daemon/rules/types.js.map +1 -0
  336. package/dist/daemon/rules/whitelist.d.ts +101 -0
  337. package/dist/daemon/rules/whitelist.d.ts.map +1 -0
  338. package/dist/daemon/rules/whitelist.js +210 -0
  339. package/dist/daemon/rules/whitelist.js.map +1 -0
  340. package/dist/daemon/rules/workflow-defaults.d.ts +52 -0
  341. package/dist/daemon/rules/workflow-defaults.d.ts.map +1 -0
  342. package/dist/daemon/rules/workflow-defaults.js +521 -0
  343. package/dist/daemon/rules/workflow-defaults.js.map +1 -0
  344. package/dist/daemon/server.d.ts +11 -1
  345. package/dist/daemon/server.d.ts.map +1 -1
  346. package/dist/daemon/server.js +7 -1
  347. package/dist/daemon/server.js.map +1 -1
  348. package/dist/daemon/services/context-injector.d.ts +34 -0
  349. package/dist/daemon/services/context-injector.d.ts.map +1 -0
  350. package/dist/daemon/services/context-injector.js +61 -0
  351. package/dist/daemon/services/context-injector.js.map +1 -0
  352. package/dist/daemon/services/decision-hint.d.ts +203 -0
  353. package/dist/daemon/services/decision-hint.d.ts.map +1 -0
  354. package/dist/daemon/services/decision-hint.js +487 -0
  355. package/dist/daemon/services/decision-hint.js.map +1 -0
  356. package/dist/daemon/services/event-ttl-sweep.d.ts +86 -0
  357. package/dist/daemon/services/event-ttl-sweep.d.ts.map +1 -0
  358. package/dist/daemon/services/event-ttl-sweep.js +123 -0
  359. package/dist/daemon/services/event-ttl-sweep.js.map +1 -0
  360. package/dist/daemon/services/experience-extractor.d.ts +67 -0
  361. package/dist/daemon/services/experience-extractor.d.ts.map +1 -0
  362. package/dist/daemon/services/experience-extractor.js +323 -0
  363. package/dist/daemon/services/experience-extractor.js.map +1 -0
  364. package/dist/daemon/services/feedback-aggregator.d.ts +179 -0
  365. package/dist/daemon/services/feedback-aggregator.d.ts.map +1 -0
  366. package/dist/daemon/services/feedback-aggregator.js +455 -0
  367. package/dist/daemon/services/feedback-aggregator.js.map +1 -0
  368. package/dist/daemon/services/heartbeat-writer.d.ts +55 -0
  369. package/dist/daemon/services/heartbeat-writer.d.ts.map +1 -0
  370. package/dist/daemon/services/heartbeat-writer.js +111 -0
  371. package/dist/daemon/services/heartbeat-writer.js.map +1 -0
  372. package/dist/daemon/services/idle-session-sweeper.d.ts +61 -0
  373. package/dist/daemon/services/idle-session-sweeper.d.ts.map +1 -0
  374. package/dist/daemon/services/idle-session-sweeper.js +94 -0
  375. package/dist/daemon/services/idle-session-sweeper.js.map +1 -0
  376. package/dist/daemon/services/idle-task-budget.d.ts +50 -0
  377. package/dist/daemon/services/idle-task-budget.d.ts.map +1 -0
  378. package/dist/daemon/services/idle-task-budget.js +72 -0
  379. package/dist/daemon/services/idle-task-budget.js.map +1 -0
  380. package/dist/daemon/services/intercept-revive.d.ts +60 -0
  381. package/dist/daemon/services/intercept-revive.d.ts.map +1 -0
  382. package/dist/daemon/services/intercept-revive.js +86 -0
  383. package/dist/daemon/services/intercept-revive.js.map +1 -0
  384. package/dist/daemon/services/intercept-rollback-guard.d.ts +105 -0
  385. package/dist/daemon/services/intercept-rollback-guard.d.ts.map +1 -0
  386. package/dist/daemon/services/intercept-rollback-guard.js +152 -0
  387. package/dist/daemon/services/intercept-rollback-guard.js.map +1 -0
  388. package/dist/daemon/services/intercept-timeout-sweeper.d.ts +58 -0
  389. package/dist/daemon/services/intercept-timeout-sweeper.d.ts.map +1 -0
  390. package/dist/daemon/services/intercept-timeout-sweeper.js +83 -0
  391. package/dist/daemon/services/intercept-timeout-sweeper.js.map +1 -0
  392. package/dist/daemon/services/kb-injector.d.ts +57 -0
  393. package/dist/daemon/services/kb-injector.d.ts.map +1 -0
  394. package/dist/daemon/services/kb-injector.js +140 -0
  395. package/dist/daemon/services/kb-injector.js.map +1 -0
  396. package/dist/daemon/services/outcome-classification-service.d.ts +49 -0
  397. package/dist/daemon/services/outcome-classification-service.d.ts.map +1 -0
  398. package/dist/daemon/services/outcome-classification-service.js +214 -0
  399. package/dist/daemon/services/outcome-classification-service.js.map +1 -0
  400. package/dist/daemon/services/outcome-classifier.d.ts +136 -0
  401. package/dist/daemon/services/outcome-classifier.d.ts.map +1 -0
  402. package/dist/daemon/services/outcome-classifier.js +178 -0
  403. package/dist/daemon/services/outcome-classifier.js.map +1 -0
  404. package/dist/daemon/services/outcome-nudge.d.ts +107 -0
  405. package/dist/daemon/services/outcome-nudge.d.ts.map +1 -0
  406. package/dist/daemon/services/outcome-nudge.js +242 -0
  407. package/dist/daemon/services/outcome-nudge.js.map +1 -0
  408. package/dist/daemon/services/spec-approval.d.ts +127 -0
  409. package/dist/daemon/services/spec-approval.d.ts.map +1 -0
  410. package/dist/daemon/services/spec-approval.js +216 -0
  411. package/dist/daemon/services/spec-approval.js.map +1 -0
  412. package/dist/daemon/services/spec-gate.d.ts +54 -0
  413. package/dist/daemon/services/spec-gate.d.ts.map +1 -0
  414. package/dist/daemon/services/spec-gate.js +113 -0
  415. package/dist/daemon/services/spec-gate.js.map +1 -0
  416. package/dist/daemon/services/task-boundary-classifier.d.ts +78 -0
  417. package/dist/daemon/services/task-boundary-classifier.d.ts.map +1 -0
  418. package/dist/daemon/services/task-boundary-classifier.js +202 -0
  419. package/dist/daemon/services/task-boundary-classifier.js.map +1 -0
  420. package/dist/daemon/services/task-segmenter.d.ts +219 -1
  421. package/dist/daemon/services/task-segmenter.d.ts.map +1 -1
  422. package/dist/daemon/services/task-segmenter.js +481 -17
  423. package/dist/daemon/services/task-segmenter.js.map +1 -1
  424. package/dist/daemon/services/violation-reporter.d.ts +130 -0
  425. package/dist/daemon/services/violation-reporter.d.ts.map +1 -0
  426. package/dist/daemon/services/violation-reporter.js +339 -0
  427. package/dist/daemon/services/violation-reporter.js.map +1 -0
  428. package/dist/daemon/skill-sync.d.ts +7 -2
  429. package/dist/daemon/skill-sync.d.ts.map +1 -1
  430. package/dist/daemon/skill-sync.js +114 -9
  431. package/dist/daemon/skill-sync.js.map +1 -1
  432. package/dist/daemon/templates/agents/claudemd-writer.md +101 -0
  433. package/dist/daemon/templates/agents/coder.md +105 -0
  434. package/dist/daemon/templates/agents/decision-maker.md +460 -0
  435. package/dist/daemon/templates/agents/doc-reviewer.md +115 -0
  436. package/dist/daemon/templates/agents/harness-debug-full.md +114 -0
  437. package/dist/daemon/templates/agents/harness-hotfix.md +99 -0
  438. package/dist/daemon/templates/agents/hybrid-feature-with-safety.md +104 -0
  439. package/dist/daemon/templates/agents/knowledge-builder.md +119 -0
  440. package/dist/daemon/templates/agents/patch-applier.md +144 -0
  441. package/dist/daemon/templates/agents/planner.md +165 -0
  442. package/dist/daemon/templates/agents/refactor-specialist.md +98 -0
  443. package/dist/daemon/templates/agents/skill-distiller.md +113 -0
  444. package/dist/daemon/templates/agents/task-boundary-classifier.md +64 -0
  445. package/dist/daemon/templates/agents/verify-agent.md +136 -0
  446. package/dist/daemon/utils/inject-block.d.ts +39 -0
  447. package/dist/daemon/utils/inject-block.d.ts.map +1 -0
  448. package/dist/daemon/utils/inject-block.js +25 -0
  449. package/dist/daemon/utils/inject-block.js.map +1 -0
  450. package/dist/hooks/hook-lib.sh +8 -0
  451. package/dist/hooks/notification.sh +19 -8
  452. package/dist/hooks/post-tool-use.sh +41 -23
  453. package/dist/hooks/pre-tool-use.sh +54 -23
  454. package/dist/hooks/session-start.sh +68 -0
  455. package/dist/hooks/stop.sh +24 -10
  456. package/dist/hooks/user-prompt-submit.sh +37 -21
  457. package/dist/knowledge/adapters/go-adapter.d.ts +65 -0
  458. package/dist/knowledge/adapters/go-adapter.d.ts.map +1 -0
  459. package/dist/knowledge/adapters/go-adapter.js +294 -0
  460. package/dist/knowledge/adapters/go-adapter.js.map +1 -0
  461. package/dist/knowledge/adapters/index.d.ts +41 -0
  462. package/dist/knowledge/adapters/index.d.ts.map +1 -0
  463. package/dist/knowledge/adapters/index.js +71 -0
  464. package/dist/knowledge/adapters/index.js.map +1 -0
  465. package/dist/knowledge/adapters/java-adapter.d.ts +66 -0
  466. package/dist/knowledge/adapters/java-adapter.d.ts.map +1 -0
  467. package/dist/knowledge/adapters/java-adapter.js +260 -0
  468. package/dist/knowledge/adapters/java-adapter.js.map +1 -0
  469. package/dist/knowledge/adapters/js-vue-adapter.d.ts +56 -0
  470. package/dist/knowledge/adapters/js-vue-adapter.d.ts.map +1 -0
  471. package/dist/knowledge/adapters/js-vue-adapter.js +203 -0
  472. package/dist/knowledge/adapters/js-vue-adapter.js.map +1 -0
  473. package/dist/knowledge/adapters/kotlin-adapter.d.ts +55 -0
  474. package/dist/knowledge/adapters/kotlin-adapter.d.ts.map +1 -0
  475. package/dist/knowledge/adapters/kotlin-adapter.js +209 -0
  476. package/dist/knowledge/adapters/kotlin-adapter.js.map +1 -0
  477. package/dist/knowledge/adapters/monorepo-adapter.d.ts +77 -0
  478. package/dist/knowledge/adapters/monorepo-adapter.d.ts.map +1 -0
  479. package/dist/knowledge/adapters/monorepo-adapter.js +170 -0
  480. package/dist/knowledge/adapters/monorepo-adapter.js.map +1 -0
  481. package/dist/knowledge/adapters/python-adapter.d.ts +89 -0
  482. package/dist/knowledge/adapters/python-adapter.d.ts.map +1 -0
  483. package/dist/knowledge/adapters/python-adapter.js +358 -0
  484. package/dist/knowledge/adapters/python-adapter.js.map +1 -0
  485. package/dist/knowledge/adapters/rust-adapter.d.ts +73 -0
  486. package/dist/knowledge/adapters/rust-adapter.d.ts.map +1 -0
  487. package/dist/knowledge/adapters/rust-adapter.js +329 -0
  488. package/dist/knowledge/adapters/rust-adapter.js.map +1 -0
  489. package/dist/knowledge/adapters/types.d.ts +99 -0
  490. package/dist/knowledge/adapters/types.d.ts.map +1 -0
  491. package/dist/knowledge/adapters/types.js +17 -0
  492. package/dist/knowledge/adapters/types.js.map +1 -0
  493. package/dist/knowledge/adapters/typescript-adapter.d.ts +57 -0
  494. package/dist/knowledge/adapters/typescript-adapter.d.ts.map +1 -0
  495. package/dist/knowledge/adapters/typescript-adapter.js +171 -0
  496. package/dist/knowledge/adapters/typescript-adapter.js.map +1 -0
  497. package/dist/knowledge/audit-applier.d.ts +70 -0
  498. package/dist/knowledge/audit-applier.d.ts.map +1 -0
  499. package/dist/knowledge/audit-applier.js +251 -0
  500. package/dist/knowledge/audit-applier.js.map +1 -0
  501. package/dist/knowledge/builder.d.ts +261 -0
  502. package/dist/knowledge/builder.d.ts.map +1 -0
  503. package/dist/knowledge/builder.js +937 -0
  504. package/dist/knowledge/builder.js.map +1 -0
  505. package/dist/knowledge/cli-provider.d.ts +151 -0
  506. package/dist/knowledge/cli-provider.d.ts.map +1 -0
  507. package/dist/knowledge/cli-provider.js +313 -0
  508. package/dist/knowledge/cli-provider.js.map +1 -0
  509. package/dist/knowledge/constants.d.ts +73 -0
  510. package/dist/knowledge/constants.d.ts.map +1 -0
  511. package/dist/knowledge/constants.js +93 -0
  512. package/dist/knowledge/constants.js.map +1 -0
  513. package/dist/knowledge/cross-module.d.ts +139 -0
  514. package/dist/knowledge/cross-module.d.ts.map +1 -0
  515. package/dist/knowledge/cross-module.js +370 -0
  516. package/dist/knowledge/cross-module.js.map +1 -0
  517. package/dist/knowledge/git-hooks.d.ts +67 -0
  518. package/dist/knowledge/git-hooks.d.ts.map +1 -0
  519. package/dist/knowledge/git-hooks.js +258 -0
  520. package/dist/knowledge/git-hooks.js.map +1 -0
  521. package/dist/knowledge/module-hash.d.ts +88 -0
  522. package/dist/knowledge/module-hash.d.ts.map +1 -0
  523. package/dist/knowledge/module-hash.js +162 -0
  524. package/dist/knowledge/module-hash.js.map +1 -0
  525. package/dist/knowledge/project-detector.d.ts +101 -0
  526. package/dist/knowledge/project-detector.d.ts.map +1 -0
  527. package/dist/knowledge/project-detector.js +223 -0
  528. package/dist/knowledge/project-detector.js.map +1 -0
  529. package/dist/knowledge/prompt.d.ts +228 -0
  530. package/dist/knowledge/prompt.d.ts.map +1 -0
  531. package/dist/knowledge/prompt.js +404 -0
  532. package/dist/knowledge/prompt.js.map +1 -0
  533. package/dist/knowledge/query.d.ts +105 -0
  534. package/dist/knowledge/query.d.ts.map +1 -0
  535. package/dist/knowledge/query.js +341 -0
  536. package/dist/knowledge/query.js.map +1 -0
  537. package/dist/knowledge/repo-map.d.ts +91 -0
  538. package/dist/knowledge/repo-map.d.ts.map +1 -0
  539. package/dist/knowledge/repo-map.js +408 -0
  540. package/dist/knowledge/repo-map.js.map +1 -0
  541. package/dist/knowledge/tools/index.d.ts +14 -0
  542. package/dist/knowledge/tools/index.d.ts.map +1 -0
  543. package/dist/knowledge/tools/index.js +11 -0
  544. package/dist/knowledge/tools/index.js.map +1 -0
  545. package/dist/knowledge/tools/knowledge-get-page.d.ts +46 -0
  546. package/dist/knowledge/tools/knowledge-get-page.d.ts.map +1 -0
  547. package/dist/knowledge/tools/knowledge-get-page.js +101 -0
  548. package/dist/knowledge/tools/knowledge-get-page.js.map +1 -0
  549. package/dist/knowledge/tools/knowledge-query.d.ts +77 -0
  550. package/dist/knowledge/tools/knowledge-query.d.ts.map +1 -0
  551. package/dist/knowledge/tools/knowledge-query.js +104 -0
  552. package/dist/knowledge/tools/knowledge-query.js.map +1 -0
  553. package/dist/knowledge/tools/repo-map-lookup.d.ts +45 -0
  554. package/dist/knowledge/tools/repo-map-lookup.d.ts.map +1 -0
  555. package/dist/knowledge/tools/repo-map-lookup.js +82 -0
  556. package/dist/knowledge/tools/repo-map-lookup.js.map +1 -0
  557. package/dist/knowledge/types.d.ts +269 -0
  558. package/dist/knowledge/types.d.ts.map +1 -0
  559. package/dist/knowledge/types.js +10 -0
  560. package/dist/knowledge/types.js.map +1 -0
  561. package/dist/knowledge/validator.d.ts +90 -0
  562. package/dist/knowledge/validator.d.ts.map +1 -0
  563. package/dist/knowledge/validator.js +288 -0
  564. package/dist/knowledge/validator.js.map +1 -0
  565. package/dist/mcp/server.d.ts.map +1 -1
  566. package/dist/mcp/server.js +222 -1
  567. package/dist/mcp/server.js.map +1 -1
  568. package/dist/skills/builtin-skills.d.ts +35 -0
  569. package/dist/skills/builtin-skills.d.ts.map +1 -0
  570. package/dist/skills/builtin-skills.js +68 -0
  571. package/dist/skills/builtin-skills.js.map +1 -0
  572. package/dist/skills/distill/attribution.d.ts +59 -0
  573. package/dist/skills/distill/attribution.d.ts.map +1 -0
  574. package/dist/skills/distill/attribution.js +101 -0
  575. package/dist/skills/distill/attribution.js.map +1 -0
  576. package/dist/skills/distill/claude-cli-resolver.d.ts +26 -0
  577. package/dist/skills/distill/claude-cli-resolver.d.ts.map +1 -0
  578. package/dist/skills/distill/claude-cli-resolver.js +115 -0
  579. package/dist/skills/distill/claude-cli-resolver.js.map +1 -0
  580. package/dist/skills/distill/distiller.d.ts +161 -0
  581. package/dist/skills/distill/distiller.d.ts.map +1 -0
  582. package/dist/skills/distill/distiller.js +461 -0
  583. package/dist/skills/distill/distiller.js.map +1 -0
  584. package/dist/skills/distill/index.d.ts +223 -0
  585. package/dist/skills/distill/index.d.ts.map +1 -0
  586. package/dist/skills/distill/index.js +466 -0
  587. package/dist/skills/distill/index.js.map +1 -0
  588. package/dist/skills/distill/project-anchor-guard.d.ts +116 -0
  589. package/dist/skills/distill/project-anchor-guard.d.ts.map +1 -0
  590. package/dist/skills/distill/project-anchor-guard.js +334 -0
  591. package/dist/skills/distill/project-anchor-guard.js.map +1 -0
  592. package/dist/skills/distill/topic-deduper.d.ts +77 -0
  593. package/dist/skills/distill/topic-deduper.d.ts.map +1 -0
  594. package/dist/skills/distill/topic-deduper.js +119 -0
  595. package/dist/skills/distill/topic-deduper.js.map +1 -0
  596. package/dist/skills/distill/upstream-fetcher.d.ts +71 -0
  597. package/dist/skills/distill/upstream-fetcher.d.ts.map +1 -0
  598. package/dist/skills/distill/upstream-fetcher.js +202 -0
  599. package/dist/skills/distill/upstream-fetcher.js.map +1 -0
  600. package/dist/skills/distilled/distilled-api-design.md +491 -0
  601. package/dist/skills/distilled/distilled-architecture-decision.md +173 -0
  602. package/dist/skills/distilled/distilled-creator.md +178 -0
  603. package/dist/skills/distilled/distilled-db-schema-design.md +245 -0
  604. package/dist/skills/distilled/distilled-defi-amm-security.md +293 -0
  605. package/dist/skills/distilled/distilled-executing-plans.md +113 -0
  606. package/dist/skills/distilled/distilled-harness-engineering.md +242 -0
  607. package/dist/skills/distilled/distilled-karpathy-guidelines.md +104 -0
  608. package/dist/skills/distilled/distilled-performance-optimization.md +175 -0
  609. package/dist/skills/distilled/distilled-spec-driven-design.md +193 -0
  610. package/dist/skills/distilled/distilled-systematic-debugging.md +306 -0
  611. package/dist/skills/distilled/distilled-verification-before-completion.md +203 -0
  612. package/dist/skills/keyword-score.d.ts +29 -0
  613. package/dist/skills/keyword-score.d.ts.map +1 -0
  614. package/dist/skills/keyword-score.js +54 -0
  615. package/dist/skills/keyword-score.js.map +1 -0
  616. package/dist/skills/registry.d.ts +64 -20
  617. package/dist/skills/registry.d.ts.map +1 -1
  618. package/dist/skills/registry.js +102 -105
  619. package/dist/skills/registry.js.map +1 -1
  620. package/dist/skills/tools/pipeline-suggest.js +14 -14
  621. package/dist/skills/tools/skill-invoke.d.ts +1 -1
  622. package/dist/skills/tools/skill-invoke.js +1 -1
  623. package/dist/web/routes/agent-content.d.ts +30 -0
  624. package/dist/web/routes/agent-content.d.ts.map +1 -0
  625. package/dist/web/routes/agent-content.js +139 -0
  626. package/dist/web/routes/agent-content.js.map +1 -0
  627. package/dist/web/routes/decisions.d.ts +15 -0
  628. package/dist/web/routes/decisions.d.ts.map +1 -0
  629. package/dist/web/routes/decisions.js +181 -0
  630. package/dist/web/routes/decisions.js.map +1 -0
  631. package/dist/web/routes/diagnostics.d.ts +61 -0
  632. package/dist/web/routes/diagnostics.d.ts.map +1 -0
  633. package/dist/web/routes/diagnostics.js +203 -0
  634. package/dist/web/routes/diagnostics.js.map +1 -0
  635. package/dist/web/routes/events.d.ts.map +1 -1
  636. package/dist/web/routes/events.js +24 -0
  637. package/dist/web/routes/events.js.map +1 -1
  638. package/dist/web/routes/health.d.ts +33 -0
  639. package/dist/web/routes/health.d.ts.map +1 -0
  640. package/dist/web/routes/health.js +37 -0
  641. package/dist/web/routes/health.js.map +1 -0
  642. package/dist/web/routes/insights.d.ts +0 -5
  643. package/dist/web/routes/insights.d.ts.map +1 -1
  644. package/dist/web/routes/insights.js +783 -2
  645. package/dist/web/routes/insights.js.map +1 -1
  646. package/dist/web/routes/knowledge.d.ts +16 -0
  647. package/dist/web/routes/knowledge.d.ts.map +1 -0
  648. package/dist/web/routes/knowledge.js +661 -0
  649. package/dist/web/routes/knowledge.js.map +1 -0
  650. package/dist/web/routes/patch.d.ts +60 -1
  651. package/dist/web/routes/patch.d.ts.map +1 -1
  652. package/dist/web/routes/patch.js +170 -64
  653. package/dist/web/routes/patch.js.map +1 -1
  654. package/dist/web/routes/pipeline.d.ts +37 -0
  655. package/dist/web/routes/pipeline.d.ts.map +1 -0
  656. package/dist/web/routes/pipeline.js +149 -0
  657. package/dist/web/routes/pipeline.js.map +1 -0
  658. package/dist/web/routes/rules.d.ts.map +1 -1
  659. package/dist/web/routes/rules.js +6 -1
  660. package/dist/web/routes/rules.js.map +1 -1
  661. package/dist/web/routes/sessions.d.ts.map +1 -1
  662. package/dist/web/routes/sessions.js +9 -1
  663. package/dist/web/routes/sessions.js.map +1 -1
  664. package/dist/web/routes/skill-content.d.ts +30 -0
  665. package/dist/web/routes/skill-content.d.ts.map +1 -0
  666. package/dist/web/routes/skill-content.js +117 -0
  667. package/dist/web/routes/skill-content.js.map +1 -0
  668. package/dist/web/routes/skills-distill.d.ts +29 -0
  669. package/dist/web/routes/skills-distill.d.ts.map +1 -0
  670. package/dist/web/routes/skills-distill.js +552 -0
  671. package/dist/web/routes/skills-distill.js.map +1 -0
  672. package/dist/web/routes/skills.js +7 -7
  673. package/dist/web/routes/skills.js.map +1 -1
  674. package/dist/web/routes/task-timeline.d.ts +102 -0
  675. package/dist/web/routes/task-timeline.d.ts.map +1 -0
  676. package/dist/web/routes/task-timeline.js +274 -0
  677. package/dist/web/routes/task-timeline.js.map +1 -0
  678. package/dist/web/routes/tasks.d.ts.map +1 -1
  679. package/dist/web/routes/tasks.js +355 -8
  680. package/dist/web/routes/tasks.js.map +1 -1
  681. package/dist/web/routes/trace.d.ts.map +1 -1
  682. package/dist/web/routes/trace.js +3 -2
  683. package/dist/web/routes/trace.js.map +1 -1
  684. package/dist/web/routes/types.d.ts +0 -4
  685. package/dist/web/routes/types.d.ts.map +1 -1
  686. package/dist/web/routes/types.js +1 -1
  687. package/dist/web/routes/types.js.map +1 -1
  688. package/dist/web/routes/violations.d.ts +14 -0
  689. package/dist/web/routes/violations.d.ts.map +1 -0
  690. package/dist/web/routes/violations.js +111 -0
  691. package/dist/web/routes/violations.js.map +1 -0
  692. package/dist/web/server.d.ts.map +1 -1
  693. package/dist/web/server.js +79 -19
  694. package/dist/web/server.js.map +1 -1
  695. package/dist/web/services/build-manager.d.ts +72 -0
  696. package/dist/web/services/build-manager.d.ts.map +1 -0
  697. package/dist/web/services/build-manager.js +189 -0
  698. package/dist/web/services/build-manager.js.map +1 -0
  699. package/dist/web/services/distill-manager.d.ts +125 -0
  700. package/dist/web/services/distill-manager.d.ts.map +1 -0
  701. package/dist/web/services/distill-manager.js +308 -0
  702. package/dist/web/services/distill-manager.js.map +1 -0
  703. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js +2 -0
  704. package/dist/web/static/assets/AgentContentPage-DkeRNxok.js.map +1 -0
  705. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js +2 -0
  706. package/dist/web/static/assets/AgentDelegationTable-ByBa0x1l.js.map +1 -0
  707. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js +3 -0
  708. package/dist/web/static/assets/ContextInsightsPage-oUk7_I8u.js.map +1 -0
  709. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js +2 -0
  710. package/dist/web/static/assets/DaemonHealthPage-DG2fyOP7.js.map +1 -0
  711. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js +2 -0
  712. package/dist/web/static/assets/DecisionsPage-CMAPEnKb.js.map +1 -0
  713. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js +2 -0
  714. package/dist/web/static/assets/DiagnosticsPage-DQd-Zm4r.js.map +1 -0
  715. package/dist/web/static/assets/DriftTab-DqpepOhI.js +2 -0
  716. package/dist/web/static/assets/DriftTab-DqpepOhI.js.map +1 -0
  717. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js +3 -0
  718. package/dist/web/static/assets/HealthHomePage-CN6zNIie.js.map +1 -0
  719. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js +2 -0
  720. package/dist/web/static/assets/KbHitRateTable-ByEIWujF.js.map +1 -0
  721. package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js +3 -0
  722. package/dist/web/static/assets/MarkdownRenderer-DZmTl-8J.js.map +1 -0
  723. package/dist/web/static/assets/NotFound-BQPh0vaF.js +2 -0
  724. package/dist/web/static/assets/NotFound-BQPh0vaF.js.map +1 -0
  725. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js +2 -0
  726. package/dist/web/static/assets/ProjectSwitcher-D3lZMFd3.js.map +1 -0
  727. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js +2 -0
  728. package/dist/web/static/assets/SettingsPage-oLJBNzQj.js.map +1 -0
  729. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js +2 -0
  730. package/dist/web/static/assets/SkillContentPage-DK5rgfgw.js.map +1 -0
  731. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js +2 -0
  732. package/dist/web/static/assets/SkillStatsTable-DYMzjEUV.js.map +1 -0
  733. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js +2 -0
  734. package/dist/web/static/assets/SkillsDistillTab-C7qaG8q3.js.map +1 -0
  735. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js +6 -0
  736. package/dist/web/static/assets/TasksHubPage-03wsRRsJ.js.map +1 -0
  737. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js +3 -0
  738. package/dist/web/static/assets/ViolationsPage-DSiLr-9O.js.map +1 -0
  739. package/dist/web/static/assets/arco-Bhi3a6Qp.js +14 -0
  740. package/dist/web/static/assets/arco-Bhi3a6Qp.js.map +1 -0
  741. package/dist/web/static/assets/arco-DFQA6dO_.css +1 -0
  742. package/dist/web/static/assets/charts-BuHQWDbQ.js +37 -0
  743. package/dist/web/static/assets/charts-BuHQWDbQ.js.map +1 -0
  744. package/dist/web/static/assets/date-fns-sbWH3_uq.js +2 -0
  745. package/dist/web/static/assets/date-fns-sbWH3_uq.js.map +1 -0
  746. package/dist/web/static/assets/index-7bl3kbcx.css +1 -0
  747. package/dist/web/static/assets/index-BIYnq1Dx.js +4 -0
  748. package/dist/web/static/assets/index-BIYnq1Dx.js.map +1 -0
  749. package/dist/web/static/assets/lucide-CnlPQoG8.js +72 -0
  750. package/dist/web/static/assets/lucide-CnlPQoG8.js.map +1 -0
  751. package/dist/web/static/assets/outcome-DUn1NjlC.js +2 -0
  752. package/dist/web/static/assets/outcome-DUn1NjlC.js.map +1 -0
  753. package/dist/web/static/assets/query-S6X1S7K9.js +2 -0
  754. package/dist/web/static/assets/{query-C99w429o.js.map → query-S6X1S7K9.js.map} +1 -1
  755. package/dist/web/static/assets/{react-router-r79dBVy4.js → react-router-JVUrkhdd.js} +3 -3
  756. package/dist/web/static/assets/{react-router-r79dBVy4.js.map → react-router-JVUrkhdd.js.map} +1 -1
  757. package/dist/web/static/assets/react-vendor-tkvCrao7.js +57 -0
  758. package/dist/web/static/assets/react-vendor-tkvCrao7.js.map +1 -0
  759. package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js +6 -0
  760. package/dist/web/static/assets/syntax-highlighter-BkZfCDsz.js.map +1 -0
  761. package/dist/web/static/assets/useTabsParam-k8qte_0C.js +2 -0
  762. package/dist/web/static/assets/useTabsParam-k8qte_0C.js.map +1 -0
  763. package/dist/web/static/assets/vendor-DWgdB1eY.js +65 -0
  764. package/dist/web/static/assets/vendor-DWgdB1eY.js.map +1 -0
  765. package/dist/web/static/index.html +12 -8
  766. package/package.json +14 -3
  767. package/dist/core/ai/provider.d.ts +0 -63
  768. package/dist/core/ai/provider.d.ts.map +0 -1
  769. package/dist/core/ai/provider.js +0 -241
  770. package/dist/core/ai/provider.js.map +0 -1
  771. package/dist/core/ai/types.d.ts +0 -43
  772. package/dist/core/ai/types.d.ts.map +0 -1
  773. package/dist/core/ai/types.js +0 -5
  774. package/dist/core/ai/types.js.map +0 -1
  775. package/dist/core/storage/token-usage.d.ts +0 -36
  776. package/dist/core/storage/token-usage.d.ts.map +0 -1
  777. package/dist/core/storage/token-usage.js +0 -59
  778. package/dist/core/storage/token-usage.js.map +0 -1
  779. package/dist/core/utils/token-tracker.d.ts +0 -39
  780. package/dist/core/utils/token-tracker.d.ts.map +0 -1
  781. package/dist/core/utils/token-tracker.js +0 -69
  782. package/dist/core/utils/token-tracker.js.map +0 -1
  783. package/dist/skills/index.d.ts +0 -3
  784. package/dist/skills/index.d.ts.map +0 -1
  785. package/dist/skills/index.js +0 -3
  786. package/dist/skills/index.js.map +0 -1
  787. package/dist/skills/matcher.d.ts +0 -26
  788. package/dist/skills/matcher.d.ts.map +0 -1
  789. package/dist/skills/matcher.js +0 -113
  790. package/dist/skills/matcher.js.map +0 -1
  791. package/dist/skills/official/code-simplifier.md +0 -52
  792. package/dist/skills/official/find-skills.md +0 -142
  793. package/dist/skills/official/official-api-design.md +0 -30
  794. package/dist/skills/official/official-architecture-decision.md +0 -41
  795. package/dist/skills/official/official-bmad.md +0 -118
  796. package/dist/skills/official/official-db-schema-design.md +0 -34
  797. package/dist/skills/official/official-debug.md +0 -25
  798. package/dist/skills/official/official-doc-driven.md +0 -31
  799. package/dist/skills/official/official-harness-engineering.md +0 -108
  800. package/dist/skills/official/official-performance-optimization.md +0 -30
  801. package/dist/skills/official/official-pr-review.md +0 -35
  802. package/dist/skills/official/official-release-checklist.md +0 -30
  803. package/dist/skills/official/official-security-hardening.md +0 -32
  804. package/dist/skills/official/official-spec-driven-design.md +0 -31
  805. package/dist/skills/official/planning-with-files.md +0 -241
  806. package/dist/skills/official/ui-ux-pro-max.md +0 -105
  807. package/dist/skills/official/webapp-testing.md +0 -96
  808. package/dist/skills/official-skills.d.ts +0 -26
  809. package/dist/skills/official-skills.d.ts.map +0 -1
  810. package/dist/skills/official-skills.js +0 -73
  811. package/dist/skills/official-skills.js.map +0 -1
  812. package/dist/skills/semantic-matcher.d.ts +0 -60
  813. package/dist/skills/semantic-matcher.d.ts.map +0 -1
  814. package/dist/skills/semantic-matcher.js +0 -192
  815. package/dist/skills/semantic-matcher.js.map +0 -1
  816. package/dist/skills/upgrade-engine.d.ts +0 -93
  817. package/dist/skills/upgrade-engine.d.ts.map +0 -1
  818. package/dist/skills/upgrade-engine.js +0 -447
  819. package/dist/skills/upgrade-engine.js.map +0 -1
  820. package/dist/skills/upgrade-prompt.d.ts +0 -20
  821. package/dist/skills/upgrade-prompt.d.ts.map +0 -1
  822. package/dist/skills/upgrade-prompt.js +0 -75
  823. package/dist/skills/upgrade-prompt.js.map +0 -1
  824. package/dist/web/routes/ai.d.ts +0 -10
  825. package/dist/web/routes/ai.d.ts.map +0 -1
  826. package/dist/web/routes/ai.js +0 -186
  827. package/dist/web/routes/ai.js.map +0 -1
  828. package/dist/web/routes/token-usage.d.ts +0 -7
  829. package/dist/web/routes/token-usage.d.ts.map +0 -1
  830. package/dist/web/routes/token-usage.js +0 -18
  831. package/dist/web/routes/token-usage.js.map +0 -1
  832. package/dist/web/ssrf-guard.d.ts +0 -35
  833. package/dist/web/ssrf-guard.d.ts.map +0 -1
  834. package/dist/web/ssrf-guard.js +0 -93
  835. package/dist/web/ssrf-guard.js.map +0 -1
  836. package/dist/web/static/assets/AIConfig-CdDWzJyO.js +0 -2
  837. package/dist/web/static/assets/AIConfig-CdDWzJyO.js.map +0 -1
  838. package/dist/web/static/assets/Dashboard-CoEmmIDt.js +0 -2
  839. package/dist/web/static/assets/Dashboard-CoEmmIDt.js.map +0 -1
  840. package/dist/web/static/assets/Drawer-DdRTzlLB.js +0 -2
  841. package/dist/web/static/assets/Drawer-DdRTzlLB.js.map +0 -1
  842. package/dist/web/static/assets/Events-DrIq1SUS.js +0 -2
  843. package/dist/web/static/assets/Events-DrIq1SUS.js.map +0 -1
  844. package/dist/web/static/assets/Reports-DFBM3MDK.js +0 -2
  845. package/dist/web/static/assets/Reports-DFBM3MDK.js.map +0 -1
  846. package/dist/web/static/assets/SearchInput-qCj_jAcf.js +0 -2
  847. package/dist/web/static/assets/SearchInput-qCj_jAcf.js.map +0 -1
  848. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js +0 -2
  849. package/dist/web/static/assets/SessionDetail-CCzwdoT7.js.map +0 -1
  850. package/dist/web/static/assets/Sessions-FfLYkAw9.js +0 -2
  851. package/dist/web/static/assets/Sessions-FfLYkAw9.js.map +0 -1
  852. package/dist/web/static/assets/Skills-C8Gvs3Qa.js +0 -2
  853. package/dist/web/static/assets/Skills-C8Gvs3Qa.js.map +0 -1
  854. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js +0 -2
  855. package/dist/web/static/assets/TaskDetail-BS8pYhaR.js.map +0 -1
  856. package/dist/web/static/assets/Tasks-CyuhizG8.js +0 -2
  857. package/dist/web/static/assets/Tasks-CyuhizG8.js.map +0 -1
  858. package/dist/web/static/assets/charts-CLrM0_uM.js +0 -37
  859. package/dist/web/static/assets/charts-CLrM0_uM.js.map +0 -1
  860. package/dist/web/static/assets/date-fns-CZ_bHujz.js +0 -2
  861. package/dist/web/static/assets/date-fns-CZ_bHujz.js.map +0 -1
  862. package/dist/web/static/assets/export-L_VBD2p1.js +0 -4
  863. package/dist/web/static/assets/export-L_VBD2p1.js.map +0 -1
  864. package/dist/web/static/assets/index-CBX47X8l.js +0 -3
  865. package/dist/web/static/assets/index-CBX47X8l.js.map +0 -1
  866. package/dist/web/static/assets/index-DjIoMdoR.css +0 -1
  867. package/dist/web/static/assets/lucide-Bs_edTLa.js +0 -232
  868. package/dist/web/static/assets/lucide-Bs_edTLa.js.map +0 -1
  869. package/dist/web/static/assets/query-C99w429o.js +0 -2
  870. package/dist/web/static/assets/react-vendor-CSp-GLFF.js +0 -49
  871. package/dist/web/static/assets/react-vendor-CSp-GLFF.js.map +0 -1
  872. package/dist/web/static/assets/syntax-highlighter-44FakypI.js +0 -9
  873. package/dist/web/static/assets/syntax-highlighter-44FakypI.js.map +0 -1
  874. package/dist/web/static/assets/task-title-BhOcemuR.js +0 -2
  875. package/dist/web/static/assets/task-title-BhOcemuR.js.map +0 -1
  876. package/dist/web/static/assets/time-Bxuk0M-C.js +0 -2
  877. package/dist/web/static/assets/time-Bxuk0M-C.js.map +0 -1
  878. package/dist/web/static/assets/vendor-CMMjVdZs.js +0 -64
  879. package/dist/web/static/assets/vendor-CMMjVdZs.js.map +0 -1
@@ -0,0 +1,173 @@
1
+ ---
2
+ name: distilled-architecture-decision
3
+ version: 1.0.0-portable
4
+ description: 'Distilled IT-universal skill: architecture decision records (portable, hand-rewritten 2026-05-27)'
5
+ keywords:
6
+ - architecture
7
+ - adr
8
+ - decision
9
+ - design
10
+ - record
11
+ - architecture decision
12
+ - 架构决策
13
+ - 技术选型
14
+ rubric_version: 2
15
+ distilled_from:
16
+ - upstream: https://github.com/winspan/claude-forge.git
17
+ license: MIT
18
+ commit: 7d96b86c
19
+ paths:
20
+ - official/official-architecture-decision.md
21
+ distilled_at: '2026-05-27T02:11:00.000Z'
22
+ distilled_by: hand-rewrite (D4-reverse)
23
+ it_universal_score: 4.5
24
+ it_universal_dims:
25
+ d1: 1
26
+ d2: 1
27
+ d3: 1
28
+ d4: 1
29
+ d5: 0.5
30
+ it_universal_rationale: ADR template + decision-record discipline; entirely process-level, stack-agnostic.
31
+ is_stub: false
32
+ ---
33
+
34
+ ## Goal
35
+
36
+ Capture every consequential technical decision as a short, dated, immutable record so that future maintainers can reconstruct **why** the system looks the way it does — not just what it does.
37
+
38
+ ## When to trigger
39
+
40
+ - Choosing among multiple plausible technologies (framework, database, queue, build tool, runtime).
41
+ - Drawing a system boundary (which service owns which data; what crosses an API).
42
+ - Picking a protocol (REST vs gRPC vs message-bus; sync vs async).
43
+ - A decision that will affect more than one module, team, or release cycle.
44
+ - Reversing or superseding a prior architectural choice.
45
+ - A design debate that has happened more than twice — write it down once and stop relitigating.
46
+
47
+ Skip the ADR for: trivial style tweaks, single-file refactors, bug fixes, or anything that doesn't change the shape of the system.
48
+
49
+ ## Steps
50
+
51
+ 1. **Detect the decision moment.** When you notice yourself or a teammate weighing trade-offs that will outlive the current sprint, pause and open a new ADR file.
52
+
53
+ 2. **Pick the next number.** Use a monotonic counter (`ADR-0001`, `ADR-0002`, ...). Numbers are never reused, even for retired records. Store them in a known directory of the repo (a common convention is `docs/adr/`).
54
+
55
+ 3. **Fill the template** (see "Examples" for the canonical shape). The minimum sections are: Status, Context, Decision, Alternatives considered, Consequences. Keep each section short — usually one to four paragraphs.
56
+
57
+ 4. **Mark status honestly.** Start at `Proposed`. Once approved (whatever your team's bar is — a review, a meeting, a PR merge), change to `Accepted`. If later replaced, change to `Superseded by ADR-NNNN`. If retired without replacement, `Deprecated`.
58
+
59
+ 5. **Never edit an Accepted ADR's substance.** Typos are fine; rewriting the decision is not. If the decision changes, write a **new** ADR that supersedes the old one. The old record stays in the repo as historical context.
60
+
61
+ 6. **Cross-link.** When an ADR depends on, or invalidates, another, link both ways: ADR-0007 "supersedes ADR-0003"; ADR-0003 carries a note "superseded by ADR-0007".
62
+
63
+ 7. **Reference ADRs from code or PRs** when a non-obvious choice would otherwise confuse readers. A comment like `// see ADR-0012` is cheaper than a 20-line explanation that drifts out of date.
64
+
65
+ ## Anti-patterns
66
+
67
+ - **Editing an Accepted ADR.** The record loses its truth value. If circumstances changed, supersede with a new ADR.
68
+ - **ADRs that say "we chose X" without saying why.** The context and alternatives sections are the whole point — the choice itself is the cheap part.
69
+ - **Writing an ADR after the fact** to rubber-stamp a decision already shipped. Better than nothing, but flag it as `Accepted (retroactive)` and acknowledge the alternatives were not really weighed.
70
+ - **One giant ADR covering many decisions.** Split them. One ADR = one decision.
71
+ - **Burying ADRs in a wiki nobody reads.** Keep them in the repo, next to the code, in a flat browsable directory.
72
+ - **Status that lies.** A `Proposed` ADR that has been shipping for 6 months is not Proposed — fix the status.
73
+ - **Skipping ADRs for "obvious" choices.** Often the obvious choice is obvious only to the original author; the record protects future maintainers from re-evaluating from scratch.
74
+
75
+ ## Success criteria
76
+
77
+ - [ ] The repo has a known directory holding ADRs (e.g. `docs/adr/`), with a flat numbering scheme.
78
+ - [ ] Every Accepted ADR has filled Context, Decision, Alternatives, and Consequences sections.
79
+ - [ ] Status of every ADR matches reality (no stale `Proposed` records).
80
+ - [ ] At least one ADR exists for every cross-module / cross-team choice made in the last release cycle.
81
+ - [ ] Superseded ADRs link to their successors, and vice versa.
82
+ - [ ] Code / PRs reference ADR numbers when explaining non-obvious choices.
83
+
84
+ ## Failure modes
85
+
86
+ - **Decisions made in chat without a record.** When the third person asks "why are we using X?", that's the prompt — open an ADR retroactively and tag it.
87
+ - **ADR explosion.** If you have 200 ADRs, you've blurred the line between "architecture decision" and "any decision". Tighten the trigger criteria; small decisions belong in code comments or PR descriptions, not ADRs.
88
+ - **Two contradictory Accepted ADRs.** A symptom that nobody checked the existing record before writing the new one. Resolution: write a third ADR that explicitly supersedes the older one.
89
+ - **Authors disagree on the decision.** Don't write a wishy-washy ADR. Record the dissent in the Alternatives section: "Option B preferred by A and C; Option A chosen because of X. See discussion thread Y."
90
+ - **Decision turns out to be wrong.** That's fine — write a new ADR superseding the old one. The old ADR is not embarrassing; it's history. Editing it to hide the mistake is worse.
91
+
92
+ ## Examples
93
+
94
+ ### Canonical ADR template
95
+
96
+ ```markdown
97
+ # ADR-0007: Use a message queue between the ingest and processor
98
+
99
+ ## Status
100
+ Accepted (2026-04-12)
101
+
102
+ ## Context
103
+ The ingest service produces ~10k events/min. The processor's throughput is variable
104
+ because some events trigger expensive enrichment calls. Coupling them synchronously
105
+ caused 99th-percentile latency spikes and cascading retries on the upstream caller.
106
+
107
+ ## Decision
108
+ Insert a durable message queue between ingest and processor. Ingest writes, returns
109
+ immediately; processor consumes at its own pace. At-least-once delivery; processor
110
+ handles idempotency by event ID.
111
+
112
+ ## Alternatives considered
113
+ - Direct HTTP with a larger thread pool in the processor: rejected — does not
114
+ bound memory; still vulnerable to processor outage causing data loss.
115
+ - Persist events to the database; processor polls: rejected — DB becomes a queue,
116
+ and queries to drain the backlog conflict with the read workload.
117
+ - Bounded in-process channel: rejected — does not survive process restarts.
118
+
119
+ ## Consequences
120
+ + Ingest latency decoupled from processing latency.
121
+ + Processor can be restarted / scaled independently.
122
+ - New operational surface: queue health, lag monitoring, dead-letter handling.
123
+ - Processor code must be idempotent; existing code is not, requiring refactor.
124
+ - One extra hop adds ~10-30ms to end-to-end latency.
125
+ ```
126
+
127
+ ### A second example: superseding an earlier decision
128
+
129
+ ```markdown
130
+ # ADR-0019: Switch from polling to push for cache invalidation
131
+
132
+ ## Status
133
+ Accepted (2026-05-20). Supersedes ADR-0011.
134
+
135
+ ## Context
136
+ ADR-0011 chose polling because the cache layer did not support push at the time.
137
+ The cache vendor added a push API in their 4.0 release (2026-04). Polling now
138
+ accounts for ~12% of read traffic against the cache and adds 30-second staleness.
139
+
140
+ ## Decision
141
+ Subscribe to the cache push channel; remove the polling loop.
142
+
143
+ ## Alternatives considered
144
+ - Keep polling, reduce interval: rejected — does not solve the staleness floor
145
+ and increases load.
146
+ - Hybrid (push + slow poll as safety net): considered; reserved for ADR-0020
147
+ if observed push reliability drops below SLA.
148
+
149
+ ## Consequences
150
+ + Staleness drops from 30s to <1s p99.
151
+ + Read traffic to cache drops ~12%.
152
+ - New dependency on push channel availability; requires monitoring.
153
+ - Migration window: both polling and push run for one week before polling is
154
+ removed (see migration plan in PR #4421).
155
+ ```
156
+
157
+ And ADR-0011 receives an edit (the only allowed kind of edit on an Accepted ADR) at the top of its Status line:
158
+
159
+ ```markdown
160
+ ## Status
161
+ Accepted (2025-09-04). Superseded by ADR-0019 (2026-05-20).
162
+ ```
163
+
164
+ ## Adoption notes
165
+
166
+ To put this into practice in any codebase:
167
+
168
+ - Create the directory (commonly `docs/adr/`) and add a `README.md` explaining the convention.
169
+ - Copy a template file as `docs/adr/template.md`. New ADRs start by copying it.
170
+ - Add a one-liner to the project guide: "Cross-module decisions get an ADR before merging."
171
+ - Pick a numbering policy and commit to it. Padded four-digit numbers (`ADR-0001`) sort cleanly and survive growth.
172
+ - Optionally automate: a script that creates the next file with pre-filled date and number, or a CI check that PRs touching the design-doc directory must include an ADR when they change the architecture overview.
173
+ - Pair this skill with the spec-driven design skill: a spec answers "what will we build"; an ADR answers "why is the building shaped this way". They are complementary, not redundant.
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: distilled-creator
3
+ version: 0.2.0-distilled
4
+ description: 'Distilled IT-universal skill: skill-creator (score 3.5/5)'
5
+ keywords:
6
+ - creator
7
+ - skill
8
+ rubric_version: 2
9
+ distilled_from:
10
+ - upstream: https://github.com/anthropics/skills.git
11
+ license: Apache-2.0
12
+ commit: unknown
13
+ paths:
14
+ - skill-creator/SKILL.md
15
+ - upstream: https://github.com/anthropics/skills.git
16
+ license: Apache-2.0
17
+ commit: unknown
18
+ paths:
19
+ - slack-gif-creator/SKILL.md
20
+ distilled_at: '2026-05-29T08:13:11.204Z'
21
+ distilled_by: claude-code skill-distiller agent
22
+ it_universal_score: 3.5
23
+ it_universal_dims:
24
+ d1: 1
25
+ d2: 0.5
26
+ d3: 0.5
27
+ d4: 0.5
28
+ d5: 1
29
+ it_universal_rationale: >-
30
+ Core methodology (intent capture, three-level skill loading, parallel with/baseline eval,
31
+ assertion timing) is fully language-agnostic and reusable in any Claude skill ecosystem;
32
+ deductions only for eval-viewer script path and evals.json convention tied to one specific infra.
33
+ ---
34
+
35
+ # Skill Creator: Iterative Design & Evaluation Loop
36
+
37
+ ## When to use
38
+ - You want to create a new Claude skill (markdown + YAML instruction file) from scratch
39
+ - You want to improve an existing skill with test-based evidence
40
+ - A user shows you a workflow in conversation and says "turn this into a skill"
41
+ - You want to optimize a skill's description to fix undertriggering
42
+ - You want to benchmark skill quality with a with/without-skill comparison
43
+
44
+ ## Core idea
45
+ A Claude skill is a markdown file with YAML frontmatter following a three-level loading hierarchy: metadata (always in context), body (loaded on trigger), and bundled resources (on demand). Good skills are built iteratively — capture intent, interview for edge cases, draft SKILL.md, run parallel test cases (with-skill vs. baseline simultaneously), draft quantitative assertions *while runs are in progress*, then evaluate, rewrite, and repeat. Skill descriptions must be slightly "pushy" to overcome Claude's tendency to undertrigger. Communication style should match the user's technical fluency — observe cues before using jargon like "assertion" or "JSON" without explanation.
46
+
47
+ ## Steps
48
+
49
+ ### 1. Capture Intent
50
+ Extract answers from conversation history first, then ask the user to fill gaps:
51
+ 1. What should this skill enable Claude to do?
52
+ 2. When should it trigger? (specific phrases, contexts, situations)
53
+ 3. What is the expected output format?
54
+ 4. Do objectively verifiable outputs exist? → plan test cases with assertions. Subjective outputs (writing style, art) → consider qualitative-only evaluation.
55
+
56
+ ### 2. Interview & Research
57
+ Before writing test prompts, ask about edge cases, input/output formats, example files, success criteria, and dependencies. Research relevant docs or analogous patterns concurrently via subagents when available.
58
+
59
+ ### 3. Write SKILL.md
60
+
61
+ **Frontmatter:**
62
+ ```yaml
63
+ ---
64
+ name: my-skill # kebab-case
65
+ description: |
66
+ What this skill does AND when to use it. Make it slightly pushy:
67
+ "Use this whenever the user mentions X, Y, or Z — even if they
68
+ don't explicitly ask for [skill name]."
69
+ compatibility: # optional — required tools/MCPs
70
+ ---
71
+ ```
72
+
73
+ **Directory anatomy:**
74
+ ```
75
+ skill-name/
76
+ ├── SKILL.md ← required; keep under 500 lines
77
+ └── optional-resources/
78
+ ├── scripts/ ← executable code for deterministic tasks
79
+ ├── references/ ← docs loaded into context on demand
80
+ └── assets/ ← templates, icons, fonts
81
+ ```
82
+
83
+ **Three-level loading:**
84
+
85
+ | Level | Content | When loaded |
86
+ |-------|---------|-------------|
87
+ | Metadata | name + description (~100 words) | Always in context |
88
+ | SKILL.md body | Instructions (<500 lines ideal) | Whenever skill triggers |
89
+ | Bundled resources | Scripts / references (unlimited) | Only when referenced |
90
+
91
+ **Progressive disclosure:** If approaching 500 lines, split into hierarchy levels with clear pointers to where to read next. For reference files >300 lines, add a table of contents. For multi-variant skills (e.g., AWS / GCP / Azure), one file per variant so only the relevant one loads.
92
+
93
+ **Output format pattern:**
94
+ ```markdown
95
+ ## Report structure
96
+ ALWAYS use this exact template:
97
+ # [Title]
98
+ ## Executive summary
99
+ ## Key findings
100
+ ## Recommendations
101
+ ```
102
+
103
+ **Example pattern:**
104
+ ```markdown
105
+ ## Example 1
106
+ Input: Added user authentication with JWT tokens
107
+ Output: feat(auth): implement JWT-based authentication
108
+ ```
109
+
110
+ Use imperative form. Explain *why* things matter rather than stacking MUSTs. Draft once, then read with fresh eyes and revise.
111
+
112
+ **Security:** Skills must not contain malware, exploit code, or misleading content. Behavior must not surprise a user who reads the description.
113
+
114
+ ### 4. Draft Test Cases
115
+ Write 2–3 realistic test prompts (the kind a real user would actually type). Share with the user for confirmation before running.
116
+
117
+ Save to your project's eval file (e.g., `evals/evals.json`):
118
+ ```json
119
+ {
120
+ "skill_name": "example-skill",
121
+ "evals": [
122
+ {
123
+ "id": 1,
124
+ "prompt": "User's actual task prompt",
125
+ "expected_output": "Description of expected result",
126
+ "files": [],
127
+ "assertions": []
128
+ }
129
+ ]
130
+ }
131
+ ```
132
+ Leave `assertions` empty for now — add them in Step 6.
133
+
134
+ ### 5. Spawn All Runs in One Turn (With-Skill AND Baseline)
135
+ For each test case, launch **two subagents simultaneously in the same turn** — never sequentially:
136
+
137
+ - **With-skill run:** provide skill path + prompt → save to `<workspace>/iteration-<N>/<eval-name>/with_skill/outputs/`
138
+ - **Baseline run:**
139
+ - *New skill:* same prompt with no skill → `without_skill/outputs/`
140
+ - *Improving existing skill:* snapshot old version first, point baseline at snapshot → `old_skill/outputs/`
141
+
142
+ Create `eval_metadata.json` per eval directory:
143
+ ```json
144
+ {
145
+ "eval_id": 0,
146
+ "eval_name": "descriptive-name-of-what-is-being-tested",
147
+ "prompt": "The user's task prompt",
148
+ "assertions": []
149
+ }
150
+ ```
151
+
152
+ Name eval directories descriptively, not generically. Workspace layout: `<skill-name>-workspace/iteration-<N>/<eval-name>/`.
153
+
154
+ ### 6. Draft Assertions While Runs Are In Progress
155
+ Use the wait time. Draft quantitative assertions — objectively verifiable checks with descriptive names readable at a glance in any benchmark viewer. For subjective skills, rely on qualitative review; do not force assertions.
156
+
157
+ Update `eval_metadata.json` and the eval file with finalized assertions before runs complete.
158
+
159
+ ### 7. Review Results
160
+ Present with-skill vs. baseline side by side. Use your project's viewer/review script if available. Report both quantitative metrics and qualitative observations to the user.
161
+
162
+ ### 8. Iterate
163
+ Rewrite the skill based on user feedback and quantitative failures. Repeat from Step 5 (or Step 4 if prompts also need changing). After stabilization, expand the test set for larger-scale confidence.
164
+
165
+ ### 9. Optimize the Description (Final)
166
+ Run your project's skill description improver tool (if available) to maximize triggering accuracy. This is the last step, but it's worth doing — a poorly-written description causes good skills to be ignored.
167
+
168
+ ## Anti-patterns
169
+ - Spawning with-skill runs first, then circling back for baselines — always launch everything in one turn
170
+ - Waiting for runs to finish before drafting assertions — use the time productively
171
+ - Forcing quantitative assertions onto subjective skills (style, art quality)
172
+ - Vague or passive descriptions — they must tell Claude *when* to proactively use the skill
173
+ - Exceeding 500 lines in SKILL.md body without adding a hierarchy layer and forward pointers
174
+ - Generic eval directory names (`eval-0`) instead of descriptive ones
175
+ - Assuming `eval_metadata.json` or assertions carry over from a prior iteration without recreating them
176
+
177
+ ## References
178
+ - Upstream: https://github.com/anthropics/skills.git
@@ -0,0 +1,245 @@
1
+ ---
2
+ name: distilled-db-schema-design
3
+ version: 0.1.0-distilled
4
+ description: 'Distilled IT-universal skill: db-schema-design (score 4.5/5)'
5
+ keywords:
6
+ - db
7
+ - schema
8
+ - design
9
+ - database
10
+ - 数据库设计
11
+ - migration
12
+ - 迁移
13
+ - sql
14
+ rubric_version: 2
15
+ distilled_from:
16
+ - upstream: https://github.com/winspan/claude-forge.git
17
+ license: MIT
18
+ commit: 7d96b86c
19
+ paths:
20
+ - official/official-db-schema-design.md
21
+ distilled_at: '2026-05-27T01:55:04.825Z'
22
+ distilled_by: claude-sonnet-4-6
23
+ it_universal_score: 4.5
24
+ it_universal_dims:
25
+ d1: 1
26
+ d2: 1
27
+ d3: 1
28
+ d4: 0.5
29
+ d5: 1
30
+ it_universal_rationale: DB schema + migration patterns, cross-engine.
31
+ ---
32
+
33
+ ## 触发条件
34
+
35
+ - 新建项目需要设计初始数据库结构时
36
+ - 现有 schema 出现性能问题、数据一致性问题或难以扩展时
37
+ - 添加新业务实体或修改已有实体关系时
38
+ - 需要对生产数据库执行结构变更(加列、改类型、删表等)时
39
+ - Code review 中发现 schema 设计存在反模式需要纠正时
40
+
41
+ ---
42
+
43
+ ## 核心原则
44
+
45
+ 1. **先建模,再建表** — ER 图或实体关系草图能暴露设计缺陷,比直接写 DDL 的返工成本低一个数量级。
46
+ 2. **单表单实体** — 每张表只表达一个业务实体;混合多个实体的宽表会导致更新异常和冗余。
47
+ 3. **约束下沉到数据库层** — 外键、唯一约束、非空约束在 DB 层强制,而不仅依赖应用层校验;应用可以崩溃,数据库约束不会。
48
+ 4. **所有变更通过迁移文件管理** — 手动改生产库无法审计、无法回滚;迁移文件是 schema 的版本历史。
49
+ 5. **破坏性变更分阶段执行** — 直接删列或改类型会导致零停机部署失败;分步操作(加→双写→删)保证新旧代码可以同时运行。
50
+
51
+ ---
52
+
53
+ ## 工作流
54
+
55
+ 1. **绘制实体关系图**
56
+ 在动手写 DDL 之前,用任意工具(纸、draw.io、dbdiagram.io 等)画出实体、属性和关系。确认每个实体的边界和基数(1:1 / 1:N / M:N)。
57
+
58
+ 2. **确定命名规范**
59
+ - 表名:`snake_case` 复数形式(`user_profiles`、`order_items`)
60
+ - 主键:统一用 `id`(自增整数或 UUID,按项目需求选择)
61
+ - 时间戳:每张表必须包含 `created_at`、`updated_at`
62
+ - 软删除:用 `deleted_at`(nullable)而非物理删除
63
+
64
+ 3. **编写 DDL / 迁移文件**
65
+ 使用项目已有的迁移工具(Flyway、Liquibase、Alembic、golang-migrate、Prisma Migrate 等)创建迁移文件,不直接在数据库控制台执行 DDL。
66
+
67
+ 4. **添加必要约束**
68
+ - 外键列声明 `FOREIGN KEY` 约束
69
+ - 业务唯一性用 `UNIQUE` 约束而非仅靠应用层
70
+ - 非空字段显式标注 `NOT NULL`
71
+
72
+ 5. **规划索引**
73
+ - 所有外键列建索引(大多数数据库不自动创建)
74
+ - 高频 `WHERE` / `ORDER BY` 列建索引
75
+ - 复合索引按查询的列顺序排列(最左前缀原则)
76
+ - 避免过度索引:写多读少的表索引越多写入越慢
77
+
78
+ 6. **编写 down migration(回滚脚本)**
79
+ 每个 up migration 必须有对应的 down migration,并在非生产环境验证回滚可以干净执行。
80
+
81
+ 7. **处理破坏性变更(三步法)**
82
+ ```
83
+ Step 1 — 加新列(新旧代码均可运行)
84
+ Step 2 — 双写:应用同时写旧列和新列,迁移存量数据
85
+ Step 3 — 确认数据一致后,删旧列(单独一次迁移)
86
+ ```
87
+
88
+ 8. **Review 检查清单**
89
+ 在合并前对照"验证标准"逐项确认,重点关注缺失索引、缺失时间戳、以及是否绕过了迁移文件直接改库。
90
+
91
+ ---
92
+
93
+ ## 反模式
94
+
95
+ 1. **手动修改生产数据库**
96
+ 直接在生产控制台执行 `ALTER TABLE` 或 `DROP COLUMN`,导致变更无法审计、无法在其他环境复现、无法回滚。所有变更必须走迁移文件。
97
+
98
+ 2. **滥用 `ENUM` 类型**
99
+ 数据库原生 `ENUM` 在多数引擎中修改成本极高(MySQL 需要重建表)。用关联表(lookup table)或受约束的字符串列代替,扩展时只需插入新行。
100
+
101
+ 3. **用 JSON 列存结构化数据**
102
+ 把本应规范化的字段塞进 JSON 列,导致无法建索引、无法做外键约束、查询复杂度上升。JSON 列只适合真正不定结构的数据(如用户自定义元数据)。
103
+
104
+ 4. **EAV 模式(Entity-Attribute-Value)**
105
+ 用三列通用表(`entity_id`, `attribute_name`, `value`)模拟动态字段,看似灵活,实则查询性能极差、类型安全丧失、关联查询变成噩梦。优先考虑 JSONB 或宽表,极端情况才考虑文档数据库。
106
+
107
+ 5. **缺失时间戳或软删除字段**
108
+ 没有 `created_at` / `updated_at` 的表在排查问题时缺乏基本的时间线信息;物理删除数据后无法审计或恢复。每张表默认加时间戳,有审计需求的加 `deleted_at`。
109
+
110
+ ---
111
+
112
+ ## 验证标准
113
+
114
+ - [ ] 存在 ER 图或等效的实体关系文档,与实际 DDL 保持同步
115
+ - [ ] 每张表有且仅有一个业务实体,无跨实体的宽表
116
+ - [ ] 所有表包含 `created_at`、`updated_at` 字段
117
+ - [ ] 所有外键列已建索引
118
+ - [ ] 高频查询的过滤列已建索引,且索引顺序与查询一致
119
+ - [ ] 无裸 `ENUM` 类型;动态枚举值使用关联表或字符串
120
+ - [ ] JSON 列仅用于非结构化数据,结构化字段已规范化
121
+ - [ ] 每个 schema 变更对应一个迁移文件,且 down migration 可执行
122
+ - [ ] 破坏性变更(删列、改类型)已拆分为多步迁移
123
+ - [ ] 迁移文件已在非生产环境验证(up 和 down 均通过)
124
+ - [ ] 无直接在数据库控制台执行的未记录变更
125
+
126
+ ---
127
+
128
+ ## 适用范围
129
+
130
+ 本技能适用于任何使用关系型数据库的层次:
131
+
132
+ - **后端服务(backend service)** — 业务逻辑层通过 ORM 或查询构建器与 schema 交互,需遵循命名规范和约束设计
133
+ - **持久化层(persistence layer)** — 迁移文件、连接池配置、事务边界均在此层管理
134
+ - **调度器 / 后台任务(scheduler)** — 批量写入任务需特别关注索引对写入性能的影响
135
+ - **CLI 工具** — 若 CLI 直接操作数据库(如数据导入、初始化脚本),同样需要走迁移流程而非裸 DDL
136
+ - **知识库 / 搜索层(knowledge base)** — 若使用关系型存储作为向量或文档索引的元数据层,schema 设计原则同样适用
137
+
138
+ > // 项目特定,复用时跳过
139
+ > 若项目使用特定的迁移框架(如 Alembic for Python、golang-migrate for Go、Knex for Node.js),迁移文件的目录结构和命名约定以该框架文档为准,本技能描述的原则不变。
140
+
141
+ ---
142
+
143
+ ## 上游对照
144
+
145
+ 本技能从单一上游的 db-schema-design 规范(来源见 frontmatter)提炼,内容已做通用化处理:移除了项目特定的路径引用和工具名称,补充了多语言生态下的迁移工具示例,并将破坏性变更的三步法展开为可操作的工作流步骤。如后续有更多上游(如针对 NoSQL 或时序数据库的 schema 设计规范)合并进来,应在"核心原则"和"反模式"中增加对应的对比说明。
146
+
147
+ ---
148
+
149
+ ## 示例(伪代码)
150
+
151
+ ### 场景:为"订单系统"新增 `discount_codes` 表
152
+
153
+ **Step 1 — 建模**
154
+
155
+ ```
156
+ 实体:DiscountCode
157
+ 属性:id, code(唯一), discount_percent, expires_at, created_at, updated_at, deleted_at
158
+ 关系:Order (N) ——uses——> DiscountCode (1)
159
+ => orders 表加外键列 discount_code_id
160
+ ```
161
+
162
+ **Step 2 — 编写迁移文件(伪代码,适用于任意迁移框架)**
163
+
164
+ ```
165
+ -- UP
166
+ CREATE TABLE discount_codes (
167
+ id BIGINT PRIMARY KEY AUTO_INCREMENT, -- 或 UUID
168
+ code VARCHAR(64) NOT NULL UNIQUE,
169
+ discount_percent NUMERIC(5,2) NOT NULL,
170
+ expires_at TIMESTAMP,
171
+ created_at TIMESTAMP NOT NULL DEFAULT NOW(),
172
+ updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
173
+ deleted_at TIMESTAMP -- 软删除
174
+ );
175
+
176
+ -- orders 表加外键(破坏性变更三步法 Step 1:加新列)
177
+ ALTER TABLE orders
178
+ ADD COLUMN discount_code_id BIGINT,
179
+ ADD CONSTRAINT fk_orders_discount_code
180
+ FOREIGN KEY (discount_code_id)
181
+ REFERENCES discount_codes(id);
182
+
183
+ -- 外键列建索引
184
+ CREATE INDEX idx_orders_discount_code_id ON orders(discount_code_id);
185
+
186
+ -- DOWN
187
+ DROP INDEX idx_orders_discount_code_id ON orders;
188
+ ALTER TABLE orders DROP FOREIGN KEY fk_orders_discount_code;
189
+ ALTER TABLE orders DROP COLUMN discount_code_id;
190
+ DROP TABLE discount_codes;
191
+ ```
192
+
193
+ **Step 3 — 多语言迁移工具调用示意**
194
+
195
+ ```
196
+ # Python (Alembic)
197
+ alembic upgrade head
198
+ alembic downgrade -1
199
+
200
+ # Go (golang-migrate)
201
+ migrate -path ./migrations -database $DATABASE_URL up
202
+ migrate -path ./migrations -database $DATABASE_URL down 1
203
+
204
+ # Node.js (Knex / Prisma)
205
+ npx knex migrate:latest
206
+ npx knex migrate:rollback
207
+
208
+ # Java (Flyway)
209
+ flyway migrate
210
+ flyway undo # 需要 Flyway Teams
211
+ ```
212
+
213
+ **Step 4 — 验证索引覆盖(伪代码)**
214
+
215
+ ```
216
+ -- 检查高频查询是否命中索引
217
+ EXPLAIN SELECT * FROM orders
218
+ WHERE discount_code_id = ?
219
+ AND deleted_at IS NULL;
220
+
221
+ -- 期望输出:type = ref 或 range,key = idx_orders_discount_code_id
222
+ -- 若 type = ALL(全表扫描),说明索引未生效,需检查列类型是否匹配
223
+ ```
224
+
225
+ **Step 5 — 破坏性变更示例:将 `discount_percent` 从 `INT` 改为 `NUMERIC`**
226
+
227
+ ```
228
+ -- 错误做法(直接 ALTER,可能锁表或丢精度)
229
+ ALTER TABLE discount_codes MODIFY discount_percent NUMERIC(5,2);
230
+
231
+ -- 正确做法(三步法)
232
+ -- 迁移 A:加新列
233
+ ALTER TABLE discount_codes ADD COLUMN discount_percent_new NUMERIC(5,2);
234
+
235
+ -- 应用层双写(伪代码)
236
+ function saveDiscount(record):
237
+ record.discount_percent = toInt(value) // 旧列,兼容旧代码
238
+ record.discount_percent_new = toDecimal(value) // 新列
239
+ db.save(record)
240
+
241
+ -- 迁移 B:存量数据回填 + 删旧列(确认双写稳定后执行)
242
+ UPDATE discount_codes SET discount_percent_new = discount_percent::NUMERIC;
243
+ ALTER TABLE discount_codes DROP COLUMN discount_percent;
244
+ ALTER TABLE discount_codes RENAME COLUMN discount_percent_new TO discount_percent;
245
+ ```