@winspan/claude-forge 8.39.0 → 8.50.6

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 (804) hide show
  1. package/.claude/CLAUDE.md +17 -0
  2. package/.eslintrc.js +23 -0
  3. package/.prettierrc +8 -0
  4. package/ARCHITECTURE_ISSUES.md +249 -0
  5. package/CLAUDE.md +265 -0
  6. package/CLAUDE.md.backup +488 -0
  7. package/DEVELOPMENT.md +310 -0
  8. package/dist/claudemd/claudemd-generator.d.ts +38 -3
  9. package/dist/claudemd/claudemd-generator.d.ts.map +1 -1
  10. package/dist/claudemd/claudemd-generator.js +629 -11
  11. package/dist/claudemd/claudemd-generator.js.map +1 -1
  12. package/dist/claudemd/index.d.ts +2 -2
  13. package/dist/claudemd/index.d.ts.map +1 -1
  14. package/dist/claudemd/index.js.map +1 -1
  15. package/dist/claudemd/resume-manager.d.ts.map +1 -1
  16. package/dist/claudemd/resume-manager.js +5 -2
  17. package/dist/claudemd/resume-manager.js.map +1 -1
  18. package/dist/claudemd/tech-detector.d.ts +1 -0
  19. package/dist/claudemd/tech-detector.d.ts.map +1 -1
  20. package/dist/claudemd/tech-detector.js +53 -0
  21. package/dist/claudemd/tech-detector.js.map +1 -1
  22. package/dist/cli/commands/claudemd.js +2 -2
  23. package/dist/cli/commands/claudemd.js.map +1 -1
  24. package/dist/cli/commands/daemon.d.ts +28 -0
  25. package/dist/cli/commands/daemon.d.ts.map +1 -1
  26. package/dist/cli/commands/daemon.js +200 -8
  27. package/dist/cli/commands/daemon.js.map +1 -1
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +3 -35
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/menu.js +10 -10
  32. package/dist/cli/commands/menu.js.map +1 -1
  33. package/dist/cli/commands/skills.d.ts.map +1 -1
  34. package/dist/cli/commands/skills.js +8 -2
  35. package/dist/cli/commands/skills.js.map +1 -1
  36. package/dist/cli/commands/stats.d.ts.map +1 -1
  37. package/dist/cli/commands/stats.js +0 -17
  38. package/dist/cli/commands/stats.js.map +1 -1
  39. package/dist/cli/commands/trace.d.ts +9 -0
  40. package/dist/cli/commands/trace.d.ts.map +1 -0
  41. package/dist/cli/commands/trace.js +137 -0
  42. package/dist/cli/commands/trace.js.map +1 -0
  43. package/dist/cli/index.js +2 -4
  44. package/dist/cli/index.js.map +1 -1
  45. package/dist/core/ai/provider.d.ts +10 -2
  46. package/dist/core/ai/provider.d.ts.map +1 -1
  47. package/dist/core/ai/provider.js.map +1 -1
  48. package/dist/core/ai/types.d.ts +1 -19
  49. package/dist/core/ai/types.d.ts.map +1 -1
  50. package/dist/core/ai/types.js +1 -1
  51. package/dist/core/config.d.ts +2 -1
  52. package/dist/core/config.d.ts.map +1 -1
  53. package/dist/core/config.js +30 -6
  54. package/dist/core/config.js.map +1 -1
  55. package/dist/core/constants.d.ts +2 -2
  56. package/dist/core/constants.js +2 -2
  57. package/dist/core/constants.js.map +1 -1
  58. package/dist/core/queue/index.d.ts +52 -0
  59. package/dist/core/queue/index.d.ts.map +1 -0
  60. package/dist/core/queue/index.js +176 -0
  61. package/dist/core/queue/index.js.map +1 -0
  62. package/dist/core/storage/base.d.ts +33 -0
  63. package/dist/core/storage/base.d.ts.map +1 -0
  64. package/dist/core/storage/base.js +211 -0
  65. package/dist/core/storage/base.js.map +1 -0
  66. package/dist/core/storage/events.d.ts +52 -0
  67. package/dist/core/storage/events.d.ts.map +1 -0
  68. package/dist/core/storage/events.js +201 -0
  69. package/dist/core/storage/events.js.map +1 -0
  70. package/dist/core/storage/injections.d.ts +27 -0
  71. package/dist/core/storage/injections.d.ts.map +1 -0
  72. package/dist/core/storage/injections.js +51 -0
  73. package/dist/core/storage/injections.js.map +1 -0
  74. package/dist/core/storage/maintenance.d.ts +21 -0
  75. package/dist/core/storage/maintenance.d.ts.map +1 -0
  76. package/dist/core/storage/maintenance.js +52 -0
  77. package/dist/core/storage/maintenance.js.map +1 -0
  78. package/dist/core/storage/routing.d.ts +71 -0
  79. package/dist/core/storage/routing.d.ts.map +1 -0
  80. package/dist/core/storage/routing.js +141 -0
  81. package/dist/core/storage/routing.js.map +1 -0
  82. package/dist/core/storage/rows.d.ts +0 -47
  83. package/dist/core/storage/rows.d.ts.map +1 -1
  84. package/dist/core/storage/schema.sql +74 -136
  85. package/dist/core/storage/sessions.d.ts +34 -0
  86. package/dist/core/storage/sessions.d.ts.map +1 -0
  87. package/dist/core/storage/sessions.js +78 -0
  88. package/dist/core/storage/sessions.js.map +1 -0
  89. package/dist/core/storage/skills.d.ts +40 -0
  90. package/dist/core/storage/skills.d.ts.map +1 -0
  91. package/dist/core/storage/skills.js +107 -0
  92. package/dist/core/storage/skills.js.map +1 -0
  93. package/dist/core/storage/sqlite.d.ts +63 -265
  94. package/dist/core/storage/sqlite.d.ts.map +1 -1
  95. package/dist/core/storage/sqlite.js +102 -759
  96. package/dist/core/storage/sqlite.js.map +1 -1
  97. package/dist/core/storage/tasks.d.ts +64 -0
  98. package/dist/core/storage/tasks.d.ts.map +1 -0
  99. package/dist/core/storage/tasks.js +134 -0
  100. package/dist/core/storage/tasks.js.map +1 -0
  101. package/dist/core/storage/token-usage.d.ts +36 -0
  102. package/dist/core/storage/token-usage.d.ts.map +1 -0
  103. package/dist/core/storage/token-usage.js +59 -0
  104. package/dist/core/storage/token-usage.js.map +1 -0
  105. package/dist/core/types.d.ts +70 -4
  106. package/dist/core/types.d.ts.map +1 -1
  107. package/dist/core/types.js +24 -1
  108. package/dist/core/types.js.map +1 -1
  109. package/dist/core/utils/format.d.ts +28 -0
  110. package/dist/core/utils/format.d.ts.map +1 -0
  111. package/dist/core/utils/format.js +68 -0
  112. package/dist/core/utils/format.js.map +1 -0
  113. package/dist/core/utils/logger.d.ts +6 -1
  114. package/dist/core/utils/logger.d.ts.map +1 -1
  115. package/dist/core/utils/logger.js +72 -2
  116. package/dist/core/utils/logger.js.map +1 -1
  117. package/dist/core/utils/session.d.ts +16 -0
  118. package/dist/core/utils/session.d.ts.map +1 -0
  119. package/dist/core/utils/session.js +25 -0
  120. package/dist/core/utils/session.js.map +1 -0
  121. package/dist/core/utils/time.d.ts +22 -0
  122. package/dist/core/utils/time.d.ts.map +1 -0
  123. package/dist/core/utils/time.js +38 -0
  124. package/dist/core/utils/time.js.map +1 -0
  125. package/dist/daemon/handlers/history-exporter.d.ts.map +1 -1
  126. package/dist/daemon/handlers/history-exporter.js +6 -4
  127. package/dist/daemon/handlers/history-exporter.js.map +1 -1
  128. package/dist/daemon/handlers/post-tool-use.d.ts +5 -12
  129. package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
  130. package/dist/daemon/handlers/post-tool-use.js +21 -79
  131. package/dist/daemon/handlers/post-tool-use.js.map +1 -1
  132. package/dist/daemon/handlers/stop.d.ts +24 -12
  133. package/dist/daemon/handlers/stop.d.ts.map +1 -1
  134. package/dist/daemon/handlers/stop.js +141 -42
  135. package/dist/daemon/handlers/stop.js.map +1 -1
  136. package/dist/daemon/handlers/user-prompt.d.ts +18 -19
  137. package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
  138. package/dist/daemon/handlers/user-prompt.js +103 -227
  139. package/dist/daemon/handlers/user-prompt.js.map +1 -1
  140. package/dist/daemon/index.d.ts +6 -2
  141. package/dist/daemon/index.d.ts.map +1 -1
  142. package/dist/daemon/index.js +76 -120
  143. package/dist/daemon/index.js.map +1 -1
  144. package/dist/daemon/launchd/com.claude-forge.daemon.plist.template +47 -0
  145. package/dist/daemon/launchd-installer.d.ts +61 -0
  146. package/dist/daemon/launchd-installer.d.ts.map +1 -0
  147. package/dist/daemon/launchd-installer.js +182 -0
  148. package/dist/daemon/launchd-installer.js.map +1 -0
  149. package/dist/daemon/lifecycle.d.ts +11 -0
  150. package/dist/daemon/lifecycle.d.ts.map +1 -1
  151. package/dist/daemon/lifecycle.js +44 -0
  152. package/dist/daemon/lifecycle.js.map +1 -1
  153. package/dist/daemon/router.d.ts +9 -2
  154. package/dist/daemon/router.d.ts.map +1 -1
  155. package/dist/daemon/router.js +27 -3
  156. package/dist/daemon/router.js.map +1 -1
  157. package/dist/daemon/server.d.ts.map +1 -1
  158. package/dist/daemon/server.js +6 -5
  159. package/dist/daemon/server.js.map +1 -1
  160. package/dist/daemon/services/anti-pattern-detector.d.ts +50 -0
  161. package/dist/daemon/services/anti-pattern-detector.d.ts.map +1 -0
  162. package/dist/daemon/services/anti-pattern-detector.js +357 -0
  163. package/dist/daemon/services/anti-pattern-detector.js.map +1 -0
  164. package/dist/daemon/services/drift-detector.d.ts +64 -0
  165. package/dist/daemon/services/drift-detector.d.ts.map +1 -0
  166. package/dist/daemon/services/drift-detector.js +201 -0
  167. package/dist/daemon/services/drift-detector.js.map +1 -0
  168. package/dist/{intelligence → daemon/services}/task-segmenter.d.ts +7 -1
  169. package/dist/daemon/services/task-segmenter.d.ts.map +1 -0
  170. package/dist/{intelligence → daemon/services}/task-segmenter.js +29 -6
  171. package/dist/daemon/services/task-segmenter.js.map +1 -0
  172. package/dist/daemon/services/weekly-report.d.ts +91 -0
  173. package/dist/daemon/services/weekly-report.d.ts.map +1 -0
  174. package/dist/daemon/services/weekly-report.js +327 -0
  175. package/dist/daemon/services/weekly-report.js.map +1 -0
  176. package/dist/hooks/hook-lib.sh +81 -0
  177. package/dist/hooks/notification.sh +7 -3
  178. package/dist/hooks/post-tool-use.sh +8 -4
  179. package/dist/hooks/pre-tool-use.sh +7 -4
  180. package/dist/hooks/stop.sh +1 -1
  181. package/dist/hooks/user-prompt-submit.sh +8 -9
  182. package/dist/mcp/server.d.ts +2 -2
  183. package/dist/mcp/server.d.ts.map +1 -1
  184. package/dist/mcp/server.js +71 -11
  185. package/dist/mcp/server.js.map +1 -1
  186. package/dist/skills/invocation-guard.d.ts +20 -0
  187. package/dist/skills/invocation-guard.d.ts.map +1 -1
  188. package/dist/skills/invocation-guard.js +63 -0
  189. package/dist/skills/invocation-guard.js.map +1 -1
  190. package/dist/skills/matcher.d.ts.map +1 -1
  191. package/dist/skills/matcher.js +12 -3
  192. package/dist/skills/matcher.js.map +1 -1
  193. package/dist/skills/official/code-simplifier.md +16 -0
  194. package/dist/skills/official/find-skills.md +23 -0
  195. package/dist/skills/official/official-api-design.md +17 -0
  196. package/dist/skills/official/official-architecture-decision.md +20 -0
  197. package/dist/skills/official/official-bmad.md +118 -0
  198. package/dist/skills/official/official-db-schema-design.md +16 -0
  199. package/dist/skills/official/official-debug.md +17 -0
  200. package/dist/skills/official/official-doc-driven.md +31 -0
  201. package/dist/skills/official/official-harness-engineering.md +108 -0
  202. package/dist/skills/official/official-performance-optimization.md +30 -0
  203. package/dist/skills/official/official-pr-review.md +35 -0
  204. package/dist/skills/official/official-release-checklist.md +30 -0
  205. package/dist/skills/official/official-security-hardening.md +26 -0
  206. package/dist/skills/official/official-spec-driven-design.md +31 -0
  207. package/dist/skills/official/planning-with-files.md +37 -0
  208. package/dist/skills/official/ui-ux-pro-max.md +18 -0
  209. package/dist/skills/official/webapp-testing.md +12 -0
  210. package/dist/skills/official-skills.d.ts +8 -4
  211. package/dist/skills/official-skills.d.ts.map +1 -1
  212. package/dist/skills/official-skills.js +48 -704
  213. package/dist/skills/official-skills.js.map +1 -1
  214. package/dist/skills/registry.d.ts +5 -0
  215. package/dist/skills/registry.d.ts.map +1 -1
  216. package/dist/skills/registry.js +48 -15
  217. package/dist/skills/registry.js.map +1 -1
  218. package/dist/skills/tools/pipeline-suggest.d.ts +30 -0
  219. package/dist/skills/tools/pipeline-suggest.d.ts.map +1 -0
  220. package/dist/skills/tools/pipeline-suggest.js +178 -0
  221. package/dist/skills/tools/pipeline-suggest.js.map +1 -0
  222. package/dist/skills/tools/skill-invoke.d.ts +2 -0
  223. package/dist/skills/tools/skill-invoke.d.ts.map +1 -1
  224. package/dist/skills/tools/skill-invoke.js +5 -2
  225. package/dist/skills/tools/skill-invoke.js.map +1 -1
  226. package/dist/web/routes/ai.d.ts.map +1 -1
  227. package/dist/web/routes/ai.js +16 -22
  228. package/dist/web/routes/ai.js.map +1 -1
  229. package/dist/web/routes/drift.d.ts +10 -0
  230. package/dist/web/routes/drift.d.ts.map +1 -0
  231. package/dist/web/routes/drift.js +21 -0
  232. package/dist/web/routes/drift.js.map +1 -0
  233. package/dist/web/routes/error-handler.d.ts +43 -0
  234. package/dist/web/routes/error-handler.d.ts.map +1 -0
  235. package/dist/web/routes/error-handler.js +99 -0
  236. package/dist/web/routes/error-handler.js.map +1 -0
  237. package/dist/web/routes/insights.d.ts +9 -0
  238. package/dist/web/routes/insights.d.ts.map +1 -0
  239. package/dist/web/routes/insights.js +34 -0
  240. package/dist/web/routes/insights.js.map +1 -0
  241. package/dist/web/routes/patch.js +2 -2
  242. package/dist/web/routes/patch.js.map +1 -1
  243. package/dist/web/routes/reports.d.ts +10 -0
  244. package/dist/web/routes/reports.d.ts.map +1 -0
  245. package/dist/web/routes/reports.js +27 -0
  246. package/dist/web/routes/reports.js.map +1 -0
  247. package/dist/web/routes/rules.d.ts +10 -3
  248. package/dist/web/routes/rules.d.ts.map +1 -1
  249. package/dist/web/routes/rules.js +80 -95
  250. package/dist/web/routes/rules.js.map +1 -1
  251. package/dist/web/routes/sessions.d.ts +1 -2
  252. package/dist/web/routes/sessions.d.ts.map +1 -1
  253. package/dist/web/routes/sessions.js +27 -39
  254. package/dist/web/routes/sessions.js.map +1 -1
  255. package/dist/web/routes/skill-stats.d.ts.map +1 -1
  256. package/dist/web/routes/skill-stats.js +38 -0
  257. package/dist/web/routes/skill-stats.js.map +1 -1
  258. package/dist/web/routes/skills.d.ts.map +1 -1
  259. package/dist/web/routes/skills.js +34 -0
  260. package/dist/web/routes/skills.js.map +1 -1
  261. package/dist/web/routes/stats.d.ts +7 -0
  262. package/dist/web/routes/stats.d.ts.map +1 -0
  263. package/dist/web/routes/stats.js +44 -0
  264. package/dist/web/routes/stats.js.map +1 -0
  265. package/dist/web/routes/status.js +1 -1
  266. package/dist/web/routes/status.js.map +1 -1
  267. package/dist/web/routes/tasks.d.ts +4 -0
  268. package/dist/web/routes/tasks.d.ts.map +1 -0
  269. package/dist/web/routes/tasks.js +181 -0
  270. package/dist/web/routes/tasks.js.map +1 -0
  271. package/dist/web/routes/trace.d.ts +10 -0
  272. package/dist/web/routes/trace.d.ts.map +1 -0
  273. package/dist/web/routes/trace.js +123 -0
  274. package/dist/web/routes/trace.js.map +1 -0
  275. package/dist/web/routes/types.d.ts +1 -14
  276. package/dist/web/routes/types.d.ts.map +1 -1
  277. package/dist/web/routes/types.js +8 -17
  278. package/dist/web/routes/types.js.map +1 -1
  279. package/dist/web/server.d.ts +1 -9
  280. package/dist/web/server.d.ts.map +1 -1
  281. package/dist/web/server.js +28 -28
  282. package/dist/web/server.js.map +1 -1
  283. package/dist/web/static/assets/AIConfig-BQCAQE9D.js +2 -0
  284. package/dist/web/static/assets/AIConfig-BQCAQE9D.js.map +1 -0
  285. package/dist/web/static/assets/Dashboard-D7Bo6Kan.js +2 -0
  286. package/dist/web/static/assets/Dashboard-D7Bo6Kan.js.map +1 -0
  287. package/dist/web/static/assets/{Drawer-DcU3ln98.js → Drawer-BeHRQxUS.js} +2 -2
  288. package/dist/web/static/assets/{Drawer-DcU3ln98.js.map → Drawer-BeHRQxUS.js.map} +1 -1
  289. package/dist/web/static/assets/Events-K_tCY2ti.js +2 -0
  290. package/dist/web/static/assets/Events-K_tCY2ti.js.map +1 -0
  291. package/dist/web/static/assets/Reports-BJCmBnc_.js +2 -0
  292. package/dist/web/static/assets/Reports-BJCmBnc_.js.map +1 -0
  293. package/dist/web/static/assets/SearchInput-BX2KhMkw.js +2 -0
  294. package/dist/web/static/assets/SearchInput-BX2KhMkw.js.map +1 -0
  295. package/dist/web/static/assets/SessionDetail-Bkr-kC7V.js +2 -0
  296. package/dist/web/static/assets/SessionDetail-Bkr-kC7V.js.map +1 -0
  297. package/dist/web/static/assets/Sessions-Chx9OCLH.js +2 -0
  298. package/dist/web/static/assets/Sessions-Chx9OCLH.js.map +1 -0
  299. package/dist/web/static/assets/Skills-O0GT1i7m.js +2 -0
  300. package/dist/web/static/assets/Skills-O0GT1i7m.js.map +1 -0
  301. package/dist/web/static/assets/TaskDetail-5SR8zGzv.js +2 -0
  302. package/dist/web/static/assets/TaskDetail-5SR8zGzv.js.map +1 -0
  303. package/dist/web/static/assets/Tasks-DCgDqvOZ.js +2 -0
  304. package/dist/web/static/assets/Tasks-DCgDqvOZ.js.map +1 -0
  305. package/dist/web/static/assets/export-L_VBD2p1.js +4 -0
  306. package/dist/web/static/assets/export-L_VBD2p1.js.map +1 -0
  307. package/dist/web/static/assets/index-D8AKj26b.css +1 -0
  308. package/dist/web/static/assets/index-DxIbmNmr.js +3 -0
  309. package/dist/web/static/assets/index-DxIbmNmr.js.map +1 -0
  310. package/dist/web/static/assets/{lucide-53bR2rki.js → lucide-fJlPI3H7.js} +68 -38
  311. package/dist/web/static/assets/lucide-fJlPI3H7.js.map +1 -0
  312. package/dist/web/static/assets/time-Bxuk0M-C.js +2 -0
  313. package/dist/web/static/assets/time-Bxuk0M-C.js.map +1 -0
  314. package/dist/web/static/index.html +3 -3
  315. package/docs/concurrent-agents.md +129 -0
  316. package/docs/design/architecture-review-20260516.md +232 -0
  317. package/docs/design/fix-skills-data-and-set-leak-spec-20260516-1300.md +219 -0
  318. package/docs/design/hook-failure-queue-spec-20260516-1530.md +204 -0
  319. package/docs/design/refactor-phase1-spec-20260515-1600.md +543 -0
  320. package/docs/design/refactor-phase2-spec-20260515-1700.md +424 -0
  321. package/docs/design/tasks-list-filter-pagination-spec-20260518-0930.md +208 -0
  322. package/docs/implementation/fix-skills-data-and-set-leak-changelog-20260516-1300.md +104 -0
  323. package/docs/implementation/hook-failure-queue-changelog-20260516-1530.md +196 -0
  324. package/docs/implementation/hotfix-daemon-event-reject-20260516-1430.md +56 -0
  325. package/docs/implementation/refactor-phase1-changelog-20260515-1630.md +354 -0
  326. package/docs/implementation/refactor-phase2-changelog-20260515-1705.md +421 -0
  327. package/docs/implementation/tasks-list-filter-pagination-changelog-20260518-0930.md +72 -0
  328. package/docs/reviews/claudemd-template-sync.md +54 -0
  329. package/docs/reviews/tasks-filter-pagination.md +80 -0
  330. package/docs/ruflo-learning-strategy.md +322 -0
  331. package/docs/skills-deduplication-analysis.md +83 -0
  332. package/docs/skills-multiformat-support.md +177 -0
  333. package/docs/skills-third-party.md +183 -0
  334. package/docs/testing/tasks-filter-pagination-test-report.md +86 -0
  335. package/forge +321 -0
  336. package/package.json +28 -62
  337. package/playwright.config.ts +40 -0
  338. package/scripts/demo-v2.ts +91 -0
  339. package/scripts/dev-daemon.sh +232 -0
  340. package/scripts/dev-web.ts +109 -0
  341. package/scripts/e2e-mcp-link.ts +423 -0
  342. package/scripts/e2e-methodology-quality.ts +253 -0
  343. package/scripts/e2e-routing.ts +456 -0
  344. package/scripts/e2e-user-methodology.ts +326 -0
  345. package/scripts/e2e-web-workflows.ts +299 -0
  346. package/scripts/migrate-legacy-to-dynamic.sql +108 -0
  347. package/scripts/regenerate-execution-docs.ts +116 -0
  348. package/scripts/sync-agent-skills.ts +193 -0
  349. package/scripts/test-hook.sh +71 -0
  350. package/scripts/verify-skill-loading.ts +62 -0
  351. package/src/claudemd/claudemd-generator.ts +777 -0
  352. package/src/claudemd/convention-extractor.ts +69 -0
  353. package/src/claudemd/index.ts +35 -0
  354. package/src/claudemd/persona-manager.ts +88 -0
  355. package/src/claudemd/resume-manager.ts +236 -0
  356. package/src/claudemd/tech-detector.ts +220 -0
  357. package/src/cli/commands/claudemd.ts +84 -0
  358. package/src/cli/commands/config.ts +46 -0
  359. package/src/cli/commands/daemon.ts +310 -0
  360. package/src/cli/commands/executions.ts +114 -0
  361. package/src/cli/commands/init.ts +204 -0
  362. package/src/cli/commands/logs.ts +181 -0
  363. package/src/cli/commands/mcp.ts +244 -0
  364. package/src/cli/commands/menu.ts +356 -0
  365. package/src/cli/commands/skills.ts +185 -0
  366. package/src/cli/commands/stats.ts +74 -0
  367. package/src/cli/commands/status.ts +69 -0
  368. package/src/cli/commands/template.ts +77 -0
  369. package/src/cli/commands/trace.ts +164 -0
  370. package/src/cli/index.ts +42 -0
  371. package/src/cli/init/hook-manager.ts +132 -0
  372. package/src/core/ai/provider.ts +308 -0
  373. package/src/core/ai/types.ts +51 -0
  374. package/src/core/config.ts +124 -0
  375. package/src/core/constants.ts +45 -0
  376. package/src/core/queue/index.ts +193 -0
  377. package/src/core/storage/base.ts +226 -0
  378. package/src/core/storage/events.ts +255 -0
  379. package/src/core/storage/injections.ts +78 -0
  380. package/src/core/storage/maintenance.ts +59 -0
  381. package/src/core/storage/migrations/002_add_skill_tracking.sql +6 -0
  382. package/src/core/storage/migrations/003_add_skill_invocations.sql +23 -0
  383. package/src/core/storage/performance-indexes.sql +23 -0
  384. package/src/core/storage/routing.ts +194 -0
  385. package/src/core/storage/rows.ts +112 -0
  386. package/src/core/storage/schema.sql +214 -0
  387. package/src/core/storage/sessions.ts +104 -0
  388. package/src/core/storage/skills.ts +164 -0
  389. package/src/core/storage/sqlite.ts +194 -0
  390. package/src/core/storage/tasks.ts +170 -0
  391. package/src/core/storage/token-usage.ts +93 -0
  392. package/src/core/types.ts +154 -0
  393. package/src/core/utils/error-handler.ts +256 -0
  394. package/src/core/utils/forge-resume-block.ts +74 -0
  395. package/src/core/utils/format.ts +69 -0
  396. package/src/core/utils/logger.ts +119 -0
  397. package/src/core/utils/lru-cache.ts +50 -0
  398. package/src/core/utils/path.ts +19 -0
  399. package/src/core/utils/session.ts +26 -0
  400. package/src/core/utils/time.ts +37 -0
  401. package/src/core/utils/token-tracker.ts +97 -0
  402. package/src/daemon/event-parser.ts +35 -0
  403. package/src/daemon/handlers/history-exporter.ts +117 -0
  404. package/src/daemon/handlers/post-tool-use.ts +50 -0
  405. package/src/daemon/handlers/stop.ts +215 -0
  406. package/src/daemon/handlers/user-prompt.ts +188 -0
  407. package/src/daemon/index.ts +278 -0
  408. package/src/daemon/launchd/com.claude-forge.daemon.plist.template +47 -0
  409. package/src/daemon/launchd-installer.ts +260 -0
  410. package/src/daemon/lifecycle.ts +128 -0
  411. package/src/daemon/router.ts +40 -0
  412. package/src/daemon/server.ts +209 -0
  413. package/src/daemon/services/anti-pattern-detector.ts +412 -0
  414. package/src/daemon/services/drift-detector.ts +232 -0
  415. package/src/daemon/services/task-segmenter.ts +112 -0
  416. package/src/daemon/services/weekly-report.ts +454 -0
  417. package/src/hooks/hook-lib.sh +81 -0
  418. package/src/hooks/notification.sh +35 -0
  419. package/src/hooks/post-tool-use.sh +61 -0
  420. package/src/hooks/pre-tool-use.sh +63 -0
  421. package/src/hooks/stop.sh +40 -0
  422. package/src/hooks/user-prompt-submit.sh +69 -0
  423. package/src/mcp/server.ts +322 -0
  424. package/src/skills/index.ts +2 -0
  425. package/src/skills/invocation-guard.ts +177 -0
  426. package/src/skills/matcher.ts +148 -0
  427. package/src/skills/official/code-simplifier.md +16 -0
  428. package/src/skills/official/find-skills.md +23 -0
  429. package/src/skills/official/official-api-design.md +17 -0
  430. package/src/skills/official/official-architecture-decision.md +20 -0
  431. package/src/skills/official/official-bmad.md +118 -0
  432. package/src/skills/official/official-db-schema-design.md +16 -0
  433. package/src/skills/official/official-debug.md +17 -0
  434. package/src/skills/official/official-doc-driven.md +31 -0
  435. package/src/skills/official/official-harness-engineering.md +108 -0
  436. package/src/skills/official/official-performance-optimization.md +30 -0
  437. package/src/skills/official/official-pr-review.md +35 -0
  438. package/src/skills/official/official-release-checklist.md +30 -0
  439. package/src/skills/official/official-security-hardening.md +26 -0
  440. package/src/skills/official/official-spec-driven-design.md +31 -0
  441. package/src/skills/official/planning-with-files.md +37 -0
  442. package/src/skills/official/ui-ux-pro-max.md +18 -0
  443. package/src/skills/official/webapp-testing.md +12 -0
  444. package/src/skills/official-skills.ts +89 -0
  445. package/src/skills/registry.ts +355 -0
  446. package/src/skills/semantic-matcher.ts +231 -0
  447. package/src/skills/tools/pipeline-suggest.ts +226 -0
  448. package/src/skills/tools/skill-invoke.ts +168 -0
  449. package/src/skills/tools/skill-list.ts +59 -0
  450. package/src/templates/go.yaml +53 -0
  451. package/src/templates/python.yaml +59 -0
  452. package/src/templates/react.yaml +55 -0
  453. package/src/templates/template-manager.ts +170 -0
  454. package/src/web/auth-middleware.ts +55 -0
  455. package/src/web/routes/ai.ts +204 -0
  456. package/src/web/routes/auth.ts +22 -0
  457. package/src/web/routes/drift.ts +25 -0
  458. package/src/web/routes/error-handler.ts +120 -0
  459. package/src/web/routes/events.ts +47 -0
  460. package/src/web/routes/insights.ts +43 -0
  461. package/src/web/routes/patch.ts +117 -0
  462. package/src/web/routes/reports.ts +34 -0
  463. package/src/web/routes/rules.ts +101 -0
  464. package/src/web/routes/sessions.ts +262 -0
  465. package/src/web/routes/skill-stats.ts +132 -0
  466. package/src/web/routes/skills.ts +349 -0
  467. package/src/web/routes/static.ts +67 -0
  468. package/src/web/routes/stats.ts +60 -0
  469. package/src/web/routes/status.ts +30 -0
  470. package/src/web/routes/tasks.ts +218 -0
  471. package/src/web/routes/token-usage.ts +20 -0
  472. package/src/web/routes/trace.ts +138 -0
  473. package/src/web/routes/types.ts +56 -0
  474. package/src/web/server.ts +134 -0
  475. package/src/web/ssrf-guard.ts +112 -0
  476. package/src/web/static/index.html +3251 -0
  477. package/src/web/static/vendor/chart.umd.min.js +20 -0
  478. package/tests/e2e/dashboard.spec.ts +205 -0
  479. package/tests/e2e/routing-skill-e2e.test.ts +39 -0
  480. package/tests/helpers/mock-ai.ts +92 -0
  481. package/tests/helpers/mock-storage.ts +159 -0
  482. package/tests/integration/queue-replay.integration.test.ts +193 -0
  483. package/tests/integration/tasks-filter.integration.test.ts +154 -0
  484. package/tests/performance/database.benchmark.ts +161 -0
  485. package/tests/semantic-matcher.test.ts +99 -0
  486. package/tests/skill-matcher.test.ts +110 -0
  487. package/tests/unit/ai-provider-retry.test.ts +194 -0
  488. package/tests/unit/ai-provider-vision.test.ts +224 -0
  489. package/tests/unit/claudemd-generator.test.ts +68 -0
  490. package/tests/unit/cli-mcp.test.ts +141 -0
  491. package/tests/unit/handlers.test.ts +171 -0
  492. package/tests/unit/invocation-guard.test.ts +125 -0
  493. package/tests/unit/queue.test.ts +272 -0
  494. package/tests/unit/router.test.ts +138 -0
  495. package/tests/unit/security.test.ts +128 -0
  496. package/tests/unit/skill-invocations-workflow.test.ts +495 -0
  497. package/tests/unit/skill-registry.test.ts +94 -0
  498. package/tests/unit/skills/invocation-guard-ttl.test.ts +211 -0
  499. package/tests/unit/skills/official-skills-loader.test.ts +126 -0
  500. package/tests/unit/skills/registry-multiformat.test.ts +92 -0
  501. package/tests/unit/storage/sessions-aggregate.test.ts +435 -0
  502. package/tests/unit/storage/sqlite-refactor-harness.test.ts +314 -0
  503. package/tests/unit/storage.test.ts +172 -0
  504. package/tests/unit/token-usage.test.ts +144 -0
  505. package/tests/unit/type-guards.test.ts +201 -0
  506. package/tests/unit/utils/format.test.ts +189 -0
  507. package/tests/unit/utils/session.test.ts +89 -0
  508. package/tests/unit/utils/time.test.ts +112 -0
  509. package/tests/unit/web/routes-auth.test.ts +93 -0
  510. package/tests/unit/web/routes-events.test.ts +101 -0
  511. package/tests/unit/web/routes-sessions.test.ts +181 -0
  512. package/tests/unit/web/routes-skill-stats.test.ts +179 -0
  513. package/tests/unit/web/routes-stats.test.ts +92 -0
  514. package/tests/unit/web/routes-tasks.test.ts +351 -0
  515. package/tsconfig.json +22 -0
  516. package/vitest.config.ts +21 -0
  517. package/vitest.integration.config.ts +16 -0
  518. package/web/CLAUDE.md +20 -0
  519. package/web/index.html +13 -0
  520. package/web/package-lock.json +4854 -0
  521. package/web/package.json +35 -0
  522. package/web/postcss.config.js +6 -0
  523. package/web/src/App.tsx +110 -0
  524. package/web/src/components/CodeBlock.tsx +31 -0
  525. package/web/src/components/Confirm.tsx +96 -0
  526. package/web/src/components/Drawer.tsx +60 -0
  527. package/web/src/components/Layout.tsx +145 -0
  528. package/web/src/components/MarkdownRenderer.tsx +77 -0
  529. package/web/src/components/SearchInput.tsx +31 -0
  530. package/web/src/components/SessionDetailContent.tsx +157 -0
  531. package/web/src/components/Toast.tsx +92 -0
  532. package/web/src/index.css +19 -0
  533. package/web/src/main.tsx +31 -0
  534. package/web/src/pages/AIConfig.tsx +233 -0
  535. package/web/src/pages/Dashboard.tsx +572 -0
  536. package/web/src/pages/Events.tsx +271 -0
  537. package/web/src/pages/Reports.tsx +428 -0
  538. package/web/src/pages/SessionDetail.tsx +162 -0
  539. package/web/src/pages/Sessions.tsx +205 -0
  540. package/web/src/pages/Skills.tsx +180 -0
  541. package/web/src/pages/TaskDetail.tsx +511 -0
  542. package/web/src/pages/Tasks.tsx +150 -0
  543. package/web/src/utils/auth.ts +59 -0
  544. package/web/src/utils/export.ts +54 -0
  545. package/web/src/utils/time.ts +13 -0
  546. package/web/tailwind.config.js +11 -0
  547. package/web/tsconfig.json +21 -0
  548. package/web/tsconfig.node.json +10 -0
  549. package/web/vite.config.ts +76 -0
  550. package/winspan-claude-forge-8.43.0.tgz +0 -0
  551. package/dist/agents/definition.d.ts +0 -62
  552. package/dist/agents/definition.d.ts.map +0 -1
  553. package/dist/agents/definition.js +0 -27
  554. package/dist/agents/definition.js.map +0 -1
  555. package/dist/agents/distributor.d.ts +0 -23
  556. package/dist/agents/distributor.d.ts.map +0 -1
  557. package/dist/agents/distributor.js +0 -85
  558. package/dist/agents/distributor.js.map +0 -1
  559. package/dist/agents/index.d.ts +0 -5
  560. package/dist/agents/index.d.ts.map +0 -1
  561. package/dist/agents/index.js +0 -5
  562. package/dist/agents/index.js.map +0 -1
  563. package/dist/agents/methodologies/agent-builder.d.ts +0 -21
  564. package/dist/agents/methodologies/agent-builder.d.ts.map +0 -1
  565. package/dist/agents/methodologies/agent-builder.js +0 -124
  566. package/dist/agents/methodologies/agent-builder.js.map +0 -1
  567. package/dist/agents/methodologies/phases/bmad/analyze.d.ts +0 -3
  568. package/dist/agents/methodologies/phases/bmad/analyze.d.ts.map +0 -1
  569. package/dist/agents/methodologies/phases/bmad/analyze.js +0 -18
  570. package/dist/agents/methodologies/phases/bmad/analyze.js.map +0 -1
  571. package/dist/agents/methodologies/phases/bmad/design.d.ts +0 -3
  572. package/dist/agents/methodologies/phases/bmad/design.d.ts.map +0 -1
  573. package/dist/agents/methodologies/phases/bmad/design.js +0 -17
  574. package/dist/agents/methodologies/phases/bmad/design.js.map +0 -1
  575. package/dist/agents/methodologies/phases/bmad/implement.d.ts +0 -3
  576. package/dist/agents/methodologies/phases/bmad/implement.d.ts.map +0 -1
  577. package/dist/agents/methodologies/phases/bmad/implement.js +0 -16
  578. package/dist/agents/methodologies/phases/bmad/implement.js.map +0 -1
  579. package/dist/agents/methodologies/phases/bmad/index.d.ts +0 -6
  580. package/dist/agents/methodologies/phases/bmad/index.d.ts.map +0 -1
  581. package/dist/agents/methodologies/phases/bmad/index.js +0 -6
  582. package/dist/agents/methodologies/phases/bmad/index.js.map +0 -1
  583. package/dist/agents/methodologies/phases/bmad/review.d.ts +0 -3
  584. package/dist/agents/methodologies/phases/bmad/review.d.ts.map +0 -1
  585. package/dist/agents/methodologies/phases/bmad/review.js +0 -16
  586. package/dist/agents/methodologies/phases/bmad/review.js.map +0 -1
  587. package/dist/agents/methodologies/phases/bmad/test.d.ts +0 -3
  588. package/dist/agents/methodologies/phases/bmad/test.d.ts.map +0 -1
  589. package/dist/agents/methodologies/phases/bmad/test.js +0 -20
  590. package/dist/agents/methodologies/phases/bmad/test.js.map +0 -1
  591. package/dist/agents/methodologies/phases/harness/fix.d.ts +0 -3
  592. package/dist/agents/methodologies/phases/harness/fix.d.ts.map +0 -1
  593. package/dist/agents/methodologies/phases/harness/fix.js +0 -16
  594. package/dist/agents/methodologies/phases/harness/fix.js.map +0 -1
  595. package/dist/agents/methodologies/phases/harness/index.d.ts +0 -6
  596. package/dist/agents/methodologies/phases/harness/index.d.ts.map +0 -1
  597. package/dist/agents/methodologies/phases/harness/index.js +0 -6
  598. package/dist/agents/methodologies/phases/harness/index.js.map +0 -1
  599. package/dist/agents/methodologies/phases/harness/reproduce.d.ts +0 -3
  600. package/dist/agents/methodologies/phases/harness/reproduce.d.ts.map +0 -1
  601. package/dist/agents/methodologies/phases/harness/reproduce.js +0 -19
  602. package/dist/agents/methodologies/phases/harness/reproduce.js.map +0 -1
  603. package/dist/agents/methodologies/phases/harness/root-cause.d.ts +0 -3
  604. package/dist/agents/methodologies/phases/harness/root-cause.d.ts.map +0 -1
  605. package/dist/agents/methodologies/phases/harness/root-cause.js +0 -20
  606. package/dist/agents/methodologies/phases/harness/root-cause.js.map +0 -1
  607. package/dist/agents/methodologies/phases/harness/safety-net.d.ts +0 -3
  608. package/dist/agents/methodologies/phases/harness/safety-net.d.ts.map +0 -1
  609. package/dist/agents/methodologies/phases/harness/safety-net.js +0 -16
  610. package/dist/agents/methodologies/phases/harness/safety-net.js.map +0 -1
  611. package/dist/agents/methodologies/phases/harness/verify.d.ts +0 -3
  612. package/dist/agents/methodologies/phases/harness/verify.d.ts.map +0 -1
  613. package/dist/agents/methodologies/phases/harness/verify.js +0 -21
  614. package/dist/agents/methodologies/phases/harness/verify.js.map +0 -1
  615. package/dist/agents/methodologies/presets.d.ts +0 -10
  616. package/dist/agents/methodologies/presets.d.ts.map +0 -1
  617. package/dist/agents/methodologies/presets.js +0 -79
  618. package/dist/agents/methodologies/presets.js.map +0 -1
  619. package/dist/agents/methodologies/types.d.ts +0 -43
  620. package/dist/agents/methodologies/types.d.ts.map +0 -1
  621. package/dist/agents/methodologies/types.js +0 -10
  622. package/dist/agents/methodologies/types.js.map +0 -1
  623. package/dist/agents/methodologies/user-config-loader.d.ts +0 -30
  624. package/dist/agents/methodologies/user-config-loader.d.ts.map +0 -1
  625. package/dist/agents/methodologies/user-config-loader.js +0 -159
  626. package/dist/agents/methodologies/user-config-loader.js.map +0 -1
  627. package/dist/agents/official-agents.d.ts +0 -4
  628. package/dist/agents/official-agents.d.ts.map +0 -1
  629. package/dist/agents/official-agents.js +0 -559
  630. package/dist/agents/official-agents.js.map +0 -1
  631. package/dist/agents/registry.d.ts +0 -57
  632. package/dist/agents/registry.d.ts.map +0 -1
  633. package/dist/agents/registry.js +0 -271
  634. package/dist/agents/registry.js.map +0 -1
  635. package/dist/capability/index.d.ts +0 -10
  636. package/dist/capability/index.d.ts.map +0 -1
  637. package/dist/capability/index.js +0 -10
  638. package/dist/capability/index.js.map +0 -1
  639. package/dist/capability/types.d.ts +0 -10
  640. package/dist/capability/types.d.ts.map +0 -1
  641. package/dist/capability/types.js +0 -10
  642. package/dist/capability/types.js.map +0 -1
  643. package/dist/cli/commands/agents.d.ts +0 -3
  644. package/dist/cli/commands/agents.d.ts.map +0 -1
  645. package/dist/cli/commands/agents.js +0 -62
  646. package/dist/cli/commands/agents.js.map +0 -1
  647. package/dist/cli/commands/rules.d.ts +0 -8
  648. package/dist/cli/commands/rules.d.ts.map +0 -1
  649. package/dist/cli/commands/rules.js +0 -89
  650. package/dist/cli/commands/rules.js.map +0 -1
  651. package/dist/daemon/auto-disable-scheduler.d.ts +0 -53
  652. package/dist/daemon/auto-disable-scheduler.d.ts.map +0 -1
  653. package/dist/daemon/auto-disable-scheduler.js +0 -114
  654. package/dist/daemon/auto-disable-scheduler.js.map +0 -1
  655. package/dist/daemon/handlers/pre-tool-use.d.ts +0 -30
  656. package/dist/daemon/handlers/pre-tool-use.d.ts.map +0 -1
  657. package/dist/daemon/handlers/pre-tool-use.js +0 -173
  658. package/dist/daemon/handlers/pre-tool-use.js.map +0 -1
  659. package/dist/daemon/routing-observer.d.ts +0 -42
  660. package/dist/daemon/routing-observer.d.ts.map +0 -1
  661. package/dist/daemon/routing-observer.js +0 -264
  662. package/dist/daemon/routing-observer.js.map +0 -1
  663. package/dist/daemon/routing-state.d.ts +0 -63
  664. package/dist/daemon/routing-state.d.ts.map +0 -1
  665. package/dist/daemon/routing-state.js +0 -223
  666. package/dist/daemon/routing-state.js.map +0 -1
  667. package/dist/engine/agent-router.d.ts +0 -142
  668. package/dist/engine/agent-router.d.ts.map +0 -1
  669. package/dist/engine/agent-router.js +0 -276
  670. package/dist/engine/agent-router.js.map +0 -1
  671. package/dist/engine/context-builder.d.ts +0 -23
  672. package/dist/engine/context-builder.d.ts.map +0 -1
  673. package/dist/engine/context-builder.js +0 -63
  674. package/dist/engine/context-builder.js.map +0 -1
  675. package/dist/engine/conventions/basic-security.yaml +0 -109
  676. package/dist/engine/conventions/code-quality.yaml +0 -123
  677. package/dist/engine/conventions/database-safety.yaml +0 -74
  678. package/dist/engine/conventions/dependency-safety.yaml +0 -132
  679. package/dist/engine/conventions/docker-safety.yaml +0 -69
  680. package/dist/engine/conventions/git-safety.yaml +0 -118
  681. package/dist/engine/conventions/go-best-practices.yaml +0 -84
  682. package/dist/engine/conventions/python-best-practices.yaml +0 -96
  683. package/dist/engine/conventions/react-best-practices.yaml +0 -96
  684. package/dist/engine/conventions/routing.yaml +0 -378
  685. package/dist/engine/conventions/strict-security.yaml +0 -30
  686. package/dist/engine/conventions/ts-quality.yaml +0 -49
  687. package/dist/engine/dsl/compiler.d.ts +0 -34
  688. package/dist/engine/dsl/compiler.d.ts.map +0 -1
  689. package/dist/engine/dsl/compiler.js +0 -702
  690. package/dist/engine/dsl/compiler.js.map +0 -1
  691. package/dist/engine/dsl/parser.d.ts +0 -25
  692. package/dist/engine/dsl/parser.d.ts.map +0 -1
  693. package/dist/engine/dsl/parser.js +0 -208
  694. package/dist/engine/dsl/parser.js.map +0 -1
  695. package/dist/engine/dsl/runtime.d.ts +0 -46
  696. package/dist/engine/dsl/runtime.d.ts.map +0 -1
  697. package/dist/engine/dsl/runtime.js +0 -173
  698. package/dist/engine/dsl/runtime.js.map +0 -1
  699. package/dist/engine/dsl/types.d.ts +0 -139
  700. package/dist/engine/dsl/types.d.ts.map +0 -1
  701. package/dist/engine/dsl/types.js +0 -11
  702. package/dist/engine/dsl/types.js.map +0 -1
  703. package/dist/engine/evidence-store.d.ts +0 -44
  704. package/dist/engine/evidence-store.d.ts.map +0 -1
  705. package/dist/engine/evidence-store.js +0 -109
  706. package/dist/engine/evidence-store.js.map +0 -1
  707. package/dist/engine/experiment-router.d.ts +0 -102
  708. package/dist/engine/experiment-router.d.ts.map +0 -1
  709. package/dist/engine/experiment-router.js +0 -289
  710. package/dist/engine/experiment-router.js.map +0 -1
  711. package/dist/engine/recommender.d.ts +0 -52
  712. package/dist/engine/recommender.d.ts.map +0 -1
  713. package/dist/engine/recommender.js +0 -162
  714. package/dist/engine/recommender.js.map +0 -1
  715. package/dist/engine/rule-engine.d.ts +0 -33
  716. package/dist/engine/rule-engine.d.ts.map +0 -1
  717. package/dist/engine/rule-engine.js +0 -250
  718. package/dist/engine/rule-engine.js.map +0 -1
  719. package/dist/intelligence/classifier.d.ts +0 -75
  720. package/dist/intelligence/classifier.d.ts.map +0 -1
  721. package/dist/intelligence/classifier.js +0 -352
  722. package/dist/intelligence/classifier.js.map +0 -1
  723. package/dist/intelligence/context-gatherer.d.ts +0 -101
  724. package/dist/intelligence/context-gatherer.d.ts.map +0 -1
  725. package/dist/intelligence/context-gatherer.js +0 -417
  726. package/dist/intelligence/context-gatherer.js.map +0 -1
  727. package/dist/intelligence/cot-classifier.d.ts +0 -95
  728. package/dist/intelligence/cot-classifier.d.ts.map +0 -1
  729. package/dist/intelligence/cot-classifier.js +0 -391
  730. package/dist/intelligence/cot-classifier.js.map +0 -1
  731. package/dist/intelligence/distiller.d.ts +0 -22
  732. package/dist/intelligence/distiller.d.ts.map +0 -1
  733. package/dist/intelligence/distiller.js +0 -108
  734. package/dist/intelligence/distiller.js.map +0 -1
  735. package/dist/intelligence/execution-doc-builder.d.ts +0 -151
  736. package/dist/intelligence/execution-doc-builder.d.ts.map +0 -1
  737. package/dist/intelligence/execution-doc-builder.js +0 -1018
  738. package/dist/intelligence/execution-doc-builder.js.map +0 -1
  739. package/dist/intelligence/intent-types.d.ts +0 -13
  740. package/dist/intelligence/intent-types.d.ts.map +0 -1
  741. package/dist/intelligence/intent-types.js +0 -19
  742. package/dist/intelligence/intent-types.js.map +0 -1
  743. package/dist/intelligence/multimodal-parser.d.ts +0 -105
  744. package/dist/intelligence/multimodal-parser.d.ts.map +0 -1
  745. package/dist/intelligence/multimodal-parser.js +0 -425
  746. package/dist/intelligence/multimodal-parser.js.map +0 -1
  747. package/dist/intelligence/quality-gate.d.ts +0 -45
  748. package/dist/intelligence/quality-gate.d.ts.map +0 -1
  749. package/dist/intelligence/quality-gate.js +0 -193
  750. package/dist/intelligence/quality-gate.js.map +0 -1
  751. package/dist/intelligence/task-segmenter.d.ts.map +0 -1
  752. package/dist/intelligence/task-segmenter.js.map +0 -1
  753. package/dist/web/routes/agents.d.ts +0 -7
  754. package/dist/web/routes/agents.d.ts.map +0 -1
  755. package/dist/web/routes/agents.js +0 -209
  756. package/dist/web/routes/agents.js.map +0 -1
  757. package/dist/web/routes/execution-trace.d.ts +0 -21
  758. package/dist/web/routes/execution-trace.d.ts.map +0 -1
  759. package/dist/web/routes/execution-trace.js +0 -353
  760. package/dist/web/routes/execution-trace.js.map +0 -1
  761. package/dist/web/routes/experiments.d.ts +0 -15
  762. package/dist/web/routes/experiments.d.ts.map +0 -1
  763. package/dist/web/routes/experiments.js +0 -187
  764. package/dist/web/routes/experiments.js.map +0 -1
  765. package/dist/web/routes/routing.d.ts +0 -17
  766. package/dist/web/routes/routing.d.ts.map +0 -1
  767. package/dist/web/routes/routing.js +0 -592
  768. package/dist/web/routes/routing.js.map +0 -1
  769. package/dist/web/routes/workflows.d.ts +0 -19
  770. package/dist/web/routes/workflows.d.ts.map +0 -1
  771. package/dist/web/routes/workflows.js +0 -86
  772. package/dist/web/routes/workflows.js.map +0 -1
  773. package/dist/web/static/assets/AIConfig-R5wZ3ZKT.js +0 -2
  774. package/dist/web/static/assets/AIConfig-R5wZ3ZKT.js.map +0 -1
  775. package/dist/web/static/assets/Agents-Beg34V1g.js +0 -2
  776. package/dist/web/static/assets/Agents-Beg34V1g.js.map +0 -1
  777. package/dist/web/static/assets/CodeBlock--H53gk46.js +0 -2
  778. package/dist/web/static/assets/CodeBlock--H53gk46.js.map +0 -1
  779. package/dist/web/static/assets/Dashboard-Cy1xsj1J.js +0 -2
  780. package/dist/web/static/assets/Dashboard-Cy1xsj1J.js.map +0 -1
  781. package/dist/web/static/assets/Events-mFhXl4zI.js +0 -2
  782. package/dist/web/static/assets/Events-mFhXl4zI.js.map +0 -1
  783. package/dist/web/static/assets/ExecutionTrace-DG901hLR.js +0 -3
  784. package/dist/web/static/assets/ExecutionTrace-DG901hLR.js.map +0 -1
  785. package/dist/web/static/assets/MarkdownRenderer-CCIz1MOz.js +0 -2
  786. package/dist/web/static/assets/MarkdownRenderer-CCIz1MOz.js.map +0 -1
  787. package/dist/web/static/assets/Routing-B7BFLfjh.js +0 -2
  788. package/dist/web/static/assets/Routing-B7BFLfjh.js.map +0 -1
  789. package/dist/web/static/assets/SessionDetail-BT0l4RrK.js +0 -2
  790. package/dist/web/static/assets/SessionDetail-BT0l4RrK.js.map +0 -1
  791. package/dist/web/static/assets/Sessions-C6J_HQ_u.js +0 -2
  792. package/dist/web/static/assets/Sessions-C6J_HQ_u.js.map +0 -1
  793. package/dist/web/static/assets/Skills-4DQWLaTv.js +0 -2
  794. package/dist/web/static/assets/Skills-4DQWLaTv.js.map +0 -1
  795. package/dist/web/static/assets/WorkflowDetail-zhNqUkBE.js +0 -2
  796. package/dist/web/static/assets/WorkflowDetail-zhNqUkBE.js.map +0 -1
  797. package/dist/web/static/assets/Workflows-Btvi-lGw.js +0 -2
  798. package/dist/web/static/assets/Workflows-Btvi-lGw.js.map +0 -1
  799. package/dist/web/static/assets/export-BQQZLaHV.js +0 -4
  800. package/dist/web/static/assets/export-BQQZLaHV.js.map +0 -1
  801. package/dist/web/static/assets/index-Cgr9qMtq.js +0 -3
  802. package/dist/web/static/assets/index-Cgr9qMtq.js.map +0 -1
  803. package/dist/web/static/assets/index-CngWb5gC.css +0 -1
  804. package/dist/web/static/assets/lucide-53bR2rki.js.map +0 -1
@@ -1,729 +1,73 @@
1
1
  /**
2
2
  * Official built-in skills for claude-forge
3
- * Extracted from git history: c59670a:src-old/skills/official-sync/skill-definitions.ts
3
+ * Skill content is stored in src/skills/official/*.md files.
4
4
  */
5
+ import fs from 'node:fs';
6
+ import path from 'node:path';
7
+ import matter from 'gray-matter';
5
8
  /**
6
9
  * Official skill keyword mappings
7
10
  * Used for skill matching and orchestration
8
11
  */
9
12
  export const OFFICIAL_SKILL_KEYWORDS = {
10
13
  'official-tdd': ['tdd', 'test-driven', '测试驱动'],
11
- 'official-debug': ['debug', '调试', 'bug', '修复', 'fix', 'hotfix'],
14
+ 'official-debug': ['debug', '调试', 'bug', '修复', 'fix', 'hotfix', '报错', '异常', 'error', '不工作', '失败', 'failed', 'crash', '问题'],
12
15
  'official-refactor': ['refactor', '重构', 'cleanup', 'reorganize', 'restructure'],
13
- 'official-pr-review': ['review', '审查', 'pr review', 'code review'],
14
- 'official-harness-engineering': ['harness', 'legacy', '遗留代码', '特征测试', 'characterization'],
16
+ 'official-pr-review': ['review', '审查', 'pr review', 'code review', '检查', '看看代码', '帮我看', '评审'],
17
+ 'official-harness-engineering': ['harness', 'legacy', '遗留代码', '特征测试', 'characterization', '重构', 'refactor', '改造', '老代码'],
15
18
  'official-bmad': ['bmad', 'agile', 'four-role', '敏捷', '四角色', 'story', 'user story', 'sprint', '迭代'],
16
19
  'official-spec-driven-design': ['spec', 'sdd', 'spec-driven', '规格', '需求文档', 'requirements'],
17
20
  'official-architecture-decision': ['adr', 'architecture decision', '架构决策', '技术选型'],
18
21
  'official-api-design': ['api design', 'api 设计', 'restful', 'openapi', '接口设计'],
19
22
  'official-db-schema-design': ['schema', 'database', '数据库设计', 'migration', '迁移', 'sql'],
20
- 'official-performance-optimization': ['performance', '性能', 'optimize', '优化', 'profiling', '瓶颈'],
21
- 'official-security-hardening': ['security', '安全', 'owasp', 'hardening', '加固', 'vulnerability', '漏洞'],
23
+ 'official-performance-optimization': ['performance', '性能', 'optimize', '优化', 'profiling', '瓶颈', '慢', 'slow', 'timeout', '超时', '卡顿', 'latency'],
24
+ 'official-security-hardening': ['security', '安全', 'owasp', 'hardening', '加固', 'vulnerability', '漏洞', '注入', 'injection', 'xss', 'csrf', '权限', 'auth'],
22
25
  'official-release-checklist': ['release', 'deploy', '发布', '上线', 'checklist', '部署'],
23
26
  'official-doc-driven': ['doc-driven', 'documentation', '文档驱动', '写文档', 'readme'],
24
- 'planning-with-files': ['plan', 'planning', '规划', 'task plan', 'organize', '组织任务'],
27
+ 'planning-with-files': ['plan', 'planning', '规划', 'task plan', 'organize', '组织任务', '怎么做', '方案', '步骤', '计划'],
25
28
  'code-simplifier': ['simplify', 'refine', '简化', 'cleanup', 'code quality'],
26
29
  'find-skills': ['find skill', 'search skill', '查找技能', 'discover', 'install skill'],
27
30
  'webapp-testing': ['test webapp', 'playwright', 'browser test', 'e2e', 'frontend test'],
28
31
  'ui-ux-pro-max': ['ui', 'ux', 'design', 'color', 'typography', 'palette', '设计'],
29
32
  };
30
33
  /**
31
- * 16 official skills covering full-stack development workflow
32
- * Version changes trigger automatic updates in daemon startup
34
+ * Load official skills from a directory of .md files.
35
+ * Each .md file should have frontmatter with at minimum a `name` field.
36
+ * The `keywords` or `tags` field in frontmatter provides keyword matching hints.
37
+ *
38
+ * @param builtinDir - Path to the directory containing official skill .md files
39
+ * @returns Array of OfficialSkill objects
33
40
  */
34
- export const OFFICIAL_SKILLS = [
35
- {
36
- name: 'official-harness-engineering',
37
- version: '2.0.1',
38
- description: 'Harness Engineering:为遗留代码建立测试防护网再安全修改(四阶段完整指南)',
39
- keywords: ['harness', 'legacy', '遗留代码', '特征测试', 'characterization'],
40
- content: `---
41
- name: official-harness-engineering
42
- version: 2.0.1
43
- description: "Harness Engineering:为遗留代码建立测试防护网再安全修改(四阶段完整指南)"
44
- tags: [harness, testing, legacy, refactor]
45
- ---
46
-
47
- # Harness Engineering 方法论
48
-
49
- 当需要重构遗留代码(尤其是缺少测试的代码)时,按以下四阶段推进。
50
-
51
- ## 核心理念
52
-
53
- 在修改任何现有代码前,先建立测试防护网(harness),确保改动不破坏现有行为。
54
-
55
- ## 与 TDD 的区别
56
- - TDD 用于新功能开发(先测试后实现)
57
- - Harness Engineering 用于改动现有代码(先理解后保护再修改)
58
-
59
- ---
60
-
61
- ## 阶段 1:理解现有实现(Understand)
62
-
63
- **目标**:深入理解代码的当前行为和依赖关系。
64
-
65
- **步骤**:
66
- 1. 阅读目标代码,识别关键逻辑和边界条件
67
- 2. 绘制依赖关系图(哪些模块依赖这段代码)
68
- 3. 识别潜在的副作用和隐藏依赖
69
- 4. 找到所有入口点和输出点
70
- 5. 记录边界条件和隐含假设
71
-
72
- **输出**:行为文档(behavior document),记录当前实际行为
73
-
74
- **建议**:调用 \`researcher\` Agent 进行深度分析
75
-
76
- ---
77
-
78
- ## 阶段 2:建立特征测试(Characterize)
79
-
80
- **目标**:为现有行为建立测试"安全网"。
81
-
82
- **步骤**:
83
- 1. 编写特征测试(Characterization Tests)— 记录当前行为,无论对错
84
- 2. 覆盖所有已知的输入输出组合
85
- 3. 覆盖所有主要代码路径
86
- 4. 确保测试全绿(即使代码有 bug,先记录现状)
87
- 5. 目标覆盖率 > 80%
88
-
89
- **关键原则**:
90
- - 测试描述"代码现在做什么",不是"应该做什么"
91
- - 全部通过后才能继续下一阶段
92
-
93
- **建议**:调用 \`tester\` Agent 编写测试
94
-
95
- ---
96
-
97
- ## 阶段 3:安全重构(Refactor)
98
-
99
- **目标**:在测试保护下进行重构。
100
-
101
- **步骤**:
102
- 1. 小步重构(每次改动后立即运行测试)
103
- 2. 消除重复代码、提取函数、改善命名
104
- 3. 保持测试全绿
105
- 4. 每次只改一处,改完立即运行 harness
106
- 5. 测试失败 = 立即回滚,不要积累未验证的变更
107
-
108
- **重构优先级**:
109
- - 消除重复代码
110
- - 提取函数和模块
111
- - 改善命名和注释
112
- - 简化复杂逻辑
113
-
114
- **建议**:调用 \`refactor-specialist\` Agent 执行重构
115
-
116
- ---
117
-
118
- ## 阶段 4:验证重构结果(Verify)
119
-
120
- **目标**:确认重构没有破坏功能。
121
-
122
- **步骤**:
123
- 1. 运行完整测试套件
124
- 2. 手动验证关键路径
125
- 3. Code review
126
- 4. 对比原始行为文档,确认行为一致性
127
- 5. 逐步替换:新行为用新测试覆盖,旧 harness 逐步退役
128
-
129
- ---
130
-
131
- ## 何时使用
132
-
133
- - 遗留代码缺少测试
134
- - 代码复杂度高,不敢直接改
135
- - 需要大规模重构但风险高
136
- - 接手不熟悉的代码库
137
- - 修改高风险核心模块
138
-
139
- ## 决策规则
140
-
141
- - **简单重构**(complexity: simple):跳过理解阶段,直接建立特征测试
142
- - **中等重构**(complexity: moderate):完整四阶段流程
143
- - **复杂迁移**(complexity: complex):完整四阶段流程,额外谨慎
144
-
145
- ## 参考
146
-
147
- - Michael Feathers, *Working Effectively with Legacy Code*
148
- `,
149
- },
150
- {
151
- name: 'official-spec-driven-design',
152
- version: '1.0.0',
153
- description: 'SDD:先写规格文档再写代码,需求驱动实现',
154
- keywords: ['spec', 'sdd', 'spec-driven', '规格', '需求文档', 'requirements'],
155
- content: `---
156
- name: official-spec-driven-design
157
- version: 1.0.0
158
- description: "SDD:先写规格文档再写代码,需求驱动实现"
159
- tags: [sdd, spec, design, requirements]
160
- ---
161
-
162
- # Spec-Driven Design(规格驱动开发)
163
-
164
- 在写任何代码之前,先把规格写清楚。规格是代码的合同。
165
-
166
- ## 步骤
167
-
168
- 1. **写 SPEC.md**,包含:
169
- - 功能目标(一句话)
170
- - 输入/输出定义(含类型和边界)
171
- - 不做什么(明确排除项)
172
- - 验收标准(可测试的条件列表)
173
-
174
- 2. **评审规格** — 在写代码前确认规格无歧义
175
- - 每条验收标准都能写成测试吗?
176
- - 边界条件是否覆盖?
177
-
178
- 3. **按规格实现** — 代码只做规格里写的事
179
- - 遇到规格未覆盖的情况,先更新规格再写代码
180
-
181
- 4. **验收** — 逐条对照验收标准,全部通过才算完成
182
-
183
- ## 规则
184
- - 规格变更必须先于代码变更
185
- - 实现不得超出规格范围(避免过度设计)
186
- `,
187
- },
188
- {
189
- name: 'official-architecture-decision',
190
- version: '1.0.0',
191
- description: '架构决策记录(ADR):结构化记录重要技术决策',
192
- keywords: ['adr', 'architecture decision', '架构决策', '技术选型'],
193
- content: `---
194
- name: official-architecture-decision
195
- version: 1.0.0
196
- description: "架构决策记录(ADR):结构化记录重要技术决策"
197
- tags: [architecture, adr, design, decision]
198
- ---
199
-
200
- # 架构决策记录(ADR)
201
-
202
- 每个重要的技术决策都应该留下可追溯的记录。
203
-
204
- ## 何时写 ADR
205
- - 技术选型(框架、数据库、消息队列)
206
- - 系统边界划分
207
- - 接口协议选择
208
- - 影响超过 1 个模块的设计决策
209
-
210
- ## ADR 模板
211
-
212
- \\`,
213
- },
214
- {
215
- name: 'official-api-design',
216
- version: '1.0.0',
217
- description: 'API 设计规范:RESTful/RPC 接口设计最佳实践',
218
- keywords: ['api design', 'api 设计', 'restful', 'openapi', '接口设计'],
219
- content: `---
220
- name: official-api-design
221
- version: 1.0.0
222
- description: "API 设计规范:RESTful/RPC 接口设计最佳实践"
223
- tags: [api, rest, design, backend]
224
- ---
225
-
226
- # API 设计规范
227
-
228
- ## 设计顺序
229
- 1. 先定义资源和操作(不要先想 URL)
230
- 2. 写 OpenAPI/Protobuf 规格
231
- 3. 用 mock 验证调用方能用
232
- 4. 再实现
233
-
234
- ## RESTful 规范
235
- - URL 用名词复数:\\`,
236
- },
237
- {
238
- name: 'official-db-schema-design',
239
- version: '1.0.0',
240
- description: '数据库 Schema 设计:建模、迁移和演进最佳实践',
241
- keywords: ['schema', 'database', '数据库设计', 'migration', '迁移', 'sql'],
242
- content: `---
243
- name: official-db-schema-design
244
- version: 1.0.0
245
- description: "数据库 Schema 设计:建模、迁移和演进最佳实践"
246
- tags: [database, schema, sql, migration]
247
- ---
248
-
249
- # 数据库 Schema 设计
250
-
251
- ## 设计原则
252
- - 先建模(ER 图),再建表
253
- - 每张表只表达一个实体
254
- - 外键约束在数据库层面强制
255
-
256
- ## 命名规范
257
- - 表名:snake_case 复数(\\`,
258
- },
259
- {
260
- name: 'official-pr-review',
261
- version: '1.2.0',
262
- description: '结构化 PR 审查:覆盖正确性、安全性和可维护性',
263
- keywords: ['review', '审查', 'pr review', 'code review'],
264
- content: `---
265
- name: official-pr-review
266
- version: 1.2.0
267
- description: "结构化 PR 审查:覆盖正确性、安全性和可维护性"
268
- tags: [review, pr, quality]
269
- ---
270
-
271
- # Pull Request 审查
272
-
273
- ## 审查顺序(重要性从高到低)
274
-
275
- ### 1. 正确性
276
- - [ ] 逻辑在所有边界条件下正确
277
- - [ ] 错误处理恰当,异常不被静默吞掉
278
- - [ ] 无竞态条件或并发问题
279
-
280
- ### 2. 安全性
281
- - [ ] 无注入漏洞(SQL、命令、XSS、SSRF)
282
- - [ ] 敏感数据未被日志记录或暴露
283
- - [ ] 权限检查在正确的层级
284
-
285
- ### 3. 性能
286
- - [ ] 无 N+1 查询
287
- - [ ] 大数据量场景有分页或流式处理
288
-
289
- ### 4. 可维护性
290
- - [ ] 代码可读,命名自文档化
291
- - [ ] 单一职责,函数不超过 40 行
292
-
293
- ### 5. 测试
294
- - [ ] 新功能有对应测试
295
- - [ ] 边界条件有测试覆盖
296
-
297
- ## 输出格式
298
- **[BLOCKER|MAJOR|MINOR]** \\`,
299
- },
300
- {
301
- name: 'official-debug',
302
- version: '1.2.0',
303
- description: '系统化调试工作流:复现、隔离、修复、验证',
304
- keywords: ['debug', '调试', 'bug', '修复', 'fix', 'hotfix'],
305
- content: `---
306
- name: official-debug
307
- version: 1.2.0
308
- description: "系统化调试工作流:复现、隔离、修复、验证"
309
- tags: [debug, troubleshooting]
310
- ---
311
-
312
- # 系统化调试
313
-
314
- ## 步骤
315
-
316
- 1. **复现** — 确认 bug 可稳定复现
317
- - 记录:环境、输入、期望行为、实际行为
318
-
319
- 2. **隔离** — 缩小根因范围
320
- - 二分法排查代码路径
321
- - 检查近期变更(\\`,
322
- },
323
- {
324
- name: 'official-performance-optimization',
325
- version: '1.0.0',
326
- description: '性能优化工作流:先度量再优化,数据驱动',
327
- keywords: ['performance', '性能', 'optimize', '优化', 'profiling', '瓶颈'],
328
- content: `---
329
- name: official-performance-optimization
330
- version: 1.0.0
331
- description: "性能优化工作流:先度量再优化,数据驱动"
332
- tags: [performance, optimization, profiling]
333
- ---
334
-
335
- # 性能优化
336
-
337
- ## 黄金法则
338
- **永远先度量,再优化。** 没有数据的优化是猜测。
339
-
340
- ## 步骤
341
-
342
- 1. **建立基线** — 用真实数据测量当前性能
343
- - 定义指标:延迟(P50/P95/P99)、吞吐量、内存
344
-
345
- 2. **找瓶颈** — Profile,不要猜
346
- - CPU:火焰图;内存:heap 分析;I/O:慢查询日志
347
-
348
- 3. **优化** — 从收益最大的瓶颈开始
349
- - 算法复杂度 > 减少 I/O > 缓存 > 并发
350
-
351
- 4. **验证** — 对比基线,功能测试全部通过
352
-
353
- ## 常见优化方向(按收益排序)
354
- - 数据库:索引、消除 N+1、连接池
355
- - 缓存:热点数据、计算结果
356
- - 异步化:I/O 密集型操作
357
- - 批处理:替代逐条处理
358
- `,
359
- },
360
- {
361
- name: 'official-security-hardening',
362
- version: '1.0.0',
363
- description: '安全加固清单:覆盖 OWASP Top 10 和常见安全实践',
364
- keywords: ['security', '安全', 'owasp', 'hardening', '加固', 'vulnerability', '漏洞'],
365
- content: `---
366
- name: official-security-hardening
367
- version: 1.0.0
368
- description: "安全加固清单:覆盖 OWASP Top 10 和常见安全实践"
369
- tags: [security, owasp, hardening]
370
- ---
371
-
372
- # 安全加固
373
-
374
- ## 输入验证
375
- - 所有外部输入在边界处验证(类型、长度、格式)
376
- - 参数化查询,禁止字符串拼接 SQL
377
- - 文件上传:验证类型、大小、存储路径隔离
378
-
379
- ## 认证与授权
380
- - 密码:bcrypt/argon2 哈希,禁止 MD5/SHA1
381
- - Token:短有效期 + refresh token 机制
382
- - 每个接口显式检查权限,不依赖前端隐藏
383
-
384
- ## 数据保护
385
- - 敏感字段(密码、密钥、PII)不写日志
386
- - HTTPS only,HSTS header
387
- - 密钥走环境变量,不进代码库
388
-
389
- ## 依赖安全
390
- - 定期运行 \\`,
391
- },
392
- {
393
- name: 'official-release-checklist',
394
- version: '1.0.0',
395
- description: '发布上线清单:从代码冻结到生产验证的完整流程',
396
- keywords: ['release', 'deploy', '发布', '上线', 'checklist', '部署'],
397
- content: `---
398
- name: official-release-checklist
399
- version: 1.0.0
400
- description: "发布上线清单:从代码冻结到生产验证的完整流程"
401
- tags: [release, deploy, checklist, devops]
402
- ---
403
-
404
- # 发布上线清单
405
-
406
- ## 发布前
407
- - [ ] 所有测试通过(单元、集成、E2E)
408
- - [ ] 代码已 review 并合并到主干
409
- - [ ] 数据库迁移脚本已准备,可回滚
410
- - [ ] 配置变更已确认(环境变量、feature flag)
411
- - [ ] 监控告警已配置
412
- - [ ] 回滚方案已明确
413
-
414
- ## 发布中
415
- - [ ] 灰度/金丝雀发布(先放 5% 流量)
416
- - [ ] 观察关键指标 5 分钟:错误率、P99 延迟
417
-
418
- ## 发布后
419
- - [ ] 生产环境冒烟测试
420
- - [ ] 监控观察 30 分钟
421
- - [ ] 通知相关方
422
-
423
- ## 回滚触发条件
424
- - 错误率上升 > 1%
425
- - P99 延迟上升 > 50%
426
- - 出现 CRITICAL 级别日志
427
- `,
428
- },
429
- {
430
- name: 'official-doc-driven',
431
- version: '1.0.0',
432
- description: '文档驱动开发:先写文档再写代码,保持文档与代码同步',
433
- keywords: ['doc-driven', 'documentation', '文档驱动', '写文档', 'readme'],
434
- content: `---
435
- name: official-doc-driven
436
- version: 1.0.0
437
- description: "文档驱动开发:先写文档再写代码,保持文档与代码同步"
438
- tags: [documentation, doc-driven, readme]
439
- ---
440
-
441
- # 文档驱动开发
442
-
443
- ## 核心理念
444
- 如果你无法清晰地写出来,说明你还没想清楚。先写文档,逼自己想清楚再动手。
445
-
446
- ## 步骤
447
-
448
- 1. **写 README 先于代码**
449
- - 描述模块是什么、解决什么问题
450
- - 写出使用示例(即使 API 还不存在)
451
- - 示例写起来别扭 = 设计有问题
452
-
453
- 2. **接口文档先于实现**
454
- - 函数签名 + JSDoc/注释先写
455
- - 参数、返回值、异常都要说明
456
-
457
- 3. **保持同步**
458
- - 代码变更时同步更新文档
459
- - PR 模板加入"文档是否已更新"检查项
460
-
461
- ## 文档层级
462
- - README:模块概述 + 快速开始
463
- - ARCHITECTURE.md:系统设计和关键决策
464
- - 代码注释:解释"为什么",不解释"是什么"
465
- `,
466
- },
467
- {
468
- name: 'planning-with-files',
469
- version: '2.35.0',
470
- description: 'Manus 风格文件式任务规划:创建 task_plan.md/findings.md/progress.md 追踪复杂任务',
471
- keywords: ['plan', 'planning', '规划', 'task plan', 'organize', '组织任务'],
472
- content: `---
473
- name: planning-with-files
474
- description: Implements Manus-style file-based planning to organize and track progress on complex tasks. Creates task_plan.md, findings.md, and progress.md. Use when asked to plan out, break down, or organize a multi-step project, research task, or any work requiring 5+ tool calls. Supports automatic session recovery after /clear.
475
- user-invocable: true
476
- allowed-tools: "Read Write Edit Bash Glob Grep"
477
- hooks:
478
- UserPromptSubmit:
479
- - hooks:
480
- - type: command
481
- command: "if [ -f task_plan.md ]; then echo '[planning-with-files] ACTIVE PLAN — current state:'; head -50 task_plan.md; echo ''; echo '=== recent progress ==='; tail -20 progress.md 2>/dev/null; echo ''; echo '[planning-with-files] Read findings.md for research context. Continue from the current phase.'; fi"
482
- PreToolUse:
483
- - matcher: "Write|Edit|Bash|Read|Glob|Grep"
484
- hooks:
485
- - type: command
486
- command: "cat task_plan.md 2>/dev/null | head -30 || true"
487
- PostToolUse:
488
- - matcher: "Write|Edit"
489
- hooks:
490
- - type: command
491
- command: "if [ -f task_plan.md ]; then echo '[planning-with-files] Update progress.md with what you just did. If a phase is now complete, update task_plan.md status.'; fi"
492
- Stop:
493
- - hooks:
494
- - type: command
495
- command: "powershell.exe -NoProfile -ExecutionPolicy Bypass -Command \\\\"& (Get-ChildItem -Path (Join-Path ~ '.claude/plugins/cache') -Filter check-complete.ps1 -Recurse -EA 0 | Select-Object -First 1).FullName\\\\" 2>/dev/null || sh \\\\"$(ls $HOME/.claude/plugins/cache/*/*/*/scripts/check-complete.sh 2>/dev/null | head -1)\\\\" 2>/dev/null || true"
496
- metadata:
497
- version: "2.35.0"
498
- ---
499
-
500
- # Planning with Files
501
-
502
- Work like Manus: Use persistent markdown files as your "working memory on disk."
503
-
504
- ## FIRST: Restore Context (v2.2.0)
505
-
506
- **Before doing anything else**, check if planning files exist and read them:
507
-
508
- 1. If \\`,
509
- },
510
- {
511
- name: 'code-simplifier',
512
- version: '1.0.0',
513
- description: '代码简化与精炼:保持功能不变,提升清晰度和可维护性',
514
- keywords: ['simplify', 'refine', '简化', 'cleanup', 'code quality'],
515
- content: `---
516
- name: code-simplifier
517
- description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
518
- model: opus
519
- ---
520
-
521
- You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
522
-
523
- You will analyze recently modified code and apply refinements that:
524
-
525
- 1. **Preserve Functionality**: Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
526
-
527
- 2. **Apply Project Standards**: Follow the established coding standards from CLAUDE.md including:
528
-
529
- - Use ES modules with proper import sorting and extensions
530
- - Prefer \\`,
531
- },
532
- {
533
- name: 'find-skills',
534
- version: '1.0.0',
535
- description: '技能发现与安装:帮助用户搜索和安装 agent skills',
536
- keywords: ['find skill', 'search skill', '查找技能', 'discover', 'install skill'],
537
- content: `---
538
- name: find-skills
539
- description: Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
540
- ---
541
-
542
- # Find Skills
543
-
544
- This skill helps you discover and install skills from the open agent skills ecosystem.
545
-
546
- ## When to Use This Skill
547
-
548
- Use this skill when the user:
549
-
550
- - Asks "how do I do X" where X might be a common task with an existing skill
551
- - Says "find a skill for X" or "is there a skill for X"
552
- - Asks "can you do X" where X is a specialized capability
553
- - Expresses interest in extending agent capabilities
554
- - Wants to search for tools, templates, or workflows
555
- - Mentions they wish they had help with a specific domain (design, testing, deployment, etc.)
556
-
557
- ## What is the Skills CLI?
558
-
559
- The Skills CLI (\\`,
560
- },
561
- {
562
- name: 'webapp-testing',
563
- version: '1.0.0',
564
- description: 'Web 应用测试:使用 Playwright 自动化浏览器交互和前端验证',
565
- keywords: ['test webapp', 'playwright', 'browser test', 'e2e', 'frontend test'],
566
- content: `---
567
- name: webapp-testing
568
- description: Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
569
- license: Complete terms in LICENSE.txt
570
- ---
571
-
572
- # Web Application Testing
573
-
574
- To test local web applications, write native Python Playwright scripts.
575
-
576
- **Helper Scripts Available**:
577
- - \\`,
578
- },
579
- {
580
- name: 'ui-ux-pro-max',
581
- version: '2.5.0',
582
- description: 'AI 驱动的设计智能工具:67 种 UI 风格、161 种配色、57 种字体搭配、99 条 UX 准则',
583
- keywords: ['ui', 'ux', 'design', 'color', 'typography', 'palette', '设计'],
584
- content: `---
585
- name: ui-ux-pro-max
586
- version: 2.5.0
587
- description: "AI 驱动的设计智能工具:67 种 UI 风格、161 种配色、57 种字体搭配、99 条 UX 准则"
588
- tags: [ui, ux, design, color, typography, accessibility]
589
- ---
590
-
591
- # CLAUDE.md
592
-
593
- This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
594
-
595
- ## Project Overview
596
-
597
- Antigravity Kit is an AI-powered design intelligence toolkit providing searchable databases of UI styles, color palettes, font pairings, chart types, and UX guidelines. It works as a skill/workflow for AI coding assistants (Claude Code, Windsurf, Cursor, etc.).
598
-
599
- ## Search Command
600
-
601
- \\`,
602
- },
603
- {
604
- name: 'official-bmad',
605
- version: '1.0.1',
606
- description: 'BMAD 方法论:四角色敏捷协作指南(完整四阶段流程)',
607
- keywords: ['bmad', 'agile', 'four-role', 'collaboration', '敏捷', '四角色', 'story', 'sprint'],
608
- content: `---
609
- name: official-bmad
610
- version: 1.0.1
611
- description: "BMAD 方法论:四角色敏捷协作指南(完整四阶段流程)"
612
- tags: [bmad, agile, four-role, collaboration]
613
- ---
614
-
615
- # BMAD 方法论(Four-Role Agile)
616
-
617
- BMAD 是一种四角色敏捷协作模式,适用于复杂功能开发和端到端的用户故事实现。
618
-
619
- ## 核心理念
620
-
621
- 通过明确的角色划分和阶段流程,确保需求、设计、实现和评审的质量。
622
-
623
- ## 四个角色
624
-
625
- 1. **Business(业务/产品经理)**:定义需求和验收标准
626
- 2. **Maker(实现者/开发者)**:编写代码和实现功能
627
- 3. **Architect(架构师)**:设计系统结构和接口
628
- 4. **Developer(开发/集成者)**:集成和测试
629
-
630
- ---
631
-
632
- ## 阶段 1:分析(Analyze)
633
-
634
- **角色**:Business + Architect
635
-
636
- **目标**:澄清需求,识别技术约束和依赖。
637
-
638
- **步骤**:
639
- 1. 澄清需求(用户故事、验收标准)
640
- 2. 识别技术约束和依赖
641
- 3. 评估风险和可行性
642
- 4. 定义输入输出和边界条件
643
-
644
- **输出**:需求文档(requirements document)
645
-
646
- **建议**:调用 \`researcher\` 或 \`planner\` Agent
647
-
648
- ---
649
-
650
- ## 阶段 2:设计(Design)
651
-
652
- **角色**:Architect + Developer
653
-
654
- **目标**:设计技术方案和模块结构。
655
-
656
- **步骤**:
657
- 1. 设计模块划分和接口
658
- 2. 选择技术栈和工具
659
- 3. 制定实施计划
660
- 4. 设计数据流和架构图
661
- 5. 定义模块间的接口契约
662
-
663
- **输出**:设计文档(design document)
664
-
665
- **建议**:调用 \`planner\` Agent
666
-
667
- ---
668
-
669
- ## 阶段 3:实现(Implement)
670
-
671
- **角色**:Maker + Developer
672
-
673
- **目标**:按设计编写代码并集成。
674
-
675
- **步骤**:
676
- 1. 按设计编写代码
677
- 2. 编写单元测试
678
- 3. 遵循编码规范
679
- 4. 集成到主分支
680
- 5. 编写清晰、可维护的代码
681
-
682
- **输出**:可运行的代码和测试
683
-
684
- **建议**:调用 \`coder\` 或 \`feature-developer\` Agent
685
-
686
- ---
687
-
688
- ## 阶段 4:评审(Review)
689
-
690
- **角色**:全员(Tech Lead 主导)
691
-
692
- **目标**:确保代码质量、安全性和可维护性。
693
-
694
- **步骤**:
695
- 1. Code review(检查代码质量)
696
- 2. 功能验收(Business 验证是否满足需求)
697
- 3. 技术债评估(Architect 审查架构合理性)
698
- 4. 安全性检查
699
- 5. 性能评估
700
-
701
- **输出**:评审报告(review report)
702
-
703
- **建议**:调用 \`reviewer\` Agent
704
-
705
- ---
706
-
707
- ## 何时使用
708
-
709
- - 跨职能团队协作
710
- - 复杂功能需要多角色参与
711
- - 需要明确的职责划分
712
- - 用户故事级别的完整功能开发
713
- - Sprint 迭代开发
714
- - 端到端(end-to-end)功能实现
715
-
716
- ## 决策规则
717
-
718
- - **简单功能**(complexity: simple):只需实现阶段
719
- - **中等功能**(complexity: moderate):设计 + 实现 + 评审
720
- - **复杂功能**(complexity: complex):完整四阶段流程
721
-
722
- ## 参考
723
-
724
- - BMAD Framework: https://bmad.dev
725
- - Four-Role Agile Development Methodology
726
- `,
727
- },
728
- ];
41
+ export function loadOfficialSkills(builtinDir) {
42
+ if (!fs.existsSync(builtinDir)) {
43
+ throw new Error(`Official skills directory not found: ${builtinDir}`);
44
+ }
45
+ const entries = fs.readdirSync(builtinDir);
46
+ const skills = [];
47
+ for (const filename of entries) {
48
+ if (!filename.endsWith('.md'))
49
+ continue;
50
+ const filePath = path.join(builtinDir, filename);
51
+ const raw = fs.readFileSync(filePath, 'utf-8');
52
+ const parsed = matter(raw);
53
+ const { data, content: body } = parsed;
54
+ const id = path.basename(filename, '.md');
55
+ const name = typeof data.name === 'string' ? data.name : id;
56
+ const version = typeof data.version === 'string' ? data.version : '1.0.0';
57
+ const description = typeof data.description === 'string' ? data.description : '';
58
+ // Support both `keywords` (claude-forge standard) and `tags` (Claude Code official skill convention)
59
+ const rawKeywords = data.keywords ?? data.tags;
60
+ const keywords = Array.isArray(rawKeywords)
61
+ ? rawKeywords.filter((k) => typeof k === 'string')
62
+ : [];
63
+ skills.push({
64
+ name,
65
+ version,
66
+ description,
67
+ keywords,
68
+ content: raw, // full file content including frontmatter
69
+ });
70
+ }
71
+ return skills;
72
+ }
729
73
  //# sourceMappingURL=official-skills.js.map