@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 @@
|
|
|
1
|
+
{"version":3,"file":"create-steering-doc.d.ts","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA+E9C,eAAO,MAAM,uBAAuB,EAAE,gBAGrC,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
const prompt = {
|
|
2
|
+
name: 'create-steering-doc',
|
|
3
|
+
title: 'Create Steering Document',
|
|
4
|
+
description: 'Guide for creating project steering documents (product, tech, structure) directly in the file system. These provide high-level project guidance.',
|
|
5
|
+
arguments: [
|
|
6
|
+
{
|
|
7
|
+
name: 'docType',
|
|
8
|
+
description: 'Type of steering document: product, tech, or structure',
|
|
9
|
+
required: true
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'scope',
|
|
13
|
+
description: 'Scope of the steering document (e.g., frontend, backend, full-stack)',
|
|
14
|
+
required: false
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
};
|
|
18
|
+
async function handler(args, context) {
|
|
19
|
+
const { docType, scope } = args;
|
|
20
|
+
if (!docType) {
|
|
21
|
+
throw new Error('docType is a required argument');
|
|
22
|
+
}
|
|
23
|
+
const validDocTypes = ['product', 'tech', 'structure'];
|
|
24
|
+
// ダッシュボードのプレビュー用サンプルコンテキストではバリデーションをスキップ
|
|
25
|
+
const isPreviewContext = context.projectPath === '{{projectPath}}';
|
|
26
|
+
if (!isPreviewContext && !validDocTypes.includes(docType)) {
|
|
27
|
+
throw new Error(`docType must be one of: ${validDocTypes.join(', ')}`);
|
|
28
|
+
}
|
|
29
|
+
const messages = [
|
|
30
|
+
{
|
|
31
|
+
role: 'user',
|
|
32
|
+
content: {
|
|
33
|
+
type: 'text',
|
|
34
|
+
text: `Create a ${docType} steering document for the project.
|
|
35
|
+
|
|
36
|
+
**Context:**
|
|
37
|
+
- Project: ${context.projectPath}
|
|
38
|
+
- Steering document type: ${docType}
|
|
39
|
+
${scope ? `- Scope: ${scope}` : ''}
|
|
40
|
+
${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
|
|
41
|
+
|
|
42
|
+
**Instructions:**
|
|
43
|
+
1. First, read the template at: .spec-workflow/templates/${docType}-template.md
|
|
44
|
+
2. Check if steering docs exist at: .spec-workflow/steering/
|
|
45
|
+
3. Create comprehensive content following the template structure
|
|
46
|
+
4. Create the document at: .spec-workflow/steering/${docType}.md
|
|
47
|
+
5. After creating, use approvals tool with action:'request' to get user approval
|
|
48
|
+
|
|
49
|
+
**File Paths:**
|
|
50
|
+
- Template location: .spec-workflow/templates/${docType}-template.md
|
|
51
|
+
- Document destination: .spec-workflow/steering/${docType}.md
|
|
52
|
+
|
|
53
|
+
**Steering Document Types:**
|
|
54
|
+
- **product**: Defines project vision, goals, and user outcomes
|
|
55
|
+
- **tech**: Documents technology decisions and architecture patterns
|
|
56
|
+
- **structure**: Maps codebase organization and conventions
|
|
57
|
+
|
|
58
|
+
**Key Principles:**
|
|
59
|
+
- Be specific and actionable
|
|
60
|
+
- Include examples where helpful
|
|
61
|
+
- Consider both technical and business requirements
|
|
62
|
+
- Provide clear guidance for future development
|
|
63
|
+
- Templates are automatically updated on server start
|
|
64
|
+
|
|
65
|
+
Please read the ${docType} template and create a comprehensive steering document at the specified path.`
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
];
|
|
69
|
+
return messages;
|
|
70
|
+
}
|
|
71
|
+
export const createSteeringDocPrompt = {
|
|
72
|
+
prompt,
|
|
73
|
+
handler
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=create-steering-doc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-steering-doc.js","sourceRoot":"","sources":["../../src/prompts/create-steering-doc.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,kJAAkJ;IAC/J,SAAS,EAAE;QACT;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,sEAAsE;YACnF,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEhC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,yCAAyC;IACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,WAAW,KAAK,iBAAiB,CAAC;IACnE,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,OAAO;;;aAGpB,OAAO,CAAC,WAAW;4BACJ,OAAO;EACjC,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;EAChC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;2DAGT,OAAO;;;qDAGb,OAAO;;;;gDAIZ,OAAO;kDACL,OAAO;;;;;;;;;;;;;;kBAcvC,OAAO,+EAA+E;aACjG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACvD,MAAM;IACN,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implement-task.d.ts","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAiL9C,eAAO,MAAM,mBAAmB,EAAE,gBAGjC,CAAC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
const prompt = {
|
|
2
|
+
name: 'implement-task',
|
|
3
|
+
title: 'Implement Specification Task',
|
|
4
|
+
description: 'Guide for implementing a specific task from the tasks.md document using TDD (Red-Green-Refactor). Provides comprehensive instructions for task execution including writing tests first, implementing minimal code, refactoring, and logging implementation details for the dashboard.',
|
|
5
|
+
arguments: [
|
|
6
|
+
{
|
|
7
|
+
name: 'specName',
|
|
8
|
+
description: 'Feature name in kebab-case for the task to implement',
|
|
9
|
+
required: true
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'taskId',
|
|
13
|
+
description: 'Specific task ID to implement (e.g., "1", "2.1", "3")',
|
|
14
|
+
required: false
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
};
|
|
18
|
+
async function handler(args, context) {
|
|
19
|
+
const { specName, taskId } = args;
|
|
20
|
+
if (!specName) {
|
|
21
|
+
throw new Error('specName is a required argument');
|
|
22
|
+
}
|
|
23
|
+
const messages = [
|
|
24
|
+
{
|
|
25
|
+
role: 'user',
|
|
26
|
+
content: {
|
|
27
|
+
type: 'text',
|
|
28
|
+
text: `Implement ${taskId ? `task ${taskId}` : 'the next pending task'} for the "${specName}" feature using TDD (Red-Green-Refactor).
|
|
29
|
+
|
|
30
|
+
**Context:**
|
|
31
|
+
- Project: ${context.projectPath}
|
|
32
|
+
- Feature: ${specName}
|
|
33
|
+
${taskId ? `- Task ID: ${taskId}` : ''}
|
|
34
|
+
${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
|
|
35
|
+
|
|
36
|
+
**TDD Implementation Workflow:**
|
|
37
|
+
|
|
38
|
+
1. **Check Current Status:**
|
|
39
|
+
- Use the spec-status tool with specName "${specName}" to see overall progress
|
|
40
|
+
- Read .spec-workflow/specs/${specName}/tasks.md to see all tasks
|
|
41
|
+
- Identify ${taskId ? `task ${taskId}` : 'the next pending task marked with [ ]'}
|
|
42
|
+
|
|
43
|
+
2. **Start the Task:**
|
|
44
|
+
- Edit .spec-workflow/specs/${specName}/tasks.md directly
|
|
45
|
+
- Change the task marker from [ ] to [-] for the task you're starting
|
|
46
|
+
- Only one task should be in-progress at a time
|
|
47
|
+
|
|
48
|
+
3. **Read Task Guidance:**
|
|
49
|
+
- Look for the _Prompt field in the task - it contains structured guidance:
|
|
50
|
+
- Role: The specialized developer role to assume
|
|
51
|
+
- Task: Clear description with context references
|
|
52
|
+
- Restrictions: What not to do and constraints
|
|
53
|
+
- Success: Specific completion criteria
|
|
54
|
+
- Note the _Leverage fields for files/utilities to use
|
|
55
|
+
- Check _Requirements fields for which requirements this implements
|
|
56
|
+
|
|
57
|
+
4. **Phase Review Tasks (Special Handling):**
|
|
58
|
+
- If the task has \`_PhaseReview: true_\`, **skip steps 5-10** (the TDD cycle)
|
|
59
|
+
- Instead: run the full test suite → code review all phase changes → commit with phase summary
|
|
60
|
+
- Then proceed directly to step 11 (Log)
|
|
61
|
+
|
|
62
|
+
5. **Discover Existing Implementations (CRITICAL):**
|
|
63
|
+
- BEFORE writing any code, search implementation logs to understand existing artifacts
|
|
64
|
+
- Implementation logs are stored as markdown files in: .spec-workflow/specs/${specName}/Implementation Logs/
|
|
65
|
+
|
|
66
|
+
**Option 1: Use grep/ripgrep for fast searches**
|
|
67
|
+
\`\`\`bash
|
|
68
|
+
# Search for API endpoints
|
|
69
|
+
grep -r "GET\\|POST\\|PUT\\|DELETE" ".spec-workflow/specs/${specName}/Implementation Logs/"
|
|
70
|
+
|
|
71
|
+
# Search for specific components
|
|
72
|
+
grep -r "ComponentName" ".spec-workflow/specs/${specName}/Implementation Logs/"
|
|
73
|
+
|
|
74
|
+
# Search for integration patterns
|
|
75
|
+
grep -r "integration\\|dataFlow" ".spec-workflow/specs/${specName}/Implementation Logs/"
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
**Option 2: Read markdown files directly**
|
|
79
|
+
- Use the Read tool to examine implementation log files
|
|
80
|
+
- Review artifacts from related tasks to understand established patterns
|
|
81
|
+
|
|
82
|
+
6. **RED — Write Failing Tests:**
|
|
83
|
+
- Spawn a subagent using the Agent tool with subagent_type "general-purpose"
|
|
84
|
+
- The subagent should follow the /spec-impl-test-write skill instructions
|
|
85
|
+
- Provide: project path, spec name, task ID, full _Prompt content, design doc path
|
|
86
|
+
- If the task has a \`_TestFocus\` field, pass it to the subagent as "Test focus areas: {_TestFocus content}"
|
|
87
|
+
- The subagent writes tests that MUST FAIL (production code doesn't exist yet)
|
|
88
|
+
- Capture: test file paths and test runner command
|
|
89
|
+
|
|
90
|
+
7. **Verify Red — All Tests Must Fail:**
|
|
91
|
+
- Spawn a subagent using the Agent tool with subagent_type "general-purpose"
|
|
92
|
+
- The subagent should follow the /spec-impl-test-run skill instructions
|
|
93
|
+
- Provide: project path, test file paths, expected mode "red"
|
|
94
|
+
- ALL tests must fail. If any pass, investigate and fix the tests.
|
|
95
|
+
|
|
96
|
+
8. **GREEN — Write Minimal Production Code:**
|
|
97
|
+
- Spawn a subagent using the Agent tool with subagent_type "general-purpose"
|
|
98
|
+
- The subagent should follow the /spec-impl-code skill instructions
|
|
99
|
+
- Provide: project path, spec name, task ID, _Prompt content, test file paths, _Leverage files
|
|
100
|
+
- Write ONLY enough code to make the tests pass (YAGNI)
|
|
101
|
+
- Do NOT modify test files
|
|
102
|
+
- Capture: implementation file paths
|
|
103
|
+
|
|
104
|
+
9. **Verify Green — All Tests Must Pass:**
|
|
105
|
+
- Spawn a subagent using the Agent tool with subagent_type "general-purpose"
|
|
106
|
+
- The subagent should follow the /spec-impl-test-run skill instructions
|
|
107
|
+
- Provide: project path, test file paths, expected mode "green"
|
|
108
|
+
- ALL tests must pass. If any fail, fix the implementation and retry (max 3 attempts).
|
|
109
|
+
|
|
110
|
+
10. **REFACTOR — Review and Clean Up:**
|
|
111
|
+
- Spawn a subagent using the Agent tool with subagent_type "general-purpose"
|
|
112
|
+
- The subagent should follow the /spec-impl-review skill instructions
|
|
113
|
+
- Provide: project path, spec name, task ID, _Prompt content, test files, implementation files, success criteria
|
|
114
|
+
- Refactor for clarity and maintainability WITHOUT changing behavior
|
|
115
|
+
- Do NOT change test expectations or add new features
|
|
116
|
+
|
|
117
|
+
11. **Verify Refactor — Tests Still Pass:**
|
|
118
|
+
- Spawn a subagent to run tests again in "green" mode
|
|
119
|
+
- If tests fail after refactoring, revert the refactoring changes
|
|
120
|
+
|
|
121
|
+
12. **Log Implementation (MANDATORY - must complete BEFORE marking task done):**
|
|
122
|
+
- ⚠️ **STOP: Do NOT mark the task [x] until this step succeeds.**
|
|
123
|
+
- A task without an implementation log is NOT complete. Skipping this step is the #1 workflow violation.
|
|
124
|
+
- Call log-implementation with ALL of the following:
|
|
125
|
+
- specName: "${specName}"
|
|
126
|
+
- taskId: ${taskId ? `"${taskId}"` : 'the task ID you just completed'}
|
|
127
|
+
- summary: Clear description of what was implemented (1-2 sentences)
|
|
128
|
+
- filesModified: List of files you edited
|
|
129
|
+
- filesCreated: List of files you created — **include test files**
|
|
130
|
+
- statistics: {linesAdded: number, linesRemoved: number}
|
|
131
|
+
- artifacts: {apiEndpoints: [...], components: [...], functions: [...], classes: [...], integrations: [...]}
|
|
132
|
+
- You MUST include artifacts (required field) to enable other agents to find your work
|
|
133
|
+
- Why: Future AI agents will query logs before implementing, preventing duplicate code
|
|
134
|
+
|
|
135
|
+
13. **Complete the Task (only after step 12 succeeds):**
|
|
136
|
+
- Confirm that log-implementation returned success in step 12
|
|
137
|
+
- Verify all success criteria from the _Prompt are met
|
|
138
|
+
- Edit .spec-workflow/specs/${specName}/tasks.md directly
|
|
139
|
+
- Change the task marker from [-] to [x] for the completed task
|
|
140
|
+
- ⚠️ If you skipped step 12, go back now — a task marked [x] without a log is incomplete
|
|
141
|
+
|
|
142
|
+
**Important Guidelines:**
|
|
143
|
+
- Always mark a task as in-progress before starting work
|
|
144
|
+
- Follow TDD strictly: RED (tests first) → GREEN (minimal code) → REFACTOR (clean up)
|
|
145
|
+
- For \`_PhaseReview: true_\` tasks, skip the TDD cycle — run tests, review, commit instead (step 4)
|
|
146
|
+
- Each TDD phase runs as a separate subagent for isolation
|
|
147
|
+
- Pass \`_TestFocus\` content to the RED phase subagent when available
|
|
148
|
+
- Use existing patterns and utilities mentioned in _Leverage fields
|
|
149
|
+
- Include test files in filesCreated when logging implementation
|
|
150
|
+
- **ALWAYS call log-implementation BEFORE marking a task [x]**
|
|
151
|
+
- If a task has subtasks (e.g., 4.1, 4.2), complete them in order
|
|
152
|
+
- If you encounter blockers, document them and move to another task
|
|
153
|
+
|
|
154
|
+
**Tools to Use:**
|
|
155
|
+
- spec-status: Check overall progress
|
|
156
|
+
- Agent: Spawn subagents for TDD phases (test-write, test-run, code, review)
|
|
157
|
+
- Bash (grep/ripgrep): CRITICAL - Search existing implementations before coding (step 5)
|
|
158
|
+
- Read: Examine markdown implementation log files directly (step 5)
|
|
159
|
+
- log-implementation: MANDATORY - Record implementation details with artifacts BEFORE marking task complete (step 12)
|
|
160
|
+
- Edit: Directly update task markers in tasks.md file
|
|
161
|
+
- Read/Write/Edit: Implement the actual code changes
|
|
162
|
+
- Bash: Run tests and verify implementation
|
|
163
|
+
|
|
164
|
+
Please proceed with implementing ${taskId ? `task ${taskId}` : 'the next task'} following this TDD workflow.`
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
];
|
|
168
|
+
return messages;
|
|
169
|
+
}
|
|
170
|
+
export const implementTaskPrompt = {
|
|
171
|
+
prompt,
|
|
172
|
+
handler
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=implement-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implement-task.js","sourceRoot":"","sources":["../../src/prompts/implement-task.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,8BAA8B;IACrC,WAAW,EAAE,uRAAuR;IACpS,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uBAAuB,aAAa,QAAQ;;;aAGtF,OAAO,CAAC,WAAW;aACnB,QAAQ;EACnB,MAAM,CAAC,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;EACpC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;+CAKrB,QAAQ;iCACtB,QAAQ;gBACzB,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,uCAAuC;;;iCAGlD,QAAQ;;;;;;;;;;;;;;;;;;;;iFAoBwC,QAAQ;;;;;+DAK1B,QAAQ;;;mDAGpB,QAAQ;;;4DAGC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAkDhD,QAAQ;iBACX,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,gCAAgC;;;;;;;;;;;;iCAYzC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;mCA0BN,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,eAAe,+BAA+B;aACtG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,MAAM;IACN,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Prompt, ListPromptsResult, GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { ToolContext } from '../types.js';
|
|
3
|
+
import { PromptDefinition } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Get all prompt definitions (used by dashboard API)
|
|
6
|
+
*/
|
|
7
|
+
export declare function getPromptDefinitions(): PromptDefinition[];
|
|
8
|
+
/**
|
|
9
|
+
* Get all registered prompts
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerPrompts(): Prompt[];
|
|
12
|
+
/**
|
|
13
|
+
* Handle prompts/list request
|
|
14
|
+
*/
|
|
15
|
+
export declare function handlePromptList(): Promise<ListPromptsResult>;
|
|
16
|
+
/**
|
|
17
|
+
* Handle prompts/get request
|
|
18
|
+
*/
|
|
19
|
+
export declare function handlePromptGet(name: string, args: Record<string, any> | undefined, context: ToolContext): Promise<GetPromptResult>;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,iBAAiB,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAG/G,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAsB7D;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,EAAE,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAInE;AAoCD;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAK,EAC9B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,CAAC,CA2B1B"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
// Import individual prompt definitions
|
|
4
|
+
import { createSpecPrompt } from './create-spec.js';
|
|
5
|
+
import { createSteeringDocPrompt } from './create-steering-doc.js';
|
|
6
|
+
import { implementTaskPrompt } from './implement-task.js';
|
|
7
|
+
import { specStatusPrompt } from './spec-status.js';
|
|
8
|
+
import { injectSpecWorkflowGuidePrompt } from './inject-spec-workflow-guide.js';
|
|
9
|
+
import { injectSteeringGuidePrompt } from './inject-steering-guide.js';
|
|
10
|
+
import { refreshTasksPrompt } from './refresh-tasks.js';
|
|
11
|
+
// Registry of all prompts
|
|
12
|
+
const promptDefinitions = [
|
|
13
|
+
createSpecPrompt,
|
|
14
|
+
createSteeringDocPrompt,
|
|
15
|
+
implementTaskPrompt,
|
|
16
|
+
specStatusPrompt,
|
|
17
|
+
injectSpecWorkflowGuidePrompt,
|
|
18
|
+
injectSteeringGuidePrompt,
|
|
19
|
+
refreshTasksPrompt
|
|
20
|
+
];
|
|
21
|
+
/**
|
|
22
|
+
* Get all prompt definitions (used by dashboard API)
|
|
23
|
+
*/
|
|
24
|
+
export function getPromptDefinitions() {
|
|
25
|
+
return promptDefinitions;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get all registered prompts
|
|
29
|
+
*/
|
|
30
|
+
export function registerPrompts() {
|
|
31
|
+
return promptDefinitions.map(def => def.prompt);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Handle prompts/list request
|
|
35
|
+
*/
|
|
36
|
+
export async function handlePromptList() {
|
|
37
|
+
return {
|
|
38
|
+
prompts: registerPrompts()
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Read user prompt override file if it exists
|
|
43
|
+
*/
|
|
44
|
+
async function readUserPromptOverride(projectPath, name) {
|
|
45
|
+
try {
|
|
46
|
+
const filePath = join(projectPath, '.spec-workflow', 'user-prompts', `${name}.json`);
|
|
47
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
48
|
+
const data = JSON.parse(content);
|
|
49
|
+
if (data.customContent) {
|
|
50
|
+
return { customContent: data.customContent, lastModified: data.lastModified || '' };
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Replace template variables in custom prompt content
|
|
60
|
+
*/
|
|
61
|
+
function replaceTemplateVariables(content, args, context) {
|
|
62
|
+
let result = content;
|
|
63
|
+
// Replace context variables
|
|
64
|
+
result = result.replace(/\{\{projectPath\}\}/g, context.projectPath || '');
|
|
65
|
+
result = result.replace(/\{\{dashboardUrl\}\}/g, context.dashboardUrl || '');
|
|
66
|
+
// Replace all argument variables
|
|
67
|
+
for (const [key, value] of Object.entries(args)) {
|
|
68
|
+
if (typeof value === 'string') {
|
|
69
|
+
result = result.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Handle prompts/get request
|
|
76
|
+
*/
|
|
77
|
+
export async function handlePromptGet(name, args = {}, context) {
|
|
78
|
+
const promptDef = promptDefinitions.find(def => def.prompt.name === name);
|
|
79
|
+
if (!promptDef) {
|
|
80
|
+
throw new Error(`Prompt not found: ${name}`);
|
|
81
|
+
}
|
|
82
|
+
// Check for user prompt override
|
|
83
|
+
if (context.projectPath) {
|
|
84
|
+
const override = await readUserPromptOverride(context.projectPath, name);
|
|
85
|
+
if (override) {
|
|
86
|
+
const customText = replaceTemplateVariables(override.customContent, args, context);
|
|
87
|
+
return {
|
|
88
|
+
messages: [{
|
|
89
|
+
role: 'user',
|
|
90
|
+
content: { type: 'text', text: customText }
|
|
91
|
+
}]
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const messages = await promptDef.handler(args, context);
|
|
97
|
+
return { messages };
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
throw new Error(`Failed to generate prompt messages: ${error.message}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-spec-workflow-guide.d.ts","sourceRoot":"","sources":["../../src/prompts/inject-spec-workflow-guide.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA4D9C,eAAO,MAAM,6BAA6B,EAAE,gBAG3C,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { specWorkflowGuideHandler } from '../tools/spec-workflow-guide.js';
|
|
2
|
+
const prompt = {
|
|
3
|
+
name: 'inject-spec-workflow-guide',
|
|
4
|
+
title: 'Inject Spec Workflow Guide into Context',
|
|
5
|
+
description: 'Injects the complete spec-driven development workflow guide into the conversation context. This provides immediate access to all workflow phases, tools, and best practices without requiring separate tool calls.'
|
|
6
|
+
};
|
|
7
|
+
async function handler(args, context) {
|
|
8
|
+
let guide = '';
|
|
9
|
+
let dashboardUrl;
|
|
10
|
+
let nextSteps = [];
|
|
11
|
+
try {
|
|
12
|
+
const toolResponse = await specWorkflowGuideHandler({}, context);
|
|
13
|
+
guide = toolResponse.data?.guide || '';
|
|
14
|
+
dashboardUrl = toolResponse.data?.dashboardUrl;
|
|
15
|
+
nextSteps = toolResponse.nextSteps || [];
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
if (context.projectPath === '{{projectPath}}') {
|
|
19
|
+
// ダッシュボードのプレビュー用サンプルコンテキストではプレースホルダーを表示
|
|
20
|
+
guide = '(ワークフローガイドはプロジェクトコンテキストで生成されます)';
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// 本番コンテキストではエラーを上位レイヤーに伝播させる
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const messages = [
|
|
28
|
+
{
|
|
29
|
+
role: 'user',
|
|
30
|
+
content: {
|
|
31
|
+
type: 'text',
|
|
32
|
+
text: `Please review and follow this comprehensive spec-driven development workflow guide:
|
|
33
|
+
|
|
34
|
+
${guide}
|
|
35
|
+
|
|
36
|
+
**Current Context:**
|
|
37
|
+
- Project: ${context.projectPath}
|
|
38
|
+
${dashboardUrl ? `- Dashboard: ${dashboardUrl}` : '- Dashboard: Please start the dashboard or use VS Code extension "Spec Workflow MCP"'}
|
|
39
|
+
|
|
40
|
+
**Next Steps:**
|
|
41
|
+
${nextSteps.map(step => `- ${step}`).join('\n')}
|
|
42
|
+
|
|
43
|
+
**Important Instructions:**
|
|
44
|
+
1. This guide has been injected into your context for immediate reference
|
|
45
|
+
2. Follow the workflow sequence exactly: Requirements → Design → Test Design → Tasks → Implementation
|
|
46
|
+
3. Use the MCP tools mentioned in the guide to execute each phase
|
|
47
|
+
4. Always request approval between phases using the approvals tool
|
|
48
|
+
5. Never proceed to the next phase without successful approval cleanup
|
|
49
|
+
|
|
50
|
+
Please acknowledge that you've reviewed this workflow guide and are ready to help with spec-driven development.`
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
return messages;
|
|
55
|
+
}
|
|
56
|
+
export const injectSpecWorkflowGuidePrompt = {
|
|
57
|
+
prompt,
|
|
58
|
+
handler
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=inject-spec-workflow-guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-spec-workflow-guide.js","sourceRoot":"","sources":["../../src/prompts/inject-spec-workflow-guide.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,4BAA4B;IAClC,KAAK,EAAE,yCAAyC;IAChD,WAAW,EAAE,oNAAoN;CAClO,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,YAAgC,CAAC;IACrC,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACjE,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACvC,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC;QAC/C,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,WAAW,KAAK,iBAAiB,EAAE,CAAC;YAC9C,wCAAwC;YACxC,KAAK,GAAG,iCAAiC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;;EAEZ,KAAK;;;aAGM,OAAO,CAAC,WAAW;EAC9B,YAAY,CAAC,CAAC,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC,sFAAsF;;;EAGtI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;gHASiE;aACzG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAqB;IAC7D,MAAM;IACN,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-steering-guide.d.ts","sourceRoot":"","sources":["../../src/prompts/inject-steering-guide.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgE9C,eAAO,MAAM,yBAAyB,EAAE,gBAGvC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { steeringGuideHandler } from '../tools/steering-guide.js';
|
|
2
|
+
const prompt = {
|
|
3
|
+
name: 'inject-steering-guide',
|
|
4
|
+
title: 'Inject Steering Guide into Context',
|
|
5
|
+
description: 'Injects the complete steering document workflow guide into the conversation context. This provides instructions for creating project-level guidance documents (product.md, tech.md, structure.md) when explicitly requested by the user.'
|
|
6
|
+
};
|
|
7
|
+
async function handler(args, context) {
|
|
8
|
+
let guide = '';
|
|
9
|
+
let dashboardUrl;
|
|
10
|
+
let nextSteps = [];
|
|
11
|
+
try {
|
|
12
|
+
const toolResponse = await steeringGuideHandler({}, context);
|
|
13
|
+
guide = toolResponse.data?.guide || '';
|
|
14
|
+
dashboardUrl = toolResponse.data?.dashboardUrl;
|
|
15
|
+
nextSteps = toolResponse.nextSteps || [];
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
if (context.projectPath === '{{projectPath}}') {
|
|
19
|
+
// ダッシュボードのプレビュー用サンプルコンテキストではプレースホルダーを表示
|
|
20
|
+
guide = '(ステアリングガイドはプロジェクトコンテキストで生成されます)';
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
// 本番コンテキストではエラーを上位レイヤーに伝播させる
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const messages = [
|
|
28
|
+
{
|
|
29
|
+
role: 'user',
|
|
30
|
+
content: {
|
|
31
|
+
type: 'text',
|
|
32
|
+
text: `Please review and follow this steering document workflow guide:
|
|
33
|
+
|
|
34
|
+
${guide}
|
|
35
|
+
|
|
36
|
+
**Current Context:**
|
|
37
|
+
- Project: ${context.projectPath}
|
|
38
|
+
${dashboardUrl ? `- Dashboard: ${dashboardUrl}` : '- Dashboard: Please start the dashboard or use VS Code extension "Spec Workflow MCP"'}
|
|
39
|
+
|
|
40
|
+
**Next Steps:**
|
|
41
|
+
${nextSteps.map(step => `- ${step}`).join('\n')}
|
|
42
|
+
|
|
43
|
+
**Important Instructions:**
|
|
44
|
+
1. This guide has been injected into your context for creating steering documents
|
|
45
|
+
2. Only proceed if the user explicitly requested steering document creation
|
|
46
|
+
3. Follow the sequence exactly: product.md → tech.md → structure.md
|
|
47
|
+
4. Read templates from .spec-workflow/templates/ directory
|
|
48
|
+
5. Create documents in .spec-workflow/steering/ directory
|
|
49
|
+
6. Request approval after each document using the approvals tool
|
|
50
|
+
7. Never proceed to the next document without successful approval cleanup
|
|
51
|
+
|
|
52
|
+
**Note:** Steering documents are NOT part of the standard spec workflow. They are project-level guidance documents that should only be created when explicitly requested by the user. These documents establish vision, architecture, and conventions for established codebases.
|
|
53
|
+
|
|
54
|
+
Please acknowledge that you've reviewed this steering workflow guide and confirm whether the user wants to create steering documents.`
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
return messages;
|
|
59
|
+
}
|
|
60
|
+
export const injectSteeringGuidePrompt = {
|
|
61
|
+
prompt,
|
|
62
|
+
handler
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=inject-steering-guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-steering-guide.js","sourceRoot":"","sources":["../../src/prompts/inject-steering-guide.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,uBAAuB;IAC7B,KAAK,EAAE,oCAAoC;IAC3C,WAAW,EAAE,0OAA0O;CACxP,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,YAAgC,CAAC;IACrC,IAAI,SAAS,GAAa,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACvC,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC;QAC/C,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,OAAO,CAAC,WAAW,KAAK,iBAAiB,EAAE,CAAC;YAC9C,wCAAwC;YACxC,KAAK,GAAG,iCAAiC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE;;EAEZ,KAAK;;;aAGM,OAAO,CAAC,WAAW;EAC9B,YAAY,CAAC,CAAC,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC,sFAAsF;;;EAGtI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;sIAauF;aAC/H;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,MAAM;IACN,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-tasks.d.ts","sourceRoot":"","sources":["../../src/prompts/refresh-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgP9C,eAAO,MAAM,kBAAkB,EAAE,gBAGhC,CAAC"}
|