@winspan/claude-forge 8.53.2 → 8.54.3

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 (390) hide show
  1. package/DEVELOPMENT.md +290 -221
  2. package/README.md +50 -8
  3. package/dist/cli/commands/skills.d.ts.map +1 -1
  4. package/dist/cli/commands/skills.js +7 -3
  5. package/dist/cli/commands/skills.js.map +1 -1
  6. package/dist/cli/init/hook-manager.d.ts +1 -1
  7. package/dist/cli/init/hook-manager.d.ts.map +1 -1
  8. package/dist/cli/init/hook-manager.js +1 -0
  9. package/dist/cli/init/hook-manager.js.map +1 -1
  10. package/dist/core/storage/events.d.ts.map +1 -1
  11. package/dist/core/storage/events.js +0 -1
  12. package/dist/core/storage/events.js.map +1 -1
  13. package/dist/core/storage/maintenance.d.ts +25 -3
  14. package/dist/core/storage/maintenance.d.ts.map +1 -1
  15. package/dist/core/storage/maintenance.js +33 -4
  16. package/dist/core/storage/maintenance.js.map +1 -1
  17. package/dist/core/storage/routing.d.ts +4 -0
  18. package/dist/core/storage/routing.d.ts.map +1 -1
  19. package/dist/core/storage/routing.js +10 -4
  20. package/dist/core/storage/routing.js.map +1 -1
  21. package/dist/core/storage/sessions.d.ts +17 -0
  22. package/dist/core/storage/sessions.d.ts.map +1 -1
  23. package/dist/core/storage/sessions.js +64 -0
  24. package/dist/core/storage/sessions.js.map +1 -1
  25. package/dist/core/storage/skills.d.ts +4 -0
  26. package/dist/core/storage/skills.d.ts.map +1 -1
  27. package/dist/core/storage/skills.js +10 -2
  28. package/dist/core/storage/skills.js.map +1 -1
  29. package/dist/core/storage/sqlite.d.ts +5 -0
  30. package/dist/core/storage/sqlite.d.ts.map +1 -1
  31. package/dist/core/storage/sqlite.js +6 -0
  32. package/dist/core/storage/sqlite.js.map +1 -1
  33. package/dist/core/storage/tasks.d.ts.map +1 -1
  34. package/dist/core/storage/tasks.js +2 -0
  35. package/dist/core/storage/tasks.js.map +1 -1
  36. package/dist/core/types.d.ts +7 -0
  37. package/dist/core/types.d.ts.map +1 -1
  38. package/dist/daemon/index.d.ts.map +1 -1
  39. package/dist/daemon/index.js +19 -4
  40. package/dist/daemon/index.js.map +1 -1
  41. package/dist/skills/registry.d.ts.map +1 -1
  42. package/dist/skills/registry.js +13 -2
  43. package/dist/skills/registry.js.map +1 -1
  44. package/dist/skills/semantic-matcher.d.ts +2 -2
  45. package/dist/skills/semantic-matcher.d.ts.map +1 -1
  46. package/dist/skills/semantic-matcher.js +14 -19
  47. package/dist/skills/semantic-matcher.js.map +1 -1
  48. package/dist/skills/upgrade-engine.d.ts +3 -1
  49. package/dist/skills/upgrade-engine.d.ts.map +1 -1
  50. package/dist/skills/upgrade-engine.js +25 -14
  51. package/dist/skills/upgrade-engine.js.map +1 -1
  52. package/dist/web/analytics/weekly-report.d.ts.map +1 -1
  53. package/dist/web/analytics/weekly-report.js +21 -29
  54. package/dist/web/analytics/weekly-report.js.map +1 -1
  55. package/dist/web/routes/patch.d.ts.map +1 -1
  56. package/dist/web/routes/patch.js +32 -2
  57. package/dist/web/routes/patch.js.map +1 -1
  58. package/dist/web/routes/sessions.d.ts.map +1 -1
  59. package/dist/web/routes/sessions.js +9 -7
  60. package/dist/web/routes/sessions.js.map +1 -1
  61. package/dist/web/routes/trace.d.ts.map +1 -1
  62. package/dist/web/routes/trace.js +2 -3
  63. package/dist/web/routes/trace.js.map +1 -1
  64. package/dist/web/server.d.ts.map +1 -1
  65. package/dist/web/server.js +3 -2
  66. package/dist/web/server.js.map +1 -1
  67. package/package.json +12 -2
  68. package/scripts/postinstall.cjs +21 -0
  69. package/.claude/CLAUDE.md +0 -17
  70. package/.eslintrc.js +0 -23
  71. package/.prettierrc +0 -8
  72. package/ARCHITECTURE_ISSUES.md +0 -249
  73. package/CLAUDE.md +0 -265
  74. package/CLAUDE.md.backup +0 -488
  75. package/docs/concurrent-agents.md +0 -129
  76. package/docs/design/architecture-review-20260516.md +0 -232
  77. package/docs/design/fix-skills-data-and-set-leak-spec-20260516-1300.md +0 -219
  78. package/docs/design/h1-storage-aggregation-spec-20260518-1121.md +0 -299
  79. package/docs/design/h2-getdatabase-encapsulation-spec-20260518-1450.md +0 -191
  80. package/docs/design/h3-fallback-removal-spec-20260518-1245.md +0 -76
  81. package/docs/design/h4-index-dedup-spec-20260518-1230.md +0 -109
  82. package/docs/design/h6-services-migration-spec-20260518-1355.md +0 -82
  83. package/docs/design/hook-failure-queue-spec-20260516-1530.md +0 -204
  84. package/docs/design/l1-swarm-protocol-extract-spec-20260518-1605.md +0 -106
  85. package/docs/design/m10-forge-paths-spec-20260518-1320.md +0 -121
  86. package/docs/design/m2-m3-tool-input-spec-20260518-1425.md +0 -131
  87. package/docs/design/m7-routing-event-association-spec-20260518-1545.md +0 -103
  88. package/docs/design/project-path-gitroot-spec-20260518-1715.md +0 -134
  89. package/docs/design/refactor-phase1-spec-20260515-1600.md +0 -543
  90. package/docs/design/refactor-phase2-spec-20260515-1700.md +0 -424
  91. package/docs/design/skill-ai-upgrade-spec-20260518-1930.md +0 -297
  92. package/docs/design/task-active-gc-spec-20260518-1745.md +0 -146
  93. package/docs/design/tasks-list-filter-pagination-spec-20260518-0930.md +0 -208
  94. package/docs/implementation/daemon-skill-sync-changelog-20260518-2000.md +0 -22
  95. package/docs/implementation/fix-skills-data-and-set-leak-changelog-20260516-1300.md +0 -104
  96. package/docs/implementation/h1-storage-aggregation-changelog-20260518-1121.md +0 -82
  97. package/docs/implementation/h2-final-changelog-20260518-1530.md +0 -61
  98. package/docs/implementation/h2-phase1-safety-net-changelog-20260518-1450.md +0 -70
  99. package/docs/implementation/h2-phase2-operations-changelog-20260518-1450.md +0 -120
  100. package/docs/implementation/h2-phase3-callsites-changelog-20260518-1450.md +0 -71
  101. package/docs/implementation/h3-fallback-removal-changelog-20260518-1245.md +0 -71
  102. package/docs/implementation/h4-index-dedup-changelog-20260518-1230.md +0 -60
  103. package/docs/implementation/h6-services-migration-changelog-20260518-1355.md +0 -46
  104. package/docs/implementation/h7-m9-defaults-changelog-20260518-1300.md +0 -46
  105. package/docs/implementation/hook-failure-queue-changelog-20260516-1530.md +0 -196
  106. package/docs/implementation/hotfix-daemon-event-reject-20260516-1430.md +0 -56
  107. package/docs/implementation/l1-swarm-protocol-extract-changelog-20260518-1605.md +0 -45
  108. package/docs/implementation/l3-l4-daemon-perf-changelog-20260518-1410.md +0 -63
  109. package/docs/implementation/l6-l8-final-cleanup-changelog-20260518-1640.md +0 -38
  110. package/docs/implementation/m1-m4-m5-l7-cleanup-changelog-20260518-1310.md +0 -58
  111. package/docs/implementation/m10-forge-paths-changelog-20260518-1320.md +0 -60
  112. package/docs/implementation/m2-m3-tool-input-changelog-20260518-1425.md +0 -43
  113. package/docs/implementation/m6-m8-naming-shutdown-changelog-20260518-1340.md +0 -56
  114. package/docs/implementation/m7-routing-association-changelog-20260518-1545.md +0 -69
  115. package/docs/implementation/project-path-gitroot-changelog-20260518-1715.md +0 -63
  116. package/docs/implementation/refactor-phase1-changelog-20260515-1630.md +0 -354
  117. package/docs/implementation/refactor-phase2-changelog-20260515-1705.md +0 -421
  118. package/docs/implementation/skill-ai-upgrade-changelog-20260518-1930.md +0 -49
  119. package/docs/implementation/task-active-gc-changelog-20260518-1745.md +0 -35
  120. package/docs/implementation/task-title-summary-changelog-20260518-1130.md +0 -39
  121. package/docs/implementation/tasks-detail-back-loses-filters-changelog-20260518-1100.md +0 -22
  122. package/docs/implementation/tasks-list-filter-pagination-changelog-20260518-0930.md +0 -72
  123. package/docs/implementation/tasks-page-white-screen-hotfix-changelog-20260518-1015.md +0 -56
  124. package/docs/reviews/claudemd-template-sync.md +0 -54
  125. package/docs/reviews/task-title-summary.md +0 -92
  126. package/docs/reviews/tasks-detail-back-loses-filters.md +0 -58
  127. package/docs/reviews/tasks-filter-pagination.md +0 -80
  128. package/docs/reviews/tasks-page-white-screen-hotfix.md +0 -126
  129. package/docs/ruflo-learning-strategy.md +0 -322
  130. package/docs/skills-deduplication-analysis.md +0 -83
  131. package/docs/skills-multiformat-support.md +0 -177
  132. package/docs/skills-third-party.md +0 -183
  133. package/docs/testing/tasks-filter-pagination-test-report.md +0 -86
  134. package/forge +0 -321
  135. package/playwright.config.ts +0 -40
  136. package/scripts/demo-v2.ts +0 -91
  137. package/scripts/dev-daemon.sh +0 -232
  138. package/scripts/dev-web.ts +0 -109
  139. package/scripts/e2e-mcp-link.ts +0 -423
  140. package/scripts/e2e-methodology-quality.ts +0 -253
  141. package/scripts/e2e-routing.ts +0 -456
  142. package/scripts/e2e-user-methodology.ts +0 -326
  143. package/scripts/e2e-web-workflows.ts +0 -299
  144. package/scripts/migrate-legacy-to-dynamic.sql +0 -108
  145. package/scripts/regenerate-execution-docs.ts +0 -116
  146. package/scripts/sync-agent-skills.ts +0 -193
  147. package/scripts/test-hook.sh +0 -71
  148. package/scripts/verify-skill-loading.ts +0 -62
  149. package/src/claudemd/claudemd-generator.ts +0 -568
  150. package/src/claudemd/convention-extractor.ts +0 -69
  151. package/src/claudemd/index.ts +0 -35
  152. package/src/claudemd/persona-manager.ts +0 -88
  153. package/src/claudemd/resume-manager.ts +0 -236
  154. package/src/claudemd/tech-detector.ts +0 -220
  155. package/src/claudemd/templates/swarm-protocol.md +0 -222
  156. package/src/cli/commands/claudemd.ts +0 -84
  157. package/src/cli/commands/config.ts +0 -46
  158. package/src/cli/commands/daemon.ts +0 -310
  159. package/src/cli/commands/executions.ts +0 -115
  160. package/src/cli/commands/init.ts +0 -204
  161. package/src/cli/commands/logs.ts +0 -181
  162. package/src/cli/commands/mcp.ts +0 -242
  163. package/src/cli/commands/menu.ts +0 -357
  164. package/src/cli/commands/skills.ts +0 -328
  165. package/src/cli/commands/stats.ts +0 -73
  166. package/src/cli/commands/status.ts +0 -69
  167. package/src/cli/commands/template.ts +0 -77
  168. package/src/cli/commands/trace.ts +0 -148
  169. package/src/cli/index.ts +0 -42
  170. package/src/cli/init/hook-manager.ts +0 -132
  171. package/src/core/ai/provider.ts +0 -308
  172. package/src/core/ai/types.ts +0 -51
  173. package/src/core/config.ts +0 -124
  174. package/src/core/constants.ts +0 -67
  175. package/src/core/event-fields.ts +0 -32
  176. package/src/core/queue/index.ts +0 -192
  177. package/src/core/storage/base.ts +0 -302
  178. package/src/core/storage/events.ts +0 -434
  179. package/src/core/storage/injections.ts +0 -78
  180. package/src/core/storage/maintenance.ts +0 -59
  181. package/src/core/storage/migrations/002_add_skill_tracking.sql +0 -6
  182. package/src/core/storage/migrations/003_add_skill_invocations.sql +0 -23
  183. package/src/core/storage/performance-indexes.sql +0 -23
  184. package/src/core/storage/routing.ts +0 -322
  185. package/src/core/storage/rows.ts +0 -112
  186. package/src/core/storage/schema.sql +0 -224
  187. package/src/core/storage/sessions.ts +0 -168
  188. package/src/core/storage/skills.ts +0 -233
  189. package/src/core/storage/sqlite.ts +0 -293
  190. package/src/core/storage/tasks.ts +0 -318
  191. package/src/core/storage/token-usage.ts +0 -93
  192. package/src/core/types.ts +0 -181
  193. package/src/core/utils/error-handler.ts +0 -257
  194. package/src/core/utils/forge-resume-block.ts +0 -74
  195. package/src/core/utils/format.ts +0 -69
  196. package/src/core/utils/git.ts +0 -23
  197. package/src/core/utils/logger.ts +0 -134
  198. package/src/core/utils/lru-cache.ts +0 -54
  199. package/src/core/utils/path.ts +0 -19
  200. package/src/core/utils/session.ts +0 -26
  201. package/src/core/utils/time.ts +0 -37
  202. package/src/core/utils/token-tracker.ts +0 -97
  203. package/src/daemon/event-parser.ts +0 -36
  204. package/src/daemon/handlers/history-exporter.ts +0 -117
  205. package/src/daemon/handlers/post-tool-use.ts +0 -54
  206. package/src/daemon/handlers/stop.ts +0 -208
  207. package/src/daemon/handlers/user-prompt.ts +0 -178
  208. package/src/daemon/hook-sync.ts +0 -91
  209. package/src/daemon/index.ts +0 -312
  210. package/src/daemon/launchd/com.claude-forge.daemon.plist.template +0 -47
  211. package/src/daemon/launchd-installer.ts +0 -260
  212. package/src/daemon/lifecycle.ts +0 -128
  213. package/src/daemon/router.ts +0 -40
  214. package/src/daemon/server.ts +0 -196
  215. package/src/daemon/services/task-segmenter.ts +0 -112
  216. package/src/daemon/skill-sync.ts +0 -88
  217. package/src/hooks/hook-lib.sh +0 -118
  218. package/src/hooks/notification.sh +0 -35
  219. package/src/hooks/post-tool-use.sh +0 -61
  220. package/src/hooks/pre-tool-use.sh +0 -63
  221. package/src/hooks/stop.sh +0 -43
  222. package/src/hooks/user-prompt-submit.sh +0 -69
  223. package/src/mcp/server.ts +0 -322
  224. package/src/skills/index.ts +0 -2
  225. package/src/skills/invocation-guard.ts +0 -177
  226. package/src/skills/matcher.ts +0 -148
  227. package/src/skills/official/code-simplifier.md +0 -52
  228. package/src/skills/official/find-skills.md +0 -142
  229. package/src/skills/official/official-api-design.md +0 -30
  230. package/src/skills/official/official-architecture-decision.md +0 -41
  231. package/src/skills/official/official-bmad.md +0 -118
  232. package/src/skills/official/official-db-schema-design.md +0 -34
  233. package/src/skills/official/official-debug.md +0 -25
  234. package/src/skills/official/official-doc-driven.md +0 -31
  235. package/src/skills/official/official-harness-engineering.md +0 -108
  236. package/src/skills/official/official-performance-optimization.md +0 -30
  237. package/src/skills/official/official-pr-review.md +0 -35
  238. package/src/skills/official/official-release-checklist.md +0 -30
  239. package/src/skills/official/official-security-hardening.md +0 -32
  240. package/src/skills/official/official-spec-driven-design.md +0 -31
  241. package/src/skills/official/planning-with-files.md +0 -241
  242. package/src/skills/official/ui-ux-pro-max.md +0 -105
  243. package/src/skills/official/webapp-testing.md +0 -96
  244. package/src/skills/official-skills.ts +0 -89
  245. package/src/skills/registry.ts +0 -355
  246. package/src/skills/semantic-matcher.ts +0 -234
  247. package/src/skills/tools/pipeline-suggest.ts +0 -226
  248. package/src/skills/tools/skill-invoke.ts +0 -168
  249. package/src/skills/tools/skill-list.ts +0 -59
  250. package/src/skills/upgrade-engine.ts +0 -541
  251. package/src/skills/upgrade-prompt.ts +0 -84
  252. package/src/templates/go.yaml +0 -53
  253. package/src/templates/python.yaml +0 -59
  254. package/src/templates/react.yaml +0 -55
  255. package/src/templates/template-manager.ts +0 -170
  256. package/src/web/analytics/anti-pattern-detector.ts +0 -367
  257. package/src/web/analytics/drift-detector.ts +0 -219
  258. package/src/web/analytics/weekly-report.ts +0 -431
  259. package/src/web/auth-middleware.ts +0 -54
  260. package/src/web/routes/_helpers.ts +0 -34
  261. package/src/web/routes/ai.ts +0 -204
  262. package/src/web/routes/auth.ts +0 -22
  263. package/src/web/routes/drift.ts +0 -25
  264. package/src/web/routes/error-handler.ts +0 -120
  265. package/src/web/routes/events.ts +0 -47
  266. package/src/web/routes/insights.ts +0 -43
  267. package/src/web/routes/patch.ts +0 -117
  268. package/src/web/routes/reports.ts +0 -34
  269. package/src/web/routes/rules.ts +0 -76
  270. package/src/web/routes/sessions.ts +0 -250
  271. package/src/web/routes/skill-stats.ts +0 -92
  272. package/src/web/routes/skills.ts +0 -350
  273. package/src/web/routes/static.ts +0 -67
  274. package/src/web/routes/stats.ts +0 -50
  275. package/src/web/routes/status.ts +0 -30
  276. package/src/web/routes/tasks.ts +0 -193
  277. package/src/web/routes/token-usage.ts +0 -20
  278. package/src/web/routes/trace.ts +0 -126
  279. package/src/web/routes/types.ts +0 -57
  280. package/src/web/server.ts +0 -134
  281. package/src/web/ssrf-guard.ts +0 -112
  282. package/src/web/static/index.html +0 -3251
  283. package/src/web/static/vendor/chart.umd.min.js +0 -20
  284. package/tests/e2e/dashboard.spec.ts +0 -205
  285. package/tests/e2e/routing-skill-e2e.test.ts +0 -39
  286. package/tests/helpers/mock-ai.ts +0 -92
  287. package/tests/helpers/mock-storage.ts +0 -159
  288. package/tests/integration/claudemd-generator.test.ts +0 -90
  289. package/tests/integration/queue-replay.integration.test.ts +0 -193
  290. package/tests/integration/tasks-filter.integration.test.ts +0 -154
  291. package/tests/integration/web-analytics.integration.test.ts +0 -133
  292. package/tests/integration/web-stats.integration.test.ts +0 -135
  293. package/tests/integration/web-trace.integration.test.ts +0 -175
  294. package/tests/performance/database.benchmark.ts +0 -161
  295. package/tests/semantic-matcher.test.ts +0 -99
  296. package/tests/skill-matcher.test.ts +0 -110
  297. package/tests/unit/ai-provider-retry.test.ts +0 -194
  298. package/tests/unit/ai-provider-vision.test.ts +0 -224
  299. package/tests/unit/claudemd-generator.test.ts +0 -68
  300. package/tests/unit/cli-mcp.test.ts +0 -141
  301. package/tests/unit/core/forge-paths.test.ts +0 -99
  302. package/tests/unit/daemon/hook-sync.test.ts +0 -71
  303. package/tests/unit/daemon/post-tool-use.test.ts +0 -121
  304. package/tests/unit/daemon/skill-sync.test.ts +0 -75
  305. package/tests/unit/daemon/stop-handler-behavior-summary.test.ts +0 -202
  306. package/tests/unit/daemon/task-segmenter-recover.test.ts +0 -84
  307. package/tests/unit/event-fields.test.ts +0 -88
  308. package/tests/unit/event-parser.test.ts +0 -55
  309. package/tests/unit/handlers.test.ts +0 -171
  310. package/tests/unit/hooks/resolve-project-path.test.ts +0 -122
  311. package/tests/unit/invocation-guard.test.ts +0 -125
  312. package/tests/unit/queue.test.ts +0 -272
  313. package/tests/unit/router.test.ts +0 -138
  314. package/tests/unit/security.test.ts +0 -128
  315. package/tests/unit/skill-invocations-workflow.test.ts +0 -495
  316. package/tests/unit/skill-registry.test.ts +0 -94
  317. package/tests/unit/skills/invocation-guard-ttl.test.ts +0 -211
  318. package/tests/unit/skills/official-skills-loader.test.ts +0 -126
  319. package/tests/unit/skills/registry-multiformat.test.ts +0 -92
  320. package/tests/unit/skills/upgrade-engine-parse.test.ts +0 -138
  321. package/tests/unit/skills/upgrade-engine.test.ts +0 -401
  322. package/tests/unit/skills/upgrade-prompt.test.ts +0 -89
  323. package/tests/unit/socket-server.test.ts +0 -183
  324. package/tests/unit/storage/event-operations-aggregates.test.ts +0 -342
  325. package/tests/unit/storage/migration-idempotent.test.ts +0 -304
  326. package/tests/unit/storage/routing-aggregates.test.ts +0 -276
  327. package/tests/unit/storage/routing.test.ts +0 -117
  328. package/tests/unit/storage/schema-missing.test.ts +0 -81
  329. package/tests/unit/storage/session-operations-aggregates.test.ts +0 -120
  330. package/tests/unit/storage/sessions-aggregate.test.ts +0 -435
  331. package/tests/unit/storage/skill-operations-counts.test.ts +0 -106
  332. package/tests/unit/storage/skills-aggregates.test.ts +0 -104
  333. package/tests/unit/storage/sqlite-refactor-harness.test.ts +0 -314
  334. package/tests/unit/storage/task-operations-counts.test.ts +0 -46
  335. package/tests/unit/storage/tasks-getById.test.ts +0 -343
  336. package/tests/unit/storage/tasks-stale-gc.test.ts +0 -86
  337. package/tests/unit/storage.test.ts +0 -172
  338. package/tests/unit/token-usage.test.ts +0 -144
  339. package/tests/unit/type-guards.test.ts +0 -201
  340. package/tests/unit/utils/format.test.ts +0 -189
  341. package/tests/unit/utils/session.test.ts +0 -89
  342. package/tests/unit/utils/time.test.ts +0 -112
  343. package/tests/unit/web/navigation-back-contract.test.ts +0 -134
  344. package/tests/unit/web/routes-auth.test.ts +0 -93
  345. package/tests/unit/web/routes-events.test.ts +0 -101
  346. package/tests/unit/web/routes-rules.test.ts +0 -182
  347. package/tests/unit/web/routes-sessions.test.ts +0 -181
  348. package/tests/unit/web/routes-skill-stats.test.ts +0 -179
  349. package/tests/unit/web/routes-stats.test.ts +0 -92
  350. package/tests/unit/web/routes-tasks.test.ts +0 -385
  351. package/tests/unit/web/task-title-contract.test.ts +0 -210
  352. package/tests/unit/web/tasks-component-contract.test.ts +0 -179
  353. package/tsconfig.json +0 -22
  354. package/vitest.config.ts +0 -21
  355. package/vitest.integration.config.ts +0 -16
  356. package/web/CLAUDE.md +0 -20
  357. package/web/index.html +0 -13
  358. package/web/package-lock.json +0 -4854
  359. package/web/package.json +0 -35
  360. package/web/postcss.config.js +0 -6
  361. package/web/src/App.tsx +0 -110
  362. package/web/src/components/CodeBlock.tsx +0 -31
  363. package/web/src/components/Confirm.tsx +0 -96
  364. package/web/src/components/Drawer.tsx +0 -60
  365. package/web/src/components/Layout.tsx +0 -145
  366. package/web/src/components/MarkdownRenderer.tsx +0 -77
  367. package/web/src/components/SearchInput.tsx +0 -31
  368. package/web/src/components/SessionDetailContent.tsx +0 -157
  369. package/web/src/components/Toast.tsx +0 -92
  370. package/web/src/index.css +0 -19
  371. package/web/src/main.tsx +0 -31
  372. package/web/src/pages/AIConfig.tsx +0 -233
  373. package/web/src/pages/Dashboard.tsx +0 -572
  374. package/web/src/pages/Events.tsx +0 -271
  375. package/web/src/pages/Reports.tsx +0 -428
  376. package/web/src/pages/SessionDetail.tsx +0 -162
  377. package/web/src/pages/Sessions.tsx +0 -205
  378. package/web/src/pages/Skills.tsx +0 -180
  379. package/web/src/pages/TaskDetail.tsx +0 -515
  380. package/web/src/pages/Tasks.tsx +0 -415
  381. package/web/src/utils/auth.ts +0 -59
  382. package/web/src/utils/export.ts +0 -54
  383. package/web/src/utils/navigation.ts +0 -25
  384. package/web/src/utils/task-title.ts +0 -49
  385. package/web/src/utils/time.ts +0 -13
  386. package/web/tailwind.config.js +0 -11
  387. package/web/tsconfig.json +0 -21
  388. package/web/tsconfig.node.json +0 -10
  389. package/web/vite.config.ts +0 -76
  390. package/winspan-claude-forge-8.43.0.tgz +0 -0
@@ -1,322 +0,0 @@
1
- # 让 Claude 快速学会 Ruflo 模式的策略
2
-
3
- ## 背景
4
-
5
- 当前 claude-forge 已完成 Ruflo 模式重构:
6
- - Claude 自主决策(通过 CLAUDE.md 的 AUTO-INVOKE 规则)
7
- - daemon 只做观察和记录
8
- - 静态 pipeline 模板(写在 CLAUDE.md 里)
9
-
10
- 但 Claude 可能仍然不遵守 CLAUDE.md 中的 AUTO-INVOKE 规则。需要加速学习过程。
11
-
12
- ---
13
-
14
- ## 方案 A:强化 CLAUDE.md 的视觉锚点(立即生效)
15
-
16
- ### 问题诊断
17
- 当前 CLAUDE.md 虽然有 MUST/ALWAYS/NEVER,但可能不够显眼:
18
- - 没有使用 ASCII 边框或分隔符
19
- - 代码示例是静态的,不够"可执行"
20
- - 触发条件(AUTO-INVOKE)在文件中间,可能被上下文压缩丢弃
21
-
22
- ### 改进措施
23
-
24
- #### 1. 在文件最顶部添加 ASCII 横幅(Ruflo 风格)
25
-
26
- ```markdown
27
- <!-- forge:claudemd-auto -->
28
- # claude-forge 工作区规范
29
-
30
- ╔═══════════════════════════════════════════════════════════════╗
31
- ║ CRITICAL BEHAVIORAL RULES ║
32
- ║ (ALWAYS ENFORCED) ║
33
- ╚═══════════════════════════════════════════════════════════════╝
34
-
35
- ⚠️ BEFORE STARTING ANY TASK, CHECK THESE RULES:
36
-
37
- 1. ALWAYS read a file before editing it
38
- 2. NEVER create documentation files unless explicitly requested
39
- 3. ALWAYS spawn ALL agents in ONE message (concurrency rule)
40
- 4. MUST use Task tool for complex tasks (3+ files, new features, refactoring)
41
-
42
- ╔═══════════════════════════════════════════════════════════════╗
43
- ║ AUTO-INVOKE PIPELINE WHEN TASK INVOLVES: ║
44
- ╠═══════════════════════════════════════════════════════════════╣
45
- ║ ✓ Multiple files (3+) ║
46
- ║ ✓ New feature implementation ║
47
- ║ ✓ Refactoring across modules ║
48
- ║ ✓ Bug fix involving root-cause analysis ║
49
- ║ ✓ API changes with tests ║
50
- ║ ✓ Security-related changes ║
51
- ║ ✓ Performance optimization ║
52
- ║ ✓ Database schema changes ║
53
- ╚═══════════════════════════════════════════════════════════════╝
54
-
55
- ╔═══════════════════════════════════════════════════════════════╗
56
- ║ SKIP PIPELINE FOR: ║
57
- ╠═══════════════════════════════════════════════════════════════╣
58
- ║ ✗ Single file edits ║
59
- ║ ✗ Simple bug fixes (1-2 lines) ║
60
- ║ ✗ Documentation updates ║
61
- ║ ✗ Configuration changes ║
62
- ║ ✗ Quick questions/exploration ║
63
- ╚═══════════════════════════════════════════════════════════════╝
64
- ```
65
-
66
- **为什么有效**:
67
- - ASCII 边框在 Claude 的视觉注意力中权重更高
68
- - 放在文件最顶部,不会被上下文压缩丢弃
69
- - 使用 ✓/✗ 符号增强可读性
70
-
71
- #### 2. 将代码示例改为"立即可执行"格式
72
-
73
- 当前格式(静态):
74
- ```javascript
75
- Task({ subagent_type: "tester", name: "reproducer", prompt: "...", run_in_background: true })
76
- ```
77
-
78
- 改进格式(可执行):
79
- ```javascript
80
- // COPY-PASTE THIS EXACT CODE (replace [task description] with actual task):
81
- Task({
82
- subagent_type: "tester",
83
- name: "reproducer",
84
- prompt: "[task description]: Write a failing test that reproduces the bug. SendMessage findings to 'investigator' when done.",
85
- run_in_background: true
86
- })
87
- Task({
88
- subagent_type: "researcher",
89
- name: "investigator",
90
- prompt: "[task description]: Wait for SendMessage from 'reproducer'. Investigate root cause. SendMessage findings to 'fixer' when done.",
91
- run_in_background: true
92
- })
93
- // ... (more Task calls)
94
- ```
95
-
96
- **为什么有效**:
97
- - "COPY-PASTE THIS EXACT CODE" 是明确的行动指令
98
- - `[task description]` 占位符让 Claude 知道需要填充什么
99
- - 保留完整的参数结构,减少 Claude 自由发挥的空间
100
-
101
- #### 3. 在每个 Pipeline 模板前添加触发条件检查清单
102
-
103
- ```markdown
104
- #### Bug Fix (Code 1: harness-debug-full)
105
-
106
- **TRIGGER CHECKLIST** — Use this pipeline if ALL of these are true:
107
- - [ ] Bug involves multiple files OR root-cause analysis needed
108
- - [ ] Not a simple 1-2 line fix
109
- - [ ] Requires investigation + fix + verification
110
-
111
- **IF TRIGGERED, COPY-PASTE ALL 4 TASK CALLS IN ONE MESSAGE:**
112
- ```
113
-
114
- **为什么有效**:
115
- - Checklist 格式让 Claude 明确判断是否触发
116
- - "COPY-PASTE ALL 4 TASK CALLS IN ONE MESSAGE" 强化并发原则
117
-
118
- ---
119
-
120
- ## 方案 B:添加 MCP 工具提示(中等效果,需要 1 小时开发)
121
-
122
- ### 核心思路
123
- 当 Claude 开始处理复杂任务时,daemon 通过 MCP 工具主动提示"你应该考虑使用 pipeline"。
124
-
125
- ### 实现方式
126
-
127
- #### 1. 新增 MCP 工具:`pipeline_suggest`
128
-
129
- ```typescript
130
- // src/mcp/tools/pipeline-suggest.ts
131
- export const pipelineSuggestTool = {
132
- name: 'pipeline_suggest',
133
- description: 'Get pipeline suggestions based on task complexity',
134
- inputSchema: {
135
- type: 'object',
136
- properties: {
137
- taskDescription: { type: 'string' },
138
- fileCount: { type: 'number' },
139
- isNewFeature: { type: 'boolean' },
140
- isRefactor: { type: 'boolean' }
141
- }
142
- },
143
- handler: async (args) => {
144
- const { taskDescription, fileCount, isNewFeature, isRefactor } = args;
145
-
146
- // 判断是否应该触发 pipeline
147
- const shouldTrigger = fileCount >= 3 || isNewFeature || isRefactor;
148
-
149
- if (!shouldTrigger) {
150
- return { suggestion: 'No pipeline needed for this simple task.' };
151
- }
152
-
153
- // 推荐具体的 pipeline
154
- let pipelineCode = '';
155
- if (isNewFeature) {
156
- pipelineCode = `// Feature pipeline (bmad-feature-full)
157
- Task({ subagent_type: "researcher", name: "analyst", prompt: "${taskDescription}: Analyze requirements...", run_in_background: true })
158
- Task({ subagent_type: "planner", name: "designer", prompt: "${taskDescription}: Wait for 'analyst'...", run_in_background: true })
159
- // ... (full template)`;
160
- } else if (isRefactor) {
161
- pipelineCode = `// Refactor pipeline (refactor-safe)
162
- Task({ subagent_type: "tester", name: "safety-net", prompt: "${taskDescription}: Write tests...", run_in_background: true })
163
- // ... (full template)`;
164
- }
165
-
166
- return {
167
- suggestion: `⚠️ This task matches AUTO-INVOKE criteria. You MUST use a pipeline.`,
168
- pipelineCode,
169
- reminder: 'COPY-PASTE ALL TASK CALLS IN ONE MESSAGE'
170
- };
171
- }
172
- };
173
- ```
174
-
175
- #### 2. 在 CLAUDE.md 中添加 MCP 工具使用指南
176
-
177
- ```markdown
178
- ## Pipeline Decision Support (MCP Tool)
179
-
180
- If you're unsure whether to trigger a pipeline, call the MCP tool:
181
-
182
- ```javascript
183
- mcp__claude_forge__pipeline_suggest({
184
- taskDescription: "implement user authentication",
185
- fileCount: 5,
186
- isNewFeature: true,
187
- isRefactor: false
188
- })
189
- ```
190
-
191
- The tool will tell you:
192
- 1. Whether you MUST use a pipeline
193
- 2. Which pipeline template to use
194
- 3. The exact code to copy-paste
195
- ```
196
-
197
- **为什么有效**:
198
- - 主动提示,而不是被动等待 Claude 遵守
199
- - 提供具体的代码模板,减少 Claude 的认知负担
200
-
201
- ---
202
-
203
- ## 方案 C:会话级强化学习(长期效果,需要多次会话)
204
-
205
- ### 核心思路
206
- 通过多次会话的反馈循环,让 Claude 逐渐"学会"遵守 CLAUDE.md 规则。
207
-
208
- ### 实现方式
209
-
210
- #### 1. 在每次会话结束时,生成"行为报告"
211
-
212
- ```markdown
213
- ## Session Behavior Report
214
-
215
- **Task**: Implement user authentication with OAuth
216
- **Complexity**: High (5 files, new feature)
217
- **Expected**: AUTO-INVOKE pipeline (bmad-feature-full)
218
- **Actual**: Direct implementation (no Task calls)
219
- **Result**: ❌ Violated AUTO-INVOKE rule
220
-
221
- **Feedback for next session**:
222
- - You should have spawned 5 Task calls in ONE message
223
- - Template: bmad-feature-full (researcher → planner → developer → tester → reviewer)
224
- - Reason: This task involves 5 files + new feature implementation
225
- ```
226
-
227
- #### 2. 将报告写入 `~/.claude/memory/` 或 CLAUDE.md 的顶部
228
-
229
- 每次会话开始时,Claude 会看到上次的"违规记录",逐渐形成习惯。
230
-
231
- #### 3. 使用 daemon 的 `routing_events` 表生成报告
232
-
233
- ```typescript
234
- // src/daemon/session-report.ts
235
- export async function generateSessionReport(sessionId: string) {
236
- const events = await storage.getRoutingEventsBySession(sessionId);
237
- const violations = events.filter(e => e.obeyed === 0);
238
-
239
- if (violations.length > 0) {
240
- const report = `
241
- ## ⚠️ Previous Session Violations
242
-
243
- You violated AUTO-INVOKE rules ${violations.length} times in the last session.
244
-
245
- ${violations.map(v => `
246
- - Task: ${v.user_prompt_summary}
247
- - Expected: ${v.routed_to_name}
248
- - Actual: Direct implementation
249
- - Fix: Use the pipeline template in CLAUDE.md
250
- `).join('\n')}
251
-
252
- **Remember**: ALWAYS spawn ALL agents in ONE message when task matches AUTO-INVOKE criteria.
253
- `;
254
-
255
- // 写入 CLAUDE.md 顶部或 memory
256
- await fs.writeFile('CLAUDE.md', report + originalContent);
257
- }
258
- }
259
- ```
260
-
261
- **为什么有效**:
262
- - 反馈循环让 Claude 看到自己的"错误"
263
- - 多次会话后,Claude 会形成"条件反射"
264
-
265
- ---
266
-
267
- ## 推荐实施顺序
268
-
269
- ### 第一阶段(立即执行,0 成本)
270
- 1. ✅ 强化 CLAUDE.md 的视觉锚点(方案 A)
271
- - 添加 ASCII 横幅
272
- - 改进代码示例格式
273
- - 添加触发条件检查清单
274
-
275
- ### 第二阶段(1 小时开发)
276
- 2. ⏳ 添加 MCP 工具提示(方案 B)
277
- - 实现 `pipeline_suggest` 工具
278
- - 在 CLAUDE.md 中添加使用指南
279
-
280
- ### 第三阶段(长期优化)
281
- 3. ⏳ 会话级强化学习(方案 C)
282
- - 实现会话行为报告生成
283
- - 将报告写入 CLAUDE.md 或 memory
284
-
285
- ---
286
-
287
- ## 预期效果
288
-
289
- | 方案 | 实施成本 | 生效时间 | 预期合规率提升 |
290
- |------|---------|---------|--------------|
291
- | A: 视觉锚点 | 10 分钟 | 立即 | +30% |
292
- | B: MCP 提示 | 1 小时 | 立即 | +20% |
293
- | C: 强化学习 | 2 小时 | 3-5 次会话后 | +40% |
294
- | **组合效果** | 3 小时 | 3-5 次会话后 | **+70-90%** |
295
-
296
- ---
297
-
298
- ## 验证方法
299
-
300
- 1. **重启 Claude Code 会话**(让新的 CLAUDE.md 生效)
301
- 2. **输入复杂任务**(如 "implement user authentication with OAuth")
302
- 3. **观察 Claude 的行为**:
303
- - 是否自主判断触发 pipeline?
304
- - 是否在一条消息中并发调用多个 Task?
305
- - 是否使用 CLAUDE.md 中的静态模板?
306
- 4. **检查数据库**:
307
- ```sql
308
- SELECT obeyed, COUNT(*) FROM routing_events GROUP BY obeyed;
309
- ```
310
- - `obeyed=1` 的比例应该逐渐提升
311
-
312
- ---
313
-
314
- ## 关键洞察
315
-
316
- Ruflo 的成功不是因为"语言更狠",而是因为:
317
- 1. **视觉锚点**:ASCII 边框、符号、位置(文件顶部)
318
- 2. **具体性**:可执行的代码示例,而不是抽象描述
319
- 3. **触发条件明确**:Checklist 格式,消除歧义
320
- 4. **反馈循环**:多次会话后形成习惯
321
-
322
- claude-forge 已经有了正确的架构,现在只需要强化 CLAUDE.md 的"教学效果"。
@@ -1,83 +0,0 @@
1
- # claude-forge 与 addyosmani/agent-skills 去重分析报告
2
-
3
- ## 执行摘要
4
-
5
- - **重叠项数量**:10 对
6
- - **推荐下线数量**:6 个
7
- - **推荐保留作 override**:4 个
8
- - **新增技能数量**:6+ 个
9
-
10
- ---
11
-
12
- ## A. 重叠项对比
13
-
14
- | 本项目 skill | agent-skills 对应 | 功能重叠度 |
15
- |---|---|---|
16
- | `official-tdd` | `test-driven-development` | 100% |
17
- | `official-debug` | `debugging-and-troubleshooting` | 95% |
18
- | `official-pr-review` | `code-review-and-quality` | 90% |
19
- | `official-spec-driven-design` | `spec-driven-development` | 100% |
20
- | `official-architecture-decision` | `documentation-and-adrs` | 85% |
21
- | `official-api-design` | `api-and-interface-design` | 95% |
22
- | `official-db-schema-design` | `database-schema-design` | 90% |
23
- | `official-performance-optimization` | `performance-optimization` | 95% |
24
- | `official-security-hardening` | `security-and-hardening` | 90% |
25
- | `official-release-checklist` | `shipping-and-launch` | 95% |
26
-
27
- ---
28
-
29
- ## B. 处理决策
30
-
31
- ### 1. 推荐下线(6 个)
32
-
33
- agent-skills 版本更成熟,推荐下线本项目版本:
34
-
35
- - `official-tdd` → `test-driven-development`
36
- - `official-debug` → `debugging-and-troubleshooting`
37
- - `official-api-design` → `api-and-interface-design`
38
- - `official-db-schema-design` → `database-schema-design`
39
- - `official-performance-optimization` → `performance-optimization`
40
- - `official-release-checklist` → `shipping-and-launch`
41
-
42
- ### 2. 保留作 user override(4 个)
43
-
44
- 本项目版本有中文本地化优势,改名为 `-cn` 后缀保留:
45
-
46
- - `official-spec-driven-design` → `official-spec-driven-design-cn`
47
- - `official-pr-review` → `official-pr-review-cn`
48
- - `official-security-hardening` → `official-security-hardening-cn`
49
- - `official-architecture-decision` → `official-architecture-decision-cn`
50
-
51
- ---
52
-
53
- ## C. 新增技能清单
54
-
55
- agent-skills 填补的空白(6+ 个):
56
-
57
- - `idea-refine` — 想法精炼与需求澄清
58
- - `planning-and-task-breakdown` — 任务分解与依赖图
59
- - `frontend-ui-engineering` — 前端工程最佳实践
60
- - `refactoring-and-cleanup` — 重构与代码清理
61
- - `git-workflow-and-versioning` — Git 工作流与版本管理
62
- - `using-agent-skills` — Agent Skills 元技能
63
-
64
- ---
65
-
66
- ## D. 实施建议
67
-
68
- ### 第一阶段:下线重叠技能
69
-
70
- 从 `src/skills/official-skills.ts` 删除 6 个技能。
71
-
72
- ### 第二阶段:重命名本地化版本
73
-
74
- 4 个技能改名为 `-cn` 后缀。
75
-
76
- ### 第三阶段:集成 agent-skills
77
-
78
- 运行 `npm run sync:agent-skills` 同步外部技能。
79
-
80
- ---
81
-
82
- **生成时间**:2026-05-10
83
- **版本**:v1.0
@@ -1,177 +0,0 @@
1
- # Skills Multi-format Support
2
-
3
- ## 概述
4
-
5
- `SkillRegistry` 现在支持两种 skill 文件格式:
6
-
7
- 1. **平铺格式**(原有):`~/.claude/skills/skill-name.md`
8
- 2. **目录格式**(新增):`~/.claude/skills/skill-name/SKILL.md`(agent-skills 格式)
9
-
10
- 两种格式可以共存,不会相互干扰。
11
-
12
- ## 改动内容
13
-
14
- ### 1. `Skill` 接口扩展
15
-
16
- 新增可选字段 `description`:
17
-
18
- ```typescript
19
- export interface Skill {
20
- id: string;
21
- name: string;
22
- keywords: string[];
23
- content: string;
24
- path: string;
25
- isOfficial?: boolean;
26
- description?: string; // 新增:从 frontmatter 读取
27
- }
28
- ```
29
-
30
- ### 2. `scan()` 方法支持两种格式
31
-
32
- ```typescript
33
- const entries = fs.readdirSync(SKILLS_DIR, { withFileTypes: true });
34
-
35
- for (const entry of entries) {
36
- if (entry.isFile() && entry.name.endsWith('.md')) {
37
- // 格式 1:平铺 .md 文件
38
- filePath = path.join(SKILLS_DIR, entry.name);
39
- } else if (entry.isDirectory()) {
40
- // 格式 2:目录形式,读 SKILL.md
41
- const skillMdPath = path.join(SKILLS_DIR, entry.name, 'SKILL.md');
42
- if (fs.existsSync(skillMdPath)) {
43
- filePath = skillMdPath;
44
- }
45
- }
46
- }
47
- ```
48
-
49
- ### 3. 空 keywords 降级机制
50
-
51
- 当 skill 的 `keywords` 为空时,使用 `description` 进行 substring 匹配:
52
-
53
- ```typescript
54
- if (skill.keywords.length > 0) {
55
- // 使用 keyword 匹配
56
- } else if (skill.description) {
57
- // 降级路径 1:使用 description substring 匹配
58
- const descLower = skill.description.toLowerCase();
59
- if (descLower.includes(promptLower) || promptLower.includes(descLower)) {
60
- score = 1;
61
- }
62
- }
63
- // 降级路径 2:返回 0,让 SemanticSkillMatcher 接管
64
- ```
65
-
66
- ### 4. `SemanticSkillMatcher` 优先使用 description
67
-
68
- ```typescript
69
- private extractDescription(skill: Skill): string {
70
- // 优先使用 frontmatter description(agent-skills 格式)
71
- if (skill.description) {
72
- return skill.description;
73
- }
74
-
75
- // 降级:从 content 提取第一行描述
76
- // ...
77
- }
78
- ```
79
-
80
- ## 使用示例
81
-
82
- ### 平铺格式(原有)
83
-
84
- ```
85
- ~/.claude/skills/
86
- my-skill.md
87
- ```
88
-
89
- `my-skill.md` 内容:
90
- ```markdown
91
- ---
92
- name: my-skill
93
- description: My custom skill
94
- keywords: [custom, test]
95
- ---
96
-
97
- # My Skill
98
-
99
- Skill content here.
100
- ```
101
-
102
- ### 目录格式(新增)
103
-
104
- ```
105
- ~/.claude/skills/
106
- my-skill/
107
- SKILL.md
108
- README.md
109
- examples/
110
- ```
111
-
112
- `SKILL.md` 内容:
113
- ```markdown
114
- ---
115
- name: my-skill
116
- description: My custom skill
117
- keywords: [custom, test]
118
- ---
119
-
120
- # My Skill
121
-
122
- Skill content here.
123
- ```
124
-
125
- ## 兼容性
126
-
127
- - ✅ 不破坏现有行为:16 个 `OFFICIAL_SKILLS` 的加载逻辑不变
128
- - ✅ 用户 skills 可以覆盖官方 skills(原有行为保持)
129
- - ✅ 目录中没有 `SKILL.md` 时静默跳过(不报错)
130
- - ✅ 类型安全:所有新增字段都有 TypeScript 类型
131
-
132
- ## 测试
133
-
134
- ### 单元测试
135
-
136
- - `tests/unit/skills/registry-multiformat.test.ts`:测试 frontmatter 解析
137
- - 平铺格式解析
138
- - 目录格式解析
139
- - 空 keywords 处理
140
- - 空 description 处理
141
- - 空 frontmatter 处理
142
-
143
- ### 验证脚本
144
-
145
- - `scripts/verify-skill-loading.ts`:验证实际文件系统加载
146
-
147
- 运行验证:
148
- ```bash
149
- npx tsx scripts/verify-skill-loading.ts
150
- ```
151
-
152
- ## 实际验证结果
153
-
154
- 在实际环境中验证成功:
155
-
156
- ```
157
- Total skills loaded: 21
158
- Directory format skills: 21
159
- Skills with description field: 21
160
- Skills without keywords: 21
161
- ```
162
-
163
- 所有 21 个用户 skill 都是从目录格式(`SKILL.md`)加载的,并且都正确读取了 `description` 字段。
164
-
165
- ## 注意事项
166
-
167
- 1. **同名优先级**:用户 skills 会覆盖官方 skills(原有行为)
168
- 2. **错误处理**:解析失败的 skill 会被跳过并记录警告日志
169
- 3. **性能**:扫描逻辑只在 `SkillRegistry` 构造时执行一次
170
- 4. **降级机制**:空 keywords 时会尝试 description 匹配,最后才交给 SemanticSkillMatcher
171
-
172
- ## 相关文件
173
-
174
- - `src/skills/registry.ts` - 核心实现
175
- - `src/skills/semantic-matcher.ts` - 语义匹配优化
176
- - `tests/unit/skills/registry-multiformat.test.ts` - 单元测试
177
- - `scripts/verify-skill-loading.ts` - 验证脚本