@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
package/CHANGELOG.md ADDED
@@ -0,0 +1,1007 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+ - **Claude Code Plugin Distribution** - Skills, agents, rules, and hooks are now distributed as a Claude Code plugin via `.claude-plugin/` directory:
12
+ - Install with a single command: `claude plugin add --from https://github.com/arimakouyou/spec-workflow-mcp`
13
+ - Two variants available: `spec-workflow-mcp` (standard, with skills/agents/rules/hooks) and `spec-workflow-mcp-with-dashboard` (MCP server only, lightweight)
14
+ - Standard variant configures MCP server, skills, agents, rules, and hooks automatically on plugin installation
15
+ - Plugin hooks use portable `${CLAUDE_PLUGIN_ROOT}` path references
16
+ - Marketplace listing added for plugin discovery (`marketplace.json`)
17
+
18
+ ### Changed
19
+ - **Package Scope Rebranding** - Renamed package scope from `@pimzino` to `@arimakouyou` across all files:
20
+ - npm package: `@arimakouyou/spec-workflow-mcp`
21
+ - GitHub repository: `github.com/arimakouyou/spec-workflow-mcp`
22
+ - VSCode extension publisher: `arimakouyou`
23
+ - All documentation, configuration, and support links updated
24
+
25
+ ### Removed
26
+ - **`setup-claude-skills` MCP Tool** - Removed the manual skill setup tool. Skills are now distributed via the plugin system and loaded automatically.
27
+ - **Plugin distribution of `.claude/` contents** - For the Claude Code plugin distribution, skills, agents, and rules are now loaded from `.claude-plugin/` instead of `.claude/`. The `.claude/settings.json` read hook has been removed from the plugin configuration. The `.claude/` directory remains in the repository for compatibility.
28
+
29
+ ## [2.2.6] - 2026-03-07
30
+
31
+ ### Changed
32
+ - **Task Logging Workflow Guidance** (PR #200) - Strengthened implementation instructions so AI agents are explicitly directed to record implementation details before marking tasks complete:
33
+ - Updated the `implement-task` prompt to make `log-implementation` a mandatory step before changing tasks from `[-]` to `[x]`
34
+ - Updated the `spec-workflow-guide` implementation phase to reinforce the same ordering and emphasize implementation logs as required workflow context for future agents
35
+
36
+ ## [2.2.5] - 2026-03-02
37
+
38
+ ### Security
39
+ - **Upgrade Fastify and Plugins** - Resolved all remaining npm audit vulnerabilities by upgrading from Fastify v4 to v5:
40
+ - `fastify` 4.29.1 -> 5.7.4 (fixes DoS via unbounded memory in sendWebStream, Content-Type header bypass)
41
+ - `@fastify/cors` 9.0.1 -> 11.2.0
42
+ - `@fastify/static` 7.0.4 -> 9.0.0
43
+ - `@fastify/websocket` 8.3.1 -> 11.2.0
44
+ - Updated WebSocket handler to use v11 API (socket-first signature instead of connection wrapper)
45
+ - Also resolved: `@isaacs/brace-expansion`, `@modelcontextprotocol/sdk`, `ajv`, `hono`, `markdown-it`, `minimatch`, `qs`, `rollup` vulnerabilities via `npm audit fix`
46
+
47
+ ## [2.2.4] - 2026-03-02
48
+
49
+ ### Security
50
+ - **Fix Arbitrary File Read Vulnerability** (Issue #201) - Prevented reading files outside the project directory via crafted `filePath` values in approval requests:
51
+ - Reject absolute paths and path traversal (`..`) sequences at three defense layers: MCP tool input, approval creation, and file path resolution
52
+ - Replace unsafe `join()` calls with `PathUtils.safeJoin()` which validates resolved paths stay within project bounds
53
+ - Add `PathUtils.validatePathWithinBases()` for verifying resolved paths against allowed directories
54
+ - Previously, an attacker with dashboard access could read arbitrary system files (e.g., `/etc/passwd`) by creating approval requests with absolute or traversal paths
55
+
56
+ ### Fixed
57
+ - **Empty Test Suite on Linux** - Case-sensitivity tests in `path-utils.test.ts` used a conditional `if` block that produced an empty `describe` on Linux, causing vitest to error. Replaced with `it.skipIf()` for proper test skipping
58
+ - **Missing `@mdx-js/mdx` Dependency** - Restored missing package to fix 4 cascading test suite failures
59
+
60
+ ## [2.2.3] - 2026-02-08
61
+
62
+ ### Added
63
+ - **MDX Pre-Render Validation for Approvals** (PR #197) - All markdown files are now validated for MDX compatibility before approval requests are accepted:
64
+ - Approval requests for any `.md` file are blocked if MDX compilation fails, preventing dashboard rendering issues
65
+ - Actionable error messages with line/column references and fix suggestions (e.g., escape `<` as `&lt;` or use inline code)
66
+ - Existing `tasks.md` structural validation still runs after MDX validation
67
+ - **`validate:mdx` CLI Script** - New `npm run validate:mdx` command for batch-scanning markdown files:
68
+ - Scans all `.md` files in `.spec-workflow/specs/` and `.spec-workflow/steering/` directories
69
+ - Supports `--spec <name>` to validate a single spec, `--file <path>` for a single file
70
+ - `--json` output mode for CI/automation integration
71
+ - **MDX Validator Module** - New `src/core/mdx-validator.ts` using `@mdx-js/mdx` compile for syntax validation with structured error reporting
72
+
73
+ ### Dependencies
74
+ - Added `@mdx-js/mdx` (^3.1.1) for MDX compilation-based validation
75
+
76
+ ## [2.2.2] - 2026-02-04
77
+
78
+ ### Fixed
79
+ - **NPX Entrypoint Execution** (PR #195) - Fixed CLI silently not executing when invoked via `npx`:
80
+ - Resolved symlinked paths using `realpathSync()` for proper entrypoint detection
81
+ - `process.argv[1]` returns symlink path while `import.meta.url` returns real path, causing comparison to fail
82
+ - Removed `process.stdin.resume()` in dashboard mode which could suspend the process in some shells
83
+
84
+ ### Added
85
+ - **Markdown Thematic Breaks** - Added support for horizontal rules (`---`) in the dashboard editor:
86
+ - Enabled `thematicBreakPlugin` in MDX editor
87
+ - Added toolbar button for inserting thematic breaks
88
+
89
+ ## [2.2.1] - 2026-02-04
90
+
91
+ ### Fixed
92
+ - **NPX Installation Error** (Issue #196) - Fixed "Cannot find package 'ajv'" error when installing via `npx`:
93
+ - Added `ajv`, `ajv-formats`, and `zod` as direct dependencies to ensure proper ESM module resolution
94
+ - These packages are required by `@modelcontextprotocol/sdk` but npm's dependency hoisting in npx environments could fail to resolve them correctly
95
+ - The fix ensures the MCP SDK's validation modules can always find their dependencies regardless of installation method
96
+
97
+ ## [2.2.0] - 2026-02-03
98
+
99
+ ### Added
100
+ - **Git Worktree Support** (PR #194) - Separate worktree identity from shared `.spec-workflow` root:
101
+ - Each git worktree now registers as its own project identity in the dashboard
102
+ - Project labels reflect worktree context with `repo · worktree` naming format
103
+ - `.spec-workflow` remains shared by default across worktrees (existing behavior preserved)
104
+ - Artifact/approval content resolution now prioritizes workspace/worktree paths with workflow root fallback
105
+ - New `--no-shared-worktree-specs` CLI flag to opt-out of sharing and use workspace-local `.spec-workflow`
106
+ - Added `resolveGitWorkspaceRoot()` helper using `git rev-parse --show-toplevel`
107
+ - Backward compatible: legacy registry entries without `workflowRootPath` are normalized automatically
108
+
109
+ ### Added (Testing)
110
+ - Comprehensive test coverage for worktree functionality:
111
+ - Unit tests for CLI argument parsing, git-utils, project-registry, and approval-storage path resolution
112
+ - Integration tests for multi-server approval content resolution
113
+ - E2E Playwright tests for no-shared worktree dashboard flow
114
+ - New `test:e2e:worktree` npm script with dedicated Playwright config
115
+
116
+ ## [2.1.12] - 2026-01-29
117
+
118
+ ### Added
119
+ - **Approval Deeplinks** (Issue #192) - Approval requests now return direct URLs to specific approvals:
120
+ - Dashboard URL includes approval ID as query parameter: `/approvals?id={approvalId}`
121
+ - Clicking a deeplink auto-scrolls to the specific approval and highlights it with an amber ring
122
+ - Approval is automatically expanded when navigating via deeplink
123
+ - Improves workflow when running multiple AI agents in parallel
124
+
125
+ ## [2.1.11] - 2026-01-27
126
+
127
+ ### Fixed
128
+ - **Subdirectory Path Resolution** (Issue #189) - Fixed "Path traversal detected" error when starting the MCP server from a subdirectory within a git repository:
129
+ - `git rev-parse --git-common-dir` returns relative paths (e.g., `../../.git`) when run from subdirectories
130
+ - Updated `resolveGitRoot()` to use `path.resolve()` for converting relative paths to absolute paths
131
+ - Absolute paths (Unix and Windows) are returned unchanged to preserve existing worktree behavior
132
+ - Added test coverage for relative path scenarios
133
+
134
+ - **Task Prompt Spec Mismatch** (Issue #191) - Fixed copied task prompts using wrong spec name when switching between specs:
135
+ - When selecting a spec without tasks, stale tasks from the previous spec remained displayed
136
+ - Copying the prompt would incorrectly use the new spec name with old task data
137
+ - Now clears task data immediately when switching specs to prevent stale data display
138
+
139
+ ## [2.1.10] - 2026-01-24
140
+
141
+ ### Added
142
+ - **Bulk Approval Management** (PR #181) - New batch selection and action system for managing multiple approval requests:
143
+ - **Selection Mode** - Toggle to enable multi-select with visual checkboxes on approval items
144
+ - **Select All / Deselect All** - Quick controls to select or clear all visible approval items
145
+ - **Batch Actions** - Approve All or Reject All selected items in a single operation
146
+ - **Undo Operations** - 30-second undo window with visual progress bar countdown after batch actions
147
+ - **Continue-on-Error** - Batch operations process all items and report individual failures without stopping
148
+ - **Security Controls** - Batch size limit of 100 items, ID validation with alphanumeric regex pattern
149
+ - **Full i18n Support** - Translations for all 11 supported locales
150
+
151
+ - **Custom Typography System** - Added locally-bundled fonts for improved readability and visual consistency:
152
+ - **Inter** (400, 500, 600, 700 weights) - Modern sans-serif for UI text, designed for screens
153
+ - **JetBrains Mono** (400, 500, 700 weights) - Developer-focused monospace for code and specs
154
+ - Fonts are bundled locally in the build (no CDN dependency)
155
+ - Added `font-display: swap` for optimal loading performance
156
+ - Added `unicode-range` for efficient font subsetting
157
+ - Updated `--font-sans` and `--font-mono` CSS variables with new fonts and fallback stack
158
+
159
+ ### Changed
160
+ - **Utility Consolidation** - Eliminated duplicate utility functions across the codebase:
161
+ - Created shared `dateUtils.ts` with `formatDate()` and `formatDistanceToNow()` functions
162
+ - Consolidated 5 duplicate `formatDate` implementations from SpecsPage, TasksPage, LogsPage, ApprovalsPage, and SteeringPage
163
+ - Created shared `colorUtils.ts` for VSCode webview with `isValidHex()` and `hexToRgba()` functions
164
+ - Removed duplicate color validation logic from CommentModal component
165
+
166
+ - **Design Token Migration** - Replaced hardcoded Tailwind colors with CSS variable design tokens:
167
+ - Updated DashboardStatistics to use `--text-primary`, `--text-secondary`, `--text-muted` tokens
168
+ - Updated SideBySideView to use `--surface-inset`, `--surface-panel`, `--border-default` tokens
169
+ - Updated ProjectDropdown to use design tokens for all gray color variants
170
+ - Improved theming consistency between light and dark modes
171
+
172
+ - **ApprovalEditorService Refactor** - Extracted hardcoded decoration colors into constants:
173
+ - Created `APPROVAL_STATUS_COLORS` constant for pending, approved, rejected, needs-revision, and commented states
174
+ - Added `DECORATION_BORDER_RADIUS` constant for consistent styling
175
+
176
+ - **Build Script Improvement** - Updated `build:dashboard` script to automatically run `copy-static`:
177
+ - Ensures dashboard builds are always copied to the correct serving location (`dist/dashboard/public/`)
178
+ - Prevents issues where dashboard changes don't appear after rebuild
179
+
180
+ ### Fixed
181
+ - **Changelog Modal Rendering** - Fixed the changelog modal displaying blank content when clicking the version badge:
182
+ - Replaced complex MDXEditor component with lightweight custom markdown renderer
183
+ - Added proper rendering for headers, bullet lists, nested lists, and bold text
184
+ - Uses design token CSS variables for consistent theming in light/dark modes
185
+
186
+ ## [2.1.9] - 2026-01-23
187
+
188
+ ### Added
189
+ - **Git Worktree Support** (GitHub Issue #187) - Specs are now shared across git worktrees:
190
+ - Auto-detects git worktrees and stores specs in the main repository's `.spec-workflow/` directory
191
+ - All worktrees of the same repository share the same specs automatically
192
+ - New `SPEC_WORKFLOW_SHARED_ROOT` environment variable to override automatic detection
193
+ - Silent fallback for non-git directories or when git is unavailable
194
+ - Logs "Git worktree detected. Using main repo: <path>" when worktree is detected
195
+
196
+ - **MCP Tool Annotations** (PR #176) - Added semantic metadata annotations to all 5 tools for improved LLM tool understanding:
197
+ - `readOnlyHint: true` for read-only tools (`spec-workflow-guide`, `steering-guide`, `spec-status`)
198
+ - `destructiveHint: true` for state-modifying tools (`approvals`, `log-implementation`)
199
+ - `title` annotations for human-readable tool display names
200
+ - Enables MCP clients like Claude Code to auto-approve read-only tools and prompt for confirmation on destructive operations
201
+
202
+ ### Changed
203
+ - **Design Tokens Refactor** - Replaced hardcoded colors and styles with design tokens for improved consistency:
204
+ - Updated components including App, ApprovalsAnnotator, KanbanBoard, and others
205
+ - New CSS variables for background, text, and border colors
206
+ - Enhanced visual elements such as buttons, modals, and status indicators
207
+
208
+ ### Fixed
209
+ - **Comments Section Height** - Improved height and layout of the Comments & Feedback section:
210
+ - Increased height from 50vh to 70vh for better visibility
211
+ - Added minimum height constraints to prevent collapsing to content height
212
+ - Comments section now properly stretches to match the annotations panel height
213
+
214
+ ### Security
215
+ - **Dependency Updates** - Fixed 8 vulnerabilities (6 high, 1 moderate, 1 low) via `npm audit fix`:
216
+ - `@modelcontextprotocol/sdk` - ReDoS vulnerability (GHSA-8r9q-7v3j-jr4g)
217
+ - `@remix-run/router` / `react-router` / `react-router-dom` - XSS via Open Redirects (GHSA-2w69-qvjg-hvjx)
218
+ - `diff` - DoS vulnerability in parsePatch/applyPatch (GHSA-73rr-hh4g-fpgx)
219
+ - `hono` - JWT algorithm confusion vulnerabilities (GHSA-3vhc-576x-3qv4, GHSA-f67f-6cw9-8mq4)
220
+ - `lodash-es` - Prototype Pollution in unset/omit functions (GHSA-xxjr-mmjv-4gpg)
221
+ - `qs` - DoS via memory exhaustion in arrayLimit (GHSA-6rw7-vpxm-498p)
222
+
223
+ ## [2.1.8] - 2026-01-22
224
+
225
+ ### Added
226
+ - **Side-by-Side Annotation View** (GitHub Issue #179) - New view mode in the Approvals tab that displays source markdown and rendered preview side-by-side:
227
+ - Left panel shows source text with full annotation capability
228
+ - Right panel shows live rendered markdown preview using MDXEditorWrapper
229
+ - Bidirectional scroll synchronization between panels with toggle to enable/disable
230
+ - Full-width layout with comments section stacked below (not sidebar)
231
+ - Responsive design: panels stack vertically on mobile, side-by-side on tablet+
232
+ - New mode button in the Approvals tab mode switcher alongside Preview and Annotate
233
+
234
+ - **Edit Button on Comment Cards** - Added edit button (pencil icon) to comment cards in the Comments & Feedback section for quick access to edit annotations
235
+
236
+ ### Changed
237
+ - **Text Annotation Library Integration** - Replaced manual highlight implementation with `react-text-annotate-blend` library:
238
+ - More reliable text selection and offset calculation
239
+ - Consistent highlighting between Annotate and Side-by-Side modes
240
+ - Handles edge cases (line endings, special characters) automatically
241
+ - Shows annotation tag/ID inline with highlighted text
242
+
243
+ - **Comment Card Redesign** - Improved comment card layout following design principles:
244
+ - Clean card structure with header (type badge + actions) and body sections
245
+ - Full comment ID displayed on separate line with monospace styling
246
+ - Full highlighted text displayed without truncation (was limited to 80 chars)
247
+ - Full comment text displayed without truncation
248
+ - Better visual hierarchy with proper spacing and typography
249
+ - White card background with subtle border for cleaner appearance
250
+
251
+ ### Fixed
252
+ - **Highlight Click Handler** - Fixed clicking on highlights to open the edit modal:
253
+ - Improved mark click detection using background color matching
254
+ - Added fallback text-based matching for edge cases
255
+ - Works reliably in both Annotate and Side-by-Side modes
256
+
257
+ ### Dependencies
258
+ - Added `react-text-annotate-blend` (^1.2.0) - React 18 compatible text annotation library
259
+
260
+ ## [2.1.7] - 2025-12-20
261
+
262
+ ### Fixed
263
+ - **Missing ws Package Dependency** - Fixed `ERR_MODULE_NOT_FOUND` error when running the package via npx:
264
+ - Added `ws` package (^8.18.0) to dependencies (was missing, only @types/ws was in devDependencies)
265
+ - The ws package is required at runtime by `dashboard/multi-server.ts` for WebSocket functionality
266
+ - Users installing via `npx @arimakouyou/spec-workflow-mcp@latest` will now have all required dependencies
267
+
268
+ ## [2.1.6] - 2025-12-19
269
+
270
+ ### Fixed
271
+ - **Approvals Tool Path Translation Error** (PR #173) - Fixed error when `PathUtils.translatePath` is called with undefined or null values in the approvals tool:
272
+ - Added defensive checks to `safeTranslatePath` helper function to guard against undefined/null input paths
273
+ - Prevents runtime errors when path translation encounters missing or invalid path values
274
+ - Improves stability of the approvals workflow on cross-platform environments
275
+
276
+ ## [2.1.5] - 2025-12-16
277
+
278
+ ### Fixed
279
+ - **Codex CLI Transport Closed on Approvals** (PR #171) - Fixed intermittent "Transport closed" errors when using Codex CLI during approval workflows:
280
+ - Changed `console.log` to `console.error` in approval snapshot creation to prevent stdout contamination
281
+ - MCP protocol requires stdout to be reserved exclusively for JSON-RPC communication
282
+ - Diagnostic messages now correctly use stderr, preventing JSON parsing errors in MCP clients
283
+
284
+ ## [2.1.4] - 2025-12-14
285
+
286
+ ### Fixed
287
+ - **Dashboard Annotation Word-Level Highlighting** (fixes #169) - Fixed issue where annotating text in the Dashboard Approvals tab would highlight all occurrences of the same text instead of just the specific selection:
288
+ - Added `startOffset` and `endOffset` fields to capture exact character positions when selecting text for annotation
289
+ - Rewrote `renderContentWithAnnotations()` to use position-based highlighting instead of global regex text-matching
290
+ - Updated modal state and comment creation to preserve and pass position data
291
+ - Existing annotations without position data fall back to highlighting the first occurrence only (backward compatible)
292
+
293
+ ## [2.1.3] - 2025-12-10
294
+
295
+ ### Fixed
296
+ - **Dashboard Startup Crash for Users with Older Data Files** (fixes #168) - Fixed `Cannot read properties of undefined (reading 'filter')` error that prevented dashboard startup for users upgrading from older versions:
297
+ - Added backward compatibility guard in `project-registry.ts` to ensure `instances` array exists on all registry entries
298
+ - Added backward compatibility guard in `settings-manager.ts` to ensure `automationJobs` array exists in settings
299
+ - Users with older `activeProjects.json` or `settings.json` files from previous versions can now start the dashboard without errors
300
+
301
+ ## [2.1.2] - 2025-12-10
302
+
303
+ ### Fixed
304
+ - **Dashboard JS/CSS Loading Fails with Custom Port** (fixes #167) - Fixed issue where the dashboard would fail to load JavaScript and CSS assets when using a custom port (e.g., `--port 5002`):
305
+ - CORS `allowedOrigins` was hardcoded to port 5000, blocking requests from other ports
306
+ - CSP `connect-src` directive was missing WebSocket origins for custom ports
307
+ - Added `generateAllowedOrigins(port)` helper to dynamically generate allowed origins based on the actual port
308
+ - Updated `getSecurityConfig()` to accept port parameter and generate port-aware CORS configuration
309
+ - Updated `createSecurityHeadersMiddleware()` to include dynamic `connect-src` for WebSocket connections
310
+ - Security configuration now correctly displays the actual allowed origins on startup
311
+
312
+ ## [2.1.1] - 2025-12-09
313
+
314
+ ### Added
315
+ - **Enterprise Security Features** (PR #165) - Comprehensive security controls for corporate environments:
316
+ - **Localhost Binding** - Dashboard binds to `127.0.0.1` by default, preventing network exposure
317
+ - **Rate Limiting** - 120 requests/minute per client with automatic cleanup to prevent abuse
318
+ - **Audit Logging** - Structured JSON logs with timestamp, actor, action, and result for compliance
319
+ - **Security Headers** - X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, CSP, Referrer-Policy
320
+ - **CORS Protection** - Restricted to localhost origins by default
321
+ - **Network Security Validation** - Explicit opt-in required for non-localhost binding (`SPEC_WORKFLOW_ALLOW_EXTERNAL_ACCESS=true`)
322
+
323
+ - **Docker Security Hardening** (PR #165) - Enhanced container security:
324
+ - Non-root user execution (`node` user)
325
+ - Read-only root filesystem
326
+ - Dropped all Linux capabilities (`cap_drop: ALL`)
327
+ - No privilege escalation (`no-new-privileges`)
328
+ - Resource limits (CPU/memory) to prevent DoS
329
+ - Proper signal handling with `dumb-init`
330
+ - New `Dockerfile.prebuilt` for environments with limited Docker memory
331
+
332
+ - **New Configuration Options** - Environment variables for security control:
333
+ - `SPEC_WORKFLOW_BIND_ADDRESS` - IP address to bind to (default: `127.0.0.1`)
334
+ - `SPEC_WORKFLOW_ALLOW_EXTERNAL_ACCESS` - Explicit opt-in for network exposure
335
+ - `SPEC_WORKFLOW_RATE_LIMIT_ENABLED` - Enable/disable rate limiting
336
+ - `SPEC_WORKFLOW_CORS_ENABLED` - Enable/disable CORS protection
337
+
338
+ - **Health Check Endpoint** - New `/api/test` endpoint for monitoring dashboard availability
339
+
340
+ - **Docker Test Script** - Comprehensive `containers/test-docker.sh` script to validate security configurations
341
+
342
+ ### Changed
343
+ - Docker Compose now defaults to localhost-only port binding (`127.0.0.1:5000:5000`)
344
+ - Dashboard displays security configuration status on startup
345
+ - Improved error messages for security configuration issues
346
+
347
+ ### Fixed
348
+ - **Task Notification System Not Working** - Fixed task completion and in-progress notifications not appearing. The notification system now uses WebSocket event data directly instead of making separate API calls, eliminating race conditions and timing issues that prevented notifications from triggering.
349
+
350
+ - **Templates Shipped with CRLF Line Endings** (fixes #166) - Fixed issue where template files were shipped with Windows-style CRLF line endings, causing git to detect them as modified on Linux/WSL/macOS systems:
351
+ - Updated `.gitattributes` to enforce LF line endings for markdown files (`*.md text eol=lf`)
352
+ - Modified `scripts/copy-static.cjs` to normalize line endings to LF during the build process
353
+ - Converted all template files in `src/markdown/templates/` from CRLF to LF
354
+ - Templates are now cross-platform compatible and won't trigger spurious git changes
355
+
356
+ - **Self-Healing Project Registry** (fixes #164) - Fixed rapid project add/remove cycles when Claude Code recycles MCP processes:
357
+ - **Multi-Instance Support** - Projects now track multiple MCP server instances (PIDs) simultaneously, allowing unlimited concurrent sessions per project
358
+ - **Self-Healing Registration** - When an MCP server starts, it automatically cleans up dead PIDs from crashed sessions and reuses the project slot
359
+ - **PID-Specific Cleanup** - MCP servers now only unregister their own instance on shutdown, leaving other active instances intact
360
+ - **Removed Aggressive Cleanup** - Dashboard no longer runs periodic 30-second cleanup; MCP servers manage their own lifecycle
361
+ - **PID Visibility** - Project dropdown now shows PID for single instances or instance count for multiple instances
362
+
363
+ - **Dashboard Disconnection During Approval Process** (fixes #162) - Fixed critical stability issue where dashboard WebSocket connections would disconnect when AI clients (e.g., Codex CLI) modified documents during the approval workflow:
364
+ - **Approval Storage Debouncing** - Added 500ms debounce for approval file change events to prevent event flooding when approvals are rapidly created/modified
365
+ - **Spec Broadcast Debouncing** - Added 300ms debounce for spec update broadcasts to coalesce rapid file changes into a single UI update
366
+ - **WebSocket Heartbeat Monitoring** - Added ping/pong heartbeat mechanism to detect and clean up stale connections proactively
367
+ - **File Watcher Debouncing** - Implemented 500ms debounce for spec file change events to prevent event flooding during rapid document modifications
368
+ - **File Stability Detection** - Added file size stability checking before processing changes, preventing partial file reads during write operations
369
+ - **Graceful Connection Cleanup** - Improved error handling in broadcast methods with scheduled cleanup to avoid modifying collections during iteration
370
+ - **Exponential Backoff Reconnection** - Frontend WebSocket now uses exponential backoff (1s to 30s) for reconnection attempts instead of fixed 2s intervals
371
+ - **Clean Disconnect Handling** - WebSocket client no longer attempts reconnection on clean close events (codes 1000, 1001)
372
+
373
+ ## [2.1.0] - 2025-12-03
374
+
375
+ ### Fixed
376
+ - **Unsaved Changes Modal Translations** - Added missing translations for the unsaved changes confirmation modal in Steering and Spec document editors across all 11 supported languages (Arabic, German, English, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Chinese)
377
+ - **Improved Diff Visibility in Changes Tab** (fixes #158) - Fixed issue where adding a single line would cause all subsequent text to appear as changed:
378
+ - Replaced naive index-based line comparison with proper `diffLines` algorithm from the `diff` library
379
+ - Now correctly identifies only the actual changed lines, not positional differences
380
+ - Provides accurate visual diff representation matching user expectations
381
+
382
+ ### Added
383
+ - **MDX Editor Integration** - Replaced basic markdown textareas with a full-featured rich text editor powered by MDXEditor:
384
+ - **Rich Text Editing** - WYSIWYG editing experience with live preview for markdown content
385
+ - **Toolbar Controls** - Full toolbar with formatting options (bold, italic, underline, headings, lists, links, tables, code blocks)
386
+ - **Source Mode Toggle** - Switch between rich text and raw markdown source editing with a single click
387
+ - **Code Block Support** - Syntax-highlighted code blocks with CodeMirror integration and language selector dropdown
388
+ - **Mermaid Diagram Support** - Render Mermaid diagrams directly in the editor with live preview
389
+ - **Dark Mode Support** - Complete dark theme styling for all editor components including:
390
+ - Editor content area and toolbar
391
+ - Source mode (CodeMirror) with proper syntax highlighting
392
+ - Code blocks with themed gutters, line numbers, and selection
393
+ - Dropdown menus and language selectors (scrollable with custom scrollbars)
394
+ - Popups and dialogs
395
+ - **Keyboard Shortcuts** - Ctrl+S to save, standard text formatting shortcuts
396
+ - **Auto-save Status** - Visual indicators for saving, saved, and unsaved changes states
397
+ - **Character/Line Count** - Real-time statistics in the editor footer
398
+ - Applied to both Steering Documents and Spec Documents editing modals
399
+
400
+ ### Changed
401
+ - Steering document modals now show the editor even for empty/new documents, allowing users to create content directly
402
+
403
+ ## [2.0.11] - 2025-11-28
404
+
405
+ ### Changed
406
+ - **Flexible Approval Deletion** (PR #119) - Modified approval deletion logic to allow deleting approvals in any non-pending status:
407
+ - Can now delete approvals with status: `approved`, `rejected`, or `needs-revision`
408
+ - Only `pending` approvals are blocked from deletion (still awaiting review)
409
+ - Improves flexibility for cleanup operations while preventing accidental deletion of approvals still awaiting review
410
+ - Updated error messages and next steps guidance to clarify the new behavior
411
+ - Updated documentation in TOOLS-REFERENCE.md and api-reference.md
412
+
413
+ ## [2.0.10] - 2025-11-26
414
+
415
+ ### Added
416
+ - **Claude Code Plugin Support** (PR #121) - Added official Claude Code plugin configuration for easy installation from the Claude marketplace:
417
+ - Two plugin variants available: `spec-workflow-mcp` (base) and `spec-workflow-mcp-with-dashboard` (auto-starts dashboard)
418
+ - Plugins use `@latest` tag for automatic updates to newest releases
419
+ - Added `npm run sync:plugin-version` script to keep plugin versions in sync with package.json
420
+ - Added `npm run check:plugin-version` for CI validation of version consistency
421
+ - **`--no-open` Flag for Dashboard** (PR #147, fixes #145) - Added new command-line flag to prevent automatic browser opening when starting the dashboard:
422
+ - Use `spec-workflow-mcp --dashboard --no-open` to start the dashboard without launching the browser
423
+ - Useful in restricted Windows environments where firewall or antivirus software blocks browser launches from processes
424
+ - Prevents "failed to start dashboard: spawn EPERM" errors for users without administrator privileges
425
+ - Dashboard URL is still printed to console so users can manually navigate to it
426
+ - **Sandbox Environment Support** (fixes #144) - Added `SPEC_WORKFLOW_HOME` environment variable to support sandboxed MCP clients like Codex CLI:
427
+ - Allows overriding the default global state directory (`~/.spec-workflow-mcp`) to a writable location
428
+ - Essential for sandboxed environments where `$HOME` is read-only (e.g., Codex CLI with `sandbox_mode=workspace-write`)
429
+ - Supports both absolute paths and relative paths (resolved against current working directory)
430
+ - Added helpful error messages when permission errors occur, suggesting the `SPEC_WORKFLOW_HOME` workaround
431
+ - Updated Docker configuration to use `SPEC_WORKFLOW_HOME` by default
432
+ - Usage: `SPEC_WORKFLOW_HOME=/workspace/.spec-workflow-mcp npx spec-workflow-mcp /workspace`
433
+
434
+ ### Fixed
435
+ - **Archived Specs Display Content Correctly** (PR #146) - Fixed critical bug where archived specs were not displaying content correctly in the dashboard:
436
+ - Added new API endpoint `/api/projects/:projectId/specs/:name/all/archived` that reads documents from the archive path (`.spec-workflow/archive/specs/{name}/`) instead of the active specs path. This was missed during the multi-project dashboard implementation.
437
+ - **Tasks.md Format Validation** (fixes #151) - Added validation to ensure tasks.md follows the required format before approval:
438
+ - New `task-validator.ts` module validates checkbox format (`- [ ]`), task IDs, and metadata delimiters
439
+ - Validation runs automatically when requesting approval for tasks.md files
440
+ - Blocks approval if format errors are found, with detailed error messages and fix suggestions
441
+ - Prevents dashboard from failing to track task status due to malformed task files
442
+ - Warnings for missing underscore delimiters on metadata fields (`_Requirements:_`, `_Leverage:_`, `_Prompt:_`)
443
+
444
+ ## [2.0.9] - 2025-11-19
445
+
446
+ ### Fixed
447
+ - **Republished Clean Package** - Version 2.0.8 accidentally included uncommitted frontend changes. This version contains only the committed code from PR #143.
448
+
449
+ ## [2.0.8] - 2025-11-18
450
+
451
+ ### Fixed
452
+ - **Dashboard "No Projects Available" Error After Spec Edits** (PR #143, fixes #142) - Fixed critical bug where editing spec documents caused the dashboard to show "No Projects Available" and the MCP client to report "Transport closed" errors:
453
+ - Added error handling to async event handlers in `multi-server.ts` that were causing unhandled promise rejections
454
+ - Added error handlers to all `chokidar` file watchers to prevent watcher crashes
455
+ - Improved error logging with contextual messages for easier debugging
456
+ - System now gracefully handles transient errors during file operations instead of crashing
457
+ - WebSocket connections remain stable during spec document edits
458
+ - No session reload required after editing spec documents
459
+ - Added 7 comprehensive tests to verify watcher error handling and prevent regressions
460
+
461
+ ## [2.0.7] - 2025-11-10
462
+
463
+ ### BREAKING CHANGES
464
+ - **Removed `get-implementation-logs` tool** - This tool is no longer available. AI agents should use native tools (grep/ripgrep) and Read to search implementation logs instead.
465
+
466
+ ### Fixed
467
+ - **Volume Control Regression** (PR #141) - Fixed critical volume control regression from NotificationProvider context split through 6 progressive commits:
468
+ 1. Fixed volume icon always showing as muted by updating VolumeControl component to use both `useNotifications()` (actions) and `useNotificationState()` (state)
469
+ 2. Fixed stale closure bug where `handleTaskUpdate` callback had stale reference to `playNotificationSound`, and changed volume/sound settings storage from sessionStorage to localStorage for persistence
470
+ 3. Made audio fade-out proportional to volume level instead of fixed value
471
+ 4. Fixed Web Audio API gain timing issues with direct value assignment and linear ramping
472
+ 5. **Replaced Web Audio API with Howler.js** - After 4 failed attempts to fix volume control with raw Web Audio API, switched to industry-standard Howler.js library (546k weekly downloads, MDN-recommended) for reliable, simple audio playback with real MP3 files
473
+ 6. **Fixed sound not playing at all** - Integrated `playNotificationSound()` into `showNotification()` function so all notifications (task completion, status changes, approvals) automatically play sound at user-configured volume level
474
+ - **Dashboard Task Status Refresh** (PR #140) - Fixed critical "page reload" issue when updating task status:
475
+ - Removed redundant `reloadAll()` call causing unnecessary full page refreshes
476
+ - **Split ApiProvider context** into ApiDataContext (data) and ApiActionsContext (stable functions) to prevent unnecessary re-renders when data updates
477
+ - Added deep equality checks in websocket handlers before updating state
478
+ - Improved task list comparison from index-based to Map-based for robustness
479
+ - Result: Task status updates are now smooth and instant without scroll position loss or page disruption
480
+ - **Docker Implementation** (PR #135) - Fixed Docker build failure and updated configuration:
481
+ - Removed invalid `COPY --from=builder /app/src/locales` command (locales are bundled in dashboard build)
482
+ - Updated Dockerfile to build from local source instead of git clone
483
+ - Fixed docker-compose.yml build context and port mappings (3000 → 5000)
484
+ - Added comprehensive documentation in `containers/README.md` and `containers/DOCKER_USAGE.md`
485
+ - Added `.dockerignore`, `containers/.env.example`, and updated `containers/example.mcp.json`
486
+
487
+ ### Changed
488
+ - **Implementation Logs Format Migration** (PRs #136, #137, #138) - Logs are now stored as individual markdown files instead of a single JSON file for improved scalability and direct agent accessibility.
489
+ - Old format: `.spec-workflow/specs/{spec-name}/implementation-log.json`
490
+ - New format: `.spec-workflow/specs/{spec-name}/Implementation Logs/*.md`
491
+ - Implementation logs are automatically migrated from JSON to markdown format on server startup.
492
+ - Updated all documentation and prompts to guide agents to use grep/ripgrep commands to search implementation logs.
493
+ - Updated VSCode extension file watcher to monitor markdown files in Implementation Logs directories.
494
+ - Updated dashboard and multi-server API endpoints to work with the new markdown format.
495
+ - Added validation for taskId and idValue in markdown log parser to match VSCode extension behavior.
496
+
497
+ ### Added
498
+ - **Automatic Migration System** - New `ImplementationLogMigrator` utility class handles automatic conversion of existing JSON logs to markdown format.
499
+ - **Migration Logging** - Migration process is logged to `~/.spec-workflow-mcp/migration.log` for debugging and transparency.
500
+ - **Howler.js Audio Library** - Added howler@2.2.4 dependency for reliable, cross-browser notification sounds with proper volume control.
501
+
502
+ ### Improved
503
+ - **Agent Discovery** - AI agents can now directly grep implementation logs without special tool calls, making discovery faster and more intuitive.
504
+ - **Log Readability** - Markdown format is more human-readable and can be directly edited if needed.
505
+ - **Scalability** - Individual markdown files prevent performance degradation when dealing with thousands of implementation logs.
506
+ - **Dashboard Performance** - Context splitting and deep equality checks prevent unnecessary re-renders, making the dashboard significantly more responsive.
507
+ - **Audio Quality** - Notification sounds now use real MP3 files (via Howler.js) instead of synthetic oscillator beeps for better user experience.
508
+
509
+ ## [2.0.6] - 2025-11-08
510
+
511
+ ### Changed
512
+ - Removed creation of `config.example.toml` file during workspace initialization as it is no longer needed or used.
513
+
514
+ ## [2.0.5] - 2025-11-08
515
+
516
+ ### Fixed
517
+ - Fixed tools not respecting the project directory specified at server startup. Tools now use the server context's `projectPath` by default instead of requiring it as a mandatory argument.
518
+ - AI agents no longer need to pass `projectPath` to tools, preventing files from being created in the wrong directory (e.g., current working directory instead of the configured project directory).
519
+ - Updated `spec-status`, `get-implementation-logs`, `log-implementation`, and `approvals` tools to use context fallback pattern.
520
+ - Made `projectPath` optional in all tool input schemas while maintaining backward compatibility for explicit overrides.
521
+
522
+ ## [2.0.4] - 2025-11-08
523
+
524
+ ### Fixed
525
+ - Fixed dashboard startup failure with "Unexpected end of JSON input" error on macOS/Linux when configuration files were empty or corrupted.
526
+ - Added proper JSON parsing error handling to catch `SyntaxError` in addition to `ENOENT` errors.
527
+ - Implemented automatic initialization of JSON files with valid default content on first use.
528
+ - Added automatic backup of corrupted configuration files before overwriting.
529
+ - Improved error logging to identify which file is causing parse errors and where backups are stored.
530
+
531
+ ## [2.0.3]
532
+
533
+ ### Changed
534
+ - Updated all MCP tool responses to respond in TOON format instead of JSON for token savings and effeciency. (More Info: https://github.com/toon-format/toon)
535
+
536
+ ## [2.0.2] - 2025-11-06
537
+
538
+ ### Changed
539
+ - Improved the get-implementation-logs tool description and instructions to help agents understand how to use the tool.
540
+ - Removed deprecated --AutoStartDashboard flag
541
+ - Removed config.toml support as it is no longer needed.
542
+ - Removed some legacy code related to the single project dashboard implementation. (not required anymore)
543
+ - Removed Ephemeral port support as it is no longer needed. Dashboard starts on port 5000 by default if a --port is not specified.
544
+
545
+ ## [2.0.1] - 2025-11-06
546
+
547
+ ### Fixed
548
+ - Fixed a Critical bug where approval records were not being saved correctly on approval and blocking the full process.
549
+ - Fixed a bug with dropdowns in the dashboard causing unecassary horizontal scrollbars.
550
+ - Fixed a bug where diff viewer for approvals was not working.
551
+
552
+ ## [2.0.0] - 2025-11-03
553
+
554
+ ### Added
555
+ - Added NEW Unified Multi-Project Dashboard Implementation!
556
+ - 'ESC' key now closes all dialogs and modals in the dashboard.
557
+ - Implementation Log functionality added to the dashboard for each spec, AI Agents will now log detailed information about the implementation of each task. This information is then used by future AI agents to discover existing code and avoid duplication / mistakes when implementing new tasks especially when each task is dependant on the previous task.
558
+
559
+ ### Changed
560
+ - Re-designed the dashboard to be more user friendly and intuitive.
561
+ - Added a new sidebar menu for the dashboard instead of header navigation.
562
+
563
+
564
+ ### Announcement
565
+ - Deprecated the `--AutoStartDashboard` flag as it is no longer needed.
566
+
567
+ ## [1.0.1] - 2025-09-24
568
+
569
+ ### Changed
570
+ - Removed references to a headless mode that would confuse confusion for the agent in rare instances where the user would only start the dashboard after beginning the spec workflow.
571
+ - Some UI / UX improvements to the dashboard.
572
+
573
+ ### Fixed
574
+ - Fixed a bug where users couldnt start multiple instances of the Dashboard within the same project.
575
+ - Some UI / UX fixes to the dashboard, mainly around locale and missing translations.
576
+
577
+ ### Added
578
+ - Added NEW Diff Viewer to the dashboard for approvals!
579
+ - Added NEW Kanban View to the dashboard for tasks!
580
+
581
+ ## [1.0.0] - 2025-09-13
582
+
583
+ **NOTE: This version brings major architectural changes to the project. However they are non breaking changes.**
584
+
585
+ ### Changes
586
+ - Replaced various filesystem binded tools with elaborate instructions and changes to the workflow to allow AI agents to create documents and manage the project without the need for filesystem tools.
587
+ **Its worth noting this change should improve the accuracy of AI agents following the workflow. Its important to also note this has only been tested with Claude Sonnet 4, Claude Opus 4.1 and GPT 5**
588
+ - I have added the ability to use custom spec / steering document templates which is aimed at allowing users to customize the documents to their own needs. This is aimed at Power Users but everyone is welcome to use it.
589
+ - Added dynamic year to the spec-workflow-guide tool to ensure the agent is using the current year for web search for more up to date information.
590
+
591
+ **There are no plans to revert back to the previous architecture. We have made this decision to improve the accuracy of AI agents following the workflow as well as improve the maintainability of the project. If you wish to use the old architecture, you can still do so by running an older version of the MCP server however please note that in the event of a change to the MCP working directory structure, the dashboard or VSCode extension will not work as expected.**
592
+
593
+
594
+ ## [0.0.33] - 2025-09-10
595
+
596
+ ### Added
597
+ - **TOML Configuration File Support** - The MCP server now supports configuration via TOML files
598
+ - Default config location: `<project-dir>/.spec-workflow/config.toml`
599
+ - All command-line parameters can now be configured in the TOML file
600
+ - Supports `projectDir`, `port`, `autoStartDashboard`, `dashboardOnly`, and `lang` settings
601
+ - Example configuration file provided at `.spec-workflow/config.example.toml`
602
+ - Tilde (`~`) expansion for home directory paths in config files
603
+
604
+ - **Custom Config File Path** - New `--config` CLI flag for specifying custom config file locations
605
+ - Supports both `--config path` and `--config=path` formats
606
+ - Works with both relative and absolute paths
607
+ - Useful for maintaining different configs for different environments (dev, staging, production)
608
+ - Custom config files must exist or server will exit with error
609
+
610
+ NOTE: For more information on the configuration file, please refer to the [README.md](README.md) file.
611
+
612
+ ## [0.0.32] - 2025-09-10
613
+
614
+ ### Fixed
615
+ - Removed localizations for MCP server tools as I have reason to believe they were causing confusion and issues with agents understanding the tools and their purposes as well as responses.
616
+ - Improved get-template-context tool description to include a note about the template structure must be adhered to at all times and the next step to use the template for the specific document.
617
+
618
+ ## [0.0.31] - 2025-09-09
619
+
620
+ ### Fixed
621
+ - Fixed "ReferenceError: t is not defined" errors in multiple components:
622
+ - `SearchableSpecDropdown` in TasksPage (Task management dropdown)
623
+ - `CommentModal` in VSCode extension (Comment editing interface)
624
+ - `comment-modal.tsx` wrapper (Modal context provider)
625
+ - `VolumeControl` in Dashboard (Notification volume controls)
626
+ - `AlertModal` in Dashboard (Alert dialog component)
627
+ - Added missing translation keys across all 11 supported languages for:
628
+ - Comment modal UI elements (`commentModal.*` keys)
629
+ - Volume control tooltips (`volumeControl.*` keys)
630
+ - Common modal buttons (`common.ok` key)
631
+ - Enhanced i18n documentation with comprehensive troubleshooting guide
632
+ - Improved error prevention with component template and validation steps
633
+
634
+ ## [0.0.30] - 2025-09-09
635
+
636
+ ### Fixed
637
+ - Fixed a bug where some translations were not being loaded correctly (Specifically for Approval / Annotations).
638
+ - Fixed a bug where some languages didnt have the correct translation keys.
639
+
640
+ ## [0.0.29] - 2025-09-08
641
+
642
+ ### Improved
643
+ - Improved localization support for all components.
644
+
645
+ ### Added
646
+ - **Multi-Language Support Expansion** - Added comprehensive translations for 8 new languages
647
+ - Spanish (es) 🇪🇸 translations for all components
648
+ - Portuguese (pt) 🇧🇷 translations for all components
649
+ - German (de) 🇩🇪 translations for all components
650
+ - French (fr) 🇫🇷 translations for all components
651
+ - Russian (ru) 🇷🇺 translations for all components
652
+ - Italian (it) 🇮🇹 translations for all components
653
+ - Korean (ko) 🇰🇷 translations for all components
654
+ - Arabic (ar) 🇸🇦 translations for all components
655
+ - Total of 24 new translation files across MCP server, dashboard, and VSCode extension
656
+ - Updated language selectors in both dashboard and VSCode extension to include all new languages
657
+
658
+ ### Enhanced
659
+ - **i18n Infrastructure** - Updated validation and build processes to support 11 total languages
660
+ - Enhanced validation script to check all supported languages for consistency
661
+ - Updated all i18n configurations to register new language resources
662
+ - Added comprehensive i18n structure documentation explaining the three translation contexts
663
+
664
+ ### Technical Changes
665
+ - Updated SUPPORTED_LANGUAGES arrays across all three components
666
+ - Added flag emoji representations for improved language selection UX
667
+ - Maintained backward compatibility with existing English, Japanese, and Chinese translations
668
+ - All Mustache template variables validated for consistency across all 11 languages
669
+
670
+ ## [0.0.28] - 2025-09-08
671
+
672
+ ### Added
673
+ - **AI Prompt Generation for Tasks** - Enhanced task management with structured AI prompts
674
+ - Added `prompt` field to ParsedTask interface for custom AI guidance
675
+ - Task parser now extracts `_Prompt:` metadata from tasks.md files
676
+ - Updated tasks template with LLM guidance for generating structured prompts
677
+ - Copy functionality in both VSCode extension and dashboard now uses AI prompts when available
678
+ - Graceful fallback to default "work on this task" prompts for backward compatibility
679
+ - Comprehensive localization support (English, Chinese, Japanese) for new prompt features
680
+ - MCP server tools automatically include prompt field in all task responses
681
+ - Added Prompt to UI for previewing the prompt for the task in a collapsible section
682
+
683
+ ### Enhanced
684
+ - **Task Template** - Added AI instructions for generating structured prompts with Role | Task | Restrictions | Success format
685
+ - **Multi-language Support** - Extended localization with prompt-related keys for better user experience
686
+ - **UI/UX Improvements** - Copy buttons now provide context-aware prompts for improved AI agent guidance
687
+
688
+ ### Fixed
689
+ - **Volume Slider Alignment** - Fixed misaligned volume slider dot in web dashboard
690
+ - Corrected CSS styling to properly center the 16px slider thumb on the track
691
+ - Reduced track height from 8px to 4px for better visual proportion
692
+ - Added `margin-top: -6px` to webkit slider thumb for proper vertical centering
693
+ - Fixed duplicate border property in Firefox slider styles
694
+ - Ensures consistent alignment across all browsers (Chrome, Safari, Edge, Firefox)
695
+ - **Language Selector** - Added missing Chinese language option to web dashboard dropdown
696
+ - Chinese translations were already present but not exposed in the language selector UI
697
+ - Added Chinese option with appropriate flag emoji to SUPPORTED_LANGUAGES array
698
+
699
+ ## [0.0.27] - 2025-09-08
700
+
701
+ ### Added
702
+ - **Chinese (zh) Language Support** - Comprehensive Chinese translations for multi-language support
703
+ - Complete Chinese translations for all MCP server tools and messages
704
+ - Chinese translations for dashboard frontend interface
705
+ - Chinese translations for VSCode extension webview components
706
+ - Integration with existing i18n framework supporting dynamic language switching
707
+ - Validation script updates to ensure Chinese translation consistency
708
+
709
+ ## [0.0.26] - 2025-09-08
710
+
711
+ ### Fixed
712
+ - **MCP Server Mode** - Prevent stdout contamination that caused JSON parsing errors in MCP clients
713
+ - Replaced console.log with console.error for diagnostic messages
714
+ - Ensures stdout is reserved exclusively for JSON-RPC protocol communication
715
+ - Fixes issue #71 where MCP clients couldn't parse server responses
716
+
717
+ ### Added
718
+ - **Tasks UI Filtering and Sorting** - Enhanced task management with advanced filtering and sorting capabilities
719
+ - Status filtering options (All, Pending, In Progress, Completed) with real-time task counts
720
+ - Multiple sorting options (Default Order, By Status, By Task ID, By Description)
721
+ - Ascending/Descending sort order toggle for all sort options
722
+ - Persistent user preferences using localStorage (per-specification basis)
723
+ - Full i18n support with English and Japanese translations
724
+ - Maintains compatibility with real-time WebSocket updates
725
+ - Based on contribution from @qdhenry (PR #54, #74)
726
+ - **Docker Container Support** - Full containerization for easy deployment
727
+ - Multi-stage Dockerfile for optimized container size
728
+ - Docker Compose configuration for dashboard deployment
729
+ - Support for both MCP server and dashboard modes
730
+ - Volume mounting for `.spec-workflow` directory persistence
731
+ - Comprehensive container documentation and examples
732
+ - Based on contribution from @heavyengineer (PR #57, #73)
733
+ - **Internationalization (i18n) Framework** - Comprehensive multi-language support across all components
734
+ - Backend i18n with async loading and LRU caching for MCP tools
735
+ - Frontend i18n using react-i18next for dashboard interface
736
+ - VSCode extension i18n support for webview components
737
+ - Complete Japanese translations for all tools and UI elements
738
+ - Dynamic import support for optimized bundle sizes
739
+ - Environment variable validation for locale formats (supports en, ja, en-US, pt-BR patterns)
740
+ - Build-time validation script ensuring translation consistency
741
+
742
+ ### Technical Changes
743
+ - Implemented Mustache templating for safe string interpolation in translations
744
+ - Added LRU cache with 10MB memory limit and 1-hour TTL for performance
745
+ - Integrated locale file copying into build process for all components
746
+ - Added comprehensive i18n documentation guide with performance comparisons
747
+ - Created validation script for JSON syntax and template variable consistency
748
+ - Enhanced copy-static script to include locale directories
749
+ - Added support for VITE_I18N_DYNAMIC environment variable for lazy loading
750
+
751
+ ### Improved
752
+ - Reduced initial bundle size with optional dynamic translation loading
753
+ - Better error handling with locale-specific fallback mechanisms
754
+ - Production-ready error sanitization to prevent information disclosure
755
+
756
+ ## [0.0.25] - 2025-09-07
757
+
758
+ ### Added
759
+ - **MCP Prompts Support** - Implemented full Model Context Protocol prompts capability
760
+ - Added 6 interactive prompts for spec-driven development workflows
761
+ - `create-spec` - Interactive spec document creation with guided workflow
762
+ - `create-steering-doc` - Create AI agent guidance documents
763
+ - `manage-tasks` - Task management with list, complete, reset, and status actions
764
+ - `request-approval` - Initiate formal approval workflows
765
+ - `spec-status` - Get comprehensive project status overviews
766
+ - `workflow-guide` - Interactive workflow guidance with best practices
767
+ - **Prompt Discovery** - MCP clients can now discover available prompts via `prompts/list`
768
+ - **Argument Support** - All prompts accept typed arguments for customization
769
+ - **Context Integration** - Prompts include project context, dashboard URLs, and tool recommendations
770
+
771
+ ### Technical Changes
772
+ - Added `src/prompts/` module with prompt definitions and handlers
773
+ - Updated server capabilities to declare prompts support with `listChanged` flag
774
+ - Added `ListPromptsRequestSchema` and `GetPromptRequestSchema` handlers
775
+ - Each prompt generates contextual messages to guide AI assistants through workflows
776
+
777
+ ## [0.0.24] - 2025-09-07
778
+
779
+ ### Fixed
780
+ - Fixed get-approval-status tool to include comments in response data, enabling AI tools to access approval comments for better context understanding.
781
+
782
+ ## [0.0.23] - 2025-08-27
783
+
784
+ ### Improved
785
+ - Added correct tool definitions to the server capabilities.
786
+ - Refined spec-workflow-guide tool instructions condensing instructions by 50% whilst guarenteeing the same effectiveness.
787
+ - Added workflow mermaid flowcharts to the spec-workflow-guide tool to help agents visualize the workflow.
788
+ - Refined all the tool descriptions to remove ambiguity and make them more concise, additionally adding intrustions to each one to give the agent an idea of when to use the tool.
789
+
790
+ ### Fixed
791
+ - Fixed Steering Doc workflow where the agent would attempt to provide all 3 documents in a single approval.
792
+ - Removed Steering guide from spec-workflow-guide tool and ensured steering-guide tool is called for steering document creation.
793
+ - Added direct support for steering documents in the request-approval tool as there wasnt direct support for it and the agents were just working around it.
794
+
795
+ ### Misc
796
+ - Removed MCP resource definition as this was part of the initial developement workflow but was not required in the end.
797
+
798
+ ## [0.0.22] - 2025-08-25
799
+
800
+ ### Improved
801
+ - Dashboard browser tab now displays the actual project name (e.g., "spec-workflow-mcp Dashboard") instead of generic "Spec Dashboard (React)"
802
+ - Tab title dynamically updates based on the resolved project directory name for better identification when multiple dashboards are open
803
+
804
+ ## [0.0.21] - 2025-08-25
805
+
806
+ ### Fixed
807
+ - Fixed dashboard displaying "." as project name when using `--project-dir .` by resolving the path to show actual directory name
808
+
809
+ ## [0.0.20] - 2025-08-22
810
+
811
+ ### Added
812
+ - Added `--AutoStartDashboard` flag to automatically start and open dashboard when running MCP server
813
+ - Added `--port` parameter support for MCP server mode (previously only worked with `--dashboard` mode)
814
+ - Added comprehensive `--help` command with usage examples and parameter documentation
815
+ - Added validation for unknown command-line flags with helpful error messages
816
+
817
+ ### Improved
818
+ - Enhanced shutdown behavior messaging for MCP server mode
819
+ - Removed duplicate console logging when using custom ports
820
+ - Updated README with AutoStartDashboard configuration examples for all MCP clients
821
+ - Clarified that MCP server lifecycle is controlled by the MCP client (not Ctrl+C)
822
+
823
+ ### Fixed
824
+ - Fixed issue where browser would attempt to open twice with AutoStartDashboard
825
+ - Fixed duplicate "Using custom port" messages in console output
826
+
827
+ ## [0.0.19] - 2025-08-21
828
+
829
+ ### Fixed
830
+ - Fixed MCP server shutdown issues where server process would stay running after MCP client disconnects
831
+ - Added proper stdio transport onclose handler to detect client disconnection
832
+ - Added stdin monitoring for additional disconnect detection safety
833
+ - Enhanced stop() method with better error handling and cleanup sequence
834
+
835
+ ## [0.0.18] - 2025-08-17
836
+
837
+ ### Improvements
838
+ - Selected spec on tasks page is now persisted across page refreshes and now allows for deeplinking.
839
+
840
+ ## [0.0.17] - 2025-08-17
841
+
842
+ ### Bug Fixes
843
+ - Fixed a bug where request approval tool would fail when starting the MCP server without a projectdir. (wasnt really a bug as projectdir was recommended but I have made this more robust).
844
+
845
+ ## [0.0.16] - 2025-08-15
846
+
847
+ ### Bug Fixes
848
+ - Fixed a bug where the dashboard would not automatically update task status when the MCP tool was called and a refresh was required to view new status.
849
+
850
+ ## [0.0.15] - 2025-08-15
851
+
852
+ ### Improvements
853
+ - Moved to custom alert & prompt modals rather than window.alert and window.prompt. This should fix issues with dashboard showing prompts in VSCode Simple Browser
854
+ - Moved highlight color picker to the comment modal rather than having it in the comments list.
855
+
856
+ ### New Features
857
+ - Added Notification Volume Slider.
858
+
859
+ ## [0.0.14] - 2025-08-14
860
+
861
+ ### Added
862
+ - Added a new 'refresh-tasks' tool to help align the task list with the current requirements and design. This is particularly useful if you make changes to the requirements / design docs mid integration.
863
+
864
+ ### Misc
865
+ - Removed some legacy markdown files that were left over from initial development.
866
+
867
+ ## [0.0.13] - 2025-08-13
868
+
869
+ ### Added
870
+ - Added support for relative project paths and the use of tilde (~) in project paths. Below path formats are now supported:
871
+ - npx -y @arimakouyou/spec-workflow-mcp ~/my-project
872
+ - npx -y @arimakouyou/spec-workflow-mcp ./relative-path
873
+ - npx -y @arimakouyou/spec-workflow-mcp /absolute/path
874
+
875
+ ## [0.0.12] - 2025-08-11
876
+
877
+ ### Fixed
878
+ - Fixed a bug with prose containers which would limit rendered content from fully displaying in the view modals.
879
+ - Fixed a bug with package version not showing in the header / mobile menu.
880
+
881
+ ## [0.0.11] - 2025-08-11
882
+
883
+ ### Fixed
884
+ - Page refresh on websocket updates. Pages will no longer reset on websocket updates.
885
+ - Dashboard accessibility improvements.
886
+
887
+ ### Added
888
+ - Optimized dashboard for tablets.
889
+ - Users can now specify a custom port for the dashboard web server using the `--port` parameter. If not specified, an ephemeral port will be used.
890
+ - Added the ability to change task status directly from the task page in the dashboard.
891
+
892
+ ## [0.0.10] - 2025-08-10
893
+
894
+ ### Added
895
+ - **Initial Multi-Language Framework** - Established foundational support for internationalization
896
+ - Set up i18n infrastructure to support future language translations
897
+ - Implemented framework for dynamic language switching across components
898
+ - Laid groundwork for comprehensive multi-language support later expanded in v0.0.26-0.0.29
899
+
900
+ ### Fixed
901
+ - Fixed bug with spec steering page not displaying correctly on smaller screens (mobile devices).
902
+
903
+ ## [0.0.9] - 2025-08-10
904
+
905
+ ### Fixed
906
+ - Clipboard API wasnt working in HTTP contexts over LAN. Added fallback method using `document.execCommand('copy')` for browsers without clipboard API access.
907
+
908
+ ### Changed
909
+ - Updated copy prompt to only include task id and spec name.
910
+ - Improved copy button feedback with visual success/error states and colored indicators.
911
+ - Dashboard --> Updated viewport to 80% screen width in desktop and 90% on mobile devices.
912
+
913
+ ### Added
914
+ - Spec document editor directly in the dashboard.
915
+ - Spec archiving and unarchiving in the dashboard.
916
+ - Steering document page for creating, viewing and editing steering documents directly from the dashboard.
917
+
918
+
919
+ ## [0.0.8] - 2025-08-09
920
+
921
+ ### Updated
922
+ - Rebuilt the web dashboard with a mobile first responsive design bringing you the following improvements:
923
+ - Responsive Design
924
+ - Improved UI / UX
925
+ - Improved Performance
926
+ - Disconnected from MCP server - must be started manually
927
+ - Can now run multiple MCP server instances for the same project on a single dashboard instance
928
+
929
+
930
+ **NOTE: This is a breaking change. The dashboard will no longer auto start and must be manually run. Please review the README for updated instructions.**
931
+
932
+ ## [0.0.7] - 2025-08-08
933
+
934
+ ### Fixed
935
+ - Fixed a bug with the task parser / manage-tasks tool refusing to find tasks.
936
+
937
+ ### Updated
938
+ - Improved the task parser and created a task parser utility function to be shared across tools and UI.
939
+
940
+ ## [0.0.6] - 2025-08-08
941
+
942
+ ### Updated
943
+ - Refined the spec workflow guide to remove any ambiguity, made it more concise.
944
+ - Refined manage-tasks tool description.
945
+ - Refined request-approval tool description and next steps output.
946
+ - Refined create-spec-doc tool next steps output.
947
+
948
+ ### Added
949
+ - Imporoved dashboard task parser and task counter to support Parent/Child task relationships otherwise known as subtasks.
950
+ - Parent tasks if only including a name will be parsed as a Task Section Heading in the dashboard.
951
+ - The parser should now be more flexible to handle tasks in various formats as long as they still follow the same checklist, task name, and status format at the very least.
952
+
953
+ ## [0.0.5] - 2025-08-07
954
+
955
+ ### Updated
956
+ - Refined spec workflow to include conditional web search for the design phase to ensure the agent is providing the best possible for all phases.
957
+
958
+ ### Fixed
959
+ - Improved task progress cards to display all task information in the card.
960
+
961
+ ## [0.0.4] - 2025-08-07
962
+
963
+ ### Fixed
964
+ - Fixed clipboard copying functionality in dashboard for HTTP contexts (non-HTTPS environments)
965
+ - Added fallback clipboard method using `document.execCommand('copy')` for browsers without clipboard API access
966
+ - Improved copy button feedback with visual success/error states and colored indicators
967
+ - Enhanced mobile device compatibility for clipboard operations
968
+ - Removed development obsolete bug tracking functionality from dashboard frontend
969
+
970
+ ## [0.0.3] - 2025-08-07
971
+
972
+ ### Updated
973
+ - Updated README.md with example natural language prompts that will trigger the various tools.
974
+ - task-template.md updated to remove atomic task requirements and format guidelines and moved them to the spec workflow guide tool.
975
+ - Refined instructions for the agent to output the dashboard URL to the user.
976
+ - Removed the Steering Document Compliance section from tasks-template.md for simplification.
977
+
978
+ ### Added
979
+ - I have added a session.json in the .spec-workflow directory that stores the dashboard URL and the process ID of the dashboard server. This allows the agent to retrieve the dashboard URL as well as the user if required. Note: This should help users one headless systems where the dashboard us unable to auto load, you can retrieve the session information from the json file.
980
+
981
+ ### Fixed
982
+ - Misc fixes cause HEAP out of memory issues on the server causing the server to crash when running more than one instance.
983
+
984
+ ### Added
985
+
986
+ ## [0.0.2] - 2025-08-07
987
+
988
+ ### Updated
989
+ - Updated README.md with showcase videos on youtube.
990
+ - Removed testing mcp.json file that was left over from initial development.
991
+
992
+ ## [0.0.1] - 2025-08-07
993
+
994
+ ### Added
995
+ - MCP server implementation with 13 tools for spec-driven development
996
+ - Sequential workflow enforcement (Requirements → Design → Tasks)
997
+ - Real-time web dashboard with WebSocket updates
998
+ - Document creation and validation tools
999
+ - Human-in-the-loop approval system
1000
+ - Template system for consistent documentation
1001
+ - Context optimization tools for efficient AI workflows
1002
+ - Task management and progress tracking
1003
+ - Cross-platform support (Windows, macOS, Linux)
1004
+ - Support for major AI development tools (Claude Desktop, Cursor, etc.)
1005
+ - Automatic project structure generation
1006
+ - Dark mode dashboard interface
1007
+ - GitHub issue templates