@lbruton/specflow 3.0.0
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 +239 -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 +12 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +144 -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 +293 -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 +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 +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 +625 -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 +1304 -0
- package/dist/dashboard/multi-server.js.map +1 -0
- package/dist/dashboard/parser.d.ts +19 -0
- package/dist/dashboard/parser.d.ts.map +1 -0
- package/dist/dashboard/parser.js +290 -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-CtYZ6WTd.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-CzEvDZI5.js +118 -0
- package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/dist/dashboard/public/assets/c4Diagram-c83219d4-CuPd1dkK.js +10 -0
- package/dist/dashboard/public/assets/channel-kGGkJUti.js +1 -0
- package/dist/dashboard/public/assets/classDiagram-beda092f-CDTLUu9K.js +2 -0
- package/dist/dashboard/public/assets/classDiagram-v2-2358418a-BlHqrcgN.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-CHdfA33T.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-B3cTooQ1.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-CbHatH6o.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-MYCicRH6.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-DDm9aBGx.js +10 -0
- package/dist/dashboard/public/assets/flowDiagram-50d868cf-zb-JtJG0.js +4 -0
- package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-DRD7GAtr.js +1 -0
- package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-D5TGPnG-.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-Cqst4HhR.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-C8JWqtTx.js +70 -0
- package/dist/dashboard/public/assets/graph-Lpyd8dqZ.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--_-9KDkB.js +1 -0
- package/dist/dashboard/public/assets/index-5325376f-Ngqm3jj1.js +1 -0
- package/dist/dashboard/public/assets/index-7POr4IQt.js +1 -0
- package/dist/dashboard/public/assets/index-B2wloU4M.js +7 -0
- package/dist/dashboard/public/assets/index-BB9i8dPx.js +329 -0
- package/dist/dashboard/public/assets/index-BHCmvfMN.js +1 -0
- package/dist/dashboard/public/assets/index-BWvyG2sq.js +1 -0
- package/dist/dashboard/public/assets/index-BhwV70vC.js +2 -0
- package/dist/dashboard/public/assets/index-Bqk8CAAy.js +1 -0
- package/dist/dashboard/public/assets/index-CUP35nar.js +1 -0
- package/dist/dashboard/public/assets/index-CYy3mVaI.js +1 -0
- package/dist/dashboard/public/assets/index-Cqbzr5qD.js +3 -0
- package/dist/dashboard/public/assets/index-Cv_FT1Rp.css +1 -0
- package/dist/dashboard/public/assets/index-D4J257wx.js +1 -0
- package/dist/dashboard/public/assets/index-D9fDAa7f.js +1 -0
- package/dist/dashboard/public/assets/index-DFN4bEYo.js +1 -0
- package/dist/dashboard/public/assets/index-DQ2Aap_e.js +1 -0
- package/dist/dashboard/public/assets/index-Djo38KZb.js +1 -0
- package/dist/dashboard/public/assets/index-RZXsuDxo.js +1 -0
- package/dist/dashboard/public/assets/index-m5SRqxVX.js +1 -0
- package/dist/dashboard/public/assets/infoDiagram-8eee0895-DYMb32US.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-BgL0JuAb.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-DP9fJAz2.js +1 -0
- package/dist/dashboard/public/assets/line-N_NGiB5u.js +1 -0
- package/dist/dashboard/public/assets/linear-B1Bl-FQE.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-DuejFf1j.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-fJ2uKW1i.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-Dowa1iq5.js +7 -0
- package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
- package/dist/dashboard/public/assets/requirementDiagram-08caed73-1PKeJnUu.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-C3Nu91E8.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-BbyYeaFb.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-BVkb4gIE.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-Bm7qug6Q.js +1 -0
- package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
- package/dist/dashboard/public/assets/styles-b4e223ce-BuqydlKk.js +160 -0
- package/dist/dashboard/public/assets/styles-ca3715f6-C8L7peEM.js +207 -0
- package/dist/dashboard/public/assets/styles-d45a18b0-BbrCCPkQ.js +116 -0
- package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
- package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-DQZAHvSt.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-YPoIuE--.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-BnI4pVWV.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/code-quality-reviewer-template.md +76 -0
- package/dist/markdown/templates/design-template.md +141 -0
- package/dist/markdown/templates/implementer-prompt-template.md +122 -0
- package/dist/markdown/templates/product-template.md +51 -0
- package/dist/markdown/templates/requirements-template.md +73 -0
- package/dist/markdown/templates/spec-reviewer-template.md +58 -0
- package/dist/markdown/templates/structure-template.md +145 -0
- package/dist/markdown/templates/tasks-template.md +182 -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 +189 -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 +501 -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 +57 -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 +446 -0
- package/dist/tools/log-implementation.js.map +1 -0
- package/dist/tools/spec-list.d.ts +5 -0
- package/dist/tools/spec-list.d.ts.map +1 -0
- package/dist/tools/spec-list.js +144 -0
- package/dist/tools/spec-list.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 +238 -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 +580 -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 +186 -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
package/README.ko.md
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
# Spec Workflow MCP
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@pimzino/spec-workflow-mcp)
|
|
4
|
+
[](https://marketplace.visualstudio.com/items?itemName=Pimzino.spec-workflow-mcp)
|
|
5
|
+
|
|
6
|
+
실시간 대시보드와 VSCode 확장 프로그램을 갖춘 구조화된 스펙 기반 개발을 위한 Model Context Protocol(MCP) 서버입니다.
|
|
7
|
+
|
|
8
|
+
## ☕ 이 프로젝트 후원하기
|
|
9
|
+
|
|
10
|
+
<a href="https://buymeacoffee.com/Pimzino" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
|
|
11
|
+
|
|
12
|
+
## 📺 쇼케이스
|
|
13
|
+
|
|
14
|
+
### 🔄 승인 시스템 작동 영상
|
|
15
|
+
<a href="https://www.youtube.com/watch?v=C-uEa3mfxd0" target="_blank">
|
|
16
|
+
<img src="https://img.youtube.com/vi/C-uEa3mfxd0/maxresdefault.jpg" alt="Approval System Demo" width="600">
|
|
17
|
+
</a>
|
|
18
|
+
|
|
19
|
+
*승인 시스템 작동 방식 확인: 문서 생성, 대시보드를 통한 승인 요청, 피드백 제공, 수정사항 추적.*
|
|
20
|
+
|
|
21
|
+
### 📊 대시보드 및 스펙 관리
|
|
22
|
+
<a href="https://www.youtube.com/watch?v=g9qfvjLUWf8" target="_blank">
|
|
23
|
+
<img src="https://img.youtube.com/vi/g9qfvjLUWf8/maxresdefault.jpg" alt="Dashboard Demo" width="600">
|
|
24
|
+
</a>
|
|
25
|
+
|
|
26
|
+
*실시간 대시보드 탐색: 스펙 보기, 진행 상황 추적, 문서 탐색, 개발 워크플로우 모니터링.*
|
|
27
|
+
|
|
28
|
+
## ✨ 주요 기능
|
|
29
|
+
|
|
30
|
+
- **구조화된 개발 워크플로우** - 순차적 스펙 생성 (요구사항 → 설계 → 작업)
|
|
31
|
+
- **실시간 웹 대시보드** - 실시간 업데이트로 스펙, 작업 및 진행 상황 모니터링
|
|
32
|
+
- **VSCode 확장 프로그램** - VSCode 사용자를 위한 통합 사이드바 대시보드
|
|
33
|
+
- **승인 워크플로우** - 수정사항이 포함된 완전한 승인 프로세스
|
|
34
|
+
- **작업 진행 추적** - 시각적 진행률 표시줄 및 상세 상태
|
|
35
|
+
- **구현 로그** - 코드 통계가 포함된 모든 작업 구현의 검색 가능한 로그
|
|
36
|
+
- **다국어 지원** - 11개 언어로 제공
|
|
37
|
+
|
|
38
|
+
## 🌍 지원 언어
|
|
39
|
+
|
|
40
|
+
🇺🇸 English • 🇯🇵 日本語 • 🇨🇳 中文 • 🇪🇸 Español • 🇧🇷 Português • 🇩🇪 Deutsch • 🇫🇷 Français • 🇷🇺 Русский • 🇮🇹 Italiano • 🇰🇷 한국어 • 🇸🇦 العربية
|
|
41
|
+
|
|
42
|
+
## 🚀 빠른 시작
|
|
43
|
+
|
|
44
|
+
### 1단계: AI 도구에 추가
|
|
45
|
+
|
|
46
|
+
MCP 구성에 추가 (아래 클라이언트별 설정 참조):
|
|
47
|
+
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"mcpServers": {
|
|
51
|
+
"spec-workflow": {
|
|
52
|
+
"command": "npx",
|
|
53
|
+
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 2단계: 인터페이스 선택
|
|
60
|
+
|
|
61
|
+
**옵션 A: 웹 대시보드** (CLI 사용자 필수)
|
|
62
|
+
대시보드 시작 (기본 포트 5000):
|
|
63
|
+
```bash
|
|
64
|
+
npx -y @pimzino/spec-workflow-mcp@latest --dashboard
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
대시보드는 http://localhost:5000 에서 액세스할 수 있습니다.
|
|
68
|
+
|
|
69
|
+
> **참고:** 하나의 대시보드 인스턴스만 필요합니다. 모든 프로젝트가 동일한 대시보드에 연결됩니다.
|
|
70
|
+
|
|
71
|
+
**옵션 B: VSCode 확장 프로그램** (VSCode 사용자 권장)
|
|
72
|
+
|
|
73
|
+
VSCode 마켓플레이스에서 [Spec Workflow MCP Extension](https://marketplace.visualstudio.com/items?itemName=Pimzino.spec-workflow-mcp)을 설치하세요.
|
|
74
|
+
|
|
75
|
+
## 📝 사용 방법
|
|
76
|
+
|
|
77
|
+
대화에서 spec-workflow를 언급하기만 하면 됩니다:
|
|
78
|
+
|
|
79
|
+
- **"사용자 인증을 위한 스펙 생성"** - 완전한 스펙 워크플로우 생성
|
|
80
|
+
- **"내 스펙 목록 보기"** - 모든 스펙과 상태 표시
|
|
81
|
+
- **"user-auth 스펙의 작업 1.2 실행"** - 특정 작업 실행
|
|
82
|
+
|
|
83
|
+
[더 많은 예제 보기 →](docs/PROMPTING-GUIDE.md)
|
|
84
|
+
|
|
85
|
+
## 🔧 MCP 클라이언트 설정
|
|
86
|
+
|
|
87
|
+
<details>
|
|
88
|
+
<summary><strong>Augment Code</strong></summary>
|
|
89
|
+
|
|
90
|
+
Augment 설정에서 구성:
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"mcpServers": {
|
|
94
|
+
"spec-workflow": {
|
|
95
|
+
"command": "npx",
|
|
96
|
+
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
</details>
|
|
102
|
+
|
|
103
|
+
<details>
|
|
104
|
+
<summary><strong>Claude Code CLI</strong></summary>
|
|
105
|
+
|
|
106
|
+
MCP 구성에 추가:
|
|
107
|
+
```bash
|
|
108
|
+
claude mcp add spec-workflow npx @pimzino/spec-workflow-mcp@latest -- /path/to/your/project
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**중요 참고사항:**
|
|
112
|
+
- `-y` 플래그는 더 원활한 설치를 위해 npm 프롬프트를 우회합니다
|
|
113
|
+
- `--` 구분자는 경로가 npx가 아닌 spec-workflow 스크립트에 전달되도록 합니다
|
|
114
|
+
- `/path/to/your/project`를 실제 프로젝트 디렉터리 경로로 바꾸세요
|
|
115
|
+
|
|
116
|
+
**Windows용 대안 (위 방법이 작동하지 않는 경우):**
|
|
117
|
+
```bash
|
|
118
|
+
claude mcp add spec-workflow cmd.exe /c "npx @pimzino/spec-workflow-mcp@latest /path/to/your/project"
|
|
119
|
+
```
|
|
120
|
+
</details>
|
|
121
|
+
|
|
122
|
+
<details>
|
|
123
|
+
<summary><strong>Claude Desktop</strong></summary>
|
|
124
|
+
|
|
125
|
+
`claude_desktop_config.json`에 추가:
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"mcpServers": {
|
|
129
|
+
"spec-workflow": {
|
|
130
|
+
"command": "npx",
|
|
131
|
+
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
> **중요:** MCP 서버를 시작하기 전에 `--dashboard`로 대시보드를 별도로 실행하세요.
|
|
138
|
+
|
|
139
|
+
</details>
|
|
140
|
+
|
|
141
|
+
<details>
|
|
142
|
+
<summary><strong>Cline/Claude Dev</strong></summary>
|
|
143
|
+
|
|
144
|
+
MCP 서버 구성에 추가:
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"mcpServers": {
|
|
148
|
+
"spec-workflow": {
|
|
149
|
+
"command": "npx",
|
|
150
|
+
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
</details>
|
|
156
|
+
|
|
157
|
+
<details>
|
|
158
|
+
<summary><strong>Continue IDE Extension</strong></summary>
|
|
159
|
+
|
|
160
|
+
Continue 구성에 추가:
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"mcpServers": {
|
|
164
|
+
"spec-workflow": {
|
|
165
|
+
"command": "npx",
|
|
166
|
+
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
</details>
|
|
172
|
+
|
|
173
|
+
<details>
|
|
174
|
+
<summary><strong>Cursor IDE</strong></summary>
|
|
175
|
+
|
|
176
|
+
Cursor 설정(`settings.json`)에 추가:
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"mcpServers": {
|
|
180
|
+
"spec-workflow": {
|
|
181
|
+
"command": "npx",
|
|
182
|
+
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
</details>
|
|
188
|
+
|
|
189
|
+
<details>
|
|
190
|
+
<summary><strong>OpenCode</strong></summary>
|
|
191
|
+
|
|
192
|
+
`opencode.json` 구성 파일에 추가:
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"$schema": "https://opencode.ai/config.json",
|
|
196
|
+
"mcp": {
|
|
197
|
+
"spec-workflow": {
|
|
198
|
+
"type": "local",
|
|
199
|
+
"command": ["npx", "-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"],
|
|
200
|
+
"enabled": true
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
</details>
|
|
206
|
+
|
|
207
|
+
<details>
|
|
208
|
+
<summary><strong>Windsurf</strong></summary>
|
|
209
|
+
|
|
210
|
+
`~/.codeium/windsurf/mcp_config.json` 구성 파일에 추가:
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"mcpServers": {
|
|
214
|
+
"spec-workflow": {
|
|
215
|
+
"command": "npx",
|
|
216
|
+
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
</details>
|
|
222
|
+
|
|
223
|
+
<details>
|
|
224
|
+
<summary><strong>Codex</strong></summary>
|
|
225
|
+
|
|
226
|
+
`~/.codex/config.toml` 구성 파일에 추가:
|
|
227
|
+
```toml
|
|
228
|
+
[mcp_servers.spec-workflow]
|
|
229
|
+
command = "npx"
|
|
230
|
+
args = ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
|
|
231
|
+
```
|
|
232
|
+
</details>
|
|
233
|
+
|
|
234
|
+
## 🐳 Docker 배포
|
|
235
|
+
|
|
236
|
+
격리된 배포를 위해 Docker 컨테이너에서 대시보드 실행:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Docker Compose 사용 (권장)
|
|
240
|
+
cd containers
|
|
241
|
+
docker-compose up --build
|
|
242
|
+
|
|
243
|
+
# 또는 Docker CLI 사용
|
|
244
|
+
docker build -f containers/Dockerfile -t spec-workflow-mcp .
|
|
245
|
+
docker run -p 5000:5000 -v "./workspace/.spec-workflow:/workspace/.spec-workflow:rw" spec-workflow-mcp
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
대시보드는 http://localhost:5000 에서 사용 가능합니다.
|
|
249
|
+
|
|
250
|
+
[Docker 설정 가이드 보기 →](containers/README.md)
|
|
251
|
+
|
|
252
|
+
## 🔒 샌드박스 환경
|
|
253
|
+
|
|
254
|
+
`$HOME`이 읽기 전용인 샌드박스 환경(예: `sandbox_mode=workspace-write`가 있는 Codex CLI)의 경우 `SPEC_WORKFLOW_HOME` 환경 변수를 사용하여 전역 상태 파일을 쓰기 가능한 위치로 리디렉션하세요:
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
SPEC_WORKFLOW_HOME=/workspace/.spec-workflow-mcp npx -y @pimzino/spec-workflow-mcp@latest /workspace
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
[구성 가이드 보기 →](docs/CONFIGURATION.md#environment-variables)
|
|
261
|
+
|
|
262
|
+
## 📚 문서
|
|
263
|
+
|
|
264
|
+
- [구성 가이드](docs/CONFIGURATION.md) - 명령줄 옵션, 구성 파일
|
|
265
|
+
- [사용자 가이드](docs/USER-GUIDE.md) - 포괄적인 사용 예제
|
|
266
|
+
- [워크플로우 프로세스](docs/WORKFLOW.md) - 개발 워크플로우 및 모범 사례
|
|
267
|
+
- [인터페이스 가이드](docs/INTERFACES.md) - 대시보드 및 VSCode 확장 프로그램 상세 정보
|
|
268
|
+
- [프롬프팅 가이드](docs/PROMPTING-GUIDE.md) - 고급 프롬프팅 예제
|
|
269
|
+
- [도구 참조](docs/TOOLS-REFERENCE.md) - 완전한 도구 문서
|
|
270
|
+
- [개발](docs/DEVELOPMENT.md) - 기여 및 개발 설정
|
|
271
|
+
- [문제 해결](docs/TROUBLESHOOTING.md) - 일반적인 문제 및 해결책
|
|
272
|
+
|
|
273
|
+
## 📁 프로젝트 구조
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
your-project/
|
|
277
|
+
.spec-workflow/
|
|
278
|
+
approvals/
|
|
279
|
+
archive/
|
|
280
|
+
specs/
|
|
281
|
+
steering/
|
|
282
|
+
templates/
|
|
283
|
+
user-templates/
|
|
284
|
+
config.example.toml
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## 🛠️ 개발
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
# 의존성 설치
|
|
291
|
+
npm install
|
|
292
|
+
|
|
293
|
+
# 프로젝트 빌드
|
|
294
|
+
npm run build
|
|
295
|
+
|
|
296
|
+
# 개발 모드로 실행
|
|
297
|
+
npm run dev
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
[개발 가이드 보기 →](docs/DEVELOPMENT.md)
|
|
301
|
+
|
|
302
|
+
## 📄 라이선스
|
|
303
|
+
|
|
304
|
+
GPL-3.0
|
|
305
|
+
|
|
306
|
+
## ⭐ 스타 히스토리
|
|
307
|
+
|
|
308
|
+
<a href="https://www.star-history.com/#Pimzino/spec-workflow-mcp&Date">
|
|
309
|
+
<picture>
|
|
310
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=Pimzino/spec-workflow-mcp&type=Date&theme=dark" />
|
|
311
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=Pimzino/spec-workflow-mcp&type=Date" />
|
|
312
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=Pimzino/spec-workflow-mcp&type=Date" />
|
|
313
|
+
</picture>
|
|
314
|
+
</a>
|
package/README.md
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/logo-wide.svg" alt="SpecFlow" height="48">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
Spec-driven development with persistent project memory and semantic code intelligence.
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://github.com/lbruton/specflow"><img src="https://img.shields.io/badge/license-GPL--3.0-green" alt="License"></a>
|
|
11
|
+
<img src="https://img.shields.io/badge/MCP_Server-Plugin-6366f1" alt="MCP Server Plugin">
|
|
12
|
+
<img src="https://img.shields.io/badge/self--hosted-zero_cloud_deps-22c55e" alt="Self-hosted">
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://lbruton.github.io/specflow/"><strong>View the full interactive about page</strong></a> •
|
|
17
|
+
<a href="docs/CASE-STUDY-FORGE.md">Case Study: Forge</a> •
|
|
18
|
+
<a href="FORK-CHANGELOG.md">Changelog</a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
AI agents forget everything between sessions. They lose decisions, repeat mistakes, and drift from reality. **SpecFlow** gives them a structured lifecycle, persistent cross-project memory, and semantic code intelligence -- all self-hosted.
|
|
24
|
+
|
|
25
|
+
Built on [Pimzino/spec-workflow-mcp](https://github.com/Pimzino/spec-workflow-mcp)'s core engine (sequential spec workflow, real-time dashboard, blocking approval gates). This fork layers extended lifecycle phases, multi-project orchestration, three-tier knowledge architecture, and semantic code search on top.
|
|
26
|
+
|
|
27
|
+
## Four Systems, One Workflow
|
|
28
|
+
|
|
29
|
+
| System | What It Does |
|
|
30
|
+
|--------|-------------|
|
|
31
|
+
| **SpecFlow** (MCP Server) | Spec-driven lifecycle: Requirements → Design → Tasks → Implementation with dashboard approvals at every gate. 6 tools, 7 prompts. |
|
|
32
|
+
| **DocVault** (Obsidian Vault) | Cross-project knowledge base. One vault serves 8+ repos -- architecture, infrastructure, decisions, issues. Graph visualization + wikilinks. |
|
|
33
|
+
| **Code Context** (Milvus) | Semantic code search via self-hosted vector database. Search by meaning, not keywords. Forked from [Zilliz/claude-context](https://github.com/zilliztech/mcp-server-milvus), hardened with timeouts and pinned versions. |
|
|
34
|
+
| **Skill System** (60+ Skills) | CLAUDE.md stays tiny -- a routing table to skills. Each skill encodes a full workflow: debugging, deployment, PR resolution, infrastructure management. |
|
|
35
|
+
|
|
36
|
+
## Three-Tier Memory Architecture
|
|
37
|
+
|
|
38
|
+
Not everything belongs in one file. Each tier has a purpose and a source of truth ranking.
|
|
39
|
+
|
|
40
|
+
| Tier | System | Role |
|
|
41
|
+
|------|--------|------|
|
|
42
|
+
| **1** | DocVault | Ground truth. Human-curated Obsidian vault. Wins all conflicts. |
|
|
43
|
+
| **2** | File Memory | Session context. Project-scoped markdown at `~/.claude/projects/*/memory/`. |
|
|
44
|
+
| **3** | mem0 | Episodic recall. Semantic retrieval from session digests. Never authoritative. |
|
|
45
|
+
|
|
46
|
+
## Continuous Learning Loop
|
|
47
|
+
|
|
48
|
+
Every session learns from the previous. This is the single biggest differentiator.
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
/prime (morning) /goodnight (end of day)
|
|
52
|
+
├─ Index codebase ├─ /retro
|
|
53
|
+
├─ Read recent digests │ └─ Extract prescriptive lessons → mem0
|
|
54
|
+
├─ Pull mem0 memories └─ /digest-session
|
|
55
|
+
├─ Check issues + git ├─ Read JSONL transcripts
|
|
56
|
+
└─ "Here's where you left off" ├─ Summarize via local Ollama
|
|
57
|
+
├─ Write to DocVault/Daily Digests/
|
|
58
|
+
└─ Save key facts to mem0
|
|
59
|
+
|
|
60
|
+
Tomorrow's /prime reads today's digest + retro lessons
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Spec Workflow Lifecycle
|
|
64
|
+
|
|
65
|
+
Every non-trivial feature follows the same path. Approvals required at each gate.
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Phase 0 Phase 1 Phase 2 Phase 3 Phase 4 Phase 5
|
|
69
|
+
/chat → /discover → /spec → Design → Implement → /retro
|
|
70
|
+
|
|
71
|
+
Bug fast path: /systematic-debugging → issue → fix (skip Phases 0-2)
|
|
72
|
+
Casual path: /gsd — no issue, no spec, chore: PR
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Parallel Subagent Dispatch
|
|
76
|
+
|
|
77
|
+
Tasks don't execute sequentially. Each runs through an isolated three-stage pipeline:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
Orchestrator reads task
|
|
81
|
+
→ Implementer Agent (fresh context, writes code, tests, commits)
|
|
82
|
+
→ Compliance Reviewer (reads actual code vs requirements)
|
|
83
|
+
→ Quality Reviewer (architecture, error handling, readiness)
|
|
84
|
+
→ log-implementation (record artifacts)
|
|
85
|
+
→ mark complete
|
|
86
|
+
|
|
87
|
+
Tasks with zero file overlap execute concurrently in batches.
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**[Case Study: Forge](docs/CASE-STUDY-FORGE.md)** -- empty repo to deployed production app in 3 hours, 23 tasks across 30 parallel subagents, 8 dashboard approval gates, zero file conflicts.
|
|
91
|
+
|
|
92
|
+
## Code Intelligence
|
|
93
|
+
|
|
94
|
+
Agents shouldn't grep blindly through your codebase. Four search tiers, cheapest first:
|
|
95
|
+
|
|
96
|
+
| Tier | Engine | Query Style |
|
|
97
|
+
|------|--------|-------------|
|
|
98
|
+
| 1 | Code Graph Context (Neo4j) | Structural: "what calls this function?" |
|
|
99
|
+
| 2 | Code Context (Milvus) | Semantic: "find code related to payment processing" |
|
|
100
|
+
| 3 | Grep / Glob | Literal: exact strings, filenames, identifiers |
|
|
101
|
+
| 4 | Code Oracle Agent | Deep analysis: combines all sources + AI reasoning |
|
|
102
|
+
|
|
103
|
+
Code Context is a [hardened fork](https://github.com/lbruton/claude-context) of Zilliz's MCP server -- self-hosted Milvus, 30s timeouts, pinned npm versions. No collection limits, full data sovereignty.
|
|
104
|
+
|
|
105
|
+
## Comparison
|
|
106
|
+
|
|
107
|
+
| Dimension | SpecKit | BMAD | GSD | Taskmaster | mex | Pimzino | **SpecFlow** |
|
|
108
|
+
|-----------|---------|------|-----|------------|-----|---------|------------|
|
|
109
|
+
| Approval gates | None | Advisory | UAT | None | None | Dashboard | **Dashboard + skills** |
|
|
110
|
+
| Memory | constitution.md | Git docs | STATE.md | tasks.json | Scaffold | Steering docs | **3-tier** |
|
|
111
|
+
| Session learning | None | None | None | None | GROW loop | None | **/prime → /goodnight** |
|
|
112
|
+
| Code search | None | None | None | None | None | None | **Semantic + structural** |
|
|
113
|
+
| Multi-project | Per-repo | Per-repo | Per-repo | Per-repo | Per-repo | Per-repo | **One vault, all repos** |
|
|
114
|
+
| Infrastructure | Code only | Code only | Code only | Code only | Code only | Code only | **Docker, DNS, VMs** |
|
|
115
|
+
| Drift detection | None | None | None | None | 8 checkers | None | /vault-update gate |
|
|
116
|
+
| Self-hosted | Files | Files | Files | Files | Files | Node.js | **Milvus, Neo4j, Ollama** |
|
|
117
|
+
| Best for | Quick adoption | Enterprise teams | Solo context eng. | PRD pipelines | Per-repo memory | Structured workflow | **Multi-project governance** |
|
|
118
|
+
|
|
119
|
+
## Quick Start
|
|
120
|
+
|
|
121
|
+
### As a Claude Code Plugin (recommended)
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
git clone https://github.com/lbruton/specflow.git
|
|
125
|
+
cd spec-workflow-mcp
|
|
126
|
+
npm install && npm run build
|
|
127
|
+
|
|
128
|
+
# Symlink into Claude Code plugins
|
|
129
|
+
ln -s "$(pwd)" ~/.claude/plugins/marketplaces/specflow-marketplace
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### As an MCP Server
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"mcpServers": {
|
|
137
|
+
"spec-workflow": {
|
|
138
|
+
"command": "npx",
|
|
139
|
+
"args": ["-y", "@lbruton/specflow@latest", "/path/to/your/project"]
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Dashboard
|
|
146
|
+
|
|
147
|
+
Real-time web UI for spec tracking, approvals, and implementation logs. Port 5051 by default.
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npx @lbruton/specflow@latest --dashboard --port 5051
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## MCP Tools
|
|
154
|
+
|
|
155
|
+
| Tool | Description |
|
|
156
|
+
|------|-------------|
|
|
157
|
+
| `spec-status` | Get detailed status of a spec |
|
|
158
|
+
| `spec-list` | List all specs across projects |
|
|
159
|
+
| `approvals` | Manage phase approval workflow |
|
|
160
|
+
| `log-implementation` | Record implementation artifacts |
|
|
161
|
+
| `spec-workflow-guide` | Get workflow guidance |
|
|
162
|
+
| `steering-guide` | Access project steering documents |
|
|
163
|
+
|
|
164
|
+
## MCP Prompts
|
|
165
|
+
|
|
166
|
+
| Prompt | Description |
|
|
167
|
+
|--------|-------------|
|
|
168
|
+
| `create-spec` | Create a new spec from requirements |
|
|
169
|
+
| `implement-task` | Generate implementation plan for a task |
|
|
170
|
+
| `create-steering-doc` | Create project steering documentation |
|
|
171
|
+
| `refresh-tasks` | Re-sync task state from spec files |
|
|
172
|
+
| + 3 injection prompts | Context injection for guides |
|
|
173
|
+
|
|
174
|
+
## Prerequisites
|
|
175
|
+
|
|
176
|
+
The core spec workflow works out of the box with Node.js. Extended features use:
|
|
177
|
+
|
|
178
|
+
| Component | Purpose | Link |
|
|
179
|
+
|-----------|---------|------|
|
|
180
|
+
| [Obsidian](https://obsidian.md) | DocVault knowledge base | [obsidian.md](https://obsidian.md) |
|
|
181
|
+
| [mem0](https://github.com/mem0ai/mem0) | Cross-session episodic memory | [mem0.ai](https://mem0.ai) |
|
|
182
|
+
| [Milvus](https://milvus.io) | Self-hosted vector DB for Code Context | [milvus.io](https://milvus.io) |
|
|
183
|
+
| [Claude Code](https://claude.ai/claude-code) | CLI agent that consumes MCP servers | [docs](https://docs.anthropic.com/en/docs/claude-code) |
|
|
184
|
+
|
|
185
|
+
## Architecture
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
src/
|
|
189
|
+
tools/ # MCP tool definitions (6 tools)
|
|
190
|
+
prompts/ # MCP prompt definitions (7 prompts)
|
|
191
|
+
core/ # Shared logic (parser, task-parser, path-utils)
|
|
192
|
+
dashboard/ # Dashboard backend (multi-server, approval-storage)
|
|
193
|
+
dashboard_frontend/ # React 18 frontend (Vite + Tailwind)
|
|
194
|
+
markdown/ # Document and review templates
|
|
195
|
+
types.ts # Shared TypeScript types
|
|
196
|
+
index.ts # CLI entry point
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
## Roadmap
|
|
200
|
+
|
|
201
|
+
- [x] SpecFlow MCP server -- spec lifecycle + dashboard
|
|
202
|
+
- [x] DocVault -- cross-project knowledge vault
|
|
203
|
+
- [x] Code Context -- semantic search (Milvus, self-hosted)
|
|
204
|
+
- [x] Code Graph Context -- structural search (Neo4j, local)
|
|
205
|
+
- [x] 60+ skills -- procedural knowledge routing
|
|
206
|
+
- [x] Memory pipeline -- session digests via local Ollama
|
|
207
|
+
- [ ] Rebrand Code Context -- merge into SpecFlow plugin
|
|
208
|
+
- [ ] Self-host mem0 -- fork + local deployment
|
|
209
|
+
- [ ] Self-host CGC -- fork + local Neo4j bundle
|
|
210
|
+
- [ ] Unified Docker container -- all services in one stack
|
|
211
|
+
- [ ] One-command install for any project
|
|
212
|
+
|
|
213
|
+
## Development
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
npm install # Install dependencies
|
|
217
|
+
npm run build # Compile TypeScript + build dashboard frontend
|
|
218
|
+
npm run dev # Development mode with hot reload
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Upstream Documentation
|
|
222
|
+
|
|
223
|
+
Core functionality docs from Pimzino's project:
|
|
224
|
+
|
|
225
|
+
- [Configuration Guide](docs/CONFIGURATION.md)
|
|
226
|
+
- [User Guide](docs/USER-GUIDE.md)
|
|
227
|
+
- [Workflow Process](docs/WORKFLOW.md)
|
|
228
|
+
- [Prompting Guide](docs/PROMPTING-GUIDE.md)
|
|
229
|
+
- [Tools Reference](docs/TOOLS-REFERENCE.md)
|
|
230
|
+
|
|
231
|
+
## Credits
|
|
232
|
+
|
|
233
|
+
**[Pimzino/spec-workflow-mcp](https://github.com/Pimzino/spec-workflow-mcp)** is the foundation. Pimzino designed and built the core architecture: the MCP server, sequential spec workflow, real-time dashboard with blocking approval gates, approval storage, markdown parser, implementation logging, template engine, multi-language support, VSCode extension, Docker deployment, and security hardening. SpecFlow adds workflow extensions, knowledge architecture, and code intelligence on top of that substantial foundation.
|
|
234
|
+
|
|
235
|
+
**[Zilliz/claude-context](https://github.com/zilliztech/mcp-server-milvus)** provides the semantic code search engine that Code Context is forked from.
|
|
236
|
+
|
|
237
|
+
## License
|
|
238
|
+
|
|
239
|
+
GPL-3.0 -- same as upstream.
|