@simplysm/sd-claude 14.0.65 → 14.0.66
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/references/sd-requirement-source-handling.md +64 -0
- package/claude/references/sd-simplysm14/README.md +44 -40
- package/claude/references/sd-simplysm14/apis/angular/README.md +95 -0
- package/claude/references/sd-simplysm14/apis/angular/app-structure.md +49 -0
- package/claude/references/sd-simplysm14/apis/angular/buttons.md +42 -0
- package/claude/references/sd-simplysm14/apis/angular/crud.md +35 -0
- package/claude/references/sd-simplysm14/apis/angular/forms.md +63 -0
- package/claude/references/sd-simplysm14/apis/angular/infrastructure.md +80 -0
- package/claude/references/sd-simplysm14/apis/angular/kanban.md +33 -0
- package/claude/references/sd-simplysm14/apis/angular/layout.md +41 -0
- package/claude/references/sd-simplysm14/apis/angular/modal.md +63 -0
- package/claude/references/sd-simplysm14/apis/angular/routing.md +45 -0
- package/claude/references/sd-simplysm14/apis/angular/select-dropdown.md +35 -0
- package/claude/references/sd-simplysm14/apis/angular/selection-managers.md +50 -0
- package/claude/references/sd-simplysm14/apis/angular/shared-data.md +42 -0
- package/claude/references/sd-simplysm14/apis/angular/sheet.md +52 -0
- package/claude/references/sd-simplysm14/apis/angular/toast.md +46 -0
- package/claude/references/sd-simplysm14/apis/angular/visual.md +41 -0
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-auto-update/README.md +76 -0
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-file-system/README.md +83 -0
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-intent/README.md +80 -0
- package/claude/references/sd-simplysm14/apis/capacitor-plugin-usb-storage/README.md +39 -0
- package/claude/references/sd-simplysm14/apis/core-browser/README.md +112 -0
- package/claude/references/sd-simplysm14/apis/core-common/README.md +53 -0
- package/claude/references/sd-simplysm14/apis/core-common/extensions.md +123 -0
- package/claude/references/sd-simplysm14/apis/core-common/features.md +46 -0
- package/claude/references/sd-simplysm14/apis/core-common/types.md +114 -0
- package/claude/references/sd-simplysm14/apis/core-common/utils.md +158 -0
- package/claude/references/sd-simplysm14/apis/core-node/README.md +12 -0
- package/claude/references/sd-simplysm14/apis/core-node/consola.md +64 -0
- package/claude/references/sd-simplysm14/apis/core-node/cpx.md +52 -0
- package/claude/references/sd-simplysm14/apis/core-node/fs-watcher.md +53 -0
- package/claude/references/sd-simplysm14/apis/core-node/fsx.md +81 -0
- package/claude/references/sd-simplysm14/apis/core-node/pathx.md +55 -0
- package/claude/references/sd-simplysm14/apis/core-node/worker.md +111 -0
- package/claude/references/sd-simplysm14/apis/excel/README.md +81 -0
- package/claude/references/sd-simplysm14/apis/lint/README.md +80 -0
- package/claude/references/sd-simplysm14/apis/orm-common/README.md +33 -0
- package/claude/references/sd-simplysm14/apis/orm-common/db-context.md +77 -0
- package/claude/references/sd-simplysm14/apis/orm-common/executable.md +20 -0
- package/claude/references/sd-simplysm14/apis/orm-common/expr.md +92 -0
- package/claude/references/sd-simplysm14/apis/orm-common/queryable.md +98 -0
- package/claude/references/sd-simplysm14/apis/orm-common/schema-builders.md +128 -0
- package/claude/references/sd-simplysm14/apis/orm-node/README.md +59 -0
- package/claude/references/sd-simplysm14/apis/sd-claude/README.md +9 -0
- package/claude/references/sd-simplysm14/apis/sd-cli/README.md +50 -0
- package/claude/references/sd-simplysm14/apis/sd-cli/sd-config.md +155 -0
- package/claude/references/sd-simplysm14/apis/service-client/README.md +92 -0
- package/claude/references/sd-simplysm14/apis/service-common/README.md +29 -0
- package/claude/references/sd-simplysm14/apis/service-common/app-structure.md +63 -0
- package/claude/references/sd-simplysm14/apis/service-common/messages.md +56 -0
- package/claude/references/sd-simplysm14/apis/service-common/protocol.md +64 -0
- package/claude/references/sd-simplysm14/apis/service-common/service-types.md +43 -0
- package/claude/references/sd-simplysm14/apis/service-server/README.md +20 -0
- package/claude/references/sd-simplysm14/apis/service-server/auth.md +31 -0
- package/claude/references/sd-simplysm14/apis/service-server/builtin-services.md +47 -0
- package/claude/references/sd-simplysm14/apis/service-server/define-service.md +71 -0
- package/claude/references/sd-simplysm14/apis/service-server/internals.md +41 -0
- package/claude/references/sd-simplysm14/apis/service-server/server.md +66 -0
- package/claude/references/sd-simplysm14/apis/storage/README.md +69 -0
- package/claude/references/sd-simplysm14/{client-component.md → manuals/client-component.md} +133 -128
- package/claude/references/sd-simplysm14/manuals/client-crud.md +102 -0
- package/claude/references/sd-simplysm14/manuals/client-demo.md +128 -0
- package/claude/references/sd-simplysm14/manuals/client-rules.md +7 -0
- package/claude/references/sd-simplysm14/{client-setup.md → manuals/client-setup.md} +2 -2
- package/claude/references/sd-simplysm14/{client-tab.md → manuals/client-tab.md} +13 -11
- package/claude/references/sd-simplysm14/{orm-union.md → manuals/orm-union.md} +1 -1
- package/claude/references/sd-simplysm14/manuals/orm.md +75 -0
- package/claude/rules/sd-base-rules.md +172 -79
- package/claude/sd-check-bash.py +5 -0
- package/claude/sd-statusline.py +7 -12
- package/claude/skills/sd-commit/SKILL.md +7 -3
- package/claude/skills/sd-demo/SKILL.md +81 -62
- package/claude/skills/sd-demo/evals/fixtures/empty/.specs/260513120000_warehouse/spec.md +45 -0
- package/claude/skills/sd-demo/evals/fixtures/with-existing-screen/.specs/260513120000_warehouse/spec.md +42 -0
- package/claude/skills/sd-demo/evals/fixtures/with-existing-screen/packages/app/src/screens/dashboard/dashboard.view.ts +33 -0
- package/claude/skills/sd-demo/evals/fixtures/with-master-screen/.specs/260513120000_warehouse/spec.md +45 -0
- package/claude/skills/sd-demo/evals/fixtures/with-master-screen/packages/app/src/screens/dashboard/dashboard.view.ts +33 -0
- package/claude/skills/sd-demo/evals/fixtures/with-modal/.specs/260513120000_warehouse/spec.md +75 -0
- package/claude/skills/sd-demo/evals/fixtures/with-modal/packages/app/src/screens/dashboard/dashboard.view.ts +33 -0
- package/claude/skills/sd-demo/evals/fixtures/with-screens/.specs/260513120000_warehouse/spec.md +45 -0
- package/claude/skills/sd-demo/evals/fixtures/with-screens/packages/app/src/screens/dashboard/dashboard.view.ts +33 -0
- package/claude/skills/sd-demo/evals/golden.jsonl +5 -3
- package/claude/skills/sd-dev/SKILL.md +33 -63
- package/claude/skills/sd-dev/evals/fixtures/case-add/package.json +13 -0
- package/claude/skills/sd-dev/evals/fixtures/case-add/src/index.ts +10 -0
- package/claude/skills/sd-dev/evals/fixtures/case-add/tests/index.test.ts +11 -0
- package/claude/skills/sd-dev/evals/fixtures/case-add/tsconfig.json +12 -0
- package/claude/skills/sd-dev/evals/fixtures/case-bug/package.json +13 -0
- package/claude/skills/sd-dev/evals/fixtures/case-bug/src/index.ts +10 -0
- package/claude/skills/sd-dev/evals/fixtures/case-bug/tests/index.test.ts +11 -0
- package/claude/skills/sd-dev/evals/fixtures/case-bug/tsconfig.json +12 -0
- package/claude/skills/sd-dev/evals/fixtures/case-modify/package.json +13 -0
- package/claude/skills/sd-dev/evals/fixtures/case-modify/src/index.ts +10 -0
- package/claude/skills/sd-dev/evals/fixtures/case-modify/tests/index.test.ts +11 -0
- package/claude/skills/sd-dev/evals/fixtures/case-modify/tsconfig.json +12 -0
- package/claude/skills/sd-dev/evals/golden.jsonl +3 -3
- package/claude/skills/sd-docs/SKILL.md +53 -0
- package/claude/skills/sd-docs/evals/fixtures/new-write/.claude/references/sd-simplysm14/README.md +7 -0
- package/claude/skills/sd-docs/evals/fixtures/new-write/packages/bar/package.json +5 -0
- package/claude/skills/sd-docs/evals/fixtures/new-write/packages/bar/src/index.ts +3 -0
- package/claude/skills/sd-docs/evals/fixtures/new-write/packages/baz/package.json +6 -0
- package/claude/skills/sd-docs/evals/fixtures/new-write/packages/baz/src/index.ts +1 -0
- package/claude/skills/sd-docs/evals/fixtures/new-write/packages/foo/package.json +5 -0
- package/claude/skills/sd-docs/evals/fixtures/new-write/packages/foo/src/index.ts +8 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/.claude/references/sd-simplysm14/README.md +7 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/.claude/references/sd-simplysm14/apis/foo/README.md +3 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/bar/package.json +5 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/bar/src/index.ts +3 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/baz/package.json +6 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/baz/src/index.ts +1 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/foo/package.json +5 -0
- package/claude/skills/sd-docs/evals/fixtures/update-mixed/packages/foo/src/index.ts +8 -0
- package/claude/skills/sd-docs/evals/golden.jsonl +2 -0
- package/claude/skills/sd-docs/references/subagent-prompt.md +100 -0
- package/claude/skills/sd-impl/SKILL.md +125 -46
- package/claude/skills/sd-impl/evals/fixtures/case-new/.specs/260514120000_/352/261/260/353/236/230/354/262/230/spec.md +101 -0
- package/claude/skills/sd-impl/evals/fixtures/case-update/.specs/260514120000_/352/261/260/353/236/230/354/262/230/spec.md +101 -0
- package/claude/skills/sd-impl/evals/fixtures/case-update/src//352/261/260/353/236/230/354/262/230//352/261/260/353/236/230/354/262/230-/353/252/250/353/215/270.txt +1 -0
- package/claude/skills/sd-impl/evals/fixtures/case-update/src//352/261/260/353/236/230/354/262/230//352/261/260/353/236/230/354/262/230-/353/252/251/353/241/235.txt +1 -0
- package/claude/skills/sd-impl/evals/golden.jsonl +2 -3
- package/claude/skills/sd-skill/SKILL.md +3 -3
- package/claude/skills/sd-skill/evals/golden.jsonl +0 -1
- package/claude/skills/sd-skill/references/eval-authoring.md +15 -0
- package/claude/skills/sd-skill/references/eval-run.md +1 -1
- package/claude/skills/sd-skill/references/skill-authoring.md +8 -5
- package/claude/skills/sd-skill/scripts/run_eval.py +39 -60
- package/claude/skills/sd-spec/SKILL.md +163 -105
- package/claude/skills/sd-spec/references/example-spec.md +585 -0
- package/claude/skills/sd-spec/references/spec-authoring.md +287 -0
- package/claude/skills/sd-spec/references/spec-md-template.md +15 -93
- package/claude/skills/sd-unpack/SKILL.md +7 -1
- package/claude/skills/sd-unpack/scripts/handlers/_common.py +10 -0
- package/claude/skills/sd-unpack/scripts/handlers/eml_handler.py +5 -13
- package/claude/skills/sd-unpack/scripts/handlers/msg_handler.py +3 -12
- package/claude/skills/sd-unpack/scripts/handlers/office_com.py +23 -37
- package/claude/skills/sd-unpack/scripts/handlers/office_worker.py +1 -4
- package/claude/skills/sd-unpack/scripts/handlers/pdf_handler.py +4 -13
- package/claude/skills/sd-unpack/scripts/unpack.py +4 -4
- package/claude/skills/sd-use/SKILL.md +1 -0
- package/claude/skills/sd-wip/SKILL.md +38 -0
- package/claude/skills/sd-wip/evals/fixtures/with-artifact/projects/acct/_wip.md +3 -0
- package/claude/skills/sd-wip/evals/fixtures/with-artifact/projects/acct/spec.md +15 -0
- package/claude/skills/sd-wip/evals/fixtures/with-existing-wip/.wips/260101120000_acct.md +6 -0
- package/claude/skills/sd-wip/evals/fixtures/with-existing-wip-for-compact/.wips/260101120000_acct.md +14 -0
- package/claude/skills/sd-wip/evals/golden.jsonl +4 -0
- package/claude/skills/sd-wip/references/compact.md +79 -0
- package/package.json +1 -1
- package/claude/references/sd-simplysm14/orm.md +0 -11
- package/claude/skills/sd-demo/evals/fixtures/basic-single-req/.specs/260503143025/REQ-001-/354/236/205/352/263/240/354/247/200/354/213/234/354/204/234/352/270/264/352/270/211/355/221/234/354/213/234/spec.md +0 -27
- package/claude/skills/sd-demo/evals/fixtures/basic-single-req/.specs/260503143025/overview.md +0 -12
- package/claude/skills/sd-demo/evals/fixtures/basic-single-req/src/components/Button.tsx +0 -12
- package/claude/skills/sd-demo/evals/fixtures/basic-single-req/src/components/Input.tsx +0 -27
- package/claude/skills/sd-demo/evals/fixtures/mock-data-policy/.specs/260503143025/REQ-001-/352/261/260/353/236/230/354/262/230/353/252/251/353/241/235/355/231/224/353/251/264/spec.md +0 -25
- package/claude/skills/sd-demo/evals/fixtures/mock-data-policy/.specs/260503143025/overview.md +0 -12
- package/claude/skills/sd-demo/evals/fixtures/mock-data-policy/src/components/Input.tsx +0 -25
- package/claude/skills/sd-demo/evals/fixtures/mock-data-policy/src/pages/.gitkeep +0 -0
- package/claude/skills/sd-demo/evals/fixtures/multi-req-domain/.specs/260503143025/REQ-001-RTP/354/236/205/353/240/245/355/231/224/353/251/264/spec.md +0 -19
- package/claude/skills/sd-demo/evals/fixtures/multi-req-domain/.specs/260503143025/REQ-002-RTP/354/266/234/353/240/245/355/231/224/353/251/264/spec.md +0 -20
- package/claude/skills/sd-demo/evals/fixtures/multi-req-domain/.specs/260503143025/overview.md +0 -16
- package/claude/skills/sd-demo/evals/fixtures/multi-req-domain/src/components/Button.tsx +0 -6
- package/claude/skills/sd-demo/evals/fixtures/multi-req-domain/src/components/Input.tsx +0 -15
- package/claude/skills/sd-demo/evals/fixtures/multi-req-domain/src/pages/.gitkeep +0 -0
- package/claude/skills/sd-demo/references/demo-md-template.md +0 -92
- package/claude/skills/sd-dev/evals/fixtures/multi-req-stop-after-spec/.docs/20260301_/352/263/240/352/260/235/354/202/254_/354/236/205/352/263/240/354/232/224/354/262/255.eml +0 -5
- package/claude/skills/sd-dev/evals/fixtures/multi-req-stop-after-spec/.docs/20260305_/352/263/240/352/260/235/354/202/254_/354/266/234/352/263/240/354/232/224/354/262/255.eml +0 -6
- package/claude/skills/sd-dev/evals/fixtures/multi-req-stop-after-spec/.docs/20260310_/352/263/240/352/260/235/354/202/254_/352/266/214/355/225/234.eml +0 -6
- package/claude/skills/sd-dev/evals/fixtures/single-req-auto-chain/src/lib/.gitkeep +0 -0
- package/claude/skills/sd-dev/evals/fixtures/start-from-plan/.specs/260503143025/REQ-001-/355/225/240/354/235/270/352/263/204/354/202/260/spec.md +0 -12
- package/claude/skills/sd-dev/evals/fixtures/start-from-plan/src/lib/.gitkeep +0 -0
- package/claude/skills/sd-impl/evals/fixtures/basic-single-r/.specs/260503143025/REQ-001-/354/236/205/352/263/240/354/247/200/354/213/234/354/204/234/352/270/264/352/270/211/355/221/234/354/213/234/plan.md +0 -28
- package/claude/skills/sd-impl/evals/fixtures/basic-single-r/.specs/260503143025/REQ-001-/354/236/205/352/263/240/354/247/200/354/213/234/354/204/234/352/270/264/352/270/211/355/221/234/354/213/234/spec.md +0 -14
- package/claude/skills/sd-impl/evals/fixtures/basic-single-r/src/components/Input.tsx +0 -6
- package/claude/skills/sd-impl/evals/fixtures/basic-single-r/src/pages/.gitkeep +0 -0
- package/claude/skills/sd-impl/evals/fixtures/multi-r/.specs/260503143025/REQ-001-/352/261/260/353/236/230/354/262/230/353/252/251/353/241/235/plan.md +0 -40
- package/claude/skills/sd-impl/evals/fixtures/multi-r/.specs/260503143025/REQ-001-/352/261/260/353/236/230/354/262/230/353/252/251/353/241/235/spec.md +0 -13
- package/claude/skills/sd-impl/evals/fixtures/multi-r/src/components/Input.tsx +0 -25
- package/claude/skills/sd-impl/evals/fixtures/multi-r/src/pages/.gitkeep +0 -0
- package/claude/skills/sd-impl/evals/fixtures/with-test-file/.specs/260503143025/REQ-001-/355/225/240/354/235/270/352/263/204/354/202/260/plan.md +0 -26
- package/claude/skills/sd-impl/evals/fixtures/with-test-file/.specs/260503143025/REQ-001-/355/225/240/354/235/270/352/263/204/354/202/260/spec.md +0 -12
- package/claude/skills/sd-impl/evals/fixtures/with-test-file/src/lib/.gitkeep +0 -0
- package/claude/skills/sd-impl/references/impl-md-template.md +0 -87
- package/claude/skills/sd-impl/references/modes-and-failure.md +0 -65
- package/claude/skills/sd-plan/SKILL.md +0 -130
- package/claude/skills/sd-plan/evals/fixtures/already-implemented/.specs/260503143025/REQ-001-/354/202/254/354/232/251/354/236/220/353/252/251/353/241/235/spec.md +0 -14
- package/claude/skills/sd-plan/evals/fixtures/already-implemented/src/api/user.ts +0 -13
- package/claude/skills/sd-plan/evals/fixtures/already-implemented/src/components/Input.tsx +0 -15
- package/claude/skills/sd-plan/evals/fixtures/already-implemented/src/pages/UserList.tsx +0 -29
- package/claude/skills/sd-plan/evals/fixtures/basic-greenfield/.specs/260503143025/REQ-001-/354/236/205/352/263/240/354/247/200/354/213/234/354/204/234/352/270/264/352/270/211/355/221/234/354/213/234/spec.md +0 -17
- package/claude/skills/sd-plan/evals/fixtures/basic-greenfield/src/components/Input.tsx +0 -6
- package/claude/skills/sd-plan/evals/fixtures/basic-greenfield/src/pages/.gitkeep +0 -0
- package/claude/skills/sd-plan/evals/fixtures/demo-built/.specs/260503143025/DEMO-001-/352/261/260/353/236/230/354/262/230/demo.md +0 -26
- package/claude/skills/sd-plan/evals/fixtures/demo-built/.specs/260503143025/REQ-001-/352/261/260/353/236/230/354/262/230/353/252/251/353/241/235/355/231/224/353/251/264/spec.md +0 -15
- package/claude/skills/sd-plan/evals/fixtures/demo-built/src/components/Input.tsx +0 -25
- package/claude/skills/sd-plan/evals/fixtures/demo-built/src/data/mock-customer.ts +0 -16
- package/claude/skills/sd-plan/evals/fixtures/demo-built/src/pages/CustomerList.tsx +0 -25
- package/claude/skills/sd-plan/evals/golden.jsonl +0 -3
- package/claude/skills/sd-plan/references/plan-md-template.md +0 -138
- package/claude/skills/sd-spec/evals/fixtures/bulk-multi-source/.docs/20260122_/352/263/240/352/260/235/354/202/254_/354/236/205/352/263/240/354/247/200/354/213/234/354/204/234/352/260/234/354/204/240/354/232/224/354/262/255.eml +0 -20
- package/claude/skills/sd-spec/evals/fixtures/bulk-multi-source/.docs/20260205_/352/263/240/352/260/235/354/202/254_/354/266/234/352/263/240/355/231/224/353/251/264/352/264/200/353/240/250.eml +0 -17
- package/claude/skills/sd-spec/evals/fixtures/bulk-multi-source/.docs/20260301_/352/263/240/352/260/235/354/202/254_/352/266/214/355/225/234/354/262/264/352/263/204.eml +0 -18
- package/claude/skills/sd-spec/evals/fixtures/conflict-detection/.docs/20260317_/352/263/240/352/260/235/354/202/254_/352/270/264/352/270/211/354/262/230/353/246/254/353/260/251/354/271/250.eml +0 -17
- package/claude/skills/sd-spec/evals/fixtures/conflict-detection/.docs//355/232/214/354/235/230/353/214/200/353/263/270_20260320.txt +0 -13
- package/claude/skills/sd-spec/evals/fixtures/direct-simple/.gitkeep +0 -0
- package/claude/skills/sd-spec/evals/fixtures/spec-md-input/.specs/260101120000/REQ-001-test/spec.md +0 -19
- package/claude/skills/sd-spec/evals/fixtures/spec-md-input/.specs/260101120000/overview.md +0 -18
- package/claude/skills/sd-spec/evals/golden.jsonl +0 -4
- package/claude/skills/sd-spec/references/overview-md-template.md +0 -89
- package/claude/skills/sd-spec/references/raw-input-handling.md +0 -96
- package/claude/skills/sd-verify/SKILL.md +0 -96
- package/claude/skills/sd-verify/evals/fixtures/all-satisfied/.specs/260503143025/REQ-001-/355/225/240/354/235/270/352/263/204/354/202/260/impl.md +0 -20
- package/claude/skills/sd-verify/evals/fixtures/all-satisfied/.specs/260503143025/REQ-001-/355/225/240/354/235/270/352/263/204/354/202/260/plan.md +0 -14
- package/claude/skills/sd-verify/evals/fixtures/all-satisfied/.specs/260503143025/REQ-001-/355/225/240/354/235/270/352/263/204/354/202/260/spec.md +0 -12
- package/claude/skills/sd-verify/evals/fixtures/all-satisfied/src/lib/discount.test.ts +0 -11
- package/claude/skills/sd-verify/evals/fixtures/all-satisfied/src/lib/discount.ts +0 -7
- package/claude/skills/sd-verify/evals/fixtures/partial-mismatch/.specs/260503143025/REQ-001-/354/202/254/354/232/251/354/236/220/353/252/251/353/241/235/impl.md +0 -21
- package/claude/skills/sd-verify/evals/fixtures/partial-mismatch/.specs/260503143025/REQ-001-/354/202/254/354/232/251/354/236/220/353/252/251/353/241/235/plan.md +0 -21
- package/claude/skills/sd-verify/evals/fixtures/partial-mismatch/.specs/260503143025/REQ-001-/354/202/254/354/232/251/354/236/220/353/252/251/353/241/235/spec.md +0 -12
- package/claude/skills/sd-verify/evals/fixtures/partial-mismatch/src/pages/UserList.tsx +0 -19
- package/claude/skills/sd-verify/evals/fixtures/tdd-only/.specs/260503143025/REQ-001-/352/270/210/354/225/241/352/262/200/354/246/235/impl.md +0 -19
- package/claude/skills/sd-verify/evals/fixtures/tdd-only/.specs/260503143025/REQ-001-/352/270/210/354/225/241/352/262/200/354/246/235/plan.md +0 -14
- package/claude/skills/sd-verify/evals/fixtures/tdd-only/.specs/260503143025/REQ-001-/352/270/210/354/225/241/352/262/200/354/246/235/spec.md +0 -12
- package/claude/skills/sd-verify/evals/fixtures/tdd-only/src/lib/validate-amount.test.ts +0 -10
- package/claude/skills/sd-verify/evals/fixtures/tdd-only/src/lib/validate-amount.ts +0 -7
- package/claude/skills/sd-verify/evals/golden.jsonl +0 -3
- package/claude/skills/sd-verify/references/verify-md-template.md +0 -99
- /package/claude/skills/{sd-demo/evals/fixtures/basic-single-req/src/pages → sd-wip/evals/fixtures/empty}/.gitkeep +0 -0
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { calcDiscountRate } from './discount'
|
|
2
|
-
|
|
3
|
-
describe('calcDiscountRate', () => {
|
|
4
|
-
test('0원 → 0', () => expect(calcDiscountRate(0)).toBe(0))
|
|
5
|
-
test('99999원 → 0', () => expect(calcDiscountRate(99999)).toBe(0))
|
|
6
|
-
test('100000원 → 0.05', () => expect(calcDiscountRate(100000)).toBe(0.05))
|
|
7
|
-
test('499999원 → 0.05', () => expect(calcDiscountRate(499999)).toBe(0.05))
|
|
8
|
-
test('500000원 → 0.10', () => expect(calcDiscountRate(500000)).toBe(0.10))
|
|
9
|
-
test('999999원 → 0.10', () => expect(calcDiscountRate(999999)).toBe(0.10))
|
|
10
|
-
test('1000000원 → 0.15', () => expect(calcDiscountRate(1000000)).toBe(0.15))
|
|
11
|
-
})
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# REQ-001-사용자목록 / Implementation
|
|
2
|
-
|
|
3
|
-
## 메타
|
|
4
|
-
- 상태: implemented
|
|
5
|
-
|
|
6
|
-
## R 단위 구현 결과
|
|
7
|
-
|
|
8
|
-
### R1: 사용자 목록 표시
|
|
9
|
-
- **상태**: 완료
|
|
10
|
-
- **모드**: 사후 테스트
|
|
11
|
-
- **변경 파일**:
|
|
12
|
-
- `src/pages/UserList.tsx` (신설)
|
|
13
|
-
- **plan 대비 차이**: 없음
|
|
14
|
-
|
|
15
|
-
### R2: 이메일 검색
|
|
16
|
-
- **상태**: 완료
|
|
17
|
-
- **모드**: 사후 테스트
|
|
18
|
-
- **변경 파일**:
|
|
19
|
-
- `src/pages/UserList.tsx` - 검색 로직 추가
|
|
20
|
-
- **plan 대비 차이**: 없음
|
|
21
|
-
- **변경 의도**: spec.md R2 그대로
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# REQ-001-사용자목록 / Plan
|
|
2
|
-
|
|
3
|
-
## 메타
|
|
4
|
-
- 상태: planned
|
|
5
|
-
- 결과: proceed
|
|
6
|
-
|
|
7
|
-
## R 단위 계획
|
|
8
|
-
- [ ] R1: 사용자 목록 표시
|
|
9
|
-
- **현황**: 미구현
|
|
10
|
-
- **변경 위치**: `src/pages/UserList.tsx` (신설)
|
|
11
|
-
- **변경 방식**: Table로 이름/이메일 표시
|
|
12
|
-
- **테스트**: 사후
|
|
13
|
-
|
|
14
|
-
- [ ] R2: 이메일 검색
|
|
15
|
-
- **현황**: 미구현
|
|
16
|
-
- **변경 위치**: `src/pages/UserList.tsx` - 검색 로직
|
|
17
|
-
- **변경 방식**: 입력값으로 이메일 부분 일치 필터링
|
|
18
|
-
- **테스트**: 사후
|
|
19
|
-
|
|
20
|
-
## 작업 순서
|
|
21
|
-
- 권장 순서: R1 → R2
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// R1만 구현됨. R2(이메일 검색) 코드는 없음 — impl.md는 거짓 보고
|
|
2
|
-
import React from 'react'
|
|
3
|
-
|
|
4
|
-
const USERS = [
|
|
5
|
-
{ name: '홍길동', email: 'hong@example.com' },
|
|
6
|
-
{ name: '김철수', email: 'kim@example.com' },
|
|
7
|
-
{ name: '이영희', email: 'lee@example.com' },
|
|
8
|
-
]
|
|
9
|
-
|
|
10
|
-
export const UserList: React.FC = () => {
|
|
11
|
-
return (
|
|
12
|
-
<table>
|
|
13
|
-
<thead><tr><th>이름</th><th>이메일</th></tr></thead>
|
|
14
|
-
<tbody>
|
|
15
|
-
{USERS.map((u, i) => <tr key={i}><td>{u.name}</td><td>{u.email}</td></tr>)}
|
|
16
|
-
</tbody>
|
|
17
|
-
</table>
|
|
18
|
-
)
|
|
19
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# REQ-001-금액검증 / Implementation
|
|
2
|
-
|
|
3
|
-
## 메타
|
|
4
|
-
- 상태: implemented
|
|
5
|
-
|
|
6
|
-
## R 단위 구현 결과
|
|
7
|
-
|
|
8
|
-
### R1: 금액 유효성 검증 함수
|
|
9
|
-
- **상태**: 완료
|
|
10
|
-
- **모드**: TDD
|
|
11
|
-
- **변경 파일**:
|
|
12
|
-
- `src/lib/validate-amount.ts` (신설)
|
|
13
|
-
- 변경 함수: `isValidAmount`
|
|
14
|
-
- **테스트**:
|
|
15
|
-
- 추가: `src/lib/validate-amount.test.ts`
|
|
16
|
-
- 케이스: "0 → false", "-1 → false", "1.5 → false", "1 → true", "999999999999 → true", "1000000000000 → false"
|
|
17
|
-
- 결과: PASS (6/6)
|
|
18
|
-
- **plan 대비 차이**: 없음
|
|
19
|
-
- **변경 의도**: spec.md R1 + plan.md R1 그대로
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# REQ-001-금액검증 / Plan
|
|
2
|
-
|
|
3
|
-
## 메타
|
|
4
|
-
- 상태: planned
|
|
5
|
-
- 결과: proceed
|
|
6
|
-
|
|
7
|
-
## R 단위 계획
|
|
8
|
-
- [ ] R1: 금액 유효성 검증 함수
|
|
9
|
-
- **현황**: 미구현
|
|
10
|
-
- **변경 위치**: `src/lib/validate-amount.ts` - `isValidAmount`
|
|
11
|
-
- **변경 방식**: 양수 정수 + 1조(1_000_000_000_000) 미만이면 true
|
|
12
|
-
- **테스트**:
|
|
13
|
-
- **방식: TDD** (순수 함수)
|
|
14
|
-
- 케이스: 0, -1, 1.5, 1, 999999999999, 1000000000000
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { isValidAmount } from './validate-amount'
|
|
2
|
-
|
|
3
|
-
describe('isValidAmount', () => {
|
|
4
|
-
test('0 → false', () => expect(isValidAmount(0)).toBe(false))
|
|
5
|
-
test('-1 → false', () => expect(isValidAmount(-1)).toBe(false))
|
|
6
|
-
test('1.5 → false', () => expect(isValidAmount(1.5)).toBe(false))
|
|
7
|
-
test('1 → true', () => expect(isValidAmount(1)).toBe(true))
|
|
8
|
-
test('999999999999 → true', () => expect(isValidAmount(999999999999)).toBe(true))
|
|
9
|
-
test('1000000000000 → false', () => expect(isValidAmount(1000000000000)).toBe(false))
|
|
10
|
-
})
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
{"id": "all-satisfied-001", "input": "/sd-verify REQ-001 검증해줘", "rubric": [".specs/260503143025/REQ-001-할인계산/verify.md 파일이 생성되었는가?", "verify.md 본문에 'R 단위' 키워드를 포함한 섹션 헤더(예: '## R 단위 검증', '## R 단위 판정')가 1개 이상 포함되어 있는가?", "verify.md 본문에 '충족' 키워드가 1회 이상 포함되어 있는가? (R1 충족 판정)", "verify.md 본문에 R 항목별 '충족 여부' 표기가 모두 '충족'으로 되어 있고, 어떤 R도 '충족 여부: 미충족' 또는 '충족 여부: 부분충족' 으로 분류되지 않았는가? (모두 충족 케이스 — 단순 키워드 등장이 아닌 R 분류 결과 확인)", "에이전트의 마지막 텍스트 응답에 'REQ-' 또는 'R1' 형태의 ID 매핑이 1개 이상 포함되어 있고, '충족'/'완료'/'검증' 같은 단어가 함께 등장하는가? (고객 친화적 보고 단계 도달)"], "fixture": "all-satisfied"}
|
|
2
|
-
{"id": "partial-mismatch-001", "input": "/sd-verify REQ-001 검증해줘", "rubric": [".specs/260503143025/REQ-001-사용자목록/verify.md 파일이 생성되었는가?", "verify.md 본문에 '미충족' 또는 '부분충족' 키워드가 1회 이상 포함되어 있는가? (R2 이메일 검색 미구현 발견)", "verify.md 본문에 '검색' 키워드가 1회 이상 포함되어 있는가? (R2 관련 분석)", "verify.md 본문에 'implement' 또는 'plan' 또는 'spec' 키워드와 '회귀' 키워드가 함께 등장하는가? (회귀 단계 후보 제시)"], "fixture": "partial-mismatch"}
|
|
3
|
-
{"id": "tdd-only-001", "input": "/sd-verify REQ-001 검증해줘", "rubric": [".specs/260503143025/REQ-001-금액검증/verify.md 파일이 생성되었는가?", "verify.md 본문에 '충족' 키워드가 1회 이상 포함되어 있는가?", "verify.md 본문에 '시연' 관련 키워드가 등장하더라도 'TDD' 또는 '불필요' 또는 '생략' 같은 표현이 함께 등장하는가? (TDD 모드는 시연 불필요)", "에이전트의 마지막 텍스트 응답에 'REQ-' 또는 'R1' 형태의 ID 매핑이 1개 이상 포함되어 있고, '충족'/'완료'/'검증' 같은 단어가 함께 등장하는가?"], "fixture": "tdd-only"}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
# verify.md 템플릿
|
|
2
|
-
|
|
3
|
-
위치: `.specs/{yyMMdd_HHmmss}/REQ-XXX-슬러그/verify.md`
|
|
4
|
-
|
|
5
|
-
## 템플릿
|
|
6
|
-
|
|
7
|
-
```markdown
|
|
8
|
-
# REQ-001-슬러그 / Verify
|
|
9
|
-
|
|
10
|
-
## 메타
|
|
11
|
-
- 상태: verifying | verified
|
|
12
|
-
- 생성일: YYYY-MM-DD
|
|
13
|
-
- 마지막 갱신: YYYY-MM-DD
|
|
14
|
-
|
|
15
|
-
## 충돌·누락
|
|
16
|
-
발견 0건이면 "발견 없음".
|
|
17
|
-
|
|
18
|
-
### 문서 미업데이트 (뒤 → 앞)
|
|
19
|
-
- <발견 위치 + 어느 문서가 뒤떨어졌는지>
|
|
20
|
-
|
|
21
|
-
### 놓친 구현·문서화 (앞 → 뒤)
|
|
22
|
-
- <어느 항목이 어디서 누락됐는지>
|
|
23
|
-
|
|
24
|
-
### 단계 간 모순
|
|
25
|
-
- <모순 내용>
|
|
26
|
-
|
|
27
|
-
### 처리 Q
|
|
28
|
-
- [ ] **Q**: <해결방안 후보 + 사용자 결정 요청>
|
|
29
|
-
|
|
30
|
-
## R 단위 검증
|
|
31
|
-
|
|
32
|
-
### R1: <요구 제목>
|
|
33
|
-
- **충족 여부**: 충족 | 부분충족 | 미충족
|
|
34
|
-
- **코드 분석**: spec R 의도 + plan 변경 위치/방식 ↔ 실제 코드
|
|
35
|
-
- **테스트 실행**: 추가 테스트 (N 케이스) PASS/FAIL, impl.md 보고와 일치 ✓/X
|
|
36
|
-
- **시연** (필요 R만): 시나리오(plan.md 출처) → 결과 (도구·환경 실패 시 "미수행 — <사유>" 명시, 부분충족 처리)
|
|
37
|
-
- **의도 부합**: 사용자 확인됨 ✅ | 부분충족 (<사유>)
|
|
38
|
-
- [ ] **Q**: (있을 때만) <해결방안 후보>
|
|
39
|
-
|
|
40
|
-
## 통합/E2E 검증
|
|
41
|
-
- <시나리오 (plan.md 출처)> → 결과
|
|
42
|
-
|
|
43
|
-
## 회귀 검증
|
|
44
|
-
- 전체 테스트: PASS (N/M)
|
|
45
|
-
- 영향 페이지: <파일경로> 정상/문제
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## 섹션 역할
|
|
49
|
-
|
|
50
|
-
| 섹션 | 용도 |
|
|
51
|
-
|---|---|
|
|
52
|
-
| 메타 | 상태 |
|
|
53
|
-
| 충돌·누락 | REQ 차원 통합 발견 (양방향 + 모순) + 처리 Q |
|
|
54
|
-
| R 단위 검증 | R별 코드 분석 + 테스트 + 시연 + 판정 |
|
|
55
|
-
| 통합/E2E 검증 | R 간 흐름 |
|
|
56
|
-
| 회귀 검증 | 전체 테스트 + 영향 페이지 |
|
|
57
|
-
|
|
58
|
-
## 작성 원칙
|
|
59
|
-
|
|
60
|
-
- 충돌·누락은 **다 읽고 발견된 것만** 자연어로. 페어 매트릭스 채우기 X.
|
|
61
|
-
- 발견 0건이면 "발견 없음" 한 줄.
|
|
62
|
-
- R 단위는 R마다 독립 블록 (검증/시연/판정 인라인).
|
|
63
|
-
|
|
64
|
-
## 예시
|
|
65
|
-
|
|
66
|
-
```markdown
|
|
67
|
-
## 충돌·누락
|
|
68
|
-
|
|
69
|
-
### 문서 미업데이트
|
|
70
|
-
- 코드 `RTPInputForm`에 캐시 무효화 호출 추가됐으나 spec/plan에 근거 없음
|
|
71
|
-
- impl.md R3 변경 파일 목록에 `src/api/rtp.ts` 누락 (실제 코드는 변경됨)
|
|
72
|
-
|
|
73
|
-
### 놓친 구현·문서화
|
|
74
|
-
- spec R3가 plan에 미매핑 → 코드도 미반영
|
|
75
|
-
- overview.md 의존성과 spec.md 메타 의존성 어긋남 (REQ-002 의존이 overview에만)
|
|
76
|
-
|
|
77
|
-
### 단계 간 모순
|
|
78
|
-
- plan.md R2는 컴포넌트 분리, 코드는 단일 파일
|
|
79
|
-
|
|
80
|
-
### 처리 Q
|
|
81
|
-
- [ ] **Q1**: 캐시 무효화 — (a) spec 재진입 R 추가 / (b) 코드 제거. 어느 쪽?
|
|
82
|
-
- [ ] **Q2**: R3 — (a) plan 재진입 / (b) spec 재진입 (재정의/폐기). 어느 쪽?
|
|
83
|
-
- [ ] **Q3**: overview ↔ spec 의존성 — 어느 쪽이 진실?
|
|
84
|
-
- [ ] **Q4**: R2 분리 vs 단일 — 어느 쪽이 진실? 결정 후 plan 또는 implement 재진입.
|
|
85
|
-
|
|
86
|
-
### R1: 입력 필드 X 추가
|
|
87
|
-
- **충족 여부**: 충족
|
|
88
|
-
- **코드 분석**: spec R1 의도 + plan 위치(`src/pages/RTPInput.tsx`) ↔ 코드 일치
|
|
89
|
-
- **테스트 실행**: 3 케이스 PASS, impl.md 일치 ✓
|
|
90
|
-
- **시연**: X 입력 → 저장 → 새로고침 → 값 유지 (plan.md R1) → OK
|
|
91
|
-
- **의도 부합**: ✅
|
|
92
|
-
|
|
93
|
-
### R2: 헤더 재배치
|
|
94
|
-
- **충족 여부**: 부분충족
|
|
95
|
-
- **코드 분석**: plan 위치 ↔ 코드 일치, 우중앙 배치 확인
|
|
96
|
-
- **시연**: 화면 진입 → 헤더 위치 확인 → 우중앙 OK, **모바일 깨짐**
|
|
97
|
-
- **의도 부합**: 부분충족 (모바일 미고려)
|
|
98
|
-
- [ ] **Q**: (a) implement 재진입 — 반응형 추가 / (b) spec 재진입 — 모바일 미지원 명시. 어느 쪽?
|
|
99
|
-
```
|
|
File without changes
|