@arimakouyou/spec-workflow-mcp 2.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/.claude-plugin/.mcp.json +8 -0
  2. package/.claude-plugin/agents/code-simplifier.md +80 -0
  3. package/.claude-plugin/agents/integ-test-auditor.md +91 -0
  4. package/.claude-plugin/agents/integ-test-worker.md +73 -0
  5. package/.claude-plugin/agents/parallel-worker.md +136 -0
  6. package/.claude-plugin/agents/review-worker.md +279 -0
  7. package/.claude-plugin/agents/unit-test-engineer.md +148 -0
  8. package/.claude-plugin/agents/wave-harness-worker.md +158 -0
  9. package/.claude-plugin/hooks/hooks.json +16 -0
  10. package/.claude-plugin/hooks/tasks-read-guard.sh +17 -0
  11. package/.claude-plugin/marketplace.json +33 -0
  12. package/.claude-plugin/plugin.json +11 -0
  13. package/.claude-plugin/rules/axum.md +154 -0
  14. package/.claude-plugin/rules/cargo-toml.md +63 -0
  15. package/.claude-plugin/rules/context7.md +17 -0
  16. package/.claude-plugin/rules/design-conformance.md +82 -0
  17. package/.claude-plugin/rules/design-principles.md +53 -0
  18. package/.claude-plugin/rules/diesel.md +176 -0
  19. package/.claude-plugin/rules/feedback-loop.md +33 -0
  20. package/.claude-plugin/rules/leptos.md +319 -0
  21. package/.claude-plugin/rules/project-architecture.md +134 -0
  22. package/.claude-plugin/rules/quality-checks.md +265 -0
  23. package/.claude-plugin/rules/rust-style.md +242 -0
  24. package/.claude-plugin/rules/security.md +67 -0
  25. package/.claude-plugin/rules/spec-workflow-enforcement.md +47 -0
  26. package/.claude-plugin/rules/valkey.md +167 -0
  27. package/.claude-plugin/skills/integration-test/SKILL.md +230 -0
  28. package/.claude-plugin/skills/integration-test/references/auditor-prompt.md +78 -0
  29. package/.claude-plugin/skills/integration-test/references/external-api-mock.md +98 -0
  30. package/.claude-plugin/skills/integration-test/references/fixture-catalog.md +155 -0
  31. package/.claude-plugin/skills/integration-test/references/parallel-execution.md +124 -0
  32. package/.claude-plugin/skills/integration-test/references/quality-gate.md +80 -0
  33. package/.claude-plugin/skills/integration-test/references/test-case-design.md +88 -0
  34. package/.claude-plugin/skills/integration-test/references/test-patterns.md +215 -0
  35. package/.claude-plugin/skills/integration-test/references/whiteboard-template.md +81 -0
  36. package/.claude-plugin/skills/integration-test/references/worker-prompt.md +70 -0
  37. package/.claude-plugin/skills/knowhow-capture/SKILL.md +143 -0
  38. package/.claude-plugin/skills/phase-review-team/SKILL.md +380 -0
  39. package/.claude-plugin/skills/spec-design/SKILL.md +282 -0
  40. package/.claude-plugin/skills/spec-e2e-implement/SKILL.md +259 -0
  41. package/.claude-plugin/skills/spec-impl-code/SKILL.md +101 -0
  42. package/.claude-plugin/skills/spec-impl-review/SKILL.md +115 -0
  43. package/.claude-plugin/skills/spec-impl-test-run/SKILL.md +98 -0
  44. package/.claude-plugin/skills/spec-impl-test-write/SKILL.md +121 -0
  45. package/.claude-plugin/skills/spec-implement/SKILL.md +822 -0
  46. package/.claude-plugin/skills/spec-requirements/SKILL.md +130 -0
  47. package/.claude-plugin/skills/spec-review/SKILL.md +274 -0
  48. package/.claude-plugin/skills/spec-tasks/SKILL.md +372 -0
  49. package/.claude-plugin/skills/spec-test-design/SKILL.md +233 -0
  50. package/.claude-plugin/skills/tdd-skills/SKILL.md +95 -0
  51. package/.claude-plugin/skills/tdd-skills/references/advanced-techniques.md +49 -0
  52. package/.claude-plugin/skills/tdd-skills/references/green-strategies.md +70 -0
  53. package/.claude-plugin/skills/tdd-skills/references/tdd-and-design.md +48 -0
  54. package/.claude-plugin/skills/tdd-skills/references/test-design.md +43 -0
  55. package/.claude-plugin/skills/tdd-skills/references/test-doubles.md +53 -0
  56. package/.claude-plugin/skills/tdd-skills/references/test-patterns.md +40 -0
  57. package/.claude-plugin/skills/tdd-skills-rust/SKILL.md +128 -0
  58. package/.claude-plugin/skills/tdd-skills-rust/references/advanced-techniques.md +205 -0
  59. package/.claude-plugin/skills/tdd-skills-rust/references/green-strategies.md +166 -0
  60. package/.claude-plugin/skills/tdd-skills-rust/references/tdd-and-design.md +215 -0
  61. package/.claude-plugin/skills/tdd-skills-rust/references/test-design.md +128 -0
  62. package/.claude-plugin/skills/tdd-skills-rust/references/test-doubles.md +208 -0
  63. package/.claude-plugin/skills/tdd-skills-rust/references/test-patterns.md +223 -0
  64. package/.claude-plugin/with-dashboard/.mcp.json +8 -0
  65. package/.claude-plugin/with-dashboard/plugin.json +10 -0
  66. package/CHANGELOG.md +1007 -0
  67. package/LICENSE +674 -0
  68. package/README.ja.md +380 -0
  69. package/README.md +437 -0
  70. package/dist/__tests__/config.test.d.ts +2 -0
  71. package/dist/__tests__/config.test.d.ts.map +1 -0
  72. package/dist/__tests__/config.test.js +264 -0
  73. package/dist/__tests__/config.test.js.map +1 -0
  74. package/dist/__tests__/index-args.test.d.ts +2 -0
  75. package/dist/__tests__/index-args.test.d.ts.map +1 -0
  76. package/dist/__tests__/index-args.test.js +43 -0
  77. package/dist/__tests__/index-args.test.js.map +1 -0
  78. package/dist/__tests__/index-entrypoint.test.d.ts +2 -0
  79. package/dist/__tests__/index-entrypoint.test.d.ts.map +1 -0
  80. package/dist/__tests__/index-entrypoint.test.js +23 -0
  81. package/dist/__tests__/index-entrypoint.test.js.map +1 -0
  82. package/dist/config.d.ts +26 -0
  83. package/dist/config.d.ts.map +1 -0
  84. package/dist/config.js +188 -0
  85. package/dist/config.js.map +1 -0
  86. package/dist/core/__tests__/git-utils.test.d.ts +2 -0
  87. package/dist/core/__tests__/git-utils.test.d.ts.map +1 -0
  88. package/dist/core/__tests__/git-utils.test.js +179 -0
  89. package/dist/core/__tests__/git-utils.test.js.map +1 -0
  90. package/dist/core/__tests__/mdx-validator.test.d.ts +2 -0
  91. package/dist/core/__tests__/mdx-validator.test.d.ts.map +1 -0
  92. package/dist/core/__tests__/mdx-validator.test.js +42 -0
  93. package/dist/core/__tests__/mdx-validator.test.js.map +1 -0
  94. package/dist/core/__tests__/path-utils.test.d.ts +2 -0
  95. package/dist/core/__tests__/path-utils.test.d.ts.map +1 -0
  96. package/dist/core/__tests__/path-utils.test.js +342 -0
  97. package/dist/core/__tests__/path-utils.test.js.map +1 -0
  98. package/dist/core/__tests__/project-registry.test.d.ts +2 -0
  99. package/dist/core/__tests__/project-registry.test.d.ts.map +1 -0
  100. package/dist/core/__tests__/project-registry.test.js +62 -0
  101. package/dist/core/__tests__/project-registry.test.js.map +1 -0
  102. package/dist/core/__tests__/security-utils.test.d.ts +2 -0
  103. package/dist/core/__tests__/security-utils.test.d.ts.map +1 -0
  104. package/dist/core/__tests__/security-utils.test.js +657 -0
  105. package/dist/core/__tests__/security-utils.test.js.map +1 -0
  106. package/dist/core/__tests__/task-parser.test.d.ts +2 -0
  107. package/dist/core/__tests__/task-parser.test.d.ts.map +1 -0
  108. package/dist/core/__tests__/task-parser.test.js +222 -0
  109. package/dist/core/__tests__/task-parser.test.js.map +1 -0
  110. package/dist/core/__tests__/task-validator.test.d.ts +2 -0
  111. package/dist/core/__tests__/task-validator.test.d.ts.map +1 -0
  112. package/dist/core/__tests__/task-validator.test.js +308 -0
  113. package/dist/core/__tests__/task-validator.test.js.map +1 -0
  114. package/dist/core/archive-service.d.ts +10 -0
  115. package/dist/core/archive-service.d.ts.map +1 -0
  116. package/dist/core/archive-service.js +99 -0
  117. package/dist/core/archive-service.js.map +1 -0
  118. package/dist/core/dashboard-session.d.ts +49 -0
  119. package/dist/core/dashboard-session.d.ts.map +1 -0
  120. package/dist/core/dashboard-session.js +132 -0
  121. package/dist/core/dashboard-session.js.map +1 -0
  122. package/dist/core/git-utils.d.ts +25 -0
  123. package/dist/core/git-utils.d.ts.map +1 -0
  124. package/dist/core/git-utils.js +87 -0
  125. package/dist/core/git-utils.js.map +1 -0
  126. package/dist/core/global-dir.d.ts +44 -0
  127. package/dist/core/global-dir.d.ts.map +1 -0
  128. package/dist/core/global-dir.js +74 -0
  129. package/dist/core/global-dir.js.map +1 -0
  130. package/dist/core/implementation-log-migrator.d.ts +41 -0
  131. package/dist/core/implementation-log-migrator.d.ts.map +1 -0
  132. package/dist/core/implementation-log-migrator.js +258 -0
  133. package/dist/core/implementation-log-migrator.js.map +1 -0
  134. package/dist/core/mdx-validator.d.ts +14 -0
  135. package/dist/core/mdx-validator.d.ts.map +1 -0
  136. package/dist/core/mdx-validator.js +34 -0
  137. package/dist/core/mdx-validator.js.map +1 -0
  138. package/dist/core/parser.d.ts +11 -0
  139. package/dist/core/parser.d.ts.map +1 -0
  140. package/dist/core/parser.js +128 -0
  141. package/dist/core/parser.js.map +1 -0
  142. package/dist/core/path-utils.d.ts +68 -0
  143. package/dist/core/path-utils.d.ts.map +1 -0
  144. package/dist/core/path-utils.js +302 -0
  145. package/dist/core/path-utils.js.map +1 -0
  146. package/dist/core/project-registry.d.ts +94 -0
  147. package/dist/core/project-registry.d.ts.map +1 -0
  148. package/dist/core/project-registry.js +297 -0
  149. package/dist/core/project-registry.js.map +1 -0
  150. package/dist/core/security-utils.d.ts +99 -0
  151. package/dist/core/security-utils.d.ts.map +1 -0
  152. package/dist/core/security-utils.js +275 -0
  153. package/dist/core/security-utils.js.map +1 -0
  154. package/dist/core/task-parser.d.ts +90 -0
  155. package/dist/core/task-parser.d.ts.map +1 -0
  156. package/dist/core/task-parser.js +477 -0
  157. package/dist/core/task-parser.js.map +1 -0
  158. package/dist/core/task-validator.d.ts +37 -0
  159. package/dist/core/task-validator.d.ts.map +1 -0
  160. package/dist/core/task-validator.js +499 -0
  161. package/dist/core/task-validator.js.map +1 -0
  162. package/dist/core/workspace-initializer.d.ts +16 -0
  163. package/dist/core/workspace-initializer.d.ts.map +1 -0
  164. package/dist/core/workspace-initializer.js +168 -0
  165. package/dist/core/workspace-initializer.js.map +1 -0
  166. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts +2 -0
  167. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts.map +1 -0
  168. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js +78 -0
  169. package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js.map +1 -0
  170. package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts +2 -0
  171. package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts.map +1 -0
  172. package/dist/dashboard/__tests__/multi-server-approvals-content.test.js +115 -0
  173. package/dist/dashboard/__tests__/multi-server-approvals-content.test.js.map +1 -0
  174. package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts +2 -0
  175. package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts.map +1 -0
  176. package/dist/dashboard/__tests__/watcher-error-handling.test.js +118 -0
  177. package/dist/dashboard/__tests__/watcher-error-handling.test.js.map +1 -0
  178. package/dist/dashboard/approval-storage.d.ts +139 -0
  179. package/dist/dashboard/approval-storage.d.ts.map +1 -0
  180. package/dist/dashboard/approval-storage.js +608 -0
  181. package/dist/dashboard/approval-storage.js.map +1 -0
  182. package/dist/dashboard/execution-history-manager.d.ts +52 -0
  183. package/dist/dashboard/execution-history-manager.d.ts.map +1 -0
  184. package/dist/dashboard/execution-history-manager.js +161 -0
  185. package/dist/dashboard/execution-history-manager.js.map +1 -0
  186. package/dist/dashboard/implementation-log-manager.d.ts +97 -0
  187. package/dist/dashboard/implementation-log-manager.d.ts.map +1 -0
  188. package/dist/dashboard/implementation-log-manager.js +617 -0
  189. package/dist/dashboard/implementation-log-manager.js.map +1 -0
  190. package/dist/dashboard/job-scheduler.d.ts +91 -0
  191. package/dist/dashboard/job-scheduler.d.ts.map +1 -0
  192. package/dist/dashboard/job-scheduler.js +321 -0
  193. package/dist/dashboard/job-scheduler.js.map +1 -0
  194. package/dist/dashboard/multi-server.d.ts +42 -0
  195. package/dist/dashboard/multi-server.d.ts.map +1 -0
  196. package/dist/dashboard/multi-server.js +1460 -0
  197. package/dist/dashboard/multi-server.js.map +1 -0
  198. package/dist/dashboard/parser.d.ts +18 -0
  199. package/dist/dashboard/parser.d.ts.map +1 -0
  200. package/dist/dashboard/parser.js +269 -0
  201. package/dist/dashboard/parser.js.map +1 -0
  202. package/dist/dashboard/project-manager.d.ts +82 -0
  203. package/dist/dashboard/project-manager.d.ts.map +1 -0
  204. package/dist/dashboard/project-manager.js +257 -0
  205. package/dist/dashboard/project-manager.js.map +1 -0
  206. package/dist/dashboard/public/assets/Inter-Bold-CD3Pr7BX.woff2 +0 -0
  207. package/dist/dashboard/public/assets/Inter-Medium-B_8v_WHh.woff2 +0 -0
  208. package/dist/dashboard/public/assets/Inter-Regular-DRVdRqcI.woff2 +0 -0
  209. package/dist/dashboard/public/assets/Inter-SemiBold-CtskMddL.woff2 +0 -0
  210. package/dist/dashboard/public/assets/JetBrainsMono-Bold-D4WEaHbo.woff2 +0 -0
  211. package/dist/dashboard/public/assets/JetBrainsMono-Medium-3S3k2nMz.woff2 +0 -0
  212. package/dist/dashboard/public/assets/JetBrainsMono-Regular-BQaDgvhP.woff2 +0 -0
  213. package/dist/dashboard/public/assets/Tableau10-B-NsZVaP.js +1 -0
  214. package/dist/dashboard/public/assets/apl-B4CMkyY2.js +1 -0
  215. package/dist/dashboard/public/assets/arc-a5wW942W.js +1 -0
  216. package/dist/dashboard/public/assets/array-BKyUJesY.js +1 -0
  217. package/dist/dashboard/public/assets/asciiarmor-Df11BRmG.js +1 -0
  218. package/dist/dashboard/public/assets/asn1-EdZsLKOL.js +1 -0
  219. package/dist/dashboard/public/assets/asterisk-B-8jnY81.js +1 -0
  220. package/dist/dashboard/public/assets/blockDiagram-c4efeb88-CvjTuK-w.js +118 -0
  221. package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
  222. package/dist/dashboard/public/assets/c4Diagram-c83219d4-NwVQo5kf.js +10 -0
  223. package/dist/dashboard/public/assets/channel-Bi16YZhk.js +1 -0
  224. package/dist/dashboard/public/assets/classDiagram-beda092f-BmSeXDdU.js +2 -0
  225. package/dist/dashboard/public/assets/classDiagram-v2-2358418a-D7GvvuPr.js +2 -0
  226. package/dist/dashboard/public/assets/clike-B9uivgTg.js +1 -0
  227. package/dist/dashboard/public/assets/clojure-BMjYHr_A.js +1 -0
  228. package/dist/dashboard/public/assets/clone-BpKTiq7P.js +1 -0
  229. package/dist/dashboard/public/assets/cmake-BQqOBYOt.js +1 -0
  230. package/dist/dashboard/public/assets/cobol-CWcv1MsR.js +1 -0
  231. package/dist/dashboard/public/assets/coffeescript-S37ZYGWr.js +1 -0
  232. package/dist/dashboard/public/assets/commonlisp-DBKNyK5s.js +1 -0
  233. package/dist/dashboard/public/assets/createText-1719965b-qASbqHUP.js +7 -0
  234. package/dist/dashboard/public/assets/crystal-SjHAIU92.js +1 -0
  235. package/dist/dashboard/public/assets/css-BnMrqG3P.js +1 -0
  236. package/dist/dashboard/public/assets/cypher-C_CwsFkJ.js +1 -0
  237. package/dist/dashboard/public/assets/d-pRatUO7H.js +1 -0
  238. package/dist/dashboard/public/assets/diff-DbItnlRl.js +1 -0
  239. package/dist/dashboard/public/assets/dockerfile-BKs6k2Af.js +1 -0
  240. package/dist/dashboard/public/assets/dtd-DF_7sFjM.js +1 -0
  241. package/dist/dashboard/public/assets/dylan-DwRh75JA.js +1 -0
  242. package/dist/dashboard/public/assets/ebnf-CDyGwa7X.js +1 -0
  243. package/dist/dashboard/public/assets/ecl-Cabwm37j.js +1 -0
  244. package/dist/dashboard/public/assets/edges-96097737-BItTSnH7.js +4 -0
  245. package/dist/dashboard/public/assets/eiffel-CnydiIhH.js +1 -0
  246. package/dist/dashboard/public/assets/elm-vLlmbW-K.js +1 -0
  247. package/dist/dashboard/public/assets/erDiagram-0228fc6a-DT224olg.js +51 -0
  248. package/dist/dashboard/public/assets/erlang-BNw1qcRV.js +1 -0
  249. package/dist/dashboard/public/assets/factor-kuTfRLto.js +1 -0
  250. package/dist/dashboard/public/assets/fcl-Kvtd6kyn.js +1 -0
  251. package/dist/dashboard/public/assets/flowDb-c6c81e3f-D9_ukKtv.js +10 -0
  252. package/dist/dashboard/public/assets/flowDiagram-50d868cf-CylE8siG.js +4 -0
  253. package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-B2O3JN7Y.js +1 -0
  254. package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-BCaqFKf3.js +139 -0
  255. package/dist/dashboard/public/assets/forth-Ffai-XNe.js +1 -0
  256. package/dist/dashboard/public/assets/fortran-DYz_wnZ1.js +1 -0
  257. package/dist/dashboard/public/assets/ganttDiagram-a2739b55-WQUL1QW_.js +257 -0
  258. package/dist/dashboard/public/assets/gas-Bneqetm1.js +1 -0
  259. package/dist/dashboard/public/assets/gherkin-heZmZLOM.js +1 -0
  260. package/dist/dashboard/public/assets/gitGraphDiagram-82fe8481-CttZrdmr.js +70 -0
  261. package/dist/dashboard/public/assets/graph-Ch-rVueN.js +1 -0
  262. package/dist/dashboard/public/assets/groovy-D9Dt4D0W.js +1 -0
  263. package/dist/dashboard/public/assets/haskell-Cw1EW3IL.js +1 -0
  264. package/dist/dashboard/public/assets/haxe-H-WmDvRZ.js +1 -0
  265. package/dist/dashboard/public/assets/http-DBlCnlav.js +1 -0
  266. package/dist/dashboard/public/assets/idl-BEugSyMb.js +1 -0
  267. package/dist/dashboard/public/assets/index--kbPpDKv.js +1 -0
  268. package/dist/dashboard/public/assets/index-3scDwWm6.js +1 -0
  269. package/dist/dashboard/public/assets/index-5325376f-BL2zVOJU.js +1 -0
  270. package/dist/dashboard/public/assets/index-BZdjbO25.js +1 -0
  271. package/dist/dashboard/public/assets/index-BmA_batZ.js +1 -0
  272. package/dist/dashboard/public/assets/index-Bu0u99kF.js +2 -0
  273. package/dist/dashboard/public/assets/index-Ch-lr7F4.js +1 -0
  274. package/dist/dashboard/public/assets/index-ClgWbdoq.js +1 -0
  275. package/dist/dashboard/public/assets/index-CzLwOMQ_.js +3 -0
  276. package/dist/dashboard/public/assets/index-DAOEjGO7.js +1 -0
  277. package/dist/dashboard/public/assets/index-DXqf0B9c.js +1 -0
  278. package/dist/dashboard/public/assets/index-DegWdR16.js +1 -0
  279. package/dist/dashboard/public/assets/index-DiHyYGim.js +1 -0
  280. package/dist/dashboard/public/assets/index-DlZtG7I5.js +1 -0
  281. package/dist/dashboard/public/assets/index-DmhGE2M8.js +1 -0
  282. package/dist/dashboard/public/assets/index-QEGvld4x.js +1 -0
  283. package/dist/dashboard/public/assets/index-RfZPGAJu.js +1 -0
  284. package/dist/dashboard/public/assets/index-UybBj_7u.js +319 -0
  285. package/dist/dashboard/public/assets/index-bVekzPnl.js +7 -0
  286. package/dist/dashboard/public/assets/index-f5bysQzW.css +1 -0
  287. package/dist/dashboard/public/assets/infoDiagram-8eee0895-DjzkkE3o.js +7 -0
  288. package/dist/dashboard/public/assets/init-Gi6I4Gst.js +1 -0
  289. package/dist/dashboard/public/assets/javascript-iXu5QeM3.js +1 -0
  290. package/dist/dashboard/public/assets/journeyDiagram-c64418c1-CxPZkNdB.js +139 -0
  291. package/dist/dashboard/public/assets/julia-DuME0IfC.js +1 -0
  292. package/dist/dashboard/public/assets/katex-XbL3y5x-.js +261 -0
  293. package/dist/dashboard/public/assets/layout-DX7DNTRm.js +1 -0
  294. package/dist/dashboard/public/assets/line-DfvpmKOn.js +1 -0
  295. package/dist/dashboard/public/assets/linear-gQbBPHO5.js +1 -0
  296. package/dist/dashboard/public/assets/livescript-BwQOo05w.js +1 -0
  297. package/dist/dashboard/public/assets/lua-BgMRiT3U.js +1 -0
  298. package/dist/dashboard/public/assets/mathematica-DTrFuWx2.js +1 -0
  299. package/dist/dashboard/public/assets/mbox-CNhZ1qSd.js +1 -0
  300. package/dist/dashboard/public/assets/mindmap-definition-8da855dc-CNxmpyG6.js +415 -0
  301. package/dist/dashboard/public/assets/mirc-CjQqDB4T.js +1 -0
  302. package/dist/dashboard/public/assets/mllike-CXdrOF99.js +1 -0
  303. package/dist/dashboard/public/assets/modelica-Dc1JOy9r.js +1 -0
  304. package/dist/dashboard/public/assets/mscgen-BA5vi2Kp.js +1 -0
  305. package/dist/dashboard/public/assets/mumps-BT43cFF4.js +1 -0
  306. package/dist/dashboard/public/assets/nginx-DdIZxoE0.js +1 -0
  307. package/dist/dashboard/public/assets/nsis-LdVXkNf5.js +1 -0
  308. package/dist/dashboard/public/assets/ntriples-BfvgReVJ.js +1 -0
  309. package/dist/dashboard/public/assets/octave-Ck1zUtKM.js +1 -0
  310. package/dist/dashboard/public/assets/ordinal-Cboi1Yqb.js +1 -0
  311. package/dist/dashboard/public/assets/oz-BzwKVEFT.js +1 -0
  312. package/dist/dashboard/public/assets/pascal--L3eBynH.js +1 -0
  313. package/dist/dashboard/public/assets/path-CbwjOpE9.js +1 -0
  314. package/dist/dashboard/public/assets/perl-CdXCOZ3F.js +1 -0
  315. package/dist/dashboard/public/assets/pieDiagram-a8764435-D-xy_NSA.js +35 -0
  316. package/dist/dashboard/public/assets/pig-CevX1Tat.js +1 -0
  317. package/dist/dashboard/public/assets/powershell-CFHJl5sT.js +1 -0
  318. package/dist/dashboard/public/assets/properties-C78fOPTZ.js +1 -0
  319. package/dist/dashboard/public/assets/protobuf-ChK-085T.js +1 -0
  320. package/dist/dashboard/public/assets/pug-DeIclll2.js +1 -0
  321. package/dist/dashboard/public/assets/puppet-DMA9R1ak.js +1 -0
  322. package/dist/dashboard/public/assets/python-BuPzkPfP.js +1 -0
  323. package/dist/dashboard/public/assets/q-pXgVlZs6.js +1 -0
  324. package/dist/dashboard/public/assets/quadrantDiagram-1e28029f-BoL2wzz0.js +7 -0
  325. package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
  326. package/dist/dashboard/public/assets/requirementDiagram-08caed73-BujFz0q1.js +52 -0
  327. package/dist/dashboard/public/assets/rpm-CTu-6PCP.js +1 -0
  328. package/dist/dashboard/public/assets/ruby-B2Rjki9n.js +1 -0
  329. package/dist/dashboard/public/assets/sankeyDiagram-a04cb91d-D03_NARm.js +8 -0
  330. package/dist/dashboard/public/assets/sas-B4kiWyti.js +1 -0
  331. package/dist/dashboard/public/assets/scheme-C41bIUwD.js +1 -0
  332. package/dist/dashboard/public/assets/sequenceDiagram-c5b8d532-B65eFcaT.js +122 -0
  333. package/dist/dashboard/public/assets/shell-CjFT_Tl9.js +1 -0
  334. package/dist/dashboard/public/assets/sieve-C3Gn_uJK.js +1 -0
  335. package/dist/dashboard/public/assets/simple-mode-GW_nhZxv.js +1 -0
  336. package/dist/dashboard/public/assets/smalltalk-CnHTOXQT.js +1 -0
  337. package/dist/dashboard/public/assets/solr-DehyRSwq.js +1 -0
  338. package/dist/dashboard/public/assets/sparql-DkYu6x3z.js +1 -0
  339. package/dist/dashboard/public/assets/spreadsheet-BCZA_wO0.js +1 -0
  340. package/dist/dashboard/public/assets/sql-D0XecflT.js +1 -0
  341. package/dist/dashboard/public/assets/stateDiagram-1ecb1508-BDbqu0Vl.js +1 -0
  342. package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-CBHvk4b8.js +1 -0
  343. package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
  344. package/dist/dashboard/public/assets/styles-b4e223ce-CELsPqaO.js +160 -0
  345. package/dist/dashboard/public/assets/styles-ca3715f6-BRqMqT6F.js +207 -0
  346. package/dist/dashboard/public/assets/styles-d45a18b0-e8N-oLPy.js +116 -0
  347. package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
  348. package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-vNDtmQc-.js +1 -0
  349. package/dist/dashboard/public/assets/swift-BzpIVaGY.js +1 -0
  350. package/dist/dashboard/public/assets/tcl-DVfN8rqt.js +1 -0
  351. package/dist/dashboard/public/assets/textile-CnDTJFAw.js +1 -0
  352. package/dist/dashboard/public/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  353. package/dist/dashboard/public/assets/tiki-DGYXhP31.js +1 -0
  354. package/dist/dashboard/public/assets/timeline-definition-faaaa080-Dh2_A5VU.js +61 -0
  355. package/dist/dashboard/public/assets/toml-Bm5Em-hy.js +1 -0
  356. package/dist/dashboard/public/assets/troff-wAsdV37c.js +1 -0
  357. package/dist/dashboard/public/assets/ttcn-CfJYG6tj.js +1 -0
  358. package/dist/dashboard/public/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  359. package/dist/dashboard/public/assets/turtle-B1tBg_DP.js +1 -0
  360. package/dist/dashboard/public/assets/vb-CmGdzxic.js +1 -0
  361. package/dist/dashboard/public/assets/vbscript-BuJXcnF6.js +1 -0
  362. package/dist/dashboard/public/assets/velocity-D8B20fx6.js +1 -0
  363. package/dist/dashboard/public/assets/verilog-C6RDOZhf.js +1 -0
  364. package/dist/dashboard/public/assets/vhdl-lSbBsy5d.js +1 -0
  365. package/dist/dashboard/public/assets/webidl-ZXfAyPTL.js +1 -0
  366. package/dist/dashboard/public/assets/xquery-DzFWVndE.js +1 -0
  367. package/dist/dashboard/public/assets/xychartDiagram-f5964ef8-B76v1AVF.js +7 -0
  368. package/dist/dashboard/public/assets/yacas-BJ4BC0dw.js +1 -0
  369. package/dist/dashboard/public/assets/z80-Hz9HOZM7.js +1 -0
  370. package/dist/dashboard/public/claude-icon-dark.svg +1 -0
  371. package/dist/dashboard/public/claude-icon.svg +1 -0
  372. package/dist/dashboard/public/index.html +16 -0
  373. package/dist/dashboard/settings-manager.d.ts +47 -0
  374. package/dist/dashboard/settings-manager.d.ts.map +1 -0
  375. package/dist/dashboard/settings-manager.js +180 -0
  376. package/dist/dashboard/settings-manager.js.map +1 -0
  377. package/dist/dashboard/utils.d.ts +31 -0
  378. package/dist/dashboard/utils.d.ts.map +1 -0
  379. package/dist/dashboard/utils.js +102 -0
  380. package/dist/dashboard/utils.js.map +1 -0
  381. package/dist/dashboard/watcher.d.ts +32 -0
  382. package/dist/dashboard/watcher.d.ts.map +1 -0
  383. package/dist/dashboard/watcher.js +173 -0
  384. package/dist/dashboard/watcher.js.map +1 -0
  385. package/dist/index.d.ts +13 -0
  386. package/dist/index.d.ts.map +1 -0
  387. package/dist/index.js +380 -0
  388. package/dist/index.js.map +1 -0
  389. package/dist/markdown/templates/design-template.md +126 -0
  390. package/dist/markdown/templates/product-template.md +51 -0
  391. package/dist/markdown/templates/requirements-template.md +50 -0
  392. package/dist/markdown/templates/structure-template.md +145 -0
  393. package/dist/markdown/templates/tasks-template.md +100 -0
  394. package/dist/markdown/templates/tech-template.md +99 -0
  395. package/dist/markdown/templates/test-design-template.md +221 -0
  396. package/dist/prompts/create-spec.d.ts +3 -0
  397. package/dist/prompts/create-spec.d.ts.map +1 -0
  398. package/dist/prompts/create-spec.js +97 -0
  399. package/dist/prompts/create-spec.js.map +1 -0
  400. package/dist/prompts/create-steering-doc.d.ts +3 -0
  401. package/dist/prompts/create-steering-doc.d.ts.map +1 -0
  402. package/dist/prompts/create-steering-doc.js +75 -0
  403. package/dist/prompts/create-steering-doc.js.map +1 -0
  404. package/dist/prompts/implement-task.d.ts +3 -0
  405. package/dist/prompts/implement-task.d.ts.map +1 -0
  406. package/dist/prompts/implement-task.js +174 -0
  407. package/dist/prompts/implement-task.js.map +1 -0
  408. package/dist/prompts/index.d.ts +20 -0
  409. package/dist/prompts/index.d.ts.map +1 -0
  410. package/dist/prompts/index.js +103 -0
  411. package/dist/prompts/index.js.map +1 -0
  412. package/dist/prompts/inject-spec-workflow-guide.d.ts +3 -0
  413. package/dist/prompts/inject-spec-workflow-guide.d.ts.map +1 -0
  414. package/dist/prompts/inject-spec-workflow-guide.js +60 -0
  415. package/dist/prompts/inject-spec-workflow-guide.js.map +1 -0
  416. package/dist/prompts/inject-steering-guide.d.ts +3 -0
  417. package/dist/prompts/inject-steering-guide.d.ts.map +1 -0
  418. package/dist/prompts/inject-steering-guide.js +64 -0
  419. package/dist/prompts/inject-steering-guide.js.map +1 -0
  420. package/dist/prompts/refresh-tasks.d.ts +3 -0
  421. package/dist/prompts/refresh-tasks.d.ts.map +1 -0
  422. package/dist/prompts/refresh-tasks.js +237 -0
  423. package/dist/prompts/refresh-tasks.js.map +1 -0
  424. package/dist/prompts/spec-status.d.ts +3 -0
  425. package/dist/prompts/spec-status.d.ts.map +1 -0
  426. package/dist/prompts/spec-status.js +77 -0
  427. package/dist/prompts/spec-status.js.map +1 -0
  428. package/dist/prompts/types.d.ts +13 -0
  429. package/dist/prompts/types.d.ts.map +1 -0
  430. package/dist/prompts/types.js +2 -0
  431. package/dist/prompts/types.js.map +1 -0
  432. package/dist/server.d.ts +17 -0
  433. package/dist/server.d.ts.map +1 -0
  434. package/dist/server.js +175 -0
  435. package/dist/server.js.map +1 -0
  436. package/dist/tools/__tests__/log-implementation-review-process.test.d.ts +2 -0
  437. package/dist/tools/__tests__/log-implementation-review-process.test.d.ts.map +1 -0
  438. package/dist/tools/__tests__/log-implementation-review-process.test.js +190 -0
  439. package/dist/tools/__tests__/log-implementation-review-process.test.js.map +1 -0
  440. package/dist/tools/__tests__/projectPath.test.d.ts +2 -0
  441. package/dist/tools/__tests__/projectPath.test.d.ts.map +1 -0
  442. package/dist/tools/__tests__/projectPath.test.js +187 -0
  443. package/dist/tools/__tests__/projectPath.test.js.map +1 -0
  444. package/dist/tools/approvals.d.ts +14 -0
  445. package/dist/tools/approvals.d.ts.map +1 -0
  446. package/dist/tools/approvals.js +505 -0
  447. package/dist/tools/approvals.js.map +1 -0
  448. package/dist/tools/index.d.ts +5 -0
  449. package/dist/tools/index.d.ts.map +1 -0
  450. package/dist/tools/index.js +52 -0
  451. package/dist/tools/index.js.map +1 -0
  452. package/dist/tools/log-implementation.d.ts +5 -0
  453. package/dist/tools/log-implementation.d.ts.map +1 -0
  454. package/dist/tools/log-implementation.js +498 -0
  455. package/dist/tools/log-implementation.js.map +1 -0
  456. package/dist/tools/spec-status.d.ts +5 -0
  457. package/dist/tools/spec-status.d.ts.map +1 -0
  458. package/dist/tools/spec-status.js +192 -0
  459. package/dist/tools/spec-status.js.map +1 -0
  460. package/dist/tools/spec-workflow-guide.d.ts +5 -0
  461. package/dist/tools/spec-workflow-guide.d.ts.map +1 -0
  462. package/dist/tools/spec-workflow-guide.js +116 -0
  463. package/dist/tools/spec-workflow-guide.js.map +1 -0
  464. package/dist/tools/steering-guide.d.ts +5 -0
  465. package/dist/tools/steering-guide.d.ts.map +1 -0
  466. package/dist/tools/steering-guide.js +192 -0
  467. package/dist/tools/steering-guide.js.map +1 -0
  468. package/dist/types.d.ts +183 -0
  469. package/dist/types.d.ts.map +1 -0
  470. package/dist/types.js +13 -0
  471. package/dist/types.js.map +1 -0
  472. package/package.json +106 -0
@@ -0,0 +1,3 @@
1
+ import { PromptDefinition } from './types.js';
2
+ export declare const createSteeringDocPrompt: PromptDefinition;
3
+ //# sourceMappingURL=create-steering-doc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-steering-doc.d.ts","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA+E9C,eAAO,MAAM,uBAAuB,EAAE,gBAGrC,CAAC"}
@@ -0,0 +1,75 @@
1
+ const prompt = {
2
+ name: 'create-steering-doc',
3
+ title: 'Create Steering Document',
4
+ description: 'Guide for creating project steering documents (product, tech, structure) directly in the file system. These provide high-level project guidance.',
5
+ arguments: [
6
+ {
7
+ name: 'docType',
8
+ description: 'Type of steering document: product, tech, or structure',
9
+ required: true
10
+ },
11
+ {
12
+ name: 'scope',
13
+ description: 'Scope of the steering document (e.g., frontend, backend, full-stack)',
14
+ required: false
15
+ }
16
+ ]
17
+ };
18
+ async function handler(args, context) {
19
+ const { docType, scope } = args;
20
+ if (!docType) {
21
+ throw new Error('docType is a required argument');
22
+ }
23
+ const validDocTypes = ['product', 'tech', 'structure'];
24
+ // ダッシュボードのプレビュー用サンプルコンテキストではバリデーションをスキップ
25
+ const isPreviewContext = context.projectPath === '{{projectPath}}';
26
+ if (!isPreviewContext && !validDocTypes.includes(docType)) {
27
+ throw new Error(`docType must be one of: ${validDocTypes.join(', ')}`);
28
+ }
29
+ const messages = [
30
+ {
31
+ role: 'user',
32
+ content: {
33
+ type: 'text',
34
+ text: `Create a ${docType} steering document for the project.
35
+
36
+ **Context:**
37
+ - Project: ${context.projectPath}
38
+ - Steering document type: ${docType}
39
+ ${scope ? `- Scope: ${scope}` : ''}
40
+ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
41
+
42
+ **Instructions:**
43
+ 1. First, read the template at: .spec-workflow/templates/${docType}-template.md
44
+ 2. Check if steering docs exist at: .spec-workflow/steering/
45
+ 3. Create comprehensive content following the template structure
46
+ 4. Create the document at: .spec-workflow/steering/${docType}.md
47
+ 5. After creating, use approvals tool with action:'request' to get user approval
48
+
49
+ **File Paths:**
50
+ - Template location: .spec-workflow/templates/${docType}-template.md
51
+ - Document destination: .spec-workflow/steering/${docType}.md
52
+
53
+ **Steering Document Types:**
54
+ - **product**: Defines project vision, goals, and user outcomes
55
+ - **tech**: Documents technology decisions and architecture patterns
56
+ - **structure**: Maps codebase organization and conventions
57
+
58
+ **Key Principles:**
59
+ - Be specific and actionable
60
+ - Include examples where helpful
61
+ - Consider both technical and business requirements
62
+ - Provide clear guidance for future development
63
+ - Templates are automatically updated on server start
64
+
65
+ Please read the ${docType} template and create a comprehensive steering document at the specified path.`
66
+ }
67
+ }
68
+ ];
69
+ return messages;
70
+ }
71
+ export const createSteeringDocPrompt = {
72
+ prompt,
73
+ handler
74
+ };
75
+ //# sourceMappingURL=create-steering-doc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-steering-doc.js","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,kJAAkJ;IAC/J,SAAS,EAAE;QACT;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,sEAAsE;YACnF,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,KAAK,iBAAiB,CAAC;IACnE,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,OAAO;;;aAGpB,OAAO,CAAC,WAAW;4BACJ,OAAO;EACjC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;EAChC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;2DAGT,OAAO;;;qDAGb,OAAO;;;;gDAIZ,OAAO;kDACL,OAAO;;;;;;;;;;;;;;kBAcvC,OAAO,+EAA+E;aACjG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACvD,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PromptDefinition } from './types.js';
2
+ export declare const implementTaskPrompt: PromptDefinition;
3
+ //# sourceMappingURL=implement-task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implement-task.d.ts","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiL9C,eAAO,MAAM,mBAAmB,EAAE,gBAGjC,CAAC"}
@@ -0,0 +1,174 @@
1
+ const prompt = {
2
+ name: 'implement-task',
3
+ title: 'Implement Specification Task',
4
+ description: 'Guide for implementing a specific task from the tasks.md document using TDD (Red-Green-Refactor). Provides comprehensive instructions for task execution including writing tests first, implementing minimal code, refactoring, and logging implementation details for the dashboard.',
5
+ arguments: [
6
+ {
7
+ name: 'specName',
8
+ description: 'Feature name in kebab-case for the task to implement',
9
+ required: true
10
+ },
11
+ {
12
+ name: 'taskId',
13
+ description: 'Specific task ID to implement (e.g., "1", "2.1", "3")',
14
+ required: false
15
+ }
16
+ ]
17
+ };
18
+ async function handler(args, context) {
19
+ const { specName, taskId } = args;
20
+ if (!specName) {
21
+ throw new Error('specName is a required argument');
22
+ }
23
+ const messages = [
24
+ {
25
+ role: 'user',
26
+ content: {
27
+ type: 'text',
28
+ text: `Implement ${taskId ? `task ${taskId}` : 'the next pending task'} for the "${specName}" feature using TDD (Red-Green-Refactor).
29
+
30
+ **Context:**
31
+ - Project: ${context.projectPath}
32
+ - Feature: ${specName}
33
+ ${taskId ? `- Task ID: ${taskId}` : ''}
34
+ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
35
+
36
+ **TDD Implementation Workflow:**
37
+
38
+ 1. **Check Current Status:**
39
+ - Use the spec-status tool with specName "${specName}" to see overall progress
40
+ - Read .spec-workflow/specs/${specName}/tasks.md to see all tasks
41
+ - Identify ${taskId ? `task ${taskId}` : 'the next pending task marked with [ ]'}
42
+
43
+ 2. **Start the Task:**
44
+ - Edit .spec-workflow/specs/${specName}/tasks.md directly
45
+ - Change the task marker from [ ] to [-] for the task you're starting
46
+ - Only one task should be in-progress at a time
47
+
48
+ 3. **Read Task Guidance:**
49
+ - Look for the _Prompt field in the task - it contains structured guidance:
50
+ - Role: The specialized developer role to assume
51
+ - Task: Clear description with context references
52
+ - Restrictions: What not to do and constraints
53
+ - Success: Specific completion criteria
54
+ - Note the _Leverage fields for files/utilities to use
55
+ - Check _Requirements fields for which requirements this implements
56
+
57
+ 4. **Phase Review Tasks (Special Handling):**
58
+ - If the task has \`_PhaseReview: true_\`, **skip steps 5-10** (the TDD cycle)
59
+ - Instead: run the full test suite → code review all phase changes → commit with phase summary
60
+ - Then proceed directly to step 11 (Log)
61
+
62
+ 5. **Discover Existing Implementations (CRITICAL):**
63
+ - BEFORE writing any code, search implementation logs to understand existing artifacts
64
+ - Implementation logs are stored as markdown files in: .spec-workflow/specs/${specName}/Implementation Logs/
65
+
66
+ **Option 1: Use grep/ripgrep for fast searches**
67
+ \`\`\`bash
68
+ # Search for API endpoints
69
+ grep -r "GET\\|POST\\|PUT\\|DELETE" ".spec-workflow/specs/${specName}/Implementation Logs/"
70
+
71
+ # Search for specific components
72
+ grep -r "ComponentName" ".spec-workflow/specs/${specName}/Implementation Logs/"
73
+
74
+ # Search for integration patterns
75
+ grep -r "integration\\|dataFlow" ".spec-workflow/specs/${specName}/Implementation Logs/"
76
+ \`\`\`
77
+
78
+ **Option 2: Read markdown files directly**
79
+ - Use the Read tool to examine implementation log files
80
+ - Review artifacts from related tasks to understand established patterns
81
+
82
+ 6. **RED — Write Failing Tests:**
83
+ - Spawn a subagent using the Agent tool with subagent_type "general-purpose"
84
+ - The subagent should follow the /spec-impl-test-write skill instructions
85
+ - Provide: project path, spec name, task ID, full _Prompt content, design doc path
86
+ - If the task has a \`_TestFocus\` field, pass it to the subagent as "Test focus areas: {_TestFocus content}"
87
+ - The subagent writes tests that MUST FAIL (production code doesn't exist yet)
88
+ - Capture: test file paths and test runner command
89
+
90
+ 7. **Verify Red — All Tests Must Fail:**
91
+ - Spawn a subagent using the Agent tool with subagent_type "general-purpose"
92
+ - The subagent should follow the /spec-impl-test-run skill instructions
93
+ - Provide: project path, test file paths, expected mode "red"
94
+ - ALL tests must fail. If any pass, investigate and fix the tests.
95
+
96
+ 8. **GREEN — Write Minimal Production Code:**
97
+ - Spawn a subagent using the Agent tool with subagent_type "general-purpose"
98
+ - The subagent should follow the /spec-impl-code skill instructions
99
+ - Provide: project path, spec name, task ID, _Prompt content, test file paths, _Leverage files
100
+ - Write ONLY enough code to make the tests pass (YAGNI)
101
+ - Do NOT modify test files
102
+ - Capture: implementation file paths
103
+
104
+ 9. **Verify Green — All Tests Must Pass:**
105
+ - Spawn a subagent using the Agent tool with subagent_type "general-purpose"
106
+ - The subagent should follow the /spec-impl-test-run skill instructions
107
+ - Provide: project path, test file paths, expected mode "green"
108
+ - ALL tests must pass. If any fail, fix the implementation and retry (max 3 attempts).
109
+
110
+ 10. **REFACTOR — Review and Clean Up:**
111
+ - Spawn a subagent using the Agent tool with subagent_type "general-purpose"
112
+ - The subagent should follow the /spec-impl-review skill instructions
113
+ - Provide: project path, spec name, task ID, _Prompt content, test files, implementation files, success criteria
114
+ - Refactor for clarity and maintainability WITHOUT changing behavior
115
+ - Do NOT change test expectations or add new features
116
+
117
+ 11. **Verify Refactor — Tests Still Pass:**
118
+ - Spawn a subagent to run tests again in "green" mode
119
+ - If tests fail after refactoring, revert the refactoring changes
120
+
121
+ 12. **Log Implementation (MANDATORY - must complete BEFORE marking task done):**
122
+ - ⚠️ **STOP: Do NOT mark the task [x] until this step succeeds.**
123
+ - A task without an implementation log is NOT complete. Skipping this step is the #1 workflow violation.
124
+ - Call log-implementation with ALL of the following:
125
+ - specName: "${specName}"
126
+ - taskId: ${taskId ? `"${taskId}"` : 'the task ID you just completed'}
127
+ - summary: Clear description of what was implemented (1-2 sentences)
128
+ - filesModified: List of files you edited
129
+ - filesCreated: List of files you created — **include test files**
130
+ - statistics: {linesAdded: number, linesRemoved: number}
131
+ - artifacts: {apiEndpoints: [...], components: [...], functions: [...], classes: [...], integrations: [...]}
132
+ - You MUST include artifacts (required field) to enable other agents to find your work
133
+ - Why: Future AI agents will query logs before implementing, preventing duplicate code
134
+
135
+ 13. **Complete the Task (only after step 12 succeeds):**
136
+ - Confirm that log-implementation returned success in step 12
137
+ - Verify all success criteria from the _Prompt are met
138
+ - Edit .spec-workflow/specs/${specName}/tasks.md directly
139
+ - Change the task marker from [-] to [x] for the completed task
140
+ - ⚠️ If you skipped step 12, go back now — a task marked [x] without a log is incomplete
141
+
142
+ **Important Guidelines:**
143
+ - Always mark a task as in-progress before starting work
144
+ - Follow TDD strictly: RED (tests first) → GREEN (minimal code) → REFACTOR (clean up)
145
+ - For \`_PhaseReview: true_\` tasks, skip the TDD cycle — run tests, review, commit instead (step 4)
146
+ - Each TDD phase runs as a separate subagent for isolation
147
+ - Pass \`_TestFocus\` content to the RED phase subagent when available
148
+ - Use existing patterns and utilities mentioned in _Leverage fields
149
+ - Include test files in filesCreated when logging implementation
150
+ - **ALWAYS call log-implementation BEFORE marking a task [x]**
151
+ - If a task has subtasks (e.g., 4.1, 4.2), complete them in order
152
+ - If you encounter blockers, document them and move to another task
153
+
154
+ **Tools to Use:**
155
+ - spec-status: Check overall progress
156
+ - Agent: Spawn subagents for TDD phases (test-write, test-run, code, review)
157
+ - Bash (grep/ripgrep): CRITICAL - Search existing implementations before coding (step 5)
158
+ - Read: Examine markdown implementation log files directly (step 5)
159
+ - log-implementation: MANDATORY - Record implementation details with artifacts BEFORE marking task complete (step 12)
160
+ - Edit: Directly update task markers in tasks.md file
161
+ - Read/Write/Edit: Implement the actual code changes
162
+ - Bash: Run tests and verify implementation
163
+
164
+ Please proceed with implementing ${taskId ? `task ${taskId}` : 'the next task'} following this TDD workflow.`
165
+ }
166
+ }
167
+ ];
168
+ return messages;
169
+ }
170
+ export const implementTaskPrompt = {
171
+ prompt,
172
+ handler
173
+ };
174
+ //# sourceMappingURL=implement-task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implement-task.js","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,8BAA8B;IACrC,WAAW,EAAE,uRAAuR;IACpS,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uBAAuB,aAAa,QAAQ;;;aAGtF,OAAO,CAAC,WAAW;aACnB,QAAQ;EACnB,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;EACpC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;+CAKrB,QAAQ;iCACtB,QAAQ;gBACzB,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uCAAuC;;;iCAGlD,QAAQ;;;;;;;;;;;;;;;;;;;;iFAoBwC,QAAQ;;;;;+DAK1B,QAAQ;;;mDAGpB,QAAQ;;;4DAGC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAkDhD,QAAQ;iBACX,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,gCAAgC;;;;;;;;;;;;iCAYzC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;mCA0BN,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,eAAe,+BAA+B;aACtG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { Prompt, ListPromptsResult, GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
2
+ import { ToolContext } from '../types.js';
3
+ import { PromptDefinition } from './types.js';
4
+ /**
5
+ * Get all prompt definitions (used by dashboard API)
6
+ */
7
+ export declare function getPromptDefinitions(): PromptDefinition[];
8
+ /**
9
+ * Get all registered prompts
10
+ */
11
+ export declare function registerPrompts(): Prompt[];
12
+ /**
13
+ * Handle prompts/list request
14
+ */
15
+ export declare function handlePromptList(): Promise<ListPromptsResult>;
16
+ /**
17
+ * Handle prompts/get request
18
+ */
19
+ export declare function handlePromptGet(name: string, args: Record<string, any> | undefined, context: ToolContext): Promise<GetPromptResult>;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,iBAAiB,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAG/G,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAsB7D;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAInE;AAoCD;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAK,EAC9B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CA2B1B"}
@@ -0,0 +1,103 @@
1
+ import { promises as fs } from 'fs';
2
+ import { join } from 'path';
3
+ // Import individual prompt definitions
4
+ import { createSpecPrompt } from './create-spec.js';
5
+ import { createSteeringDocPrompt } from './create-steering-doc.js';
6
+ import { implementTaskPrompt } from './implement-task.js';
7
+ import { specStatusPrompt } from './spec-status.js';
8
+ import { injectSpecWorkflowGuidePrompt } from './inject-spec-workflow-guide.js';
9
+ import { injectSteeringGuidePrompt } from './inject-steering-guide.js';
10
+ import { refreshTasksPrompt } from './refresh-tasks.js';
11
+ // Registry of all prompts
12
+ const promptDefinitions = [
13
+ createSpecPrompt,
14
+ createSteeringDocPrompt,
15
+ implementTaskPrompt,
16
+ specStatusPrompt,
17
+ injectSpecWorkflowGuidePrompt,
18
+ injectSteeringGuidePrompt,
19
+ refreshTasksPrompt
20
+ ];
21
+ /**
22
+ * Get all prompt definitions (used by dashboard API)
23
+ */
24
+ export function getPromptDefinitions() {
25
+ return promptDefinitions;
26
+ }
27
+ /**
28
+ * Get all registered prompts
29
+ */
30
+ export function registerPrompts() {
31
+ return promptDefinitions.map(def => def.prompt);
32
+ }
33
+ /**
34
+ * Handle prompts/list request
35
+ */
36
+ export async function handlePromptList() {
37
+ return {
38
+ prompts: registerPrompts()
39
+ };
40
+ }
41
+ /**
42
+ * Read user prompt override file if it exists
43
+ */
44
+ async function readUserPromptOverride(projectPath, name) {
45
+ try {
46
+ const filePath = join(projectPath, '.spec-workflow', 'user-prompts', `${name}.json`);
47
+ const content = await fs.readFile(filePath, 'utf-8');
48
+ const data = JSON.parse(content);
49
+ if (data.customContent) {
50
+ return { customContent: data.customContent, lastModified: data.lastModified || '' };
51
+ }
52
+ return null;
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Replace template variables in custom prompt content
60
+ */
61
+ function replaceTemplateVariables(content, args, context) {
62
+ let result = content;
63
+ // Replace context variables
64
+ result = result.replace(/\{\{projectPath\}\}/g, context.projectPath || '');
65
+ result = result.replace(/\{\{dashboardUrl\}\}/g, context.dashboardUrl || '');
66
+ // Replace all argument variables
67
+ for (const [key, value] of Object.entries(args)) {
68
+ if (typeof value === 'string') {
69
+ result = result.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), value);
70
+ }
71
+ }
72
+ return result;
73
+ }
74
+ /**
75
+ * Handle prompts/get request
76
+ */
77
+ export async function handlePromptGet(name, args = {}, context) {
78
+ const promptDef = promptDefinitions.find(def => def.prompt.name === name);
79
+ if (!promptDef) {
80
+ throw new Error(`Prompt not found: ${name}`);
81
+ }
82
+ // Check for user prompt override
83
+ if (context.projectPath) {
84
+ const override = await readUserPromptOverride(context.projectPath, name);
85
+ if (override) {
86
+ const customText = replaceTemplateVariables(override.customContent, args, context);
87
+ return {
88
+ messages: [{
89
+ role: 'user',
90
+ content: { type: 'text', text: customText }
91
+ }]
92
+ };
93
+ }
94
+ }
95
+ try {
96
+ const messages = await promptDef.handler(args, context);
97
+ return { messages };
98
+ }
99
+ catch (error) {
100
+ throw new Error(`Failed to generate prompt messages: ${error.message}`);
101
+ }
102
+ }
103
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { PromptDefinition } from './types.js';
2
+ export declare const injectSpecWorkflowGuidePrompt: PromptDefinition;
3
+ //# sourceMappingURL=inject-spec-workflow-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-spec-workflow-guide.d.ts","sourceRoot":"","sources":["../../src/prompts/inject-spec-workflow-guide.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA4D9C,eAAO,MAAM,6BAA6B,EAAE,gBAG3C,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { specWorkflowGuideHandler } from '../tools/spec-workflow-guide.js';
2
+ const prompt = {
3
+ name: 'inject-spec-workflow-guide',
4
+ title: 'Inject Spec Workflow Guide into Context',
5
+ description: 'Injects the complete spec-driven development workflow guide into the conversation context. This provides immediate access to all workflow phases, tools, and best practices without requiring separate tool calls.'
6
+ };
7
+ async function handler(args, context) {
8
+ let guide = '';
9
+ let dashboardUrl;
10
+ let nextSteps = [];
11
+ try {
12
+ const toolResponse = await specWorkflowGuideHandler({}, context);
13
+ guide = toolResponse.data?.guide || '';
14
+ dashboardUrl = toolResponse.data?.dashboardUrl;
15
+ nextSteps = toolResponse.nextSteps || [];
16
+ }
17
+ catch (error) {
18
+ if (context.projectPath === '{{projectPath}}') {
19
+ // ダッシュボードのプレビュー用サンプルコンテキストではプレースホルダーを表示
20
+ guide = '(ワークフローガイドはプロジェクトコンテキストで生成されます)';
21
+ }
22
+ else {
23
+ // 本番コンテキストではエラーを上位レイヤーに伝播させる
24
+ throw error;
25
+ }
26
+ }
27
+ const messages = [
28
+ {
29
+ role: 'user',
30
+ content: {
31
+ type: 'text',
32
+ text: `Please review and follow this comprehensive spec-driven development workflow guide:
33
+
34
+ ${guide}
35
+
36
+ **Current Context:**
37
+ - Project: ${context.projectPath}
38
+ ${dashboardUrl ? `- Dashboard: ${dashboardUrl}` : '- Dashboard: Please start the dashboard or use VS Code extension "Spec Workflow MCP"'}
39
+
40
+ **Next Steps:**
41
+ ${nextSteps.map(step => `- ${step}`).join('\n')}
42
+
43
+ **Important Instructions:**
44
+ 1. This guide has been injected into your context for immediate reference
45
+ 2. Follow the workflow sequence exactly: Requirements → Design → Test Design → Tasks → Implementation
46
+ 3. Use the MCP tools mentioned in the guide to execute each phase
47
+ 4. Always request approval between phases using the approvals tool
48
+ 5. Never proceed to the next phase without successful approval cleanup
49
+
50
+ Please acknowledge that you've reviewed this workflow guide and are ready to help with spec-driven development.`
51
+ }
52
+ }
53
+ ];
54
+ return messages;
55
+ }
56
+ export const injectSpecWorkflowGuidePrompt = {
57
+ prompt,
58
+ handler
59
+ };
60
+ //# sourceMappingURL=inject-spec-workflow-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-spec-workflow-guide.js","sourceRoot":"","sources":["../../src/prompts/inject-spec-workflow-guide.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,yCAAyC;IAChD,WAAW,EAAE,oNAAoN;CAClO,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,YAAgC,CAAC;IACrC,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjE,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACvC,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC;QAC/C,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,WAAW,KAAK,iBAAiB,EAAE,CAAC;YAC9C,wCAAwC;YACxC,KAAK,GAAG,iCAAiC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;;EAEZ,KAAK;;;aAGM,OAAO,CAAC,WAAW;EAC9B,YAAY,CAAC,CAAC,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC,sFAAsF;;;EAGtI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;gHASiE;aACzG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAqB;IAC7D,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PromptDefinition } from './types.js';
2
+ export declare const injectSteeringGuidePrompt: PromptDefinition;
3
+ //# sourceMappingURL=inject-steering-guide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-steering-guide.d.ts","sourceRoot":"","sources":["../../src/prompts/inject-steering-guide.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgE9C,eAAO,MAAM,yBAAyB,EAAE,gBAGvC,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { steeringGuideHandler } from '../tools/steering-guide.js';
2
+ const prompt = {
3
+ name: 'inject-steering-guide',
4
+ title: 'Inject Steering Guide into Context',
5
+ description: 'Injects the complete steering document workflow guide into the conversation context. This provides instructions for creating project-level guidance documents (product.md, tech.md, structure.md) when explicitly requested by the user.'
6
+ };
7
+ async function handler(args, context) {
8
+ let guide = '';
9
+ let dashboardUrl;
10
+ let nextSteps = [];
11
+ try {
12
+ const toolResponse = await steeringGuideHandler({}, context);
13
+ guide = toolResponse.data?.guide || '';
14
+ dashboardUrl = toolResponse.data?.dashboardUrl;
15
+ nextSteps = toolResponse.nextSteps || [];
16
+ }
17
+ catch (error) {
18
+ if (context.projectPath === '{{projectPath}}') {
19
+ // ダッシュボードのプレビュー用サンプルコンテキストではプレースホルダーを表示
20
+ guide = '(ステアリングガイドはプロジェクトコンテキストで生成されます)';
21
+ }
22
+ else {
23
+ // 本番コンテキストではエラーを上位レイヤーに伝播させる
24
+ throw error;
25
+ }
26
+ }
27
+ const messages = [
28
+ {
29
+ role: 'user',
30
+ content: {
31
+ type: 'text',
32
+ text: `Please review and follow this steering document workflow guide:
33
+
34
+ ${guide}
35
+
36
+ **Current Context:**
37
+ - Project: ${context.projectPath}
38
+ ${dashboardUrl ? `- Dashboard: ${dashboardUrl}` : '- Dashboard: Please start the dashboard or use VS Code extension "Spec Workflow MCP"'}
39
+
40
+ **Next Steps:**
41
+ ${nextSteps.map(step => `- ${step}`).join('\n')}
42
+
43
+ **Important Instructions:**
44
+ 1. This guide has been injected into your context for creating steering documents
45
+ 2. Only proceed if the user explicitly requested steering document creation
46
+ 3. Follow the sequence exactly: product.md → tech.md → structure.md
47
+ 4. Read templates from .spec-workflow/templates/ directory
48
+ 5. Create documents in .spec-workflow/steering/ directory
49
+ 6. Request approval after each document using the approvals tool
50
+ 7. Never proceed to the next document without successful approval cleanup
51
+
52
+ **Note:** Steering documents are NOT part of the standard spec workflow. They are project-level guidance documents that should only be created when explicitly requested by the user. These documents establish vision, architecture, and conventions for established codebases.
53
+
54
+ Please acknowledge that you've reviewed this steering workflow guide and confirm whether the user wants to create steering documents.`
55
+ }
56
+ }
57
+ ];
58
+ return messages;
59
+ }
60
+ export const injectSteeringGuidePrompt = {
61
+ prompt,
62
+ handler
63
+ };
64
+ //# sourceMappingURL=inject-steering-guide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-steering-guide.js","sourceRoot":"","sources":["../../src/prompts/inject-steering-guide.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,oCAAoC;IAC3C,WAAW,EAAE,0OAA0O;CACxP,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,YAAgC,CAAC;IACrC,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACvC,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC;QAC/C,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,WAAW,KAAK,iBAAiB,EAAE,CAAC;YAC9C,wCAAwC;YACxC,KAAK,GAAG,iCAAiC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;;EAEZ,KAAK;;;aAGM,OAAO,CAAC,WAAW;EAC9B,YAAY,CAAC,CAAC,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC,sFAAsF;;;EAGtI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;sIAauF;aAC/H;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,MAAM;IACN,OAAO;CACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PromptDefinition } from './types.js';
2
+ export declare const refreshTasksPrompt: PromptDefinition;
3
+ //# sourceMappingURL=refresh-tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-tasks.d.ts","sourceRoot":"","sources":["../../src/prompts/refresh-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgP9C,eAAO,MAAM,kBAAkB,EAAE,gBAGhC,CAAC"}