@lbruton/spec-workflow-mcp 2.2.4

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 (407) hide show
  1. package/CHANGELOG.md +955 -0
  2. package/LICENSE +674 -0
  3. package/README.ar.md +314 -0
  4. package/README.de.md +314 -0
  5. package/README.es.md +314 -0
  6. package/README.fr.md +314 -0
  7. package/README.it.md +314 -0
  8. package/README.ja.md +316 -0
  9. package/README.ko.md +314 -0
  10. package/README.md +373 -0
  11. package/README.pt.md +314 -0
  12. package/README.ru.md +314 -0
  13. package/README.zh.md +314 -0
  14. package/dist/__tests__/config.test.d.ts +2 -0
  15. package/dist/__tests__/config.test.d.ts.map +1 -0
  16. package/dist/__tests__/config.test.js +264 -0
  17. package/dist/__tests__/config.test.js.map +1 -0
  18. package/dist/__tests__/index-args.test.d.ts +2 -0
  19. package/dist/__tests__/index-args.test.d.ts.map +1 -0
  20. package/dist/__tests__/index-args.test.js +43 -0
  21. package/dist/__tests__/index-args.test.js.map +1 -0
  22. package/dist/__tests__/index-entrypoint.test.d.ts +2 -0
  23. package/dist/__tests__/index-entrypoint.test.d.ts.map +1 -0
  24. package/dist/__tests__/index-entrypoint.test.js +23 -0
  25. package/dist/__tests__/index-entrypoint.test.js.map +1 -0
  26. package/dist/config.d.ts +26 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +188 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/core/__tests__/git-utils.test.d.ts +2 -0
  31. package/dist/core/__tests__/git-utils.test.d.ts.map +1 -0
  32. package/dist/core/__tests__/git-utils.test.js +179 -0
  33. package/dist/core/__tests__/git-utils.test.js.map +1 -0
  34. package/dist/core/__tests__/mdx-validator.test.d.ts +2 -0
  35. package/dist/core/__tests__/mdx-validator.test.d.ts.map +1 -0
  36. package/dist/core/__tests__/mdx-validator.test.js +42 -0
  37. package/dist/core/__tests__/mdx-validator.test.js.map +1 -0
  38. package/dist/core/__tests__/path-utils.test.d.ts +2 -0
  39. package/dist/core/__tests__/path-utils.test.d.ts.map +1 -0
  40. package/dist/core/__tests__/path-utils.test.js +344 -0
  41. package/dist/core/__tests__/path-utils.test.js.map +1 -0
  42. package/dist/core/__tests__/project-registry.test.d.ts +2 -0
  43. package/dist/core/__tests__/project-registry.test.d.ts.map +1 -0
  44. package/dist/core/__tests__/project-registry.test.js +62 -0
  45. package/dist/core/__tests__/project-registry.test.js.map +1 -0
  46. package/dist/core/__tests__/security-utils.test.d.ts +2 -0
  47. package/dist/core/__tests__/security-utils.test.d.ts.map +1 -0
  48. package/dist/core/__tests__/security-utils.test.js +643 -0
  49. package/dist/core/__tests__/security-utils.test.js.map +1 -0
  50. package/dist/core/__tests__/task-validator.test.d.ts +2 -0
  51. package/dist/core/__tests__/task-validator.test.d.ts.map +1 -0
  52. package/dist/core/__tests__/task-validator.test.js +237 -0
  53. package/dist/core/__tests__/task-validator.test.js.map +1 -0
  54. package/dist/core/archive-service.d.ts +10 -0
  55. package/dist/core/archive-service.d.ts.map +1 -0
  56. package/dist/core/archive-service.js +99 -0
  57. package/dist/core/archive-service.js.map +1 -0
  58. package/dist/core/dashboard-session.d.ts +49 -0
  59. package/dist/core/dashboard-session.d.ts.map +1 -0
  60. package/dist/core/dashboard-session.js +132 -0
  61. package/dist/core/dashboard-session.js.map +1 -0
  62. package/dist/core/git-utils.d.ts +25 -0
  63. package/dist/core/git-utils.d.ts.map +1 -0
  64. package/dist/core/git-utils.js +87 -0
  65. package/dist/core/git-utils.js.map +1 -0
  66. package/dist/core/global-dir.d.ts +44 -0
  67. package/dist/core/global-dir.d.ts.map +1 -0
  68. package/dist/core/global-dir.js +74 -0
  69. package/dist/core/global-dir.js.map +1 -0
  70. package/dist/core/implementation-log-migrator.d.ts +41 -0
  71. package/dist/core/implementation-log-migrator.d.ts.map +1 -0
  72. package/dist/core/implementation-log-migrator.js +258 -0
  73. package/dist/core/implementation-log-migrator.js.map +1 -0
  74. package/dist/core/mdx-validator.d.ts +14 -0
  75. package/dist/core/mdx-validator.d.ts.map +1 -0
  76. package/dist/core/mdx-validator.js +34 -0
  77. package/dist/core/mdx-validator.js.map +1 -0
  78. package/dist/core/parser.d.ts +11 -0
  79. package/dist/core/parser.d.ts.map +1 -0
  80. package/dist/core/parser.js +126 -0
  81. package/dist/core/parser.js.map +1 -0
  82. package/dist/core/path-utils.d.ts +63 -0
  83. package/dist/core/path-utils.d.ts.map +1 -0
  84. package/dist/core/path-utils.js +288 -0
  85. package/dist/core/path-utils.js.map +1 -0
  86. package/dist/core/project-registry.d.ts +94 -0
  87. package/dist/core/project-registry.d.ts.map +1 -0
  88. package/dist/core/project-registry.js +297 -0
  89. package/dist/core/project-registry.js.map +1 -0
  90. package/dist/core/security-utils.d.ts +97 -0
  91. package/dist/core/security-utils.d.ts.map +1 -0
  92. package/dist/core/security-utils.js +264 -0
  93. package/dist/core/security-utils.js.map +1 -0
  94. package/dist/core/task-parser.d.ts +63 -0
  95. package/dist/core/task-parser.d.ts.map +1 -0
  96. package/dist/core/task-parser.js +332 -0
  97. package/dist/core/task-parser.js.map +1 -0
  98. package/dist/core/task-validator.d.ts +35 -0
  99. package/dist/core/task-validator.d.ts.map +1 -0
  100. package/dist/core/task-validator.js +236 -0
  101. package/dist/core/task-validator.js.map +1 -0
  102. package/dist/core/workspace-initializer.d.ts +16 -0
  103. package/dist/core/workspace-initializer.d.ts.map +1 -0
  104. package/dist/core/workspace-initializer.js +165 -0
  105. package/dist/core/workspace-initializer.js.map +1 -0
  106. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts +2 -0
  107. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts.map +1 -0
  108. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js +69 -0
  109. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js.map +1 -0
  110. package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts +2 -0
  111. package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts.map +1 -0
  112. package/dist/dashboard/__tests__/multi-server-approvals-content.test.js +116 -0
  113. package/dist/dashboard/__tests__/multi-server-approvals-content.test.js.map +1 -0
  114. package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts +2 -0
  115. package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts.map +1 -0
  116. package/dist/dashboard/__tests__/watcher-error-handling.test.js +118 -0
  117. package/dist/dashboard/__tests__/watcher-error-handling.test.js.map +1 -0
  118. package/dist/dashboard/approval-storage.d.ts +139 -0
  119. package/dist/dashboard/approval-storage.d.ts.map +1 -0
  120. package/dist/dashboard/approval-storage.js +586 -0
  121. package/dist/dashboard/approval-storage.js.map +1 -0
  122. package/dist/dashboard/execution-history-manager.d.ts +52 -0
  123. package/dist/dashboard/execution-history-manager.d.ts.map +1 -0
  124. package/dist/dashboard/execution-history-manager.js +161 -0
  125. package/dist/dashboard/execution-history-manager.js.map +1 -0
  126. package/dist/dashboard/implementation-log-manager.d.ts +97 -0
  127. package/dist/dashboard/implementation-log-manager.d.ts.map +1 -0
  128. package/dist/dashboard/implementation-log-manager.js +586 -0
  129. package/dist/dashboard/implementation-log-manager.js.map +1 -0
  130. package/dist/dashboard/job-scheduler.d.ts +91 -0
  131. package/dist/dashboard/job-scheduler.d.ts.map +1 -0
  132. package/dist/dashboard/job-scheduler.js +321 -0
  133. package/dist/dashboard/job-scheduler.js.map +1 -0
  134. package/dist/dashboard/multi-server.d.ts +42 -0
  135. package/dist/dashboard/multi-server.d.ts.map +1 -0
  136. package/dist/dashboard/multi-server.js +1313 -0
  137. package/dist/dashboard/multi-server.js.map +1 -0
  138. package/dist/dashboard/parser.d.ts +18 -0
  139. package/dist/dashboard/parser.d.ts.map +1 -0
  140. package/dist/dashboard/parser.js +243 -0
  141. package/dist/dashboard/parser.js.map +1 -0
  142. package/dist/dashboard/project-manager.d.ts +82 -0
  143. package/dist/dashboard/project-manager.d.ts.map +1 -0
  144. package/dist/dashboard/project-manager.js +257 -0
  145. package/dist/dashboard/project-manager.js.map +1 -0
  146. package/dist/dashboard/public/assets/Inter-Bold-CD3Pr7BX.woff2 +0 -0
  147. package/dist/dashboard/public/assets/Inter-Medium-B_8v_WHh.woff2 +0 -0
  148. package/dist/dashboard/public/assets/Inter-Regular-DRVdRqcI.woff2 +0 -0
  149. package/dist/dashboard/public/assets/Inter-SemiBold-CtskMddL.woff2 +0 -0
  150. package/dist/dashboard/public/assets/JetBrainsMono-Bold-D4WEaHbo.woff2 +0 -0
  151. package/dist/dashboard/public/assets/JetBrainsMono-Medium-3S3k2nMz.woff2 +0 -0
  152. package/dist/dashboard/public/assets/JetBrainsMono-Regular-BQaDgvhP.woff2 +0 -0
  153. package/dist/dashboard/public/assets/Tableau10-B-NsZVaP.js +1 -0
  154. package/dist/dashboard/public/assets/apl-B4CMkyY2.js +1 -0
  155. package/dist/dashboard/public/assets/arc-C8LPXB-J.js +1 -0
  156. package/dist/dashboard/public/assets/array-BKyUJesY.js +1 -0
  157. package/dist/dashboard/public/assets/asciiarmor-Df11BRmG.js +1 -0
  158. package/dist/dashboard/public/assets/asn1-EdZsLKOL.js +1 -0
  159. package/dist/dashboard/public/assets/asterisk-B-8jnY81.js +1 -0
  160. package/dist/dashboard/public/assets/blockDiagram-c4efeb88-RidjsOEy.js +118 -0
  161. package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
  162. package/dist/dashboard/public/assets/c4Diagram-c83219d4-CAH3hSpm.js +10 -0
  163. package/dist/dashboard/public/assets/channel-CmDIZRCD.js +1 -0
  164. package/dist/dashboard/public/assets/classDiagram-beda092f-Bo46Efmw.js +2 -0
  165. package/dist/dashboard/public/assets/classDiagram-v2-2358418a-Be57sb3z.js +2 -0
  166. package/dist/dashboard/public/assets/clike-B9uivgTg.js +1 -0
  167. package/dist/dashboard/public/assets/clojure-BMjYHr_A.js +1 -0
  168. package/dist/dashboard/public/assets/clone-BiekPeZp.js +1 -0
  169. package/dist/dashboard/public/assets/cmake-BQqOBYOt.js +1 -0
  170. package/dist/dashboard/public/assets/cobol-CWcv1MsR.js +1 -0
  171. package/dist/dashboard/public/assets/coffeescript-S37ZYGWr.js +1 -0
  172. package/dist/dashboard/public/assets/commonlisp-DBKNyK5s.js +1 -0
  173. package/dist/dashboard/public/assets/createText-1719965b-YurEYFNx.js +7 -0
  174. package/dist/dashboard/public/assets/crystal-SjHAIU92.js +1 -0
  175. package/dist/dashboard/public/assets/css-BnMrqG3P.js +1 -0
  176. package/dist/dashboard/public/assets/cypher-C_CwsFkJ.js +1 -0
  177. package/dist/dashboard/public/assets/d-pRatUO7H.js +1 -0
  178. package/dist/dashboard/public/assets/diff-DbItnlRl.js +1 -0
  179. package/dist/dashboard/public/assets/dockerfile-BKs6k2Af.js +1 -0
  180. package/dist/dashboard/public/assets/dtd-DF_7sFjM.js +1 -0
  181. package/dist/dashboard/public/assets/dylan-DwRh75JA.js +1 -0
  182. package/dist/dashboard/public/assets/ebnf-CDyGwa7X.js +1 -0
  183. package/dist/dashboard/public/assets/ecl-Cabwm37j.js +1 -0
  184. package/dist/dashboard/public/assets/edges-96097737--BjsAXwD.js +4 -0
  185. package/dist/dashboard/public/assets/eiffel-CnydiIhH.js +1 -0
  186. package/dist/dashboard/public/assets/elm-vLlmbW-K.js +1 -0
  187. package/dist/dashboard/public/assets/erDiagram-0228fc6a-BLGuJz36.js +51 -0
  188. package/dist/dashboard/public/assets/erlang-BNw1qcRV.js +1 -0
  189. package/dist/dashboard/public/assets/factor-kuTfRLto.js +1 -0
  190. package/dist/dashboard/public/assets/fcl-Kvtd6kyn.js +1 -0
  191. package/dist/dashboard/public/assets/flowDb-c6c81e3f-C8vD2iEO.js +10 -0
  192. package/dist/dashboard/public/assets/flowDiagram-50d868cf-BhxgVmOU.js +4 -0
  193. package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-DvKCh0ha.js +1 -0
  194. package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-CxOZDcEC.js +139 -0
  195. package/dist/dashboard/public/assets/forth-Ffai-XNe.js +1 -0
  196. package/dist/dashboard/public/assets/fortran-DYz_wnZ1.js +1 -0
  197. package/dist/dashboard/public/assets/ganttDiagram-a2739b55-vP9JOLba.js +257 -0
  198. package/dist/dashboard/public/assets/gas-Bneqetm1.js +1 -0
  199. package/dist/dashboard/public/assets/gherkin-heZmZLOM.js +1 -0
  200. package/dist/dashboard/public/assets/gitGraphDiagram-82fe8481-Cw0sm0i1.js +70 -0
  201. package/dist/dashboard/public/assets/graph-DKTWMcEG.js +1 -0
  202. package/dist/dashboard/public/assets/groovy-D9Dt4D0W.js +1 -0
  203. package/dist/dashboard/public/assets/haskell-Cw1EW3IL.js +1 -0
  204. package/dist/dashboard/public/assets/haxe-H-WmDvRZ.js +1 -0
  205. package/dist/dashboard/public/assets/http-DBlCnlav.js +1 -0
  206. package/dist/dashboard/public/assets/idl-BEugSyMb.js +1 -0
  207. package/dist/dashboard/public/assets/index-1zJPiVa8.js +3 -0
  208. package/dist/dashboard/public/assets/index-5325376f-DWs4kCT4.js +1 -0
  209. package/dist/dashboard/public/assets/index-BITJ9OoM.js +1 -0
  210. package/dist/dashboard/public/assets/index-C38JlXWp.js +1 -0
  211. package/dist/dashboard/public/assets/index-CCjPelL2.js +2 -0
  212. package/dist/dashboard/public/assets/index-CD9WQNmE.js +1 -0
  213. package/dist/dashboard/public/assets/index-CU7K5Zcb.js +1 -0
  214. package/dist/dashboard/public/assets/index-CXQVOhJV.js +1 -0
  215. package/dist/dashboard/public/assets/index-CXcaRrZ2.js +1 -0
  216. package/dist/dashboard/public/assets/index-ChLAL6g5.css +1 -0
  217. package/dist/dashboard/public/assets/index-D0o1vVOe.js +7 -0
  218. package/dist/dashboard/public/assets/index-DCsxqRvu.js +1 -0
  219. package/dist/dashboard/public/assets/index-DL3iiiRz.js +1 -0
  220. package/dist/dashboard/public/assets/index-DMv2_K2V.js +1 -0
  221. package/dist/dashboard/public/assets/index-DX7EEJ21.js +1 -0
  222. package/dist/dashboard/public/assets/index-Dey_HIH7.js +1 -0
  223. package/dist/dashboard/public/assets/index-DzDTRLhf.js +1 -0
  224. package/dist/dashboard/public/assets/index-OePkEWBg.js +1 -0
  225. package/dist/dashboard/public/assets/index-_d82jdTP.js +1 -0
  226. package/dist/dashboard/public/assets/index-yCKz4OXA.js +319 -0
  227. package/dist/dashboard/public/assets/infoDiagram-8eee0895-BRq08fZf.js +7 -0
  228. package/dist/dashboard/public/assets/init-Gi6I4Gst.js +1 -0
  229. package/dist/dashboard/public/assets/javascript-iXu5QeM3.js +1 -0
  230. package/dist/dashboard/public/assets/journeyDiagram-c64418c1-Cf8D2OC8.js +139 -0
  231. package/dist/dashboard/public/assets/julia-DuME0IfC.js +1 -0
  232. package/dist/dashboard/public/assets/katex-XbL3y5x-.js +261 -0
  233. package/dist/dashboard/public/assets/layout-CVdidYA-.js +1 -0
  234. package/dist/dashboard/public/assets/line-BdckgA27.js +1 -0
  235. package/dist/dashboard/public/assets/linear-C9Nh3JLa.js +1 -0
  236. package/dist/dashboard/public/assets/livescript-BwQOo05w.js +1 -0
  237. package/dist/dashboard/public/assets/lua-BgMRiT3U.js +1 -0
  238. package/dist/dashboard/public/assets/mathematica-DTrFuWx2.js +1 -0
  239. package/dist/dashboard/public/assets/mbox-CNhZ1qSd.js +1 -0
  240. package/dist/dashboard/public/assets/mindmap-definition-8da855dc-CK-y1AmO.js +415 -0
  241. package/dist/dashboard/public/assets/mirc-CjQqDB4T.js +1 -0
  242. package/dist/dashboard/public/assets/mllike-CXdrOF99.js +1 -0
  243. package/dist/dashboard/public/assets/modelica-Dc1JOy9r.js +1 -0
  244. package/dist/dashboard/public/assets/mscgen-BA5vi2Kp.js +1 -0
  245. package/dist/dashboard/public/assets/mumps-BT43cFF4.js +1 -0
  246. package/dist/dashboard/public/assets/nginx-DdIZxoE0.js +1 -0
  247. package/dist/dashboard/public/assets/nsis-LdVXkNf5.js +1 -0
  248. package/dist/dashboard/public/assets/ntriples-BfvgReVJ.js +1 -0
  249. package/dist/dashboard/public/assets/octave-Ck1zUtKM.js +1 -0
  250. package/dist/dashboard/public/assets/ordinal-Cboi1Yqb.js +1 -0
  251. package/dist/dashboard/public/assets/oz-BzwKVEFT.js +1 -0
  252. package/dist/dashboard/public/assets/pascal--L3eBynH.js +1 -0
  253. package/dist/dashboard/public/assets/path-CbwjOpE9.js +1 -0
  254. package/dist/dashboard/public/assets/perl-CdXCOZ3F.js +1 -0
  255. package/dist/dashboard/public/assets/pieDiagram-a8764435-T8V0JN2R.js +35 -0
  256. package/dist/dashboard/public/assets/pig-CevX1Tat.js +1 -0
  257. package/dist/dashboard/public/assets/powershell-CFHJl5sT.js +1 -0
  258. package/dist/dashboard/public/assets/properties-C78fOPTZ.js +1 -0
  259. package/dist/dashboard/public/assets/protobuf-ChK-085T.js +1 -0
  260. package/dist/dashboard/public/assets/pug-DeIclll2.js +1 -0
  261. package/dist/dashboard/public/assets/puppet-DMA9R1ak.js +1 -0
  262. package/dist/dashboard/public/assets/python-BuPzkPfP.js +1 -0
  263. package/dist/dashboard/public/assets/q-pXgVlZs6.js +1 -0
  264. package/dist/dashboard/public/assets/quadrantDiagram-1e28029f-CmtVsb5L.js +7 -0
  265. package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
  266. package/dist/dashboard/public/assets/requirementDiagram-08caed73-BUcTnzDl.js +52 -0
  267. package/dist/dashboard/public/assets/rpm-CTu-6PCP.js +1 -0
  268. package/dist/dashboard/public/assets/ruby-B2Rjki9n.js +1 -0
  269. package/dist/dashboard/public/assets/sankeyDiagram-a04cb91d-FswuxQ9M.js +8 -0
  270. package/dist/dashboard/public/assets/sas-B4kiWyti.js +1 -0
  271. package/dist/dashboard/public/assets/scheme-C41bIUwD.js +1 -0
  272. package/dist/dashboard/public/assets/sequenceDiagram-c5b8d532-BJQ15rhX.js +122 -0
  273. package/dist/dashboard/public/assets/shell-CjFT_Tl9.js +1 -0
  274. package/dist/dashboard/public/assets/sieve-C3Gn_uJK.js +1 -0
  275. package/dist/dashboard/public/assets/simple-mode-GW_nhZxv.js +1 -0
  276. package/dist/dashboard/public/assets/smalltalk-CnHTOXQT.js +1 -0
  277. package/dist/dashboard/public/assets/solr-DehyRSwq.js +1 -0
  278. package/dist/dashboard/public/assets/sparql-DkYu6x3z.js +1 -0
  279. package/dist/dashboard/public/assets/spreadsheet-BCZA_wO0.js +1 -0
  280. package/dist/dashboard/public/assets/sql-D0XecflT.js +1 -0
  281. package/dist/dashboard/public/assets/stateDiagram-1ecb1508-BfyE0DYv.js +1 -0
  282. package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-pcGOYyiW.js +1 -0
  283. package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
  284. package/dist/dashboard/public/assets/styles-b4e223ce--lUviH7V.js +160 -0
  285. package/dist/dashboard/public/assets/styles-ca3715f6-BXbrD1Av.js +207 -0
  286. package/dist/dashboard/public/assets/styles-d45a18b0-GyiMrLKu.js +116 -0
  287. package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
  288. package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-DI4Z1GTS.js +1 -0
  289. package/dist/dashboard/public/assets/swift-BzpIVaGY.js +1 -0
  290. package/dist/dashboard/public/assets/tcl-DVfN8rqt.js +1 -0
  291. package/dist/dashboard/public/assets/textile-CnDTJFAw.js +1 -0
  292. package/dist/dashboard/public/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  293. package/dist/dashboard/public/assets/tiki-DGYXhP31.js +1 -0
  294. package/dist/dashboard/public/assets/timeline-definition-faaaa080-B1IgohU4.js +61 -0
  295. package/dist/dashboard/public/assets/toml-Bm5Em-hy.js +1 -0
  296. package/dist/dashboard/public/assets/troff-wAsdV37c.js +1 -0
  297. package/dist/dashboard/public/assets/ttcn-CfJYG6tj.js +1 -0
  298. package/dist/dashboard/public/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  299. package/dist/dashboard/public/assets/turtle-B1tBg_DP.js +1 -0
  300. package/dist/dashboard/public/assets/vb-CmGdzxic.js +1 -0
  301. package/dist/dashboard/public/assets/vbscript-BuJXcnF6.js +1 -0
  302. package/dist/dashboard/public/assets/velocity-D8B20fx6.js +1 -0
  303. package/dist/dashboard/public/assets/verilog-C6RDOZhf.js +1 -0
  304. package/dist/dashboard/public/assets/vhdl-lSbBsy5d.js +1 -0
  305. package/dist/dashboard/public/assets/webidl-ZXfAyPTL.js +1 -0
  306. package/dist/dashboard/public/assets/xquery-DzFWVndE.js +1 -0
  307. package/dist/dashboard/public/assets/xychartDiagram-f5964ef8-B5oRDe_I.js +7 -0
  308. package/dist/dashboard/public/assets/yacas-BJ4BC0dw.js +1 -0
  309. package/dist/dashboard/public/assets/z80-Hz9HOZM7.js +1 -0
  310. package/dist/dashboard/public/claude-icon-dark.svg +1 -0
  311. package/dist/dashboard/public/claude-icon.svg +1 -0
  312. package/dist/dashboard/public/index.html +16 -0
  313. package/dist/dashboard/settings-manager.d.ts +47 -0
  314. package/dist/dashboard/settings-manager.d.ts.map +1 -0
  315. package/dist/dashboard/settings-manager.js +180 -0
  316. package/dist/dashboard/settings-manager.js.map +1 -0
  317. package/dist/dashboard/utils.d.ts +31 -0
  318. package/dist/dashboard/utils.d.ts.map +1 -0
  319. package/dist/dashboard/utils.js +102 -0
  320. package/dist/dashboard/utils.js.map +1 -0
  321. package/dist/dashboard/watcher.d.ts +32 -0
  322. package/dist/dashboard/watcher.d.ts.map +1 -0
  323. package/dist/dashboard/watcher.js +173 -0
  324. package/dist/dashboard/watcher.js.map +1 -0
  325. package/dist/index.d.ts +13 -0
  326. package/dist/index.d.ts.map +1 -0
  327. package/dist/index.js +380 -0
  328. package/dist/index.js.map +1 -0
  329. package/dist/markdown/templates/design-template.md +96 -0
  330. package/dist/markdown/templates/product-template.md +51 -0
  331. package/dist/markdown/templates/requirements-template.md +50 -0
  332. package/dist/markdown/templates/structure-template.md +145 -0
  333. package/dist/markdown/templates/tasks-template.md +139 -0
  334. package/dist/markdown/templates/tech-template.md +99 -0
  335. package/dist/prompts/create-spec.d.ts +3 -0
  336. package/dist/prompts/create-spec.d.ts.map +1 -0
  337. package/dist/prompts/create-spec.js +93 -0
  338. package/dist/prompts/create-spec.js.map +1 -0
  339. package/dist/prompts/create-steering-doc.d.ts +3 -0
  340. package/dist/prompts/create-steering-doc.d.ts.map +1 -0
  341. package/dist/prompts/create-steering-doc.js +73 -0
  342. package/dist/prompts/create-steering-doc.js.map +1 -0
  343. package/dist/prompts/implement-task.d.ts +3 -0
  344. package/dist/prompts/implement-task.d.ts.map +1 -0
  345. package/dist/prompts/implement-task.js +173 -0
  346. package/dist/prompts/implement-task.js.map +1 -0
  347. package/dist/prompts/index.d.ts +15 -0
  348. package/dist/prompts/index.d.ts.map +1 -0
  349. package/dist/prompts/index.js +49 -0
  350. package/dist/prompts/index.js.map +1 -0
  351. package/dist/prompts/inject-spec-workflow-guide.d.ts +3 -0
  352. package/dist/prompts/inject-spec-workflow-guide.d.ts.map +1 -0
  353. package/dist/prompts/inject-spec-workflow-guide.js +47 -0
  354. package/dist/prompts/inject-spec-workflow-guide.js.map +1 -0
  355. package/dist/prompts/inject-steering-guide.d.ts +3 -0
  356. package/dist/prompts/inject-steering-guide.d.ts.map +1 -0
  357. package/dist/prompts/inject-steering-guide.js +51 -0
  358. package/dist/prompts/inject-steering-guide.js.map +1 -0
  359. package/dist/prompts/refresh-tasks.d.ts +3 -0
  360. package/dist/prompts/refresh-tasks.d.ts.map +1 -0
  361. package/dist/prompts/refresh-tasks.js +224 -0
  362. package/dist/prompts/refresh-tasks.js.map +1 -0
  363. package/dist/prompts/spec-status.d.ts +3 -0
  364. package/dist/prompts/spec-status.d.ts.map +1 -0
  365. package/dist/prompts/spec-status.js +75 -0
  366. package/dist/prompts/spec-status.js.map +1 -0
  367. package/dist/prompts/types.d.ts +13 -0
  368. package/dist/prompts/types.d.ts.map +1 -0
  369. package/dist/prompts/types.js +2 -0
  370. package/dist/prompts/types.js.map +1 -0
  371. package/dist/server.d.ts +17 -0
  372. package/dist/server.d.ts.map +1 -0
  373. package/dist/server.js +175 -0
  374. package/dist/server.js.map +1 -0
  375. package/dist/tools/__tests__/projectPath.test.d.ts +2 -0
  376. package/dist/tools/__tests__/projectPath.test.d.ts.map +1 -0
  377. package/dist/tools/__tests__/projectPath.test.js +187 -0
  378. package/dist/tools/__tests__/projectPath.test.js.map +1 -0
  379. package/dist/tools/approvals.d.ts +14 -0
  380. package/dist/tools/approvals.d.ts.map +1 -0
  381. package/dist/tools/approvals.js +490 -0
  382. package/dist/tools/approvals.js.map +1 -0
  383. package/dist/tools/index.d.ts +5 -0
  384. package/dist/tools/index.d.ts.map +1 -0
  385. package/dist/tools/index.js +52 -0
  386. package/dist/tools/index.js.map +1 -0
  387. package/dist/tools/log-implementation.d.ts +5 -0
  388. package/dist/tools/log-implementation.d.ts.map +1 -0
  389. package/dist/tools/log-implementation.js +397 -0
  390. package/dist/tools/log-implementation.js.map +1 -0
  391. package/dist/tools/spec-status.d.ts +5 -0
  392. package/dist/tools/spec-status.d.ts.map +1 -0
  393. package/dist/tools/spec-status.js +178 -0
  394. package/dist/tools/spec-status.js.map +1 -0
  395. package/dist/tools/spec-workflow-guide.d.ts +5 -0
  396. package/dist/tools/spec-workflow-guide.d.ts.map +1 -0
  397. package/dist/tools/spec-workflow-guide.js +291 -0
  398. package/dist/tools/spec-workflow-guide.js.map +1 -0
  399. package/dist/tools/steering-guide.d.ts +5 -0
  400. package/dist/tools/steering-guide.d.ts.map +1 -0
  401. package/dist/tools/steering-guide.js +192 -0
  402. package/dist/tools/steering-guide.js.map +1 -0
  403. package/dist/types.d.ts +172 -0
  404. package/dist/types.d.ts.map +1 -0
  405. package/dist/types.js +13 -0
  406. package/dist/types.js.map +1 -0
  407. package/package.json +105 -0
@@ -0,0 +1,291 @@
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 → Tasks → Implementation) that must be followed. Always load before any other spec tools to ensure proper workflow understanding. 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: 'Spec Workflow Guide',
14
+ readOnlyHint: true,
15
+ }
16
+ };
17
+ export async function specWorkflowGuideHandler(args, context) {
18
+ // Dashboard URL is populated from registry in server.ts
19
+ const dashboardMessage = context.dashboardUrl ?
20
+ `Monitor progress on dashboard: ${context.dashboardUrl}` :
21
+ 'Please start the dashboard with: spec-workflow-mcp --dashboard';
22
+ return {
23
+ success: true,
24
+ message: 'Complete spec workflow guide loaded - follow this workflow exactly',
25
+ data: {
26
+ guide: getSpecWorkflowGuide(),
27
+ dashboardUrl: context.dashboardUrl,
28
+ dashboardAvailable: !!context.dashboardUrl
29
+ },
30
+ nextSteps: [
31
+ 'Follow sequence: Requirements → Design → Tasks → Implementation',
32
+ 'Load templates with get-template-context first',
33
+ 'Request approval after each document',
34
+ 'Use MCP tools only',
35
+ dashboardMessage
36
+ ]
37
+ };
38
+ }
39
+ function getSpecWorkflowGuide() {
40
+ const currentYear = new Date().getFullYear();
41
+ return `# Spec Development Workflow
42
+
43
+ ## Overview
44
+
45
+ You guide users through spec-driven development using MCP tools. Transform rough ideas into detailed specifications through Requirements → Design → Tasks → Implementation phases. Use web search when available for current best practices (current year: ${currentYear}). Its important that you follow this workflow exactly to avoid errors.
46
+ Feature names use kebab-case (e.g., user-authentication). Create ONE spec at a time.
47
+
48
+ ## Workflow Diagram
49
+ \`\`\`mermaid
50
+ flowchart TD
51
+ Start([Start: User requests feature]) --> CheckSteering{Steering docs exist?}
52
+ CheckSteering -->|Yes| P1_Load[Read steering docs:<br/>.spec-workflow/steering/*.md]
53
+ CheckSteering -->|No| P1_Template
54
+
55
+ %% Phase 1: Requirements
56
+ P1_Load --> P1_Template[Check user-templates first,<br/>then read template:<br/>requirements-template.md]
57
+ P1_Template --> P1_Research[Web search if available]
58
+ P1_Research --> P1_Create[Create file:<br/>.spec-workflow/specs/{name}/<br/>requirements.md]
59
+ P1_Create --> P1_Approve[approvals<br/>action: request<br/>filePath only]
60
+ P1_Approve --> P1_Status[approvals<br/>action: status<br/>poll status]
61
+ P1_Status --> P1_Check{Status?}
62
+ P1_Check -->|needs-revision| P1_Update[Update document using user comments as guidance]
63
+ P1_Update --> P1_Create
64
+ P1_Check -->|approved| P1_Clean[approvals<br/>action: delete]
65
+ P1_Clean -->|failed| P1_Status
66
+
67
+ %% Phase 2: Design
68
+ P1_Clean -->|success| P2_Template[Check user-templates first,<br/>then read template:<br/>design-template.md]
69
+ P2_Template --> P2_Analyze[Analyze codebase patterns]
70
+ P2_Analyze --> P2_Create[Create file:<br/>.spec-workflow/specs/{name}/<br/>design.md]
71
+ P2_Create --> P2_Approve[approvals<br/>action: request<br/>filePath only]
72
+ P2_Approve --> P2_Status[approvals<br/>action: status<br/>poll status]
73
+ P2_Status --> P2_Check{Status?}
74
+ P2_Check -->|needs-revision| P2_Update[Update document using user comments as guidance]
75
+ P2_Update --> P2_Create
76
+ P2_Check -->|approved| P2_Clean[approvals<br/>action: delete]
77
+ P2_Clean -->|failed| P2_Status
78
+
79
+ %% Phase 3: Tasks
80
+ P2_Clean -->|success| P3_Template[Check user-templates first,<br/>then read template:<br/>tasks-template.md]
81
+ P3_Template --> P3_Break[Convert design to tasks]
82
+ P3_Break --> P3_Create[Create file:<br/>.spec-workflow/specs/{name}/<br/>tasks.md]
83
+ P3_Create --> P3_Approve[approvals<br/>action: request<br/>filePath only]
84
+ P3_Approve --> P3_Status[approvals<br/>action: status<br/>poll status]
85
+ P3_Status --> P3_Check{Status?}
86
+ P3_Check -->|needs-revision| P3_Update[Update document using user comments as guidance]
87
+ P3_Update --> P3_Create
88
+ P3_Check -->|approved| P3_Clean[approvals<br/>action: delete]
89
+ P3_Clean -->|failed| P3_Status
90
+
91
+ %% Phase 4: Implementation
92
+ P3_Clean -->|success| P4_Ready[Spec complete.<br/>Ready to implement?]
93
+ P4_Ready -->|Yes| P4_Status[spec-status]
94
+ P4_Status --> P4_Task[Edit tasks.md:<br/>Change [ ] to [-]<br/>for in-progress]
95
+ P4_Task --> P4_Code[Implement code]
96
+ P4_Code --> P4_Log[log-implementation<br/>Record implementation<br/>details]
97
+ P4_Log --> P4_Complete[Edit tasks.md:<br/>Change [-] to [x]<br/>for completed]
98
+ P4_Complete --> P4_More{More tasks?}
99
+ P4_More -->|Yes| P4_Task
100
+ P4_More -->|No| End([Implementation Complete])
101
+
102
+ style Start fill:#e1f5e1
103
+ style End fill:#e1f5e1
104
+ style P1_Check fill:#ffe6e6
105
+ style P2_Check fill:#ffe6e6
106
+ style P3_Check fill:#ffe6e6
107
+ style CheckSteering fill:#fff4e6
108
+ style P4_More fill:#fff4e6
109
+ style P4_Log fill:#e3f2fd
110
+ \`\`\`
111
+
112
+ ## Spec Workflow
113
+
114
+ ### Phase 1: Requirements
115
+ **Purpose**: Define what to build based on user needs.
116
+
117
+ **File Operations**:
118
+ - Read steering docs: \`.spec-workflow/steering/*.md\` (if they exist)
119
+ - Check for custom template: \`.spec-workflow/user-templates/requirements-template.md\`
120
+ - Read template: \`.spec-workflow/templates/requirements-template.md\` (if no custom template)
121
+ - Create document: \`.spec-workflow/specs/{spec-name}/requirements.md\`
122
+
123
+ **Tools**:
124
+ - approvals: Manage approval workflow (actions: request, status, delete)
125
+
126
+ **Process**:
127
+ 1. Check if \`.spec-workflow/steering/\` exists (if yes, read product.md, tech.md, structure.md)
128
+ 2. Check for custom template at \`.spec-workflow/user-templates/requirements-template.md\`
129
+ 3. If no custom template, read from \`.spec-workflow/templates/requirements-template.md\`
130
+ 4. Research market/user expectations (if web search available, current year: ${currentYear})
131
+ 5. Generate requirements as user stories with EARS criteria6. Create \`requirements.md\` at \`.spec-workflow/specs/{spec-name}/requirements.md\`
132
+ 7. Request approval using approvals tool with action:'request' (filePath only, never content)
133
+ 8. Poll status using approvals with action:'status' until approved/needs-revision (NEVER accept verbal approval)
134
+ 9. If needs-revision: update document using comments, create NEW approval, do NOT proceed
135
+ 10. Once approved: use approvals with action:'delete' (must succeed) before proceeding
136
+ 11. If delete fails: STOP - return to polling
137
+
138
+ ### Phase 2: Design
139
+ **Purpose**: Create technical design addressing all requirements.
140
+
141
+ **File Operations**:
142
+ - Check for custom template: \`.spec-workflow/user-templates/design-template.md\`
143
+ - Read template: \`.spec-workflow/templates/design-template.md\` (if no custom template)
144
+ - Create document: \`.spec-workflow/specs/{spec-name}/design.md\`
145
+
146
+ **Tools**:
147
+ - approvals: Manage approval workflow (actions: request, status, delete)
148
+
149
+ **Process**:
150
+ 1. Check for custom template at \`.spec-workflow/user-templates/design-template.md\`
151
+ 2. If no custom template, read from \`.spec-workflow/templates/design-template.md\`
152
+ 3. Analyze codebase for patterns to reuse
153
+ 4. Research technology choices (if web search available, current year: ${currentYear})
154
+ 5. Generate design with all template sections6. Create \`design.md\` at \`.spec-workflow/specs/{spec-name}/design.md\`
155
+ 7. Request approval using approvals tool with action:'request'
156
+ 8. Poll status using approvals with action:'status' until approved/needs-revision
157
+ 9. If needs-revision: update document using comments, create NEW approval, do NOT proceed
158
+ 10. Once approved: use approvals with action:'delete' (must succeed) before proceeding
159
+ 11. If delete fails: STOP - return to polling
160
+
161
+ ### Phase 3: Tasks
162
+ **Purpose**: Break design into atomic implementation tasks.
163
+
164
+ **File Operations**:
165
+ - Check for custom template: \`.spec-workflow/user-templates/tasks-template.md\`
166
+ - Read template: \`.spec-workflow/templates/tasks-template.md\` (if no custom template)
167
+ - Create document: \`.spec-workflow/specs/{spec-name}/tasks.md\`
168
+
169
+ **Tools**:
170
+ - approvals: Manage approval workflow (actions: request, status, delete)
171
+
172
+ **Process**:
173
+ 1. Check for custom template at \`.spec-workflow/user-templates/tasks-template.md\`
174
+ 2. If no custom template, read from \`.spec-workflow/templates/tasks-template.md\`
175
+ 3. Convert design into atomic tasks (1-3 files each)
176
+ 4. Include file paths and requirement references
177
+ 5. **IMPORTANT**: Generate a _Prompt field for each task with:
178
+ - Role: specialized developer role for the task
179
+ - Task: clear description with context references
180
+ - Restrictions: what not to do, constraints to follow
181
+ - _Leverage: files/utilities to use
182
+ - _Requirements: requirements that the task implements
183
+ - Success: specific completion criteria
184
+ - Instructions related to setting the task in progress in tasks.md, logging the implementation with log-implementation tool after completion, and then marking it as complete when the task is complete.
185
+ - Start the prompt with "Implement the task for spec {spec-name}, first run spec-workflow-guide to get the workflow guide then implement the task:"
186
+ 6. Create \`tasks.md\` at \`.spec-workflow/specs/{spec-name}/tasks.md\`
187
+ 7. Request approval using approvals tool with action:'request'
188
+ 8. Poll status using approvals with action:'status' until approved/needs-revision
189
+ 9. If needs-revision: update document using comments, create NEW approval, do NOT proceed
190
+ 10. Once approved: use approvals with action:'delete' (must succeed) before proceeding
191
+ 11. If delete fails: STOP - return to polling
192
+ 12. After successful cleanup: "Spec complete. Ready to implement?"
193
+
194
+ ### Phase 4: Implementation
195
+ **Purpose**: Execute tasks systematically.
196
+
197
+ **File Operations**:
198
+ - Read specs: \`.spec-workflow/specs/{spec-name}/*.md\` (if returning to work)
199
+ - Edit tasks.md to update status:
200
+ - \`- [ ]\` = Pending task
201
+ - \`- [-]\` = In-progress task
202
+ - \`- [x]\` = Completed task
203
+
204
+ **Tools**:
205
+ - spec-status: Check overall progress
206
+ - Bash (grep/ripgrep): CRITICAL - Search existing code before implementing (step 3)
207
+ - Read: Examine implementation log files directly
208
+ - implement-task prompt: Guide for implementing tasks
209
+ - log-implementation: Record implementation details with artifacts after task completion (step 5)
210
+ - Direct editing: Mark tasks as in-progress [-] or complete [x] in tasks.md
211
+
212
+ **Process**:
213
+ 1. Check current status with spec-status
214
+ 2. Read \`tasks.md\` to see all tasks
215
+ 3. For each task:
216
+ - Edit tasks.md: Change \`[ ]\` to \`[-]\` for the task you're starting
217
+ - **CRITICAL: BEFORE implementing, search existing implementation logs**:
218
+ - Implementation logs are in: \`.spec-workflow/specs/{spec-name}/Implementation Logs/\`
219
+ - **Option 1: Use grep for fast searches**:
220
+ - \`grep -r "api\|endpoint" .spec-workflow/specs/{spec-name}/Implementation Logs/\` - Find API endpoints
221
+ - \`grep -r "component" .spec-workflow/specs/{spec-name}/Implementation Logs/\` - Find UI components
222
+ - \`grep -r "function" .spec-workflow/specs/{spec-name}/Implementation Logs/\` - Find utility functions
223
+ - \`grep -r "integration" .spec-workflow/specs/{spec-name}/Implementation Logs/\` - Find integration patterns
224
+ - **Option 2: Read markdown files directly** - Use Read tool to examine specific log files
225
+ - Best practice: Search 2-3 different terms to discover comprehensively
226
+ - This prevents: duplicate endpoints, reimplemented components, broken integrations
227
+ - Reuse existing code that already solves part of the task
228
+ - **Read the _Prompt field** for guidance on role, approach, and success criteria
229
+ - Follow _Leverage fields to use existing code/utilities
230
+ - Implement the code according to the task description
231
+ - Test your implementation
232
+ - **MANDATORY: Log implementation BEFORE marking task complete** using log-implementation tool:
233
+ - ⚠️ Do NOT change [-] to [x] until log-implementation returns success
234
+ - A task without an implementation log is NOT complete — this is the most commonly skipped step
235
+ - Provide taskId and clear summary of what was implemented (1-2 sentences)
236
+ - Include files modified/created and code statistics (lines added/removed)
237
+ - **REQUIRED: Include artifacts field with structured implementation data**:
238
+ - apiEndpoints: All API routes created/modified (method, path, purpose, formats, location)
239
+ - components: All UI components created (name, type, purpose, location, props)
240
+ - functions: All utility functions created (name, signature, location)
241
+ - classes: All classes created (name, methods, location)
242
+ - integrations: Frontend-backend connections with data flow description
243
+ - Example: "Created API GET /api/todos/:id endpoint and TodoDetail React component with WebSocket real-time updates"
244
+ - This creates a searchable knowledge base for future AI agents to discover existing code
245
+ - Prevents implementation details from being lost in chat history
246
+ - **Only after log-implementation succeeds**: Edit tasks.md: Change \`[-]\` to \`[x]\`
247
+ 4. Continue until all tasks show \`[x]\`
248
+
249
+ ## Workflow Rules
250
+
251
+ - Create documents directly at specified file paths
252
+ - Read templates from \`.spec-workflow/templates/\` directory
253
+ - Follow exact template structures
254
+ - Get explicit user approval between phases (using approvals tool with action:'request')
255
+ - Complete phases in sequence (no skipping)
256
+ - One spec at a time
257
+ - Use kebab-case for spec names
258
+ - Approval requests: provide filePath only, never content
259
+ - BLOCKING: Never proceed if approval delete fails
260
+ - CRITICAL: Must have approved status AND successful cleanup before next phase
261
+ - CRITICAL: Every task marked [x] MUST have a corresponding implementation log — call log-implementation BEFORE changing [-] to [x]
262
+ - CRITICAL: Verbal approval is NEVER accepted - dashboard or VS Code extension only
263
+ - NEVER proceed on user saying "approved" - check system status only
264
+ - Steering docs are optional - only create when explicitly requested
265
+
266
+ ## File Structure
267
+ \`\`\`
268
+ .spec-workflow/
269
+ ├── templates/ # Auto-populated on server start
270
+ │ ├── requirements-template.md
271
+ │ ├── design-template.md
272
+ │ ├── tasks-template.md
273
+ │ ├── product-template.md
274
+ │ ├── tech-template.md
275
+ │ └── structure-template.md
276
+ ├── specs/
277
+ │ └── {spec-name}/
278
+ │ ├── requirements.md
279
+ │ ├── design.md
280
+ │ ├── tasks.md
281
+ │ └── Implementation Logs/ # Created automatically
282
+ │ ├── task-1_timestamp_id.md
283
+ │ ├── task-2_timestamp_id.md
284
+ │ └── ...
285
+ └── steering/
286
+ ├── product.md
287
+ ├── tech.md
288
+ └── structure.md
289
+ \`\`\``;
290
+ }
291
+ //# 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;;;kXAGmW;IAChX,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,iEAAiE;YACjE,gDAAgD;YAChD,sCAAsC;YACtC,oBAAoB;YACpB,gBAAgB;SACjB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,OAAO;;;;6PAIoP,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EAqFzL,WAAW;;;;;;;;;;;;;;;;;;;;;;;yEAuBjB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwI7E,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"}
@@ -0,0 +1,172 @@
1
+ export interface AutomationJob {
2
+ id: string;
3
+ name: string;
4
+ type: 'cleanup-approvals' | 'cleanup-specs' | 'cleanup-archived-specs';
5
+ enabled: boolean;
6
+ config: {
7
+ daysOld: number;
8
+ };
9
+ schedule: string;
10
+ lastRun?: string;
11
+ nextRun?: string;
12
+ createdAt: string;
13
+ }
14
+ export interface SecurityConfig {
15
+ rateLimitEnabled: boolean;
16
+ rateLimitPerMinute: number;
17
+ auditLogEnabled: boolean;
18
+ auditLogPath?: string;
19
+ auditLogRetentionDays: number;
20
+ corsEnabled: boolean;
21
+ allowedOrigins: string[];
22
+ }
23
+ export interface GlobalSettings {
24
+ automationJobs: AutomationJob[];
25
+ security?: SecurityConfig;
26
+ createdAt?: string;
27
+ lastModified?: string;
28
+ }
29
+ export interface JobExecutionHistory {
30
+ jobId: string;
31
+ jobName: string;
32
+ jobType: string;
33
+ executedAt: string;
34
+ success: boolean;
35
+ duration: number;
36
+ itemsProcessed: number;
37
+ itemsDeleted: number;
38
+ error?: string;
39
+ }
40
+ export interface JobExecutionLog {
41
+ executions: JobExecutionHistory[];
42
+ lastUpdated?: string;
43
+ }
44
+ export interface ToolContext {
45
+ projectPath: string;
46
+ dashboardUrl?: string;
47
+ lang?: string;
48
+ }
49
+ export interface SpecData {
50
+ name: string;
51
+ description?: string;
52
+ createdAt: string;
53
+ lastModified: string;
54
+ phases: {
55
+ requirements: PhaseStatus;
56
+ design: PhaseStatus;
57
+ tasks: PhaseStatus;
58
+ implementation: PhaseStatus;
59
+ };
60
+ taskProgress?: {
61
+ total: number;
62
+ completed: number;
63
+ pending: number;
64
+ };
65
+ }
66
+ export interface PhaseStatus {
67
+ exists: boolean;
68
+ approved?: boolean;
69
+ lastModified?: string;
70
+ content?: string;
71
+ }
72
+ export interface SteeringStatus {
73
+ exists: boolean;
74
+ documents: {
75
+ product: boolean;
76
+ tech: boolean;
77
+ structure: boolean;
78
+ };
79
+ lastModified?: string;
80
+ }
81
+ export interface PromptSection {
82
+ key: string;
83
+ value: string;
84
+ }
85
+ export interface TaskInfo {
86
+ id: string;
87
+ description: string;
88
+ leverage?: string;
89
+ requirements?: string;
90
+ completed: boolean;
91
+ details?: string[];
92
+ prompt?: string;
93
+ promptStructured?: PromptSection[];
94
+ }
95
+ export interface ImplementationLogEntry {
96
+ id: string;
97
+ taskId: string;
98
+ timestamp: string;
99
+ summary: string;
100
+ filesModified: string[];
101
+ filesCreated: string[];
102
+ statistics: {
103
+ linesAdded: number;
104
+ linesRemoved: number;
105
+ filesChanged: number;
106
+ };
107
+ artifacts: {
108
+ apiEndpoints?: Array<{
109
+ method: string;
110
+ path: string;
111
+ purpose: string;
112
+ requestFormat?: string;
113
+ responseFormat?: string;
114
+ location: string;
115
+ }>;
116
+ components?: Array<{
117
+ name: string;
118
+ type: string;
119
+ purpose: string;
120
+ location: string;
121
+ props?: string;
122
+ exports?: string[];
123
+ }>;
124
+ functions?: Array<{
125
+ name: string;
126
+ purpose: string;
127
+ location: string;
128
+ signature?: string;
129
+ isExported: boolean;
130
+ }>;
131
+ classes?: Array<{
132
+ name: string;
133
+ purpose: string;
134
+ location: string;
135
+ methods?: string[];
136
+ isExported: boolean;
137
+ }>;
138
+ integrations?: Array<{
139
+ description: string;
140
+ frontendComponent: string;
141
+ backendEndpoint: string;
142
+ dataFlow: string;
143
+ }>;
144
+ };
145
+ }
146
+ export interface ImplementationLog {
147
+ entries: ImplementationLogEntry[];
148
+ lastUpdated?: string;
149
+ }
150
+ export interface ToolResponse {
151
+ success: boolean;
152
+ message: string;
153
+ data?: any;
154
+ nextSteps?: string[];
155
+ projectContext?: {
156
+ projectPath: string;
157
+ workflowRoot: string;
158
+ specName?: string;
159
+ currentPhase?: string;
160
+ dashboardUrl?: string;
161
+ };
162
+ }
163
+ export interface MCPToolResponse {
164
+ content: Array<{
165
+ type: "text";
166
+ text: string;
167
+ }>;
168
+ isError?: boolean;
169
+ _meta?: Record<string, any>;
170
+ }
171
+ export declare function toMCPResponse(response: ToolResponse, isError?: boolean): MCPToolResponse;
172
+ //# sourceMappingURL=types.d.ts.map