@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.
- package/.claude-plugin/.mcp.json +8 -0
- package/.claude-plugin/agents/code-simplifier.md +80 -0
- package/.claude-plugin/agents/integ-test-auditor.md +91 -0
- package/.claude-plugin/agents/integ-test-worker.md +73 -0
- package/.claude-plugin/agents/parallel-worker.md +136 -0
- package/.claude-plugin/agents/review-worker.md +279 -0
- package/.claude-plugin/agents/unit-test-engineer.md +148 -0
- package/.claude-plugin/agents/wave-harness-worker.md +158 -0
- package/.claude-plugin/hooks/hooks.json +16 -0
- package/.claude-plugin/hooks/tasks-read-guard.sh +17 -0
- package/.claude-plugin/marketplace.json +33 -0
- package/.claude-plugin/plugin.json +11 -0
- package/.claude-plugin/rules/axum.md +154 -0
- package/.claude-plugin/rules/cargo-toml.md +63 -0
- package/.claude-plugin/rules/context7.md +17 -0
- package/.claude-plugin/rules/design-conformance.md +82 -0
- package/.claude-plugin/rules/design-principles.md +53 -0
- package/.claude-plugin/rules/diesel.md +176 -0
- package/.claude-plugin/rules/feedback-loop.md +33 -0
- package/.claude-plugin/rules/leptos.md +319 -0
- package/.claude-plugin/rules/project-architecture.md +134 -0
- package/.claude-plugin/rules/quality-checks.md +265 -0
- package/.claude-plugin/rules/rust-style.md +242 -0
- package/.claude-plugin/rules/security.md +67 -0
- package/.claude-plugin/rules/spec-workflow-enforcement.md +47 -0
- package/.claude-plugin/rules/valkey.md +167 -0
- package/.claude-plugin/skills/integration-test/SKILL.md +230 -0
- package/.claude-plugin/skills/integration-test/references/auditor-prompt.md +78 -0
- package/.claude-plugin/skills/integration-test/references/external-api-mock.md +98 -0
- package/.claude-plugin/skills/integration-test/references/fixture-catalog.md +155 -0
- package/.claude-plugin/skills/integration-test/references/parallel-execution.md +124 -0
- package/.claude-plugin/skills/integration-test/references/quality-gate.md +80 -0
- package/.claude-plugin/skills/integration-test/references/test-case-design.md +88 -0
- package/.claude-plugin/skills/integration-test/references/test-patterns.md +215 -0
- package/.claude-plugin/skills/integration-test/references/whiteboard-template.md +81 -0
- package/.claude-plugin/skills/integration-test/references/worker-prompt.md +70 -0
- package/.claude-plugin/skills/knowhow-capture/SKILL.md +143 -0
- package/.claude-plugin/skills/phase-review-team/SKILL.md +380 -0
- package/.claude-plugin/skills/spec-design/SKILL.md +282 -0
- package/.claude-plugin/skills/spec-e2e-implement/SKILL.md +259 -0
- package/.claude-plugin/skills/spec-impl-code/SKILL.md +101 -0
- package/.claude-plugin/skills/spec-impl-review/SKILL.md +115 -0
- package/.claude-plugin/skills/spec-impl-test-run/SKILL.md +98 -0
- package/.claude-plugin/skills/spec-impl-test-write/SKILL.md +121 -0
- package/.claude-plugin/skills/spec-implement/SKILL.md +822 -0
- package/.claude-plugin/skills/spec-requirements/SKILL.md +130 -0
- package/.claude-plugin/skills/spec-review/SKILL.md +274 -0
- package/.claude-plugin/skills/spec-tasks/SKILL.md +372 -0
- package/.claude-plugin/skills/spec-test-design/SKILL.md +233 -0
- package/.claude-plugin/skills/tdd-skills/SKILL.md +95 -0
- package/.claude-plugin/skills/tdd-skills/references/advanced-techniques.md +49 -0
- package/.claude-plugin/skills/tdd-skills/references/green-strategies.md +70 -0
- package/.claude-plugin/skills/tdd-skills/references/tdd-and-design.md +48 -0
- package/.claude-plugin/skills/tdd-skills/references/test-design.md +43 -0
- package/.claude-plugin/skills/tdd-skills/references/test-doubles.md +53 -0
- package/.claude-plugin/skills/tdd-skills/references/test-patterns.md +40 -0
- package/.claude-plugin/skills/tdd-skills-rust/SKILL.md +128 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/advanced-techniques.md +205 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/green-strategies.md +166 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/tdd-and-design.md +215 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-design.md +128 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-doubles.md +208 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-patterns.md +223 -0
- package/.claude-plugin/with-dashboard/.mcp.json +8 -0
- package/.claude-plugin/with-dashboard/plugin.json +10 -0
- package/CHANGELOG.md +1007 -0
- package/LICENSE +674 -0
- package/README.ja.md +380 -0
- package/README.md +437 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +264 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/index-args.test.d.ts +2 -0
- package/dist/__tests__/index-args.test.d.ts.map +1 -0
- package/dist/__tests__/index-args.test.js +43 -0
- package/dist/__tests__/index-args.test.js.map +1 -0
- package/dist/__tests__/index-entrypoint.test.d.ts +2 -0
- package/dist/__tests__/index-entrypoint.test.d.ts.map +1 -0
- package/dist/__tests__/index-entrypoint.test.js +23 -0
- package/dist/__tests__/index-entrypoint.test.js.map +1 -0
- package/dist/config.d.ts +26 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +188 -0
- package/dist/config.js.map +1 -0
- package/dist/core/__tests__/git-utils.test.d.ts +2 -0
- package/dist/core/__tests__/git-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/git-utils.test.js +179 -0
- package/dist/core/__tests__/git-utils.test.js.map +1 -0
- package/dist/core/__tests__/mdx-validator.test.d.ts +2 -0
- package/dist/core/__tests__/mdx-validator.test.d.ts.map +1 -0
- package/dist/core/__tests__/mdx-validator.test.js +42 -0
- package/dist/core/__tests__/mdx-validator.test.js.map +1 -0
- package/dist/core/__tests__/path-utils.test.d.ts +2 -0
- package/dist/core/__tests__/path-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/path-utils.test.js +342 -0
- package/dist/core/__tests__/path-utils.test.js.map +1 -0
- package/dist/core/__tests__/project-registry.test.d.ts +2 -0
- package/dist/core/__tests__/project-registry.test.d.ts.map +1 -0
- package/dist/core/__tests__/project-registry.test.js +62 -0
- package/dist/core/__tests__/project-registry.test.js.map +1 -0
- package/dist/core/__tests__/security-utils.test.d.ts +2 -0
- package/dist/core/__tests__/security-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/security-utils.test.js +657 -0
- package/dist/core/__tests__/security-utils.test.js.map +1 -0
- package/dist/core/__tests__/task-parser.test.d.ts +2 -0
- package/dist/core/__tests__/task-parser.test.d.ts.map +1 -0
- package/dist/core/__tests__/task-parser.test.js +222 -0
- package/dist/core/__tests__/task-parser.test.js.map +1 -0
- package/dist/core/__tests__/task-validator.test.d.ts +2 -0
- package/dist/core/__tests__/task-validator.test.d.ts.map +1 -0
- package/dist/core/__tests__/task-validator.test.js +308 -0
- package/dist/core/__tests__/task-validator.test.js.map +1 -0
- package/dist/core/archive-service.d.ts +10 -0
- package/dist/core/archive-service.d.ts.map +1 -0
- package/dist/core/archive-service.js +99 -0
- package/dist/core/archive-service.js.map +1 -0
- package/dist/core/dashboard-session.d.ts +49 -0
- package/dist/core/dashboard-session.d.ts.map +1 -0
- package/dist/core/dashboard-session.js +132 -0
- package/dist/core/dashboard-session.js.map +1 -0
- package/dist/core/git-utils.d.ts +25 -0
- package/dist/core/git-utils.d.ts.map +1 -0
- package/dist/core/git-utils.js +87 -0
- package/dist/core/git-utils.js.map +1 -0
- package/dist/core/global-dir.d.ts +44 -0
- package/dist/core/global-dir.d.ts.map +1 -0
- package/dist/core/global-dir.js +74 -0
- package/dist/core/global-dir.js.map +1 -0
- package/dist/core/implementation-log-migrator.d.ts +41 -0
- package/dist/core/implementation-log-migrator.d.ts.map +1 -0
- package/dist/core/implementation-log-migrator.js +258 -0
- package/dist/core/implementation-log-migrator.js.map +1 -0
- package/dist/core/mdx-validator.d.ts +14 -0
- package/dist/core/mdx-validator.d.ts.map +1 -0
- package/dist/core/mdx-validator.js +34 -0
- package/dist/core/mdx-validator.js.map +1 -0
- package/dist/core/parser.d.ts +11 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +128 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/path-utils.d.ts +68 -0
- package/dist/core/path-utils.d.ts.map +1 -0
- package/dist/core/path-utils.js +302 -0
- package/dist/core/path-utils.js.map +1 -0
- package/dist/core/project-registry.d.ts +94 -0
- package/dist/core/project-registry.d.ts.map +1 -0
- package/dist/core/project-registry.js +297 -0
- package/dist/core/project-registry.js.map +1 -0
- package/dist/core/security-utils.d.ts +99 -0
- package/dist/core/security-utils.d.ts.map +1 -0
- package/dist/core/security-utils.js +275 -0
- package/dist/core/security-utils.js.map +1 -0
- package/dist/core/task-parser.d.ts +90 -0
- package/dist/core/task-parser.d.ts.map +1 -0
- package/dist/core/task-parser.js +477 -0
- package/dist/core/task-parser.js.map +1 -0
- package/dist/core/task-validator.d.ts +37 -0
- package/dist/core/task-validator.d.ts.map +1 -0
- package/dist/core/task-validator.js +499 -0
- package/dist/core/task-validator.js.map +1 -0
- package/dist/core/workspace-initializer.d.ts +16 -0
- package/dist/core/workspace-initializer.d.ts.map +1 -0
- package/dist/core/workspace-initializer.js +168 -0
- package/dist/core/workspace-initializer.js.map +1 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts +2 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js +78 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js.map +1 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts +2 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.js +115 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.js.map +1 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts +2 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.js +118 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.js.map +1 -0
- package/dist/dashboard/approval-storage.d.ts +139 -0
- package/dist/dashboard/approval-storage.d.ts.map +1 -0
- package/dist/dashboard/approval-storage.js +608 -0
- package/dist/dashboard/approval-storage.js.map +1 -0
- package/dist/dashboard/execution-history-manager.d.ts +52 -0
- package/dist/dashboard/execution-history-manager.d.ts.map +1 -0
- package/dist/dashboard/execution-history-manager.js +161 -0
- package/dist/dashboard/execution-history-manager.js.map +1 -0
- package/dist/dashboard/implementation-log-manager.d.ts +97 -0
- package/dist/dashboard/implementation-log-manager.d.ts.map +1 -0
- package/dist/dashboard/implementation-log-manager.js +617 -0
- package/dist/dashboard/implementation-log-manager.js.map +1 -0
- package/dist/dashboard/job-scheduler.d.ts +91 -0
- package/dist/dashboard/job-scheduler.d.ts.map +1 -0
- package/dist/dashboard/job-scheduler.js +321 -0
- package/dist/dashboard/job-scheduler.js.map +1 -0
- package/dist/dashboard/multi-server.d.ts +42 -0
- package/dist/dashboard/multi-server.d.ts.map +1 -0
- package/dist/dashboard/multi-server.js +1460 -0
- package/dist/dashboard/multi-server.js.map +1 -0
- package/dist/dashboard/parser.d.ts +18 -0
- package/dist/dashboard/parser.d.ts.map +1 -0
- package/dist/dashboard/parser.js +269 -0
- package/dist/dashboard/parser.js.map +1 -0
- package/dist/dashboard/project-manager.d.ts +82 -0
- package/dist/dashboard/project-manager.d.ts.map +1 -0
- package/dist/dashboard/project-manager.js +257 -0
- package/dist/dashboard/project-manager.js.map +1 -0
- package/dist/dashboard/public/assets/Inter-Bold-CD3Pr7BX.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-Medium-B_8v_WHh.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-Regular-DRVdRqcI.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-SemiBold-CtskMddL.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Bold-D4WEaHbo.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Medium-3S3k2nMz.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Regular-BQaDgvhP.woff2 +0 -0
- package/dist/dashboard/public/assets/Tableau10-B-NsZVaP.js +1 -0
- package/dist/dashboard/public/assets/apl-B4CMkyY2.js +1 -0
- package/dist/dashboard/public/assets/arc-a5wW942W.js +1 -0
- package/dist/dashboard/public/assets/array-BKyUJesY.js +1 -0
- package/dist/dashboard/public/assets/asciiarmor-Df11BRmG.js +1 -0
- package/dist/dashboard/public/assets/asn1-EdZsLKOL.js +1 -0
- package/dist/dashboard/public/assets/asterisk-B-8jnY81.js +1 -0
- package/dist/dashboard/public/assets/blockDiagram-c4efeb88-CvjTuK-w.js +118 -0
- package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/dist/dashboard/public/assets/c4Diagram-c83219d4-NwVQo5kf.js +10 -0
- package/dist/dashboard/public/assets/channel-Bi16YZhk.js +1 -0
- package/dist/dashboard/public/assets/classDiagram-beda092f-BmSeXDdU.js +2 -0
- package/dist/dashboard/public/assets/classDiagram-v2-2358418a-D7GvvuPr.js +2 -0
- package/dist/dashboard/public/assets/clike-B9uivgTg.js +1 -0
- package/dist/dashboard/public/assets/clojure-BMjYHr_A.js +1 -0
- package/dist/dashboard/public/assets/clone-BpKTiq7P.js +1 -0
- package/dist/dashboard/public/assets/cmake-BQqOBYOt.js +1 -0
- package/dist/dashboard/public/assets/cobol-CWcv1MsR.js +1 -0
- package/dist/dashboard/public/assets/coffeescript-S37ZYGWr.js +1 -0
- package/dist/dashboard/public/assets/commonlisp-DBKNyK5s.js +1 -0
- package/dist/dashboard/public/assets/createText-1719965b-qASbqHUP.js +7 -0
- package/dist/dashboard/public/assets/crystal-SjHAIU92.js +1 -0
- package/dist/dashboard/public/assets/css-BnMrqG3P.js +1 -0
- package/dist/dashboard/public/assets/cypher-C_CwsFkJ.js +1 -0
- package/dist/dashboard/public/assets/d-pRatUO7H.js +1 -0
- package/dist/dashboard/public/assets/diff-DbItnlRl.js +1 -0
- package/dist/dashboard/public/assets/dockerfile-BKs6k2Af.js +1 -0
- package/dist/dashboard/public/assets/dtd-DF_7sFjM.js +1 -0
- package/dist/dashboard/public/assets/dylan-DwRh75JA.js +1 -0
- package/dist/dashboard/public/assets/ebnf-CDyGwa7X.js +1 -0
- package/dist/dashboard/public/assets/ecl-Cabwm37j.js +1 -0
- package/dist/dashboard/public/assets/edges-96097737-BItTSnH7.js +4 -0
- package/dist/dashboard/public/assets/eiffel-CnydiIhH.js +1 -0
- package/dist/dashboard/public/assets/elm-vLlmbW-K.js +1 -0
- package/dist/dashboard/public/assets/erDiagram-0228fc6a-DT224olg.js +51 -0
- package/dist/dashboard/public/assets/erlang-BNw1qcRV.js +1 -0
- package/dist/dashboard/public/assets/factor-kuTfRLto.js +1 -0
- package/dist/dashboard/public/assets/fcl-Kvtd6kyn.js +1 -0
- package/dist/dashboard/public/assets/flowDb-c6c81e3f-D9_ukKtv.js +10 -0
- package/dist/dashboard/public/assets/flowDiagram-50d868cf-CylE8siG.js +4 -0
- package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-B2O3JN7Y.js +1 -0
- package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-BCaqFKf3.js +139 -0
- package/dist/dashboard/public/assets/forth-Ffai-XNe.js +1 -0
- package/dist/dashboard/public/assets/fortran-DYz_wnZ1.js +1 -0
- package/dist/dashboard/public/assets/ganttDiagram-a2739b55-WQUL1QW_.js +257 -0
- package/dist/dashboard/public/assets/gas-Bneqetm1.js +1 -0
- package/dist/dashboard/public/assets/gherkin-heZmZLOM.js +1 -0
- package/dist/dashboard/public/assets/gitGraphDiagram-82fe8481-CttZrdmr.js +70 -0
- package/dist/dashboard/public/assets/graph-Ch-rVueN.js +1 -0
- package/dist/dashboard/public/assets/groovy-D9Dt4D0W.js +1 -0
- package/dist/dashboard/public/assets/haskell-Cw1EW3IL.js +1 -0
- package/dist/dashboard/public/assets/haxe-H-WmDvRZ.js +1 -0
- package/dist/dashboard/public/assets/http-DBlCnlav.js +1 -0
- package/dist/dashboard/public/assets/idl-BEugSyMb.js +1 -0
- package/dist/dashboard/public/assets/index--kbPpDKv.js +1 -0
- package/dist/dashboard/public/assets/index-3scDwWm6.js +1 -0
- package/dist/dashboard/public/assets/index-5325376f-BL2zVOJU.js +1 -0
- package/dist/dashboard/public/assets/index-BZdjbO25.js +1 -0
- package/dist/dashboard/public/assets/index-BmA_batZ.js +1 -0
- package/dist/dashboard/public/assets/index-Bu0u99kF.js +2 -0
- package/dist/dashboard/public/assets/index-Ch-lr7F4.js +1 -0
- package/dist/dashboard/public/assets/index-ClgWbdoq.js +1 -0
- package/dist/dashboard/public/assets/index-CzLwOMQ_.js +3 -0
- package/dist/dashboard/public/assets/index-DAOEjGO7.js +1 -0
- package/dist/dashboard/public/assets/index-DXqf0B9c.js +1 -0
- package/dist/dashboard/public/assets/index-DegWdR16.js +1 -0
- package/dist/dashboard/public/assets/index-DiHyYGim.js +1 -0
- package/dist/dashboard/public/assets/index-DlZtG7I5.js +1 -0
- package/dist/dashboard/public/assets/index-DmhGE2M8.js +1 -0
- package/dist/dashboard/public/assets/index-QEGvld4x.js +1 -0
- package/dist/dashboard/public/assets/index-RfZPGAJu.js +1 -0
- package/dist/dashboard/public/assets/index-UybBj_7u.js +319 -0
- package/dist/dashboard/public/assets/index-bVekzPnl.js +7 -0
- package/dist/dashboard/public/assets/index-f5bysQzW.css +1 -0
- package/dist/dashboard/public/assets/infoDiagram-8eee0895-DjzkkE3o.js +7 -0
- package/dist/dashboard/public/assets/init-Gi6I4Gst.js +1 -0
- package/dist/dashboard/public/assets/javascript-iXu5QeM3.js +1 -0
- package/dist/dashboard/public/assets/journeyDiagram-c64418c1-CxPZkNdB.js +139 -0
- package/dist/dashboard/public/assets/julia-DuME0IfC.js +1 -0
- package/dist/dashboard/public/assets/katex-XbL3y5x-.js +261 -0
- package/dist/dashboard/public/assets/layout-DX7DNTRm.js +1 -0
- package/dist/dashboard/public/assets/line-DfvpmKOn.js +1 -0
- package/dist/dashboard/public/assets/linear-gQbBPHO5.js +1 -0
- package/dist/dashboard/public/assets/livescript-BwQOo05w.js +1 -0
- package/dist/dashboard/public/assets/lua-BgMRiT3U.js +1 -0
- package/dist/dashboard/public/assets/mathematica-DTrFuWx2.js +1 -0
- package/dist/dashboard/public/assets/mbox-CNhZ1qSd.js +1 -0
- package/dist/dashboard/public/assets/mindmap-definition-8da855dc-CNxmpyG6.js +415 -0
- package/dist/dashboard/public/assets/mirc-CjQqDB4T.js +1 -0
- package/dist/dashboard/public/assets/mllike-CXdrOF99.js +1 -0
- package/dist/dashboard/public/assets/modelica-Dc1JOy9r.js +1 -0
- package/dist/dashboard/public/assets/mscgen-BA5vi2Kp.js +1 -0
- package/dist/dashboard/public/assets/mumps-BT43cFF4.js +1 -0
- package/dist/dashboard/public/assets/nginx-DdIZxoE0.js +1 -0
- package/dist/dashboard/public/assets/nsis-LdVXkNf5.js +1 -0
- package/dist/dashboard/public/assets/ntriples-BfvgReVJ.js +1 -0
- package/dist/dashboard/public/assets/octave-Ck1zUtKM.js +1 -0
- package/dist/dashboard/public/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/dashboard/public/assets/oz-BzwKVEFT.js +1 -0
- package/dist/dashboard/public/assets/pascal--L3eBynH.js +1 -0
- package/dist/dashboard/public/assets/path-CbwjOpE9.js +1 -0
- package/dist/dashboard/public/assets/perl-CdXCOZ3F.js +1 -0
- package/dist/dashboard/public/assets/pieDiagram-a8764435-D-xy_NSA.js +35 -0
- package/dist/dashboard/public/assets/pig-CevX1Tat.js +1 -0
- package/dist/dashboard/public/assets/powershell-CFHJl5sT.js +1 -0
- package/dist/dashboard/public/assets/properties-C78fOPTZ.js +1 -0
- package/dist/dashboard/public/assets/protobuf-ChK-085T.js +1 -0
- package/dist/dashboard/public/assets/pug-DeIclll2.js +1 -0
- package/dist/dashboard/public/assets/puppet-DMA9R1ak.js +1 -0
- package/dist/dashboard/public/assets/python-BuPzkPfP.js +1 -0
- package/dist/dashboard/public/assets/q-pXgVlZs6.js +1 -0
- package/dist/dashboard/public/assets/quadrantDiagram-1e28029f-BoL2wzz0.js +7 -0
- package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
- package/dist/dashboard/public/assets/requirementDiagram-08caed73-BujFz0q1.js +52 -0
- package/dist/dashboard/public/assets/rpm-CTu-6PCP.js +1 -0
- package/dist/dashboard/public/assets/ruby-B2Rjki9n.js +1 -0
- package/dist/dashboard/public/assets/sankeyDiagram-a04cb91d-D03_NARm.js +8 -0
- package/dist/dashboard/public/assets/sas-B4kiWyti.js +1 -0
- package/dist/dashboard/public/assets/scheme-C41bIUwD.js +1 -0
- package/dist/dashboard/public/assets/sequenceDiagram-c5b8d532-B65eFcaT.js +122 -0
- package/dist/dashboard/public/assets/shell-CjFT_Tl9.js +1 -0
- package/dist/dashboard/public/assets/sieve-C3Gn_uJK.js +1 -0
- package/dist/dashboard/public/assets/simple-mode-GW_nhZxv.js +1 -0
- package/dist/dashboard/public/assets/smalltalk-CnHTOXQT.js +1 -0
- package/dist/dashboard/public/assets/solr-DehyRSwq.js +1 -0
- package/dist/dashboard/public/assets/sparql-DkYu6x3z.js +1 -0
- package/dist/dashboard/public/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/dist/dashboard/public/assets/sql-D0XecflT.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-1ecb1508-BDbqu0Vl.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-CBHvk4b8.js +1 -0
- package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
- package/dist/dashboard/public/assets/styles-b4e223ce-CELsPqaO.js +160 -0
- package/dist/dashboard/public/assets/styles-ca3715f6-BRqMqT6F.js +207 -0
- package/dist/dashboard/public/assets/styles-d45a18b0-e8N-oLPy.js +116 -0
- package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
- package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-vNDtmQc-.js +1 -0
- package/dist/dashboard/public/assets/swift-BzpIVaGY.js +1 -0
- package/dist/dashboard/public/assets/tcl-DVfN8rqt.js +1 -0
- package/dist/dashboard/public/assets/textile-CnDTJFAw.js +1 -0
- package/dist/dashboard/public/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/dist/dashboard/public/assets/tiki-DGYXhP31.js +1 -0
- package/dist/dashboard/public/assets/timeline-definition-faaaa080-Dh2_A5VU.js +61 -0
- package/dist/dashboard/public/assets/toml-Bm5Em-hy.js +1 -0
- package/dist/dashboard/public/assets/troff-wAsdV37c.js +1 -0
- package/dist/dashboard/public/assets/ttcn-CfJYG6tj.js +1 -0
- package/dist/dashboard/public/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/dist/dashboard/public/assets/turtle-B1tBg_DP.js +1 -0
- package/dist/dashboard/public/assets/vb-CmGdzxic.js +1 -0
- package/dist/dashboard/public/assets/vbscript-BuJXcnF6.js +1 -0
- package/dist/dashboard/public/assets/velocity-D8B20fx6.js +1 -0
- package/dist/dashboard/public/assets/verilog-C6RDOZhf.js +1 -0
- package/dist/dashboard/public/assets/vhdl-lSbBsy5d.js +1 -0
- package/dist/dashboard/public/assets/webidl-ZXfAyPTL.js +1 -0
- package/dist/dashboard/public/assets/xquery-DzFWVndE.js +1 -0
- package/dist/dashboard/public/assets/xychartDiagram-f5964ef8-B76v1AVF.js +7 -0
- package/dist/dashboard/public/assets/yacas-BJ4BC0dw.js +1 -0
- package/dist/dashboard/public/assets/z80-Hz9HOZM7.js +1 -0
- package/dist/dashboard/public/claude-icon-dark.svg +1 -0
- package/dist/dashboard/public/claude-icon.svg +1 -0
- package/dist/dashboard/public/index.html +16 -0
- package/dist/dashboard/settings-manager.d.ts +47 -0
- package/dist/dashboard/settings-manager.d.ts.map +1 -0
- package/dist/dashboard/settings-manager.js +180 -0
- package/dist/dashboard/settings-manager.js.map +1 -0
- package/dist/dashboard/utils.d.ts +31 -0
- package/dist/dashboard/utils.d.ts.map +1 -0
- package/dist/dashboard/utils.js +102 -0
- package/dist/dashboard/utils.js.map +1 -0
- package/dist/dashboard/watcher.d.ts +32 -0
- package/dist/dashboard/watcher.d.ts.map +1 -0
- package/dist/dashboard/watcher.js +173 -0
- package/dist/dashboard/watcher.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +380 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown/templates/design-template.md +126 -0
- package/dist/markdown/templates/product-template.md +51 -0
- package/dist/markdown/templates/requirements-template.md +50 -0
- package/dist/markdown/templates/structure-template.md +145 -0
- package/dist/markdown/templates/tasks-template.md +100 -0
- package/dist/markdown/templates/tech-template.md +99 -0
- package/dist/markdown/templates/test-design-template.md +221 -0
- package/dist/prompts/create-spec.d.ts +3 -0
- package/dist/prompts/create-spec.d.ts.map +1 -0
- package/dist/prompts/create-spec.js +97 -0
- package/dist/prompts/create-spec.js.map +1 -0
- package/dist/prompts/create-steering-doc.d.ts +3 -0
- package/dist/prompts/create-steering-doc.d.ts.map +1 -0
- package/dist/prompts/create-steering-doc.js +75 -0
- package/dist/prompts/create-steering-doc.js.map +1 -0
- package/dist/prompts/implement-task.d.ts +3 -0
- package/dist/prompts/implement-task.d.ts.map +1 -0
- package/dist/prompts/implement-task.js +174 -0
- package/dist/prompts/implement-task.js.map +1 -0
- package/dist/prompts/index.d.ts +20 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +103 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/inject-spec-workflow-guide.d.ts +3 -0
- package/dist/prompts/inject-spec-workflow-guide.d.ts.map +1 -0
- package/dist/prompts/inject-spec-workflow-guide.js +60 -0
- package/dist/prompts/inject-spec-workflow-guide.js.map +1 -0
- package/dist/prompts/inject-steering-guide.d.ts +3 -0
- package/dist/prompts/inject-steering-guide.d.ts.map +1 -0
- package/dist/prompts/inject-steering-guide.js +64 -0
- package/dist/prompts/inject-steering-guide.js.map +1 -0
- package/dist/prompts/refresh-tasks.d.ts +3 -0
- package/dist/prompts/refresh-tasks.d.ts.map +1 -0
- package/dist/prompts/refresh-tasks.js +237 -0
- package/dist/prompts/refresh-tasks.js.map +1 -0
- package/dist/prompts/spec-status.d.ts +3 -0
- package/dist/prompts/spec-status.d.ts.map +1 -0
- package/dist/prompts/spec-status.js +77 -0
- package/dist/prompts/spec-status.js.map +1 -0
- package/dist/prompts/types.d.ts +13 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +2 -0
- package/dist/prompts/types.js.map +1 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +175 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.d.ts +2 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.d.ts.map +1 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.js +190 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.js.map +1 -0
- package/dist/tools/__tests__/projectPath.test.d.ts +2 -0
- package/dist/tools/__tests__/projectPath.test.d.ts.map +1 -0
- package/dist/tools/__tests__/projectPath.test.js +187 -0
- package/dist/tools/__tests__/projectPath.test.js.map +1 -0
- package/dist/tools/approvals.d.ts +14 -0
- package/dist/tools/approvals.d.ts.map +1 -0
- package/dist/tools/approvals.js +505 -0
- package/dist/tools/approvals.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/log-implementation.d.ts +5 -0
- package/dist/tools/log-implementation.d.ts.map +1 -0
- package/dist/tools/log-implementation.js +498 -0
- package/dist/tools/log-implementation.js.map +1 -0
- package/dist/tools/spec-status.d.ts +5 -0
- package/dist/tools/spec-status.d.ts.map +1 -0
- package/dist/tools/spec-status.js +192 -0
- package/dist/tools/spec-status.js.map +1 -0
- package/dist/tools/spec-workflow-guide.d.ts +5 -0
- package/dist/tools/spec-workflow-guide.d.ts.map +1 -0
- package/dist/tools/spec-workflow-guide.js +116 -0
- package/dist/tools/spec-workflow-guide.js.map +1 -0
- package/dist/tools/steering-guide.d.ts +5 -0
- package/dist/tools/steering-guide.d.ts.map +1 -0
- package/dist/tools/steering-guide.js +192 -0
- package/dist/tools/steering-guide.js.map +1 -0
- package/dist/types.d.ts +183 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-requirements
|
|
3
|
+
description: "Phase 1 of spec-driven development: create a requirements document for a feature. Use this skill when the user wants to start a new spec, define requirements, or begin the spec workflow for a feature. Triggers on: 'create requirements', 'new spec for X', 'start spec workflow', 'define what to build', or any request to create a requirements.md document."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Requirements (Phase 1)
|
|
7
|
+
|
|
8
|
+
Create a requirements document that defines **what** to build based on user needs. This is the first phase of the spec-driven development workflow (Requirements -> Design -> Tasks -> Implementation).
|
|
9
|
+
|
|
10
|
+
## Inputs
|
|
11
|
+
|
|
12
|
+
You need a **spec name** in kebab-case (e.g., `user-authentication`, `data-export`). Ask the user if they haven't provided one.
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
### 1. Gather Context
|
|
17
|
+
|
|
18
|
+
Read steering documents if they exist — these contain project-level guidance that should inform your requirements:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
.spec-workflow/steering/product.md
|
|
22
|
+
.spec-workflow/steering/tech.md
|
|
23
|
+
.spec-workflow/steering/structure.md
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. Load the Template
|
|
27
|
+
|
|
28
|
+
Check for a custom template first. If none exists, fall back to the default:
|
|
29
|
+
|
|
30
|
+
1. `.spec-workflow/user-templates/requirements-template.md` (custom)
|
|
31
|
+
2. `.spec-workflow/templates/requirements-template.md` (default)
|
|
32
|
+
|
|
33
|
+
Follow the template structure exactly for consistency across the project.
|
|
34
|
+
|
|
35
|
+
### 3. Research and Write
|
|
36
|
+
|
|
37
|
+
- If web search is available, research current market expectations and best practices
|
|
38
|
+
- Generate requirements as user stories using EARS criteria (Event, Action, Response, State)
|
|
39
|
+
- Cover all functional and non-functional requirements
|
|
40
|
+
- Be comprehensive — the design phase depends on complete requirements
|
|
41
|
+
|
|
42
|
+
### 4. Create the Document
|
|
43
|
+
|
|
44
|
+
Write the file to:
|
|
45
|
+
```
|
|
46
|
+
.spec-workflow/specs/{spec-name}/requirements.md
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 5. Self-Review via Subagent (before approval)
|
|
50
|
+
|
|
51
|
+
Validate the document in **2 stages** before requesting approval.
|
|
52
|
+
|
|
53
|
+
#### Step A: fix (automated mechanical corrections)
|
|
54
|
+
|
|
55
|
+
Auto-fix placeholders, formatting, and typos. Do not add or change content:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Agent({
|
|
59
|
+
subagent_type: "general-purpose",
|
|
60
|
+
description: "Fix requirements spec (auto-fix)",
|
|
61
|
+
prompt: "You are a spec document reviewer. Auto-fix minor issues in the document at:
|
|
62
|
+
{project-path}/.spec-workflow/specs/{spec-name}/requirements.md
|
|
63
|
+
|
|
64
|
+
Document type: requirements
|
|
65
|
+
|
|
66
|
+
Auto-fix targets (you may directly modify the file):
|
|
67
|
+
- Remove placeholder text ([describe...], TODO, TBD)
|
|
68
|
+
- Fix markdown formatting (table alignment, heading levels, etc.)
|
|
69
|
+
- Fix obvious typos
|
|
70
|
+
|
|
71
|
+
Not auto-fix targets (report as issues only):
|
|
72
|
+
- Adding or removing sections
|
|
73
|
+
- Adding or changing content (requirements, Acceptance Criteria, etc.)
|
|
74
|
+
|
|
75
|
+
Mode: fix — Return a structured report (auto-fixed items + remaining issues)."
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
#### Step B: check (content validation)
|
|
80
|
+
|
|
81
|
+
After fix is complete, detect content issues. Do not modify the file:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Agent({
|
|
85
|
+
subagent_type: "general-purpose",
|
|
86
|
+
description: "Review requirements spec (check)",
|
|
87
|
+
prompt: "You are a spec document reviewer. Review the document (do NOT modify the file) at:
|
|
88
|
+
{project-path}/.spec-workflow/specs/{spec-name}/requirements.md
|
|
89
|
+
|
|
90
|
+
Document type: requirements
|
|
91
|
+
Template: {project-path}/.spec-workflow/templates/requirements-template.md
|
|
92
|
+
|
|
93
|
+
Checks:
|
|
94
|
+
1. TEMPLATE: Every section from the template must exist with real content (no [describe...] or TODO)
|
|
95
|
+
2. Every requirement needs User Story ('As a [role]...') and EARS Acceptance Criteria (WHEN/IF...THEN...SHALL)
|
|
96
|
+
3. Non-Functional Requirements must cover: Code Architecture, Performance, Security, Reliability, Usability
|
|
97
|
+
4. Requirements should be uniquely identified (REQ-1, REQ-2, etc.)
|
|
98
|
+
|
|
99
|
+
Mode: check — DO NOT modify the file. List all issues with location and suggested fix.
|
|
100
|
+
Return a structured report (PASS/FAIL with issues list)."
|
|
101
|
+
})
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
If check returns FAIL, fix the issues yourself and re-run check (up to 3 times). Once PASS, proceed to approval.
|
|
105
|
+
|
|
106
|
+
### 6. Approval Workflow
|
|
107
|
+
|
|
108
|
+
This is a strict, automated process. Verbal approval from the user is never accepted — only dashboard or VS Code extension approval counts.
|
|
109
|
+
|
|
110
|
+
1. **Request approval**: Use the `approvals` MCP tool with `action: 'request'`. Pass `filePath` only — never include content in the request.
|
|
111
|
+
|
|
112
|
+
2. **Poll for status**: Use `approvals` with `action: 'status'`. Keep polling until the status changes from `pending`.
|
|
113
|
+
|
|
114
|
+
3. **Handle the result**:
|
|
115
|
+
- **needs-revision**: Read the reviewer's comments, update the document accordingly, spawn the review subagent again, then submit a NEW approval request. Do not proceed to design.
|
|
116
|
+
- **approved**: Move to cleanup.
|
|
117
|
+
|
|
118
|
+
4. **Cleanup**: Use `approvals` with `action: 'delete'`. This must succeed before proceeding.
|
|
119
|
+
- If delete fails: STOP. Return to polling. Never proceed without successful cleanup.
|
|
120
|
+
|
|
121
|
+
5. **Next phase**: Only after cleanup succeeds, proceed to Phase 2 (Design). Use the `/spec-design` skill.
|
|
122
|
+
|
|
123
|
+
## Rules
|
|
124
|
+
|
|
125
|
+
- Feature names use kebab-case (e.g., `user-authentication`)
|
|
126
|
+
- One spec at a time
|
|
127
|
+
- Approval requests: filePath only, never content
|
|
128
|
+
- Never accept verbal approval — dashboard/VS Code extension only
|
|
129
|
+
- Never proceed if approval delete fails
|
|
130
|
+
- Must have approved status AND successful cleanup before moving to design
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-review
|
|
3
|
+
description: "Self-review a specification document before requesting user approval. This skill is designed to run as a subagent — spawn it with the Agent tool to keep review details out of the main context. Use automatically after creating or updating any spec document (requirements.md, design.md, tasks.md) and BEFORE requesting approval. Triggers on: any spec document creation, before approval requests, 'review spec', 'check spec quality'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec Review (Subagent)
|
|
7
|
+
|
|
8
|
+
This skill is designed to run as a **subagent** via the Agent tool. It has two modes.
|
|
9
|
+
|
|
10
|
+
## Mode: check (default — review before Approval)
|
|
11
|
+
|
|
12
|
+
**Do not modify the file.** Only detect and return a list of issues. The caller reviews the issues and makes corrections themselves, then runs check again. Do not add or change content (the reviewer must not "invent" content).
|
|
13
|
+
|
|
14
|
+
```javascript
|
|
15
|
+
Agent({
|
|
16
|
+
subagent_type: "general-purpose",
|
|
17
|
+
description: "Review spec document (check)",
|
|
18
|
+
prompt: `You are a spec document reviewer. Check the document at:
|
|
19
|
+
{project-path}/.spec-workflow/specs/{spec-name}/{doc-type}.md
|
|
20
|
+
|
|
21
|
+
Document type: {doc-type}
|
|
22
|
+
Spec name: {spec-name}
|
|
23
|
+
Mode: check
|
|
24
|
+
|
|
25
|
+
Follow the /spec-review skill instructions below:
|
|
26
|
+
|
|
27
|
+
1. TEMPLATE COMPLIANCE: Re-read the template at .spec-workflow/templates/{doc-type}-template.md
|
|
28
|
+
and verify every section is present with substantive content (no placeholders like [describe...] or TODO).
|
|
29
|
+
|
|
30
|
+
2. CROSS-REFERENCE CHECK:
|
|
31
|
+
- For design.md: verify every requirement in requirements.md has a design solution
|
|
32
|
+
- For tasks.md: verify every requirement has a task, every design component has a task,
|
|
33
|
+
_Requirements references match actual IDs, task ordering respects dependencies
|
|
34
|
+
|
|
35
|
+
3. QUALITY CHECK: No placeholder text, no duplicates, consistent naming, testable acceptance criteria,
|
|
36
|
+
realistic error scenarios, task descriptions specific enough for AI implementation.
|
|
37
|
+
|
|
38
|
+
4. DO NOT modify the file. List all issues found with their location and suggested fix.
|
|
39
|
+
|
|
40
|
+
5. Return a structured report (see Output Format below).`
|
|
41
|
+
})
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Caller flow:
|
|
45
|
+
1. Run spec-review in check mode
|
|
46
|
+
2. If issues = 0 → proceed to Approval
|
|
47
|
+
3. If issues >= 1 → caller reviews issues and corrects design.md/tasks.md
|
|
48
|
+
4. Run check mode again (repeat until issues = 0, up to 3 times)
|
|
49
|
+
|
|
50
|
+
## Mode: fix (minor automated fixes only)
|
|
51
|
+
|
|
52
|
+
Performs **only mechanical fixes** such as removing placeholder text and fixing formatting. Does not add or change content (adding sections, requirements, error codes, etc.) — those are reported as issues.
|
|
53
|
+
|
|
54
|
+
```javascript
|
|
55
|
+
Agent({
|
|
56
|
+
subagent_type: "general-purpose",
|
|
57
|
+
description: "Review spec document (fix)",
|
|
58
|
+
prompt: `You are a spec document reviewer. Check and auto-fix minor issues in the document at:
|
|
59
|
+
{project-path}/.spec-workflow/specs/{spec-name}/{doc-type}.md
|
|
60
|
+
|
|
61
|
+
Document type: {doc-type}
|
|
62
|
+
Spec name: {spec-name}
|
|
63
|
+
Mode: fix
|
|
64
|
+
|
|
65
|
+
Items eligible for auto-fix (may directly modify the file):
|
|
66
|
+
- Remove placeholder text ([describe...], TODO, TBD)
|
|
67
|
+
- Fix markdown formatting (table alignment, heading levels, etc.)
|
|
68
|
+
- Obvious typos
|
|
69
|
+
|
|
70
|
+
Items NOT eligible for auto-fix (report as issues only):
|
|
71
|
+
- Adding or removing sections
|
|
72
|
+
- Adding or changing content (requirements, design components, error codes, etc.)
|
|
73
|
+
- Traceability inconsistencies
|
|
74
|
+
|
|
75
|
+
Return a structured report with auto-fixed items and remaining issues.`
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Review Checklist by Document Type
|
|
80
|
+
|
|
81
|
+
### Requirements (`requirements.md`)
|
|
82
|
+
|
|
83
|
+
**Template compliance:**
|
|
84
|
+
- Introduction section with clear feature overview
|
|
85
|
+
- Alignment with Product Vision section (references steering docs if they exist)
|
|
86
|
+
- Every requirement has User Story: "As a [role], I want [feature], so that [benefit]"
|
|
87
|
+
- Every requirement has Acceptance Criteria using EARS pattern (WHEN/IF...THEN...SHALL)
|
|
88
|
+
- Non-Functional Requirements: Code Architecture, Performance, Security, Reliability, Usability
|
|
89
|
+
|
|
90
|
+
**Quality:**
|
|
91
|
+
- No placeholder text (`[describe...]`, `TODO`, `TBD`)
|
|
92
|
+
- Acceptance criteria are testable and specific
|
|
93
|
+
- Requirements are uniquely identified (REQ-1, REQ-2, etc.)
|
|
94
|
+
|
|
95
|
+
### Design (`design.md`)
|
|
96
|
+
|
|
97
|
+
**Template compliance:**
|
|
98
|
+
- Overview with architectural description
|
|
99
|
+
- Steering Document Alignment (tech.md, structure.md)
|
|
100
|
+
- Code Reuse Analysis (see dedicated check below)
|
|
101
|
+
- Architecture section with diagram
|
|
102
|
+
- Components/Interfaces: Purpose, Interfaces, Dependencies, Reuses
|
|
103
|
+
- Data Models with concrete field definitions
|
|
104
|
+
- Error Handling with specific scenarios
|
|
105
|
+
- Requirements Traceability Matrix (see dedicated check below)
|
|
106
|
+
|
|
107
|
+
**Code Reuse Analysis (concrete paths required):**
|
|
108
|
+
- Is the table format listing "Reuse target / Path / Usage" present?
|
|
109
|
+
- Are paths concrete file paths (e.g., `src/middleware/auth.rs`) rather than abstract descriptions (e.g., "leverage existing middleware")?
|
|
110
|
+
- Do the paths actually exist in the codebase?
|
|
111
|
+
- Is the granularity fine enough to be copied directly into each task's `_Leverage` field in Phase 3?
|
|
112
|
+
|
|
113
|
+
**Requirements Traceability Matrix:**
|
|
114
|
+
- Are all requirement IDs (REQ-1, REQ-2, ...) included in the matrix?
|
|
115
|
+
- Is the corresponding design component listed for each requirement?
|
|
116
|
+
- Reverse check: are there any design components with no backing requirement?
|
|
117
|
+
- Testing Strategy: Unit, Integration, E2E
|
|
118
|
+
|
|
119
|
+
**Cross-reference (read requirements.md):**
|
|
120
|
+
- Every requirement has a corresponding design solution
|
|
121
|
+
- No design component without a backing requirement
|
|
122
|
+
- Data models cover all entities from requirements
|
|
123
|
+
|
|
124
|
+
**DB Schema review (strictly validated to prevent post-approval changes):**
|
|
125
|
+
- Every table lists column names, types, and constraints (NOT NULL, UNIQUE, DEFAULT, etc.)
|
|
126
|
+
- Primary keys, foreign keys, and indexes are defined
|
|
127
|
+
- **Each FK explicitly specifies `ON DELETE` behavior (CASCADE / RESTRICT / SET NULL)** — leaving it unspecified is not allowed; this is a design decision directly tied to business logic and must always be explicit
|
|
128
|
+
- Relationships between tables (1:1, 1:N, N:M) and cardinality are clear
|
|
129
|
+
- Migration strategy is documented (column add/drop order, data migration if needed)
|
|
130
|
+
- Normalization level is appropriate (no unnecessary redundancy; denormalization for performance must have justification)
|
|
131
|
+
- **The meaning of nullable columns is clear** (why NULL is allowed; if a DEFAULT value exists, its meaning is documented)
|
|
132
|
+
- Timestamp columns (created_at, updated_at) are present
|
|
133
|
+
- Soft-delete vs. hard-delete policy is explicitly stated (where applicable)
|
|
134
|
+
|
|
135
|
+
**API Design review (strictly validated to prevent post-approval changes):**
|
|
136
|
+
- All endpoints list HTTP method, path, and description
|
|
137
|
+
- Each endpoint defines request body / query parameter types, required/optional status, and validation rules
|
|
138
|
+
- Each endpoint defines response types (success + error) and HTTP status codes
|
|
139
|
+
- Error response format is consistent (e.g., `{ "error": { "code": "...", "message": "..." } }`)
|
|
140
|
+
- **Error codes are defined in a table** (columns: error code name, HTTP Status, trigger condition). Must be exhaustive to prevent undeclared error codes from being added during implementation
|
|
141
|
+
- Authentication/authorization requirements are specified per endpoint
|
|
142
|
+
- Pagination, filtering, and sorting parameter design is documented (where applicable)
|
|
143
|
+
- RESTful conventions are followed (plural resource names, appropriate HTTP methods)
|
|
144
|
+
|
|
145
|
+
**Data Model review (strictly validated to prevent post-approval changes):**
|
|
146
|
+
- DB Model (e.g., Queryable) and DTOs (request/response types) are defined separately
|
|
147
|
+
- DTO fields match the request/response definitions in the API Design
|
|
148
|
+
- Fields that must not be exposed (e.g., password_hash) are excluded in the Model → DTO conversion
|
|
149
|
+
- Validation rules are defined in request DTOs
|
|
150
|
+
- Enum values (status, role, etc.) are exhaustive
|
|
151
|
+
|
|
152
|
+
**Quality:**
|
|
153
|
+
- No placeholder text
|
|
154
|
+
- Consistent component naming
|
|
155
|
+
- Error scenarios cover realistic failure modes
|
|
156
|
+
- DB Schema / API / Data Model are concrete enough that implementers have minimal room to interpret the design
|
|
157
|
+
|
|
158
|
+
### Test Design (`test-design.md`)
|
|
159
|
+
|
|
160
|
+
**Template compliance:**
|
|
161
|
+
- Test Strategy Overview section with overall test approach and Test Pyramid
|
|
162
|
+
- Unit Test Specifications for every component in design.md
|
|
163
|
+
- Integration Test Specifications for significant component interactions
|
|
164
|
+
- E2E Test Specifications derived from user stories in requirements.md
|
|
165
|
+
- Requirements-Test Traceability Matrix covering all Requirement IDs
|
|
166
|
+
- Test Data Requirements section with shared fixtures and generation strategy
|
|
167
|
+
- E2E Test Infrastructure section with project type, container setup, and test runner
|
|
168
|
+
|
|
169
|
+
**UT Coverage:**
|
|
170
|
+
- Every component in design.md has corresponding UT specifications
|
|
171
|
+
- Each component's UT specs cover applicable categories (Happy Path / Boundary Values / Error Handling / Edge Cases)
|
|
172
|
+
- Test case IDs follow naming convention (UT-N.M)
|
|
173
|
+
- design.md Error Handling table entries have corresponding error handling test cases
|
|
174
|
+
|
|
175
|
+
**IT/E2E Coverage:**
|
|
176
|
+
- Every significant component interaction in design.md Architecture has an IT specification (IT-N)
|
|
177
|
+
- Every user story in requirements.md has at least one E2E specification (E2E-N)
|
|
178
|
+
- IT/E2E Technology fields are consistent with design.md Container Architecture
|
|
179
|
+
|
|
180
|
+
**Cross-reference (read requirements.md and design.md):**
|
|
181
|
+
- Every Requirement ID has at least one UT and one IT or E2E in the Traceability Matrix
|
|
182
|
+
- E2E scenarios trace back to specific user stories and acceptance criteria
|
|
183
|
+
- Container test setup aligns with design.md Container Architecture (if present)
|
|
184
|
+
|
|
185
|
+
**Quality:**
|
|
186
|
+
- No placeholder text in Input / Expected Output / Verification fields
|
|
187
|
+
- Test cases are specific and concrete (not abstract like "verify success")
|
|
188
|
+
- Test data is realistic and covers the necessary scenarios
|
|
189
|
+
- Naming conventions are consistent (UT-N.M, IT-N, E2E-N)
|
|
190
|
+
|
|
191
|
+
### Tasks (`tasks.md`)
|
|
192
|
+
|
|
193
|
+
**Template compliance:**
|
|
194
|
+
- Every task has `- [ ]` checkbox marker
|
|
195
|
+
- Every task specifies target file path(s)
|
|
196
|
+
- Every implementation task has `_Leverage` field (Phase 0 setup tasks, PhaseReview tasks, and IT/E2E test tasks may omit it)
|
|
197
|
+
- Every task has `_Requirements` field
|
|
198
|
+
- Every task has `_Prompt` field with: Role, Task, Restrictions, Success
|
|
199
|
+
- `_Prompt` contains Role, Task, Restrictions, Success fields in the format "Role: ... | Task: ... | Restrictions: ... | Success: ..."
|
|
200
|
+
- Tasks are atomic (1-3 files each)
|
|
201
|
+
|
|
202
|
+
**Cross-reference (read requirements.md and design.md):**
|
|
203
|
+
- Every requirement has at least one implementing task
|
|
204
|
+
- Every design component has at least one creating task
|
|
205
|
+
- `_Requirements` IDs match actual requirement IDs
|
|
206
|
+
- `_Leverage` paths are plausible (match paths in the design.md Code Reuse Analysis table)
|
|
207
|
+
- Task ordering respects dependencies (interfaces before implementations, models before services)
|
|
208
|
+
|
|
209
|
+
**Traceability Matrix back-fill validation (read design.md):**
|
|
210
|
+
- Are all rows in the Requirements Traceability Matrix in design.md filled in with a "Target Task ID"?
|
|
211
|
+
- Do the "Target Task ID" values match actual task IDs that exist in tasks.md?
|
|
212
|
+
- If any component row is empty, a task must be added to tasks.md and the matrix must be updated
|
|
213
|
+
|
|
214
|
+
**`_TDDSkip` and Interface-only task validation:**
|
|
215
|
+
- Is `_TDDSkip: true` applied appropriately (only to tasks that cannot be tested in isolation)?
|
|
216
|
+
- OK: project initialization, Dockerfile, migrations, config files (tasks that are self-contained)
|
|
217
|
+
- NG: tasks that only define a trait/struct (not self-contained → should be merged into an implementation task)
|
|
218
|
+
- If an interface-only task is detected (`_TestFocus` all "N/A" + Success is only "compiles" + no `_TDDSkip`):
|
|
219
|
+
- Either add `_TDDSkip: true`, or merge into the first task that references it via `_Leverage`
|
|
220
|
+
- Decision rule: "Is this task self-contained?" → Yes: `_TDDSkip`, No: merge
|
|
221
|
+
|
|
222
|
+
**`_TestFocus` format validation:**
|
|
223
|
+
- Does every non-PhaseReview task's `_TestFocus` use the 4-category structure (Happy Path / Boundary Values / Error Handling / Edge Cases)?
|
|
224
|
+
- Is free-form text being used instead (e.g., "CRUD success/failure, validation boundaries")?
|
|
225
|
+
- Are categories that do not apply explicitly marked as "N/A" (not omitted)?
|
|
226
|
+
- Is each category's content specific (not abstract like "Happy Path: success path" but rather "Happy Path: all CRUD operation success paths")?
|
|
227
|
+
|
|
228
|
+
**Single responsibility validation:**
|
|
229
|
+
- Does the `_Prompt` Task field join multiple behaviors with "and"?
|
|
230
|
+
- Can the task be described in a single sentence? (If multiple sentences are needed → consider splitting)
|
|
231
|
+
- Do the Success criteria contain multiple independent conditions? (e.g., "A compiles and B validates and C works" → split into 3 tasks)
|
|
232
|
+
- If a task needs splitting, split it and update tasks.md
|
|
233
|
+
|
|
234
|
+
**Quality:**
|
|
235
|
+
- No placeholder text
|
|
236
|
+
- Task descriptions specific enough for AI agent implementation
|
|
237
|
+
- No duplicate tasks
|
|
238
|
+
|
|
239
|
+
## Output Format
|
|
240
|
+
|
|
241
|
+
### check mode
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
## Spec Review: {spec-name}/{doc-type}.md (check)
|
|
245
|
+
|
|
246
|
+
### Checks Performed
|
|
247
|
+
- Template compliance: {PASS / N issues}
|
|
248
|
+
- Cross-references: {PASS / N issues / N/A for requirements}
|
|
249
|
+
- Quality: {PASS / N issues}
|
|
250
|
+
|
|
251
|
+
### Issues (caller must fix)
|
|
252
|
+
1. [category: Template/CrossRef/Quality] {description of issue} — location: {section name or line number} — suggested fix: {concrete suggestion}
|
|
253
|
+
2. ...
|
|
254
|
+
|
|
255
|
+
### Items for User Attention
|
|
256
|
+
- [any gaps requiring human judgment, if any]
|
|
257
|
+
|
|
258
|
+
### Result: {PASS (issues 0) / FAIL (issues N)}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### fix mode
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
## Spec Review: {spec-name}/{doc-type}.md (fix)
|
|
265
|
+
|
|
266
|
+
### Auto-Fixed
|
|
267
|
+
- [list of auto-fixed items with before/after]
|
|
268
|
+
|
|
269
|
+
### Remaining Issues (caller must fix)
|
|
270
|
+
1. [category] {description of issue} — location: {section name} — suggested fix: {suggestion}
|
|
271
|
+
2. ...
|
|
272
|
+
|
|
273
|
+
### Result: {PASS (remaining 0) / FAIL (remaining N)}
|
|
274
|
+
```
|