@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,192 @@
|
|
|
1
|
+
import { PathUtils } from '../core/path-utils.js';
|
|
2
|
+
import { SpecParser } from '../core/parser.js';
|
|
3
|
+
export const specStatusTool = {
|
|
4
|
+
name: 'spec-status',
|
|
5
|
+
description: `Display comprehensive specification progress overview.
|
|
6
|
+
|
|
7
|
+
# Instructions
|
|
8
|
+
Call when resuming work on a spec or checking overall completion status. Shows which phases are complete and task implementation progress. After viewing status, read tasks.md directly to see all tasks and their status markers ([ ] pending, [-] in-progress, [x] completed).`,
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
projectPath: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
description: 'Absolute path to the project root (optional - uses server context path if not provided)'
|
|
15
|
+
},
|
|
16
|
+
specName: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Name of the specification'
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
required: ['specName']
|
|
22
|
+
},
|
|
23
|
+
annotations: {
|
|
24
|
+
title: 'Spec Status',
|
|
25
|
+
readOnlyHint: true,
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export async function specStatusHandler(args, context) {
|
|
29
|
+
const { specName } = args;
|
|
30
|
+
// Use context projectPath as default, allow override via args
|
|
31
|
+
const projectPath = args.projectPath || context.projectPath;
|
|
32
|
+
if (!projectPath) {
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
message: 'Project path is required but not provided in context or arguments'
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
// Translate path at tool entry point (components expect pre-translated paths)
|
|
40
|
+
const translatedPath = PathUtils.translatePath(projectPath);
|
|
41
|
+
const parser = new SpecParser(translatedPath);
|
|
42
|
+
const spec = await parser.getSpec(specName);
|
|
43
|
+
if (!spec) {
|
|
44
|
+
return {
|
|
45
|
+
success: false,
|
|
46
|
+
message: `Specification '${specName}' not found`,
|
|
47
|
+
nextSteps: [
|
|
48
|
+
'Check spec name',
|
|
49
|
+
'Use spec-list for available specs',
|
|
50
|
+
'Create spec with create-spec-doc'
|
|
51
|
+
]
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Determine current phase and overall status
|
|
55
|
+
let currentPhase = 'not-started';
|
|
56
|
+
let overallStatus = 'not-started';
|
|
57
|
+
if (!spec.phases.requirements.exists) {
|
|
58
|
+
currentPhase = 'requirements';
|
|
59
|
+
overallStatus = 'requirements-needed';
|
|
60
|
+
}
|
|
61
|
+
else if (!spec.phases.design.exists) {
|
|
62
|
+
currentPhase = 'design';
|
|
63
|
+
overallStatus = 'design-needed';
|
|
64
|
+
}
|
|
65
|
+
else if (!spec.phases.testDesign.exists) {
|
|
66
|
+
currentPhase = 'test-design';
|
|
67
|
+
overallStatus = 'test-design-needed';
|
|
68
|
+
}
|
|
69
|
+
else if (!spec.phases.tasks.exists) {
|
|
70
|
+
currentPhase = 'tasks';
|
|
71
|
+
overallStatus = 'tasks-needed';
|
|
72
|
+
}
|
|
73
|
+
else if (spec.taskProgress && spec.taskProgress.pending > 0) {
|
|
74
|
+
currentPhase = 'implementation';
|
|
75
|
+
overallStatus = 'implementing';
|
|
76
|
+
}
|
|
77
|
+
else if (spec.taskProgress && spec.taskProgress.total > 0 && spec.taskProgress.completed === spec.taskProgress.total) {
|
|
78
|
+
currentPhase = 'completed';
|
|
79
|
+
overallStatus = 'completed';
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
currentPhase = 'implementation';
|
|
83
|
+
overallStatus = 'ready-for-implementation';
|
|
84
|
+
}
|
|
85
|
+
// Phase details
|
|
86
|
+
const phaseDetails = [
|
|
87
|
+
{
|
|
88
|
+
name: 'Requirements',
|
|
89
|
+
status: spec.phases.requirements.exists ? (spec.phases.requirements.approved ? 'approved' : 'created') : 'missing',
|
|
90
|
+
lastModified: spec.phases.requirements.lastModified
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'Design',
|
|
94
|
+
status: spec.phases.design.exists ? (spec.phases.design.approved ? 'approved' : 'created') : 'missing',
|
|
95
|
+
lastModified: spec.phases.design.lastModified
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Test Design',
|
|
99
|
+
status: spec.phases.testDesign.exists ? (spec.phases.testDesign.approved ? 'approved' : 'created') : 'missing',
|
|
100
|
+
lastModified: spec.phases.testDesign.lastModified
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'Tasks',
|
|
104
|
+
status: spec.phases.tasks.exists ? (spec.phases.tasks.approved ? 'approved' : 'created') : 'missing',
|
|
105
|
+
lastModified: spec.phases.tasks.lastModified
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'Implementation',
|
|
109
|
+
status: spec.phases.implementation.exists ? 'in-progress' : 'not-started',
|
|
110
|
+
progress: spec.taskProgress
|
|
111
|
+
}
|
|
112
|
+
];
|
|
113
|
+
// Next steps based on current phase
|
|
114
|
+
const nextSteps = [];
|
|
115
|
+
switch (currentPhase) {
|
|
116
|
+
case 'requirements':
|
|
117
|
+
nextSteps.push('Read template: .spec-workflow/templates/requirements-template-v*.md');
|
|
118
|
+
nextSteps.push('Create: .spec-workflow/specs/{name}/requirements.md');
|
|
119
|
+
nextSteps.push('Request approval');
|
|
120
|
+
break;
|
|
121
|
+
case 'design':
|
|
122
|
+
nextSteps.push('Read template: .spec-workflow/templates/design-template-v*.md');
|
|
123
|
+
nextSteps.push('Create: .spec-workflow/specs/{name}/design.md');
|
|
124
|
+
nextSteps.push('Request approval');
|
|
125
|
+
break;
|
|
126
|
+
case 'test-design':
|
|
127
|
+
nextSteps.push('Read template: .spec-workflow/templates/test-design-template.md');
|
|
128
|
+
nextSteps.push('Create: .spec-workflow/specs/{name}/test-design.md');
|
|
129
|
+
nextSteps.push('Request approval');
|
|
130
|
+
break;
|
|
131
|
+
case 'tasks':
|
|
132
|
+
nextSteps.push('Read template: .spec-workflow/templates/tasks-template-v*.md');
|
|
133
|
+
nextSteps.push('Create: .spec-workflow/specs/{name}/tasks.md');
|
|
134
|
+
nextSteps.push('Request approval');
|
|
135
|
+
break;
|
|
136
|
+
case 'implementation':
|
|
137
|
+
if (spec.taskProgress && spec.taskProgress.pending > 0) {
|
|
138
|
+
nextSteps.push(`Read tasks: .spec-workflow/specs/${specName}/tasks.md`);
|
|
139
|
+
nextSteps.push('Edit tasks.md: Change [ ] to [-] for task you start');
|
|
140
|
+
nextSteps.push('Implement the task code');
|
|
141
|
+
nextSteps.push('Edit tasks.md: Change [-] to [x] when completed');
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
nextSteps.push(`Read tasks: .spec-workflow/specs/${specName}/tasks.md`);
|
|
145
|
+
nextSteps.push('Begin implementation by marking first task [-]');
|
|
146
|
+
}
|
|
147
|
+
break;
|
|
148
|
+
case 'completed':
|
|
149
|
+
nextSteps.push('All tasks completed (marked [x])');
|
|
150
|
+
nextSteps.push('Run tests');
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
success: true,
|
|
155
|
+
message: `Specification '${specName}' status: ${overallStatus}`,
|
|
156
|
+
data: {
|
|
157
|
+
name: specName,
|
|
158
|
+
description: spec.description,
|
|
159
|
+
currentPhase,
|
|
160
|
+
overallStatus,
|
|
161
|
+
createdAt: spec.createdAt,
|
|
162
|
+
lastModified: spec.lastModified,
|
|
163
|
+
phases: phaseDetails,
|
|
164
|
+
taskProgress: spec.taskProgress || {
|
|
165
|
+
total: 0,
|
|
166
|
+
completed: 0,
|
|
167
|
+
pending: 0
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
nextSteps,
|
|
171
|
+
projectContext: {
|
|
172
|
+
projectPath,
|
|
173
|
+
workflowRoot: PathUtils.getWorkflowRoot(projectPath),
|
|
174
|
+
currentPhase,
|
|
175
|
+
dashboardUrl: context.dashboardUrl
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
181
|
+
return {
|
|
182
|
+
success: false,
|
|
183
|
+
message: `Failed to get specification status: ${errorMessage}`,
|
|
184
|
+
nextSteps: [
|
|
185
|
+
'Check if the specification exists',
|
|
186
|
+
'Verify the project path',
|
|
187
|
+
'List directory .spec-workflow/specs/ to see available specifications'
|
|
188
|
+
]
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=spec-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-status.js","sourceRoot":"","sources":["../../src/tools/spec-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { ToolContext, ToolResponse } from '../types.js';
|
|
3
|
+
export declare const specWorkflowGuideTool: Tool;
|
|
4
|
+
export declare function specWorkflowGuideHandler(args: any, context: ToolContext): Promise<ToolResponse>;
|
|
5
|
+
//# sourceMappingURL=spec-workflow-guide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-workflow-guide.d.ts","sourceRoot":"","sources":["../../src/tools/spec-workflow-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,eAAO,MAAM,qBAAqB,EAAE,IAiBnC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAsBrG"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
export const specWorkflowGuideTool = {
|
|
2
|
+
name: 'spec-workflow-guide',
|
|
3
|
+
description: `Load essential spec workflow instructions to guide feature development from idea to implementation.
|
|
4
|
+
|
|
5
|
+
# Instructions
|
|
6
|
+
Call this tool FIRST when users request spec creation, feature development, or mention specifications. This provides the complete workflow sequence (Requirements → Design → Test Design → Tasks → Implementation) that must be followed. Always load before any other spec tools to ensure proper workflow understanding. It's important that you follow this workflow exactly to avoid errors.
|
|
7
|
+
|
|
8
|
+
NOTE: Do NOT call this tool when the user requests setup-claude-skills. That tool is a standalone file-copy operation and does not require loading the workflow guide.`,
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {},
|
|
12
|
+
additionalProperties: false
|
|
13
|
+
},
|
|
14
|
+
annotations: {
|
|
15
|
+
title: 'Spec Workflow Guide',
|
|
16
|
+
readOnlyHint: true,
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export async function specWorkflowGuideHandler(args, context) {
|
|
20
|
+
// Dashboard URL is populated from registry in server.ts
|
|
21
|
+
const dashboardMessage = context.dashboardUrl ?
|
|
22
|
+
`Monitor progress on dashboard: ${context.dashboardUrl}` :
|
|
23
|
+
'Please start the dashboard with: spec-workflow-mcp --dashboard';
|
|
24
|
+
return {
|
|
25
|
+
success: true,
|
|
26
|
+
message: 'Complete spec workflow guide loaded - follow this workflow exactly',
|
|
27
|
+
data: {
|
|
28
|
+
guide: getSpecWorkflowGuide(),
|
|
29
|
+
dashboardUrl: context.dashboardUrl,
|
|
30
|
+
dashboardAvailable: !!context.dashboardUrl
|
|
31
|
+
},
|
|
32
|
+
nextSteps: [
|
|
33
|
+
'Follow sequence: Requirements → Design → Test Design → Tasks → Implementation',
|
|
34
|
+
'Load templates with get-template-context first',
|
|
35
|
+
'Request approval after each document',
|
|
36
|
+
'Use MCP tools only',
|
|
37
|
+
dashboardMessage
|
|
38
|
+
]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function getSpecWorkflowGuide() {
|
|
42
|
+
return `# Spec Development Workflow
|
|
43
|
+
|
|
44
|
+
## Overview
|
|
45
|
+
|
|
46
|
+
Guide users through spec-driven development: Requirements -> Design -> Test Design -> Tasks -> Implementation.
|
|
47
|
+
Feature names use kebab-case (e.g., user-authentication). Create ONE spec at a time.
|
|
48
|
+
Follow this workflow exactly to avoid errors.
|
|
49
|
+
|
|
50
|
+
## Phases
|
|
51
|
+
|
|
52
|
+
### Phase 1: Requirements — Define WHAT to build
|
|
53
|
+
- Read steering docs from \`.spec-workflow/steering/*.md\` if they exist
|
|
54
|
+
- Load template: check \`user-templates/\` first, then \`templates/requirements-template.md\`
|
|
55
|
+
- Create: \`.spec-workflow/specs/{spec-name}/requirements.md\`
|
|
56
|
+
- Approval: request -> poll status -> handle revision/approved -> delete -> proceed
|
|
57
|
+
|
|
58
|
+
### Phase 2: Design — Define HOW to build it
|
|
59
|
+
- Load template: check \`user-templates/\` first, then \`templates/design-template.md\`
|
|
60
|
+
- Analyze codebase for patterns to reuse
|
|
61
|
+
- Create: \`.spec-workflow/specs/{spec-name}/design.md\`
|
|
62
|
+
- Approval: same workflow as Phase 1
|
|
63
|
+
|
|
64
|
+
### Phase 3: Test Design — Define HOW to test it
|
|
65
|
+
- Load template: check \`user-templates/\` first, then \`templates/test-design-template.md\`
|
|
66
|
+
- Derive UT specs from design.md components, IT specs from component interactions, E2E specs from requirements.md user stories
|
|
67
|
+
- Create: \`.spec-workflow/specs/{spec-name}/test-design.md\`
|
|
68
|
+
- Approval: same workflow as Phase 1
|
|
69
|
+
|
|
70
|
+
### Phase 4: Tasks — Break into atomic steps
|
|
71
|
+
- Load template: check \`user-templates/\` first, then \`templates/tasks-template.md\`
|
|
72
|
+
- Convert design into atomic tasks (1-3 files each)
|
|
73
|
+
- Generate _Prompt field for each task (Role, Task, Restrictions, _Leverage, _Requirements, Success)
|
|
74
|
+
- Derive _TestFocus from test-design.md UT specifications
|
|
75
|
+
- Create: \`.spec-workflow/specs/{spec-name}/tasks.md\`
|
|
76
|
+
- Approval: same workflow as Phase 1
|
|
77
|
+
- After cleanup: "Spec complete. Ready to implement?"
|
|
78
|
+
|
|
79
|
+
### Phase 5: Implementation — Execute tasks
|
|
80
|
+
- For each task: mark [-] -> implement -> log-implementation (MANDATORY) -> mark [x]
|
|
81
|
+
- Search implementation logs BEFORE coding to discover existing work
|
|
82
|
+
- Task status: \`[ ]\` pending, \`[-]\` in-progress, \`[x]\` completed
|
|
83
|
+
|
|
84
|
+
## Approval Workflow (all phases)
|
|
85
|
+
|
|
86
|
+
1. \`approvals\` action:'request' — filePath only, never content
|
|
87
|
+
2. \`approvals\` action:'status' — poll until approved/needs-revision
|
|
88
|
+
3. If needs-revision: update doc, create NEW approval, do NOT proceed
|
|
89
|
+
4. If approved: \`approvals\` action:'delete' — must succeed before next phase
|
|
90
|
+
5. If delete fails: STOP, return to polling
|
|
91
|
+
|
|
92
|
+
## Key Rules
|
|
93
|
+
|
|
94
|
+
- Complete phases in sequence (no skipping)
|
|
95
|
+
- One spec at a time, kebab-case names
|
|
96
|
+
- Verbal approval is NEVER accepted — dashboard or VS Code extension only
|
|
97
|
+
- Never proceed if approval delete fails
|
|
98
|
+
- Every task marked [x] MUST have log-implementation called first
|
|
99
|
+
- Steering docs are optional — only create when explicitly requested
|
|
100
|
+
|
|
101
|
+
## File Structure
|
|
102
|
+
\`\`\`
|
|
103
|
+
.spec-workflow/
|
|
104
|
+
├── templates/ # Auto-populated on server start
|
|
105
|
+
├── user-templates/ # Custom template overrides
|
|
106
|
+
├── user-prompts/ # Custom prompt overrides
|
|
107
|
+
├── specs/{spec-name}/
|
|
108
|
+
│ ├── requirements.md
|
|
109
|
+
│ ├── design.md
|
|
110
|
+
│ ├── test-design.md
|
|
111
|
+
│ ├── tasks.md
|
|
112
|
+
│ └── Implementation Logs/
|
|
113
|
+
└── steering/ # Optional: product.md, tech.md, structure.md
|
|
114
|
+
\`\`\``;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=spec-workflow-guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-workflow-guide.js","sourceRoot":"","sources":["../../src/tools/spec-workflow-guide.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,qBAAqB,GAAS;IACzC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE;;;;;uKAKwJ;IACrK,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;IACD,WAAW,EAAE;QACX,KAAK,EAAE,qBAAqB;QAC5B,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAS,EAAE,OAAoB;IAC5E,wDAAwD;IACxD,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7C,kCAAkC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC1D,gEAAgE,CAAC;IAEnE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,oEAAoE;QAC7E,IAAI,EAAE;YACJ,KAAK,EAAE,oBAAoB,EAAE;YAC7B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;SAC3C;QACD,SAAS,EAAE;YACT,+EAA+E;YAC/E,gDAAgD;YAChD,sCAAsC;YACtC,oBAAoB;YACpB,gBAAgB;SACjB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwEF,CAAC;AACR,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { ToolContext, ToolResponse } from '../types.js';
|
|
3
|
+
export declare const steeringGuideTool: Tool;
|
|
4
|
+
export declare function steeringGuideHandler(args: any, context: ToolContext): Promise<ToolResponse>;
|
|
5
|
+
//# sourceMappingURL=steering-guide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steering-guide.d.ts","sourceRoot":"","sources":["../../src/tools/steering-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD,eAAO,MAAM,iBAAiB,EAAE,IAe/B,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBjG"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
export const steeringGuideTool = {
|
|
2
|
+
name: 'steering-guide',
|
|
3
|
+
description: `Load guide for creating project steering documents.
|
|
4
|
+
|
|
5
|
+
# Instructions
|
|
6
|
+
Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow. Provides templates and guidance for product.md, tech.md, and structure.md creation. Its important that you follow this workflow exactly to avoid errors.`,
|
|
7
|
+
inputSchema: {
|
|
8
|
+
type: 'object',
|
|
9
|
+
properties: {},
|
|
10
|
+
additionalProperties: false
|
|
11
|
+
},
|
|
12
|
+
annotations: {
|
|
13
|
+
title: 'Steering Guide',
|
|
14
|
+
readOnlyHint: true,
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export async function steeringGuideHandler(args, context) {
|
|
18
|
+
return {
|
|
19
|
+
success: true,
|
|
20
|
+
message: 'Steering workflow guide loaded - follow this workflow exactly to avoid errors',
|
|
21
|
+
data: {
|
|
22
|
+
guide: getSteeringGuide(),
|
|
23
|
+
dashboardUrl: context.dashboardUrl
|
|
24
|
+
},
|
|
25
|
+
nextSteps: [
|
|
26
|
+
'Only proceed if user requested steering docs',
|
|
27
|
+
'Create product.md first',
|
|
28
|
+
'Then tech.md and structure.md',
|
|
29
|
+
'Reference in future specs',
|
|
30
|
+
context.dashboardUrl ? `Dashboard: ${context.dashboardUrl}` : 'Start the dashboard with: spec-workflow-mcp --dashboard'
|
|
31
|
+
]
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function getSteeringGuide() {
|
|
35
|
+
return `# Steering Workflow
|
|
36
|
+
|
|
37
|
+
## Overview
|
|
38
|
+
|
|
39
|
+
Create project-level guidance documents when explicitly requested. Steering docs establish vision, architecture, and conventions for established codebases. Its important that you follow this workflow exactly to avoid errors.
|
|
40
|
+
|
|
41
|
+
## Workflow Diagram
|
|
42
|
+
|
|
43
|
+
\`\`\`mermaid
|
|
44
|
+
flowchart TD
|
|
45
|
+
Start([Start: Setup steering docs]) --> Guide[steering-guide<br/>Load workflow instructions]
|
|
46
|
+
|
|
47
|
+
%% Phase 1: Product
|
|
48
|
+
Guide --> P1_Template[Check user-templates first,<br/>then read template:<br/>product-template.md]
|
|
49
|
+
P1_Template --> P1_Generate[Generate vision & goals]
|
|
50
|
+
P1_Generate --> P1_Create[Create file:<br/>.spec-workflow/steering/<br/>product.md]
|
|
51
|
+
P1_Create --> P1_Approve[approvals<br/>action: request<br/>filePath only]
|
|
52
|
+
P1_Approve --> P1_Status[approvals<br/>action: status<br/>poll status]
|
|
53
|
+
P1_Status --> P1_Check{Status?}
|
|
54
|
+
P1_Check -->|needs-revision| P1_Update[Update document using user comments for guidance]
|
|
55
|
+
P1_Update --> P1_Create
|
|
56
|
+
P1_Check -->|approved| P1_Clean[approvals<br/>action: delete]
|
|
57
|
+
P1_Clean -->|failed| P1_Status
|
|
58
|
+
|
|
59
|
+
%% Phase 2: Tech
|
|
60
|
+
P1_Clean -->|success| P2_Template[Check user-templates first,<br/>then read template:<br/>tech-template.md]
|
|
61
|
+
P2_Template --> P2_Analyze[Analyze tech stack]
|
|
62
|
+
P2_Analyze --> P2_Create[Create file:<br/>.spec-workflow/steering/<br/>tech.md]
|
|
63
|
+
P2_Create --> P2_Approve[approvals<br/>action: request<br/>filePath only]
|
|
64
|
+
P2_Approve --> P2_Status[approvals<br/>action: status<br/>poll status]
|
|
65
|
+
P2_Status --> P2_Check{Status?}
|
|
66
|
+
P2_Check -->|needs-revision| P2_Update[Update document using user comments for guidance]
|
|
67
|
+
P2_Update --> P2_Create
|
|
68
|
+
P2_Check -->|approved| P2_Clean[approvals<br/>action: delete]
|
|
69
|
+
P2_Clean -->|failed| P2_Status
|
|
70
|
+
|
|
71
|
+
%% Phase 3: Structure
|
|
72
|
+
P2_Clean -->|success| P3_Template[Check user-templates first,<br/>then read template:<br/>structure-template.md]
|
|
73
|
+
P3_Template --> P3_Analyze[Analyze codebase structure]
|
|
74
|
+
P3_Analyze --> P3_Create[Create file:<br/>.spec-workflow/steering/<br/>structure.md]
|
|
75
|
+
P3_Create --> P3_Approve[approvals<br/>action: request<br/>filePath only]
|
|
76
|
+
P3_Approve --> P3_Status[approvals<br/>action: status<br/>poll status]
|
|
77
|
+
P3_Status --> P3_Check{Status?}
|
|
78
|
+
P3_Check -->|needs-revision| P3_Update[Update document using user comments for guidance]
|
|
79
|
+
P3_Update --> P3_Create
|
|
80
|
+
P3_Check -->|approved| P3_Clean[approvals<br/>action: delete]
|
|
81
|
+
P3_Clean -->|failed| P3_Status
|
|
82
|
+
|
|
83
|
+
P3_Clean -->|success| Complete([Steering docs complete])
|
|
84
|
+
|
|
85
|
+
style Start fill:#e6f3ff
|
|
86
|
+
style Complete fill:#e6f3ff
|
|
87
|
+
style P1_Check fill:#ffe6e6
|
|
88
|
+
style P2_Check fill:#ffe6e6
|
|
89
|
+
style P3_Check fill:#ffe6e6
|
|
90
|
+
\`\`\`
|
|
91
|
+
|
|
92
|
+
## Steering Workflow Phases
|
|
93
|
+
|
|
94
|
+
### Phase 1: Product Document
|
|
95
|
+
**Purpose**: Define vision, goals, and user outcomes.
|
|
96
|
+
|
|
97
|
+
**File Operations**:
|
|
98
|
+
- Check for custom template: \`.spec-workflow/user-templates/product-template.md\`
|
|
99
|
+
- Read template: \`.spec-workflow/templates/product-template.md\` (if no custom template)
|
|
100
|
+
- Create document: \`.spec-workflow/steering/product.md\`
|
|
101
|
+
|
|
102
|
+
**Tools**:
|
|
103
|
+
- steering-guide: Load workflow instructions
|
|
104
|
+
- approvals: Manage approval workflow (actions: request, status, delete)
|
|
105
|
+
|
|
106
|
+
**Process**:
|
|
107
|
+
1. Load steering guide for workflow overview
|
|
108
|
+
2. Check for custom template at \`.spec-workflow/user-templates/product-template.md\`
|
|
109
|
+
3. If no custom template, read from \`.spec-workflow/templates/product-template.md\`
|
|
110
|
+
4. Generate product vision and goals
|
|
111
|
+
5. Create \`product.md\` at \`.spec-workflow/steering/product.md\`
|
|
112
|
+
6. Request approval using approvals tool with action:'request' (filePath only)
|
|
113
|
+
7. Poll status using approvals with action:'status' until approved/needs-revision (NEVER accept verbal approval)
|
|
114
|
+
8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
|
|
115
|
+
9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
|
|
116
|
+
10. If delete fails: STOP - return to polling
|
|
117
|
+
|
|
118
|
+
### Phase 2: Tech Document
|
|
119
|
+
**Purpose**: Document technology decisions and architecture.
|
|
120
|
+
|
|
121
|
+
**File Operations**:
|
|
122
|
+
- Check for custom template: \`.spec-workflow/user-templates/tech-template.md\`
|
|
123
|
+
- Read template: \`.spec-workflow/templates/tech-template.md\` (if no custom template)
|
|
124
|
+
- Create document: \`.spec-workflow/steering/tech.md\`
|
|
125
|
+
|
|
126
|
+
**Tools**:
|
|
127
|
+
- approvals: Manage approval workflow (actions: request, status, delete)
|
|
128
|
+
|
|
129
|
+
**Process**:
|
|
130
|
+
1. Check for custom template at \`.spec-workflow/user-templates/tech-template.md\`
|
|
131
|
+
2. If no custom template, read from \`.spec-workflow/templates/tech-template.md\`
|
|
132
|
+
3. Analyze existing technology stack
|
|
133
|
+
4. Document architectural decisions and patterns
|
|
134
|
+
5. Create \`tech.md\` at \`.spec-workflow/steering/tech.md\`
|
|
135
|
+
6. Request approval using approvals tool with action:'request'
|
|
136
|
+
7. Poll status using approvals with action:'status' until approved/needs-revision
|
|
137
|
+
8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
|
|
138
|
+
9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
|
|
139
|
+
10. If delete fails: STOP - return to polling
|
|
140
|
+
|
|
141
|
+
### Phase 3: Structure Document
|
|
142
|
+
**Purpose**: Map codebase organization and patterns.
|
|
143
|
+
|
|
144
|
+
**File Operations**:
|
|
145
|
+
- Check for custom template: \`.spec-workflow/user-templates/structure-template.md\`
|
|
146
|
+
- Read template: \`.spec-workflow/templates/structure-template.md\` (if no custom template)
|
|
147
|
+
- Create document: \`.spec-workflow/steering/structure.md\`
|
|
148
|
+
|
|
149
|
+
**Tools**:
|
|
150
|
+
- approvals: Manage approval workflow (actions: request, status, delete)
|
|
151
|
+
|
|
152
|
+
**Process**:
|
|
153
|
+
1. Check for custom template at \`.spec-workflow/user-templates/structure-template.md\`
|
|
154
|
+
2. If no custom template, read from \`.spec-workflow/templates/structure-template.md\`
|
|
155
|
+
3. Analyze directory structure and file organization
|
|
156
|
+
4. Document coding patterns and conventions
|
|
157
|
+
5. Create \`structure.md\` at \`.spec-workflow/steering/structure.md\`
|
|
158
|
+
6. Request approval using approvals tool with action:'request'
|
|
159
|
+
7. Poll status using approvals with action:'status' until approved/needs-revision
|
|
160
|
+
8. If needs-revision: update document using comments, create NEW approval, do NOT proceed
|
|
161
|
+
9. Once approved: use approvals with action:'delete' (must succeed) before proceeding
|
|
162
|
+
10. If delete fails: STOP - return to polling
|
|
163
|
+
11. After successful cleanup: "Steering docs complete. Ready for spec creation?"
|
|
164
|
+
|
|
165
|
+
## Workflow Rules
|
|
166
|
+
|
|
167
|
+
- Create documents directly at specified file paths
|
|
168
|
+
- Check for custom templates in \`.spec-workflow/user-templates/\` first
|
|
169
|
+
- Read templates from \`.spec-workflow/templates/\` directory if no custom template exists
|
|
170
|
+
- Follow exact template structures
|
|
171
|
+
- Get explicit user approval between phases (using approvals tool with action:'request')
|
|
172
|
+
- Complete phases in sequence (no skipping)
|
|
173
|
+
- Approval requests: provide filePath only, never content
|
|
174
|
+
- BLOCKING: Never proceed if approval delete fails
|
|
175
|
+
- CRITICAL: Must have approved status AND successful cleanup before next phase
|
|
176
|
+
- CRITICAL: Verbal approval is NEVER accepted - dashboard or VS Code extension only
|
|
177
|
+
- NEVER proceed on user saying "approved" - check system status only
|
|
178
|
+
|
|
179
|
+
## File Structure
|
|
180
|
+
\`\`\`
|
|
181
|
+
.spec-workflow/
|
|
182
|
+
├── templates/ # Auto-populated on server start
|
|
183
|
+
│ ├── product-template.md
|
|
184
|
+
│ ├── tech-template.md
|
|
185
|
+
│ └── structure-template.md
|
|
186
|
+
└── steering/
|
|
187
|
+
├── product.md
|
|
188
|
+
├── tech.md
|
|
189
|
+
└── structure.md
|
|
190
|
+
\`\`\``;
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=steering-guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steering-guide.js","sourceRoot":"","sources":["../../src/tools/steering-guide.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE;;;ySAG0R;IACvS,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,KAAK;KAC5B;IACD,WAAW,EAAE;QACX,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,IAAI;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAS,EAAE,OAAoB;IACxE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,+EAA+E;QACxF,IAAI,EAAE;YACJ,KAAK,EAAE,gBAAgB,EAAE;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC;QACD,SAAS,EAAE;YACT,8CAA8C;YAC9C,yBAAyB;YACzB,+BAA+B;YAC/B,2BAA2B;YAC3B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,yDAAyD;SACxH;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2JF,CAAC;AACR,CAAC"}
|