@winspan/claude-forge 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +505 -0
  3. package/dist/autopilot/index.d.ts +4 -0
  4. package/dist/autopilot/index.d.ts.map +1 -0
  5. package/dist/autopilot/index.js +4 -0
  6. package/dist/autopilot/index.js.map +1 -0
  7. package/dist/autopilot/intent-engine.d.ts +60 -0
  8. package/dist/autopilot/intent-engine.d.ts.map +1 -0
  9. package/dist/autopilot/intent-engine.js +308 -0
  10. package/dist/autopilot/intent-engine.js.map +1 -0
  11. package/dist/autopilot/knowledge-engine.d.ts +67 -0
  12. package/dist/autopilot/knowledge-engine.d.ts.map +1 -0
  13. package/dist/autopilot/knowledge-engine.js +262 -0
  14. package/dist/autopilot/knowledge-engine.js.map +1 -0
  15. package/dist/autopilot/quality-gate.d.ts +69 -0
  16. package/dist/autopilot/quality-gate.d.ts.map +1 -0
  17. package/dist/autopilot/quality-gate.js +244 -0
  18. package/dist/autopilot/quality-gate.js.map +1 -0
  19. package/dist/autopilot/team-orchestrator.d.ts +16 -0
  20. package/dist/autopilot/team-orchestrator.d.ts.map +1 -0
  21. package/dist/autopilot/team-orchestrator.js +56 -0
  22. package/dist/autopilot/team-orchestrator.js.map +1 -0
  23. package/dist/backup/index.d.ts +16 -0
  24. package/dist/backup/index.d.ts.map +1 -0
  25. package/dist/backup/index.js +169 -0
  26. package/dist/backup/index.js.map +1 -0
  27. package/dist/claudemd/detector.d.ts +54 -0
  28. package/dist/claudemd/detector.d.ts.map +1 -0
  29. package/dist/claudemd/detector.js +510 -0
  30. package/dist/claudemd/detector.js.map +1 -0
  31. package/dist/claudemd/index.d.ts +44 -0
  32. package/dist/claudemd/index.d.ts.map +1 -0
  33. package/dist/claudemd/index.js +193 -0
  34. package/dist/claudemd/index.js.map +1 -0
  35. package/dist/claudemd/modules-config.d.ts +37 -0
  36. package/dist/claudemd/modules-config.d.ts.map +1 -0
  37. package/dist/claudemd/modules-config.js +80 -0
  38. package/dist/claudemd/modules-config.js.map +1 -0
  39. package/dist/claudemd/prompt-injector.d.ts +29 -0
  40. package/dist/claudemd/prompt-injector.d.ts.map +1 -0
  41. package/dist/claudemd/prompt-injector.js +144 -0
  42. package/dist/claudemd/prompt-injector.js.map +1 -0
  43. package/dist/claudemd/prompts.d.ts +16 -0
  44. package/dist/claudemd/prompts.d.ts.map +1 -0
  45. package/dist/claudemd/prompts.js +439 -0
  46. package/dist/claudemd/prompts.js.map +1 -0
  47. package/dist/claudemd/writer.d.ts +27 -0
  48. package/dist/claudemd/writer.d.ts.map +1 -0
  49. package/dist/claudemd/writer.js +91 -0
  50. package/dist/claudemd/writer.js.map +1 -0
  51. package/dist/cli/commands/backup.d.ts +3 -0
  52. package/dist/cli/commands/backup.d.ts.map +1 -0
  53. package/dist/cli/commands/backup.js +63 -0
  54. package/dist/cli/commands/backup.js.map +1 -0
  55. package/dist/cli/commands/claudemd.d.ts +3 -0
  56. package/dist/cli/commands/claudemd.d.ts.map +1 -0
  57. package/dist/cli/commands/claudemd.js +322 -0
  58. package/dist/cli/commands/claudemd.js.map +1 -0
  59. package/dist/cli/commands/config.d.ts +3 -0
  60. package/dist/cli/commands/config.d.ts.map +1 -0
  61. package/dist/cli/commands/config.js +67 -0
  62. package/dist/cli/commands/config.js.map +1 -0
  63. package/dist/cli/commands/console.d.ts +3 -0
  64. package/dist/cli/commands/console.d.ts.map +1 -0
  65. package/dist/cli/commands/console.js +11 -0
  66. package/dist/cli/commands/console.js.map +1 -0
  67. package/dist/cli/commands/convention.d.ts +3 -0
  68. package/dist/cli/commands/convention.d.ts.map +1 -0
  69. package/dist/cli/commands/convention.js +269 -0
  70. package/dist/cli/commands/convention.js.map +1 -0
  71. package/dist/cli/commands/daemon.d.ts +3 -0
  72. package/dist/cli/commands/daemon.d.ts.map +1 -0
  73. package/dist/cli/commands/daemon.js +191 -0
  74. package/dist/cli/commands/daemon.js.map +1 -0
  75. package/dist/cli/commands/distill.d.ts +3 -0
  76. package/dist/cli/commands/distill.d.ts.map +1 -0
  77. package/dist/cli/commands/distill.js +61 -0
  78. package/dist/cli/commands/distill.js.map +1 -0
  79. package/dist/cli/commands/init.d.ts +3 -0
  80. package/dist/cli/commands/init.d.ts.map +1 -0
  81. package/dist/cli/commands/init.js +306 -0
  82. package/dist/cli/commands/init.js.map +1 -0
  83. package/dist/cli/commands/logs.d.ts +3 -0
  84. package/dist/cli/commands/logs.d.ts.map +1 -0
  85. package/dist/cli/commands/logs.js +311 -0
  86. package/dist/cli/commands/logs.js.map +1 -0
  87. package/dist/cli/commands/pattern.d.ts +3 -0
  88. package/dist/cli/commands/pattern.d.ts.map +1 -0
  89. package/dist/cli/commands/pattern.js +118 -0
  90. package/dist/cli/commands/pattern.js.map +1 -0
  91. package/dist/cli/commands/pipeline.d.ts +3 -0
  92. package/dist/cli/commands/pipeline.d.ts.map +1 -0
  93. package/dist/cli/commands/pipeline.js +75 -0
  94. package/dist/cli/commands/pipeline.js.map +1 -0
  95. package/dist/cli/commands/profile.d.ts +3 -0
  96. package/dist/cli/commands/profile.d.ts.map +1 -0
  97. package/dist/cli/commands/profile.js +213 -0
  98. package/dist/cli/commands/profile.js.map +1 -0
  99. package/dist/cli/commands/query.d.ts +3 -0
  100. package/dist/cli/commands/query.d.ts.map +1 -0
  101. package/dist/cli/commands/query.js +115 -0
  102. package/dist/cli/commands/query.js.map +1 -0
  103. package/dist/cli/commands/skill.d.ts +3 -0
  104. package/dist/cli/commands/skill.d.ts.map +1 -0
  105. package/dist/cli/commands/skill.js +466 -0
  106. package/dist/cli/commands/skill.js.map +1 -0
  107. package/dist/cli/index.d.ts +3 -0
  108. package/dist/cli/index.d.ts.map +1 -0
  109. package/dist/cli/index.js +49 -0
  110. package/dist/cli/index.js.map +1 -0
  111. package/dist/cli/interceptor.d.ts +5 -0
  112. package/dist/cli/interceptor.d.ts.map +1 -0
  113. package/dist/cli/interceptor.js +55 -0
  114. package/dist/cli/interceptor.js.map +1 -0
  115. package/dist/cli/tui.d.ts +2 -0
  116. package/dist/cli/tui.d.ts.map +1 -0
  117. package/dist/cli/tui.js +360 -0
  118. package/dist/cli/tui.js.map +1 -0
  119. package/dist/cli/utils/errors.d.ts +17 -0
  120. package/dist/cli/utils/errors.d.ts.map +1 -0
  121. package/dist/cli/utils/errors.js +42 -0
  122. package/dist/cli/utils/errors.js.map +1 -0
  123. package/dist/cli/utils/output.d.ts +23 -0
  124. package/dist/cli/utils/output.d.ts.map +1 -0
  125. package/dist/cli/utils/output.js +69 -0
  126. package/dist/cli/utils/output.js.map +1 -0
  127. package/dist/config/defaults.d.ts +3 -0
  128. package/dist/config/defaults.d.ts.map +1 -0
  129. package/dist/config/defaults.js +50 -0
  130. package/dist/config/defaults.js.map +1 -0
  131. package/dist/config/index.d.ts +26 -0
  132. package/dist/config/index.d.ts.map +1 -0
  133. package/dist/config/index.js +161 -0
  134. package/dist/config/index.js.map +1 -0
  135. package/dist/config/schema.d.ts +59 -0
  136. package/dist/config/schema.d.ts.map +1 -0
  137. package/dist/config/schema.js +86 -0
  138. package/dist/config/schema.js.map +1 -0
  139. package/dist/convention/convention-distiller.d.ts +28 -0
  140. package/dist/convention/convention-distiller.d.ts.map +1 -0
  141. package/dist/convention/convention-distiller.js +172 -0
  142. package/dist/convention/convention-distiller.js.map +1 -0
  143. package/dist/convention/convention-evolver.d.ts +31 -0
  144. package/dist/convention/convention-evolver.d.ts.map +1 -0
  145. package/dist/convention/convention-evolver.js +175 -0
  146. package/dist/convention/convention-evolver.js.map +1 -0
  147. package/dist/convention/convention-loader.d.ts +22 -0
  148. package/dist/convention/convention-loader.d.ts.map +1 -0
  149. package/dist/convention/convention-loader.js +139 -0
  150. package/dist/convention/convention-loader.js.map +1 -0
  151. package/dist/convention/convention-manager.d.ts +46 -0
  152. package/dist/convention/convention-manager.d.ts.map +1 -0
  153. package/dist/convention/convention-manager.js +193 -0
  154. package/dist/convention/convention-manager.js.map +1 -0
  155. package/dist/convention/index.d.ts +6 -0
  156. package/dist/convention/index.d.ts.map +1 -0
  157. package/dist/convention/index.js +5 -0
  158. package/dist/convention/index.js.map +1 -0
  159. package/dist/convention/types.d.ts +90 -0
  160. package/dist/convention/types.d.ts.map +1 -0
  161. package/dist/convention/types.js +13 -0
  162. package/dist/convention/types.js.map +1 -0
  163. package/dist/daemon/engine-registry/init-autopilot.d.ts +12 -0
  164. package/dist/daemon/engine-registry/init-autopilot.d.ts.map +1 -0
  165. package/dist/daemon/engine-registry/init-autopilot.js +20 -0
  166. package/dist/daemon/engine-registry/init-autopilot.js.map +1 -0
  167. package/dist/daemon/engine-registry/init-distill.d.ts +6 -0
  168. package/dist/daemon/engine-registry/init-distill.d.ts.map +1 -0
  169. package/dist/daemon/engine-registry/init-distill.js +25 -0
  170. package/dist/daemon/engine-registry/init-distill.js.map +1 -0
  171. package/dist/daemon/engine-registry/init-orchestration.d.ts +5 -0
  172. package/dist/daemon/engine-registry/init-orchestration.d.ts.map +1 -0
  173. package/dist/daemon/engine-registry/init-orchestration.js +11 -0
  174. package/dist/daemon/engine-registry/init-orchestration.js.map +1 -0
  175. package/dist/daemon/engine-registry/init-pattern-engine.d.ts +9 -0
  176. package/dist/daemon/engine-registry/init-pattern-engine.d.ts.map +1 -0
  177. package/dist/daemon/engine-registry/init-pattern-engine.js +22 -0
  178. package/dist/daemon/engine-registry/init-pattern-engine.js.map +1 -0
  179. package/dist/daemon/engine-registry/init-pipeline.d.ts +5 -0
  180. package/dist/daemon/engine-registry/init-pipeline.d.ts.map +1 -0
  181. package/dist/daemon/engine-registry/init-pipeline.js +12 -0
  182. package/dist/daemon/engine-registry/init-pipeline.js.map +1 -0
  183. package/dist/daemon/engine-registry/init-profile.d.ts +3 -0
  184. package/dist/daemon/engine-registry/init-profile.d.ts.map +1 -0
  185. package/dist/daemon/engine-registry/init-profile.js +28 -0
  186. package/dist/daemon/engine-registry/init-profile.js.map +1 -0
  187. package/dist/daemon/engine-registry/init-resume.d.ts +6 -0
  188. package/dist/daemon/engine-registry/init-resume.d.ts.map +1 -0
  189. package/dist/daemon/engine-registry/init-resume.js +16 -0
  190. package/dist/daemon/engine-registry/init-resume.js.map +1 -0
  191. package/dist/daemon/engine-registry/init-skill-registry.d.ts +10 -0
  192. package/dist/daemon/engine-registry/init-skill-registry.d.ts.map +1 -0
  193. package/dist/daemon/engine-registry/init-skill-registry.js +46 -0
  194. package/dist/daemon/engine-registry/init-skill-registry.js.map +1 -0
  195. package/dist/daemon/engine-registry.d.ts +13 -0
  196. package/dist/daemon/engine-registry.d.ts.map +1 -0
  197. package/dist/daemon/engine-registry.js +45 -0
  198. package/dist/daemon/engine-registry.js.map +1 -0
  199. package/dist/daemon/event-parser.d.ts +5 -0
  200. package/dist/daemon/event-parser.d.ts.map +1 -0
  201. package/dist/daemon/event-parser.js +29 -0
  202. package/dist/daemon/event-parser.js.map +1 -0
  203. package/dist/daemon/handler-context.d.ts +37 -0
  204. package/dist/daemon/handler-context.d.ts.map +1 -0
  205. package/dist/daemon/handler-context.js +2 -0
  206. package/dist/daemon/handler-context.js.map +1 -0
  207. package/dist/daemon/handlers/base-handler.d.ts +14 -0
  208. package/dist/daemon/handlers/base-handler.d.ts.map +1 -0
  209. package/dist/daemon/handlers/base-handler.js +18 -0
  210. package/dist/daemon/handlers/base-handler.js.map +1 -0
  211. package/dist/daemon/handlers/conversational-config-handler.d.ts +24 -0
  212. package/dist/daemon/handlers/conversational-config-handler.d.ts.map +1 -0
  213. package/dist/daemon/handlers/conversational-config-handler.js +175 -0
  214. package/dist/daemon/handlers/conversational-config-handler.js.map +1 -0
  215. package/dist/daemon/handlers/post-tool-use-handler.d.ts +9 -0
  216. package/dist/daemon/handlers/post-tool-use-handler.d.ts.map +1 -0
  217. package/dist/daemon/handlers/post-tool-use-handler.js +82 -0
  218. package/dist/daemon/handlers/post-tool-use-handler.js.map +1 -0
  219. package/dist/daemon/handlers/pre-tool-use-handler.d.ts +11 -0
  220. package/dist/daemon/handlers/pre-tool-use-handler.d.ts.map +1 -0
  221. package/dist/daemon/handlers/pre-tool-use-handler.js +58 -0
  222. package/dist/daemon/handlers/pre-tool-use-handler.js.map +1 -0
  223. package/dist/daemon/handlers/stop-handler.d.ts +11 -0
  224. package/dist/daemon/handlers/stop-handler.d.ts.map +1 -0
  225. package/dist/daemon/handlers/stop-handler.js +112 -0
  226. package/dist/daemon/handlers/stop-handler.js.map +1 -0
  227. package/dist/daemon/handlers/user-prompt-handler.d.ts +72 -0
  228. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -0
  229. package/dist/daemon/handlers/user-prompt-handler.js +374 -0
  230. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -0
  231. package/dist/daemon/index.d.ts +2 -0
  232. package/dist/daemon/index.d.ts.map +1 -0
  233. package/dist/daemon/index.js +284 -0
  234. package/dist/daemon/index.js.map +1 -0
  235. package/dist/daemon/lifecycle.d.ts +9 -0
  236. package/dist/daemon/lifecycle.d.ts.map +1 -0
  237. package/dist/daemon/lifecycle.js +56 -0
  238. package/dist/daemon/lifecycle.js.map +1 -0
  239. package/dist/daemon/server.d.ts +22 -0
  240. package/dist/daemon/server.d.ts.map +1 -0
  241. package/dist/daemon/server.js +139 -0
  242. package/dist/daemon/server.js.map +1 -0
  243. package/dist/distill/index.d.ts +16 -0
  244. package/dist/distill/index.d.ts.map +1 -0
  245. package/dist/distill/index.js +104 -0
  246. package/dist/distill/index.js.map +1 -0
  247. package/dist/distill/prompts.d.ts +6 -0
  248. package/dist/distill/prompts.d.ts.map +1 -0
  249. package/dist/distill/prompts.js +77 -0
  250. package/dist/distill/prompts.js.map +1 -0
  251. package/dist/distill/trigger.d.ts +40 -0
  252. package/dist/distill/trigger.d.ts.map +1 -0
  253. package/dist/distill/trigger.js +127 -0
  254. package/dist/distill/trigger.js.map +1 -0
  255. package/dist/distill/writer.d.ts +15 -0
  256. package/dist/distill/writer.d.ts.map +1 -0
  257. package/dist/distill/writer.js +73 -0
  258. package/dist/distill/writer.js.map +1 -0
  259. package/dist/doc-sync/index.d.ts +21 -0
  260. package/dist/doc-sync/index.d.ts.map +1 -0
  261. package/dist/doc-sync/index.js +190 -0
  262. package/dist/doc-sync/index.js.map +1 -0
  263. package/dist/hooks/check-context-limit.sh +97 -0
  264. package/dist/hooks/hooks/check-context-limit.sh +97 -0
  265. package/dist/hooks/hooks/notification.sh +33 -0
  266. package/dist/hooks/hooks/post-tool-use.sh +49 -0
  267. package/dist/hooks/hooks/pre-tool-use.sh +55 -0
  268. package/dist/hooks/hooks/stop.sh +29 -0
  269. package/dist/hooks/hooks/user-prompt-submit.sh +72 -0
  270. package/dist/hooks/notification.sh +33 -0
  271. package/dist/hooks/post-tool-use.sh +49 -0
  272. package/dist/hooks/pre-tool-use.sh +55 -0
  273. package/dist/hooks/stop.sh +29 -0
  274. package/dist/hooks/user-prompt-submit.sh +72 -0
  275. package/dist/orchestration/index.d.ts +32 -0
  276. package/dist/orchestration/index.d.ts.map +1 -0
  277. package/dist/orchestration/index.js +72 -0
  278. package/dist/orchestration/index.js.map +1 -0
  279. package/dist/orchestration/notifier.d.ts +11 -0
  280. package/dist/orchestration/notifier.d.ts.map +1 -0
  281. package/dist/orchestration/notifier.js +22 -0
  282. package/dist/orchestration/notifier.js.map +1 -0
  283. package/dist/orchestration/policy-engine.d.ts +21 -0
  284. package/dist/orchestration/policy-engine.d.ts.map +1 -0
  285. package/dist/orchestration/policy-engine.js +77 -0
  286. package/dist/orchestration/policy-engine.js.map +1 -0
  287. package/dist/orchestration/tracker.d.ts +45 -0
  288. package/dist/orchestration/tracker.d.ts.map +1 -0
  289. package/dist/orchestration/tracker.js +95 -0
  290. package/dist/orchestration/tracker.js.map +1 -0
  291. package/dist/pattern-engine/execution-tracker.d.ts +45 -0
  292. package/dist/pattern-engine/execution-tracker.d.ts.map +1 -0
  293. package/dist/pattern-engine/execution-tracker.js +132 -0
  294. package/dist/pattern-engine/execution-tracker.js.map +1 -0
  295. package/dist/pattern-engine/index.d.ts +52 -0
  296. package/dist/pattern-engine/index.d.ts.map +1 -0
  297. package/dist/pattern-engine/index.js +104 -0
  298. package/dist/pattern-engine/index.js.map +1 -0
  299. package/dist/pattern-engine/pattern-evolver.d.ts +39 -0
  300. package/dist/pattern-engine/pattern-evolver.d.ts.map +1 -0
  301. package/dist/pattern-engine/pattern-evolver.js +170 -0
  302. package/dist/pattern-engine/pattern-evolver.js.map +1 -0
  303. package/dist/pattern-engine/pattern-executor.d.ts +43 -0
  304. package/dist/pattern-engine/pattern-executor.d.ts.map +1 -0
  305. package/dist/pattern-engine/pattern-executor.js +185 -0
  306. package/dist/pattern-engine/pattern-executor.js.map +1 -0
  307. package/dist/pattern-engine/pattern-loader.d.ts +14 -0
  308. package/dist/pattern-engine/pattern-loader.d.ts.map +1 -0
  309. package/dist/pattern-engine/pattern-loader.js +111 -0
  310. package/dist/pattern-engine/pattern-loader.js.map +1 -0
  311. package/dist/pattern-engine/pattern-router.d.ts +24 -0
  312. package/dist/pattern-engine/pattern-router.d.ts.map +1 -0
  313. package/dist/pattern-engine/pattern-router.js +124 -0
  314. package/dist/pattern-engine/pattern-router.js.map +1 -0
  315. package/dist/pattern-engine/types.d.ts +144 -0
  316. package/dist/pattern-engine/types.d.ts.map +1 -0
  317. package/dist/pattern-engine/types.js +8 -0
  318. package/dist/pattern-engine/types.js.map +1 -0
  319. package/dist/pipeline/analyzer.d.ts +17 -0
  320. package/dist/pipeline/analyzer.d.ts.map +1 -0
  321. package/dist/pipeline/analyzer.js +103 -0
  322. package/dist/pipeline/analyzer.js.map +1 -0
  323. package/dist/pipeline/index.d.ts +68 -0
  324. package/dist/pipeline/index.d.ts.map +1 -0
  325. package/dist/pipeline/index.js +183 -0
  326. package/dist/pipeline/index.js.map +1 -0
  327. package/dist/pipeline/phase-manager.d.ts +32 -0
  328. package/dist/pipeline/phase-manager.d.ts.map +1 -0
  329. package/dist/pipeline/phase-manager.js +188 -0
  330. package/dist/pipeline/phase-manager.js.map +1 -0
  331. package/dist/pipeline/pipeline-options.d.ts +19 -0
  332. package/dist/pipeline/pipeline-options.d.ts.map +1 -0
  333. package/dist/pipeline/pipeline-options.js +136 -0
  334. package/dist/pipeline/pipeline-options.js.map +1 -0
  335. package/dist/pipeline/store.d.ts +32 -0
  336. package/dist/pipeline/store.d.ts.map +1 -0
  337. package/dist/pipeline/store.js +113 -0
  338. package/dist/pipeline/store.js.map +1 -0
  339. package/dist/pipeline/types.d.ts +25 -0
  340. package/dist/pipeline/types.d.ts.map +1 -0
  341. package/dist/pipeline/types.js +16 -0
  342. package/dist/pipeline/types.js.map +1 -0
  343. package/dist/profile/index.d.ts +77 -0
  344. package/dist/profile/index.d.ts.map +1 -0
  345. package/dist/profile/index.js +407 -0
  346. package/dist/profile/index.js.map +1 -0
  347. package/dist/resume/context-gen.d.ts +20 -0
  348. package/dist/resume/context-gen.d.ts.map +1 -0
  349. package/dist/resume/context-gen.js +130 -0
  350. package/dist/resume/context-gen.js.map +1 -0
  351. package/dist/resume/index.d.ts +32 -0
  352. package/dist/resume/index.d.ts.map +1 -0
  353. package/dist/resume/index.js +142 -0
  354. package/dist/resume/index.js.map +1 -0
  355. package/dist/resume/state-machine.d.ts +21 -0
  356. package/dist/resume/state-machine.d.ts.map +1 -0
  357. package/dist/resume/state-machine.js +58 -0
  358. package/dist/resume/state-machine.js.map +1 -0
  359. package/dist/skill-registry/collector.d.ts +75 -0
  360. package/dist/skill-registry/collector.d.ts.map +1 -0
  361. package/dist/skill-registry/collector.js +334 -0
  362. package/dist/skill-registry/collector.js.map +1 -0
  363. package/dist/skill-registry/evolver.d.ts +84 -0
  364. package/dist/skill-registry/evolver.d.ts.map +1 -0
  365. package/dist/skill-registry/evolver.js +585 -0
  366. package/dist/skill-registry/evolver.js.map +1 -0
  367. package/dist/skill-registry/index.d.ts +73 -0
  368. package/dist/skill-registry/index.d.ts.map +1 -0
  369. package/dist/skill-registry/index.js +195 -0
  370. package/dist/skill-registry/index.js.map +1 -0
  371. package/dist/skill-registry/official-sync.d.ts +20 -0
  372. package/dist/skill-registry/official-sync.d.ts.map +1 -0
  373. package/dist/skill-registry/official-sync.js +576 -0
  374. package/dist/skill-registry/official-sync.js.map +1 -0
  375. package/dist/skill-registry/orchestration-config.d.ts +35 -0
  376. package/dist/skill-registry/orchestration-config.d.ts.map +1 -0
  377. package/dist/skill-registry/orchestration-config.js +125 -0
  378. package/dist/skill-registry/orchestration-config.js.map +1 -0
  379. package/dist/skill-registry/orchestrator.d.ts +45 -0
  380. package/dist/skill-registry/orchestrator.d.ts.map +1 -0
  381. package/dist/skill-registry/orchestrator.js +183 -0
  382. package/dist/skill-registry/orchestrator.js.map +1 -0
  383. package/dist/skill-registry/project-learner.d.ts +25 -0
  384. package/dist/skill-registry/project-learner.d.ts.map +1 -0
  385. package/dist/skill-registry/project-learner.js +176 -0
  386. package/dist/skill-registry/project-learner.js.map +1 -0
  387. package/dist/skill-registry/recommender.d.ts +25 -0
  388. package/dist/skill-registry/recommender.d.ts.map +1 -0
  389. package/dist/skill-registry/recommender.js +91 -0
  390. package/dist/skill-registry/recommender.js.map +1 -0
  391. package/dist/skill-registry/registry.d.ts +49 -0
  392. package/dist/skill-registry/registry.d.ts.map +1 -0
  393. package/dist/skill-registry/registry.js +160 -0
  394. package/dist/skill-registry/registry.js.map +1 -0
  395. package/dist/skill-registry/scanner.d.ts +36 -0
  396. package/dist/skill-registry/scanner.d.ts.map +1 -0
  397. package/dist/skill-registry/scanner.js +122 -0
  398. package/dist/skill-registry/scanner.js.map +1 -0
  399. package/dist/skill-registry/skills-config.d.ts +29 -0
  400. package/dist/skill-registry/skills-config.d.ts.map +1 -0
  401. package/dist/skill-registry/skills-config.js +86 -0
  402. package/dist/skill-registry/skills-config.js.map +1 -0
  403. package/dist/storage/index.d.ts +31 -0
  404. package/dist/storage/index.d.ts.map +1 -0
  405. package/dist/storage/index.js +2 -0
  406. package/dist/storage/index.js.map +1 -0
  407. package/dist/storage/sqlite.d.ts +58 -0
  408. package/dist/storage/sqlite.d.ts.map +1 -0
  409. package/dist/storage/sqlite.js +375 -0
  410. package/dist/storage/sqlite.js.map +1 -0
  411. package/dist/tests/claude-api.test.d.ts +2 -0
  412. package/dist/tests/claude-api.test.d.ts.map +1 -0
  413. package/dist/tests/claude-api.test.js +96 -0
  414. package/dist/tests/claude-api.test.js.map +1 -0
  415. package/dist/tests/conversational-config-handler.test.d.ts +2 -0
  416. package/dist/tests/conversational-config-handler.test.d.ts.map +1 -0
  417. package/dist/tests/conversational-config-handler.test.js +107 -0
  418. package/dist/tests/conversational-config-handler.test.js.map +1 -0
  419. package/dist/tests/doc-sync.test.d.ts +2 -0
  420. package/dist/tests/doc-sync.test.d.ts.map +1 -0
  421. package/dist/tests/doc-sync.test.js +148 -0
  422. package/dist/tests/doc-sync.test.js.map +1 -0
  423. package/dist/tests/orchestration-config.test.d.ts +2 -0
  424. package/dist/tests/orchestration-config.test.d.ts.map +1 -0
  425. package/dist/tests/orchestration-config.test.js +122 -0
  426. package/dist/tests/orchestration-config.test.js.map +1 -0
  427. package/dist/tests/pipeline-options.test.d.ts +2 -0
  428. package/dist/tests/pipeline-options.test.d.ts.map +1 -0
  429. package/dist/tests/pipeline-options.test.js +68 -0
  430. package/dist/tests/pipeline-options.test.js.map +1 -0
  431. package/dist/tests/resume-context-gen.test.d.ts +2 -0
  432. package/dist/tests/resume-context-gen.test.d.ts.map +1 -0
  433. package/dist/tests/resume-context-gen.test.js +93 -0
  434. package/dist/tests/resume-context-gen.test.js.map +1 -0
  435. package/dist/tests/sqlite.test.d.ts +2 -0
  436. package/dist/tests/sqlite.test.d.ts.map +1 -0
  437. package/dist/tests/sqlite.test.js +154 -0
  438. package/dist/tests/sqlite.test.js.map +1 -0
  439. package/dist/tests/tracker.test.d.ts +2 -0
  440. package/dist/tests/tracker.test.d.ts.map +1 -0
  441. package/dist/tests/tracker.test.js +75 -0
  442. package/dist/tests/tracker.test.js.map +1 -0
  443. package/dist/tests/tui.test.d.ts +2 -0
  444. package/dist/tests/tui.test.d.ts.map +1 -0
  445. package/dist/tests/tui.test.js +39 -0
  446. package/dist/tests/tui.test.js.map +1 -0
  447. package/dist/tests/user-prompt-handler.test.d.ts +2 -0
  448. package/dist/tests/user-prompt-handler.test.d.ts.map +1 -0
  449. package/dist/tests/user-prompt-handler.test.js +182 -0
  450. package/dist/tests/user-prompt-handler.test.js.map +1 -0
  451. package/dist/tui/index.d.ts +2 -0
  452. package/dist/tui/index.d.ts.map +1 -0
  453. package/dist/tui/index.js +486 -0
  454. package/dist/tui/index.js.map +1 -0
  455. package/dist/types/event.d.ts +24 -0
  456. package/dist/types/event.d.ts.map +1 -0
  457. package/dist/types/event.js +2 -0
  458. package/dist/types/event.js.map +1 -0
  459. package/dist/types/index.d.ts +3 -0
  460. package/dist/types/index.d.ts.map +1 -0
  461. package/dist/types/index.js +2 -0
  462. package/dist/types/index.js.map +1 -0
  463. package/dist/types/session.d.ts +11 -0
  464. package/dist/types/session.d.ts.map +1 -0
  465. package/dist/types/session.js +2 -0
  466. package/dist/types/session.js.map +1 -0
  467. package/dist/utils/claude-api.d.ts +49 -0
  468. package/dist/utils/claude-api.d.ts.map +1 -0
  469. package/dist/utils/claude-api.js +233 -0
  470. package/dist/utils/claude-api.js.map +1 -0
  471. package/dist/utils/formatter.d.ts +57 -0
  472. package/dist/utils/formatter.d.ts.map +1 -0
  473. package/dist/utils/formatter.js +109 -0
  474. package/dist/utils/formatter.js.map +1 -0
  475. package/dist/utils/logger.d.ts +25 -0
  476. package/dist/utils/logger.d.ts.map +1 -0
  477. package/dist/utils/logger.js +136 -0
  478. package/dist/utils/logger.js.map +1 -0
  479. package/dist/utils/mutex-lock.d.ts +23 -0
  480. package/dist/utils/mutex-lock.d.ts.map +1 -0
  481. package/dist/utils/mutex-lock.js +42 -0
  482. package/dist/utils/mutex-lock.js.map +1 -0
  483. package/dist/utils/truncate.d.ts +30 -0
  484. package/dist/utils/truncate.d.ts.map +1 -0
  485. package/dist/utils/truncate.js +64 -0
  486. package/dist/utils/truncate.js.map +1 -0
  487. package/package.json +63 -0
@@ -0,0 +1,576 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ import { SkillsConfigManager } from './skills-config.js';
5
+ import { OrchestrationConfigManager } from './orchestration-config.js';
6
+ import { logger } from '../utils/logger.js';
7
+ const SKILLS_DIR = path.join(os.homedir(), '.claude', 'skills');
8
+ /**
9
+ * 官方技能默认编排关键词映射
10
+ * sync() 时写入 orchestration-config.json(已存在则跳过)
11
+ */
12
+ const OFFICIAL_ORCHESTRATION_MAPPINGS = [
13
+ { skill: 'official-tdd', keywords: ['tdd', 'test-driven', '测试驱动'] },
14
+ { skill: 'official-debug', keywords: ['debug', '调试', 'bug', '修复', 'fix', 'hotfix'] },
15
+ { skill: 'official-refactor', keywords: ['refactor', '重构', 'cleanup', 'reorganize', 'restructure'] },
16
+ { skill: 'official-pr-review', keywords: ['review', '审查', 'pr review', 'code review'] },
17
+ { skill: 'official-harness-engineering', keywords: ['harness', 'legacy', '遗留代码', '特征测试', 'characterization'] },
18
+ { skill: 'official-spec-driven-design', keywords: ['spec', 'sdd', 'spec-driven', '规格', '需求文档', 'requirements'] },
19
+ { skill: 'official-architecture-decision', keywords: ['adr', 'architecture decision', '架构决策', '技术选型'] },
20
+ { skill: 'official-api-design', keywords: ['api design', 'api 设计', 'restful', 'openapi', '接口设计'] },
21
+ { skill: 'official-db-schema-design', keywords: ['schema', 'database', '数据库设计', 'migration', '迁移', 'sql'] },
22
+ { skill: 'official-performance-optimization', keywords: ['performance', '性能', 'optimize', '优化', 'profiling', '瓶颈'] },
23
+ { skill: 'official-security-hardening', keywords: ['security', '安全', 'owasp', 'hardening', '加固', 'vulnerability', '漏洞'] },
24
+ { skill: 'official-release-checklist', keywords: ['release', 'deploy', '发布', '上线', 'checklist', '部署'] },
25
+ { skill: 'official-doc-driven', keywords: ['doc-driven', 'documentation', '文档驱动', '写文档', 'readme'] },
26
+ ];
27
+ /**
28
+ * 内置官方技能 — 覆盖全栈超级个体完整开发流程
29
+ * 版本号变更时守护进程启动自动更新
30
+ */
31
+ const OFFICIAL_SKILLS = [
32
+ {
33
+ name: 'official-harness-engineering',
34
+ version: '1.0.0',
35
+ description: 'Harness Engineering:为遗留代码建立测试防护网再安全修改',
36
+ tags: ['harness', 'testing', 'legacy', 'refactor'],
37
+ content: `---
38
+ name: official-harness-engineering
39
+ version: 1.0.0
40
+ description: "Harness Engineering:为遗留代码建立测试防护网再安全修改"
41
+ tags: [harness, testing, legacy, refactor]
42
+ ---
43
+
44
+ # Harness Engineering
45
+
46
+ 在修改任何现有代码前,先建立测试防护网(harness),确保改动不破坏现有行为。
47
+
48
+ ## 与 TDD 的区别
49
+ - TDD 用于新功能开发(先测试后实现)
50
+ - Harness Engineering 用于改动现有代码(先理解后保护再修改)
51
+
52
+ ## 步骤
53
+
54
+ 1. **理解现有行为** — 阅读代码,推断当前实际行为
55
+ - 找到所有入口点和输出点
56
+ - 记录边界条件和隐含假设
57
+
58
+ 2. **建立 Characterization Tests(特征测试)**
59
+ - 测试描述"代码现在做什么",不是"应该做什么"
60
+ - 覆盖所有主要代码路径
61
+ - 全部通过后才能继续
62
+
63
+ 3. **最小化修改** — 在安全网保护下进行改动
64
+ - 每次只改一处,改完立即运行 harness
65
+ - 测试失败 = 立即回滚,不要积累未验证的变更
66
+
67
+ 4. **逐步替换** — 新行为用新测试覆盖,旧 harness 逐步退役
68
+
69
+ ## 适用场景
70
+ - 修改没有测试的遗留代码
71
+ - 重构高风险核心模块
72
+ - 接手不熟悉的代码库
73
+ `,
74
+ },
75
+ {
76
+ name: 'official-spec-driven-design',
77
+ version: '1.0.0',
78
+ description: 'SDD:先写规格文档再写代码,需求驱动实现',
79
+ tags: ['sdd', 'spec', 'design', 'requirements'],
80
+ content: `---
81
+ name: official-spec-driven-design
82
+ version: 1.0.0
83
+ description: "SDD:先写规格文档再写代码,需求驱动实现"
84
+ tags: [sdd, spec, design, requirements]
85
+ ---
86
+
87
+ # Spec-Driven Design(规格驱动开发)
88
+
89
+ 在写任何代码之前,先把规格写清楚。规格是代码的合同。
90
+
91
+ ## 步骤
92
+
93
+ 1. **写 SPEC.md**,包含:
94
+ - 功能目标(一句话)
95
+ - 输入/输出定义(含类型和边界)
96
+ - 不做什么(明确排除项)
97
+ - 验收标准(可测试的条件列表)
98
+
99
+ 2. **评审规格** — 在写代码前确认规格无歧义
100
+ - 每条验收标准都能写成测试吗?
101
+ - 边界条件是否覆盖?
102
+
103
+ 3. **按规格实现** — 代码只做规格里写的事
104
+ - 遇到规格未覆盖的情况,先更新规格再写代码
105
+
106
+ 4. **验收** — 逐条对照验收标准,全部通过才算完成
107
+
108
+ ## 规则
109
+ - 规格变更必须先于代码变更
110
+ - 实现不得超出规格范围(避免过度设计)
111
+ `,
112
+ },
113
+ {
114
+ name: 'official-architecture-decision',
115
+ version: '1.0.0',
116
+ description: '架构决策记录(ADR):结构化记录重要技术决策',
117
+ tags: ['architecture', 'adr', 'design', 'decision'],
118
+ content: `---
119
+ name: official-architecture-decision
120
+ version: 1.0.0
121
+ description: "架构决策记录(ADR):结构化记录重要技术决策"
122
+ tags: [architecture, adr, design, decision]
123
+ ---
124
+
125
+ # 架构决策记录(ADR)
126
+
127
+ 每个重要的技术决策都应该留下可追溯的记录。
128
+
129
+ ## 何时写 ADR
130
+ - 技术选型(框架、数据库、消息队列)
131
+ - 系统边界划分
132
+ - 接口协议选择
133
+ - 影响超过 1 个模块的设计决策
134
+
135
+ ## ADR 模板
136
+
137
+ \`\`\`markdown
138
+ # ADR-{编号}: {标题}
139
+
140
+ ## 状态
141
+ Proposed / Accepted / Deprecated
142
+
143
+ ## 背景
144
+ 为什么需要做这个决策?当前面临什么问题?
145
+
146
+ ## 决策
147
+ 我们选择做什么?
148
+
149
+ ## 备选方案
150
+ 考虑过哪些其他方案?为什么没选?
151
+
152
+ ## 后果
153
+ 这个决策带来什么好处?有什么代价或风险?
154
+ \`\`\`
155
+
156
+ ## 规则
157
+ - ADR 一旦 Accepted 不得修改,只能新建 ADR 来废弃或替代
158
+ - 存放在项目 \`docs/adr/\` 目录
159
+ `,
160
+ },
161
+ {
162
+ name: 'official-api-design',
163
+ version: '1.0.0',
164
+ description: 'API 设计规范:RESTful/RPC 接口设计最佳实践',
165
+ tags: ['api', 'rest', 'design', 'backend'],
166
+ content: `---
167
+ name: official-api-design
168
+ version: 1.0.0
169
+ description: "API 设计规范:RESTful/RPC 接口设计最佳实践"
170
+ tags: [api, rest, design, backend]
171
+ ---
172
+
173
+ # API 设计规范
174
+
175
+ ## 设计顺序
176
+ 1. 先定义资源和操作(不要先想 URL)
177
+ 2. 写 OpenAPI/Protobuf 规格
178
+ 3. 用 mock 验证调用方能用
179
+ 4. 再实现
180
+
181
+ ## RESTful 规范
182
+ - URL 用名词复数:\`/users\`,不用动词 \`/getUser\`
183
+ - 用 HTTP 动词表达操作:GET/POST/PUT/PATCH/DELETE
184
+ - 错误返回统一结构:\`{ code, message, data }\`
185
+ - 分页用 \`?page=1&size=20\`,返回 \`total\`
186
+
187
+ ## 版本管理
188
+ - URL 版本:\`/api/v1/users\`(推荐)
189
+ - 破坏性变更必须升版本
190
+
191
+ ## 通用原则
192
+ - 幂等性:PUT/DELETE 必须幂等
193
+ - 认证统一走 Authorization header
194
+ - 敏感字段不出现在 URL(用 body)
195
+ - 响应时间 P99 < 200ms,超时统一 30s
196
+ `,
197
+ },
198
+ {
199
+ name: 'official-db-schema-design',
200
+ version: '1.0.0',
201
+ description: '数据库 Schema 设计:建模、迁移和演进最佳实践',
202
+ tags: ['database', 'schema', 'sql', 'migration'],
203
+ content: `---
204
+ name: official-db-schema-design
205
+ version: 1.0.0
206
+ description: "数据库 Schema 设计:建模、迁移和演进最佳实践"
207
+ tags: [database, schema, sql, migration]
208
+ ---
209
+
210
+ # 数据库 Schema 设计
211
+
212
+ ## 设计原则
213
+ - 先建模(ER 图),再建表
214
+ - 每张表只表达一个实体
215
+ - 外键约束在数据库层面强制
216
+
217
+ ## 命名规范
218
+ - 表名:snake_case 复数(\`user_profiles\`)
219
+ - 主键:\`id\`(自增或 UUID)
220
+ - 时间戳:\`created_at\`、\`updated_at\`(每张表必有)
221
+ - 软删除:\`deleted_at\` nullable
222
+
223
+ ## 索引策略
224
+ - 外键列必须建索引
225
+ - 高频查询的 WHERE 条件列建索引
226
+ - 复合索引遵循最左前缀原则
227
+
228
+ ## 迁移规范
229
+ - 每次变更写迁移文件,不手动改生产库
230
+ - 迁移必须可回滚(写 down migration)
231
+ - 破坏性变更分三步:加新列 → 双写 → 删旧列
232
+
233
+ ## 常见陷阱
234
+ - 不用 \`ENUM\` 类型,用关联表或字符串
235
+ - JSON 列只存真正非结构化数据
236
+ - 避免 EAV 模式(Entity-Attribute-Value)
237
+ `,
238
+ },
239
+ {
240
+ name: 'official-pr-review',
241
+ version: '1.2.0',
242
+ description: '结构化 PR 审查:覆盖正确性、安全性和可维护性',
243
+ tags: ['review', 'pr', 'quality'],
244
+ content: `---
245
+ name: official-pr-review
246
+ version: 1.2.0
247
+ description: "结构化 PR 审查:覆盖正确性、安全性和可维护性"
248
+ tags: [review, pr, quality]
249
+ ---
250
+
251
+ # Pull Request 审查
252
+
253
+ ## 审查顺序(重要性从高到低)
254
+
255
+ ### 1. 正确性
256
+ - [ ] 逻辑在所有边界条件下正确
257
+ - [ ] 错误处理恰当,异常不被静默吞掉
258
+ - [ ] 无竞态条件或并发问题
259
+
260
+ ### 2. 安全性
261
+ - [ ] 无注入漏洞(SQL、命令、XSS、SSRF)
262
+ - [ ] 敏感数据未被日志记录或暴露
263
+ - [ ] 权限检查在正确的层级
264
+
265
+ ### 3. 性能
266
+ - [ ] 无 N+1 查询
267
+ - [ ] 大数据量场景有分页或流式处理
268
+
269
+ ### 4. 可维护性
270
+ - [ ] 代码可读,命名自文档化
271
+ - [ ] 单一职责,函数不超过 40 行
272
+
273
+ ### 5. 测试
274
+ - [ ] 新功能有对应测试
275
+ - [ ] 边界条件有测试覆盖
276
+
277
+ ## 输出格式
278
+ **[BLOCKER|MAJOR|MINOR]** \`文件:行号\` — 问题 → 建议
279
+ `,
280
+ },
281
+ {
282
+ name: 'official-debug',
283
+ version: '1.2.0',
284
+ description: '系统化调试工作流:复现、隔离、修复、验证',
285
+ tags: ['debug', 'troubleshooting'],
286
+ content: `---
287
+ name: official-debug
288
+ version: 1.2.0
289
+ description: "系统化调试工作流:复现、隔离、修复、验证"
290
+ tags: [debug, troubleshooting]
291
+ ---
292
+
293
+ # 系统化调试
294
+
295
+ ## 步骤
296
+
297
+ 1. **复现** — 确认 bug 可稳定复现
298
+ - 记录:环境、输入、期望行为、实际行为
299
+
300
+ 2. **隔离** — 缩小根因范围
301
+ - 二分法排查代码路径
302
+ - 检查近期变更(\`git bisect\`)
303
+ - 加日志,不要靠猜
304
+
305
+ 3. **假设** — 清晰陈述假设再验证,每次只验证一个
306
+
307
+ 4. **修复** — 最小化修复,解决根本原因
308
+ - 修复前先写一个能复现 bug 的测试
309
+
310
+ 5. **验证** — 原始 bug 消失 + 无回归 + 测试通过
311
+ `,
312
+ },
313
+ {
314
+ name: 'official-performance-optimization',
315
+ version: '1.0.0',
316
+ description: '性能优化工作流:先度量再优化,数据驱动',
317
+ tags: ['performance', 'optimization', 'profiling'],
318
+ content: `---
319
+ name: official-performance-optimization
320
+ version: 1.0.0
321
+ description: "性能优化工作流:先度量再优化,数据驱动"
322
+ tags: [performance, optimization, profiling]
323
+ ---
324
+
325
+ # 性能优化
326
+
327
+ ## 黄金法则
328
+ **永远先度量,再优化。** 没有数据的优化是猜测。
329
+
330
+ ## 步骤
331
+
332
+ 1. **建立基线** — 用真实数据测量当前性能
333
+ - 定义指标:延迟(P50/P95/P99)、吞吐量、内存
334
+
335
+ 2. **找瓶颈** — Profile,不要猜
336
+ - CPU:火焰图;内存:heap 分析;I/O:慢查询日志
337
+
338
+ 3. **优化** — 从收益最大的瓶颈开始
339
+ - 算法复杂度 > 减少 I/O > 缓存 > 并发
340
+
341
+ 4. **验证** — 对比基线,功能测试全部通过
342
+
343
+ ## 常见优化方向(按收益排序)
344
+ - 数据库:索引、消除 N+1、连接池
345
+ - 缓存:热点数据、计算结果
346
+ - 异步化:I/O 密集型操作
347
+ - 批处理:替代逐条处理
348
+ `,
349
+ },
350
+ {
351
+ name: 'official-security-hardening',
352
+ version: '1.0.0',
353
+ description: '安全加固清单:覆盖 OWASP Top 10 和常见安全实践',
354
+ tags: ['security', 'owasp', 'hardening'],
355
+ content: `---
356
+ name: official-security-hardening
357
+ version: 1.0.0
358
+ description: "安全加固清单:覆盖 OWASP Top 10 和常见安全实践"
359
+ tags: [security, owasp, hardening]
360
+ ---
361
+
362
+ # 安全加固
363
+
364
+ ## 输入验证
365
+ - 所有外部输入在边界处验证(类型、长度、格式)
366
+ - 参数化查询,禁止字符串拼接 SQL
367
+ - 文件上传:验证类型、大小、存储路径隔离
368
+
369
+ ## 认证与授权
370
+ - 密码:bcrypt/argon2 哈希,禁止 MD5/SHA1
371
+ - Token:短有效期 + refresh token 机制
372
+ - 每个接口显式检查权限,不依赖前端隐藏
373
+
374
+ ## 数据保护
375
+ - 敏感字段(密码、密钥、PII)不写日志
376
+ - HTTPS only,HSTS header
377
+ - 密钥走环境变量,不进代码库
378
+
379
+ ## 依赖安全
380
+ - 定期运行 \`npm audit\` / \`pip audit\` / \`govulncheck\`
381
+ - lockfile 提交到仓库
382
+
383
+ ## 常见漏洞速查
384
+ - XSS:输出时转义,CSP header
385
+ - CSRF:SameSite cookie + CSRF token
386
+ - SSRF:白名单限制外部请求目标
387
+ `,
388
+ },
389
+ {
390
+ name: 'official-release-checklist',
391
+ version: '1.0.0',
392
+ description: '发布上线清单:从代码冻结到生产验证的完整流程',
393
+ tags: ['release', 'deploy', 'checklist', 'devops'],
394
+ content: `---
395
+ name: official-release-checklist
396
+ version: 1.0.0
397
+ description: "发布上线清单:从代码冻结到生产验证的完整流程"
398
+ tags: [release, deploy, checklist, devops]
399
+ ---
400
+
401
+ # 发布上线清单
402
+
403
+ ## 发布前
404
+ - [ ] 所有测试通过(单元、集成、E2E)
405
+ - [ ] 代码已 review 并合并到主干
406
+ - [ ] 数据库迁移脚本已准备,可回滚
407
+ - [ ] 配置变更已确认(环境变量、feature flag)
408
+ - [ ] 监控告警已配置
409
+ - [ ] 回滚方案已明确
410
+
411
+ ## 发布中
412
+ - [ ] 灰度/金丝雀发布(先放 5% 流量)
413
+ - [ ] 观察关键指标 5 分钟:错误率、P99 延迟
414
+
415
+ ## 发布后
416
+ - [ ] 生产环境冒烟测试
417
+ - [ ] 监控观察 30 分钟
418
+ - [ ] 通知相关方
419
+
420
+ ## 回滚触发条件
421
+ - 错误率上升 > 1%
422
+ - P99 延迟上升 > 50%
423
+ - 出现 CRITICAL 级别日志
424
+ `,
425
+ },
426
+ {
427
+ name: 'official-doc-driven',
428
+ version: '1.0.0',
429
+ description: '文档驱动开发:先写文档再写代码,保持文档与代码同步',
430
+ tags: ['documentation', 'doc-driven', 'readme'],
431
+ content: `---
432
+ name: official-doc-driven
433
+ version: 1.0.0
434
+ description: "文档驱动开发:先写文档再写代码,保持文档与代码同步"
435
+ tags: [documentation, doc-driven, readme]
436
+ ---
437
+
438
+ # 文档驱动开发
439
+
440
+ ## 核心理念
441
+ 如果你无法清晰地写出来,说明你还没想清楚。先写文档,逼自己想清楚再动手。
442
+
443
+ ## 步骤
444
+
445
+ 1. **写 README 先于代码**
446
+ - 描述模块是什么、解决什么问题
447
+ - 写出使用示例(即使 API 还不存在)
448
+ - 示例写起来别扭 = 设计有问题
449
+
450
+ 2. **接口文档先于实现**
451
+ - 函数签名 + JSDoc/注释先写
452
+ - 参数、返回值、异常都要说明
453
+
454
+ 3. **保持同步**
455
+ - 代码变更时同步更新文档
456
+ - PR 模板加入"文档是否已更新"检查项
457
+
458
+ ## 文档层级
459
+ - README:模块概述 + 快速开始
460
+ - ARCHITECTURE.md:系统设计和关键决策
461
+ - 代码注释:解释"为什么",不解释"是什么"
462
+ `,
463
+ },
464
+ ];
465
+ export class OfficialSkillSync {
466
+ registry;
467
+ constructor(registry) {
468
+ this.registry = registry;
469
+ }
470
+ sync() {
471
+ const report = { added: [], skipped: [], updated: [] };
472
+ // 合并内置技能 + 用户自定义技能
473
+ const userSkills = new SkillsConfigManager().listSkills();
474
+ const allEntries = [
475
+ ...OFFICIAL_SKILLS,
476
+ ...userSkills.map(s => ({ ...s, source: 'user' })),
477
+ ];
478
+ for (const entry of allEntries) {
479
+ const existing = this.registry.get(entry.name);
480
+ if (existing && (existing.source === 'official' || existing.source === 'user')) {
481
+ // 磁盘版本 >= 配置版本:已是最新或已被蒸馏升级,跳过
482
+ if (this.versionGte(existing.version, entry.version)) {
483
+ report.skipped.push(entry.name);
484
+ continue;
485
+ }
486
+ // 磁盘版本 < 代码版本:代码有新版本,覆盖更新
487
+ this.installSkill(entry);
488
+ this.registry.register(this.toSkillMeta(entry));
489
+ report.updated.push(entry.name);
490
+ logger.info(`[官方同步] 已更新:${entry.name} → v${entry.version}`);
491
+ }
492
+ else if (!existing) {
493
+ this.installSkill(entry);
494
+ this.registry.register(this.toSkillMeta(entry));
495
+ report.added.push(entry.name);
496
+ logger.info(`[官方同步] 已添加:${entry.name}`);
497
+ }
498
+ else {
499
+ report.skipped.push(entry.name);
500
+ }
501
+ }
502
+ if (report.added.length > 0 || report.updated.length > 0) {
503
+ logger.info(`[官方同步] 同步完成:+${report.added.length} 更新=${report.updated.length} 跳过=${report.skipped.length}`);
504
+ }
505
+ // 初始化官方技能的默认编排映射(已存在则跳过,不覆盖用户修改)
506
+ new OrchestrationConfigManager().initOfficialMappings(OFFICIAL_ORCHESTRATION_MAPPINGS);
507
+ return report;
508
+ }
509
+ /** 版本号比较:a >= b */
510
+ versionGte(a, b) {
511
+ const pa = a.split('.').map(Number);
512
+ const pb = b.split('.').map(Number);
513
+ for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
514
+ const na = pa[i] ?? 0;
515
+ const nb = pb[i] ?? 0;
516
+ if (na > nb)
517
+ return true;
518
+ if (na < nb)
519
+ return false;
520
+ }
521
+ return true; // 相等也算 >=
522
+ }
523
+ /** 获取所有官方技能名称(供 SkillEvolver 识别) */
524
+ getOfficialNames() {
525
+ return OFFICIAL_SKILLS.map(s => s.name);
526
+ }
527
+ /** 更新单个官方技能内容(由 SkillEvolver 进化时调用) */
528
+ updateSkillContent(name, newContent, newVersion) {
529
+ const existing = this.registry.get(name);
530
+ if (!existing)
531
+ return false;
532
+ const skillDir = path.join(SKILLS_DIR, name);
533
+ if (!fs.existsSync(skillDir))
534
+ return false;
535
+ // 写入前校验:必须是合法的 SKILL.md(以 --- 开头且包含 name: 字段)
536
+ const trimmed = newContent.trim();
537
+ if (!trimmed.startsWith('---') || !trimmed.includes('name:')) {
538
+ logger.warn(`[官方同步] 拒绝无效内容:${name} 不以 frontmatter 开头`);
539
+ return false;
540
+ }
541
+ const skillMdPath = path.join(skillDir, 'SKILL.md');
542
+ if (fs.existsSync(skillMdPath)) {
543
+ fs.copyFileSync(skillMdPath, skillMdPath + '.bak');
544
+ }
545
+ fs.writeFileSync(skillMdPath, trimmed + '\n', 'utf-8');
546
+ fs.writeFileSync(path.join(skillDir, '.forge-meta.json'), JSON.stringify({ name, source: 'official', version: newVersion, updatedAt: new Date().toISOString() }, null, 2), 'utf-8');
547
+ this.registry.register({ ...existing, version: newVersion });
548
+ logger.info(`[官方同步] 内容已进化:${name} → v${newVersion}`);
549
+ return true;
550
+ }
551
+ installSkill(entry) {
552
+ const skillDir = path.join(SKILLS_DIR, entry.name);
553
+ if (!fs.existsSync(skillDir)) {
554
+ fs.mkdirSync(skillDir, { recursive: true });
555
+ }
556
+ fs.writeFileSync(path.join(skillDir, 'SKILL.md'), entry.content, 'utf-8');
557
+ fs.writeFileSync(path.join(skillDir, '.forge-meta.json'), JSON.stringify({
558
+ name: entry.name,
559
+ source: 'official',
560
+ version: entry.version,
561
+ installedAt: new Date().toISOString(),
562
+ }, null, 2), 'utf-8');
563
+ }
564
+ toSkillMeta(entry) {
565
+ return {
566
+ name: entry.name,
567
+ version: entry.version,
568
+ description: entry.description,
569
+ source: 'official',
570
+ path: path.join(SKILLS_DIR, entry.name),
571
+ tags: entry.tags,
572
+ stats: { callCount: 0, lastUsed: null, successRate: 1, userFeedback: { positive: 0, negative: 0 } },
573
+ };
574
+ }
575
+ }
576
+ //# sourceMappingURL=official-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"official-sync.js","sourceRoot":"","sources":["../../src/skill-registry/official-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export interface OrchestrationMapping {
2
+ skill: string;
3
+ keywords: string[];
4
+ /** 关键词命中后实际触发技能调用的次数 */
5
+ hits?: number;
6
+ /** 关键词命中但未触发技能调用的次数 */
7
+ misses?: number;
8
+ /** 最近一次命中时间(ISO 字符串) */
9
+ lastHit?: string;
10
+ }
11
+ export interface OrchestrationConfig {
12
+ mappings: OrchestrationMapping[];
13
+ }
14
+ export declare class OrchestrationConfigManager {
15
+ private configPath;
16
+ private static readonly FLUSH_INTERVAL_MS;
17
+ constructor(configPath?: string);
18
+ load(): OrchestrationConfig;
19
+ save(config: OrchestrationConfig): void;
20
+ /** 立即将缓存写入磁盘(daemon 关闭时调用) */
21
+ flush(): void;
22
+ private scheduleFlush;
23
+ /** 添加或更新一条映射 */
24
+ upsert(mapping: OrchestrationMapping): void;
25
+ /** 删除一条映射 */
26
+ remove(skill: string): boolean;
27
+ /** 批量初始化官方技能映射(已存在则跳过) */
28
+ initOfficialMappings(mappings: OrchestrationMapping[]): void;
29
+ listMappings(): OrchestrationMapping[];
30
+ /** 记录一次命中(关键词匹配后实际触发了技能调用) */
31
+ recordHit(skill: string): void;
32
+ /** 记录一次未命中(关键词匹配但技能未被实际调用) */
33
+ recordMiss(skill: string): void;
34
+ }
35
+ //# sourceMappingURL=orchestration-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-config.d.ts","sourceRoot":"","sources":["../../src/skill-registry/orchestration-config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAmBD,qBAAa,0BAA0B;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;gBAErC,UAAU,SAA4B;IAIlD,IAAI,IAAI,mBAAmB;IAgB3B,IAAI,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAQvC,8BAA8B;IAC9B,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,aAAa;IASrB,gBAAgB;IAChB,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAW3C,aAAa;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAW9B,0BAA0B;IAC1B,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,IAAI;IAY5D,YAAY,IAAI,oBAAoB,EAAE;IAItC,8BAA8B;IAC9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS9B,8BAA8B;IAC9B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAOhC"}