@lbruton/spec-workflow-mcp 2.2.4
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/CHANGELOG.md +955 -0
- package/LICENSE +674 -0
- package/README.ar.md +314 -0
- package/README.de.md +314 -0
- package/README.es.md +314 -0
- package/README.fr.md +314 -0
- package/README.it.md +314 -0
- package/README.ja.md +316 -0
- package/README.ko.md +314 -0
- package/README.md +373 -0
- package/README.pt.md +314 -0
- package/README.ru.md +314 -0
- package/README.zh.md +314 -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 +344 -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 +643 -0
- package/dist/core/__tests__/security-utils.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 +237 -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 +126 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/path-utils.d.ts +63 -0
- package/dist/core/path-utils.d.ts.map +1 -0
- package/dist/core/path-utils.js +288 -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 +97 -0
- package/dist/core/security-utils.d.ts.map +1 -0
- package/dist/core/security-utils.js +264 -0
- package/dist/core/security-utils.js.map +1 -0
- package/dist/core/task-parser.d.ts +63 -0
- package/dist/core/task-parser.d.ts.map +1 -0
- package/dist/core/task-parser.js +332 -0
- package/dist/core/task-parser.js.map +1 -0
- package/dist/core/task-validator.d.ts +35 -0
- package/dist/core/task-validator.d.ts.map +1 -0
- package/dist/core/task-validator.js +236 -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 +165 -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 +69 -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 +116 -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 +586 -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 +586 -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 +1313 -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 +243 -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-C8LPXB-J.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-RidjsOEy.js +118 -0
- package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/dist/dashboard/public/assets/c4Diagram-c83219d4-CAH3hSpm.js +10 -0
- package/dist/dashboard/public/assets/channel-CmDIZRCD.js +1 -0
- package/dist/dashboard/public/assets/classDiagram-beda092f-Bo46Efmw.js +2 -0
- package/dist/dashboard/public/assets/classDiagram-v2-2358418a-Be57sb3z.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-BiekPeZp.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-YurEYFNx.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--BjsAXwD.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-BLGuJz36.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-C8vD2iEO.js +10 -0
- package/dist/dashboard/public/assets/flowDiagram-50d868cf-BhxgVmOU.js +4 -0
- package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-DvKCh0ha.js +1 -0
- package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-CxOZDcEC.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-vP9JOLba.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-Cw0sm0i1.js +70 -0
- package/dist/dashboard/public/assets/graph-DKTWMcEG.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-1zJPiVa8.js +3 -0
- package/dist/dashboard/public/assets/index-5325376f-DWs4kCT4.js +1 -0
- package/dist/dashboard/public/assets/index-BITJ9OoM.js +1 -0
- package/dist/dashboard/public/assets/index-C38JlXWp.js +1 -0
- package/dist/dashboard/public/assets/index-CCjPelL2.js +2 -0
- package/dist/dashboard/public/assets/index-CD9WQNmE.js +1 -0
- package/dist/dashboard/public/assets/index-CU7K5Zcb.js +1 -0
- package/dist/dashboard/public/assets/index-CXQVOhJV.js +1 -0
- package/dist/dashboard/public/assets/index-CXcaRrZ2.js +1 -0
- package/dist/dashboard/public/assets/index-ChLAL6g5.css +1 -0
- package/dist/dashboard/public/assets/index-D0o1vVOe.js +7 -0
- package/dist/dashboard/public/assets/index-DCsxqRvu.js +1 -0
- package/dist/dashboard/public/assets/index-DL3iiiRz.js +1 -0
- package/dist/dashboard/public/assets/index-DMv2_K2V.js +1 -0
- package/dist/dashboard/public/assets/index-DX7EEJ21.js +1 -0
- package/dist/dashboard/public/assets/index-Dey_HIH7.js +1 -0
- package/dist/dashboard/public/assets/index-DzDTRLhf.js +1 -0
- package/dist/dashboard/public/assets/index-OePkEWBg.js +1 -0
- package/dist/dashboard/public/assets/index-_d82jdTP.js +1 -0
- package/dist/dashboard/public/assets/index-yCKz4OXA.js +319 -0
- package/dist/dashboard/public/assets/infoDiagram-8eee0895-BRq08fZf.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-Cf8D2OC8.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-CVdidYA-.js +1 -0
- package/dist/dashboard/public/assets/line-BdckgA27.js +1 -0
- package/dist/dashboard/public/assets/linear-C9Nh3JLa.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-CK-y1AmO.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-T8V0JN2R.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-CmtVsb5L.js +7 -0
- package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
- package/dist/dashboard/public/assets/requirementDiagram-08caed73-BUcTnzDl.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-FswuxQ9M.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-BJQ15rhX.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-BfyE0DYv.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-pcGOYyiW.js +1 -0
- package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
- package/dist/dashboard/public/assets/styles-b4e223ce--lUviH7V.js +160 -0
- package/dist/dashboard/public/assets/styles-ca3715f6-BXbrD1Av.js +207 -0
- package/dist/dashboard/public/assets/styles-d45a18b0-GyiMrLKu.js +116 -0
- package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
- package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-DI4Z1GTS.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-B1IgohU4.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-B5oRDe_I.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 +96 -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 +139 -0
- package/dist/markdown/templates/tech-template.md +99 -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 +93 -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 +73 -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 +173 -0
- package/dist/prompts/implement-task.js.map +1 -0
- package/dist/prompts/index.d.ts +15 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +49 -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 +47 -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 +51 -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 +224 -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 +75 -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__/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 +490 -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 +397 -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 +178 -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 +291 -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 +172 -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 +105 -0
|
@@ -0,0 +1,173 @@
|
|
|
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. Provides comprehensive instructions for task execution, including reading _Prompt fields, marking progress, completion criteria, 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.
|
|
29
|
+
|
|
30
|
+
**Context:**
|
|
31
|
+
- Project: ${context.projectPath}
|
|
32
|
+
- Feature: ${specName}
|
|
33
|
+
${taskId ? `- Task ID: ${taskId}` : ''}
|
|
34
|
+
${context.dashboardUrl ? `- Dashboard: ${context.dashboardUrl}` : ''}
|
|
35
|
+
|
|
36
|
+
**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. **Discover Existing Implementations (CRITICAL):**
|
|
58
|
+
- BEFORE writing any code, search implementation logs to understand existing artifacts
|
|
59
|
+
- Implementation logs are stored as markdown files in: .spec-workflow/specs/${specName}/Implementation Logs/
|
|
60
|
+
|
|
61
|
+
**Option 1: Use grep/ripgrep for fast searches**
|
|
62
|
+
\`\`\`bash
|
|
63
|
+
# Search for API endpoints
|
|
64
|
+
grep -r "GET\|POST\|PUT\|DELETE" ".spec-workflow/specs/${specName}/Implementation Logs/"
|
|
65
|
+
|
|
66
|
+
# Search for specific components
|
|
67
|
+
grep -r "ComponentName" ".spec-workflow/specs/${specName}/Implementation Logs/"
|
|
68
|
+
|
|
69
|
+
# Search for integration patterns
|
|
70
|
+
grep -r "integration\|dataFlow" ".spec-workflow/specs/${specName}/Implementation Logs/"
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
**Option 2: Read markdown files directly**
|
|
74
|
+
- Use the Read tool to examine implementation log files
|
|
75
|
+
- Search for relevant sections (## API Endpoints, ## Components, ## Functions, etc.)
|
|
76
|
+
- Review artifacts from related tasks to understand established patterns
|
|
77
|
+
|
|
78
|
+
**Discovery best practices:**
|
|
79
|
+
- First: Search for "API" or "endpoint" to find existing API patterns
|
|
80
|
+
- Second: Search for "component" or specific component names to see existing UI structures
|
|
81
|
+
- Third: Search for "integration" or "dataFlow" to understand how frontend/backend connect
|
|
82
|
+
- Why this matters:
|
|
83
|
+
- ❌ Don't create duplicate API endpoints - check for similar paths
|
|
84
|
+
- ❌ Don't reimplement components/functions - verify utilities already don't exist
|
|
85
|
+
- ❌ Don't ignore established patterns - understand middleware/integration setup
|
|
86
|
+
- ✅ Reuse existing code - leverage already-implemented functions and components
|
|
87
|
+
- ✅ Follow patterns - maintain consistency with established architecture
|
|
88
|
+
- If initial search doesn't find expected results, refine your grep patterns
|
|
89
|
+
- Document any existing related implementations before proceeding
|
|
90
|
+
- If you find existing code that does what the task asks, leverage it instead of recreating
|
|
91
|
+
|
|
92
|
+
5. **Implement the Task:**
|
|
93
|
+
- Follow the _Prompt guidance exactly
|
|
94
|
+
- Use the files mentioned in _Leverage fields
|
|
95
|
+
- Create or modify the files specified in the task
|
|
96
|
+
- Write clean, well-commented code
|
|
97
|
+
- Follow existing patterns in the codebase
|
|
98
|
+
- Test your implementation thoroughly
|
|
99
|
+
|
|
100
|
+
6. **Log Implementation (MANDATORY - must complete BEFORE marking task done):**
|
|
101
|
+
- ⚠️ **STOP: Do NOT mark the task [x] until this step succeeds.**
|
|
102
|
+
- A task without an implementation log is NOT complete. Skipping this step is the #1 workflow violation.
|
|
103
|
+
- Call log-implementation with ALL of the following:
|
|
104
|
+
- specName: "${specName}"
|
|
105
|
+
- taskId: ${taskId ? `"${taskId}"` : 'the task ID you just completed'}
|
|
106
|
+
- summary: Clear description of what was implemented (1-2 sentences)
|
|
107
|
+
- filesModified: List of files you edited
|
|
108
|
+
- filesCreated: List of files you created
|
|
109
|
+
- statistics: {linesAdded: number, linesRemoved: number}
|
|
110
|
+
- artifacts: {apiEndpoints: [...], components: [...], functions: [...], classes: [...], integrations: [...]}
|
|
111
|
+
- You MUST include artifacts (required field) to enable other agents to find your work:
|
|
112
|
+
- **apiEndpoints**: List all API endpoints created/modified with method, path, purpose, request/response formats, and location
|
|
113
|
+
- **components**: List all UI components created with name, type, purpose, props, and location
|
|
114
|
+
- **functions**: List all utility functions with signature and location
|
|
115
|
+
- **classes**: List all classes with methods and location
|
|
116
|
+
- **integrations**: Document how frontend connects to backend with data flow description
|
|
117
|
+
- Example artifacts for an API endpoint:
|
|
118
|
+
\`\`\`json
|
|
119
|
+
"apiEndpoints": [{
|
|
120
|
+
"method": "GET",
|
|
121
|
+
"path": "/api/todos/:id",
|
|
122
|
+
"purpose": "Fetch a specific todo by ID",
|
|
123
|
+
"requestFormat": "URL param: id (string)",
|
|
124
|
+
"responseFormat": "{ id: string, title: string, completed: boolean }",
|
|
125
|
+
"location": "src/server.ts:245"
|
|
126
|
+
}]
|
|
127
|
+
\`\`\`
|
|
128
|
+
- Why: Future AI agents will query logs before implementing, preventing duplicate code and ensuring architecture consistency
|
|
129
|
+
- This creates a searchable knowledge base — without it, implementation knowledge is lost when the conversation ends
|
|
130
|
+
|
|
131
|
+
7. **Complete the Task (only after step 6 succeeds):**
|
|
132
|
+
- Confirm that log-implementation returned success in step 6
|
|
133
|
+
- Verify all success criteria from the _Prompt are met
|
|
134
|
+
- Run any relevant tests to ensure nothing is broken
|
|
135
|
+
- Edit .spec-workflow/specs/${specName}/tasks.md directly
|
|
136
|
+
- Change the task marker from [-] to [x] for the completed task
|
|
137
|
+
- ⚠️ If you skipped step 6, go back now — a task marked [x] without a log is incomplete
|
|
138
|
+
|
|
139
|
+
**Important Guidelines:**
|
|
140
|
+
- Always mark a task as in-progress before starting work
|
|
141
|
+
- Follow the _Prompt field guidance for role, approach, and success criteria
|
|
142
|
+
- Use existing patterns and utilities mentioned in _Leverage fields
|
|
143
|
+
- Test your implementation before marking the task complete
|
|
144
|
+
- **ALWAYS call log-implementation BEFORE marking a task [x]** — this is the most-skipped step and it is mandatory
|
|
145
|
+
- If a task has subtasks (e.g., 4.1, 4.2), complete them in order
|
|
146
|
+
- If you encounter blockers, document them and move to another task
|
|
147
|
+
|
|
148
|
+
**Tools to Use:**
|
|
149
|
+
- spec-status: Check overall progress
|
|
150
|
+
- Bash (grep/ripgrep): CRITICAL - Search existing implementations before coding (step 4)
|
|
151
|
+
- Read: Examine markdown implementation log files directly (step 4)
|
|
152
|
+
- log-implementation: MANDATORY - Record implementation details with artifacts BEFORE marking task complete (step 6)
|
|
153
|
+
- Edit: Directly update task markers in tasks.md file
|
|
154
|
+
- Read/Write/Edit: Implement the actual code changes
|
|
155
|
+
- Bash: Run tests and verify implementation
|
|
156
|
+
|
|
157
|
+
**View Implementation Logs:**
|
|
158
|
+
- All logged implementations appear in the "Logs" tab of the dashboard
|
|
159
|
+
- Filter by spec, task ID, or search by summary
|
|
160
|
+
- View detailed statistics including files changed and lines modified
|
|
161
|
+
- Or search directly using grep on markdown files in .spec-workflow/specs/{specName}/Implementation Logs/
|
|
162
|
+
|
|
163
|
+
Please proceed with implementing ${taskId ? `task ${taskId}` : 'the next task'} following this workflow.`
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
];
|
|
167
|
+
return messages;
|
|
168
|
+
}
|
|
169
|
+
export const implementTaskPrompt = {
|
|
170
|
+
prompt,
|
|
171
|
+
handler
|
|
172
|
+
};
|
|
173
|
+
//# 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,2PAA2P;IACxQ,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;;;;;;;;;;;;;;;iFAewC,QAAQ;;;;;4DAK7B,QAAQ;;;mDAGjB,QAAQ;;;2DAGA,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAkC/C,QAAQ;iBACX,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA8BzC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCA4BN,MAAM,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC,eAAe,2BAA2B;aAClG;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,MAAM;IACN,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Prompt, ListPromptsResult, GetPromptResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { ToolContext } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get all registered prompts
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerPrompts(): Prompt[];
|
|
7
|
+
/**
|
|
8
|
+
* Handle prompts/list request
|
|
9
|
+
*/
|
|
10
|
+
export declare function handlePromptList(): Promise<ListPromptsResult>;
|
|
11
|
+
/**
|
|
12
|
+
* Handle prompts/get request
|
|
13
|
+
*/
|
|
14
|
+
export declare function handlePromptGet(name: string, args: Record<string, any> | undefined, context: ToolContext): Promise<GetPromptResult>;
|
|
15
|
+
//# 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;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAuB1C;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAInE;AAED;;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,CAa1B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Import individual prompt definitions
|
|
2
|
+
import { createSpecPrompt } from './create-spec.js';
|
|
3
|
+
import { createSteeringDocPrompt } from './create-steering-doc.js';
|
|
4
|
+
import { implementTaskPrompt } from './implement-task.js';
|
|
5
|
+
import { specStatusPrompt } from './spec-status.js';
|
|
6
|
+
import { injectSpecWorkflowGuidePrompt } from './inject-spec-workflow-guide.js';
|
|
7
|
+
import { injectSteeringGuidePrompt } from './inject-steering-guide.js';
|
|
8
|
+
import { refreshTasksPrompt } from './refresh-tasks.js';
|
|
9
|
+
// Registry of all prompts
|
|
10
|
+
const promptDefinitions = [
|
|
11
|
+
createSpecPrompt,
|
|
12
|
+
createSteeringDocPrompt,
|
|
13
|
+
implementTaskPrompt,
|
|
14
|
+
specStatusPrompt,
|
|
15
|
+
injectSpecWorkflowGuidePrompt,
|
|
16
|
+
injectSteeringGuidePrompt,
|
|
17
|
+
refreshTasksPrompt
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* Get all registered prompts
|
|
21
|
+
*/
|
|
22
|
+
export function registerPrompts() {
|
|
23
|
+
return promptDefinitions.map(def => def.prompt);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Handle prompts/list request
|
|
27
|
+
*/
|
|
28
|
+
export async function handlePromptList() {
|
|
29
|
+
return {
|
|
30
|
+
prompts: registerPrompts()
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Handle prompts/get request
|
|
35
|
+
*/
|
|
36
|
+
export async function handlePromptGet(name, args = {}, context) {
|
|
37
|
+
const promptDef = promptDefinitions.find(def => def.prompt.name === name);
|
|
38
|
+
if (!promptDef) {
|
|
39
|
+
throw new Error(`Prompt not found: ${name}`);
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
const messages = await promptDef.handler(args, context);
|
|
43
|
+
return { messages };
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
throw new Error(`Failed to generate prompt messages: ${error.message}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAIA,uCAAuC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,0BAA0B;AAC1B,MAAM,iBAAiB,GAAuB;IAC5C,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,gBAAgB;IAChB,6BAA6B;IAC7B,yBAAyB;IACzB,kBAAkB;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO;QACL,OAAO,EAAE,eAAe,EAAE;KAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,OAA4B,EAAE,EAC9B,OAAoB;IAEpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAE1E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
|
|
@@ -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;AAkD9C,eAAO,MAAM,6BAA6B,EAAE,gBAG3C,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
// Call the spec-workflow-guide tool to get the full guide
|
|
9
|
+
const toolResponse = await specWorkflowGuideHandler({}, context);
|
|
10
|
+
// Extract the guide content from the tool response
|
|
11
|
+
const guide = toolResponse.data?.guide || '';
|
|
12
|
+
const dashboardUrl = toolResponse.data?.dashboardUrl;
|
|
13
|
+
const nextSteps = toolResponse.nextSteps || [];
|
|
14
|
+
const messages = [
|
|
15
|
+
{
|
|
16
|
+
role: 'user',
|
|
17
|
+
content: {
|
|
18
|
+
type: 'text',
|
|
19
|
+
text: `Please review and follow this comprehensive spec-driven development workflow guide:
|
|
20
|
+
|
|
21
|
+
${guide}
|
|
22
|
+
|
|
23
|
+
**Current Context:**
|
|
24
|
+
- Project: ${context.projectPath}
|
|
25
|
+
${dashboardUrl ? `- Dashboard: ${dashboardUrl}` : '- Dashboard: Please start the dashboard or use VS Code extension "Spec Workflow MCP"'}
|
|
26
|
+
|
|
27
|
+
**Next Steps:**
|
|
28
|
+
${nextSteps.map(step => `- ${step}`).join('\n')}
|
|
29
|
+
|
|
30
|
+
**Important Instructions:**
|
|
31
|
+
1. This guide has been injected into your context for immediate reference
|
|
32
|
+
2. Follow the workflow sequence exactly: Requirements → Design → Tasks → Implementation
|
|
33
|
+
3. Use the MCP tools mentioned in the guide to execute each phase
|
|
34
|
+
4. Always request approval between phases using the approvals tool
|
|
35
|
+
5. Never proceed to the next phase without successful approval cleanup
|
|
36
|
+
|
|
37
|
+
Please acknowledge that you've reviewed this workflow guide and are ready to help with spec-driven development.`
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
];
|
|
41
|
+
return messages;
|
|
42
|
+
}
|
|
43
|
+
export const injectSpecWorkflowGuidePrompt = {
|
|
44
|
+
prompt,
|
|
45
|
+
handler
|
|
46
|
+
};
|
|
47
|
+
//# 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,0DAA0D;IAC1D,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAEjE,mDAAmD;IACnD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC;IACrD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;IAE/C,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;AAsD9C,eAAO,MAAM,yBAAyB,EAAE,gBAGvC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
// Call the steering-guide tool to get the full guide
|
|
9
|
+
const toolResponse = await steeringGuideHandler({}, context);
|
|
10
|
+
// Extract the guide content from the tool response
|
|
11
|
+
const guide = toolResponse.data?.guide || '';
|
|
12
|
+
const dashboardUrl = toolResponse.data?.dashboardUrl;
|
|
13
|
+
const nextSteps = toolResponse.nextSteps || [];
|
|
14
|
+
const messages = [
|
|
15
|
+
{
|
|
16
|
+
role: 'user',
|
|
17
|
+
content: {
|
|
18
|
+
type: 'text',
|
|
19
|
+
text: `Please review and follow this steering document workflow guide:
|
|
20
|
+
|
|
21
|
+
${guide}
|
|
22
|
+
|
|
23
|
+
**Current Context:**
|
|
24
|
+
- Project: ${context.projectPath}
|
|
25
|
+
${dashboardUrl ? `- Dashboard: ${dashboardUrl}` : '- Dashboard: Please start the dashboard or use VS Code extension "Spec Workflow MCP"'}
|
|
26
|
+
|
|
27
|
+
**Next Steps:**
|
|
28
|
+
${nextSteps.map(step => `- ${step}`).join('\n')}
|
|
29
|
+
|
|
30
|
+
**Important Instructions:**
|
|
31
|
+
1. This guide has been injected into your context for creating steering documents
|
|
32
|
+
2. Only proceed if the user explicitly requested steering document creation
|
|
33
|
+
3. Follow the sequence exactly: product.md → tech.md → structure.md
|
|
34
|
+
4. Read templates from .spec-workflow/templates/ directory
|
|
35
|
+
5. Create documents in .spec-workflow/steering/ directory
|
|
36
|
+
6. Request approval after each document using the approvals tool
|
|
37
|
+
7. Never proceed to the next document without successful approval cleanup
|
|
38
|
+
|
|
39
|
+
**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.
|
|
40
|
+
|
|
41
|
+
Please acknowledge that you've reviewed this steering workflow guide and confirm whether the user wants to create steering documents.`
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
return messages;
|
|
46
|
+
}
|
|
47
|
+
export const injectSteeringGuidePrompt = {
|
|
48
|
+
prompt,
|
|
49
|
+
handler
|
|
50
|
+
};
|
|
51
|
+
//# 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,qDAAqD;IACrD,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAE7D,mDAAmD;IACnD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;IAC7C,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC;IACrD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC;IAE/C,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;AAmO9C,eAAO,MAAM,kBAAkB,EAAE,gBAGhC,CAAC"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { PathUtils } from '../core/path-utils.js';
|
|
2
|
+
import { readFile } from 'fs/promises';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
const prompt = {
|
|
5
|
+
name: 'refresh-tasks',
|
|
6
|
+
title: 'Refresh Tasks After Spec Changes',
|
|
7
|
+
description: 'Comprehensive guide for updating tasks.md when requirements or design change during implementation. Preserves completed work while aligning pending tasks with current spec.',
|
|
8
|
+
arguments: [
|
|
9
|
+
{
|
|
10
|
+
name: 'specName',
|
|
11
|
+
description: 'Name of the specification to refresh tasks for',
|
|
12
|
+
required: true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'changes',
|
|
16
|
+
description: 'Description of what changed in requirements or design',
|
|
17
|
+
required: false
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
};
|
|
21
|
+
async function handler(args, context) {
|
|
22
|
+
const { specName, changes = 'Requirements or design have been updated' } = args;
|
|
23
|
+
const projectPath = context.projectPath;
|
|
24
|
+
// Try to load existing documents for context
|
|
25
|
+
let contextInfo = '';
|
|
26
|
+
try {
|
|
27
|
+
const specDir = PathUtils.getSpecPath(projectPath, specName);
|
|
28
|
+
// Check what documents exist
|
|
29
|
+
let hasRequirements = false;
|
|
30
|
+
let hasDesign = false;
|
|
31
|
+
let hasTasks = false;
|
|
32
|
+
try {
|
|
33
|
+
await readFile(join(specDir, 'requirements.md'), 'utf-8');
|
|
34
|
+
hasRequirements = true;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
// File doesn't exist
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
await readFile(join(specDir, 'design.md'), 'utf-8');
|
|
41
|
+
hasDesign = true;
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
// File doesn't exist
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
await readFile(join(specDir, 'tasks.md'), 'utf-8');
|
|
48
|
+
hasTasks = true;
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
// File doesn't exist
|
|
52
|
+
}
|
|
53
|
+
contextInfo = `
|
|
54
|
+
## Current Spec Status for "${specName}"
|
|
55
|
+
- Requirements.md exists: ${hasRequirements ? 'Yes' : 'No'}
|
|
56
|
+
- Design.md exists: ${hasDesign ? 'Yes' : 'No'}
|
|
57
|
+
- Tasks.md exists: ${hasTasks ? 'Yes' : 'No'}
|
|
58
|
+
|
|
59
|
+
## Reported Changes
|
|
60
|
+
${changes}
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
contextInfo = `
|
|
65
|
+
## Spec: "${specName}"
|
|
66
|
+
Unable to check existing documents. Ensure the spec exists at the correct path.
|
|
67
|
+
|
|
68
|
+
## Reported Changes
|
|
69
|
+
${changes}
|
|
70
|
+
`;
|
|
71
|
+
}
|
|
72
|
+
const content = `# Task Refresh Instructions
|
|
73
|
+
|
|
74
|
+
${contextInfo}
|
|
75
|
+
|
|
76
|
+
## Context
|
|
77
|
+
You are refreshing the task list for specification "${specName}" because requirements or design have changed during implementation. Your goal is to ensure the task list accurately reflects what needs to be done to bridge the gap between current implementation and the updated requirements/design.
|
|
78
|
+
|
|
79
|
+
## CRITICAL: Source of Truth
|
|
80
|
+
- Requirements come ONLY from requirements.md - not from existing tasks
|
|
81
|
+
- Design decisions come ONLY from design.md - not from existing tasks
|
|
82
|
+
- Tasks are implementation steps - they implement requirements, they don't define them
|
|
83
|
+
- If a feature exists in tasks but NOT in requirements.md/design.md, it has been REMOVED from the spec
|
|
84
|
+
|
|
85
|
+
## Three-Pass Validation Process
|
|
86
|
+
|
|
87
|
+
### PASS 1: Validate Existing Tasks Against Current Spec
|
|
88
|
+
For each existing task, verify if the feature it implements still exists in requirements.md or design.md.
|
|
89
|
+
|
|
90
|
+
Actions for PENDING tasks:
|
|
91
|
+
- KEEP if the feature is still in requirements/design
|
|
92
|
+
- REMOVE if the feature is NOT in requirements/design (feature was cut from spec)
|
|
93
|
+
|
|
94
|
+
Actions for COMPLETED/IN-PROGRESS tasks:
|
|
95
|
+
- ALWAYS PRESERVE completed [x] and in-progress [-] tasks exactly as written
|
|
96
|
+
- If the feature was removed, add a note: "_Note: Feature removed from spec but task preserved_"
|
|
97
|
+
- If architecture changed, add migration tasks immediately after the completed work
|
|
98
|
+
|
|
99
|
+
### PASS 2: Gap Analysis
|
|
100
|
+
For each requirement in requirements.md, verify corresponding task coverage exists.
|
|
101
|
+
For each design decision in design.md, verify tasks align with the architecture.
|
|
102
|
+
|
|
103
|
+
Actions:
|
|
104
|
+
- ADD new tasks for requirements/design elements without task coverage
|
|
105
|
+
- ADD migration tasks when architecture changes affect completed work
|
|
106
|
+
- UPDATE pending tasks that need alignment with updated requirements
|
|
107
|
+
|
|
108
|
+
### PASS 3: Create Updated Task List
|
|
109
|
+
After Pass 1 and Pass 2, determine if changes are needed:
|
|
110
|
+
- Are there pending tasks to remove?
|
|
111
|
+
- Are there new tasks to add?
|
|
112
|
+
- Are there migration tasks needed?
|
|
113
|
+
- Are there existing tasks to modify?
|
|
114
|
+
|
|
115
|
+
If NO changes needed: Report "Task list is already aligned with current requirements - no refresh needed" and STOP.
|
|
116
|
+
|
|
117
|
+
If changes ARE needed, build the new tasks.md with:
|
|
118
|
+
1. All completed [x] tasks preserved exactly as written
|
|
119
|
+
2. All in-progress [-] tasks preserved exactly as written
|
|
120
|
+
3. Migration tasks added where architecture changes affect completed work
|
|
121
|
+
4. Only pending [ ] tasks that have backing in current requirements/design
|
|
122
|
+
5. New tasks for any missing requirements/design elements
|
|
123
|
+
6. Proper sequencing and requirement references
|
|
124
|
+
|
|
125
|
+
## Handling Architecture Changes
|
|
126
|
+
|
|
127
|
+
When architecture changes affect already-implemented code, add migration tasks:
|
|
128
|
+
|
|
129
|
+
Example: MongoDB to PostgreSQL switch with completed MongoDB work:
|
|
130
|
+
- [x] 2.1 Create MongoDB connection logic
|
|
131
|
+
- [x] 2.2 Define MongoDB schemas
|
|
132
|
+
- [x] 2.3 Implement MongoDB queries
|
|
133
|
+
- [ ] 2.4 Migrate MongoDB schemas to PostgreSQL tables (NEW)
|
|
134
|
+
- [ ] 2.5 Replace MongoDB connection with PostgreSQL client (NEW)
|
|
135
|
+
- [ ] 2.6 Convert MongoDB queries to PostgreSQL syntax (NEW)
|
|
136
|
+
- [ ] 2.7 Migrate existing data from MongoDB to PostgreSQL (NEW)
|
|
137
|
+
- [ ] 2.8 Verify data integrity after migration (NEW)
|
|
138
|
+
- [ ] 2.9 Remove MongoDB dependencies after verification (NEW)
|
|
139
|
+
- [ ] 2.10 Implement remaining PostgreSQL features
|
|
140
|
+
|
|
141
|
+
Example: REST to GraphQL migration with completed REST endpoints:
|
|
142
|
+
- [x] 3.1 Implement user REST endpoints
|
|
143
|
+
- [x] 3.2 Implement product REST endpoints
|
|
144
|
+
- [ ] 3.3 Define GraphQL schema for users and products (NEW)
|
|
145
|
+
- [ ] 3.4 Create GraphQL resolvers wrapping REST logic (NEW)
|
|
146
|
+
- [ ] 3.5 Update client to use GraphQL queries (NEW)
|
|
147
|
+
- [ ] 3.6 Test GraphQL implementation thoroughly (NEW)
|
|
148
|
+
- [ ] 3.7 Remove REST endpoints after GraphQL verified (NEW)
|
|
149
|
+
|
|
150
|
+
## Task Format Requirements
|
|
151
|
+
Each task must follow this format:
|
|
152
|
+
- [ ] 1.1 Create user authentication interface
|
|
153
|
+
- File: src/auth/UserAuth.ts
|
|
154
|
+
- Implement login and registration forms
|
|
155
|
+
- Add form validation and error handling
|
|
156
|
+
- Purpose: Enable user account management
|
|
157
|
+
- _Leverage: src/components/BaseForm.tsx, src/utils/validation.ts_
|
|
158
|
+
- _Requirements: 1.1, 1.2_
|
|
159
|
+
|
|
160
|
+
Migration tasks should follow this format:
|
|
161
|
+
- [ ] 2.4 Migrate MongoDB schemas to PostgreSQL tables
|
|
162
|
+
- File: src/database/migrations/mongo-to-postgres.ts
|
|
163
|
+
- Convert document schemas to relational tables
|
|
164
|
+
- Map embedded documents to foreign key relationships
|
|
165
|
+
- Preserve all existing data relationships
|
|
166
|
+
- Purpose: Transition database layer to new architecture
|
|
167
|
+
- _Leverage: Completed MongoDB schemas in tasks 2.1-2.3_
|
|
168
|
+
- _Requirements: Design section 3.2_
|
|
169
|
+
|
|
170
|
+
## Critical Rules
|
|
171
|
+
- ALWAYS preserve completed [x] tasks exactly as written
|
|
172
|
+
- ALWAYS preserve in-progress [-] tasks exactly as written
|
|
173
|
+
- ALWAYS add migration tasks when architecture changes affect completed work
|
|
174
|
+
- ALWAYS reference specific requirements (e.g., _Requirements: 1.1, 2.3_)
|
|
175
|
+
- ENSURE tasks build incrementally with proper dependencies
|
|
176
|
+
- MAKE tasks atomic, specific, and actionable
|
|
177
|
+
- PRESERVE the original tasks.md structure and format
|
|
178
|
+
- KEEP tasks.md clean - only include the task list itself
|
|
179
|
+
|
|
180
|
+
## Progressive Migration Strategy
|
|
181
|
+
|
|
182
|
+
For major architecture changes, create tasks that support progressive migration:
|
|
183
|
+
1. Implement new architecture alongside existing
|
|
184
|
+
2. Add compatibility layer tasks
|
|
185
|
+
3. Migrate functionality incrementally
|
|
186
|
+
4. Verify each migration step
|
|
187
|
+
5. Remove old implementation only after full verification
|
|
188
|
+
|
|
189
|
+
This ensures the application remains functional throughout the transition.
|
|
190
|
+
|
|
191
|
+
## Implementation Steps
|
|
192
|
+
1. Read requirements.md and design.md carefully - these define what should exist
|
|
193
|
+
2. Read current tasks.md and identify completed, in-progress, and pending tasks
|
|
194
|
+
3. Perform Pass 1: Validate existing tasks against current spec
|
|
195
|
+
4. Perform Pass 2: Identify gaps in task coverage
|
|
196
|
+
5. Determine if changes are needed
|
|
197
|
+
6. If changes needed, build updated task list with proper validation
|
|
198
|
+
7. Use create-spec-doc tool to save the updated tasks.md
|
|
199
|
+
8. Report what changes were made and why
|
|
200
|
+
|
|
201
|
+
## Example Analysis Output
|
|
202
|
+
|
|
203
|
+
When refreshing tasks, provide clear feedback:
|
|
204
|
+
|
|
205
|
+
"Task Refresh Analysis:
|
|
206
|
+
- Preserved: 5 completed tasks, 2 in-progress tasks
|
|
207
|
+
- Removed: 3 pending tasks for deleted reporting feature
|
|
208
|
+
- Added: 4 migration tasks for MongoDB to PostgreSQL transition
|
|
209
|
+
- Added: 6 new tasks for social login feature
|
|
210
|
+
- Updated: 2 pending tasks to align with new API design
|
|
211
|
+
|
|
212
|
+
The tasks.md has been updated to reflect current requirements while preserving all completed work."`;
|
|
213
|
+
return [
|
|
214
|
+
{
|
|
215
|
+
role: 'user',
|
|
216
|
+
content: { type: 'text', text: content }
|
|
217
|
+
}
|
|
218
|
+
];
|
|
219
|
+
}
|
|
220
|
+
export const refreshTasksPrompt = {
|
|
221
|
+
prompt,
|
|
222
|
+
handler
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=refresh-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh-tasks.js","sourceRoot":"","sources":["../../src/prompts/refresh-tasks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,8KAA8K;IAC3L,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,0CAA0C,EAAE,GAAG,IAAI,CAAC;IAChF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,6CAA6C;IAC7C,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE7D,6BAA6B;QAC7B,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1D,eAAe,GAAG,IAAI,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB;QACvB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;YACpD,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB;QACvB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;YACnD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qBAAqB;QACvB,CAAC;QAED,WAAW,GAAG;8BACY,QAAQ;4BACV,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;sBACpC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;qBACzB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;;;EAG1C,OAAO;CACR,CAAC;IACA,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,GAAG;YACN,QAAQ;;;;EAIlB,OAAO;CACR,CAAC;IACA,CAAC;IAED,MAAM,OAAO,GAAG;;EAEhB,WAAW;;;sDAGyC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oGAuIsC,CAAC;IAEnG,OAAO;QACL;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;SACzC;KACF,CAAC;AAAA,CAAC;AAEL,MAAM,CAAC,MAAM,kBAAkB,GAAqB;IAClD,MAAM;IACN,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spec-status.d.ts","sourceRoot":"","sources":["../../src/prompts/spec-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA8E9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
|