@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,81 @@
1
+ # ホワイトボードテンプレート
2
+
3
+ Command が P1 で作成するホワイトボード。
4
+ 作成場所: `.claude/_docs/plans/integ-test-wb-{timestamp}.md`
5
+
6
+ ---
7
+
8
+ ```markdown
9
+ # Integration Test Whiteboard
10
+
11
+ ## Goal
12
+ {対象ドメインのインテグレーションテストを作成する}
13
+
14
+ ## Team Structure
15
+ | Role | Name | Assignment |
16
+ |------|------|-----------|
17
+ | Command | main | 司令塔 |
18
+ | Worker alpha | agent-alpha | {domain_a} |
19
+ | Worker bravo | agent-bravo | {domain_b} |
20
+ | Pentagon | agent-pentagon | 品質レビュー |
21
+
22
+ ## How Our Work Connects
23
+ - alpha と bravo は独立したテストファイルを担当する
24
+ - 共通ヘルパー(TestContext 等)は Command が事前に準備する
25
+ - Pentagon は各 Worker の成果物を品質ゲートで審査する
26
+
27
+ ## Key Questions
28
+ 1. {Worker 間で共有すべき問い — 例: 認証エラーのレスポンス構造は共通か?}
29
+ 2. {例: テストデータの seed パターンに共通化できる部分は?}
30
+
31
+ ## Shared Resources
32
+ - tests/integration/helpers/mod.rs — 共通ヘルパー
33
+ - tests/integration/helpers/app.rs — テスト用 Axum app 構築
34
+ - tests/integration/helpers/db.rs — testcontainers セットアップ
35
+
36
+ ## File Assignment
37
+ | Worker | File | Status |
38
+ |--------|------|--------|
39
+ | alpha | tests/integration/test_{domain_a}.rs | pending |
40
+ | bravo | tests/integration/test_{domain_b}.rs | pending |
41
+
42
+ ## Analysis Summary
43
+ ### {domain_a}
44
+ - Endpoints: {endpoint_list}
45
+ - External deps: {deps}
46
+
47
+ ### {domain_b}
48
+ - Endpoints: {endpoint_list}
49
+ - External deps: {deps}
50
+
51
+ ## Alpha Findings
52
+ (Worker alpha が記入 — Command が転記)
53
+
54
+ ## Bravo Findings
55
+ (Worker bravo が記入 — Command が転記)
56
+
57
+ ## Pentagon Reviews
58
+ | File | Cycle | Result | Notes |
59
+ |------|:-----:|:------:|-------|
60
+
61
+ ## Cross-Cutting Observations
62
+ (チーム全体で共有すべき発見)
63
+
64
+ ## Quality Gate Results
65
+ | File | Status | Reviewer |
66
+ |------|:------:|----------|
67
+ ```
68
+
69
+ ---
70
+
71
+ ## 読み書きルール
72
+
73
+ | 操作 | 誰が | いつ |
74
+ |------|------|------|
75
+ | 作成 | Command | P1 |
76
+ | Key Questions 設定 | Command | P1 |
77
+ | Analysis Summary 記入 | Command | P0 完了時 |
78
+ | Worker Findings 転記 | Command | Worker 完了時 |
79
+ | Pentagon Reviews 記入 | Command | Pentagon レビュー完了時 |
80
+ | Quality Gate Results 更新 | Command | Pentagon PASS 時 |
81
+ | 削除(`.claude/_docs/deleted/` へ移動) | Command | P5 |
@@ -0,0 +1,70 @@
1
+ # Worker プロンプトテンプレート
2
+
3
+ Worker(alpha/bravo)起動時に展開するプロンプト。
4
+ `{変数}` は Command が起動時に埋め込む。
5
+
6
+ ---
7
+
8
+ ```
9
+ あなたは integration-test Worker「{worker_name}」です。
10
+
11
+ ## 担当
12
+ - ドメイン: {domain}
13
+ - テストファイル: tests/integration/test_{domain}.rs
14
+ - 対象エンドポイント:
15
+ {endpoint_list}
16
+
17
+ ## 作業手順
18
+
19
+ ### 1. ホワイトボード読取(最重要)
20
+ {whiteboard_path} を Read し、以下を確認する:
21
+ - Key Questions(他の Worker と共有すべき問い)
22
+ - Shared Resources(共通ヘルパー、テスト用データ構造)
23
+ - 他の Worker の Findings(あれば)
24
+
25
+ ### 2. コンテキスト確認
26
+ 以下のファイルを Read して対象 API を理解する:
27
+ - src/handlers/{domain}.rs(handler 定義)
28
+ - src/db/repository/{domain}.rs(リポジトリ層)
29
+ - src/models/{domain}.rs(Diesel モデル)
30
+ - src/dto/{domain}.rs(リクエスト/レスポンス型)
31
+ - tests/integration/helpers/(共通ヘルパー)
32
+
33
+ ### 3. テストケース設計
34
+ references/test-case-design.md の 5 分類に従い、テストケースを列挙する。
35
+ 各エンドポイントに対して正常系・異常系・境界値・エッジケース・外部依存を考慮する。
36
+
37
+ ### 4. テスト実装
38
+ references/test-patterns.md のパターンに従い実装する。
39
+ - Given-When-Then 構造を守る
40
+ - TestContext を使用する
41
+ - 外部 API は trait DI でテストダブルに差し替える(references/external-api-mock.md 参照)
42
+
43
+ ### 5. 品質セルフチェック
44
+ references/quality-gate.md の全項目を自己チェックする。
45
+ Pentagon に差し戻されるとサイクルが増えるため、事前に品質を担保する。
46
+
47
+ ### 6. 完了報告
48
+
49
+ ```
50
+ [Worker {worker_name} 完了]
51
+ テストファイル: tests/integration/test_{domain}.rs
52
+ テストケース数: {count}
53
+ - 正常系: {n}
54
+ - 異常系: {n}
55
+ - 境界値: {n}
56
+ - エッジケース: {n}
57
+ - 外部依存: {n}
58
+ 実行結果: cargo test --test integration_{domain} → PASS / FAIL
59
+ 発見事項: {findings}
60
+ ```
61
+
62
+ ## 禁止事項
63
+ - tests/integration/helpers/ の共通ヘルパーを勝手に変更しない(Command に報告)
64
+ - 本番コードを変更しない
65
+ - `#[ignore]` でテストをスキップしない
66
+ - `sleep` でタイミング依存テストを書かない
67
+
68
+ ## Pentagon 差し戻し時
69
+ 差し戻しの指摘事項に従い修正する。修正後は再度セルフチェックを行い完了報告する。
70
+ ```
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: knowhow-capture
3
+ description: >
4
+ A skill for accumulating user feedback, corrections, and instructions as know-how in `.claude/_docs/know-how/`.
5
+ Provides step-by-step procedures for recording know-how (domain selection, duplicate check, file creation, INDEX update).
6
+ Triggers when the user says "remember this", "do this from now on", "remember", or "add to know-how",
7
+ or when the feedback-loop rule detects feedback and instructs a recording.
8
+ Can also be explicitly invoked with /knowhow-capture.
9
+ ---
10
+
11
+ # Know-how Capture
12
+
13
+ A skill for accumulating practical team knowledge gained through interactions with the user into `.claude/_docs/know-how/`,
14
+ so the same mistakes are not repeated in future tasks.
15
+
16
+ Personal preferences and working styles should be recorded in the built-in memory system, not here.
17
+
18
+ ## Two Recording Patterns
19
+
20
+ ### Pattern A: Explicit Recording (User-Directed)
21
+
22
+ When the user says "remember this", "add to know-how", or "do this from now on".
23
+ Record immediately without asking for confirmation.
24
+
25
+ **Trigger examples:**
26
+ - "Remember this"
27
+ - "Add this to know-how"
28
+ - "Do it this way from now on"
29
+ - "remember this"
30
+
31
+ **Behavior:** Immediately create the know-how file and update INDEX.md.
32
+
33
+ ### Pattern B: Suggested Recording (Detection + Confirmation)
34
+
35
+ The AI detects a user correction or instruction and proposes "Shall I record this as know-how?".
36
+ Record only if the user approves.
37
+
38
+ **Trigger conditions:**
39
+ - The user clearly corrected the AI's output or judgment ("That's not right, it should be...", "No, it's...")
40
+ - The user rejected the AI's approach and directed a different method
41
+ - The user shared a project-specific convention or rule
42
+ - The same type of correction was received 2 or more times within the same session
43
+
44
+ **Behavior:**
45
+ 1. Summarize the correction and present it
46
+ 2. Ask "Shall I record this knowledge as know-how?"
47
+ 3. Record if the user approves
48
+
49
+ **Suggestion format:**
50
+
51
+ ```
52
+ [know-how suggestion] The following knowledge can be recorded:
53
+ - Summary: {one-line summary of the correction}
54
+ - Domain: {testing / workflow / conventions / ...}
55
+ Shall I add this to know-how?
56
+ ```
57
+
58
+ ## Step-by-Step Recording Procedure
59
+
60
+ ### Step 1: Determine the Domain
61
+
62
+ Select a domain based on the content of the know-how.
63
+
64
+ | Domain | Content |
65
+ |--------|---------|
66
+ | testing | Knowledge about test design, structure, and execution |
67
+ | workflow | Knowledge about development flow, Git operations, CI/CD |
68
+ | conventions | Naming conventions, directory structure, code style |
69
+ | architecture | Layer structure, DI, design decisions |
70
+ | debugging | Debugging techniques, error handling, performance |
71
+
72
+ If the content does not fit an existing domain, a new domain may be created.
73
+
74
+ ### Step 2: Duplicate Check
75
+
76
+ Read `.claude/_docs/know-how/INDEX.md` and confirm that the same know-how does not already exist.
77
+ If a duplicate exists, update the existing file rather than creating a new one.
78
+
79
+ ### Step 3: Create the File
80
+
81
+ Create `.claude/_docs/know-how/{domain}/{slug}.md` using the following format:
82
+
83
+ ```markdown
84
+ ---
85
+ created: {YYYY-MM-DD}
86
+ domain: {domain}
87
+ source: user-feedback
88
+ ---
89
+
90
+ # {Title (concise)}
91
+
92
+ ## Summary
93
+
94
+ {Describe the core of the knowledge in 1-2 sentences}
95
+
96
+ ## Background
97
+
98
+ {Why this knowledge is needed, and in what situation it arose}
99
+
100
+ ## Checklist
101
+
102
+ - [ ] {Item to verify during implementation 1}
103
+ - [ ] {Item to verify during implementation 2}
104
+
105
+ ## Counter-example
106
+
107
+ {What happens if this knowledge is ignored}
108
+ ```
109
+
110
+ **Constraints:**
111
+ - Aim for 50 lines or fewer (consider splitting if longer)
112
+ - `created`, `domain`, and `source` fields in frontmatter are required
113
+
114
+ ### Step 4: Update INDEX.md
115
+
116
+ Add one row to the relevant domain table in `.claude/_docs/know-how/INDEX.md`.
117
+ If the domain section does not exist, add a new section.
118
+
119
+ ## Pattern Decision Flowchart
120
+
121
+ ```
122
+ Detect user's statement
123
+
124
+ ├─ Explicit instruction like "remember this" or "remember"?
125
+ │ └─ YES → Pattern A (record immediately)
126
+
127
+ ├─ Did the user correct or reject the AI's judgment?
128
+ │ └─ YES → Pattern B (suggest and confirm)
129
+
130
+ ├─ Did the user share a project-specific convention?
131
+ │ └─ YES → Pattern B (suggest and confirm)
132
+
133
+ └─ Same correction received 2 or more times?
134
+ └─ YES → Pattern B (suggest and confirm)
135
+ ```
136
+
137
+ ## Notes
138
+
139
+ - **Distinction from memory**: "Should teammates also know this?" → Yes = know-how, No = built-in memory
140
+ - Do not write temporary state (current branch name, tasks in progress, etc.) to know-how
141
+ - Know-how is meant for "practical knowledge"; established rules should be promoted to `.claude/rules/`
142
+ - If the user says "make it a rule", promote the know-how to a rule in `.claude/rules/`
143
+ - Staging and committing files after creation should only be done when the user explicitly requests it
@@ -0,0 +1,380 @@
1
+ ---
2
+ name: phase-review-team
3
+ description: "Phase completion expert team review. Assembles a multi-disciplinary review team to perform comprehensive code review before Phase commit. Each expert independently analyzes the code from their specialty perspective, then a leader consolidates findings into a prioritized final report saved to file. Triggers on: Phase review tasks (_PhaseReview: true) in spec-implement workflow, or explicit '/phase-review-team' invocation."
4
+ ---
5
+
6
+ # Phase Review — Expert Team Review
7
+
8
+ Phase 完了時にコミット前に実施する、専門家チームによる多角的コードレビュー。
9
+
10
+ ## Overview
11
+
12
+ 各 Phase の成果物に対して、5 名の専門家が独立して調査を行い、具体的な問題箇所と改善案を報告する。リーダーは各報告を統合し、優先度付きの最終レポートを作成してファイルに保存する。
13
+
14
+ ## Inputs
15
+
16
+ - **spec-name**: スペック名(kebab-case)
17
+ - **phase-number**: 対象 Phase 番号
18
+ - **changed-files**: Phase で変更されたファイル一覧
19
+ - **project-path**: プロジェクトルートパス
20
+ - **integration-verification**: 統合検証結果(3.5.1.5 で取得。各ステップの PASS/FAIL/SKIP と詳細)
21
+
22
+ ## Expert Team Composition
23
+
24
+ | Role | Perspective |
25
+ |------|-------------|
26
+ | **実装担当** | 仕様書にある機能を網羅しているか、仕様を逸脱していないか |
27
+ | **セキュリティ担当1** | 認証、認可、データ漏洩 |
28
+ | **セキュリティ担当2** | OWASP TOP 10、最新の CVE |
29
+ | **パフォーマンス担当** | ボトルネック、計算量、リソース効率 |
30
+ | **品質・保守性担当** | テストカバレッジ、読みやすさ、命名規則、DRY 原則 |
31
+
32
+ ## Execution Steps
33
+
34
+ ### 1. Assemble and Dispatch (Parallel)
35
+
36
+ 5 名の専門家を **並列** で起動する。各専門家は Agent tool で起動し、独立して調査・報告を行う。
37
+
38
+ ```javascript
39
+ // 実装担当
40
+ Agent({
41
+ subagent_type: "general-purpose",
42
+ description: "Phase review: spec compliance",
43
+ prompt: `あなたは実装レビューの専門家です。Phase {phase-number} で変更されたコードを、仕様書の観点からレビューしてください。
44
+
45
+ プロジェクトパス: {project-path}
46
+ スペック名: {spec-name}
47
+ 変更ファイル: {changed-files}
48
+
49
+ 統合検証結果:
50
+ - ビルド: {integration-verification.build}
51
+ - 統合テスト: {integration-verification.integration-tests}
52
+ - スモークテスト: {integration-verification.smoke-test}
53
+
54
+ レビュー観点:
55
+ - 仕様書(requirements.md, design.md)にある機能をすべて網羅しているか
56
+ - 仕様を逸脱した実装がないか
57
+ - design.md のAPI定義(パス、メソッド、リクエスト/レスポンス型)との整合性
58
+ - tasks.md の各タスクの Success 基準がすべて満たされているか
59
+
60
+ 参照ファイル:
61
+ - {project-path}/.spec-workflow/specs/{spec-name}/requirements.md
62
+ - {project-path}/.spec-workflow/specs/{spec-name}/design.md
63
+ - {project-path}/.spec-workflow/specs/{spec-name}/tasks.md
64
+
65
+ レポート形式:
66
+ ## 実装担当レビュー
67
+ ### 発見事項
68
+ 各発見事項について以下を記載:
69
+ - ファイル: (パスと行番号)
70
+ - 深刻度: Critical / Major / Minor
71
+ - 問題: (具体的な説明)
72
+ - 改善案: (具体的な修正方法)
73
+ ### 総合評価
74
+ - 仕様カバレッジ: X/Y (実装済み/仕様数)
75
+ - 仕様逸脱: あり/なし`
76
+ })
77
+
78
+ // セキュリティ担当1
79
+ Agent({
80
+ subagent_type: "general-purpose",
81
+ description: "Phase review: auth & data security",
82
+ prompt: `あなたはセキュリティレビューの専門家(認証・認可・データ保護)です。Phase {phase-number} で変更されたコードをレビューしてください。
83
+
84
+ プロジェクトパス: {project-path}
85
+ 変更ファイル: {changed-files}
86
+
87
+ 統合検証結果:
88
+ - ビルド: {integration-verification.build}
89
+ - 統合テスト: {integration-verification.integration-tests}
90
+ - スモークテスト: {integration-verification.smoke-test}
91
+
92
+ ★重要: 最新のセキュリティ情報に基づいてレビューすること★
93
+ レビュー開始前に、以下の情報を取得してください:
94
+
95
+ 【WebSearch が利用可能な場合】
96
+ 1. 使用しているフレームワーク・ライブラリの最新セキュリティアドバイザリ
97
+ - 検索例: "{framework名} security advisory {current year}"
98
+ - 検索例: "{framework名} CVE {current year}"
99
+ 2. 認証・認可に関する最新のベストプラクティス
100
+ - 検索例: "authentication best practices {current year}"
101
+ - 検索例: "JWT security vulnerabilities {current year}"
102
+
103
+ 【WebSearch が利用できない場合のオフラインフォールバック】
104
+ 1. `cargo audit` を実行して既知の脆弱性を検出(RustSec Advisory DB ベース)
105
+ 2. Cargo.toml の依存クレートバージョンを確認し、明らかに古いバージョンを検出
106
+ 3. 自身の学習データに基づくセキュリティベストプラクティスでレビュー
107
+ 4. レポートに「オフラインレビュー: WebSearch 未使用」と明記
108
+
109
+ 取得した情報をレビューの判断基準に反映させること。
110
+
111
+ レビュー観点:
112
+ - 認証: 認証が必要なエンドポイントにミドルウェアが適用されているか、トークン生成・検証は安全か
113
+ - 認可: リソースへのアクセス制御、権限チェックの欠落、IDOR 脆弱性
114
+ - データ漏洩: レスポンスにパスワードハッシュ・内部ID・スタックトレースが含まれていないか、ログへの機密情報出力
115
+ - セッション管理: セッション固定、セッションハイジャック対策
116
+ - 暗号: 適切なハッシュアルゴリズム、ソルトの使用、鍵管理
117
+
118
+ レポート形式:
119
+ ## セキュリティレビュー(認証・認可・データ保護)
120
+ ### 参照した最新セキュリティ情報
121
+ - (WebSearch で取得した情報のサマリとソース URL)
122
+ ### 発見事項
123
+ 各発見事項について以下を記載:
124
+ - ファイル: (パスと行番号)
125
+ - 深刻度: Critical / Major / Minor
126
+ - カテゴリ: 認証 / 認可 / データ漏洩 / セッション / 暗号
127
+ - 根拠: (最新のベストプラクティスや Advisory との照合結果)
128
+ - 問題: (具体的な説明)
129
+ - 改善案: (具体的な修正方法)
130
+ ### 総合評価`
131
+ })
132
+
133
+ // セキュリティ担当2
134
+ Agent({
135
+ subagent_type: "general-purpose",
136
+ description: "Phase review: OWASP & CVE",
137
+ prompt: `あなたはセキュリティレビューの専門家(OWASP・脆弱性)です。Phase {phase-number} で変更されたコードをレビューしてください。
138
+
139
+ プロジェクトパス: {project-path}
140
+ 変更ファイル: {changed-files}
141
+
142
+ 統合検証結果:
143
+ - ビルド: {integration-verification.build}
144
+ - 統合テスト: {integration-verification.integration-tests}
145
+ - スモークテスト: {integration-verification.smoke-test}
146
+
147
+ ★重要: 最新の脆弱性情報に基づいてレビューすること★
148
+ レビュー開始前に、以下の手順を実行してください:
149
+
150
+ 手順1: プロジェクトの依存クレートを特定
151
+ - Cargo.toml を読み、依存クレート名とバージョンを一覧化する
152
+
153
+ 手順2: 依存クレートの脆弱性を確認
154
+ 【WebSearch が利用可能な場合】
155
+ - 各クレートの最新 CVE を検索:
156
+ - 検索例: "{crate名} CVE" (例: "axum CVE", "diesel CVE", "tokio CVE")
157
+ - 検索例: "{crate名} security advisory {current year}"
158
+ - 検索例: "RustSec advisory {crate名}"
159
+ - RustSec Advisory Database (https://rustsec.org/advisories/) も参照
160
+ - 見つかった CVE について、使用中のバージョンが影響を受けるか確認
161
+ 【WebSearch が利用できない場合のオフラインフォールバック】
162
+ - `cargo audit` を実行して RustSec Advisory DB から既知の脆弱性を検出
163
+ - Cargo.toml のバージョンを確認し、明らかに古いバージョンをフラグ
164
+ - レポートに「オフラインレビュー: WebSearch 未使用、cargo audit ベース」と明記
165
+
166
+ 手順3: OWASP の最新動向を確認
167
+ 【WebSearch が利用可能な場合】
168
+ - 検索例: "OWASP TOP 10 latest update"
169
+ - 検索例: "OWASP {使用フレームワーク} cheat sheet"
170
+ 【WebSearch が利用できない場合】
171
+ - 自身の学習データに基づく OWASP TOP 10 知識でレビュー
172
+
173
+ 手順4: 上記の情報を踏まえてコードをレビュー
174
+
175
+ レビュー観点:
176
+ OWASP TOP 10 の各項目について確認:
177
+ - A01: アクセス制御の不備
178
+ - A02: 暗号化の失敗
179
+ - A03: インジェクション(SQL, コマンド, XSS)
180
+ - A04: 安全でない設計
181
+ - A05: セキュリティ設定の不備
182
+ - A06: 脆弱で古くなったコンポーネント
183
+ - A07: 識別と認証の失敗
184
+ - A08: ソフトウェアとデータの整合性の不備
185
+ - A09: セキュリティログとモニタリングの不備
186
+ - A10: サーバーサイドリクエストフォージェリ (SSRF)
187
+
188
+ 追加確認:
189
+ - 手順2 で発見した CVE に該当する使用箇所がないか
190
+ - cargo audit 相当のチェック(既知の脆弱性を持つバージョンを使用していないか)
191
+ - 入力バリデーションの漏れ
192
+ - エラーメッセージによる情報漏洩
193
+
194
+ レポート形式:
195
+ ## セキュリティレビュー(OWASP・CVE)
196
+ ### 検索した脆弱性情報
197
+ - (依存クレートごとに検索結果をサマリ、ソース URL を記載)
198
+ - (該当 CVE があればCVE番号、影響バージョン、対処状況を記載)
199
+ ### 発見事項
200
+ 各発見事項について以下を記載:
201
+ - ファイル: (パスと行番号)
202
+ - 深刻度: Critical / Major / Minor
203
+ - OWASP カテゴリ: A01-A10 / CVE番号
204
+ - 根拠: (検索で見つけた CVE/Advisory への参照)
205
+ - 問題: (具体的な説明)
206
+ - 改善案: (具体的な修正方法、パッチバージョンがあればそのバージョン番号)
207
+ ### 総合評価`
208
+ })
209
+
210
+ // パフォーマンス担当
211
+ Agent({
212
+ subagent_type: "general-purpose",
213
+ description: "Phase review: performance",
214
+ prompt: `あなたはパフォーマンスレビューの専門家です。Phase {phase-number} で変更されたコードをレビューしてください。
215
+
216
+ プロジェクトパス: {project-path}
217
+ 変更ファイル: {changed-files}
218
+
219
+ 統合検証結果:
220
+ - ビルド: {integration-verification.build}
221
+ - 統合テスト: {integration-verification.integration-tests}
222
+ - スモークテスト: {integration-verification.smoke-test}
223
+
224
+ レビュー観点:
225
+ - ボトルネック: N+1 クエリ、不要なループ内 DB アクセス、ブロッキング I/O
226
+ - 計算量: O(n²) 以上のアルゴリズムがないか、大量データでの挙動
227
+ - リソース効率: 不要な clone()、メモリ割り当ての最適化、コネクションプール活用
228
+ - 非同期処理: async/await の適切な使用、不要な .await の連鎖
229
+ - キャッシュ: キャッシュすべきデータがキャッシュされているか、キャッシュ無効化戦略
230
+ - DB: インデックスの活用、クエリ最適化、不要なカラムの SELECT
231
+
232
+ レポート形式:
233
+ ## パフォーマンスレビュー
234
+ ### 発見事項
235
+ 各発見事項について以下を記載:
236
+ - ファイル: (パスと行番号)
237
+ - 深刻度: Critical / Major / Minor
238
+ - カテゴリ: ボトルネック / 計算量 / リソース / 非同期 / キャッシュ / DB
239
+ - 影響: (推定されるパフォーマンス影響)
240
+ - 改善案: (具体的な修正方法)
241
+ ### 総合評価`
242
+ })
243
+
244
+ // 品質・保守性担当
245
+ Agent({
246
+ subagent_type: "general-purpose",
247
+ description: "Phase review: quality & maintainability",
248
+ prompt: `あなたは品質・保守性レビューの専門家です。Phase {phase-number} で変更されたコードをレビューしてください。
249
+
250
+ プロジェクトパス: {project-path}
251
+ 変更ファイル: {changed-files}
252
+
253
+ 統合検証結果:
254
+ - ビルド: {integration-verification.build}
255
+ - 統合テスト: {integration-verification.integration-tests}
256
+ - スモークテスト: {integration-verification.smoke-test}
257
+
258
+ レビュー観点:
259
+ - テストカバレッジ: 新規コードに対するテストの網羅性、ハッピーパス・異常系・境界値
260
+ - test-design.md 準拠: test-design.md が存在する場合、該当 Phase のコンポーネントに対する UT 仕様が実装されているか検証する。IT 仕様に定義されたシナリオが統合テストで網羅されているか確認する
261
+ - 統合テストカバレッジ: Phase の主要機能に対する統合テストが存在するか。統合検証で SKIP された場合、統合テストの追加が必要か評価する
262
+ - テスト粒度バランス: ユニットテストと統合テストの棲み分けが適切か。ユニットテストのみで統合テストが皆無の場合は指摘する
263
+ - TDD 遵守: テストが実装を駆動しているか(形骸化の兆候がないか)
264
+ - is_ok()/is_some() だけのアサーション → 形骸化
265
+ - ハッピーパスのみ → 不十分
266
+ - 実装の内部構造に依存したテスト → 設計品質の問題
267
+ - 読みやすさ: 関数の長さ、ネストの深さ、コメントの適切さ
268
+ - 命名規則: 型・関数・変数の命名がプロジェクト規約に沿っているか、意図が明確か
269
+ - DRY 原則: 重複コード、共通化すべきロジック
270
+ - SOLID 原則: 単一責任、依存性逆転、インターフェース分離
271
+ - エラーハンドリング: 統一されたエラー型、unwrap() の不適切な使用
272
+
273
+ レポート形式:
274
+ ## 品質・保守性レビュー
275
+ ### 発見事項
276
+ 各発見事項について以下を記載:
277
+ - ファイル: (パスと行番号)
278
+ - 深刻度: Critical / Major / Minor
279
+ - カテゴリ: テスト / TDD / 可読性 / 命名 / DRY / SOLID / エラー処理
280
+ - 問題: (具体的な説明)
281
+ - 改善案: (具体的な修正方法)
282
+ ### 総合評価`
283
+ })
284
+ ```
285
+
286
+ ### 2. Consolidate (Leader)
287
+
288
+ 全専門家のレポートが返ってきたら、リーダー(オーケストレーター自身)が統合する。
289
+
290
+ #### 2.1 統合レポートの作成
291
+
292
+ 全発見事項を以下の優先度で分類:
293
+
294
+ | Priority | Criteria | Action |
295
+ |----------|----------|--------|
296
+ | **P0 — Blocker** | Critical なセキュリティ脆弱性、仕様の重大な逸脱 | コミット不可。即座に修正が必要 |
297
+ | **P1 — Must Fix** | Major な問題(セキュリティ、設計、仕様準拠) | コミット前に修正が必要 |
298
+ | **P2 — Should Fix** | Minor な問題(パフォーマンス改善、コード品質向上) | このPhaseで修正推奨。次Phase送りも可 |
299
+ | **P3 — Nice to Have** | 提案レベル(命名改善、コメント追加等) | 改善推奨だがブロッカーではない |
300
+
301
+ #### 2.2 レポートファイルの保存
302
+
303
+ ```
304
+ .spec-workflow/specs/{spec-name}/reviews/phase-{phase-number}-review.md
305
+ ```
306
+
307
+ レポートフォーマット:
308
+
309
+ ```markdown
310
+ # Phase {phase-number} Expert Team Review
311
+
312
+ **Date**: {date}
313
+ **Spec**: {spec-name}
314
+ **Phase**: {phase-number}
315
+ **Reviewers**: 実装担当, セキュリティ担当1, セキュリティ担当2, パフォーマンス担当, 品質・保守性担当
316
+
317
+ ## Summary
318
+
319
+ | Priority | Count | Action Required |
320
+ |----------|-------|-----------------|
321
+ | P0 — Blocker | {n} | Must fix before commit |
322
+ | P1 — Must Fix | {n} | Must fix before commit |
323
+ | P2 — Should Fix | {n} | Fix recommended |
324
+ | P3 — Nice to Have | {n} | Optional |
325
+
326
+ ## Verdict: {PASS / NEEDS_REWORK / BLOCK}
327
+
328
+ {1-2 sentence summary of overall assessment}
329
+
330
+ ---
331
+
332
+ ## P0 — Blocker
333
+
334
+ {findings sorted by priority, each with file, line, reviewer, problem, and suggested fix}
335
+
336
+ ## P1 — Must Fix
337
+
338
+ {...}
339
+
340
+ ## P2 — Should Fix
341
+
342
+ {...}
343
+
344
+ ## P3 — Nice to Have
345
+
346
+ {...}
347
+
348
+ ---
349
+
350
+ ## Individual Reports
351
+
352
+ ### 実装担当
353
+ {full report}
354
+
355
+ ### セキュリティ担当1(認証・認可・データ保護)
356
+ {full report}
357
+
358
+ ### セキュリティ担当2(OWASP・CVE)
359
+ {full report}
360
+
361
+ ### パフォーマンス担当
362
+ {full report}
363
+
364
+ ### 品質・保守性担当
365
+ {full report}
366
+ ```
367
+
368
+ ### 3. Verdict and Action
369
+
370
+ | Verdict | Condition | Action |
371
+ |---------|-----------|--------|
372
+ | **PASS** | P0 = 0, P1 = 0 | review-worker にコミットを委譲 |
373
+ | **NEEDS_REWORK** | P0 = 0, P1 > 0 | P1 の発見事項を parallel-worker に差し戻し。修正後に再度チームレビュー |
374
+ | **BLOCK** | P0 > 0 | ユーザーにエスカレート。Critical なセキュリティ問題や仕様の根本的な逸脱 |
375
+
376
+ ### 4. Re-review Policy
377
+
378
+ - NEEDS_REWORK 後の再レビューは **変更された箇所のみ** を対象とする(全体の再レビューは不要)
379
+ - 再レビューは最大 2 回まで。解消しない場合はユーザーにエスカレート
380
+ - PASS 後は review-worker の通常フロー(コミット)に進む