@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,145 @@
1
+ # Project Structure
2
+
3
+ ## Directory Organization
4
+
5
+ ```
6
+ [Define your project's directory structure. Examples below - adapt to your project type]
7
+
8
+ Example for a library/package:
9
+ project-root/
10
+ ├── src/ # Source code
11
+ ├── tests/ # Test files
12
+ ├── docs/ # Documentation
13
+ ├── examples/ # Usage examples
14
+ └── [build/dist/out] # Build output
15
+
16
+ Example for an application:
17
+ project-root/
18
+ ├── [src/app/lib] # Main source code
19
+ ├── [assets/resources] # Static resources
20
+ ├── [config/settings] # Configuration
21
+ ├── [scripts/tools] # Build/utility scripts
22
+ └── [tests/spec] # Test files
23
+
24
+ Common patterns:
25
+ - Group by feature/module
26
+ - Group by layer (UI, business logic, data)
27
+ - Group by type (models, controllers, views)
28
+ - Flat structure for simple projects
29
+ ```
30
+
31
+ ## Naming Conventions
32
+
33
+ ### Files
34
+ - **Components/Modules**: [e.g., `PascalCase`, `snake_case`, `kebab-case`]
35
+ - **Services/Handlers**: [e.g., `UserService`, `user_service`, `user-service`]
36
+ - **Utilities/Helpers**: [e.g., `dateUtils`, `date_utils`, `date-utils`]
37
+ - **Tests**: [e.g., `[filename]_test`, `[filename].test`, `[filename]Test`]
38
+
39
+ ### Code
40
+ - **Classes/Types**: [e.g., `PascalCase`, `CamelCase`, `snake_case`]
41
+ - **Functions/Methods**: [e.g., `camelCase`, `snake_case`, `PascalCase`]
42
+ - **Constants**: [e.g., `UPPER_SNAKE_CASE`, `SCREAMING_CASE`, `PascalCase`]
43
+ - **Variables**: [e.g., `camelCase`, `snake_case`, `lowercase`]
44
+
45
+ ## Import Patterns
46
+
47
+ ### Import Order
48
+ 1. External dependencies
49
+ 2. Internal modules
50
+ 3. Relative imports
51
+ 4. Style imports
52
+
53
+ ### Module/Package Organization
54
+ ```
55
+ [Describe your project's import/include patterns]
56
+ Examples:
57
+ - Absolute imports from project root
58
+ - Relative imports within modules
59
+ - Package/namespace organization
60
+ - Dependency management approach
61
+ ```
62
+
63
+ ## Code Structure Patterns
64
+
65
+ [Define common patterns for organizing code within files. Below are examples - choose what applies to your project]
66
+
67
+ ### Module/Class Organization
68
+ ```
69
+ Example patterns:
70
+ 1. Imports/includes/dependencies
71
+ 2. Constants and configuration
72
+ 3. Type/interface definitions
73
+ 4. Main implementation
74
+ 5. Helper/utility functions
75
+ 6. Exports/public API
76
+ ```
77
+
78
+ ### Function/Method Organization
79
+ ```
80
+ Example patterns:
81
+ - Input validation first
82
+ - Core logic in the middle
83
+ - Error handling throughout
84
+ - Clear return points
85
+ ```
86
+
87
+ ### File Organization Principles
88
+ ```
89
+ Choose what works for your project:
90
+ - One class/module per file
91
+ - Related functionality grouped together
92
+ - Public API at the top/bottom
93
+ - Implementation details hidden
94
+ ```
95
+
96
+ ## Code Organization Principles
97
+
98
+ 1. **Single Responsibility**: Each file should have one clear purpose
99
+ 2. **Modularity**: Code should be organized into reusable modules
100
+ 3. **Testability**: Structure code to be easily testable
101
+ 4. **Consistency**: Follow patterns established in the codebase
102
+
103
+ ## Module Boundaries
104
+ [Define how different parts of your project interact and maintain separation of concerns]
105
+
106
+ Examples of boundary patterns:
107
+ - **Core vs Plugins**: Core functionality vs extensible plugins
108
+ - **Public API vs Internal**: What's exposed vs implementation details
109
+ - **Platform-specific vs Cross-platform**: OS-specific code isolation
110
+ - **Stable vs Experimental**: Production code vs experimental features
111
+ - **Dependencies direction**: Which modules can depend on which
112
+
113
+ ## Code Size Guidelines
114
+ [Define your project's guidelines for file and function sizes]
115
+
116
+ Suggested guidelines:
117
+ - **File size**: [Define maximum lines per file]
118
+ - **Function/Method size**: [Define maximum lines per function]
119
+ - **Class/Module complexity**: [Define complexity limits]
120
+ - **Nesting depth**: [Maximum nesting levels]
121
+
122
+ ## Dashboard/Monitoring Structure (if applicable)
123
+ [How dashboard or monitoring components are organized]
124
+
125
+ ### Example Structure:
126
+ ```
127
+ src/
128
+ └── dashboard/ # Self-contained dashboard subsystem
129
+ ├── server/ # Backend server components
130
+ ├── client/ # Frontend assets
131
+ ├── shared/ # Shared types/utilities
132
+ └── public/ # Static assets
133
+ ```
134
+
135
+ ### Separation of Concerns
136
+ - Dashboard isolated from core business logic
137
+ - Own CLI entry point for independent operation
138
+ - Minimal dependencies on main application
139
+ - Can be disabled without affecting core functionality
140
+
141
+ ## Documentation Standards
142
+ - All public APIs must have documentation
143
+ - Complex logic should include inline comments
144
+ - README files for major modules
145
+ - Follow language-specific documentation conventions
@@ -0,0 +1,100 @@
1
+ # Tasks Document
2
+
3
+ ## Phase 1: Core Domain Layer
4
+
5
+ - [ ] 1.1 Create core interfaces and model in src/types/feature.ts, src/models/FeatureModel.ts
6
+ - File: src/types/feature.ts, src/models/FeatureModel.ts
7
+ - Define TypeScript interfaces and implement model with validation/CRUD
8
+ - Purpose: Establish type-safe data layer
9
+ - _Leverage: src/types/base.ts, src/models/BaseModel.ts, src/utils/validation.ts_
10
+ - _Requirements: 1.1, 2.1, 2.2_
11
+ - _TestFocus: Interface contract validation, CRUD success/failure, validation boundaries, relationship integrity_
12
+ - _Prompt: Role: TypeScript Developer specializing in type systems and data modeling | Task: Create comprehensive TypeScript interfaces and implement model with validation and CRUD operations following requirements 1.1, 2.1, 2.2, extending existing base interfaces and model from src/types/base.ts and src/models/BaseModel.ts | Restrictions: Do not modify existing base interfaces, maintain backward compatibility, follow project naming conventions | Success: All interfaces compile without errors, model extends BaseModel correctly, validation methods implemented, full type coverage for feature requirements_
13
+
14
+ - [ ] 1.2 Create service interface and implementation in src/services/IFeatureService.ts, src/services/FeatureService.ts
15
+ - File: src/services/IFeatureService.ts, src/services/FeatureService.ts
16
+ - Define service contract and implement concrete service using FeatureModel
17
+ - Add error handling with existing error utilities
18
+ - Purpose: Provide business logic layer for feature operations
19
+ - _DependsOn: 1.1_
20
+ - _Leverage: src/services/IBaseService.ts, src/services/BaseService.ts, src/utils/errorHandler.ts, src/models/FeatureModel.ts_
21
+ - _Requirements: 3.1, 3.2_
22
+ - _TestFocus: Service contract compliance, error propagation, business logic edge cases, dependency injection_
23
+ - _Prompt: Role: Backend Developer with expertise in service layer architecture | Task: Design service interface and implement concrete FeatureService following requirements 3.1 and 3.2, using FeatureModel and extending BaseService patterns with proper error handling | Restrictions: Must implement interface contract exactly, do not bypass model validation, maintain separation of concerns | Success: Interface is well-defined, service implements all methods correctly, robust error handling, business logic is testable_
24
+
25
+ - [ ] 1.3 Register service in dependency injection container
26
+ - File: src/utils/di.ts
27
+ - Register FeatureService in DI container with proper lifetime configuration
28
+ - Purpose: Enable service injection throughout application
29
+ - _DependsOn: 1.1, 1.2_
30
+ - _Leverage: existing DI configuration in src/utils/di.ts_
31
+ - _Requirements: 3.1_
32
+ - _TestFocus: Service resolution, dependency chain, lifetime management_
33
+ - _Prompt: Role: Backend Developer with expertise in dependency injection | Task: Register FeatureService in DI container following requirement 3.1, configuring appropriate lifetime and dependencies using existing patterns | Restrictions: Must follow existing DI patterns, do not create circular dependencies | Success: FeatureService is properly registered and resolvable, dependencies correctly configured_
34
+
35
+ - [ ] 1.4 Review and commit Phase 1
36
+ - _PhaseReview: true_
37
+ - _Prompt: Role: Code reviewer | Task: Review all Phase 1 changes for code quality, consistency, and correctness. Run full test suite and verify all tests pass. Stage and commit with a summary of Phase 1 deliverables. | Success: All tests pass, code review complete, changes committed_
38
+
39
+ ## Phase 2: API Layer
40
+
41
+ - [ ] 2.1 Create API routing and middleware configuration
42
+ - File: src/api/featureRoutes.ts, src/middleware/featureMiddleware.ts
43
+ - Set up routing with authentication and error handling middleware
44
+ - Purpose: Establish API infrastructure for feature
45
+ - _Leverage: src/api/baseApi.ts, src/middleware/auth.ts, src/middleware/errorHandler.ts_
46
+ - _Requirements: 4.1_
47
+ - _TestFocus: Route registration, middleware chain order, auth enforcement, error response format_
48
+ - _Prompt: Role: Backend API developer specializing in Express.js | Task: Configure API routes and middleware following requirement 4.1, integrating authentication and error handling from existing middleware | Restrictions: Must maintain middleware order, do not bypass security middleware | Success: Routes properly configured with correct middleware chain, authentication works correctly_
49
+
50
+ - [ ] 2.2 Implement CRUD endpoints with request validation
51
+ - File: src/controllers/FeatureController.ts
52
+ - Create API endpoints with input validation
53
+ - Purpose: Expose feature operations via REST API
54
+ - _Leverage: src/controllers/BaseController.ts, src/utils/validation.ts_
55
+ - _Requirements: 4.2, 4.3_
56
+ - _TestFocus: CRUD endpoint responses, input validation rejection, HTTP status codes, error payloads_
57
+ - _Prompt: Role: Full-stack Developer with expertise in API development | Task: Implement CRUD endpoints following requirements 4.2 and 4.3, extending BaseController patterns with request validation | Restrictions: Must validate all inputs, follow existing controller patterns, ensure proper HTTP status codes | Success: All CRUD operations work correctly, request validation prevents invalid data_
58
+
59
+ - [ ] 2.3 Review and commit Phase 2
60
+ - _PhaseReview: true_
61
+ - _Prompt: Role: Code reviewer | Task: Review all Phase 2 changes for API design quality, security, and correctness. Run full test suite. Stage and commit with a summary of Phase 2 deliverables. | Success: All tests pass, API endpoints reviewed, changes committed_
62
+
63
+ ## Phase 3: Frontend Components
64
+
65
+ - [ ] 3.1 Create base UI components
66
+ - File: src/components/feature/FeatureList.tsx, src/components/feature/FeatureForm.tsx
67
+ - Implement reusable components with styling and theming
68
+ - Purpose: Build UI building blocks for feature
69
+ - _Leverage: src/components/BaseComponent.tsx, src/styles/theme.ts_
70
+ - _Requirements: 5.1_
71
+ - _TestFocus: Component rendering, prop handling, accessibility, theme integration_
72
+ - _Prompt: Role: Frontend Developer specializing in React | Task: Create reusable UI components following requirement 5.1, extending BaseComponent patterns and using existing theme system | Restrictions: Must use existing theme variables, follow component patterns, ensure accessibility | Success: Components are reusable, properly themed, accessible and responsive_
73
+
74
+ - [ ] 3.2 Implement feature-specific components with state and API integration
75
+ - File: src/components/feature/FeaturePage.tsx, src/hooks/useFeature.ts
76
+ - Create feature page with state management connected to API
77
+ - Purpose: Complete frontend user experience
78
+ - _Leverage: src/hooks/useApi.ts, src/components/BaseComponent.tsx_
79
+ - _Requirements: 5.2, 5.3_
80
+ - _TestFocus: State transitions, API integration, loading/error states, user interactions_
81
+ - _Prompt: Role: React Developer with expertise in state management | Task: Implement feature page and custom hook following requirements 5.2 and 5.3, using API hooks and extending BaseComponent patterns | Restrictions: Must use existing state management patterns, handle loading and error states | Success: Components fully functional with proper state, API integration works smoothly_
82
+
83
+ - [ ] 3.3 Review and commit Phase 3
84
+ - _PhaseReview: true_
85
+ - _Prompt: Role: Code reviewer | Task: Review all Phase 3 changes for component quality, accessibility, and UX. Run full test suite. Stage and commit with a summary of Phase 3 deliverables. | Success: All tests pass, UI reviewed, changes committed_
86
+
87
+ ## Phase 4: Integration
88
+
89
+ - [ ] 4.1 End-to-end integration and verification
90
+ - File: tests/e2e/feature.e2e.ts
91
+ - Write E2E tests covering critical user journeys across all layers
92
+ - Purpose: Verify full-stack integration works correctly
93
+ - _Leverage: tests/helpers/testUtils.ts, tests/fixtures/data.ts_
94
+ - _Requirements: All_
95
+ - _TestFocus: User journey flows, cross-layer data integrity, error recovery paths_
96
+ - _Prompt: Role: QA Engineer with expertise in E2E testing | Task: Implement end-to-end tests covering all critical user journeys across all layers | Restrictions: Must test real user workflows, ensure tests are maintainable | Success: E2E tests cover critical journeys, tests run reliably_
97
+
98
+ - [ ] 4.2 Final review and commit Phase 4
99
+ - _PhaseReview: true_
100
+ - _Prompt: Role: Code reviewer | Task: Final review of all integration work. Run full test suite including E2E. Stage and commit with a summary of all deliverables. Clean up any remaining issues. | Success: All tests pass, full integration verified, final commit made_
@@ -0,0 +1,99 @@
1
+ # Technology Stack
2
+
3
+ ## Project Type
4
+ [Describe what kind of project this is: web application, CLI tool, desktop application, mobile app, library, API service, embedded system, game, etc.]
5
+
6
+ ## Core Technologies
7
+
8
+ ### Primary Language(s)
9
+ - **Language**: [e.g., Python 3.11, Go 1.21, TypeScript, Rust, C++]
10
+ - **Runtime/Compiler**: [if applicable]
11
+ - **Language-specific tools**: [package managers, build tools, etc.]
12
+
13
+ ### Key Dependencies/Libraries
14
+ [List the main libraries and frameworks your project depends on]
15
+ - **[Library/Framework name]**: [Purpose and version]
16
+ - **[Library/Framework name]**: [Purpose and version]
17
+
18
+ ### Application Architecture
19
+ [Describe how your application is structured - this could be MVC, event-driven, plugin-based, client-server, standalone, microservices, monolithic, etc.]
20
+
21
+ ### Data Storage (if applicable)
22
+ - **Primary storage**: [e.g., PostgreSQL, files, in-memory, cloud storage]
23
+ - **Caching**: [e.g., Redis, in-memory, disk cache]
24
+ - **Data formats**: [e.g., JSON, Protocol Buffers, XML, binary]
25
+
26
+ ### External Integrations (if applicable)
27
+ - **APIs**: [External services you integrate with]
28
+ - **Protocols**: [e.g., HTTP/REST, gRPC, WebSocket, TCP/IP]
29
+ - **Authentication**: [e.g., OAuth, API keys, certificates]
30
+
31
+ ### Monitoring & Dashboard Technologies (if applicable)
32
+ - **Dashboard Framework**: [e.g., React, Vue, vanilla JS, terminal UI]
33
+ - **Real-time Communication**: [e.g., WebSocket, Server-Sent Events, polling]
34
+ - **Visualization Libraries**: [e.g., Chart.js, D3, terminal graphs]
35
+ - **State Management**: [e.g., Redux, Vuex, file system as source of truth]
36
+
37
+ ## Development Environment
38
+
39
+ ### Build & Development Tools
40
+ - **Build System**: [e.g., Make, CMake, Gradle, npm scripts, cargo]
41
+ - **Package Management**: [e.g., pip, npm, cargo, go mod, apt, brew]
42
+ - **Development workflow**: [e.g., hot reload, watch mode, REPL]
43
+
44
+ ### Code Quality Tools
45
+ - **Static Analysis**: [Tools for code quality and correctness]
46
+ - **Formatting**: [Code style enforcement tools]
47
+ - **Testing Framework**: [Unit, integration, and/or end-to-end testing tools]
48
+ - **Documentation**: [Documentation generation tools]
49
+
50
+ ### Version Control & Collaboration
51
+ - **VCS**: [e.g., Git, Mercurial, SVN]
52
+ - **Branching Strategy**: [e.g., Git Flow, GitHub Flow, trunk-based]
53
+ - **Code Review Process**: [How code reviews are conducted]
54
+
55
+ ### Dashboard Development (if applicable)
56
+ - **Live Reload**: [e.g., Hot module replacement, file watchers]
57
+ - **Port Management**: [e.g., Dynamic allocation, configurable ports]
58
+ - **Multi-Instance Support**: [e.g., Running multiple dashboards simultaneously]
59
+
60
+ ## Deployment & Distribution (if applicable)
61
+ - **Target Platform(s)**: [Where/how the project runs: cloud, on-premise, desktop, mobile, embedded]
62
+ - **Distribution Method**: [How users get your software: download, package manager, app store, SaaS]
63
+ - **Installation Requirements**: [Prerequisites, system requirements]
64
+ - **Update Mechanism**: [How updates are delivered]
65
+
66
+ ## Technical Requirements & Constraints
67
+
68
+ ### Performance Requirements
69
+ - [e.g., response time, throughput, memory usage, startup time]
70
+ - [Specific benchmarks or targets]
71
+
72
+ ### Compatibility Requirements
73
+ - **Platform Support**: [Operating systems, architectures, versions]
74
+ - **Dependency Versions**: [Minimum/maximum versions of dependencies]
75
+ - **Standards Compliance**: [Industry standards, protocols, specifications]
76
+
77
+ ### Security & Compliance
78
+ - **Security Requirements**: [Authentication, encryption, data protection]
79
+ - **Compliance Standards**: [GDPR, HIPAA, SOC2, etc. if applicable]
80
+ - **Threat Model**: [Key security considerations]
81
+
82
+ ### Scalability & Reliability
83
+ - **Expected Load**: [Users, requests, data volume]
84
+ - **Availability Requirements**: [Uptime targets, disaster recovery]
85
+ - **Growth Projections**: [How the system needs to scale]
86
+
87
+ ## Technical Decisions & Rationale
88
+ [Document key architectural and technology choices]
89
+
90
+ ### Decision Log
91
+ 1. **[Technology/Pattern Choice]**: [Why this was chosen, alternatives considered]
92
+ 2. **[Architecture Decision]**: [Rationale, trade-offs accepted]
93
+ 3. **[Tool/Library Selection]**: [Reasoning, evaluation criteria]
94
+
95
+ ## Known Limitations
96
+ [Document any technical debt, limitations, or areas for improvement]
97
+
98
+ - [Limitation 1]: [Impact and potential future solutions]
99
+ - [Limitation 2]: [Why it exists and when it might be addressed]
@@ -0,0 +1,221 @@
1
+ # Test Design Document
2
+
3
+ ## Test Strategy Overview
4
+
5
+ ### Testing Philosophy
6
+ [このフィーチャーのテスト全体方針を記述する。TDD を前提とし、品質保証の考え方を明記]
7
+
8
+ ### Test Pyramid
9
+ [UT / IT / E2E のバランスと優先順位を定義する]
10
+
11
+ | Level | 目的 | 実行タイミング | 想定件数 |
12
+ |-------|------|--------------|---------|
13
+ | Unit Test (UT) | コンポーネント単体の契約検証 | TDD RED フェーズ | [N] |
14
+ | Integration Test (IT) | コンポーネント間結合の検証 | Phase Review | [N] |
15
+ | E2E Test | ユーザージャーニーの検証 | Final E2E Gate | [N] |
16
+
17
+ ### Test Environment Requirements
18
+
19
+ - **Container Runtime:** Docker / Podman (必須)
20
+ - **テストフレームワーク:** [例: cargo test + mockall, jest + testcontainers, pytest]
21
+ - **テスト用コンテナ:**
22
+
23
+ | Service | Image | Purpose |
24
+ |---------|-------|---------|
25
+ | DB | [例: postgres:16-alpine] | テスト用 DB (testcontainers) |
26
+ | [Other] | [image] | [purpose] |
27
+
28
+ ---
29
+
30
+ ## Unit Test Specifications
31
+
32
+ ### Component: [ComponentName1]
33
+ - **Target:** [テスト対象のモジュール/ファイルパス]
34
+ - **Dependencies to Mock:** [モック対象の依存コンポーネント]
35
+
36
+ #### UT-1.1: [テストケース名]
37
+ - **Category:** Happy Path
38
+ - **Preconditions:** [事前条件]
39
+ - **Input:** [入力データ]
40
+ - **Expected Output:** [期待結果]
41
+ - **Verification:** [検証方法(assert 内容等)]
42
+
43
+ #### UT-1.2: [テストケース名]
44
+ - **Category:** Boundary Values
45
+ - **Preconditions:** [事前条件]
46
+ - **Input:** [入力データ(境界値)]
47
+ - **Expected Output:** [期待結果]
48
+ - **Verification:** [検証方法]
49
+
50
+ #### UT-1.3: [テストケース名]
51
+ - **Category:** Error Handling
52
+ - **Preconditions:** [事前条件]
53
+ - **Input:** [異常入力]
54
+ - **Expected Output:** [エラー種別・メッセージ]
55
+ - **Verification:** [検証方法]
56
+
57
+ #### UT-1.4: [テストケース名]
58
+ - **Category:** Edge Cases
59
+ - **Preconditions:** [事前条件]
60
+ - **Input:** [エッジケース入力]
61
+ - **Expected Output:** [期待結果]
62
+ - **Verification:** [検証方法]
63
+
64
+ ### Component: [ComponentName2]
65
+ - **Target:** [テスト対象のモジュール/ファイルパス]
66
+ - **Dependencies to Mock:** [モック対象の依存コンポーネント]
67
+
68
+ #### UT-2.1: [テストケース名]
69
+ - **Category:** Happy Path
70
+ - **Preconditions:** [事前条件]
71
+ - **Input:** [入力データ]
72
+ - **Expected Output:** [期待結果]
73
+ - **Verification:** [検証方法]
74
+
75
+ [必要なコンポーネント分だけ繰り返す]
76
+
77
+ ---
78
+
79
+ ## Integration Test Specifications
80
+
81
+ ### IT-1: [統合テストシナリオ名]
82
+ - **Components:** [関与するコンポーネント一覧]
83
+ - **Interaction:** [テスト対象の相互作用の説明]
84
+ - **Technology:**
85
+ - **DB:** testcontainers (PostgreSQL) | docker-compose.test.yml
86
+ - **External API:** wiremock container | trait-based DI | nock
87
+ - **Setup:** migration + seed data via container
88
+ - **Preconditions:** [事前条件(DB状態、外部サービス状態等)]
89
+ - **Steps:**
90
+ 1. [操作手順1]
91
+ 2. [操作手順2]
92
+ 3. [操作手順3]
93
+ - **Expected Result:** [期待される最終結果]
94
+ - **Verification Points:**
95
+ - [検証ポイント1: 例 — DB にレコードが挿入されていること]
96
+ - [検証ポイント2: 例 — レスポンスの HTTP ステータスが 201 であること]
97
+
98
+ ### IT-2: [統合テストシナリオ名]
99
+ - **Components:** [関与するコンポーネント一覧]
100
+ - **Interaction:** [テスト対象の相互作用の説明]
101
+ - **Technology:**
102
+ - **DB:** testcontainers (PostgreSQL) | docker-compose.test.yml
103
+ - **External API:** wiremock container | trait-based DI | nock
104
+ - **Setup:** migration + seed data via container
105
+ - **Preconditions:** [事前条件]
106
+ - **Steps:**
107
+ 1. [操作手順1]
108
+ 2. [操作手順2]
109
+ - **Expected Result:** [期待される最終結果]
110
+ - **Verification Points:**
111
+ - [検証ポイント1]
112
+ - [検証ポイント2]
113
+
114
+ [必要なシナリオ分だけ繰り返す]
115
+
116
+ ---
117
+
118
+ ## E2E Test Specifications
119
+
120
+ ### E2E-1: [ユーザージャーニー名]
121
+ - **User Story:** [対応するユーザーストーリー(REQ-N の参照)]
122
+ - **Test Type:** API E2E | Browser E2E | Full-Stack E2E
123
+ - **Technology:**
124
+ - **Runner:** Playwright | Cypress | reqwest | supertest
125
+ - **App Container:** docker-compose up で全サービス起動
126
+ - **DB Setup:** migration + seed via container
127
+ - **Browser:** Chromium | Firefox | WebKit (Browser E2E のみ)
128
+ - **Preconditions:** [システム状態の前提条件]
129
+ - **Scenario Steps:**
130
+ 1. [ユーザー操作1] → [期待されるシステム応答]
131
+ 2. [ユーザー操作2] → [期待されるシステム応答]
132
+ 3. [ユーザー操作3] → [期待されるシステム応答]
133
+ - **Success Criteria:** [最終的な成功判定条件]
134
+ - **Failure Scenarios:**
135
+ - [想定される失敗パターン1 → 期待される挙動]
136
+ - [想定される失敗パターン2 → 期待される挙動]
137
+
138
+ ### E2E-2: [ユーザージャーニー名]
139
+ - **User Story:** [対応するユーザーストーリー]
140
+ - **Test Type:** API E2E | Browser E2E | Full-Stack E2E
141
+ - **Technology:**
142
+ - **Runner:** Playwright | Cypress | reqwest | supertest
143
+ - **App Container:** docker-compose up で全サービス起動
144
+ - **DB Setup:** migration + seed via container
145
+ - **Browser:** Chromium | Firefox | WebKit (Browser E2E のみ)
146
+ - **Preconditions:** [前提条件]
147
+ - **Scenario Steps:**
148
+ 1. [操作1] → [応答]
149
+ 2. [操作2] → [応答]
150
+ - **Success Criteria:** [成功判定条件]
151
+ - **Failure Scenarios:**
152
+ - [失敗パターン → 期待される挙動]
153
+
154
+ [必要なジャーニー分だけ繰り返す]
155
+
156
+ ---
157
+
158
+ ## Requirements-Test Traceability Matrix
159
+
160
+ | Requirement ID | UT Specs | IT Specs | E2E Specs | Notes |
161
+ |---------------|----------|----------|-----------|-------|
162
+ | REQ-1 | UT-1.1, UT-1.2 | IT-1 | E2E-1 | |
163
+ | REQ-2 | UT-2.1 | IT-2 | E2E-1, E2E-2 | |
164
+ | REQ-N | | | | |
165
+
166
+ **カバレッジ基準**: 全 Requirement ID に対して、最低1つの UT と、関連する IT または E2E が紐づいていること。
167
+
168
+ ---
169
+
170
+ ## Test Data Requirements
171
+
172
+ ### Shared Test Fixtures
173
+ [テスト間で共有するテストデータの定義]
174
+
175
+ | Fixture Name | Description | Used By |
176
+ |-------------|-------------|---------|
177
+ | [fixture1] | [説明] | UT-1.1, IT-1 |
178
+ | [fixture2] | [説明] | UT-2.1, E2E-1 |
179
+
180
+ ### Test Data Generation Strategy
181
+ [テストデータの生成方針: ファクトリパターン、ビルダーパターン、フィクスチャファイル等]
182
+
183
+ - **ユニットテスト**: [例 — テスト内でインラインで生成、ビルダーパターン使用]
184
+ - **統合テスト**: [例 — testcontainers で DB コンテナ起動 + マイグレーション + シードデータ]
185
+ - **E2Eテスト**: [例 — docker-compose.test.yml で全サービス起動、API 経由でデータ投入]
186
+
187
+ ---
188
+
189
+ ## E2E Test Infrastructure
190
+
191
+ ### Project Type Detection
192
+
193
+ | 検出条件 | テストランナー | DB 戦略 |
194
+ |----------|-------------|---------|
195
+ | `Cargo.toml` + `[package.metadata.leptos]` | Playwright + reqwest | testcontainers |
196
+ | `Cargo.toml` + axum/actix-web | reqwest | testcontainers |
197
+ | `package.json` + React/Next.js | Playwright | testcontainers / docker-compose |
198
+ | `package.json` + Express/Fastify | supertest + Playwright | testcontainers |
199
+
200
+ ### Container Test Setup
201
+
202
+ - **IT (統合テスト)**: testcontainers でテストプロセス内からコンテナを起動・破棄。テストごとにクリーンな状態を保証
203
+ - **E2E**: docker-compose.test.yml で全サービスを起動後にテスト実行。終了後にコンテナ停止・クリーンアップ
204
+
205
+ ### docker-compose.test.yml
206
+ [テスト専用の compose 定義]
207
+ - ポート衝突回避: 本番用ポートからオフセット(例: 5432 → 15432)
208
+ - DB 初期化: テスト用マイグレーション + シードデータ
209
+ - ボリューム: tmpfs で永続化しない(テストごとにクリーン)
210
+
211
+ ### Test Server Setup
212
+ [テスト時のアプリケーションサーバ起動方法]
213
+ - `docker-compose -f docker-compose.test.yml up -d`
214
+ - ヘルスチェック待機後にテスト開始
215
+
216
+ ### Browser Test Configuration (フロントエンドがある場合)
217
+ [Playwright / Cypress の設定]
218
+ - **baseURL:** [例: http://localhost:13000]
219
+ - **viewport:** [例: 1280x720]
220
+ - **timeout:** [例: 30000ms]
221
+ - **screenshot:** on failure
@@ -0,0 +1,3 @@
1
+ import { PromptDefinition } from './types.js';
2
+ export declare const createSpecPrompt: PromptDefinition;
3
+ //# sourceMappingURL=create-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-spec.d.ts","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqG9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
@@ -0,0 +1,97 @@
1
+ const prompt = {
2
+ name: 'create-spec',
3
+ title: 'Create Specification Document',
4
+ description: 'Guide for creating spec documents directly in the file system. Shows how to use templates and create requirements, design, test-design, or tasks documents at the correct paths.',
5
+ arguments: [
6
+ {
7
+ name: 'specName',
8
+ description: 'Feature name in kebab-case (e.g., user-authentication, data-export)',
9
+ required: true
10
+ },
11
+ {
12
+ name: 'documentType',
13
+ description: 'Type of document to create: requirements, design, test-design, or tasks',
14
+ required: true
15
+ },
16
+ {
17
+ name: 'description',
18
+ description: 'Brief description of what this spec should accomplish',
19
+ required: false
20
+ }
21
+ ]
22
+ };
23
+ async function handler(args, context) {
24
+ const { specName, documentType, description } = args;
25
+ if (!specName || !documentType) {
26
+ throw new Error('specName and documentType are required arguments');
27
+ }
28
+ const validDocTypes = ['requirements', 'design', 'test-design', 'tasks'];
29
+ // ダッシュボードのプレビュー用サンプルコンテキストではバリデーションをスキップ
30
+ const isPreviewContext = context.projectPath === '{{projectPath}}';
31
+ if (!isPreviewContext && !validDocTypes.includes(documentType)) {
32
+ throw new Error(`documentType must be one of: ${validDocTypes.join(', ')}`);
33
+ }
34
+ // Build context-aware messages
35
+ const messages = [
36
+ {
37
+ role: 'user',
38
+ content: {
39
+ type: 'text',
40
+ text: `Create a ${documentType} document for the "${specName}" feature using the spec-workflow methodology.
41
+
42
+ **Context:**
43
+ - Project: ${context.projectPath}
44
+ - Feature: ${specName}
45
+ - Document type: ${documentType}
46
+ ${description ? `- Description: ${description}` : ''}
47
+ ${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
48
+
49
+ **Instructions:**
50
+ 1. First, read the template at: .spec-workflow/templates/${documentType}-template.md
51
+ 2. Follow the template structure exactly - this ensures consistency across the project
52
+ 3. Create comprehensive content that follows spec-driven development best practices
53
+ 4. Include all required sections from the template
54
+ 5. Use clear, actionable language
55
+ 6. Create the document at: .spec-workflow/specs/${specName}/${documentType}.md
56
+ 7. After creating, use approvals tool with action:'request' to get user approval
57
+
58
+ **File Paths:**
59
+ - Template location: .spec-workflow/templates/${documentType}-template.md
60
+ - Document destination: .spec-workflow/specs/${specName}/${documentType}.md
61
+
62
+ **Workflow Guidelines:**
63
+ - Requirements documents define WHAT needs to be built
64
+ - Design documents define HOW it will be built
65
+ - Test design documents define HOW TO TEST the feature (UT/IT/E2E specifications)
66
+ - Tasks documents break down implementation into actionable steps
67
+ - Sequence: Requirements → Design → Test Design → Tasks
68
+ - Each document builds upon the previous one in sequence
69
+ - Templates are automatically updated on server start
70
+
71
+ ${documentType === 'tasks' ? `
72
+ **Special Instructions for Tasks Document:**
73
+ - For each task, generate a _Prompt field with structured AI guidance
74
+ - Format: _Prompt: Role: [role] | Task: [description] | Restrictions: [constraints] | Success: [criteria]
75
+ - Make prompts specific to the project context and requirements
76
+ - Include _Leverage fields pointing to existing code to reuse
77
+ - Include _Requirements fields showing which requirements each task implements
78
+ - Tasks should be atomic (1-3 files each) and in logical order
79
+
80
+ **Implementation Logging:**
81
+ - When implementing tasks, developers will use the log-implementation tool to record what was done
82
+ - Implementation logs appear in the dashboard's "Logs" tab for easy reference
83
+ - These logs prevent implementation details from being lost in chat history
84
+ - Good task descriptions help developers write better implementation summaries
85
+ ` : ''}
86
+
87
+ Please read the ${documentType} template and create the comprehensive document at the specified path.`
88
+ }
89
+ }
90
+ ];
91
+ return messages;
92
+ }
93
+ export const createSpecPrompt = {
94
+ prompt,
95
+ handler
96
+ };
97
+ //# sourceMappingURL=create-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-spec.js","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,kLAAkL;IAC/L,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,qEAAqE;YAClF,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,yEAAyE;YACtF,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAErD,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IACzE,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,KAAK,iBAAiB,CAAC;IACnE,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,+BAA+B;IAC/B,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,YAAY,sBAAsB,QAAQ;;;aAGvD,OAAO,CAAC,WAAW;aACnB,QAAQ;mBACF,YAAY;EAC7B,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EAClD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;2DAGT,YAAY;;;;;kDAKrB,QAAQ,IAAI,YAAY;;;;gDAI1B,YAAY;+CACb,QAAQ,IAAI,YAAY;;;;;;;;;;;EAWrE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;CAc5B,CAAC,CAAC,CAAC,EAAE;;kBAEY,YAAY,wEAAwE;aAC/F;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM;IACN,OAAO;CACR,CAAC"}