@sdd-method/sdd-cli 0.9.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/LICENSE +201 -0
- package/NOTICE +17 -0
- package/README.md +151 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +8 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/bundle.d.ts +20 -0
- package/dist/lib/bundle.d.ts.map +1 -0
- package/dist/lib/bundle.js +75 -0
- package/dist/lib/bundle.js.map +1 -0
- package/dist/lib/generate-claude-md/index.d.ts +16 -0
- package/dist/lib/generate-claude-md/index.d.ts.map +1 -0
- package/dist/lib/generate-claude-md/index.js +89 -0
- package/dist/lib/generate-claude-md/index.js.map +1 -0
- package/dist/lib/hooks-seed/entries.d.ts +16 -0
- package/dist/lib/hooks-seed/entries.d.ts.map +1 -0
- package/dist/lib/hooks-seed/entries.js +47 -0
- package/dist/lib/hooks-seed/entries.js.map +1 -0
- package/dist/lib/hooks-seed/index.d.ts +17 -0
- package/dist/lib/hooks-seed/index.d.ts.map +1 -0
- package/dist/lib/hooks-seed/index.js +15 -0
- package/dist/lib/hooks-seed/index.js.map +1 -0
- package/dist/lib/hooks-seed/merge.d.ts +24 -0
- package/dist/lib/hooks-seed/merge.d.ts.map +1 -0
- package/dist/lib/hooks-seed/merge.js +73 -0
- package/dist/lib/hooks-seed/merge.js.map +1 -0
- package/dist/lib/hooks-seed/types.d.ts +27 -0
- package/dist/lib/hooks-seed/types.d.ts.map +1 -0
- package/dist/lib/hooks-seed/types.js +20 -0
- package/dist/lib/hooks-seed/types.js.map +1 -0
- package/dist/lib/init/app.d.ts +21 -0
- package/dist/lib/init/app.d.ts.map +1 -0
- package/dist/lib/init/app.js +132 -0
- package/dist/lib/init/app.js.map +1 -0
- package/dist/lib/init/ci-workflow.d.ts +29 -0
- package/dist/lib/init/ci-workflow.d.ts.map +1 -0
- package/dist/lib/init/ci-workflow.js +78 -0
- package/dist/lib/init/ci-workflow.js.map +1 -0
- package/dist/lib/init/claude-md.d.ts +19 -0
- package/dist/lib/init/claude-md.d.ts.map +1 -0
- package/dist/lib/init/claude-md.js +140 -0
- package/dist/lib/init/claude-md.js.map +1 -0
- package/dist/lib/init/index.d.ts +33 -0
- package/dist/lib/init/index.d.ts.map +1 -0
- package/dist/lib/init/index.js +232 -0
- package/dist/lib/init/index.js.map +1 -0
- package/dist/lib/init/integration.d.ts +53 -0
- package/dist/lib/init/integration.d.ts.map +1 -0
- package/dist/lib/init/integration.js +237 -0
- package/dist/lib/init/integration.js.map +1 -0
- package/dist/lib/init/platform.d.ts +26 -0
- package/dist/lib/init/platform.d.ts.map +1 -0
- package/dist/lib/init/platform.js +188 -0
- package/dist/lib/init/platform.js.map +1 -0
- package/dist/lib/list/discover.d.ts +8 -0
- package/dist/lib/list/discover.d.ts.map +1 -0
- package/dist/lib/list/discover.js +77 -0
- package/dist/lib/list/discover.js.map +1 -0
- package/dist/lib/list/format.d.ts +9 -0
- package/dist/lib/list/format.d.ts.map +1 -0
- package/dist/lib/list/format.js +44 -0
- package/dist/lib/list/format.js.map +1 -0
- package/dist/lib/list/index.d.ts +12 -0
- package/dist/lib/list/index.d.ts.map +1 -0
- package/dist/lib/list/index.js +15 -0
- package/dist/lib/list/index.js.map +1 -0
- package/dist/lib/lock-file.d.ts +14 -0
- package/dist/lib/lock-file.d.ts.map +1 -0
- package/dist/lib/lock-file.js +80 -0
- package/dist/lib/lock-file.js.map +1 -0
- package/dist/lib/mcp/build-info.d.ts +9 -0
- package/dist/lib/mcp/build-info.d.ts.map +1 -0
- package/dist/lib/mcp/build-info.js +10 -0
- package/dist/lib/mcp/build-info.js.map +1 -0
- package/dist/lib/mcp/errors.d.ts +23 -0
- package/dist/lib/mcp/errors.d.ts.map +1 -0
- package/dist/lib/mcp/errors.js +25 -0
- package/dist/lib/mcp/errors.js.map +1 -0
- package/dist/lib/mcp/parse/frontmatter.d.ts +22 -0
- package/dist/lib/mcp/parse/frontmatter.d.ts.map +1 -0
- package/dist/lib/mcp/parse/frontmatter.js +49 -0
- package/dist/lib/mcp/parse/frontmatter.js.map +1 -0
- package/dist/lib/mcp/parse/gate-registry.d.ts +19 -0
- package/dist/lib/mcp/parse/gate-registry.d.ts.map +1 -0
- package/dist/lib/mcp/parse/gate-registry.js +68 -0
- package/dist/lib/mcp/parse/gate-registry.js.map +1 -0
- package/dist/lib/mcp/parse/paths.d.ts +21 -0
- package/dist/lib/mcp/parse/paths.d.ts.map +1 -0
- package/dist/lib/mcp/parse/paths.js +83 -0
- package/dist/lib/mcp/parse/paths.js.map +1 -0
- package/dist/lib/mcp/pin/errors.d.ts +11 -0
- package/dist/lib/mcp/pin/errors.d.ts.map +1 -0
- package/dist/lib/mcp/pin/errors.js +32 -0
- package/dist/lib/mcp/pin/errors.js.map +1 -0
- package/dist/lib/mcp/pin/index.d.ts +18 -0
- package/dist/lib/mcp/pin/index.d.ts.map +1 -0
- package/dist/lib/mcp/pin/index.js +29 -0
- package/dist/lib/mcp/pin/index.js.map +1 -0
- package/dist/lib/mcp/pin/read.d.ts +24 -0
- package/dist/lib/mcp/pin/read.d.ts.map +1 -0
- package/dist/lib/mcp/pin/read.js +64 -0
- package/dist/lib/mcp/pin/read.js.map +1 -0
- package/dist/lib/mcp/pin/resolve.d.ts +12 -0
- package/dist/lib/mcp/pin/resolve.d.ts.map +1 -0
- package/dist/lib/mcp/pin/resolve.js +33 -0
- package/dist/lib/mcp/pin/resolve.js.map +1 -0
- package/dist/lib/mcp/prompts/evaluate-cascade.d.ts +14 -0
- package/dist/lib/mcp/prompts/evaluate-cascade.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/evaluate-cascade.js +147 -0
- package/dist/lib/mcp/prompts/evaluate-cascade.js.map +1 -0
- package/dist/lib/mcp/prompts/index.d.ts +9 -0
- package/dist/lib/mcp/prompts/index.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/index.js +23 -0
- package/dist/lib/mcp/prompts/index.js.map +1 -0
- package/dist/lib/mcp/prompts/propose-adr.d.ts +12 -0
- package/dist/lib/mcp/prompts/propose-adr.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/propose-adr.js +94 -0
- package/dist/lib/mcp/prompts/propose-adr.js.map +1 -0
- package/dist/lib/mcp/prompts/review-data-model-change.d.ts +10 -0
- package/dist/lib/mcp/prompts/review-data-model-change.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/review-data-model-change.js +134 -0
- package/dist/lib/mcp/prompts/review-data-model-change.js.map +1 -0
- package/dist/lib/mcp/prompts/template-loader.d.ts +29 -0
- package/dist/lib/mcp/prompts/template-loader.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/template-loader.js +44 -0
- package/dist/lib/mcp/prompts/template-loader.js.map +1 -0
- package/dist/lib/mcp/prompts/types.d.ts +17 -0
- package/dist/lib/mcp/prompts/types.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/types.js +10 -0
- package/dist/lib/mcp/prompts/types.js.map +1 -0
- package/dist/lib/mcp/prompts/write-capability-spec.d.ts +8 -0
- package/dist/lib/mcp/prompts/write-capability-spec.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/write-capability-spec.js +85 -0
- package/dist/lib/mcp/prompts/write-capability-spec.js.map +1 -0
- package/dist/lib/mcp/prompts/write-feature-spec.d.ts +10 -0
- package/dist/lib/mcp/prompts/write-feature-spec.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/write-feature-spec.js +94 -0
- package/dist/lib/mcp/prompts/write-feature-spec.js.map +1 -0
- package/dist/lib/mcp/prompts/write-work-order.d.ts +7 -0
- package/dist/lib/mcp/prompts/write-work-order.d.ts.map +1 -0
- package/dist/lib/mcp/prompts/write-work-order.js +69 -0
- package/dist/lib/mcp/prompts/write-work-order.js.map +1 -0
- package/dist/lib/mcp/reader.d.ts +37 -0
- package/dist/lib/mcp/reader.d.ts.map +1 -0
- package/dist/lib/mcp/reader.js +93 -0
- package/dist/lib/mcp/reader.js.map +1 -0
- package/dist/lib/mcp/resources/adrs.d.ts +3 -0
- package/dist/lib/mcp/resources/adrs.d.ts.map +1 -0
- package/dist/lib/mcp/resources/adrs.js +97 -0
- package/dist/lib/mcp/resources/adrs.js.map +1 -0
- package/dist/lib/mcp/resources/data-models.d.ts +14 -0
- package/dist/lib/mcp/resources/data-models.d.ts.map +1 -0
- package/dist/lib/mcp/resources/data-models.js +81 -0
- package/dist/lib/mcp/resources/data-models.js.map +1 -0
- package/dist/lib/mcp/resources/gates.d.ts +9 -0
- package/dist/lib/mcp/resources/gates.d.ts.map +1 -0
- package/dist/lib/mcp/resources/gates.js +90 -0
- package/dist/lib/mcp/resources/gates.js.map +1 -0
- package/dist/lib/mcp/resources/glossary.d.ts +16 -0
- package/dist/lib/mcp/resources/glossary.d.ts.map +1 -0
- package/dist/lib/mcp/resources/glossary.js +87 -0
- package/dist/lib/mcp/resources/glossary.js.map +1 -0
- package/dist/lib/mcp/resources/specs.d.ts +23 -0
- package/dist/lib/mcp/resources/specs.d.ts.map +1 -0
- package/dist/lib/mcp/resources/specs.js +151 -0
- package/dist/lib/mcp/resources/specs.js.map +1 -0
- package/dist/lib/mcp/resources/version.d.ts +3 -0
- package/dist/lib/mcp/resources/version.d.ts.map +1 -0
- package/dist/lib/mcp/resources/version.js +45 -0
- package/dist/lib/mcp/resources/version.js.map +1 -0
- package/dist/lib/mcp/server.d.ts +29 -0
- package/dist/lib/mcp/server.d.ts.map +1 -0
- package/dist/lib/mcp/server.js +104 -0
- package/dist/lib/mcp/server.js.map +1 -0
- package/dist/lib/mcp/tools/cascade-impact.d.ts +22 -0
- package/dist/lib/mcp/tools/cascade-impact.d.ts.map +1 -0
- package/dist/lib/mcp/tools/cascade-impact.js +53 -0
- package/dist/lib/mcp/tools/cascade-impact.js.map +1 -0
- package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts +7 -0
- package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts.map +1 -0
- package/dist/lib/mcp/tools/find-consumers-of-contract.js +70 -0
- package/dist/lib/mcp/tools/find-consumers-of-contract.js.map +1 -0
- package/dist/lib/mcp/tools/find-consumers.d.ts +7 -0
- package/dist/lib/mcp/tools/find-consumers.d.ts.map +1 -0
- package/dist/lib/mcp/tools/find-consumers.js +52 -0
- package/dist/lib/mcp/tools/find-consumers.js.map +1 -0
- package/dist/lib/mcp/tools/find-dependencies.d.ts +8 -0
- package/dist/lib/mcp/tools/find-dependencies.d.ts.map +1 -0
- package/dist/lib/mcp/tools/find-dependencies.js +89 -0
- package/dist/lib/mcp/tools/find-dependencies.js.map +1 -0
- package/dist/lib/mcp/tools/find-dependents.d.ts +8 -0
- package/dist/lib/mcp/tools/find-dependents.d.ts.map +1 -0
- package/dist/lib/mcp/tools/find-dependents.js +89 -0
- package/dist/lib/mcp/tools/find-dependents.js.map +1 -0
- package/dist/lib/mcp/tools/find-producers.d.ts +8 -0
- package/dist/lib/mcp/tools/find-producers.d.ts.map +1 -0
- package/dist/lib/mcp/tools/find-producers.js +57 -0
- package/dist/lib/mcp/tools/find-producers.js.map +1 -0
- package/dist/lib/mcp/tools/find-related-specs.d.ts +9 -0
- package/dist/lib/mcp/tools/find-related-specs.d.ts.map +1 -0
- package/dist/lib/mcp/tools/find-related-specs.js +92 -0
- package/dist/lib/mcp/tools/find-related-specs.js.map +1 -0
- package/dist/lib/mcp/tools/list-adrs.d.ts +3 -0
- package/dist/lib/mcp/tools/list-adrs.d.ts.map +1 -0
- package/dist/lib/mcp/tools/list-adrs.js +73 -0
- package/dist/lib/mcp/tools/list-adrs.js.map +1 -0
- package/dist/lib/mcp/tools/query-gate-status.d.ts +3 -0
- package/dist/lib/mcp/tools/query-gate-status.d.ts.map +1 -0
- package/dist/lib/mcp/tools/query-gate-status.js +82 -0
- package/dist/lib/mcp/tools/query-gate-status.js.map +1 -0
- package/dist/lib/mcp/tools/search-specs.d.ts +12 -0
- package/dist/lib/mcp/tools/search-specs.d.ts.map +1 -0
- package/dist/lib/mcp/tools/search-specs.js +151 -0
- package/dist/lib/mcp/tools/search-specs.js.map +1 -0
- package/dist/lib/mcp/workspace.d.ts +25 -0
- package/dist/lib/mcp/workspace.d.ts.map +1 -0
- package/dist/lib/mcp/workspace.js +129 -0
- package/dist/lib/mcp/workspace.js.map +1 -0
- package/dist/lib/mcp-seed/entries.d.ts +19 -0
- package/dist/lib/mcp-seed/entries.d.ts.map +1 -0
- package/dist/lib/mcp-seed/entries.js +14 -0
- package/dist/lib/mcp-seed/entries.js.map +1 -0
- package/dist/lib/mcp-seed/index.d.ts +36 -0
- package/dist/lib/mcp-seed/index.d.ts.map +1 -0
- package/dist/lib/mcp-seed/index.js +28 -0
- package/dist/lib/mcp-seed/index.js.map +1 -0
- package/dist/lib/mcp-seed/merge.d.ts +34 -0
- package/dist/lib/mcp-seed/merge.d.ts.map +1 -0
- package/dist/lib/mcp-seed/merge.js +99 -0
- package/dist/lib/mcp-seed/merge.js.map +1 -0
- package/dist/lib/mcp-seed/types.d.ts +24 -0
- package/dist/lib/mcp-seed/types.d.ts.map +1 -0
- package/dist/lib/mcp-seed/types.js +13 -0
- package/dist/lib/mcp-seed/types.js.map +1 -0
- package/dist/lib/plan/index.d.ts +19 -0
- package/dist/lib/plan/index.d.ts.map +1 -0
- package/dist/lib/plan/index.js +69 -0
- package/dist/lib/plan/index.js.map +1 -0
- package/dist/lib/plan/read-sdd.d.ts +46 -0
- package/dist/lib/plan/read-sdd.d.ts.map +1 -0
- package/dist/lib/plan/read-sdd.js +102 -0
- package/dist/lib/plan/read-sdd.js.map +1 -0
- package/dist/lib/plan/render-template.d.ts +8 -0
- package/dist/lib/plan/render-template.d.ts.map +1 -0
- package/dist/lib/plan/render-template.js +60 -0
- package/dist/lib/plan/render-template.js.map +1 -0
- package/dist/lib/repo-kind.d.ts +20 -0
- package/dist/lib/repo-kind.d.ts.map +1 -0
- package/dist/lib/repo-kind.js +73 -0
- package/dist/lib/repo-kind.js.map +1 -0
- package/dist/lib/scripts.d.ts +2 -0
- package/dist/lib/scripts.d.ts.map +1 -0
- package/dist/lib/scripts.js +7 -0
- package/dist/lib/scripts.js.map +1 -0
- package/dist/lib/sdd-index/cascade.d.ts +46 -0
- package/dist/lib/sdd-index/cascade.d.ts.map +1 -0
- package/dist/lib/sdd-index/cascade.js +91 -0
- package/dist/lib/sdd-index/cascade.js.map +1 -0
- package/dist/lib/sdd-index/contracts.d.ts +29 -0
- package/dist/lib/sdd-index/contracts.d.ts.map +1 -0
- package/dist/lib/sdd-index/contracts.js +216 -0
- package/dist/lib/sdd-index/contracts.js.map +1 -0
- package/dist/lib/sdd-index/data-model.d.ts +13 -0
- package/dist/lib/sdd-index/data-model.d.ts.map +1 -0
- package/dist/lib/sdd-index/data-model.js +23 -0
- package/dist/lib/sdd-index/data-model.js.map +1 -0
- package/dist/lib/sdd-index/execution-map.d.ts +34 -0
- package/dist/lib/sdd-index/execution-map.d.ts.map +1 -0
- package/dist/lib/sdd-index/execution-map.js +105 -0
- package/dist/lib/sdd-index/execution-map.js.map +1 -0
- package/dist/lib/sdd-index/graph.d.ts +28 -0
- package/dist/lib/sdd-index/graph.d.ts.map +1 -0
- package/dist/lib/sdd-index/graph.js +122 -0
- package/dist/lib/sdd-index/graph.js.map +1 -0
- package/dist/lib/sdd-index/index.d.ts +29 -0
- package/dist/lib/sdd-index/index.d.ts.map +1 -0
- package/dist/lib/sdd-index/index.js +79 -0
- package/dist/lib/sdd-index/index.js.map +1 -0
- package/dist/lib/sdd-index/repo-config.d.ts +23 -0
- package/dist/lib/sdd-index/repo-config.d.ts.map +1 -0
- package/dist/lib/sdd-index/repo-config.js +150 -0
- package/dist/lib/sdd-index/repo-config.js.map +1 -0
- package/dist/lib/sdd-index/types.d.ts +106 -0
- package/dist/lib/sdd-index/types.d.ts.map +1 -0
- package/dist/lib/sdd-index/types.js +13 -0
- package/dist/lib/sdd-index/types.js.map +1 -0
- package/dist/lib/sdd-index/watch.d.ts +24 -0
- package/dist/lib/sdd-index/watch.d.ts.map +1 -0
- package/dist/lib/sdd-index/watch.js +112 -0
- package/dist/lib/sdd-index/watch.js.map +1 -0
- package/dist/lib/spawn.d.ts +8 -0
- package/dist/lib/spawn.d.ts.map +1 -0
- package/dist/lib/spawn.js +16 -0
- package/dist/lib/spawn.js.map +1 -0
- package/dist/lib/sync/apply.d.ts +3 -0
- package/dist/lib/sync/apply.d.ts.map +1 -0
- package/dist/lib/sync/apply.js +16 -0
- package/dist/lib/sync/apply.js.map +1 -0
- package/dist/lib/sync/diff.d.ts +8 -0
- package/dist/lib/sync/diff.d.ts.map +1 -0
- package/dist/lib/sync/diff.js +48 -0
- package/dist/lib/sync/diff.js.map +1 -0
- package/dist/lib/sync/index.d.ts +17 -0
- package/dist/lib/sync/index.d.ts.map +1 -0
- package/dist/lib/sync/index.js +184 -0
- package/dist/lib/sync/index.js.map +1 -0
- package/dist/lib/sync/settings-merge.d.ts +45 -0
- package/dist/lib/sync/settings-merge.d.ts.map +1 -0
- package/dist/lib/sync/settings-merge.js +109 -0
- package/dist/lib/sync/settings-merge.js.map +1 -0
- package/dist/lib/sync/source-tag.d.ts +5 -0
- package/dist/lib/sync/source-tag.d.ts.map +1 -0
- package/dist/lib/sync/source-tag.js +34 -0
- package/dist/lib/sync/source-tag.js.map +1 -0
- package/dist/lib/sync/yaml-block-merge.d.ts +50 -0
- package/dist/lib/sync/yaml-block-merge.d.ts.map +1 -0
- package/dist/lib/sync/yaml-block-merge.js +113 -0
- package/dist/lib/sync/yaml-block-merge.js.map +1 -0
- package/dist/lib/validate/aggregate.d.ts +13 -0
- package/dist/lib/validate/aggregate.d.ts.map +1 -0
- package/dist/lib/validate/aggregate.js +35 -0
- package/dist/lib/validate/aggregate.js.map +1 -0
- package/dist/lib/validate/dispatch.d.ts +34 -0
- package/dist/lib/validate/dispatch.d.ts.map +1 -0
- package/dist/lib/validate/dispatch.js +167 -0
- package/dist/lib/validate/dispatch.js.map +1 -0
- package/dist/lib/validate/index.d.ts +13 -0
- package/dist/lib/validate/index.d.ts.map +1 -0
- package/dist/lib/validate/index.js +69 -0
- package/dist/lib/validate/index.js.map +1 -0
- package/dist/lib/validate/runner.d.ts +16 -0
- package/dist/lib/validate/runner.d.ts.map +1 -0
- package/dist/lib/validate/runner.js +66 -0
- package/dist/lib/validate/runner.js.map +1 -0
- package/dist/verbs/generate-claude-md.d.ts +3 -0
- package/dist/verbs/generate-claude-md.d.ts.map +1 -0
- package/dist/verbs/generate-claude-md.js +36 -0
- package/dist/verbs/generate-claude-md.js.map +1 -0
- package/dist/verbs/init.d.ts +3 -0
- package/dist/verbs/init.d.ts.map +1 -0
- package/dist/verbs/init.js +90 -0
- package/dist/verbs/init.js.map +1 -0
- package/dist/verbs/list.d.ts +3 -0
- package/dist/verbs/list.d.ts.map +1 -0
- package/dist/verbs/list.js +43 -0
- package/dist/verbs/list.js.map +1 -0
- package/dist/verbs/mcp.d.ts +3 -0
- package/dist/verbs/mcp.d.ts.map +1 -0
- package/dist/verbs/mcp.js +22 -0
- package/dist/verbs/mcp.js.map +1 -0
- package/dist/verbs/plan.d.ts +3 -0
- package/dist/verbs/plan.d.ts.map +1 -0
- package/dist/verbs/plan.js +41 -0
- package/dist/verbs/plan.js.map +1 -0
- package/dist/verbs/sync.d.ts +3 -0
- package/dist/verbs/sync.d.ts.map +1 -0
- package/dist/verbs/sync.js +27 -0
- package/dist/verbs/sync.js.map +1 -0
- package/dist/verbs/validate.d.ts +3 -0
- package/dist/verbs/validate.d.ts.map +1 -0
- package/dist/verbs/validate.js +21 -0
- package/dist/verbs/validate.js.map +1 -0
- package/package.json +61 -0
- package/scripts/README.md +48 -0
- package/scripts/sync-method-baseline.sh +258 -0
- package/scripts/validate-app-dependencies.sh +289 -0
- package/scripts/validate-app-docs.sh +185 -0
- package/scripts/validate-integration-docs.sh +222 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-data-model-change.js","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/review-data-model-change.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template loader — reads `docs/method/methods/<name>-template.md`
|
|
3
|
+
* via an SddReader so `pin_to_commit` works uniformly.
|
|
4
|
+
*
|
|
5
|
+
* Missing templates return `null` rather than throwing; the calling
|
|
6
|
+
* prompt embeds a structured error in its returned messages per the
|
|
7
|
+
* Phase 5 plan's open-question resolution (b).
|
|
8
|
+
*/
|
|
9
|
+
import type { SddReader } from "../reader.js";
|
|
10
|
+
import type { TemplateLocation } from "./types.js";
|
|
11
|
+
export declare const TEMPLATES_DIR = "docs/method/methods";
|
|
12
|
+
export interface LoadedTemplate {
|
|
13
|
+
readonly location: TemplateLocation;
|
|
14
|
+
readonly body: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function loadTemplate(reader: SddReader, location: TemplateLocation): LoadedTemplate | null;
|
|
17
|
+
/**
|
|
18
|
+
* Convenience: build a location for a named template under the
|
|
19
|
+
* standard `docs/method/methods/` directory.
|
|
20
|
+
*/
|
|
21
|
+
export declare function templateAt(name: string, label: string): TemplateLocation;
|
|
22
|
+
/**
|
|
23
|
+
* Produce a user-facing message explaining that the template file is
|
|
24
|
+
* missing. Prompts return this in place of a rendered template when
|
|
25
|
+
* `loadTemplate` returns null — the agent gets enough context to
|
|
26
|
+
* surface the problem without us throwing at the transport layer.
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderMissingTemplateMessage(location: TemplateLocation, sddRoot: string, pin: string): string;
|
|
29
|
+
//# sourceMappingURL=template-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/template-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,gBAAgB,GACzB,cAAc,GAAG,IAAI,CAIvB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAKxE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,MAAM,CAWR"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template loader — reads `docs/method/methods/<name>-template.md`
|
|
3
|
+
* via an SddReader so `pin_to_commit` works uniformly.
|
|
4
|
+
*
|
|
5
|
+
* Missing templates return `null` rather than throwing; the calling
|
|
6
|
+
* prompt embeds a structured error in its returned messages per the
|
|
7
|
+
* Phase 5 plan's open-question resolution (b).
|
|
8
|
+
*/
|
|
9
|
+
export const TEMPLATES_DIR = "docs/method/methods";
|
|
10
|
+
export function loadTemplate(reader, location) {
|
|
11
|
+
const body = reader.readFile(location.relPath);
|
|
12
|
+
if (body === null)
|
|
13
|
+
return null;
|
|
14
|
+
return { location, body };
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Convenience: build a location for a named template under the
|
|
18
|
+
* standard `docs/method/methods/` directory.
|
|
19
|
+
*/
|
|
20
|
+
export function templateAt(name, label) {
|
|
21
|
+
return {
|
|
22
|
+
relPath: `${TEMPLATES_DIR}/${name}`,
|
|
23
|
+
label,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Produce a user-facing message explaining that the template file is
|
|
28
|
+
* missing. Prompts return this in place of a rendered template when
|
|
29
|
+
* `loadTemplate` returns null — the agent gets enough context to
|
|
30
|
+
* surface the problem without us throwing at the transport layer.
|
|
31
|
+
*/
|
|
32
|
+
export function renderMissingTemplateMessage(location, sddRoot, pin) {
|
|
33
|
+
return [
|
|
34
|
+
`**Template not found:** \`${location.relPath}\` (${location.label}).`,
|
|
35
|
+
"",
|
|
36
|
+
`The SDD at \`${sddRoot}\` (pin: ${pin}) does not have this file.`,
|
|
37
|
+
"",
|
|
38
|
+
"**Remediation:**",
|
|
39
|
+
`- Confirm the SDD has been sync'd with a method baseline bundle that ships \`${location.relPath}\`.`,
|
|
40
|
+
"- Run `sdd-cli sync --bundle <path>` to refresh.",
|
|
41
|
+
"- If the template has been renamed upstream, raise an issue — this prompt's binding may need updating.",
|
|
42
|
+
].join("\n");
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=template-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/template-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAOnD,MAAM,UAAU,YAAY,CAC1B,MAAiB,EACjB,QAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAa;IACpD,OAAO;QACL,OAAO,EAAE,GAAG,aAAa,IAAI,IAAI,EAAE;QACnC,KAAK;KACN,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAA0B,EAC1B,OAAe,EACf,GAAW;IAEX,OAAO;QACL,6BAA6B,QAAQ,CAAC,OAAO,OAAO,QAAQ,CAAC,KAAK,IAAI;QACtE,EAAE;QACF,gBAAgB,OAAO,YAAY,GAAG,4BAA4B;QAClE,EAAE;QACF,kBAAkB;QAClB,gFAAgF,QAAQ,CAAC,OAAO,KAAK;QACrG,kDAAkD;QAClD,wGAAwG;KACzG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the Phase 5 prompt registrations.
|
|
3
|
+
*
|
|
4
|
+
* Prompts are the third MCP affordance after resources and tools.
|
|
5
|
+
* Each prompt is a parameterised template an agent can invoke; the
|
|
6
|
+
* server returns a `GetPromptResult` (one or more messages) that the
|
|
7
|
+
* agent surfaces to the user.
|
|
8
|
+
*/
|
|
9
|
+
import type { GetPromptResult } from "@modelcontextprotocol/sdk/types.js";
|
|
10
|
+
export type PromptResult = GetPromptResult;
|
|
11
|
+
export interface TemplateLocation {
|
|
12
|
+
/** SDD-relative path (e.g. `docs/method/methods/adr-template.md`). */
|
|
13
|
+
readonly relPath: string;
|
|
14
|
+
/** Human-readable label for diagnostics. */
|
|
15
|
+
readonly label: string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,MAAM,MAAM,YAAY,GAAG,eAAe,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the Phase 5 prompt registrations.
|
|
3
|
+
*
|
|
4
|
+
* Prompts are the third MCP affordance after resources and tools.
|
|
5
|
+
* Each prompt is a parameterised template an agent can invoke; the
|
|
6
|
+
* server returns a `GetPromptResult` (one or more messages) that the
|
|
7
|
+
* agent surfaces to the user.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write_capability_spec — scaffold a capability spec under
|
|
3
|
+
* docs/domains/{domain}/product/{capability}.md, bound to
|
|
4
|
+
* docs/method/methods/capability-spec-template.md.
|
|
5
|
+
*/
|
|
6
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
export declare function register(server: McpServer, sddRoot: string): void;
|
|
8
|
+
//# sourceMappingURL=write-capability-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-capability-spec.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/write-capability-spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAoFjE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write_capability_spec — scaffold a capability spec under
|
|
3
|
+
* docs/domains/{domain}/product/{capability}.md, bound to
|
|
4
|
+
* docs/method/methods/capability-spec-template.md.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from "zod";
|
|
7
|
+
import { liveReader } from "../reader.js";
|
|
8
|
+
import { loadTemplate, renderMissingTemplateMessage, templateAt, } from "./template-loader.js";
|
|
9
|
+
export function register(server, sddRoot) {
|
|
10
|
+
server.registerPrompt("write_capability_spec", {
|
|
11
|
+
title: "Write a capability spec",
|
|
12
|
+
description: "Scaffold a capability spec from the method template. Targets docs/domains/{domain}/product/{capability}.md.",
|
|
13
|
+
argsSchema: {
|
|
14
|
+
capability_name: z
|
|
15
|
+
.string()
|
|
16
|
+
.min(1)
|
|
17
|
+
.describe("Human-readable capability name (e.g. 'Party Merge'). Will be slugged for the file name."),
|
|
18
|
+
domain: z
|
|
19
|
+
.string()
|
|
20
|
+
.min(1)
|
|
21
|
+
.describe("Domain folder name under docs/domains/ (e.g. 'party')."),
|
|
22
|
+
classification: z
|
|
23
|
+
.string()
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Optional: Outcome | Enabler-Runway | Hybrid (ADR 0056 classification)."),
|
|
26
|
+
},
|
|
27
|
+
}, (args) => {
|
|
28
|
+
const reader = liveReader(sddRoot);
|
|
29
|
+
const location = templateAt("capability-spec-template.md", "capability spec template");
|
|
30
|
+
const loaded = loadTemplate(reader, location);
|
|
31
|
+
if (loaded === null) {
|
|
32
|
+
return {
|
|
33
|
+
messages: [
|
|
34
|
+
{
|
|
35
|
+
role: "user",
|
|
36
|
+
content: {
|
|
37
|
+
type: "text",
|
|
38
|
+
text: renderMissingTemplateMessage(location, reader.sddRoot, reader.pin),
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const slug = slugify(args.capability_name);
|
|
45
|
+
const preamble = [
|
|
46
|
+
`Please scaffold a capability spec for **${args.capability_name}** in the **${args.domain}** domain.`,
|
|
47
|
+
"",
|
|
48
|
+
"**Inputs:**",
|
|
49
|
+
`- **Capability name:** ${args.capability_name}`,
|
|
50
|
+
`- **Domain:** ${args.domain}`,
|
|
51
|
+
args.classification
|
|
52
|
+
? `- **Classification:** ${args.classification}`
|
|
53
|
+
: "- **Classification:** (not provided — pick one of Outcome / Enabler-Runway / Hybrid per ADR 0056)",
|
|
54
|
+
"",
|
|
55
|
+
"**Target path:**",
|
|
56
|
+
`- \`docs/domains/${args.domain}/product/${slug}.md\``,
|
|
57
|
+
"",
|
|
58
|
+
"Fill the template below, replacing placeholders with concrete content or clear `TODO` notes. Leave the file structure — section headings and frontmatter fields — intact so downstream validators pass.",
|
|
59
|
+
"",
|
|
60
|
+
"**Template to fill** (verbatim from the SDD):",
|
|
61
|
+
"",
|
|
62
|
+
"```markdown",
|
|
63
|
+
loaded.body.trimEnd(),
|
|
64
|
+
"```",
|
|
65
|
+
].join("\n");
|
|
66
|
+
return {
|
|
67
|
+
messages: [
|
|
68
|
+
{
|
|
69
|
+
role: "user",
|
|
70
|
+
content: { type: "text", text: preamble },
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function slugify(name) {
|
|
77
|
+
return name
|
|
78
|
+
.toLowerCase()
|
|
79
|
+
.replace(/&/g, "")
|
|
80
|
+
.replace(/[^a-z0-9 -]/g, "")
|
|
81
|
+
.replace(/\s+/g, "-")
|
|
82
|
+
.replace(/-+/g, "-")
|
|
83
|
+
.replace(/^-|-$/g, "");
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=write-capability-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-capability-spec.js","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/write-capability-spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,YAAY,EACZ,4BAA4B,EAC5B,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,OAAe;IACzD,MAAM,CAAC,cAAc,CACnB,uBAAuB,EACvB;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,6GAA6G;QAC/G,UAAU,EAAE;YACV,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,yFAAyF,CAC1F;YACH,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CAAC,wDAAwD,CAAC;YACrE,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,wEAAwE,CACzE;SACJ;KACF,EACD,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,UAAU,CACzB,6BAA6B,EAC7B,0BAA0B,CAC3B,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4BAA4B,CAChC,QAAQ,EACR,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,GAAG,CACX;yBACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG;YACf,2CAA2C,IAAI,CAAC,eAAe,eAAe,IAAI,CAAC,MAAM,YAAY;YACrG,EAAE;YACF,aAAa;YACb,0BAA0B,IAAI,CAAC,eAAe,EAAE;YAChD,iBAAiB,IAAI,CAAC,MAAM,EAAE;YAC9B,IAAI,CAAC,cAAc;gBACjB,CAAC,CAAC,yBAAyB,IAAI,CAAC,cAAc,EAAE;gBAChD,CAAC,CAAC,mGAAmG;YACvG,EAAE;YACF,kBAAkB;YAClB,oBAAoB,IAAI,CAAC,MAAM,YAAY,IAAI,OAAO;YACtD,EAAE;YACF,yMAAyM;YACzM,EAAE;YACF,+CAA+C;YAC/C,EAAE;YACF,aAAa;YACb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;YACrB,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write_feature_spec — scaffold a feature spec under
|
|
3
|
+
* docs/domains/{domain}/product/features/{capability}/{feature}.md.
|
|
4
|
+
*
|
|
5
|
+
* Binds to docs/method/methods/feature-spec-template.md (default) or
|
|
6
|
+
* app-feature-spec-template.md (when variant = "app").
|
|
7
|
+
*/
|
|
8
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
|
+
export declare function register(server: McpServer, sddRoot: string): void;
|
|
10
|
+
//# sourceMappingURL=write-feature-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-feature-spec.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/write-feature-spec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA0FjE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write_feature_spec — scaffold a feature spec under
|
|
3
|
+
* docs/domains/{domain}/product/features/{capability}/{feature}.md.
|
|
4
|
+
*
|
|
5
|
+
* Binds to docs/method/methods/feature-spec-template.md (default) or
|
|
6
|
+
* app-feature-spec-template.md (when variant = "app").
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import { liveReader } from "../reader.js";
|
|
10
|
+
import { loadTemplate, renderMissingTemplateMessage, templateAt, } from "./template-loader.js";
|
|
11
|
+
export function register(server, sddRoot) {
|
|
12
|
+
server.registerPrompt("write_feature_spec", {
|
|
13
|
+
title: "Write a feature spec",
|
|
14
|
+
description: "Scaffold a feature spec from the method template. Targets docs/domains/{domain}/product/features/{capability}/{feature}.md. Select `variant: \"app\"` for the application-profile template.",
|
|
15
|
+
argsSchema: {
|
|
16
|
+
feature_name: z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1)
|
|
19
|
+
.describe("Human-readable feature name. Will be slugged for the file."),
|
|
20
|
+
capability: z
|
|
21
|
+
.string()
|
|
22
|
+
.min(1)
|
|
23
|
+
.describe("Capability slug this feature belongs to (e.g. 'party-merge')."),
|
|
24
|
+
domain: z
|
|
25
|
+
.string()
|
|
26
|
+
.min(1)
|
|
27
|
+
.describe("Domain folder name under docs/domains/."),
|
|
28
|
+
variant: z
|
|
29
|
+
.enum(["platform", "app"])
|
|
30
|
+
.optional()
|
|
31
|
+
.describe("Which template variant to bind to. Default: platform."),
|
|
32
|
+
},
|
|
33
|
+
}, (args) => {
|
|
34
|
+
const reader = liveReader(sddRoot);
|
|
35
|
+
const variant = args.variant ?? "platform";
|
|
36
|
+
const templateName = variant === "app"
|
|
37
|
+
? "app-feature-spec-template.md"
|
|
38
|
+
: "feature-spec-template.md";
|
|
39
|
+
const location = templateAt(templateName, `${variant} feature spec template`);
|
|
40
|
+
const loaded = loadTemplate(reader, location);
|
|
41
|
+
if (loaded === null) {
|
|
42
|
+
return {
|
|
43
|
+
messages: [
|
|
44
|
+
{
|
|
45
|
+
role: "user",
|
|
46
|
+
content: {
|
|
47
|
+
type: "text",
|
|
48
|
+
text: renderMissingTemplateMessage(location, reader.sddRoot, reader.pin),
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const featureSlug = slugify(args.feature_name);
|
|
55
|
+
const preamble = [
|
|
56
|
+
`Please scaffold a **${variant}-profile** feature spec for **${args.feature_name}**, part of capability **${args.capability}** in domain **${args.domain}**.`,
|
|
57
|
+
"",
|
|
58
|
+
"**Inputs:**",
|
|
59
|
+
`- **Feature name:** ${args.feature_name}`,
|
|
60
|
+
`- **Capability:** ${args.capability}`,
|
|
61
|
+
`- **Domain:** ${args.domain}`,
|
|
62
|
+
`- **Variant:** ${variant}`,
|
|
63
|
+
"",
|
|
64
|
+
"**Target path:**",
|
|
65
|
+
`- \`docs/domains/${args.domain}/product/features/${args.capability}/${featureSlug}.md\``,
|
|
66
|
+
"",
|
|
67
|
+
"Fill the template below, replacing placeholders with concrete content or clear `TODO` notes. Preserve section headings and frontmatter so downstream validators pass.",
|
|
68
|
+
"",
|
|
69
|
+
"**Template to fill** (verbatim from the SDD):",
|
|
70
|
+
"",
|
|
71
|
+
"```markdown",
|
|
72
|
+
loaded.body.trimEnd(),
|
|
73
|
+
"```",
|
|
74
|
+
].join("\n");
|
|
75
|
+
return {
|
|
76
|
+
messages: [
|
|
77
|
+
{
|
|
78
|
+
role: "user",
|
|
79
|
+
content: { type: "text", text: preamble },
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function slugify(name) {
|
|
86
|
+
return name
|
|
87
|
+
.toLowerCase()
|
|
88
|
+
.replace(/&/g, "")
|
|
89
|
+
.replace(/[^a-z0-9 -]/g, "")
|
|
90
|
+
.replace(/\s+/g, "-")
|
|
91
|
+
.replace(/-+/g, "-")
|
|
92
|
+
.replace(/^-|-$/g, "");
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=write-feature-spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-feature-spec.js","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/write-feature-spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write_work_order — scaffold a work-order document from
|
|
3
|
+
* docs/method/methods/work-order-template.md.
|
|
4
|
+
*/
|
|
5
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
+
export declare function register(server: McpServer, sddRoot: string): void;
|
|
7
|
+
//# sourceMappingURL=write-work-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-work-order.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/write-work-order.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AASzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA8EjE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* write_work_order — scaffold a work-order document from
|
|
3
|
+
* docs/method/methods/work-order-template.md.
|
|
4
|
+
*/
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { liveReader } from "../reader.js";
|
|
7
|
+
import { loadTemplate, renderMissingTemplateMessage, templateAt, } from "./template-loader.js";
|
|
8
|
+
export function register(server, sddRoot) {
|
|
9
|
+
server.registerPrompt("write_work_order", {
|
|
10
|
+
title: "Write a work order",
|
|
11
|
+
description: "Scaffold a work order from the method template. Work orders are the method's unit of delivery authorisation; see docs/method/methods/work-order-template.md for the shape.",
|
|
12
|
+
argsSchema: {
|
|
13
|
+
unit_id: z
|
|
14
|
+
.string()
|
|
15
|
+
.min(1)
|
|
16
|
+
.describe("Work-order identifier (e.g. 'WO-2026-042' or a feature/capability slug)."),
|
|
17
|
+
scope: z
|
|
18
|
+
.string()
|
|
19
|
+
.min(1)
|
|
20
|
+
.describe("What the work order covers — can be a capability, a feature, an ADR, or a cross-scope initiative."),
|
|
21
|
+
kind: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Optional: feature | capability | migration | spike | other."),
|
|
25
|
+
},
|
|
26
|
+
}, (args) => {
|
|
27
|
+
const reader = liveReader(sddRoot);
|
|
28
|
+
const location = templateAt("work-order-template.md", "work order template");
|
|
29
|
+
const loaded = loadTemplate(reader, location);
|
|
30
|
+
if (loaded === null) {
|
|
31
|
+
return {
|
|
32
|
+
messages: [
|
|
33
|
+
{
|
|
34
|
+
role: "user",
|
|
35
|
+
content: {
|
|
36
|
+
type: "text",
|
|
37
|
+
text: renderMissingTemplateMessage(location, reader.sddRoot, reader.pin),
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const preamble = [
|
|
44
|
+
`Please scaffold a work order for **${args.unit_id}** covering **${args.scope}**.`,
|
|
45
|
+
"",
|
|
46
|
+
"**Inputs:**",
|
|
47
|
+
`- **Unit ID:** ${args.unit_id}`,
|
|
48
|
+
`- **Scope:** ${args.scope}`,
|
|
49
|
+
args.kind ? `- **Kind:** ${args.kind}` : "- **Kind:** (not provided)",
|
|
50
|
+
"",
|
|
51
|
+
"Fill the template below; preserve section headings so downstream tooling recognises the shape.",
|
|
52
|
+
"",
|
|
53
|
+
"**Template to fill** (verbatim from the SDD):",
|
|
54
|
+
"",
|
|
55
|
+
"```markdown",
|
|
56
|
+
loaded.body.trimEnd(),
|
|
57
|
+
"```",
|
|
58
|
+
].join("\n");
|
|
59
|
+
return {
|
|
60
|
+
messages: [
|
|
61
|
+
{
|
|
62
|
+
role: "user",
|
|
63
|
+
content: { type: "text", text: preamble },
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=write-work-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-work-order.js","sourceRoot":"","sources":["../../../../src/lib/mcp/prompts/write-work-order.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,YAAY,EACZ,4BAA4B,EAC5B,UAAU,GACX,MAAM,sBAAsB,CAAC;AAE9B,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,OAAe;IACzD,MAAM,CAAC,cAAc,CACnB,kBAAkB,EAClB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,4KAA4K;QAC9K,UAAU,EAAE;YACV,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,0EAA0E,CAC3E;YACH,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,QAAQ,CACP,mGAAmG,CACpG;YACH,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;SAC3E;KACF,EACD,CAAC,IAAI,EAAE,EAAE;QACP,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,UAAU,CACzB,wBAAwB,EACxB,qBAAqB,CACtB,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4BAA4B,CAChC,QAAQ,EACR,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,GAAG,CACX;yBACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,sCAAsC,IAAI,CAAC,OAAO,iBAAiB,IAAI,CAAC,KAAK,KAAK;YAClF,EAAE;YACF,aAAa;YACb,kBAAkB,IAAI,CAAC,OAAO,EAAE;YAChC,gBAAgB,IAAI,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,4BAA4B;YACrE,EAAE;YACF,gGAAgG;YAChG,EAAE;YACF,+CAA+C;YAC/C,EAAE;YACF,aAAa;YACb,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;YACrB,KAAK;SACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;iBAC1C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDD content access abstraction. Phase 2 tools query against an
|
|
3
|
+
* `SddReader` so that a single code path serves both live (working-tree)
|
|
4
|
+
* reads and pinned (git object tree) reads.
|
|
5
|
+
*
|
|
6
|
+
* Live reads: wrap node:fs.
|
|
7
|
+
* Pinned reads: wrap `git cat-file -p <sha>:<path>` (see src/lib/mcp/pin/).
|
|
8
|
+
*
|
|
9
|
+
* Relative paths are rooted at the SDD repo root; absolute paths are
|
|
10
|
+
* rejected so that callers cannot accidentally escape the SDD.
|
|
11
|
+
*/
|
|
12
|
+
export interface SddReader {
|
|
13
|
+
/** Absolute path to the SDD root. Stable for the reader's lifetime. */
|
|
14
|
+
readonly sddRoot: string;
|
|
15
|
+
/**
|
|
16
|
+
* Commit SHA echoed in tool responses. "HEAD" for a live reader; the
|
|
17
|
+
* resolved SHA for a pinned reader.
|
|
18
|
+
*/
|
|
19
|
+
readonly pin: string;
|
|
20
|
+
/** Returns file contents as utf8, or null if the file does not exist. */
|
|
21
|
+
readFile(relPath: string): string | null;
|
|
22
|
+
/** Returns directory entry names (non-recursive), or [] if missing. */
|
|
23
|
+
listDir(relPath: string): string[];
|
|
24
|
+
/** True if the path exists and is a regular file. */
|
|
25
|
+
isFile(relPath: string): boolean;
|
|
26
|
+
/** True if the path exists and is a directory. */
|
|
27
|
+
isDir(relPath: string): boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare function liveReader(sddRoot: string, pin?: string): SddReader;
|
|
30
|
+
/**
|
|
31
|
+
* Recursive directory walk. Returns relative paths (from SDD root) of
|
|
32
|
+
* every regular file under `relRoot` that matches the optional filter.
|
|
33
|
+
* Depth-first, lexicographically sorted at each level for deterministic
|
|
34
|
+
* index contents.
|
|
35
|
+
*/
|
|
36
|
+
export declare function walkFiles(reader: SddReader, relRoot: string, filter?: (relPath: string) => boolean): string[];
|
|
37
|
+
//# sourceMappingURL=reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../../src/lib/mcp/reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,MAAM,WAAW,SAAS;IACxB,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACzC,uEAAuE;IACvE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnC,qDAAqD;IACrD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,kDAAkD;IAClD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,CA8CnE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACpC,MAAM,EAAE,CAmBV"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDD content access abstraction. Phase 2 tools query against an
|
|
3
|
+
* `SddReader` so that a single code path serves both live (working-tree)
|
|
4
|
+
* reads and pinned (git object tree) reads.
|
|
5
|
+
*
|
|
6
|
+
* Live reads: wrap node:fs.
|
|
7
|
+
* Pinned reads: wrap `git cat-file -p <sha>:<path>` (see src/lib/mcp/pin/).
|
|
8
|
+
*
|
|
9
|
+
* Relative paths are rooted at the SDD repo root; absolute paths are
|
|
10
|
+
* rejected so that callers cannot accidentally escape the SDD.
|
|
11
|
+
*/
|
|
12
|
+
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
13
|
+
import { isAbsolute, join } from "node:path";
|
|
14
|
+
export function liveReader(sddRoot, pin = "HEAD") {
|
|
15
|
+
const root = sddRoot;
|
|
16
|
+
const check = (relPath) => {
|
|
17
|
+
if (isAbsolute(relPath)) {
|
|
18
|
+
throw new Error(`SddReader paths must be relative to the SDD root; got ${relPath}`);
|
|
19
|
+
}
|
|
20
|
+
return join(root, relPath);
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
sddRoot: root,
|
|
24
|
+
pin,
|
|
25
|
+
readFile(relPath) {
|
|
26
|
+
const full = check(relPath);
|
|
27
|
+
try {
|
|
28
|
+
return readFileSync(full, "utf8");
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
listDir(relPath) {
|
|
35
|
+
const full = check(relPath);
|
|
36
|
+
try {
|
|
37
|
+
return readdirSync(full);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return [];
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
isFile(relPath) {
|
|
44
|
+
const full = check(relPath);
|
|
45
|
+
try {
|
|
46
|
+
return statSync(full).isFile();
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
isDir(relPath) {
|
|
53
|
+
const full = check(relPath);
|
|
54
|
+
try {
|
|
55
|
+
return statSync(full).isDirectory();
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Recursive directory walk. Returns relative paths (from SDD root) of
|
|
65
|
+
* every regular file under `relRoot` that matches the optional filter.
|
|
66
|
+
* Depth-first, lexicographically sorted at each level for deterministic
|
|
67
|
+
* index contents.
|
|
68
|
+
*/
|
|
69
|
+
export function walkFiles(reader, relRoot, filter) {
|
|
70
|
+
const out = [];
|
|
71
|
+
if (!reader.isDir(relRoot))
|
|
72
|
+
return out;
|
|
73
|
+
const stack = [relRoot];
|
|
74
|
+
while (stack.length > 0) {
|
|
75
|
+
const dir = stack.pop();
|
|
76
|
+
if (dir === undefined)
|
|
77
|
+
break;
|
|
78
|
+
const entries = reader.listDir(dir).sort();
|
|
79
|
+
for (const entry of entries) {
|
|
80
|
+
const child = dir === "" ? entry : `${dir}/${entry}`;
|
|
81
|
+
if (reader.isDir(child)) {
|
|
82
|
+
stack.push(child);
|
|
83
|
+
}
|
|
84
|
+
else if (reader.isFile(child)) {
|
|
85
|
+
if (!filter || filter(child))
|
|
86
|
+
out.push(child);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
out.sort();
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../../src/lib/mcp/reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adrs.d.ts","sourceRoot":"","sources":["../../../../src/lib/mcp/resources/adrs.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAEV,MAAM,yCAAyC,CAAC;AAKjD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA4GjE"}
|