@arimakouyou/spec-workflow-mcp 2.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/.mcp.json +8 -0
- package/.claude-plugin/agents/code-simplifier.md +80 -0
- package/.claude-plugin/agents/integ-test-auditor.md +91 -0
- package/.claude-plugin/agents/integ-test-worker.md +73 -0
- package/.claude-plugin/agents/parallel-worker.md +136 -0
- package/.claude-plugin/agents/review-worker.md +279 -0
- package/.claude-plugin/agents/unit-test-engineer.md +148 -0
- package/.claude-plugin/agents/wave-harness-worker.md +158 -0
- package/.claude-plugin/hooks/hooks.json +16 -0
- package/.claude-plugin/hooks/tasks-read-guard.sh +17 -0
- package/.claude-plugin/marketplace.json +33 -0
- package/.claude-plugin/plugin.json +11 -0
- package/.claude-plugin/rules/axum.md +154 -0
- package/.claude-plugin/rules/cargo-toml.md +63 -0
- package/.claude-plugin/rules/context7.md +17 -0
- package/.claude-plugin/rules/design-conformance.md +82 -0
- package/.claude-plugin/rules/design-principles.md +53 -0
- package/.claude-plugin/rules/diesel.md +176 -0
- package/.claude-plugin/rules/feedback-loop.md +33 -0
- package/.claude-plugin/rules/leptos.md +319 -0
- package/.claude-plugin/rules/project-architecture.md +134 -0
- package/.claude-plugin/rules/quality-checks.md +265 -0
- package/.claude-plugin/rules/rust-style.md +242 -0
- package/.claude-plugin/rules/security.md +67 -0
- package/.claude-plugin/rules/spec-workflow-enforcement.md +47 -0
- package/.claude-plugin/rules/valkey.md +167 -0
- package/.claude-plugin/skills/integration-test/SKILL.md +230 -0
- package/.claude-plugin/skills/integration-test/references/auditor-prompt.md +78 -0
- package/.claude-plugin/skills/integration-test/references/external-api-mock.md +98 -0
- package/.claude-plugin/skills/integration-test/references/fixture-catalog.md +155 -0
- package/.claude-plugin/skills/integration-test/references/parallel-execution.md +124 -0
- package/.claude-plugin/skills/integration-test/references/quality-gate.md +80 -0
- package/.claude-plugin/skills/integration-test/references/test-case-design.md +88 -0
- package/.claude-plugin/skills/integration-test/references/test-patterns.md +215 -0
- package/.claude-plugin/skills/integration-test/references/whiteboard-template.md +81 -0
- package/.claude-plugin/skills/integration-test/references/worker-prompt.md +70 -0
- package/.claude-plugin/skills/knowhow-capture/SKILL.md +143 -0
- package/.claude-plugin/skills/phase-review-team/SKILL.md +380 -0
- package/.claude-plugin/skills/spec-design/SKILL.md +282 -0
- package/.claude-plugin/skills/spec-e2e-implement/SKILL.md +259 -0
- package/.claude-plugin/skills/spec-impl-code/SKILL.md +101 -0
- package/.claude-plugin/skills/spec-impl-review/SKILL.md +115 -0
- package/.claude-plugin/skills/spec-impl-test-run/SKILL.md +98 -0
- package/.claude-plugin/skills/spec-impl-test-write/SKILL.md +121 -0
- package/.claude-plugin/skills/spec-implement/SKILL.md +822 -0
- package/.claude-plugin/skills/spec-requirements/SKILL.md +130 -0
- package/.claude-plugin/skills/spec-review/SKILL.md +274 -0
- package/.claude-plugin/skills/spec-tasks/SKILL.md +372 -0
- package/.claude-plugin/skills/spec-test-design/SKILL.md +233 -0
- package/.claude-plugin/skills/tdd-skills/SKILL.md +95 -0
- package/.claude-plugin/skills/tdd-skills/references/advanced-techniques.md +49 -0
- package/.claude-plugin/skills/tdd-skills/references/green-strategies.md +70 -0
- package/.claude-plugin/skills/tdd-skills/references/tdd-and-design.md +48 -0
- package/.claude-plugin/skills/tdd-skills/references/test-design.md +43 -0
- package/.claude-plugin/skills/tdd-skills/references/test-doubles.md +53 -0
- package/.claude-plugin/skills/tdd-skills/references/test-patterns.md +40 -0
- package/.claude-plugin/skills/tdd-skills-rust/SKILL.md +128 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/advanced-techniques.md +205 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/green-strategies.md +166 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/tdd-and-design.md +215 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-design.md +128 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-doubles.md +208 -0
- package/.claude-plugin/skills/tdd-skills-rust/references/test-patterns.md +223 -0
- package/.claude-plugin/with-dashboard/.mcp.json +8 -0
- package/.claude-plugin/with-dashboard/plugin.json +10 -0
- package/CHANGELOG.md +1007 -0
- package/LICENSE +674 -0
- package/README.ja.md +380 -0
- package/README.md +437 -0
- package/dist/__tests__/config.test.d.ts +2 -0
- package/dist/__tests__/config.test.d.ts.map +1 -0
- package/dist/__tests__/config.test.js +264 -0
- package/dist/__tests__/config.test.js.map +1 -0
- package/dist/__tests__/index-args.test.d.ts +2 -0
- package/dist/__tests__/index-args.test.d.ts.map +1 -0
- package/dist/__tests__/index-args.test.js +43 -0
- package/dist/__tests__/index-args.test.js.map +1 -0
- package/dist/__tests__/index-entrypoint.test.d.ts +2 -0
- package/dist/__tests__/index-entrypoint.test.d.ts.map +1 -0
- package/dist/__tests__/index-entrypoint.test.js +23 -0
- package/dist/__tests__/index-entrypoint.test.js.map +1 -0
- package/dist/config.d.ts +26 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +188 -0
- package/dist/config.js.map +1 -0
- package/dist/core/__tests__/git-utils.test.d.ts +2 -0
- package/dist/core/__tests__/git-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/git-utils.test.js +179 -0
- package/dist/core/__tests__/git-utils.test.js.map +1 -0
- package/dist/core/__tests__/mdx-validator.test.d.ts +2 -0
- package/dist/core/__tests__/mdx-validator.test.d.ts.map +1 -0
- package/dist/core/__tests__/mdx-validator.test.js +42 -0
- package/dist/core/__tests__/mdx-validator.test.js.map +1 -0
- package/dist/core/__tests__/path-utils.test.d.ts +2 -0
- package/dist/core/__tests__/path-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/path-utils.test.js +342 -0
- package/dist/core/__tests__/path-utils.test.js.map +1 -0
- package/dist/core/__tests__/project-registry.test.d.ts +2 -0
- package/dist/core/__tests__/project-registry.test.d.ts.map +1 -0
- package/dist/core/__tests__/project-registry.test.js +62 -0
- package/dist/core/__tests__/project-registry.test.js.map +1 -0
- package/dist/core/__tests__/security-utils.test.d.ts +2 -0
- package/dist/core/__tests__/security-utils.test.d.ts.map +1 -0
- package/dist/core/__tests__/security-utils.test.js +657 -0
- package/dist/core/__tests__/security-utils.test.js.map +1 -0
- package/dist/core/__tests__/task-parser.test.d.ts +2 -0
- package/dist/core/__tests__/task-parser.test.d.ts.map +1 -0
- package/dist/core/__tests__/task-parser.test.js +222 -0
- package/dist/core/__tests__/task-parser.test.js.map +1 -0
- package/dist/core/__tests__/task-validator.test.d.ts +2 -0
- package/dist/core/__tests__/task-validator.test.d.ts.map +1 -0
- package/dist/core/__tests__/task-validator.test.js +308 -0
- package/dist/core/__tests__/task-validator.test.js.map +1 -0
- package/dist/core/archive-service.d.ts +10 -0
- package/dist/core/archive-service.d.ts.map +1 -0
- package/dist/core/archive-service.js +99 -0
- package/dist/core/archive-service.js.map +1 -0
- package/dist/core/dashboard-session.d.ts +49 -0
- package/dist/core/dashboard-session.d.ts.map +1 -0
- package/dist/core/dashboard-session.js +132 -0
- package/dist/core/dashboard-session.js.map +1 -0
- package/dist/core/git-utils.d.ts +25 -0
- package/dist/core/git-utils.d.ts.map +1 -0
- package/dist/core/git-utils.js +87 -0
- package/dist/core/git-utils.js.map +1 -0
- package/dist/core/global-dir.d.ts +44 -0
- package/dist/core/global-dir.d.ts.map +1 -0
- package/dist/core/global-dir.js +74 -0
- package/dist/core/global-dir.js.map +1 -0
- package/dist/core/implementation-log-migrator.d.ts +41 -0
- package/dist/core/implementation-log-migrator.d.ts.map +1 -0
- package/dist/core/implementation-log-migrator.js +258 -0
- package/dist/core/implementation-log-migrator.js.map +1 -0
- package/dist/core/mdx-validator.d.ts +14 -0
- package/dist/core/mdx-validator.d.ts.map +1 -0
- package/dist/core/mdx-validator.js +34 -0
- package/dist/core/mdx-validator.js.map +1 -0
- package/dist/core/parser.d.ts +11 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/parser.js +128 -0
- package/dist/core/parser.js.map +1 -0
- package/dist/core/path-utils.d.ts +68 -0
- package/dist/core/path-utils.d.ts.map +1 -0
- package/dist/core/path-utils.js +302 -0
- package/dist/core/path-utils.js.map +1 -0
- package/dist/core/project-registry.d.ts +94 -0
- package/dist/core/project-registry.d.ts.map +1 -0
- package/dist/core/project-registry.js +297 -0
- package/dist/core/project-registry.js.map +1 -0
- package/dist/core/security-utils.d.ts +99 -0
- package/dist/core/security-utils.d.ts.map +1 -0
- package/dist/core/security-utils.js +275 -0
- package/dist/core/security-utils.js.map +1 -0
- package/dist/core/task-parser.d.ts +90 -0
- package/dist/core/task-parser.d.ts.map +1 -0
- package/dist/core/task-parser.js +477 -0
- package/dist/core/task-parser.js.map +1 -0
- package/dist/core/task-validator.d.ts +37 -0
- package/dist/core/task-validator.d.ts.map +1 -0
- package/dist/core/task-validator.js +499 -0
- package/dist/core/task-validator.js.map +1 -0
- package/dist/core/workspace-initializer.d.ts +16 -0
- package/dist/core/workspace-initializer.d.ts.map +1 -0
- package/dist/core/workspace-initializer.js +168 -0
- package/dist/core/workspace-initializer.js.map +1 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts +2 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js +78 -0
- package/dist/dashboard/__tests__/approval-storage-path-resolution.test.js.map +1 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts +2 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.js +115 -0
- package/dist/dashboard/__tests__/multi-server-approvals-content.test.js.map +1 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts +2 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.d.ts.map +1 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.js +118 -0
- package/dist/dashboard/__tests__/watcher-error-handling.test.js.map +1 -0
- package/dist/dashboard/approval-storage.d.ts +139 -0
- package/dist/dashboard/approval-storage.d.ts.map +1 -0
- package/dist/dashboard/approval-storage.js +608 -0
- package/dist/dashboard/approval-storage.js.map +1 -0
- package/dist/dashboard/execution-history-manager.d.ts +52 -0
- package/dist/dashboard/execution-history-manager.d.ts.map +1 -0
- package/dist/dashboard/execution-history-manager.js +161 -0
- package/dist/dashboard/execution-history-manager.js.map +1 -0
- package/dist/dashboard/implementation-log-manager.d.ts +97 -0
- package/dist/dashboard/implementation-log-manager.d.ts.map +1 -0
- package/dist/dashboard/implementation-log-manager.js +617 -0
- package/dist/dashboard/implementation-log-manager.js.map +1 -0
- package/dist/dashboard/job-scheduler.d.ts +91 -0
- package/dist/dashboard/job-scheduler.d.ts.map +1 -0
- package/dist/dashboard/job-scheduler.js +321 -0
- package/dist/dashboard/job-scheduler.js.map +1 -0
- package/dist/dashboard/multi-server.d.ts +42 -0
- package/dist/dashboard/multi-server.d.ts.map +1 -0
- package/dist/dashboard/multi-server.js +1460 -0
- package/dist/dashboard/multi-server.js.map +1 -0
- package/dist/dashboard/parser.d.ts +18 -0
- package/dist/dashboard/parser.d.ts.map +1 -0
- package/dist/dashboard/parser.js +269 -0
- package/dist/dashboard/parser.js.map +1 -0
- package/dist/dashboard/project-manager.d.ts +82 -0
- package/dist/dashboard/project-manager.d.ts.map +1 -0
- package/dist/dashboard/project-manager.js +257 -0
- package/dist/dashboard/project-manager.js.map +1 -0
- package/dist/dashboard/public/assets/Inter-Bold-CD3Pr7BX.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-Medium-B_8v_WHh.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-Regular-DRVdRqcI.woff2 +0 -0
- package/dist/dashboard/public/assets/Inter-SemiBold-CtskMddL.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Bold-D4WEaHbo.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Medium-3S3k2nMz.woff2 +0 -0
- package/dist/dashboard/public/assets/JetBrainsMono-Regular-BQaDgvhP.woff2 +0 -0
- package/dist/dashboard/public/assets/Tableau10-B-NsZVaP.js +1 -0
- package/dist/dashboard/public/assets/apl-B4CMkyY2.js +1 -0
- package/dist/dashboard/public/assets/arc-a5wW942W.js +1 -0
- package/dist/dashboard/public/assets/array-BKyUJesY.js +1 -0
- package/dist/dashboard/public/assets/asciiarmor-Df11BRmG.js +1 -0
- package/dist/dashboard/public/assets/asn1-EdZsLKOL.js +1 -0
- package/dist/dashboard/public/assets/asterisk-B-8jnY81.js +1 -0
- package/dist/dashboard/public/assets/blockDiagram-c4efeb88-CvjTuK-w.js +118 -0
- package/dist/dashboard/public/assets/brainfuck-C4LP7Hcl.js +1 -0
- package/dist/dashboard/public/assets/c4Diagram-c83219d4-NwVQo5kf.js +10 -0
- package/dist/dashboard/public/assets/channel-Bi16YZhk.js +1 -0
- package/dist/dashboard/public/assets/classDiagram-beda092f-BmSeXDdU.js +2 -0
- package/dist/dashboard/public/assets/classDiagram-v2-2358418a-D7GvvuPr.js +2 -0
- package/dist/dashboard/public/assets/clike-B9uivgTg.js +1 -0
- package/dist/dashboard/public/assets/clojure-BMjYHr_A.js +1 -0
- package/dist/dashboard/public/assets/clone-BpKTiq7P.js +1 -0
- package/dist/dashboard/public/assets/cmake-BQqOBYOt.js +1 -0
- package/dist/dashboard/public/assets/cobol-CWcv1MsR.js +1 -0
- package/dist/dashboard/public/assets/coffeescript-S37ZYGWr.js +1 -0
- package/dist/dashboard/public/assets/commonlisp-DBKNyK5s.js +1 -0
- package/dist/dashboard/public/assets/createText-1719965b-qASbqHUP.js +7 -0
- package/dist/dashboard/public/assets/crystal-SjHAIU92.js +1 -0
- package/dist/dashboard/public/assets/css-BnMrqG3P.js +1 -0
- package/dist/dashboard/public/assets/cypher-C_CwsFkJ.js +1 -0
- package/dist/dashboard/public/assets/d-pRatUO7H.js +1 -0
- package/dist/dashboard/public/assets/diff-DbItnlRl.js +1 -0
- package/dist/dashboard/public/assets/dockerfile-BKs6k2Af.js +1 -0
- package/dist/dashboard/public/assets/dtd-DF_7sFjM.js +1 -0
- package/dist/dashboard/public/assets/dylan-DwRh75JA.js +1 -0
- package/dist/dashboard/public/assets/ebnf-CDyGwa7X.js +1 -0
- package/dist/dashboard/public/assets/ecl-Cabwm37j.js +1 -0
- package/dist/dashboard/public/assets/edges-96097737-BItTSnH7.js +4 -0
- package/dist/dashboard/public/assets/eiffel-CnydiIhH.js +1 -0
- package/dist/dashboard/public/assets/elm-vLlmbW-K.js +1 -0
- package/dist/dashboard/public/assets/erDiagram-0228fc6a-DT224olg.js +51 -0
- package/dist/dashboard/public/assets/erlang-BNw1qcRV.js +1 -0
- package/dist/dashboard/public/assets/factor-kuTfRLto.js +1 -0
- package/dist/dashboard/public/assets/fcl-Kvtd6kyn.js +1 -0
- package/dist/dashboard/public/assets/flowDb-c6c81e3f-D9_ukKtv.js +10 -0
- package/dist/dashboard/public/assets/flowDiagram-50d868cf-CylE8siG.js +4 -0
- package/dist/dashboard/public/assets/flowDiagram-v2-4f6560a1-B2O3JN7Y.js +1 -0
- package/dist/dashboard/public/assets/flowchart-elk-definition-6af322e1-BCaqFKf3.js +139 -0
- package/dist/dashboard/public/assets/forth-Ffai-XNe.js +1 -0
- package/dist/dashboard/public/assets/fortran-DYz_wnZ1.js +1 -0
- package/dist/dashboard/public/assets/ganttDiagram-a2739b55-WQUL1QW_.js +257 -0
- package/dist/dashboard/public/assets/gas-Bneqetm1.js +1 -0
- package/dist/dashboard/public/assets/gherkin-heZmZLOM.js +1 -0
- package/dist/dashboard/public/assets/gitGraphDiagram-82fe8481-CttZrdmr.js +70 -0
- package/dist/dashboard/public/assets/graph-Ch-rVueN.js +1 -0
- package/dist/dashboard/public/assets/groovy-D9Dt4D0W.js +1 -0
- package/dist/dashboard/public/assets/haskell-Cw1EW3IL.js +1 -0
- package/dist/dashboard/public/assets/haxe-H-WmDvRZ.js +1 -0
- package/dist/dashboard/public/assets/http-DBlCnlav.js +1 -0
- package/dist/dashboard/public/assets/idl-BEugSyMb.js +1 -0
- package/dist/dashboard/public/assets/index--kbPpDKv.js +1 -0
- package/dist/dashboard/public/assets/index-3scDwWm6.js +1 -0
- package/dist/dashboard/public/assets/index-5325376f-BL2zVOJU.js +1 -0
- package/dist/dashboard/public/assets/index-BZdjbO25.js +1 -0
- package/dist/dashboard/public/assets/index-BmA_batZ.js +1 -0
- package/dist/dashboard/public/assets/index-Bu0u99kF.js +2 -0
- package/dist/dashboard/public/assets/index-Ch-lr7F4.js +1 -0
- package/dist/dashboard/public/assets/index-ClgWbdoq.js +1 -0
- package/dist/dashboard/public/assets/index-CzLwOMQ_.js +3 -0
- package/dist/dashboard/public/assets/index-DAOEjGO7.js +1 -0
- package/dist/dashboard/public/assets/index-DXqf0B9c.js +1 -0
- package/dist/dashboard/public/assets/index-DegWdR16.js +1 -0
- package/dist/dashboard/public/assets/index-DiHyYGim.js +1 -0
- package/dist/dashboard/public/assets/index-DlZtG7I5.js +1 -0
- package/dist/dashboard/public/assets/index-DmhGE2M8.js +1 -0
- package/dist/dashboard/public/assets/index-QEGvld4x.js +1 -0
- package/dist/dashboard/public/assets/index-RfZPGAJu.js +1 -0
- package/dist/dashboard/public/assets/index-UybBj_7u.js +319 -0
- package/dist/dashboard/public/assets/index-bVekzPnl.js +7 -0
- package/dist/dashboard/public/assets/index-f5bysQzW.css +1 -0
- package/dist/dashboard/public/assets/infoDiagram-8eee0895-DjzkkE3o.js +7 -0
- package/dist/dashboard/public/assets/init-Gi6I4Gst.js +1 -0
- package/dist/dashboard/public/assets/javascript-iXu5QeM3.js +1 -0
- package/dist/dashboard/public/assets/journeyDiagram-c64418c1-CxPZkNdB.js +139 -0
- package/dist/dashboard/public/assets/julia-DuME0IfC.js +1 -0
- package/dist/dashboard/public/assets/katex-XbL3y5x-.js +261 -0
- package/dist/dashboard/public/assets/layout-DX7DNTRm.js +1 -0
- package/dist/dashboard/public/assets/line-DfvpmKOn.js +1 -0
- package/dist/dashboard/public/assets/linear-gQbBPHO5.js +1 -0
- package/dist/dashboard/public/assets/livescript-BwQOo05w.js +1 -0
- package/dist/dashboard/public/assets/lua-BgMRiT3U.js +1 -0
- package/dist/dashboard/public/assets/mathematica-DTrFuWx2.js +1 -0
- package/dist/dashboard/public/assets/mbox-CNhZ1qSd.js +1 -0
- package/dist/dashboard/public/assets/mindmap-definition-8da855dc-CNxmpyG6.js +415 -0
- package/dist/dashboard/public/assets/mirc-CjQqDB4T.js +1 -0
- package/dist/dashboard/public/assets/mllike-CXdrOF99.js +1 -0
- package/dist/dashboard/public/assets/modelica-Dc1JOy9r.js +1 -0
- package/dist/dashboard/public/assets/mscgen-BA5vi2Kp.js +1 -0
- package/dist/dashboard/public/assets/mumps-BT43cFF4.js +1 -0
- package/dist/dashboard/public/assets/nginx-DdIZxoE0.js +1 -0
- package/dist/dashboard/public/assets/nsis-LdVXkNf5.js +1 -0
- package/dist/dashboard/public/assets/ntriples-BfvgReVJ.js +1 -0
- package/dist/dashboard/public/assets/octave-Ck1zUtKM.js +1 -0
- package/dist/dashboard/public/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/dashboard/public/assets/oz-BzwKVEFT.js +1 -0
- package/dist/dashboard/public/assets/pascal--L3eBynH.js +1 -0
- package/dist/dashboard/public/assets/path-CbwjOpE9.js +1 -0
- package/dist/dashboard/public/assets/perl-CdXCOZ3F.js +1 -0
- package/dist/dashboard/public/assets/pieDiagram-a8764435-D-xy_NSA.js +35 -0
- package/dist/dashboard/public/assets/pig-CevX1Tat.js +1 -0
- package/dist/dashboard/public/assets/powershell-CFHJl5sT.js +1 -0
- package/dist/dashboard/public/assets/properties-C78fOPTZ.js +1 -0
- package/dist/dashboard/public/assets/protobuf-ChK-085T.js +1 -0
- package/dist/dashboard/public/assets/pug-DeIclll2.js +1 -0
- package/dist/dashboard/public/assets/puppet-DMA9R1ak.js +1 -0
- package/dist/dashboard/public/assets/python-BuPzkPfP.js +1 -0
- package/dist/dashboard/public/assets/q-pXgVlZs6.js +1 -0
- package/dist/dashboard/public/assets/quadrantDiagram-1e28029f-BoL2wzz0.js +7 -0
- package/dist/dashboard/public/assets/r-B6wPVr8A.js +1 -0
- package/dist/dashboard/public/assets/requirementDiagram-08caed73-BujFz0q1.js +52 -0
- package/dist/dashboard/public/assets/rpm-CTu-6PCP.js +1 -0
- package/dist/dashboard/public/assets/ruby-B2Rjki9n.js +1 -0
- package/dist/dashboard/public/assets/sankeyDiagram-a04cb91d-D03_NARm.js +8 -0
- package/dist/dashboard/public/assets/sas-B4kiWyti.js +1 -0
- package/dist/dashboard/public/assets/scheme-C41bIUwD.js +1 -0
- package/dist/dashboard/public/assets/sequenceDiagram-c5b8d532-B65eFcaT.js +122 -0
- package/dist/dashboard/public/assets/shell-CjFT_Tl9.js +1 -0
- package/dist/dashboard/public/assets/sieve-C3Gn_uJK.js +1 -0
- package/dist/dashboard/public/assets/simple-mode-GW_nhZxv.js +1 -0
- package/dist/dashboard/public/assets/smalltalk-CnHTOXQT.js +1 -0
- package/dist/dashboard/public/assets/solr-DehyRSwq.js +1 -0
- package/dist/dashboard/public/assets/sparql-DkYu6x3z.js +1 -0
- package/dist/dashboard/public/assets/spreadsheet-BCZA_wO0.js +1 -0
- package/dist/dashboard/public/assets/sql-D0XecflT.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-1ecb1508-BDbqu0Vl.js +1 -0
- package/dist/dashboard/public/assets/stateDiagram-v2-c2b004d7-CBHvk4b8.js +1 -0
- package/dist/dashboard/public/assets/stex-C3f8Ysf7.js +1 -0
- package/dist/dashboard/public/assets/styles-b4e223ce-CELsPqaO.js +160 -0
- package/dist/dashboard/public/assets/styles-ca3715f6-BRqMqT6F.js +207 -0
- package/dist/dashboard/public/assets/styles-d45a18b0-e8N-oLPy.js +116 -0
- package/dist/dashboard/public/assets/stylus-B533Al4x.js +1 -0
- package/dist/dashboard/public/assets/svgDrawCommon-b86b1483-vNDtmQc-.js +1 -0
- package/dist/dashboard/public/assets/swift-BzpIVaGY.js +1 -0
- package/dist/dashboard/public/assets/tcl-DVfN8rqt.js +1 -0
- package/dist/dashboard/public/assets/textile-CnDTJFAw.js +1 -0
- package/dist/dashboard/public/assets/tiddlywiki-DO-Gjzrf.js +1 -0
- package/dist/dashboard/public/assets/tiki-DGYXhP31.js +1 -0
- package/dist/dashboard/public/assets/timeline-definition-faaaa080-Dh2_A5VU.js +61 -0
- package/dist/dashboard/public/assets/toml-Bm5Em-hy.js +1 -0
- package/dist/dashboard/public/assets/troff-wAsdV37c.js +1 -0
- package/dist/dashboard/public/assets/ttcn-CfJYG6tj.js +1 -0
- package/dist/dashboard/public/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/dist/dashboard/public/assets/turtle-B1tBg_DP.js +1 -0
- package/dist/dashboard/public/assets/vb-CmGdzxic.js +1 -0
- package/dist/dashboard/public/assets/vbscript-BuJXcnF6.js +1 -0
- package/dist/dashboard/public/assets/velocity-D8B20fx6.js +1 -0
- package/dist/dashboard/public/assets/verilog-C6RDOZhf.js +1 -0
- package/dist/dashboard/public/assets/vhdl-lSbBsy5d.js +1 -0
- package/dist/dashboard/public/assets/webidl-ZXfAyPTL.js +1 -0
- package/dist/dashboard/public/assets/xquery-DzFWVndE.js +1 -0
- package/dist/dashboard/public/assets/xychartDiagram-f5964ef8-B76v1AVF.js +7 -0
- package/dist/dashboard/public/assets/yacas-BJ4BC0dw.js +1 -0
- package/dist/dashboard/public/assets/z80-Hz9HOZM7.js +1 -0
- package/dist/dashboard/public/claude-icon-dark.svg +1 -0
- package/dist/dashboard/public/claude-icon.svg +1 -0
- package/dist/dashboard/public/index.html +16 -0
- package/dist/dashboard/settings-manager.d.ts +47 -0
- package/dist/dashboard/settings-manager.d.ts.map +1 -0
- package/dist/dashboard/settings-manager.js +180 -0
- package/dist/dashboard/settings-manager.js.map +1 -0
- package/dist/dashboard/utils.d.ts +31 -0
- package/dist/dashboard/utils.d.ts.map +1 -0
- package/dist/dashboard/utils.js +102 -0
- package/dist/dashboard/utils.js.map +1 -0
- package/dist/dashboard/watcher.d.ts +32 -0
- package/dist/dashboard/watcher.d.ts.map +1 -0
- package/dist/dashboard/watcher.js +173 -0
- package/dist/dashboard/watcher.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +380 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown/templates/design-template.md +126 -0
- package/dist/markdown/templates/product-template.md +51 -0
- package/dist/markdown/templates/requirements-template.md +50 -0
- package/dist/markdown/templates/structure-template.md +145 -0
- package/dist/markdown/templates/tasks-template.md +100 -0
- package/dist/markdown/templates/tech-template.md +99 -0
- package/dist/markdown/templates/test-design-template.md +221 -0
- package/dist/prompts/create-spec.d.ts +3 -0
- package/dist/prompts/create-spec.d.ts.map +1 -0
- package/dist/prompts/create-spec.js +97 -0
- package/dist/prompts/create-spec.js.map +1 -0
- package/dist/prompts/create-steering-doc.d.ts +3 -0
- package/dist/prompts/create-steering-doc.d.ts.map +1 -0
- package/dist/prompts/create-steering-doc.js +75 -0
- package/dist/prompts/create-steering-doc.js.map +1 -0
- package/dist/prompts/implement-task.d.ts +3 -0
- package/dist/prompts/implement-task.d.ts.map +1 -0
- package/dist/prompts/implement-task.js +174 -0
- package/dist/prompts/implement-task.js.map +1 -0
- package/dist/prompts/index.d.ts +20 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +103 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/inject-spec-workflow-guide.d.ts +3 -0
- package/dist/prompts/inject-spec-workflow-guide.d.ts.map +1 -0
- package/dist/prompts/inject-spec-workflow-guide.js +60 -0
- package/dist/prompts/inject-spec-workflow-guide.js.map +1 -0
- package/dist/prompts/inject-steering-guide.d.ts +3 -0
- package/dist/prompts/inject-steering-guide.d.ts.map +1 -0
- package/dist/prompts/inject-steering-guide.js +64 -0
- package/dist/prompts/inject-steering-guide.js.map +1 -0
- package/dist/prompts/refresh-tasks.d.ts +3 -0
- package/dist/prompts/refresh-tasks.d.ts.map +1 -0
- package/dist/prompts/refresh-tasks.js +237 -0
- package/dist/prompts/refresh-tasks.js.map +1 -0
- package/dist/prompts/spec-status.d.ts +3 -0
- package/dist/prompts/spec-status.d.ts.map +1 -0
- package/dist/prompts/spec-status.js +77 -0
- package/dist/prompts/spec-status.js.map +1 -0
- package/dist/prompts/types.d.ts +13 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +2 -0
- package/dist/prompts/types.js.map +1 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +175 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.d.ts +2 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.d.ts.map +1 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.js +190 -0
- package/dist/tools/__tests__/log-implementation-review-process.test.js.map +1 -0
- package/dist/tools/__tests__/projectPath.test.d.ts +2 -0
- package/dist/tools/__tests__/projectPath.test.d.ts.map +1 -0
- package/dist/tools/__tests__/projectPath.test.js +187 -0
- package/dist/tools/__tests__/projectPath.test.js.map +1 -0
- package/dist/tools/approvals.d.ts +14 -0
- package/dist/tools/approvals.d.ts.map +1 -0
- package/dist/tools/approvals.js +505 -0
- package/dist/tools/approvals.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +52 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/log-implementation.d.ts +5 -0
- package/dist/tools/log-implementation.d.ts.map +1 -0
- package/dist/tools/log-implementation.js +498 -0
- package/dist/tools/log-implementation.js.map +1 -0
- package/dist/tools/spec-status.d.ts +5 -0
- package/dist/tools/spec-status.d.ts.map +1 -0
- package/dist/tools/spec-status.js +192 -0
- package/dist/tools/spec-status.js.map +1 -0
- package/dist/tools/spec-workflow-guide.d.ts +5 -0
- package/dist/tools/spec-workflow-guide.d.ts.map +1 -0
- package/dist/tools/spec-workflow-guide.js +116 -0
- package/dist/tools/spec-workflow-guide.js.map +1 -0
- package/dist/tools/steering-guide.d.ts +5 -0
- package/dist/tools/steering-guide.d.ts.map +1 -0
- package/dist/tools/steering-guide.js +192 -0
- package/dist/tools/steering-guide.js.map +1 -0
- package/dist/types.d.ts +183 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-impl-review
|
|
3
|
+
description: "TDD REFACTOR phase for spec-implement workflow. Reviews and refactors both test and production code for quality. Designed to run as a subagent — spawn it with the Agent tool. Triggers on: subagent calls from spec-implement orchestrator only."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Reviewer — REFACTOR Phase (Subagent)
|
|
7
|
+
|
|
8
|
+
This skill is designed to run as a **subagent** via the Agent tool. It reviews and refactors both test and production code, following TDD's REFACTOR phase.
|
|
9
|
+
|
|
10
|
+
## How the Calling Agent Should Invoke This
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
Agent({
|
|
14
|
+
subagent_type: "general-purpose",
|
|
15
|
+
description: "REFACTOR: Review and clean up",
|
|
16
|
+
prompt: `You are a TDD refactoring reviewer. Review and refactor the code written in the RED-GREEN phases.
|
|
17
|
+
|
|
18
|
+
Project path: {project-path}
|
|
19
|
+
Spec name: {spec-name}
|
|
20
|
+
Task ID: {task-id}
|
|
21
|
+
Task prompt: {task _Prompt content}
|
|
22
|
+
Test files: {test-file-paths}
|
|
23
|
+
Implementation files: {implementation-file-paths}
|
|
24
|
+
Success criteria: {success criteria from _Prompt}
|
|
25
|
+
|
|
26
|
+
Follow the /spec-impl-review skill instructions.
|
|
27
|
+
|
|
28
|
+
Return the list of changes made and quality assessment.`
|
|
29
|
+
})
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## REFACTOR Phase Rules
|
|
33
|
+
|
|
34
|
+
1. **Do NOT change test expectations** — assertions and expected values must stay the same
|
|
35
|
+
2. **Do NOT add new features** — refactoring changes structure, not behavior
|
|
36
|
+
3. **Tests must still pass after every change** — refactor in small, safe steps
|
|
37
|
+
4. **Improve clarity and maintainability** — the goal is clean, readable code
|
|
38
|
+
|
|
39
|
+
## Execution Steps
|
|
40
|
+
|
|
41
|
+
### 1. Read All Code
|
|
42
|
+
|
|
43
|
+
Read both the test files and implementation files to understand:
|
|
44
|
+
- The full picture of what was built
|
|
45
|
+
- How tests and production code relate
|
|
46
|
+
- Current code quality and structure
|
|
47
|
+
|
|
48
|
+
### 2. Check Success Criteria
|
|
49
|
+
|
|
50
|
+
Verify against the task's `_Prompt` Success criteria:
|
|
51
|
+
- Are all success criteria addressed by the implementation?
|
|
52
|
+
- Are there any gaps between what was asked and what was built?
|
|
53
|
+
- Flag any unmet criteria (but do NOT add untested features to fix them)
|
|
54
|
+
|
|
55
|
+
### 3. Apply Design Principles
|
|
56
|
+
|
|
57
|
+
Reference `/tdd-skills` and `tdd-skills/references/tdd-and-design.md` for design guidance:
|
|
58
|
+
|
|
59
|
+
**Production Code Refactoring:**
|
|
60
|
+
- **Duplication**: Extract shared logic into helper functions
|
|
61
|
+
- **Naming**: Improve variable, function, and class names for clarity
|
|
62
|
+
- **Responsibility**: Split functions/classes that do too much (SRP)
|
|
63
|
+
- **Error handling**: Ensure consistent and appropriate error handling
|
|
64
|
+
- **Type safety**: Tighten types, remove `any` where possible
|
|
65
|
+
- **Code organization**: Improve imports, ordering, grouping
|
|
66
|
+
|
|
67
|
+
**Test Code Refactoring:**
|
|
68
|
+
- **Readability**: Improve test names, add describe blocks for grouping
|
|
69
|
+
- **DRY setup**: Extract repeated setup into `beforeEach` / fixtures
|
|
70
|
+
- **Assertion clarity**: Use more specific matchers where available
|
|
71
|
+
- **Test independence**: Ensure no shared mutable state between tests
|
|
72
|
+
|
|
73
|
+
### 4. Perform Refactoring
|
|
74
|
+
|
|
75
|
+
Make changes in small, incremental steps. For each change:
|
|
76
|
+
- It should be a clear improvement in code quality
|
|
77
|
+
- It must not change observable behavior
|
|
78
|
+
- It must not change test expectations or add new assertions
|
|
79
|
+
|
|
80
|
+
### 5. Assess Quality
|
|
81
|
+
|
|
82
|
+
Evaluate the final code on:
|
|
83
|
+
- **Correctness**: Does it meet the task requirements?
|
|
84
|
+
- **Readability**: Is the code easy to understand?
|
|
85
|
+
- **Maintainability**: Is it easy to modify in the future?
|
|
86
|
+
- **Test coverage**: Do tests adequately cover the behavior?
|
|
87
|
+
- **Consistency**: Does it follow existing codebase patterns?
|
|
88
|
+
|
|
89
|
+
## Output Format
|
|
90
|
+
|
|
91
|
+
Return to the calling agent:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
## REFACTOR Phase Complete
|
|
95
|
+
|
|
96
|
+
### Refactoring Changes
|
|
97
|
+
- {file}: {what was changed and why}
|
|
98
|
+
- ...
|
|
99
|
+
|
|
100
|
+
### Quality Assessment
|
|
101
|
+
- Correctness: {PASS/CONCERN} — {details}
|
|
102
|
+
- Readability: {GOOD/FAIR/POOR} — {details}
|
|
103
|
+
- Maintainability: {GOOD/FAIR/POOR} — {details}
|
|
104
|
+
- Test coverage: {GOOD/FAIR/POOR} — {details}
|
|
105
|
+
- Consistency: {GOOD/FAIR/POOR} — {details}
|
|
106
|
+
|
|
107
|
+
### Success Criteria Check
|
|
108
|
+
- [ ] {criterion 1}: {met/unmet}
|
|
109
|
+
- [ ] {criterion 2}: {met/unmet}
|
|
110
|
+
|
|
111
|
+
### Concerns (if any)
|
|
112
|
+
- {any issues that need attention}
|
|
113
|
+
|
|
114
|
+
### Result: {CLEAN / NEEDS_ATTENTION}
|
|
115
|
+
```
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-impl-test-run
|
|
3
|
+
description: "TDD test runner for spec-implement workflow. Executes tests and validates results against expected mode (red=all fail, green=all pass). Designed to run as a subagent — spawn it with the Agent tool. Triggers on: subagent calls from spec-implement orchestrator only."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test Runner (Subagent)
|
|
7
|
+
|
|
8
|
+
This skill is designed to run as a **subagent** via the Agent tool. It executes specified test files and validates results against expected outcomes.
|
|
9
|
+
|
|
10
|
+
## How the Calling Agent Should Invoke This
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
Agent({
|
|
14
|
+
subagent_type: "general-purpose",
|
|
15
|
+
description: "Run tests ({mode} mode)",
|
|
16
|
+
prompt: `You are a TDD test runner. Execute the specified tests and validate the results.
|
|
17
|
+
|
|
18
|
+
Project path: {project-path}
|
|
19
|
+
Test files: {test-file-paths}
|
|
20
|
+
Expected mode: {red|green}
|
|
21
|
+
|
|
22
|
+
Follow the /spec-impl-test-run skill instructions.
|
|
23
|
+
|
|
24
|
+
Return a structured result summary.`
|
|
25
|
+
})
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Parameters
|
|
29
|
+
|
|
30
|
+
- **Project path**: Root directory of the project
|
|
31
|
+
- **Test files**: Comma-separated list of test file paths to execute
|
|
32
|
+
- **Expected mode**: `red` (all tests should fail) or `green` (all tests should pass)
|
|
33
|
+
|
|
34
|
+
## Execution Steps
|
|
35
|
+
|
|
36
|
+
### 1. Detect Test Runner
|
|
37
|
+
|
|
38
|
+
Detect the project's test runner by checking (in order):
|
|
39
|
+
|
|
40
|
+
1. `package.json` scripts — look for `test`, `vitest`, `jest` scripts
|
|
41
|
+
2. Config files: `vitest.config.*`, `jest.config.*`, `pytest.ini`, `pyproject.toml`
|
|
42
|
+
3. Dependencies in `package.json`: `vitest`, `jest`, `mocha`, `pytest`
|
|
43
|
+
|
|
44
|
+
### 2. Run Tests
|
|
45
|
+
|
|
46
|
+
Execute **only the specified test files**, not the full suite:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Examples by runner:
|
|
50
|
+
npx vitest run {test-files} --reporter=verbose
|
|
51
|
+
npx jest {test-files} --verbose
|
|
52
|
+
python -m pytest {test-files} -v
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Use the `--reporter=verbose` or equivalent flag to get per-test pass/fail details.
|
|
56
|
+
|
|
57
|
+
### 3. Parse Results
|
|
58
|
+
|
|
59
|
+
From the test output, extract:
|
|
60
|
+
- **total**: Number of tests executed
|
|
61
|
+
- **passed**: Number of tests that passed
|
|
62
|
+
- **failed**: Number of tests that failed
|
|
63
|
+
- **errors**: List of error messages for failed tests (test name + error)
|
|
64
|
+
|
|
65
|
+
### 4. Validate Against Mode
|
|
66
|
+
|
|
67
|
+
**Red mode** (`red`):
|
|
68
|
+
- EXPECTED: All tests fail (passed = 0)
|
|
69
|
+
- **Compile error**: If the test runner fails to build/compile (e.g. unresolved import of not-yet-implemented module), treat this as a hard failure — return `{ status: "fail", message: "Compile error: {error summary}", ... }`. The calling agent must fix the compile error before RED can be validated.
|
|
70
|
+
- If any test passes, report it as a problem — this means either:
|
|
71
|
+
- The test is not actually testing new behavior
|
|
72
|
+
- There's already an implementation that satisfies the test
|
|
73
|
+
- Return: `{ status: "pass", ... }` if all failed (and build succeeded), `{ status: "fail", message: "N tests unexpectedly passed", ... }` otherwise
|
|
74
|
+
|
|
75
|
+
**Green mode** (`green`):
|
|
76
|
+
- EXPECTED: All tests pass (failed = 0)
|
|
77
|
+
- If any test fails, report each failure with its error message
|
|
78
|
+
- Return: `{ status: "pass", ... }` if all passed, `{ status: "fail", message: "N tests failed", errors: [...] }` otherwise
|
|
79
|
+
|
|
80
|
+
## Output Format
|
|
81
|
+
|
|
82
|
+
Return to the calling agent:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
## Test Run Result
|
|
86
|
+
|
|
87
|
+
- **Mode**: {red|green}
|
|
88
|
+
- **Status**: {pass|fail}
|
|
89
|
+
- **Total**: {N} tests
|
|
90
|
+
- **Passed**: {N}
|
|
91
|
+
- **Failed**: {N}
|
|
92
|
+
|
|
93
|
+
### Errors (if any)
|
|
94
|
+
- {test name}: {error message}
|
|
95
|
+
|
|
96
|
+
### Verdict
|
|
97
|
+
{Description of whether the result matches expectations}
|
|
98
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-impl-test-write
|
|
3
|
+
description: "TDD RED phase for spec-implement workflow. Writes failing tests before any production code. Designed to run as a subagent — spawn it with the Agent tool. Triggers on: subagent calls from spec-implement orchestrator only."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test Writer — RED Phase (Subagent)
|
|
7
|
+
|
|
8
|
+
This skill is designed to run as a **subagent** via the Agent tool. It writes failing tests based on task specifications, following TDD's RED phase.
|
|
9
|
+
|
|
10
|
+
## How the Calling Agent Should Invoke This
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
Agent({
|
|
14
|
+
subagent_type: "general-purpose",
|
|
15
|
+
description: "RED: Write failing tests",
|
|
16
|
+
prompt: `You are a TDD test writer. Write failing tests for the task described below.
|
|
17
|
+
|
|
18
|
+
Project path: {project-path}
|
|
19
|
+
Spec name: {spec-name}
|
|
20
|
+
Task ID: {task-id}
|
|
21
|
+
Task prompt: {task _Prompt content}
|
|
22
|
+
Test focus areas: {_TestFocus content from task, if available}
|
|
23
|
+
Design doc path: {project-path}/.spec-workflow/specs/{spec-name}/design.md
|
|
24
|
+
|
|
25
|
+
Follow the /spec-impl-test-write skill instructions.
|
|
26
|
+
|
|
27
|
+
Return the list of test files created and test names.`
|
|
28
|
+
})
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## RED Phase Rules
|
|
32
|
+
|
|
33
|
+
1. **Write tests FIRST** — before any production code exists
|
|
34
|
+
2. **Tests MUST fail** — imports will reference modules that don't exist yet, and that's correct
|
|
35
|
+
3. **Do NOT write production code** — not even stubs or empty implementations
|
|
36
|
+
4. **Do NOT modify existing production code**
|
|
37
|
+
|
|
38
|
+
## Execution Steps
|
|
39
|
+
|
|
40
|
+
### 1. Understand What to Test
|
|
41
|
+
|
|
42
|
+
- Read the task's `_Prompt` field (provided in the prompt) for Role, Task, Restrictions, Success criteria
|
|
43
|
+
- If a `_TestFocus` field is provided (via the "Test focus areas" parameter), it is structured in 4 categories: **Happy Path / Boundary Values / Error Handling / Edge Cases**. Write tests covering **all 4 categories** as specified — these categories are aligned with the unit-test-engineer's quality verification criteria to minimize rework
|
|
44
|
+
- Read the design document to understand interfaces, data models, and expected behavior
|
|
45
|
+
- Identify the public API surface: functions, methods, endpoints, components
|
|
46
|
+
|
|
47
|
+
### 2. Discover Existing Test Patterns
|
|
48
|
+
|
|
49
|
+
Before writing tests, understand the project's testing conventions:
|
|
50
|
+
|
|
51
|
+
- Search for existing test files to determine:
|
|
52
|
+
- Test framework (vitest, jest, pytest, etc.)
|
|
53
|
+
- File naming convention (`*.test.ts`, `*.spec.ts`, `*_test.py`, etc.)
|
|
54
|
+
- Directory structure (`__tests__/`, `tests/`, co-located, etc.)
|
|
55
|
+
- Import patterns and test utilities
|
|
56
|
+
- Assertion style (`expect()`, `assert`, etc.)
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Find existing test files
|
|
60
|
+
find . -name "*.test.*" -o -name "*.spec.*" -o -name "*_test.*" | head -20
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 3. Write Tests
|
|
64
|
+
|
|
65
|
+
Follow `/tdd-skills` principles:
|
|
66
|
+
|
|
67
|
+
**Test Structure** — Use Given-When-Then:
|
|
68
|
+
```
|
|
69
|
+
// Given — set up preconditions
|
|
70
|
+
// When — perform the action
|
|
71
|
+
// Then — verify the outcome
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Test Naming** — Use descriptive names:
|
|
75
|
+
- `test_{action}_when_{condition}` (e.g., `test_returns_empty_when_no_users`)
|
|
76
|
+
- `test_{action}_raises_{error}_when_{condition}` (e.g., `test_raises_not_found_when_invalid_id`)
|
|
77
|
+
|
|
78
|
+
**What to Test:**
|
|
79
|
+
- Happy path: Normal expected behavior from Success criteria
|
|
80
|
+
- Edge cases: Empty inputs, boundary values, nulls
|
|
81
|
+
- Error cases: Invalid inputs, missing data, error scenarios from design doc
|
|
82
|
+
- Refer to `/tdd-skills` references for boundary value analysis and test design
|
|
83
|
+
|
|
84
|
+
**Test Organization:**
|
|
85
|
+
- One test file per component/module being tested
|
|
86
|
+
- Group related tests with `describe`/`context` blocks
|
|
87
|
+
- Keep tests independent (F.I.R.S.T principles)
|
|
88
|
+
|
|
89
|
+
### 4. Verify Test Imports Reference Non-Existent Code
|
|
90
|
+
|
|
91
|
+
The tests should import from modules that will be created during the GREEN phase. For example:
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
// This import WILL fail — the module doesn't exist yet. That's correct.
|
|
95
|
+
import { createUser } from '../services/user-service';
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
This is the expected state in the RED phase.
|
|
99
|
+
|
|
100
|
+
## Output Format
|
|
101
|
+
|
|
102
|
+
Return to the calling agent:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
## RED Phase Complete
|
|
106
|
+
|
|
107
|
+
### Test Files Created
|
|
108
|
+
- {path/to/test-file-1}
|
|
109
|
+
- {path/to/test-file-2}
|
|
110
|
+
|
|
111
|
+
### Tests Written
|
|
112
|
+
- {describe block}: {test name 1}
|
|
113
|
+
- {describe block}: {test name 2}
|
|
114
|
+
- ...
|
|
115
|
+
|
|
116
|
+
### Test Runner Command
|
|
117
|
+
{command to run these specific test files}
|
|
118
|
+
|
|
119
|
+
### Notes
|
|
120
|
+
- {any assumptions or decisions made}
|
|
121
|
+
```
|