@arimakouyou/spec-workflow-mcp 2.2.7

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 (472) hide show
  1. package/.claude-plugin/.mcp.json +8 -0
  2. package/.claude-plugin/agents/code-simplifier.md +80 -0
  3. package/.claude-plugin/agents/integ-test-auditor.md +91 -0
  4. package/.claude-plugin/agents/integ-test-worker.md +73 -0
  5. package/.claude-plugin/agents/parallel-worker.md +136 -0
  6. package/.claude-plugin/agents/review-worker.md +279 -0
  7. package/.claude-plugin/agents/unit-test-engineer.md +148 -0
  8. package/.claude-plugin/agents/wave-harness-worker.md +158 -0
  9. package/.claude-plugin/hooks/hooks.json +16 -0
  10. package/.claude-plugin/hooks/tasks-read-guard.sh +17 -0
  11. package/.claude-plugin/marketplace.json +33 -0
  12. package/.claude-plugin/plugin.json +11 -0
  13. package/.claude-plugin/rules/axum.md +154 -0
  14. package/.claude-plugin/rules/cargo-toml.md +63 -0
  15. package/.claude-plugin/rules/context7.md +17 -0
  16. package/.claude-plugin/rules/design-conformance.md +82 -0
  17. package/.claude-plugin/rules/design-principles.md +53 -0
  18. package/.claude-plugin/rules/diesel.md +176 -0
  19. package/.claude-plugin/rules/feedback-loop.md +33 -0
  20. package/.claude-plugin/rules/leptos.md +319 -0
  21. package/.claude-plugin/rules/project-architecture.md +134 -0
  22. package/.claude-plugin/rules/quality-checks.md +265 -0
  23. package/.claude-plugin/rules/rust-style.md +242 -0
  24. package/.claude-plugin/rules/security.md +67 -0
  25. package/.claude-plugin/rules/spec-workflow-enforcement.md +47 -0
  26. package/.claude-plugin/rules/valkey.md +167 -0
  27. package/.claude-plugin/skills/integration-test/SKILL.md +230 -0
  28. package/.claude-plugin/skills/integration-test/references/auditor-prompt.md +78 -0
  29. package/.claude-plugin/skills/integration-test/references/external-api-mock.md +98 -0
  30. package/.claude-plugin/skills/integration-test/references/fixture-catalog.md +155 -0
  31. package/.claude-plugin/skills/integration-test/references/parallel-execution.md +124 -0
  32. package/.claude-plugin/skills/integration-test/references/quality-gate.md +80 -0
  33. package/.claude-plugin/skills/integration-test/references/test-case-design.md +88 -0
  34. package/.claude-plugin/skills/integration-test/references/test-patterns.md +215 -0
  35. package/.claude-plugin/skills/integration-test/references/whiteboard-template.md +81 -0
  36. package/.claude-plugin/skills/integration-test/references/worker-prompt.md +70 -0
  37. package/.claude-plugin/skills/knowhow-capture/SKILL.md +143 -0
  38. package/.claude-plugin/skills/phase-review-team/SKILL.md +380 -0
  39. package/.claude-plugin/skills/spec-design/SKILL.md +282 -0
  40. package/.claude-plugin/skills/spec-e2e-implement/SKILL.md +259 -0
  41. package/.claude-plugin/skills/spec-impl-code/SKILL.md +101 -0
  42. package/.claude-plugin/skills/spec-impl-review/SKILL.md +115 -0
  43. package/.claude-plugin/skills/spec-impl-test-run/SKILL.md +98 -0
  44. package/.claude-plugin/skills/spec-impl-test-write/SKILL.md +121 -0
  45. package/.claude-plugin/skills/spec-implement/SKILL.md +822 -0
  46. package/.claude-plugin/skills/spec-requirements/SKILL.md +130 -0
  47. package/.claude-plugin/skills/spec-review/SKILL.md +274 -0
  48. package/.claude-plugin/skills/spec-tasks/SKILL.md +372 -0
  49. package/.claude-plugin/skills/spec-test-design/SKILL.md +233 -0
  50. package/.claude-plugin/skills/tdd-skills/SKILL.md +95 -0
  51. package/.claude-plugin/skills/tdd-skills/references/advanced-techniques.md +49 -0
  52. package/.claude-plugin/skills/tdd-skills/references/green-strategies.md +70 -0
  53. package/.claude-plugin/skills/tdd-skills/references/tdd-and-design.md +48 -0
  54. package/.claude-plugin/skills/tdd-skills/references/test-design.md +43 -0
  55. package/.claude-plugin/skills/tdd-skills/references/test-doubles.md +53 -0
  56. package/.claude-plugin/skills/tdd-skills/references/test-patterns.md +40 -0
  57. package/.claude-plugin/skills/tdd-skills-rust/SKILL.md +128 -0
  58. package/.claude-plugin/skills/tdd-skills-rust/references/advanced-techniques.md +205 -0
  59. package/.claude-plugin/skills/tdd-skills-rust/references/green-strategies.md +166 -0
  60. package/.claude-plugin/skills/tdd-skills-rust/references/tdd-and-design.md +215 -0
  61. package/.claude-plugin/skills/tdd-skills-rust/references/test-design.md +128 -0
  62. package/.claude-plugin/skills/tdd-skills-rust/references/test-doubles.md +208 -0
  63. package/.claude-plugin/skills/tdd-skills-rust/references/test-patterns.md +223 -0
  64. package/.claude-plugin/with-dashboard/.mcp.json +8 -0
  65. package/.claude-plugin/with-dashboard/plugin.json +10 -0
  66. package/CHANGELOG.md +1007 -0
  67. package/LICENSE +674 -0
  68. package/README.ja.md +380 -0
  69. package/README.md +437 -0
  70. package/dist/__tests__/config.test.d.ts +2 -0
  71. package/dist/__tests__/config.test.d.ts.map +1 -0
  72. package/dist/__tests__/config.test.js +264 -0
  73. package/dist/__tests__/config.test.js.map +1 -0
  74. package/dist/__tests__/index-args.test.d.ts +2 -0
  75. package/dist/__tests__/index-args.test.d.ts.map +1 -0
  76. package/dist/__tests__/index-args.test.js +43 -0
  77. package/dist/__tests__/index-args.test.js.map +1 -0
  78. package/dist/__tests__/index-entrypoint.test.d.ts +2 -0
  79. package/dist/__tests__/index-entrypoint.test.d.ts.map +1 -0
  80. package/dist/__tests__/index-entrypoint.test.js +23 -0
  81. package/dist/__tests__/index-entrypoint.test.js.map +1 -0
  82. package/dist/config.d.ts +26 -0
  83. package/dist/config.d.ts.map +1 -0
  84. package/dist/config.js +188 -0
  85. package/dist/config.js.map +1 -0
  86. package/dist/core/__tests__/git-utils.test.d.ts +2 -0
  87. package/dist/core/__tests__/git-utils.test.d.ts.map +1 -0
  88. package/dist/core/__tests__/git-utils.test.js +179 -0
  89. package/dist/core/__tests__/git-utils.test.js.map +1 -0
  90. package/dist/core/__tests__/mdx-validator.test.d.ts +2 -0
  91. package/dist/core/__tests__/mdx-validator.test.d.ts.map +1 -0
  92. package/dist/core/__tests__/mdx-validator.test.js +42 -0
  93. package/dist/core/__tests__/mdx-validator.test.js.map +1 -0
  94. package/dist/core/__tests__/path-utils.test.d.ts +2 -0
  95. package/dist/core/__tests__/path-utils.test.d.ts.map +1 -0
  96. package/dist/core/__tests__/path-utils.test.js +342 -0
  97. package/dist/core/__tests__/path-utils.test.js.map +1 -0
  98. package/dist/core/__tests__/project-registry.test.d.ts +2 -0
  99. package/dist/core/__tests__/project-registry.test.d.ts.map +1 -0
  100. package/dist/core/__tests__/project-registry.test.js +62 -0
  101. package/dist/core/__tests__/project-registry.test.js.map +1 -0
  102. package/dist/core/__tests__/security-utils.test.d.ts +2 -0
  103. package/dist/core/__tests__/security-utils.test.d.ts.map +1 -0
  104. package/dist/core/__tests__/security-utils.test.js +657 -0
  105. package/dist/core/__tests__/security-utils.test.js.map +1 -0
  106. package/dist/core/__tests__/task-parser.test.d.ts +2 -0
  107. package/dist/core/__tests__/task-parser.test.d.ts.map +1 -0
  108. package/dist/core/__tests__/task-parser.test.js +222 -0
  109. package/dist/core/__tests__/task-parser.test.js.map +1 -0
  110. package/dist/core/__tests__/task-validator.test.d.ts +2 -0
  111. package/dist/core/__tests__/task-validator.test.d.ts.map +1 -0
  112. package/dist/core/__tests__/task-validator.test.js +308 -0
  113. package/dist/core/__tests__/task-validator.test.js.map +1 -0
  114. package/dist/core/archive-service.d.ts +10 -0
  115. package/dist/core/archive-service.d.ts.map +1 -0
  116. package/dist/core/archive-service.js +99 -0
  117. package/dist/core/archive-service.js.map +1 -0
  118. package/dist/core/dashboard-session.d.ts +49 -0
  119. package/dist/core/dashboard-session.d.ts.map +1 -0
  120. package/dist/core/dashboard-session.js +132 -0
  121. package/dist/core/dashboard-session.js.map +1 -0
  122. package/dist/core/git-utils.d.ts +25 -0
  123. package/dist/core/git-utils.d.ts.map +1 -0
  124. package/dist/core/git-utils.js +87 -0
  125. package/dist/core/git-utils.js.map +1 -0
  126. package/dist/core/global-dir.d.ts +44 -0
  127. package/dist/core/global-dir.d.ts.map +1 -0
  128. package/dist/core/global-dir.js +74 -0
  129. package/dist/core/global-dir.js.map +1 -0
  130. package/dist/core/implementation-log-migrator.d.ts +41 -0
  131. package/dist/core/implementation-log-migrator.d.ts.map +1 -0
  132. package/dist/core/implementation-log-migrator.js +258 -0
  133. package/dist/core/implementation-log-migrator.js.map +1 -0
  134. package/dist/core/mdx-validator.d.ts +14 -0
  135. package/dist/core/mdx-validator.d.ts.map +1 -0
  136. package/dist/core/mdx-validator.js +34 -0
  137. package/dist/core/mdx-validator.js.map +1 -0
  138. package/dist/core/parser.d.ts +11 -0
  139. package/dist/core/parser.d.ts.map +1 -0
  140. package/dist/core/parser.js +128 -0
  141. package/dist/core/parser.js.map +1 -0
  142. package/dist/core/path-utils.d.ts +68 -0
  143. package/dist/core/path-utils.d.ts.map +1 -0
  144. package/dist/core/path-utils.js +302 -0
  145. package/dist/core/path-utils.js.map +1 -0
  146. package/dist/core/project-registry.d.ts +94 -0
  147. package/dist/core/project-registry.d.ts.map +1 -0
  148. package/dist/core/project-registry.js +297 -0
  149. package/dist/core/project-registry.js.map +1 -0
  150. package/dist/core/security-utils.d.ts +99 -0
  151. package/dist/core/security-utils.d.ts.map +1 -0
  152. package/dist/core/security-utils.js +275 -0
  153. package/dist/core/security-utils.js.map +1 -0
  154. package/dist/core/task-parser.d.ts +90 -0
  155. package/dist/core/task-parser.d.ts.map +1 -0
  156. package/dist/core/task-parser.js +477 -0
  157. package/dist/core/task-parser.js.map +1 -0
  158. package/dist/core/task-validator.d.ts +37 -0
  159. package/dist/core/task-validator.d.ts.map +1 -0
  160. package/dist/core/task-validator.js +499 -0
  161. package/dist/core/task-validator.js.map +1 -0
  162. package/dist/core/workspace-initializer.d.ts +16 -0
  163. package/dist/core/workspace-initializer.d.ts.map +1 -0
  164. package/dist/core/workspace-initializer.js +168 -0
  165. package/dist/core/workspace-initializer.js.map +1 -0
  166. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts +2 -0
  167. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts.map +1 -0
  168. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js +78 -0
  169. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js.map +1 -0
  170. package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts +2 -0
  171. package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts.map +1 -0
  172. package/dist/dashboard/__tests__/multi-server-approvals-content.test.js +115 -0
  173. package/dist/dashboard/__tests__/multi-server-approvals-content.test.js.map +1 -0
  174. package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts +2 -0
  175. package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts.map +1 -0
  176. package/dist/dashboard/__tests__/watcher-error-handling.test.js +118 -0
  177. package/dist/dashboard/__tests__/watcher-error-handling.test.js.map +1 -0
  178. package/dist/dashboard/approval-storage.d.ts +139 -0
  179. package/dist/dashboard/approval-storage.d.ts.map +1 -0
  180. package/dist/dashboard/approval-storage.js +608 -0
  181. package/dist/dashboard/approval-storage.js.map +1 -0
  182. package/dist/dashboard/execution-history-manager.d.ts +52 -0
  183. package/dist/dashboard/execution-history-manager.d.ts.map +1 -0
  184. package/dist/dashboard/execution-history-manager.js +161 -0
  185. package/dist/dashboard/execution-history-manager.js.map +1 -0
  186. package/dist/dashboard/implementation-log-manager.d.ts +97 -0
  187. package/dist/dashboard/implementation-log-manager.d.ts.map +1 -0
  188. package/dist/dashboard/implementation-log-manager.js +617 -0
  189. package/dist/dashboard/implementation-log-manager.js.map +1 -0
  190. package/dist/dashboard/job-scheduler.d.ts +91 -0
  191. package/dist/dashboard/job-scheduler.d.ts.map +1 -0
  192. package/dist/dashboard/job-scheduler.js +321 -0
  193. package/dist/dashboard/job-scheduler.js.map +1 -0
  194. package/dist/dashboard/multi-server.d.ts +42 -0
  195. package/dist/dashboard/multi-server.d.ts.map +1 -0
  196. package/dist/dashboard/multi-server.js +1460 -0
  197. package/dist/dashboard/multi-server.js.map +1 -0
  198. package/dist/dashboard/parser.d.ts +18 -0
  199. package/dist/dashboard/parser.d.ts.map +1 -0
  200. package/dist/dashboard/parser.js +269 -0
  201. package/dist/dashboard/parser.js.map +1 -0
  202. package/dist/dashboard/project-manager.d.ts +82 -0
  203. package/dist/dashboard/project-manager.d.ts.map +1 -0
  204. package/dist/dashboard/project-manager.js +257 -0
  205. package/dist/dashboard/project-manager.js.map +1 -0
  206. package/dist/dashboard/public/assets/Inter-Bold-CD3Pr7BX.woff2 +0 -0
  207. package/dist/dashboard/public/assets/Inter-Medium-B_8v_WHh.woff2 +0 -0
  208. package/dist/dashboard/public/assets/Inter-Regular-DRVdRqcI.woff2 +0 -0
  209. package/dist/dashboard/public/assets/Inter-SemiBold-CtskMddL.woff2 +0 -0
  210. package/dist/dashboard/public/assets/JetBrainsMono-Bold-D4WEaHbo.woff2 +0 -0
  211. package/dist/dashboard/public/assets/JetBrainsMono-Medium-3S3k2nMz.woff2 +0 -0
  212. package/dist/dashboard/public/assets/JetBrainsMono-Regular-BQaDgvhP.woff2 +0 -0
  213. package/dist/dashboard/public/assets/Tableau10-B-NsZVaP.js +1 -0
  214. package/dist/dashboard/public/assets/apl-B4CMkyY2.js +1 -0
  215. package/dist/dashboard/public/assets/arc-a5wW942W.js +1 -0
  216. package/dist/dashboard/public/assets/array-BKyUJesY.js +1 -0
  217. package/dist/dashboard/public/assets/asciiarmor-Df11BRmG.js +1 -0
  218. package/dist/dashboard/public/assets/asn1-EdZsLKOL.js +1 -0
  219. package/dist/dashboard/public/assets/asterisk-B-8jnY81.js +1 -0
  220. package/dist/dashboard/public/assets/blockDiagram-c4efeb88-CvjTuK-w.js +118 -0
  221. package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
  222. package/dist/dashboard/public/assets/c4Diagram-c83219d4-NwVQo5kf.js +10 -0
  223. package/dist/dashboard/public/assets/channel-Bi16YZhk.js +1 -0
  224. package/dist/dashboard/public/assets/classDiagram-beda092f-BmSeXDdU.js +2 -0
  225. package/dist/dashboard/public/assets/classDiagram-v2-2358418a-D7GvvuPr.js +2 -0
  226. package/dist/dashboard/public/assets/clike-B9uivgTg.js +1 -0
  227. package/dist/dashboard/public/assets/clojure-BMjYHr_A.js +1 -0
  228. package/dist/dashboard/public/assets/clone-BpKTiq7P.js +1 -0
  229. package/dist/dashboard/public/assets/cmake-BQqOBYOt.js +1 -0
  230. package/dist/dashboard/public/assets/cobol-CWcv1MsR.js +1 -0
  231. package/dist/dashboard/public/assets/coffeescript-S37ZYGWr.js +1 -0
  232. package/dist/dashboard/public/assets/commonlisp-DBKNyK5s.js +1 -0
  233. package/dist/dashboard/public/assets/createText-1719965b-qASbqHUP.js +7 -0
  234. package/dist/dashboard/public/assets/crystal-SjHAIU92.js +1 -0
  235. package/dist/dashboard/public/assets/css-BnMrqG3P.js +1 -0
  236. package/dist/dashboard/public/assets/cypher-C_CwsFkJ.js +1 -0
  237. package/dist/dashboard/public/assets/d-pRatUO7H.js +1 -0
  238. package/dist/dashboard/public/assets/diff-DbItnlRl.js +1 -0
  239. package/dist/dashboard/public/assets/dockerfile-BKs6k2Af.js +1 -0
  240. package/dist/dashboard/public/assets/dtd-DF_7sFjM.js +1 -0
  241. package/dist/dashboard/public/assets/dylan-DwRh75JA.js +1 -0
  242. package/dist/dashboard/public/assets/ebnf-CDyGwa7X.js +1 -0
  243. package/dist/dashboard/public/assets/ecl-Cabwm37j.js +1 -0
  244. package/dist/dashboard/public/assets/edges-96097737-BItTSnH7.js +4 -0
  245. package/dist/dashboard/public/assets/eiffel-CnydiIhH.js +1 -0
  246. package/dist/dashboard/public/assets/elm-vLlmbW-K.js +1 -0
  247. package/dist/dashboard/public/assets/erDiagram-0228fc6a-DT224olg.js +51 -0
  248. package/dist/dashboard/public/assets/erlang-BNw1qcRV.js +1 -0
  249. package/dist/dashboard/public/assets/factor-kuTfRLto.js +1 -0
  250. package/dist/dashboard/public/assets/fcl-Kvtd6kyn.js +1 -0
  251. package/dist/dashboard/public/assets/flowDb-c6c81e3f-D9_ukKtv.js +10 -0
  252. package/dist/dashboard/public/assets/flowDiagram-50d868cf-CylE8siG.js +4 -0
  253. package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-B2O3JN7Y.js +1 -0
  254. package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-BCaqFKf3.js +139 -0
  255. package/dist/dashboard/public/assets/forth-Ffai-XNe.js +1 -0
  256. package/dist/dashboard/public/assets/fortran-DYz_wnZ1.js +1 -0
  257. package/dist/dashboard/public/assets/ganttDiagram-a2739b55-WQUL1QW_.js +257 -0
  258. package/dist/dashboard/public/assets/gas-Bneqetm1.js +1 -0
  259. package/dist/dashboard/public/assets/gherkin-heZmZLOM.js +1 -0
  260. package/dist/dashboard/public/assets/gitGraphDiagram-82fe8481-CttZrdmr.js +70 -0
  261. package/dist/dashboard/public/assets/graph-Ch-rVueN.js +1 -0
  262. package/dist/dashboard/public/assets/groovy-D9Dt4D0W.js +1 -0
  263. package/dist/dashboard/public/assets/haskell-Cw1EW3IL.js +1 -0
  264. package/dist/dashboard/public/assets/haxe-H-WmDvRZ.js +1 -0
  265. package/dist/dashboard/public/assets/http-DBlCnlav.js +1 -0
  266. package/dist/dashboard/public/assets/idl-BEugSyMb.js +1 -0
  267. package/dist/dashboard/public/assets/index--kbPpDKv.js +1 -0
  268. package/dist/dashboard/public/assets/index-3scDwWm6.js +1 -0
  269. package/dist/dashboard/public/assets/index-5325376f-BL2zVOJU.js +1 -0
  270. package/dist/dashboard/public/assets/index-BZdjbO25.js +1 -0
  271. package/dist/dashboard/public/assets/index-BmA_batZ.js +1 -0
  272. package/dist/dashboard/public/assets/index-Bu0u99kF.js +2 -0
  273. package/dist/dashboard/public/assets/index-Ch-lr7F4.js +1 -0
  274. package/dist/dashboard/public/assets/index-ClgWbdoq.js +1 -0
  275. package/dist/dashboard/public/assets/index-CzLwOMQ_.js +3 -0
  276. package/dist/dashboard/public/assets/index-DAOEjGO7.js +1 -0
  277. package/dist/dashboard/public/assets/index-DXqf0B9c.js +1 -0
  278. package/dist/dashboard/public/assets/index-DegWdR16.js +1 -0
  279. package/dist/dashboard/public/assets/index-DiHyYGim.js +1 -0
  280. package/dist/dashboard/public/assets/index-DlZtG7I5.js +1 -0
  281. package/dist/dashboard/public/assets/index-DmhGE2M8.js +1 -0
  282. package/dist/dashboard/public/assets/index-QEGvld4x.js +1 -0
  283. package/dist/dashboard/public/assets/index-RfZPGAJu.js +1 -0
  284. package/dist/dashboard/public/assets/index-UybBj_7u.js +319 -0
  285. package/dist/dashboard/public/assets/index-bVekzPnl.js +7 -0
  286. package/dist/dashboard/public/assets/index-f5bysQzW.css +1 -0
  287. package/dist/dashboard/public/assets/infoDiagram-8eee0895-DjzkkE3o.js +7 -0
  288. package/dist/dashboard/public/assets/init-Gi6I4Gst.js +1 -0
  289. package/dist/dashboard/public/assets/javascript-iXu5QeM3.js +1 -0
  290. package/dist/dashboard/public/assets/journeyDiagram-c64418c1-CxPZkNdB.js +139 -0
  291. package/dist/dashboard/public/assets/julia-DuME0IfC.js +1 -0
  292. package/dist/dashboard/public/assets/katex-XbL3y5x-.js +261 -0
  293. package/dist/dashboard/public/assets/layout-DX7DNTRm.js +1 -0
  294. package/dist/dashboard/public/assets/line-DfvpmKOn.js +1 -0
  295. package/dist/dashboard/public/assets/linear-gQbBPHO5.js +1 -0
  296. package/dist/dashboard/public/assets/livescript-BwQOo05w.js +1 -0
  297. package/dist/dashboard/public/assets/lua-BgMRiT3U.js +1 -0
  298. package/dist/dashboard/public/assets/mathematica-DTrFuWx2.js +1 -0
  299. package/dist/dashboard/public/assets/mbox-CNhZ1qSd.js +1 -0
  300. package/dist/dashboard/public/assets/mindmap-definition-8da855dc-CNxmpyG6.js +415 -0
  301. package/dist/dashboard/public/assets/mirc-CjQqDB4T.js +1 -0
  302. package/dist/dashboard/public/assets/mllike-CXdrOF99.js +1 -0
  303. package/dist/dashboard/public/assets/modelica-Dc1JOy9r.js +1 -0
  304. package/dist/dashboard/public/assets/mscgen-BA5vi2Kp.js +1 -0
  305. package/dist/dashboard/public/assets/mumps-BT43cFF4.js +1 -0
  306. package/dist/dashboard/public/assets/nginx-DdIZxoE0.js +1 -0
  307. package/dist/dashboard/public/assets/nsis-LdVXkNf5.js +1 -0
  308. package/dist/dashboard/public/assets/ntriples-BfvgReVJ.js +1 -0
  309. package/dist/dashboard/public/assets/octave-Ck1zUtKM.js +1 -0
  310. package/dist/dashboard/public/assets/ordinal-Cboi1Yqb.js +1 -0
  311. package/dist/dashboard/public/assets/oz-BzwKVEFT.js +1 -0
  312. package/dist/dashboard/public/assets/pascal--L3eBynH.js +1 -0
  313. package/dist/dashboard/public/assets/path-CbwjOpE9.js +1 -0
  314. package/dist/dashboard/public/assets/perl-CdXCOZ3F.js +1 -0
  315. package/dist/dashboard/public/assets/pieDiagram-a8764435-D-xy_NSA.js +35 -0
  316. package/dist/dashboard/public/assets/pig-CevX1Tat.js +1 -0
  317. package/dist/dashboard/public/assets/powershell-CFHJl5sT.js +1 -0
  318. package/dist/dashboard/public/assets/properties-C78fOPTZ.js +1 -0
  319. package/dist/dashboard/public/assets/protobuf-ChK-085T.js +1 -0
  320. package/dist/dashboard/public/assets/pug-DeIclll2.js +1 -0
  321. package/dist/dashboard/public/assets/puppet-DMA9R1ak.js +1 -0
  322. package/dist/dashboard/public/assets/python-BuPzkPfP.js +1 -0
  323. package/dist/dashboard/public/assets/q-pXgVlZs6.js +1 -0
  324. package/dist/dashboard/public/assets/quadrantDiagram-1e28029f-BoL2wzz0.js +7 -0
  325. package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
  326. package/dist/dashboard/public/assets/requirementDiagram-08caed73-BujFz0q1.js +52 -0
  327. package/dist/dashboard/public/assets/rpm-CTu-6PCP.js +1 -0
  328. package/dist/dashboard/public/assets/ruby-B2Rjki9n.js +1 -0
  329. package/dist/dashboard/public/assets/sankeyDiagram-a04cb91d-D03_NARm.js +8 -0
  330. package/dist/dashboard/public/assets/sas-B4kiWyti.js +1 -0
  331. package/dist/dashboard/public/assets/scheme-C41bIUwD.js +1 -0
  332. package/dist/dashboard/public/assets/sequenceDiagram-c5b8d532-B65eFcaT.js +122 -0
  333. package/dist/dashboard/public/assets/shell-CjFT_Tl9.js +1 -0
  334. package/dist/dashboard/public/assets/sieve-C3Gn_uJK.js +1 -0
  335. package/dist/dashboard/public/assets/simple-mode-GW_nhZxv.js +1 -0
  336. package/dist/dashboard/public/assets/smalltalk-CnHTOXQT.js +1 -0
  337. package/dist/dashboard/public/assets/solr-DehyRSwq.js +1 -0
  338. package/dist/dashboard/public/assets/sparql-DkYu6x3z.js +1 -0
  339. package/dist/dashboard/public/assets/spreadsheet-BCZA_wO0.js +1 -0
  340. package/dist/dashboard/public/assets/sql-D0XecflT.js +1 -0
  341. package/dist/dashboard/public/assets/stateDiagram-1ecb1508-BDbqu0Vl.js +1 -0
  342. package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-CBHvk4b8.js +1 -0
  343. package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
  344. package/dist/dashboard/public/assets/styles-b4e223ce-CELsPqaO.js +160 -0
  345. package/dist/dashboard/public/assets/styles-ca3715f6-BRqMqT6F.js +207 -0
  346. package/dist/dashboard/public/assets/styles-d45a18b0-e8N-oLPy.js +116 -0
  347. package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
  348. package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-vNDtmQc-.js +1 -0
  349. package/dist/dashboard/public/assets/swift-BzpIVaGY.js +1 -0
  350. package/dist/dashboard/public/assets/tcl-DVfN8rqt.js +1 -0
  351. package/dist/dashboard/public/assets/textile-CnDTJFAw.js +1 -0
  352. package/dist/dashboard/public/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  353. package/dist/dashboard/public/assets/tiki-DGYXhP31.js +1 -0
  354. package/dist/dashboard/public/assets/timeline-definition-faaaa080-Dh2_A5VU.js +61 -0
  355. package/dist/dashboard/public/assets/toml-Bm5Em-hy.js +1 -0
  356. package/dist/dashboard/public/assets/troff-wAsdV37c.js +1 -0
  357. package/dist/dashboard/public/assets/ttcn-CfJYG6tj.js +1 -0
  358. package/dist/dashboard/public/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  359. package/dist/dashboard/public/assets/turtle-B1tBg_DP.js +1 -0
  360. package/dist/dashboard/public/assets/vb-CmGdzxic.js +1 -0
  361. package/dist/dashboard/public/assets/vbscript-BuJXcnF6.js +1 -0
  362. package/dist/dashboard/public/assets/velocity-D8B20fx6.js +1 -0
  363. package/dist/dashboard/public/assets/verilog-C6RDOZhf.js +1 -0
  364. package/dist/dashboard/public/assets/vhdl-lSbBsy5d.js +1 -0
  365. package/dist/dashboard/public/assets/webidl-ZXfAyPTL.js +1 -0
  366. package/dist/dashboard/public/assets/xquery-DzFWVndE.js +1 -0
  367. package/dist/dashboard/public/assets/xychartDiagram-f5964ef8-B76v1AVF.js +7 -0
  368. package/dist/dashboard/public/assets/yacas-BJ4BC0dw.js +1 -0
  369. package/dist/dashboard/public/assets/z80-Hz9HOZM7.js +1 -0
  370. package/dist/dashboard/public/claude-icon-dark.svg +1 -0
  371. package/dist/dashboard/public/claude-icon.svg +1 -0
  372. package/dist/dashboard/public/index.html +16 -0
  373. package/dist/dashboard/settings-manager.d.ts +47 -0
  374. package/dist/dashboard/settings-manager.d.ts.map +1 -0
  375. package/dist/dashboard/settings-manager.js +180 -0
  376. package/dist/dashboard/settings-manager.js.map +1 -0
  377. package/dist/dashboard/utils.d.ts +31 -0
  378. package/dist/dashboard/utils.d.ts.map +1 -0
  379. package/dist/dashboard/utils.js +102 -0
  380. package/dist/dashboard/utils.js.map +1 -0
  381. package/dist/dashboard/watcher.d.ts +32 -0
  382. package/dist/dashboard/watcher.d.ts.map +1 -0
  383. package/dist/dashboard/watcher.js +173 -0
  384. package/dist/dashboard/watcher.js.map +1 -0
  385. package/dist/index.d.ts +13 -0
  386. package/dist/index.d.ts.map +1 -0
  387. package/dist/index.js +380 -0
  388. package/dist/index.js.map +1 -0
  389. package/dist/markdown/templates/design-template.md +126 -0
  390. package/dist/markdown/templates/product-template.md +51 -0
  391. package/dist/markdown/templates/requirements-template.md +50 -0
  392. package/dist/markdown/templates/structure-template.md +145 -0
  393. package/dist/markdown/templates/tasks-template.md +100 -0
  394. package/dist/markdown/templates/tech-template.md +99 -0
  395. package/dist/markdown/templates/test-design-template.md +221 -0
  396. package/dist/prompts/create-spec.d.ts +3 -0
  397. package/dist/prompts/create-spec.d.ts.map +1 -0
  398. package/dist/prompts/create-spec.js +97 -0
  399. package/dist/prompts/create-spec.js.map +1 -0
  400. package/dist/prompts/create-steering-doc.d.ts +3 -0
  401. package/dist/prompts/create-steering-doc.d.ts.map +1 -0
  402. package/dist/prompts/create-steering-doc.js +75 -0
  403. package/dist/prompts/create-steering-doc.js.map +1 -0
  404. package/dist/prompts/implement-task.d.ts +3 -0
  405. package/dist/prompts/implement-task.d.ts.map +1 -0
  406. package/dist/prompts/implement-task.js +174 -0
  407. package/dist/prompts/implement-task.js.map +1 -0
  408. package/dist/prompts/index.d.ts +20 -0
  409. package/dist/prompts/index.d.ts.map +1 -0
  410. package/dist/prompts/index.js +103 -0
  411. package/dist/prompts/index.js.map +1 -0
  412. package/dist/prompts/inject-spec-workflow-guide.d.ts +3 -0
  413. package/dist/prompts/inject-spec-workflow-guide.d.ts.map +1 -0
  414. package/dist/prompts/inject-spec-workflow-guide.js +60 -0
  415. package/dist/prompts/inject-spec-workflow-guide.js.map +1 -0
  416. package/dist/prompts/inject-steering-guide.d.ts +3 -0
  417. package/dist/prompts/inject-steering-guide.d.ts.map +1 -0
  418. package/dist/prompts/inject-steering-guide.js +64 -0
  419. package/dist/prompts/inject-steering-guide.js.map +1 -0
  420. package/dist/prompts/refresh-tasks.d.ts +3 -0
  421. package/dist/prompts/refresh-tasks.d.ts.map +1 -0
  422. package/dist/prompts/refresh-tasks.js +237 -0
  423. package/dist/prompts/refresh-tasks.js.map +1 -0
  424. package/dist/prompts/spec-status.d.ts +3 -0
  425. package/dist/prompts/spec-status.d.ts.map +1 -0
  426. package/dist/prompts/spec-status.js +77 -0
  427. package/dist/prompts/spec-status.js.map +1 -0
  428. package/dist/prompts/types.d.ts +13 -0
  429. package/dist/prompts/types.d.ts.map +1 -0
  430. package/dist/prompts/types.js +2 -0
  431. package/dist/prompts/types.js.map +1 -0
  432. package/dist/server.d.ts +17 -0
  433. package/dist/server.d.ts.map +1 -0
  434. package/dist/server.js +175 -0
  435. package/dist/server.js.map +1 -0
  436. package/dist/tools/__tests__/log-implementation-review-process.test.d.ts +2 -0
  437. package/dist/tools/__tests__/log-implementation-review-process.test.d.ts.map +1 -0
  438. package/dist/tools/__tests__/log-implementation-review-process.test.js +190 -0
  439. package/dist/tools/__tests__/log-implementation-review-process.test.js.map +1 -0
  440. package/dist/tools/__tests__/projectPath.test.d.ts +2 -0
  441. package/dist/tools/__tests__/projectPath.test.d.ts.map +1 -0
  442. package/dist/tools/__tests__/projectPath.test.js +187 -0
  443. package/dist/tools/__tests__/projectPath.test.js.map +1 -0
  444. package/dist/tools/approvals.d.ts +14 -0
  445. package/dist/tools/approvals.d.ts.map +1 -0
  446. package/dist/tools/approvals.js +505 -0
  447. package/dist/tools/approvals.js.map +1 -0
  448. package/dist/tools/index.d.ts +5 -0
  449. package/dist/tools/index.d.ts.map +1 -0
  450. package/dist/tools/index.js +52 -0
  451. package/dist/tools/index.js.map +1 -0
  452. package/dist/tools/log-implementation.d.ts +5 -0
  453. package/dist/tools/log-implementation.d.ts.map +1 -0
  454. package/dist/tools/log-implementation.js +498 -0
  455. package/dist/tools/log-implementation.js.map +1 -0
  456. package/dist/tools/spec-status.d.ts +5 -0
  457. package/dist/tools/spec-status.d.ts.map +1 -0
  458. package/dist/tools/spec-status.js +192 -0
  459. package/dist/tools/spec-status.js.map +1 -0
  460. package/dist/tools/spec-workflow-guide.d.ts +5 -0
  461. package/dist/tools/spec-workflow-guide.d.ts.map +1 -0
  462. package/dist/tools/spec-workflow-guide.js +116 -0
  463. package/dist/tools/spec-workflow-guide.js.map +1 -0
  464. package/dist/tools/steering-guide.d.ts +5 -0
  465. package/dist/tools/steering-guide.d.ts.map +1 -0
  466. package/dist/tools/steering-guide.js +192 -0
  467. package/dist/tools/steering-guide.js.map +1 -0
  468. package/dist/types.d.ts +183 -0
  469. package/dist/types.d.ts.map +1 -0
  470. package/dist/types.js +13 -0
  471. package/dist/types.js.map +1 -0
  472. package/package.json +106 -0
@@ -0,0 +1,192 @@
1
+ import { PathUtils } from '../core/path-utils.js';
2
+ import { SpecParser } from '../core/parser.js';
3
+ export const specStatusTool = {
4
+ name: 'spec-status',
5
+ description: `Display comprehensive specification progress overview.
6
+
7
+ # Instructions
8
+ Call when resuming work on a spec or checking overall completion status. Shows which phases are complete and task implementation progress. After viewing status, read tasks.md directly to see all tasks and their status markers ([ ] pending, [-] in-progress, [x] completed).`,
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {
12
+ projectPath: {
13
+ type: 'string',
14
+ description: 'Absolute path to the project root (optional - uses server context path if not provided)'
15
+ },
16
+ specName: {
17
+ type: 'string',
18
+ description: 'Name of the specification'
19
+ }
20
+ },
21
+ required: ['specName']
22
+ },
23
+ annotations: {
24
+ title: 'Spec Status',
25
+ readOnlyHint: true,
26
+ }
27
+ };
28
+ export async function specStatusHandler(args, context) {
29
+ const { specName } = args;
30
+ // Use context projectPath as default, allow override via args
31
+ const projectPath = args.projectPath || context.projectPath;
32
+ if (!projectPath) {
33
+ return {
34
+ success: false,
35
+ message: 'Project path is required but not provided in context or arguments'
36
+ };
37
+ }
38
+ try {
39
+ // Translate path at tool entry point (components expect pre-translated paths)
40
+ const translatedPath = PathUtils.translatePath(projectPath);
41
+ const parser = new SpecParser(translatedPath);
42
+ const spec = await parser.getSpec(specName);
43
+ if (!spec) {
44
+ return {
45
+ success: false,
46
+ message: `Specification '${specName}' not found`,
47
+ nextSteps: [
48
+ 'Check spec name',
49
+ 'Use spec-list for available specs',
50
+ 'Create spec with create-spec-doc'
51
+ ]
52
+ };
53
+ }
54
+ // Determine current phase and overall status
55
+ let currentPhase = 'not-started';
56
+ let overallStatus = 'not-started';
57
+ if (!spec.phases.requirements.exists) {
58
+ currentPhase = 'requirements';
59
+ overallStatus = 'requirements-needed';
60
+ }
61
+ else if (!spec.phases.design.exists) {
62
+ currentPhase = 'design';
63
+ overallStatus = 'design-needed';
64
+ }
65
+ else if (!spec.phases.testDesign.exists) {
66
+ currentPhase = 'test-design';
67
+ overallStatus = 'test-design-needed';
68
+ }
69
+ else if (!spec.phases.tasks.exists) {
70
+ currentPhase = 'tasks';
71
+ overallStatus = 'tasks-needed';
72
+ }
73
+ else if (spec.taskProgress && spec.taskProgress.pending > 0) {
74
+ currentPhase = 'implementation';
75
+ overallStatus = 'implementing';
76
+ }
77
+ else if (spec.taskProgress && spec.taskProgress.total > 0 && spec.taskProgress.completed === spec.taskProgress.total) {
78
+ currentPhase = 'completed';
79
+ overallStatus = 'completed';
80
+ }
81
+ else {
82
+ currentPhase = 'implementation';
83
+ overallStatus = 'ready-for-implementation';
84
+ }
85
+ // Phase details
86
+ const phaseDetails = [
87
+ {
88
+ name: 'Requirements',
89
+ status: spec.phases.requirements.exists ? (spec.phases.requirements.approved ? 'approved' : 'created') : 'missing',
90
+ lastModified: spec.phases.requirements.lastModified
91
+ },
92
+ {
93
+ name: 'Design',
94
+ status: spec.phases.design.exists ? (spec.phases.design.approved ? 'approved' : 'created') : 'missing',
95
+ lastModified: spec.phases.design.lastModified
96
+ },
97
+ {
98
+ name: 'Test Design',
99
+ status: spec.phases.testDesign.exists ? (spec.phases.testDesign.approved ? 'approved' : 'created') : 'missing',
100
+ lastModified: spec.phases.testDesign.lastModified
101
+ },
102
+ {
103
+ name: 'Tasks',
104
+ status: spec.phases.tasks.exists ? (spec.phases.tasks.approved ? 'approved' : 'created') : 'missing',
105
+ lastModified: spec.phases.tasks.lastModified
106
+ },
107
+ {
108
+ name: 'Implementation',
109
+ status: spec.phases.implementation.exists ? 'in-progress' : 'not-started',
110
+ progress: spec.taskProgress
111
+ }
112
+ ];
113
+ // Next steps based on current phase
114
+ const nextSteps = [];
115
+ switch (currentPhase) {
116
+ case 'requirements':
117
+ nextSteps.push('Read template: .spec-workflow/templates/requirements-template-v*.md');
118
+ nextSteps.push('Create: .spec-workflow/specs/{name}/requirements.md');
119
+ nextSteps.push('Request approval');
120
+ break;
121
+ case 'design':
122
+ nextSteps.push('Read template: .spec-workflow/templates/design-template-v*.md');
123
+ nextSteps.push('Create: .spec-workflow/specs/{name}/design.md');
124
+ nextSteps.push('Request approval');
125
+ break;
126
+ case 'test-design':
127
+ nextSteps.push('Read template: .spec-workflow/templates/test-design-template.md');
128
+ nextSteps.push('Create: .spec-workflow/specs/{name}/test-design.md');
129
+ nextSteps.push('Request approval');
130
+ break;
131
+ case 'tasks':
132
+ nextSteps.push('Read template: .spec-workflow/templates/tasks-template-v*.md');
133
+ nextSteps.push('Create: .spec-workflow/specs/{name}/tasks.md');
134
+ nextSteps.push('Request approval');
135
+ break;
136
+ case 'implementation':
137
+ if (spec.taskProgress && spec.taskProgress.pending > 0) {
138
+ nextSteps.push(`Read tasks: .spec-workflow/specs/${specName}/tasks.md`);
139
+ nextSteps.push('Edit tasks.md: Change [ ] to [-] for task you start');
140
+ nextSteps.push('Implement the task code');
141
+ nextSteps.push('Edit tasks.md: Change [-] to [x] when completed');
142
+ }
143
+ else {
144
+ nextSteps.push(`Read tasks: .spec-workflow/specs/${specName}/tasks.md`);
145
+ nextSteps.push('Begin implementation by marking first task [-]');
146
+ }
147
+ break;
148
+ case 'completed':
149
+ nextSteps.push('All tasks completed (marked [x])');
150
+ nextSteps.push('Run tests');
151
+ break;
152
+ }
153
+ return {
154
+ success: true,
155
+ message: `Specification '${specName}' status: ${overallStatus}`,
156
+ data: {
157
+ name: specName,
158
+ description: spec.description,
159
+ currentPhase,
160
+ overallStatus,
161
+ createdAt: spec.createdAt,
162
+ lastModified: spec.lastModified,
163
+ phases: phaseDetails,
164
+ taskProgress: spec.taskProgress || {
165
+ total: 0,
166
+ completed: 0,
167
+ pending: 0
168
+ }
169
+ },
170
+ nextSteps,
171
+ projectContext: {
172
+ projectPath,
173
+ workflowRoot: PathUtils.getWorkflowRoot(projectPath),
174
+ currentPhase,
175
+ dashboardUrl: context.dashboardUrl
176
+ }
177
+ };
178
+ }
179
+ catch (error) {
180
+ const errorMessage = error instanceof Error ? error.message : String(error);
181
+ return {
182
+ success: false,
183
+ message: `Failed to get specification status: ${errorMessage}`,
184
+ nextSteps: [
185
+ 'Check if the specification exists',
186
+ 'Verify the project path',
187
+ 'List directory .spec-workflow/specs/ to see available specifications'
188
+ ]
189
+ };
190
+ }
191
+ }
192
+ //# sourceMappingURL=spec-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-status.js","sourceRoot":"","sources":["../../src/tools/spec-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ToolContext, ToolResponse } from '../types.js';
3
+ export declare const specWorkflowGuideTool: Tool;
4
+ export declare function specWorkflowGuideHandler(args: any, context: ToolContext): Promise<ToolResponse>;
5
+ //# sourceMappingURL=spec-workflow-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-workflow-guide.d.ts","sourceRoot":"","sources":["../../src/tools/spec-workflow-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,eAAO,MAAM,qBAAqB,EAAE,IAiBnC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAsBrG"}
@@ -0,0 +1,116 @@
1
+ export const specWorkflowGuideTool = {
2
+ name: 'spec-workflow-guide',
3
+ description: `Load essential spec workflow instructions to guide feature development from idea to implementation.
4
+
5
+ # Instructions
6
+ Call this tool FIRST when users request spec creation, feature development, or mention specifications. This provides the complete workflow sequence (Requirements → Design → Test Design → Tasks → Implementation) that must be followed. Always load before any other spec tools to ensure proper workflow understanding. It's important that you follow this workflow exactly to avoid errors.
7
+
8
+ NOTE: Do NOT call this tool when the user requests setup-claude-skills. That tool is a standalone file-copy operation and does not require loading the workflow guide.`,
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {},
12
+ additionalProperties: false
13
+ },
14
+ annotations: {
15
+ title: 'Spec Workflow Guide',
16
+ readOnlyHint: true,
17
+ }
18
+ };
19
+ export async function specWorkflowGuideHandler(args, context) {
20
+ // Dashboard URL is populated from registry in server.ts
21
+ const dashboardMessage = context.dashboardUrl ?
22
+ `Monitor progress on dashboard: ${context.dashboardUrl}` :
23
+ 'Please start the dashboard with: spec-workflow-mcp --dashboard';
24
+ return {
25
+ success: true,
26
+ message: 'Complete spec workflow guide loaded - follow this workflow exactly',
27
+ data: {
28
+ guide: getSpecWorkflowGuide(),
29
+ dashboardUrl: context.dashboardUrl,
30
+ dashboardAvailable: !!context.dashboardUrl
31
+ },
32
+ nextSteps: [
33
+ 'Follow sequence: Requirements → Design → Test Design → Tasks → Implementation',
34
+ 'Load templates with get-template-context first',
35
+ 'Request approval after each document',
36
+ 'Use MCP tools only',
37
+ dashboardMessage
38
+ ]
39
+ };
40
+ }
41
+ function getSpecWorkflowGuide() {
42
+ return `# Spec Development Workflow
43
+
44
+ ## Overview
45
+
46
+ Guide users through spec-driven development: Requirements -> Design -> Test Design -> Tasks -> Implementation.
47
+ Feature names use kebab-case (e.g., user-authentication). Create ONE spec at a time.
48
+ Follow this workflow exactly to avoid errors.
49
+
50
+ ## Phases
51
+
52
+ ### Phase 1: Requirements — Define WHAT to build
53
+ - Read steering docs from \`.spec-workflow/steering/*.md\` if they exist
54
+ - Load template: check \`user-templates/\` first, then \`templates/requirements-template.md\`
55
+ - Create: \`.spec-workflow/specs/{spec-name}/requirements.md\`
56
+ - Approval: request -> poll status -> handle revision/approved -> delete -> proceed
57
+
58
+ ### Phase 2: Design — Define HOW to build it
59
+ - Load template: check \`user-templates/\` first, then \`templates/design-template.md\`
60
+ - Analyze codebase for patterns to reuse
61
+ - Create: \`.spec-workflow/specs/{spec-name}/design.md\`
62
+ - Approval: same workflow as Phase 1
63
+
64
+ ### Phase 3: Test Design — Define HOW to test it
65
+ - Load template: check \`user-templates/\` first, then \`templates/test-design-template.md\`
66
+ - Derive UT specs from design.md components, IT specs from component interactions, E2E specs from requirements.md user stories
67
+ - Create: \`.spec-workflow/specs/{spec-name}/test-design.md\`
68
+ - Approval: same workflow as Phase 1
69
+
70
+ ### Phase 4: Tasks — Break into atomic steps
71
+ - Load template: check \`user-templates/\` first, then \`templates/tasks-template.md\`
72
+ - Convert design into atomic tasks (1-3 files each)
73
+ - Generate _Prompt field for each task (Role, Task, Restrictions, _Leverage, _Requirements, Success)
74
+ - Derive _TestFocus from test-design.md UT specifications
75
+ - Create: \`.spec-workflow/specs/{spec-name}/tasks.md\`
76
+ - Approval: same workflow as Phase 1
77
+ - After cleanup: "Spec complete. Ready to implement?"
78
+
79
+ ### Phase 5: Implementation — Execute tasks
80
+ - For each task: mark [-] -> implement -> log-implementation (MANDATORY) -> mark [x]
81
+ - Search implementation logs BEFORE coding to discover existing work
82
+ - Task status: \`[ ]\` pending, \`[-]\` in-progress, \`[x]\` completed
83
+
84
+ ## Approval Workflow (all phases)
85
+
86
+ 1. \`approvals\` action:'request' — filePath only, never content
87
+ 2. \`approvals\` action:'status' — poll until approved/needs-revision
88
+ 3. If needs-revision: update doc, create NEW approval, do NOT proceed
89
+ 4. If approved: \`approvals\` action:'delete' — must succeed before next phase
90
+ 5. If delete fails: STOP, return to polling
91
+
92
+ ## Key Rules
93
+
94
+ - Complete phases in sequence (no skipping)
95
+ - One spec at a time, kebab-case names
96
+ - Verbal approval is NEVER accepted — dashboard or VS Code extension only
97
+ - Never proceed if approval delete fails
98
+ - Every task marked [x] MUST have log-implementation called first
99
+ - Steering docs are optional — only create when explicitly requested
100
+
101
+ ## File Structure
102
+ \`\`\`
103
+ .spec-workflow/
104
+ ├── templates/ # Auto-populated on server start
105
+ ├── user-templates/ # Custom template overrides
106
+ ├── user-prompts/ # Custom prompt overrides
107
+ ├── specs/{spec-name}/
108
+ │ ├── requirements.md
109
+ │ ├── design.md
110
+ │ ├── test-design.md
111
+ │ ├── tasks.md
112
+ │ └── Implementation Logs/
113
+ └── steering/ # Optional: product.md, tech.md, structure.md
114
+ \`\`\``;
115
+ }
116
+ //# sourceMappingURL=spec-workflow-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-workflow-guide.js","sourceRoot":"","sources":["../../src/tools/spec-workflow-guide.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAS;IACzC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE;;;;;uKAKwJ;IACrK,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;IACD,WAAW,EAAE;QACX,KAAK,EAAE,qBAAqB;QAC5B,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAS,EAAE,OAAoB;IAC5E,wDAAwD;IACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,kCAAkC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1D,gEAAgE,CAAC;IAEnE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,oEAAoE;QAC7E,IAAI,EAAE;YACJ,KAAK,EAAE,oBAAoB,EAAE;YAC7B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;SAC3C;QACD,SAAS,EAAE;YACT,+EAA+E;YAC/E,gDAAgD;YAChD,sCAAsC;YACtC,oBAAoB;YACpB,gBAAgB;SACjB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwEF,CAAC;AACR,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ToolContext, ToolResponse } from '../types.js';
3
+ export declare const steeringGuideTool: Tool;
4
+ export declare function steeringGuideHandler(args: any, context: ToolContext): Promise<ToolResponse>;
5
+ //# sourceMappingURL=steering-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steering-guide.d.ts","sourceRoot":"","sources":["../../src/tools/steering-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,eAAO,MAAM,iBAAiB,EAAE,IAe/B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBjG"}
@@ -0,0 +1,192 @@
1
+ export const steeringGuideTool = {
2
+ name: 'steering-guide',
3
+ description: `Load guide for creating project steering documents.
4
+
5
+ # Instructions
6
+ Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow. Provides templates and guidance for product.md, tech.md, and structure.md creation. Its important that you follow this workflow exactly to avoid errors.`,
7
+ inputSchema: {
8
+ type: 'object',
9
+ properties: {},
10
+ additionalProperties: false
11
+ },
12
+ annotations: {
13
+ title: 'Steering Guide',
14
+ readOnlyHint: true,
15
+ }
16
+ };
17
+ export async function steeringGuideHandler(args, context) {
18
+ return {
19
+ success: true,
20
+ message: 'Steering workflow guide loaded - follow this workflow exactly to avoid errors',
21
+ data: {
22
+ guide: getSteeringGuide(),
23
+ dashboardUrl: context.dashboardUrl
24
+ },
25
+ nextSteps: [
26
+ 'Only proceed if user requested steering docs',
27
+ 'Create product.md first',
28
+ 'Then tech.md and structure.md',
29
+ 'Reference in future specs',
30
+ context.dashboardUrl ? `Dashboard: ${context.dashboardUrl}` : 'Start the dashboard with: spec-workflow-mcp --dashboard'
31
+ ]
32
+ };
33
+ }
34
+ function getSteeringGuide() {
35
+ return `# Steering Workflow
36
+
37
+ ## Overview
38
+
39
+ Create project-level guidance documents when explicitly requested. Steering docs establish vision, architecture, and conventions for established codebases. Its important that you follow this workflow exactly to avoid errors.
40
+
41
+ ## Workflow Diagram
42
+
43
+ \`\`\`mermaid
44
+ flowchart TD
45
+ Start([Start: Setup steering docs]) --> Guide[steering-guide<br/>Load workflow instructions]
46
+
47
+ %% Phase 1: Product
48
+ Guide --> P1_Template[Check user-templates first,<br/>then read template:<br/>product-template.md]
49
+ P1_Template --> P1_Generate[Generate vision & goals]
50
+ P1_Generate --> P1_Create[Create file:<br/>.spec-workflow/steering/<br/>product.md]
51
+ P1_Create --> P1_Approve[approvals<br/>action: request<br/>filePath only]
52
+ P1_Approve --> P1_Status[approvals<br/>action: status<br/>poll status]
53
+ P1_Status --> P1_Check{Status?}
54
+ P1_Check -->|needs-revision| P1_Update[Update document using user comments for guidance]
55
+ P1_Update --> P1_Create
56
+ P1_Check -->|approved| P1_Clean[approvals<br/>action: delete]
57
+ P1_Clean -->|failed| P1_Status
58
+
59
+ %% Phase 2: Tech
60
+ P1_Clean -->|success| P2_Template[Check user-templates first,<br/>then read template:<br/>tech-template.md]
61
+ P2_Template --> P2_Analyze[Analyze tech stack]
62
+ P2_Analyze --> P2_Create[Create file:<br/>.spec-workflow/steering/<br/>tech.md]
63
+ P2_Create --> P2_Approve[approvals<br/>action: request<br/>filePath only]
64
+ P2_Approve --> P2_Status[approvals<br/>action: status<br/>poll status]
65
+ P2_Status --> P2_Check{Status?}
66
+ P2_Check -->|needs-revision| P2_Update[Update document using user comments for guidance]
67
+ P2_Update --> P2_Create
68
+ P2_Check -->|approved| P2_Clean[approvals<br/>action: delete]
69
+ P2_Clean -->|failed| P2_Status
70
+
71
+ %% Phase 3: Structure
72
+ P2_Clean -->|success| P3_Template[Check user-templates first,<br/>then read template:<br/>structure-template.md]
73
+ P3_Template --> P3_Analyze[Analyze codebase structure]
74
+ P3_Analyze --> P3_Create[Create file:<br/>.spec-workflow/steering/<br/>structure.md]
75
+ P3_Create --> P3_Approve[approvals<br/>action: request<br/>filePath only]
76
+ P3_Approve --> P3_Status[approvals<br/>action: status<br/>poll status]
77
+ P3_Status --> P3_Check{Status?}
78
+ P3_Check -->|needs-revision| P3_Update[Update document using user comments for guidance]
79
+ P3_Update --> P3_Create
80
+ P3_Check -->|approved| P3_Clean[approvals<br/>action: delete]
81
+ P3_Clean -->|failed| P3_Status
82
+
83
+ P3_Clean -->|success| Complete([Steering docs complete])
84
+
85
+ style Start fill:#e6f3ff
86
+ style Complete fill:#e6f3ff
87
+ style P1_Check fill:#ffe6e6
88
+ style P2_Check fill:#ffe6e6
89
+ style P3_Check fill:#ffe6e6
90
+ \`\`\`
91
+
92
+ ## Steering Workflow Phases
93
+
94
+ ### Phase 1: Product Document
95
+ **Purpose**: Define vision, goals, and user outcomes.
96
+
97
+ **File Operations**:
98
+ - Check for custom template: \`.spec-workflow/user-templates/product-template.md\`
99
+ - Read template: \`.spec-workflow/templates/product-template.md\` (if no custom template)
100
+ - Create document: \`.spec-workflow/steering/product.md\`
101
+
102
+ **Tools**:
103
+ - steering-guide: Load workflow instructions
104
+ - approvals: Manage approval workflow (actions: request, status, delete)
105
+
106
+ **Process**:
107
+ 1. Load steering guide for workflow overview
108
+ 2. Check for custom template at \`.spec-workflow/user-templates/product-template.md\`
109
+ 3. If no custom template, read from \`.spec-workflow/templates/product-template.md\`
110
+ 4. Generate product vision and goals
111
+ 5. Create \`product.md\` at \`.spec-workflow/steering/product.md\`
112
+ 6. Request approval using approvals tool with action:'request' (filePath only)
113
+ 7. Poll status using approvals with action:'status' until approved/needs-revision (NEVER accept verbal approval)
114
+ 8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
115
+ 9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
116
+ 10. If delete fails: STOP - return to polling
117
+
118
+ ### Phase 2: Tech Document
119
+ **Purpose**: Document technology decisions and architecture.
120
+
121
+ **File Operations**:
122
+ - Check for custom template: \`.spec-workflow/user-templates/tech-template.md\`
123
+ - Read template: \`.spec-workflow/templates/tech-template.md\` (if no custom template)
124
+ - Create document: \`.spec-workflow/steering/tech.md\`
125
+
126
+ **Tools**:
127
+ - approvals: Manage approval workflow (actions: request, status, delete)
128
+
129
+ **Process**:
130
+ 1. Check for custom template at \`.spec-workflow/user-templates/tech-template.md\`
131
+ 2. If no custom template, read from \`.spec-workflow/templates/tech-template.md\`
132
+ 3. Analyze existing technology stack
133
+ 4. Document architectural decisions and patterns
134
+ 5. Create \`tech.md\` at \`.spec-workflow/steering/tech.md\`
135
+ 6. Request approval using approvals tool with action:'request'
136
+ 7. Poll status using approvals with action:'status' until approved/needs-revision
137
+ 8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
138
+ 9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
139
+ 10. If delete fails: STOP - return to polling
140
+
141
+ ### Phase 3: Structure Document
142
+ **Purpose**: Map codebase organization and patterns.
143
+
144
+ **File Operations**:
145
+ - Check for custom template: \`.spec-workflow/user-templates/structure-template.md\`
146
+ - Read template: \`.spec-workflow/templates/structure-template.md\` (if no custom template)
147
+ - Create document: \`.spec-workflow/steering/structure.md\`
148
+
149
+ **Tools**:
150
+ - approvals: Manage approval workflow (actions: request, status, delete)
151
+
152
+ **Process**:
153
+ 1. Check for custom template at \`.spec-workflow/user-templates/structure-template.md\`
154
+ 2. If no custom template, read from \`.spec-workflow/templates/structure-template.md\`
155
+ 3. Analyze directory structure and file organization
156
+ 4. Document coding patterns and conventions
157
+ 5. Create \`structure.md\` at \`.spec-workflow/steering/structure.md\`
158
+ 6. Request approval using approvals tool with action:'request'
159
+ 7. Poll status using approvals with action:'status' until approved/needs-revision
160
+ 8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
161
+ 9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
162
+ 10. If delete fails: STOP - return to polling
163
+ 11. After successful cleanup: "Steering docs complete. Ready for spec creation?"
164
+
165
+ ## Workflow Rules
166
+
167
+ - Create documents directly at specified file paths
168
+ - Check for custom templates in \`.spec-workflow/user-templates/\` first
169
+ - Read templates from \`.spec-workflow/templates/\` directory if no custom template exists
170
+ - Follow exact template structures
171
+ - Get explicit user approval between phases (using approvals tool with action:'request')
172
+ - Complete phases in sequence (no skipping)
173
+ - Approval requests: provide filePath only, never content
174
+ - BLOCKING: Never proceed if approval delete fails
175
+ - CRITICAL: Must have approved status AND successful cleanup before next phase
176
+ - CRITICAL: Verbal approval is NEVER accepted - dashboard or VS Code extension only
177
+ - NEVER proceed on user saying "approved" - check system status only
178
+
179
+ ## File Structure
180
+ \`\`\`
181
+ .spec-workflow/
182
+ ├── templates/ # Auto-populated on server start
183
+ │ ├── product-template.md
184
+ │ ├── tech-template.md
185
+ │ └── structure-template.md
186
+ └── steering/
187
+ ├── product.md
188
+ ├── tech.md
189
+ └── structure.md
190
+ \`\`\``;
191
+ }
192
+ //# sourceMappingURL=steering-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steering-guide.js","sourceRoot":"","sources":["../../src/tools/steering-guide.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;;;ySAG0R;IACvS,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;IACD,WAAW,EAAE;QACX,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAS,EAAE,OAAoB;IACxE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,+EAA+E;QACxF,IAAI,EAAE;YACJ,KAAK,EAAE,gBAAgB,EAAE;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC;QACD,SAAS,EAAE;YACT,8CAA8C;YAC9C,yBAAyB;YACzB,+BAA+B;YAC/B,2BAA2B;YAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,yDAAyD;SACxH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2JF,CAAC;AACR,CAAC"}