@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.
Files changed (373) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +17 -0
  3. package/README.md +151 -0
  4. package/dist/cli.d.ts +3 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +8 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +66 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/lib/bundle.d.ts +20 -0
  13. package/dist/lib/bundle.d.ts.map +1 -0
  14. package/dist/lib/bundle.js +75 -0
  15. package/dist/lib/bundle.js.map +1 -0
  16. package/dist/lib/generate-claude-md/index.d.ts +16 -0
  17. package/dist/lib/generate-claude-md/index.d.ts.map +1 -0
  18. package/dist/lib/generate-claude-md/index.js +89 -0
  19. package/dist/lib/generate-claude-md/index.js.map +1 -0
  20. package/dist/lib/hooks-seed/entries.d.ts +16 -0
  21. package/dist/lib/hooks-seed/entries.d.ts.map +1 -0
  22. package/dist/lib/hooks-seed/entries.js +47 -0
  23. package/dist/lib/hooks-seed/entries.js.map +1 -0
  24. package/dist/lib/hooks-seed/index.d.ts +17 -0
  25. package/dist/lib/hooks-seed/index.d.ts.map +1 -0
  26. package/dist/lib/hooks-seed/index.js +15 -0
  27. package/dist/lib/hooks-seed/index.js.map +1 -0
  28. package/dist/lib/hooks-seed/merge.d.ts +24 -0
  29. package/dist/lib/hooks-seed/merge.d.ts.map +1 -0
  30. package/dist/lib/hooks-seed/merge.js +73 -0
  31. package/dist/lib/hooks-seed/merge.js.map +1 -0
  32. package/dist/lib/hooks-seed/types.d.ts +27 -0
  33. package/dist/lib/hooks-seed/types.d.ts.map +1 -0
  34. package/dist/lib/hooks-seed/types.js +20 -0
  35. package/dist/lib/hooks-seed/types.js.map +1 -0
  36. package/dist/lib/init/app.d.ts +21 -0
  37. package/dist/lib/init/app.d.ts.map +1 -0
  38. package/dist/lib/init/app.js +132 -0
  39. package/dist/lib/init/app.js.map +1 -0
  40. package/dist/lib/init/ci-workflow.d.ts +29 -0
  41. package/dist/lib/init/ci-workflow.d.ts.map +1 -0
  42. package/dist/lib/init/ci-workflow.js +78 -0
  43. package/dist/lib/init/ci-workflow.js.map +1 -0
  44. package/dist/lib/init/claude-md.d.ts +19 -0
  45. package/dist/lib/init/claude-md.d.ts.map +1 -0
  46. package/dist/lib/init/claude-md.js +140 -0
  47. package/dist/lib/init/claude-md.js.map +1 -0
  48. package/dist/lib/init/index.d.ts +33 -0
  49. package/dist/lib/init/index.d.ts.map +1 -0
  50. package/dist/lib/init/index.js +232 -0
  51. package/dist/lib/init/index.js.map +1 -0
  52. package/dist/lib/init/integration.d.ts +53 -0
  53. package/dist/lib/init/integration.d.ts.map +1 -0
  54. package/dist/lib/init/integration.js +237 -0
  55. package/dist/lib/init/integration.js.map +1 -0
  56. package/dist/lib/init/platform.d.ts +26 -0
  57. package/dist/lib/init/platform.d.ts.map +1 -0
  58. package/dist/lib/init/platform.js +188 -0
  59. package/dist/lib/init/platform.js.map +1 -0
  60. package/dist/lib/list/discover.d.ts +8 -0
  61. package/dist/lib/list/discover.d.ts.map +1 -0
  62. package/dist/lib/list/discover.js +77 -0
  63. package/dist/lib/list/discover.js.map +1 -0
  64. package/dist/lib/list/format.d.ts +9 -0
  65. package/dist/lib/list/format.d.ts.map +1 -0
  66. package/dist/lib/list/format.js +44 -0
  67. package/dist/lib/list/format.js.map +1 -0
  68. package/dist/lib/list/index.d.ts +12 -0
  69. package/dist/lib/list/index.d.ts.map +1 -0
  70. package/dist/lib/list/index.js +15 -0
  71. package/dist/lib/list/index.js.map +1 -0
  72. package/dist/lib/lock-file.d.ts +14 -0
  73. package/dist/lib/lock-file.d.ts.map +1 -0
  74. package/dist/lib/lock-file.js +80 -0
  75. package/dist/lib/lock-file.js.map +1 -0
  76. package/dist/lib/mcp/build-info.d.ts +9 -0
  77. package/dist/lib/mcp/build-info.d.ts.map +1 -0
  78. package/dist/lib/mcp/build-info.js +10 -0
  79. package/dist/lib/mcp/build-info.js.map +1 -0
  80. package/dist/lib/mcp/errors.d.ts +23 -0
  81. package/dist/lib/mcp/errors.d.ts.map +1 -0
  82. package/dist/lib/mcp/errors.js +25 -0
  83. package/dist/lib/mcp/errors.js.map +1 -0
  84. package/dist/lib/mcp/parse/frontmatter.d.ts +22 -0
  85. package/dist/lib/mcp/parse/frontmatter.d.ts.map +1 -0
  86. package/dist/lib/mcp/parse/frontmatter.js +49 -0
  87. package/dist/lib/mcp/parse/frontmatter.js.map +1 -0
  88. package/dist/lib/mcp/parse/gate-registry.d.ts +19 -0
  89. package/dist/lib/mcp/parse/gate-registry.d.ts.map +1 -0
  90. package/dist/lib/mcp/parse/gate-registry.js +68 -0
  91. package/dist/lib/mcp/parse/gate-registry.js.map +1 -0
  92. package/dist/lib/mcp/parse/paths.d.ts +21 -0
  93. package/dist/lib/mcp/parse/paths.d.ts.map +1 -0
  94. package/dist/lib/mcp/parse/paths.js +83 -0
  95. package/dist/lib/mcp/parse/paths.js.map +1 -0
  96. package/dist/lib/mcp/pin/errors.d.ts +11 -0
  97. package/dist/lib/mcp/pin/errors.d.ts.map +1 -0
  98. package/dist/lib/mcp/pin/errors.js +32 -0
  99. package/dist/lib/mcp/pin/errors.js.map +1 -0
  100. package/dist/lib/mcp/pin/index.d.ts +18 -0
  101. package/dist/lib/mcp/pin/index.d.ts.map +1 -0
  102. package/dist/lib/mcp/pin/index.js +29 -0
  103. package/dist/lib/mcp/pin/index.js.map +1 -0
  104. package/dist/lib/mcp/pin/read.d.ts +24 -0
  105. package/dist/lib/mcp/pin/read.d.ts.map +1 -0
  106. package/dist/lib/mcp/pin/read.js +64 -0
  107. package/dist/lib/mcp/pin/read.js.map +1 -0
  108. package/dist/lib/mcp/pin/resolve.d.ts +12 -0
  109. package/dist/lib/mcp/pin/resolve.d.ts.map +1 -0
  110. package/dist/lib/mcp/pin/resolve.js +33 -0
  111. package/dist/lib/mcp/pin/resolve.js.map +1 -0
  112. package/dist/lib/mcp/prompts/evaluate-cascade.d.ts +14 -0
  113. package/dist/lib/mcp/prompts/evaluate-cascade.d.ts.map +1 -0
  114. package/dist/lib/mcp/prompts/evaluate-cascade.js +147 -0
  115. package/dist/lib/mcp/prompts/evaluate-cascade.js.map +1 -0
  116. package/dist/lib/mcp/prompts/index.d.ts +9 -0
  117. package/dist/lib/mcp/prompts/index.d.ts.map +1 -0
  118. package/dist/lib/mcp/prompts/index.js +23 -0
  119. package/dist/lib/mcp/prompts/index.js.map +1 -0
  120. package/dist/lib/mcp/prompts/propose-adr.d.ts +12 -0
  121. package/dist/lib/mcp/prompts/propose-adr.d.ts.map +1 -0
  122. package/dist/lib/mcp/prompts/propose-adr.js +94 -0
  123. package/dist/lib/mcp/prompts/propose-adr.js.map +1 -0
  124. package/dist/lib/mcp/prompts/review-data-model-change.d.ts +10 -0
  125. package/dist/lib/mcp/prompts/review-data-model-change.d.ts.map +1 -0
  126. package/dist/lib/mcp/prompts/review-data-model-change.js +134 -0
  127. package/dist/lib/mcp/prompts/review-data-model-change.js.map +1 -0
  128. package/dist/lib/mcp/prompts/template-loader.d.ts +29 -0
  129. package/dist/lib/mcp/prompts/template-loader.d.ts.map +1 -0
  130. package/dist/lib/mcp/prompts/template-loader.js +44 -0
  131. package/dist/lib/mcp/prompts/template-loader.js.map +1 -0
  132. package/dist/lib/mcp/prompts/types.d.ts +17 -0
  133. package/dist/lib/mcp/prompts/types.d.ts.map +1 -0
  134. package/dist/lib/mcp/prompts/types.js +10 -0
  135. package/dist/lib/mcp/prompts/types.js.map +1 -0
  136. package/dist/lib/mcp/prompts/write-capability-spec.d.ts +8 -0
  137. package/dist/lib/mcp/prompts/write-capability-spec.d.ts.map +1 -0
  138. package/dist/lib/mcp/prompts/write-capability-spec.js +85 -0
  139. package/dist/lib/mcp/prompts/write-capability-spec.js.map +1 -0
  140. package/dist/lib/mcp/prompts/write-feature-spec.d.ts +10 -0
  141. package/dist/lib/mcp/prompts/write-feature-spec.d.ts.map +1 -0
  142. package/dist/lib/mcp/prompts/write-feature-spec.js +94 -0
  143. package/dist/lib/mcp/prompts/write-feature-spec.js.map +1 -0
  144. package/dist/lib/mcp/prompts/write-work-order.d.ts +7 -0
  145. package/dist/lib/mcp/prompts/write-work-order.d.ts.map +1 -0
  146. package/dist/lib/mcp/prompts/write-work-order.js +69 -0
  147. package/dist/lib/mcp/prompts/write-work-order.js.map +1 -0
  148. package/dist/lib/mcp/reader.d.ts +37 -0
  149. package/dist/lib/mcp/reader.d.ts.map +1 -0
  150. package/dist/lib/mcp/reader.js +93 -0
  151. package/dist/lib/mcp/reader.js.map +1 -0
  152. package/dist/lib/mcp/resources/adrs.d.ts +3 -0
  153. package/dist/lib/mcp/resources/adrs.d.ts.map +1 -0
  154. package/dist/lib/mcp/resources/adrs.js +97 -0
  155. package/dist/lib/mcp/resources/adrs.js.map +1 -0
  156. package/dist/lib/mcp/resources/data-models.d.ts +14 -0
  157. package/dist/lib/mcp/resources/data-models.d.ts.map +1 -0
  158. package/dist/lib/mcp/resources/data-models.js +81 -0
  159. package/dist/lib/mcp/resources/data-models.js.map +1 -0
  160. package/dist/lib/mcp/resources/gates.d.ts +9 -0
  161. package/dist/lib/mcp/resources/gates.d.ts.map +1 -0
  162. package/dist/lib/mcp/resources/gates.js +90 -0
  163. package/dist/lib/mcp/resources/gates.js.map +1 -0
  164. package/dist/lib/mcp/resources/glossary.d.ts +16 -0
  165. package/dist/lib/mcp/resources/glossary.d.ts.map +1 -0
  166. package/dist/lib/mcp/resources/glossary.js +87 -0
  167. package/dist/lib/mcp/resources/glossary.js.map +1 -0
  168. package/dist/lib/mcp/resources/specs.d.ts +23 -0
  169. package/dist/lib/mcp/resources/specs.d.ts.map +1 -0
  170. package/dist/lib/mcp/resources/specs.js +151 -0
  171. package/dist/lib/mcp/resources/specs.js.map +1 -0
  172. package/dist/lib/mcp/resources/version.d.ts +3 -0
  173. package/dist/lib/mcp/resources/version.d.ts.map +1 -0
  174. package/dist/lib/mcp/resources/version.js +45 -0
  175. package/dist/lib/mcp/resources/version.js.map +1 -0
  176. package/dist/lib/mcp/server.d.ts +29 -0
  177. package/dist/lib/mcp/server.d.ts.map +1 -0
  178. package/dist/lib/mcp/server.js +104 -0
  179. package/dist/lib/mcp/server.js.map +1 -0
  180. package/dist/lib/mcp/tools/cascade-impact.d.ts +22 -0
  181. package/dist/lib/mcp/tools/cascade-impact.d.ts.map +1 -0
  182. package/dist/lib/mcp/tools/cascade-impact.js +53 -0
  183. package/dist/lib/mcp/tools/cascade-impact.js.map +1 -0
  184. package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts +7 -0
  185. package/dist/lib/mcp/tools/find-consumers-of-contract.d.ts.map +1 -0
  186. package/dist/lib/mcp/tools/find-consumers-of-contract.js +70 -0
  187. package/dist/lib/mcp/tools/find-consumers-of-contract.js.map +1 -0
  188. package/dist/lib/mcp/tools/find-consumers.d.ts +7 -0
  189. package/dist/lib/mcp/tools/find-consumers.d.ts.map +1 -0
  190. package/dist/lib/mcp/tools/find-consumers.js +52 -0
  191. package/dist/lib/mcp/tools/find-consumers.js.map +1 -0
  192. package/dist/lib/mcp/tools/find-dependencies.d.ts +8 -0
  193. package/dist/lib/mcp/tools/find-dependencies.d.ts.map +1 -0
  194. package/dist/lib/mcp/tools/find-dependencies.js +89 -0
  195. package/dist/lib/mcp/tools/find-dependencies.js.map +1 -0
  196. package/dist/lib/mcp/tools/find-dependents.d.ts +8 -0
  197. package/dist/lib/mcp/tools/find-dependents.d.ts.map +1 -0
  198. package/dist/lib/mcp/tools/find-dependents.js +89 -0
  199. package/dist/lib/mcp/tools/find-dependents.js.map +1 -0
  200. package/dist/lib/mcp/tools/find-producers.d.ts +8 -0
  201. package/dist/lib/mcp/tools/find-producers.d.ts.map +1 -0
  202. package/dist/lib/mcp/tools/find-producers.js +57 -0
  203. package/dist/lib/mcp/tools/find-producers.js.map +1 -0
  204. package/dist/lib/mcp/tools/find-related-specs.d.ts +9 -0
  205. package/dist/lib/mcp/tools/find-related-specs.d.ts.map +1 -0
  206. package/dist/lib/mcp/tools/find-related-specs.js +92 -0
  207. package/dist/lib/mcp/tools/find-related-specs.js.map +1 -0
  208. package/dist/lib/mcp/tools/list-adrs.d.ts +3 -0
  209. package/dist/lib/mcp/tools/list-adrs.d.ts.map +1 -0
  210. package/dist/lib/mcp/tools/list-adrs.js +73 -0
  211. package/dist/lib/mcp/tools/list-adrs.js.map +1 -0
  212. package/dist/lib/mcp/tools/query-gate-status.d.ts +3 -0
  213. package/dist/lib/mcp/tools/query-gate-status.d.ts.map +1 -0
  214. package/dist/lib/mcp/tools/query-gate-status.js +82 -0
  215. package/dist/lib/mcp/tools/query-gate-status.js.map +1 -0
  216. package/dist/lib/mcp/tools/search-specs.d.ts +12 -0
  217. package/dist/lib/mcp/tools/search-specs.d.ts.map +1 -0
  218. package/dist/lib/mcp/tools/search-specs.js +151 -0
  219. package/dist/lib/mcp/tools/search-specs.js.map +1 -0
  220. package/dist/lib/mcp/workspace.d.ts +25 -0
  221. package/dist/lib/mcp/workspace.d.ts.map +1 -0
  222. package/dist/lib/mcp/workspace.js +129 -0
  223. package/dist/lib/mcp/workspace.js.map +1 -0
  224. package/dist/lib/mcp-seed/entries.d.ts +19 -0
  225. package/dist/lib/mcp-seed/entries.d.ts.map +1 -0
  226. package/dist/lib/mcp-seed/entries.js +14 -0
  227. package/dist/lib/mcp-seed/entries.js.map +1 -0
  228. package/dist/lib/mcp-seed/index.d.ts +36 -0
  229. package/dist/lib/mcp-seed/index.d.ts.map +1 -0
  230. package/dist/lib/mcp-seed/index.js +28 -0
  231. package/dist/lib/mcp-seed/index.js.map +1 -0
  232. package/dist/lib/mcp-seed/merge.d.ts +34 -0
  233. package/dist/lib/mcp-seed/merge.d.ts.map +1 -0
  234. package/dist/lib/mcp-seed/merge.js +99 -0
  235. package/dist/lib/mcp-seed/merge.js.map +1 -0
  236. package/dist/lib/mcp-seed/types.d.ts +24 -0
  237. package/dist/lib/mcp-seed/types.d.ts.map +1 -0
  238. package/dist/lib/mcp-seed/types.js +13 -0
  239. package/dist/lib/mcp-seed/types.js.map +1 -0
  240. package/dist/lib/plan/index.d.ts +19 -0
  241. package/dist/lib/plan/index.d.ts.map +1 -0
  242. package/dist/lib/plan/index.js +69 -0
  243. package/dist/lib/plan/index.js.map +1 -0
  244. package/dist/lib/plan/read-sdd.d.ts +46 -0
  245. package/dist/lib/plan/read-sdd.d.ts.map +1 -0
  246. package/dist/lib/plan/read-sdd.js +102 -0
  247. package/dist/lib/plan/read-sdd.js.map +1 -0
  248. package/dist/lib/plan/render-template.d.ts +8 -0
  249. package/dist/lib/plan/render-template.d.ts.map +1 -0
  250. package/dist/lib/plan/render-template.js +60 -0
  251. package/dist/lib/plan/render-template.js.map +1 -0
  252. package/dist/lib/repo-kind.d.ts +20 -0
  253. package/dist/lib/repo-kind.d.ts.map +1 -0
  254. package/dist/lib/repo-kind.js +73 -0
  255. package/dist/lib/repo-kind.js.map +1 -0
  256. package/dist/lib/scripts.d.ts +2 -0
  257. package/dist/lib/scripts.d.ts.map +1 -0
  258. package/dist/lib/scripts.js +7 -0
  259. package/dist/lib/scripts.js.map +1 -0
  260. package/dist/lib/sdd-index/cascade.d.ts +46 -0
  261. package/dist/lib/sdd-index/cascade.d.ts.map +1 -0
  262. package/dist/lib/sdd-index/cascade.js +91 -0
  263. package/dist/lib/sdd-index/cascade.js.map +1 -0
  264. package/dist/lib/sdd-index/contracts.d.ts +29 -0
  265. package/dist/lib/sdd-index/contracts.d.ts.map +1 -0
  266. package/dist/lib/sdd-index/contracts.js +216 -0
  267. package/dist/lib/sdd-index/contracts.js.map +1 -0
  268. package/dist/lib/sdd-index/data-model.d.ts +13 -0
  269. package/dist/lib/sdd-index/data-model.d.ts.map +1 -0
  270. package/dist/lib/sdd-index/data-model.js +23 -0
  271. package/dist/lib/sdd-index/data-model.js.map +1 -0
  272. package/dist/lib/sdd-index/execution-map.d.ts +34 -0
  273. package/dist/lib/sdd-index/execution-map.d.ts.map +1 -0
  274. package/dist/lib/sdd-index/execution-map.js +105 -0
  275. package/dist/lib/sdd-index/execution-map.js.map +1 -0
  276. package/dist/lib/sdd-index/graph.d.ts +28 -0
  277. package/dist/lib/sdd-index/graph.d.ts.map +1 -0
  278. package/dist/lib/sdd-index/graph.js +122 -0
  279. package/dist/lib/sdd-index/graph.js.map +1 -0
  280. package/dist/lib/sdd-index/index.d.ts +29 -0
  281. package/dist/lib/sdd-index/index.d.ts.map +1 -0
  282. package/dist/lib/sdd-index/index.js +79 -0
  283. package/dist/lib/sdd-index/index.js.map +1 -0
  284. package/dist/lib/sdd-index/repo-config.d.ts +23 -0
  285. package/dist/lib/sdd-index/repo-config.d.ts.map +1 -0
  286. package/dist/lib/sdd-index/repo-config.js +150 -0
  287. package/dist/lib/sdd-index/repo-config.js.map +1 -0
  288. package/dist/lib/sdd-index/types.d.ts +106 -0
  289. package/dist/lib/sdd-index/types.d.ts.map +1 -0
  290. package/dist/lib/sdd-index/types.js +13 -0
  291. package/dist/lib/sdd-index/types.js.map +1 -0
  292. package/dist/lib/sdd-index/watch.d.ts +24 -0
  293. package/dist/lib/sdd-index/watch.d.ts.map +1 -0
  294. package/dist/lib/sdd-index/watch.js +112 -0
  295. package/dist/lib/sdd-index/watch.js.map +1 -0
  296. package/dist/lib/spawn.d.ts +8 -0
  297. package/dist/lib/spawn.d.ts.map +1 -0
  298. package/dist/lib/spawn.js +16 -0
  299. package/dist/lib/spawn.js.map +1 -0
  300. package/dist/lib/sync/apply.d.ts +3 -0
  301. package/dist/lib/sync/apply.d.ts.map +1 -0
  302. package/dist/lib/sync/apply.js +16 -0
  303. package/dist/lib/sync/apply.js.map +1 -0
  304. package/dist/lib/sync/diff.d.ts +8 -0
  305. package/dist/lib/sync/diff.d.ts.map +1 -0
  306. package/dist/lib/sync/diff.js +48 -0
  307. package/dist/lib/sync/diff.js.map +1 -0
  308. package/dist/lib/sync/index.d.ts +17 -0
  309. package/dist/lib/sync/index.d.ts.map +1 -0
  310. package/dist/lib/sync/index.js +184 -0
  311. package/dist/lib/sync/index.js.map +1 -0
  312. package/dist/lib/sync/settings-merge.d.ts +45 -0
  313. package/dist/lib/sync/settings-merge.d.ts.map +1 -0
  314. package/dist/lib/sync/settings-merge.js +109 -0
  315. package/dist/lib/sync/settings-merge.js.map +1 -0
  316. package/dist/lib/sync/source-tag.d.ts +5 -0
  317. package/dist/lib/sync/source-tag.d.ts.map +1 -0
  318. package/dist/lib/sync/source-tag.js +34 -0
  319. package/dist/lib/sync/source-tag.js.map +1 -0
  320. package/dist/lib/sync/yaml-block-merge.d.ts +50 -0
  321. package/dist/lib/sync/yaml-block-merge.d.ts.map +1 -0
  322. package/dist/lib/sync/yaml-block-merge.js +113 -0
  323. package/dist/lib/sync/yaml-block-merge.js.map +1 -0
  324. package/dist/lib/validate/aggregate.d.ts +13 -0
  325. package/dist/lib/validate/aggregate.d.ts.map +1 -0
  326. package/dist/lib/validate/aggregate.js +35 -0
  327. package/dist/lib/validate/aggregate.js.map +1 -0
  328. package/dist/lib/validate/dispatch.d.ts +34 -0
  329. package/dist/lib/validate/dispatch.d.ts.map +1 -0
  330. package/dist/lib/validate/dispatch.js +167 -0
  331. package/dist/lib/validate/dispatch.js.map +1 -0
  332. package/dist/lib/validate/index.d.ts +13 -0
  333. package/dist/lib/validate/index.d.ts.map +1 -0
  334. package/dist/lib/validate/index.js +69 -0
  335. package/dist/lib/validate/index.js.map +1 -0
  336. package/dist/lib/validate/runner.d.ts +16 -0
  337. package/dist/lib/validate/runner.d.ts.map +1 -0
  338. package/dist/lib/validate/runner.js +66 -0
  339. package/dist/lib/validate/runner.js.map +1 -0
  340. package/dist/verbs/generate-claude-md.d.ts +3 -0
  341. package/dist/verbs/generate-claude-md.d.ts.map +1 -0
  342. package/dist/verbs/generate-claude-md.js +36 -0
  343. package/dist/verbs/generate-claude-md.js.map +1 -0
  344. package/dist/verbs/init.d.ts +3 -0
  345. package/dist/verbs/init.d.ts.map +1 -0
  346. package/dist/verbs/init.js +90 -0
  347. package/dist/verbs/init.js.map +1 -0
  348. package/dist/verbs/list.d.ts +3 -0
  349. package/dist/verbs/list.d.ts.map +1 -0
  350. package/dist/verbs/list.js +43 -0
  351. package/dist/verbs/list.js.map +1 -0
  352. package/dist/verbs/mcp.d.ts +3 -0
  353. package/dist/verbs/mcp.d.ts.map +1 -0
  354. package/dist/verbs/mcp.js +22 -0
  355. package/dist/verbs/mcp.js.map +1 -0
  356. package/dist/verbs/plan.d.ts +3 -0
  357. package/dist/verbs/plan.d.ts.map +1 -0
  358. package/dist/verbs/plan.js +41 -0
  359. package/dist/verbs/plan.js.map +1 -0
  360. package/dist/verbs/sync.d.ts +3 -0
  361. package/dist/verbs/sync.d.ts.map +1 -0
  362. package/dist/verbs/sync.js +27 -0
  363. package/dist/verbs/sync.js.map +1 -0
  364. package/dist/verbs/validate.d.ts +3 -0
  365. package/dist/verbs/validate.d.ts.map +1 -0
  366. package/dist/verbs/validate.js +21 -0
  367. package/dist/verbs/validate.js.map +1 -0
  368. package/package.json +61 -0
  369. package/scripts/README.md +48 -0
  370. package/scripts/sync-method-baseline.sh +258 -0
  371. package/scripts/validate-app-dependencies.sh +289 -0
  372. package/scripts/validate-app-docs.sh +185 -0
  373. package/scripts/validate-integration-docs.sh +222 -0
@@ -0,0 +1,185 @@
1
+ #!/bin/bash
2
+ #
3
+ # validate-app-docs.sh - Validate app repo documentation structure
4
+ #
5
+ # Usage: ./validate-app-docs.sh [--app-root <path>]
6
+ #
7
+ # Checks:
8
+ # 1. service-architecture.md is present
9
+ # 2. feature-tree.md is present (may be at docs/ or repo root)
10
+ # 3. app-platform-dependencies.yaml is present
11
+ # 4. Feature spec files under features/*/ have required sections:
12
+ # - ## Overview
13
+ # - ## Acceptance Criteria
14
+ # - ## Platform Contract Dependencies
15
+ #
16
+ # Does NOT check:
17
+ # - Glossary alignment (no domain glossary in app repos)
18
+ # - Cascade completeness (no domain model or capability tier)
19
+ # - DDD artifacts (no bounded contexts or aggregates)
20
+ # - Traceability manifests (no capability traceability in app repos)
21
+
22
+ set -euo pipefail
23
+
24
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
25
+ ROOT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
26
+
27
+ RED='\033[0;31m'
28
+ GREEN='\033[0;32m'
29
+ YELLOW='\033[1;33m'
30
+ BLUE='\033[0;34m'
31
+ NC='\033[0m'
32
+
33
+ log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
34
+ log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
35
+ log_fail() { echo -e "${RED}[FAIL]${NC} $1"; }
36
+ log_pass() { echo -e "${GREEN}[PASS]${NC} $1"; }
37
+ log_section() {
38
+ echo -e "\n${BLUE}═══════════════════════════════════════════════════════════${NC}"
39
+ echo -e "${BLUE} $1${NC}"
40
+ echo -e "${BLUE}═══════════════════════════════════════════════════════════${NC}\n"
41
+ }
42
+
43
+ APP_ROOT="$ROOT_DIR"
44
+
45
+ while [[ $# -gt 0 ]]; do
46
+ case "$1" in
47
+ --app-root)
48
+ APP_ROOT="${2:-}"
49
+ shift 2
50
+ ;;
51
+ -h|--help)
52
+ echo "Usage: $(basename "$0") [--app-root <path>]"
53
+ exit 0
54
+ ;;
55
+ *)
56
+ log_fail "Unknown argument: $1"
57
+ exit 1
58
+ ;;
59
+ esac
60
+ done
61
+
62
+ if [[ ! -d "$APP_ROOT" ]]; then
63
+ log_fail "App root not found: $APP_ROOT"
64
+ exit 1
65
+ fi
66
+
67
+ FAILURES=0
68
+
69
+ # ──────────────────────────────────────────────────────────────────────────────
70
+ check_required_files() {
71
+ log_section "Group 1: Required App Repo Files"
72
+
73
+ local checks_passed=0
74
+ local checks_failed=0
75
+
76
+ # 1a. service-architecture.md
77
+ local service_arch=""
78
+ if [[ -f "$APP_ROOT/docs/service-architecture.md" ]]; then
79
+ service_arch="$APP_ROOT/docs/service-architecture.md"
80
+ elif [[ -f "$APP_ROOT/service-architecture.md" ]]; then
81
+ service_arch="$APP_ROOT/service-architecture.md"
82
+ fi
83
+
84
+ if [[ -z "$service_arch" ]]; then
85
+ log_fail "service-architecture.md not found (checked docs/service-architecture.md and service-architecture.md)"
86
+ checks_failed=$((checks_failed + 1))
87
+ else
88
+ log_pass "service-architecture.md found: ${service_arch#$APP_ROOT/}"
89
+ checks_passed=$((checks_passed + 1))
90
+ fi
91
+
92
+ # 1b. feature-tree.md
93
+ local feature_tree=""
94
+ if [[ -f "$APP_ROOT/docs/platform/feature-tree.md" ]]; then
95
+ feature_tree="$APP_ROOT/docs/platform/feature-tree.md"
96
+ elif [[ -f "$APP_ROOT/docs/feature-tree.md" ]]; then
97
+ feature_tree="$APP_ROOT/docs/feature-tree.md"
98
+ elif [[ -f "$APP_ROOT/feature-tree.md" ]]; then
99
+ feature_tree="$APP_ROOT/feature-tree.md"
100
+ fi
101
+
102
+ if [[ -z "$feature_tree" ]]; then
103
+ log_warn "feature-tree.md not found (checked docs/platform/, docs/, and repo root) — create when features are classified"
104
+ # warn only; not a hard fail at exploration stage
105
+ else
106
+ log_pass "feature-tree.md found: ${feature_tree#$APP_ROOT/}"
107
+ checks_passed=$((checks_passed + 1))
108
+ fi
109
+
110
+ # 1c. app-platform-dependencies.yaml
111
+ if [[ -f "$APP_ROOT/app-platform-dependencies.yaml" ]]; then
112
+ log_pass "app-platform-dependencies.yaml found"
113
+ checks_passed=$((checks_passed + 1))
114
+ else
115
+ log_fail "app-platform-dependencies.yaml not found in repo root"
116
+ checks_failed=$((checks_failed + 1))
117
+ fi
118
+
119
+ if [[ "$checks_failed" -gt 0 ]]; then
120
+ FAILURES=$((FAILURES + checks_failed))
121
+ fi
122
+
123
+ log_info "Group 1: $checks_passed passed, $checks_failed failed"
124
+ }
125
+
126
+ # ──────────────────────────────────────────────────────────────────────────────
127
+ check_feature_specs() {
128
+ log_section "Group 2: Feature Spec Section Validation"
129
+
130
+ local required_sections=("## Overview" "## Acceptance Criteria" "## Platform Contract Dependencies")
131
+ local specs_found=0
132
+ local specs_failed=0
133
+ local specs_passed=0
134
+
135
+ # Discover feature specs under features/*/
136
+ local feature_spec
137
+ while IFS= read -r feature_spec; do
138
+ specs_found=$((specs_found + 1))
139
+ local rel="${feature_spec#$APP_ROOT/}"
140
+ local file_failures=0
141
+
142
+ for section in "${required_sections[@]}"; do
143
+ if ! grep -q "^${section}" "$feature_spec" 2>/dev/null; then
144
+ log_fail "$rel: missing required section '$section'"
145
+ file_failures=$((file_failures + 1))
146
+ fi
147
+ done
148
+
149
+ if [[ "$file_failures" -eq 0 ]]; then
150
+ log_pass "$rel: all required sections present"
151
+ specs_passed=$((specs_passed + 1))
152
+ else
153
+ specs_failed=$((specs_failed + 1))
154
+ FAILURES=$((FAILURES + file_failures))
155
+ fi
156
+ done < <(find "$APP_ROOT/features" -type f -name "*.md" 2>/dev/null | sort)
157
+
158
+ if [[ "$specs_found" -eq 0 ]]; then
159
+ log_info "No feature specs found under features/ — skipping section validation"
160
+ return 0
161
+ fi
162
+
163
+ log_info "Group 2: $specs_passed/$specs_found feature specs passed, $specs_failed failed"
164
+ }
165
+
166
+ # ──────────────────────────────────────────────────────────────────────────────
167
+ main() {
168
+ log_section "App Documentation Validation"
169
+ log_info "App root: $APP_ROOT"
170
+
171
+ check_required_files
172
+ check_feature_specs
173
+
174
+ log_section "Summary"
175
+
176
+ if [[ "$FAILURES" -eq 0 ]]; then
177
+ log_pass "All app documentation checks passed."
178
+ exit 0
179
+ else
180
+ log_fail "$FAILURES check(s) failed."
181
+ exit 1
182
+ fi
183
+ }
184
+
185
+ main "$@"
@@ -0,0 +1,222 @@
1
+ #!/bin/bash
2
+ #
3
+ # validate-integration-docs.sh - Validate integration repo documentation structure
4
+ #
5
+ # Usage: ./validate-integration-docs.sh [--repo-root <path>]
6
+
7
+ set -euo pipefail
8
+
9
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10
+ ROOT_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)"
11
+ REPO_ROOT="$ROOT_DIR"
12
+ EXPECTED_REPO_KIND="integration-product"
13
+
14
+ RED='\033[0;31m'
15
+ GREEN='\033[0;32m'
16
+ YELLOW='\033[1;33m'
17
+ BLUE='\033[0;34m'
18
+ NC='\033[0m'
19
+
20
+ log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
21
+ log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
22
+ log_fail() { echo -e "${RED}[FAIL]${NC} $1"; }
23
+ log_pass() { echo -e "${GREEN}[PASS]${NC} $1"; }
24
+ log_section() {
25
+ echo -e "\n${BLUE}═══════════════════════════════════════════════════════════${NC}"
26
+ echo -e "${BLUE} $1${NC}"
27
+ echo -e "${BLUE}═══════════════════════════════════════════════════════════${NC}\n"
28
+ }
29
+
30
+ while [[ $# -gt 0 ]]; do
31
+ case "$1" in
32
+ --repo-root)
33
+ REPO_ROOT="${2:-}"
34
+ shift 2
35
+ ;;
36
+ -h|--help)
37
+ echo "Usage: $(basename "$0") [--repo-root <path>]"
38
+ exit 0
39
+ ;;
40
+ *)
41
+ log_fail "Unknown argument: $1"
42
+ exit 1
43
+ ;;
44
+ esac
45
+ done
46
+
47
+ if [[ ! -d "$REPO_ROOT" ]]; then
48
+ log_fail "Repo root not found: $REPO_ROOT"
49
+ exit 1
50
+ fi
51
+
52
+ command -v yq >/dev/null 2>&1 || {
53
+ log_fail "yq is required. Install it before running $(basename "$0")."
54
+ exit 1
55
+ }
56
+
57
+ FAILURES=0
58
+
59
+ check_repo_kind() {
60
+ log_section "Group 1: Repo Kind"
61
+
62
+ local marker="$REPO_ROOT/.sdd-repo-kind"
63
+ if [[ ! -f "$marker" ]]; then
64
+ log_fail ".sdd-repo-kind not found"
65
+ FAILURES=$((FAILURES + 1))
66
+ return
67
+ fi
68
+
69
+ local value
70
+ value="$(tr -d '[:space:]' < "$marker")"
71
+ if [[ "$value" != "$EXPECTED_REPO_KIND" ]]; then
72
+ log_fail "Expected repo kind '$EXPECTED_REPO_KIND', found '$value'"
73
+ FAILURES=$((FAILURES + 1))
74
+ else
75
+ log_pass "Repo kind marker present: $value"
76
+ fi
77
+ }
78
+
79
+ check_required_files() {
80
+ log_section "Group 2: Required Files"
81
+
82
+ local files=(
83
+ "integration-manifest.yaml"
84
+ "docs/service-architecture.md"
85
+ "docs/method/methods/feature-grounding-integration-template.md"
86
+ "docs/method/methods/integration-delivery-workflow-guide.md"
87
+ "docs/method/methods/integration-service-architecture-template.md"
88
+ )
89
+ local rel
90
+
91
+ for rel in "${files[@]}"; do
92
+ if [[ -f "$REPO_ROOT/$rel" ]]; then
93
+ log_pass "$rel found"
94
+ else
95
+ log_fail "$rel missing"
96
+ FAILURES=$((FAILURES + 1))
97
+ fi
98
+ done
99
+ }
100
+
101
+ check_manifest() {
102
+ log_section "Group 3: Manifest Structure"
103
+
104
+ local manifest="$REPO_ROOT/integration-manifest.yaml"
105
+ if [[ ! -f "$manifest" ]]; then
106
+ log_fail "integration-manifest.yaml missing; cannot validate structure"
107
+ FAILURES=$((FAILURES + 1))
108
+ return
109
+ fi
110
+
111
+ local required_scalars=("integrationId" "providerName" "version" "profileType" "sdkVersion" "publishedBy" "bindingModel")
112
+ local field value
113
+ for field in "${required_scalars[@]}"; do
114
+ value="$(yq e ".${field} // \"\"" "$manifest")"
115
+ if [[ -z "$value" || "$value" == "null" || "$value" == "TBD" ]]; then
116
+ log_fail "integration-manifest.yaml: '$field' missing or placeholder"
117
+ FAILURES=$((FAILURES + 1))
118
+ else
119
+ log_pass "integration-manifest.yaml: '$field' set"
120
+ fi
121
+ done
122
+
123
+ local inbound outbound asset_count profile
124
+ inbound="$(yq e '.capabilityFlags.inbound' "$manifest")"
125
+ outbound="$(yq e '.capabilityFlags.outbound' "$manifest")"
126
+ profile="$(yq e '.profileType // ""' "$manifest")"
127
+ asset_count="$(yq e '.supportedAssetTypes | length' "$manifest" 2>/dev/null || echo 0)"
128
+
129
+ if [[ "$inbound" != "true" && "$inbound" != "false" ]]; then
130
+ log_fail "integration-manifest.yaml: capabilityFlags.inbound must be true or false"
131
+ FAILURES=$((FAILURES + 1))
132
+ else
133
+ log_pass "integration-manifest.yaml: capabilityFlags.inbound set"
134
+ fi
135
+
136
+ if [[ "$outbound" != "true" && "$outbound" != "false" ]]; then
137
+ log_fail "integration-manifest.yaml: capabilityFlags.outbound must be true or false"
138
+ FAILURES=$((FAILURES + 1))
139
+ else
140
+ log_pass "integration-manifest.yaml: capabilityFlags.outbound set"
141
+ fi
142
+
143
+ if [[ "$asset_count" -lt 1 ]]; then
144
+ log_fail "integration-manifest.yaml: supportedAssetTypes must contain at least one value"
145
+ FAILURES=$((FAILURES + 1))
146
+ else
147
+ log_pass "integration-manifest.yaml: supportedAssetTypes populated"
148
+ fi
149
+
150
+ case "$profile" in
151
+ workflow|financial-services|data-hub|data-feed)
152
+ if [[ "$outbound" != "false" ]]; then
153
+ log_fail "integration-manifest.yaml: profileType '$profile' should default outbound capability to false"
154
+ FAILURES=$((FAILURES + 1))
155
+ else
156
+ log_pass "integration-manifest.yaml: inbound-only profile directionality is coherent"
157
+ fi
158
+ ;;
159
+ *)
160
+ ;;
161
+ esac
162
+ }
163
+
164
+ check_grounding_doc() {
165
+ log_section "Group 4: Grounding Evidence"
166
+
167
+ local grounding="$REPO_ROOT/docs/design/integration/feature-grounding.md"
168
+ if [[ ! -f "$grounding" ]]; then
169
+ log_warn "docs/design/integration/feature-grounding.md not found — create before lock-in"
170
+ return
171
+ fi
172
+
173
+ local manifest="$REPO_ROOT/integration-manifest.yaml"
174
+ local outbound
175
+ outbound="$(yq e '.capabilityFlags.outbound' "$manifest" 2>/dev/null || echo "")"
176
+
177
+ local sections=("## Overview" "## Platform Contract Boundary" "## Provider-to-Canonical Field Mapping" "## Identity Resolution and Routing" "## Security and Secrets")
178
+ local section
179
+ local missing=0
180
+ for section in "${sections[@]}"; do
181
+ if ! grep -q "^${section}" "$grounding"; then
182
+ log_fail "docs/design/integration/feature-grounding.md missing section '$section'"
183
+ FAILURES=$((FAILURES + 1))
184
+ missing=1
185
+ fi
186
+ done
187
+
188
+ if [[ "$missing" -eq 0 ]]; then
189
+ log_pass "docs/design/integration/feature-grounding.md contains required sections"
190
+ fi
191
+
192
+ if [[ "$outbound" == "true" ]]; then
193
+ if grep -q "^## Command Mapping" "$grounding"; then
194
+ log_pass "docs/design/integration/feature-grounding.md includes command mapping for bidirectional integration"
195
+ else
196
+ log_fail "docs/design/integration/feature-grounding.md missing section '## Command Mapping' for bidirectional integration"
197
+ FAILURES=$((FAILURES + 1))
198
+ fi
199
+ fi
200
+ }
201
+
202
+ main() {
203
+ log_section "Integration Documentation Validation"
204
+ log_info "Repo root: $REPO_ROOT"
205
+
206
+ check_repo_kind
207
+ check_required_files
208
+ check_manifest
209
+ check_grounding_doc
210
+
211
+ log_section "Summary"
212
+
213
+ if [[ "$FAILURES" -eq 0 ]]; then
214
+ log_pass "All integration documentation checks passed."
215
+ exit 0
216
+ fi
217
+
218
+ log_fail "$FAILURES check(s) failed."
219
+ exit 1
220
+ }
221
+
222
+ main "$@"