@libar-dev/architect 1.0.0-pre.3

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 (800) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/LICENSE +25 -0
  3. package/LICENSE-MCP +62 -0
  4. package/README.md +147 -0
  5. package/dist/api/arch-queries.d.ts +95 -0
  6. package/dist/api/arch-queries.d.ts.map +1 -0
  7. package/dist/api/arch-queries.js +310 -0
  8. package/dist/api/arch-queries.js.map +1 -0
  9. package/dist/api/context-assembler.d.ts +124 -0
  10. package/dist/api/context-assembler.d.ts.map +1 -0
  11. package/dist/api/context-assembler.js +472 -0
  12. package/dist/api/context-assembler.js.map +1 -0
  13. package/dist/api/context-formatter.d.ts +26 -0
  14. package/dist/api/context-formatter.d.ts.map +1 -0
  15. package/dist/api/context-formatter.js +183 -0
  16. package/dist/api/context-formatter.js.map +1 -0
  17. package/dist/api/coverage-analyzer.d.ts +38 -0
  18. package/dist/api/coverage-analyzer.d.ts.map +1 -0
  19. package/dist/api/coverage-analyzer.js +117 -0
  20. package/dist/api/coverage-analyzer.js.map +1 -0
  21. package/dist/api/fuzzy-match.d.ts +75 -0
  22. package/dist/api/fuzzy-match.d.ts.map +1 -0
  23. package/dist/api/fuzzy-match.js +150 -0
  24. package/dist/api/fuzzy-match.js.map +1 -0
  25. package/dist/api/handoff-generator.d.ts +45 -0
  26. package/dist/api/handoff-generator.d.ts.map +1 -0
  27. package/dist/api/handoff-generator.js +139 -0
  28. package/dist/api/handoff-generator.js.map +1 -0
  29. package/dist/api/index.d.ts +61 -0
  30. package/dist/api/index.d.ts.map +1 -0
  31. package/dist/api/index.js +54 -0
  32. package/dist/api/index.js.map +1 -0
  33. package/dist/api/pattern-helpers.d.ts +51 -0
  34. package/dist/api/pattern-helpers.d.ts.map +1 -0
  35. package/dist/api/pattern-helpers.js +84 -0
  36. package/dist/api/pattern-helpers.js.map +1 -0
  37. package/dist/api/process-state.d.ts +224 -0
  38. package/dist/api/process-state.d.ts.map +1 -0
  39. package/dist/api/process-state.js +308 -0
  40. package/dist/api/process-state.js.map +1 -0
  41. package/dist/api/rules-query.d.ts +60 -0
  42. package/dist/api/rules-query.d.ts.map +1 -0
  43. package/dist/api/rules-query.js +154 -0
  44. package/dist/api/rules-query.js.map +1 -0
  45. package/dist/api/scope-validator.d.ts +56 -0
  46. package/dist/api/scope-validator.d.ts.map +1 -0
  47. package/dist/api/scope-validator.js +293 -0
  48. package/dist/api/scope-validator.js.map +1 -0
  49. package/dist/api/stub-resolver.d.ts +117 -0
  50. package/dist/api/stub-resolver.d.ts.map +1 -0
  51. package/dist/api/stub-resolver.js +154 -0
  52. package/dist/api/stub-resolver.js.map +1 -0
  53. package/dist/api/summarize.d.ts +75 -0
  54. package/dist/api/summarize.d.ts.map +1 -0
  55. package/dist/api/summarize.js +97 -0
  56. package/dist/api/summarize.js.map +1 -0
  57. package/dist/api/types.d.ts +221 -0
  58. package/dist/api/types.d.ts.map +1 -0
  59. package/dist/api/types.js +57 -0
  60. package/dist/api/types.js.map +1 -0
  61. package/dist/cache/file-cache.d.ts +72 -0
  62. package/dist/cache/file-cache.d.ts.map +1 -0
  63. package/dist/cache/file-cache.js +80 -0
  64. package/dist/cache/file-cache.js.map +1 -0
  65. package/dist/cache/index.d.ts +5 -0
  66. package/dist/cache/index.d.ts.map +1 -0
  67. package/dist/cache/index.js +5 -0
  68. package/dist/cache/index.js.map +1 -0
  69. package/dist/cli/cli-schema.d.ts +83 -0
  70. package/dist/cli/cli-schema.d.ts.map +1 -0
  71. package/dist/cli/cli-schema.js +505 -0
  72. package/dist/cli/cli-schema.js.map +1 -0
  73. package/dist/cli/dataset-cache.d.ts +66 -0
  74. package/dist/cli/dataset-cache.d.ts.map +1 -0
  75. package/dist/cli/dataset-cache.js +179 -0
  76. package/dist/cli/dataset-cache.js.map +1 -0
  77. package/dist/cli/error-handler.d.ts +84 -0
  78. package/dist/cli/error-handler.d.ts.map +1 -0
  79. package/dist/cli/error-handler.js +197 -0
  80. package/dist/cli/error-handler.js.map +1 -0
  81. package/dist/cli/generate-docs.d.ts +30 -0
  82. package/dist/cli/generate-docs.d.ts.map +1 -0
  83. package/dist/cli/generate-docs.js +370 -0
  84. package/dist/cli/generate-docs.js.map +1 -0
  85. package/dist/cli/lint-patterns.d.ts +57 -0
  86. package/dist/cli/lint-patterns.d.ts.map +1 -0
  87. package/dist/cli/lint-patterns.js +257 -0
  88. package/dist/cli/lint-patterns.js.map +1 -0
  89. package/dist/cli/lint-process.d.ts +54 -0
  90. package/dist/cli/lint-process.d.ts.map +1 -0
  91. package/dist/cli/lint-process.js +319 -0
  92. package/dist/cli/lint-process.js.map +1 -0
  93. package/dist/cli/lint-steps.d.ts +32 -0
  94. package/dist/cli/lint-steps.d.ts.map +1 -0
  95. package/dist/cli/lint-steps.js +172 -0
  96. package/dist/cli/lint-steps.js.map +1 -0
  97. package/dist/cli/mcp-server.d.ts +22 -0
  98. package/dist/cli/mcp-server.d.ts.map +1 -0
  99. package/dist/cli/mcp-server.js +57 -0
  100. package/dist/cli/mcp-server.js.map +1 -0
  101. package/dist/cli/output-pipeline.d.ts +130 -0
  102. package/dist/cli/output-pipeline.d.ts.map +1 -0
  103. package/dist/cli/output-pipeline.js +234 -0
  104. package/dist/cli/output-pipeline.js.map +1 -0
  105. package/dist/cli/process-api.d.ts +37 -0
  106. package/dist/cli/process-api.d.ts.map +1 -0
  107. package/dist/cli/process-api.js +1550 -0
  108. package/dist/cli/process-api.js.map +1 -0
  109. package/dist/cli/repl.d.ts +38 -0
  110. package/dist/cli/repl.d.ts.map +1 -0
  111. package/dist/cli/repl.js +239 -0
  112. package/dist/cli/repl.js.map +1 -0
  113. package/dist/cli/validate-patterns.d.ts +115 -0
  114. package/dist/cli/validate-patterns.d.ts.map +1 -0
  115. package/dist/cli/validate-patterns.js +707 -0
  116. package/dist/cli/validate-patterns.js.map +1 -0
  117. package/dist/cli/version.d.ts +35 -0
  118. package/dist/cli/version.d.ts.map +1 -0
  119. package/dist/cli/version.js +64 -0
  120. package/dist/cli/version.js.map +1 -0
  121. package/dist/config/config-loader.d.ts +167 -0
  122. package/dist/config/config-loader.d.ts.map +1 -0
  123. package/dist/config/config-loader.js +294 -0
  124. package/dist/config/config-loader.js.map +1 -0
  125. package/dist/config/defaults.d.ts +92 -0
  126. package/dist/config/defaults.d.ts.map +1 -0
  127. package/dist/config/defaults.js +103 -0
  128. package/dist/config/defaults.js.map +1 -0
  129. package/dist/config/define-config.d.ts +37 -0
  130. package/dist/config/define-config.d.ts.map +1 -0
  131. package/dist/config/define-config.js +38 -0
  132. package/dist/config/define-config.js.map +1 -0
  133. package/dist/config/factory.d.ts +79 -0
  134. package/dist/config/factory.d.ts.map +1 -0
  135. package/dist/config/factory.js +116 -0
  136. package/dist/config/factory.js.map +1 -0
  137. package/dist/config/index.d.ts +45 -0
  138. package/dist/config/index.d.ts.map +1 -0
  139. package/dist/config/index.js +48 -0
  140. package/dist/config/index.js.map +1 -0
  141. package/dist/config/merge-sources.d.ts +47 -0
  142. package/dist/config/merge-sources.d.ts.map +1 -0
  143. package/dist/config/merge-sources.js +61 -0
  144. package/dist/config/merge-sources.js.map +1 -0
  145. package/dist/config/presets.d.ts +115 -0
  146. package/dist/config/presets.d.ts.map +1 -0
  147. package/dist/config/presets.js +119 -0
  148. package/dist/config/presets.js.map +1 -0
  149. package/dist/config/project-config-schema.d.ts +192 -0
  150. package/dist/config/project-config-schema.d.ts.map +1 -0
  151. package/dist/config/project-config-schema.js +231 -0
  152. package/dist/config/project-config-schema.js.map +1 -0
  153. package/dist/config/project-config.d.ts +229 -0
  154. package/dist/config/project-config.d.ts.map +1 -0
  155. package/dist/config/project-config.js +37 -0
  156. package/dist/config/project-config.js.map +1 -0
  157. package/dist/config/regex-builders.d.ts +49 -0
  158. package/dist/config/regex-builders.d.ts.map +1 -0
  159. package/dist/config/regex-builders.js +85 -0
  160. package/dist/config/regex-builders.js.map +1 -0
  161. package/dist/config/resolve-config.d.ts +65 -0
  162. package/dist/config/resolve-config.d.ts.map +1 -0
  163. package/dist/config/resolve-config.js +150 -0
  164. package/dist/config/resolve-config.js.map +1 -0
  165. package/dist/config/types.d.ts +81 -0
  166. package/dist/config/types.d.ts.map +1 -0
  167. package/dist/config/types.js +22 -0
  168. package/dist/config/types.js.map +1 -0
  169. package/dist/config/workflow-loader.d.ts +90 -0
  170. package/dist/config/workflow-loader.d.ts.map +1 -0
  171. package/dist/config/workflow-loader.js +167 -0
  172. package/dist/config/workflow-loader.js.map +1 -0
  173. package/dist/extractor/doc-extractor.d.ts +233 -0
  174. package/dist/extractor/doc-extractor.d.ts.map +1 -0
  175. package/dist/extractor/doc-extractor.js +481 -0
  176. package/dist/extractor/doc-extractor.js.map +1 -0
  177. package/dist/extractor/dual-source-extractor.d.ts +161 -0
  178. package/dist/extractor/dual-source-extractor.d.ts.map +1 -0
  179. package/dist/extractor/dual-source-extractor.js +407 -0
  180. package/dist/extractor/dual-source-extractor.js.map +1 -0
  181. package/dist/extractor/gherkin-extractor.d.ts +170 -0
  182. package/dist/extractor/gherkin-extractor.d.ts.map +1 -0
  183. package/dist/extractor/gherkin-extractor.js +543 -0
  184. package/dist/extractor/gherkin-extractor.js.map +1 -0
  185. package/dist/extractor/index.d.ts +7 -0
  186. package/dist/extractor/index.d.ts.map +1 -0
  187. package/dist/extractor/index.js +11 -0
  188. package/dist/extractor/index.js.map +1 -0
  189. package/dist/extractor/layer-inference.d.ts +66 -0
  190. package/dist/extractor/layer-inference.d.ts.map +1 -0
  191. package/dist/extractor/layer-inference.js +93 -0
  192. package/dist/extractor/layer-inference.js.map +1 -0
  193. package/dist/extractor/shape-extractor.d.ts +79 -0
  194. package/dist/extractor/shape-extractor.d.ts.map +1 -0
  195. package/dist/extractor/shape-extractor.js +966 -0
  196. package/dist/extractor/shape-extractor.js.map +1 -0
  197. package/dist/generators/built-in/cli-recipe-generator.d.ts +30 -0
  198. package/dist/generators/built-in/cli-recipe-generator.d.ts.map +1 -0
  199. package/dist/generators/built-in/cli-recipe-generator.js +155 -0
  200. package/dist/generators/built-in/cli-recipe-generator.js.map +1 -0
  201. package/dist/generators/built-in/codec-generators.d.ts +29 -0
  202. package/dist/generators/built-in/codec-generators.d.ts.map +1 -0
  203. package/dist/generators/built-in/codec-generators.js +195 -0
  204. package/dist/generators/built-in/codec-generators.js.map +1 -0
  205. package/dist/generators/built-in/decision-doc-generator.d.ts +204 -0
  206. package/dist/generators/built-in/decision-doc-generator.d.ts.map +1 -0
  207. package/dist/generators/built-in/decision-doc-generator.js +654 -0
  208. package/dist/generators/built-in/decision-doc-generator.js.map +1 -0
  209. package/dist/generators/built-in/design-review-generator.d.ts +26 -0
  210. package/dist/generators/built-in/design-review-generator.d.ts.map +1 -0
  211. package/dist/generators/built-in/design-review-generator.js +94 -0
  212. package/dist/generators/built-in/design-review-generator.js.map +1 -0
  213. package/dist/generators/built-in/index.d.ts +22 -0
  214. package/dist/generators/built-in/index.d.ts.map +1 -0
  215. package/dist/generators/built-in/index.js +23 -0
  216. package/dist/generators/built-in/index.js.map +1 -0
  217. package/dist/generators/built-in/process-api-reference-generator.d.ts +18 -0
  218. package/dist/generators/built-in/process-api-reference-generator.d.ts.map +1 -0
  219. package/dist/generators/built-in/process-api-reference-generator.js +85 -0
  220. package/dist/generators/built-in/process-api-reference-generator.js.map +1 -0
  221. package/dist/generators/built-in/reference-generators.d.ts +51 -0
  222. package/dist/generators/built-in/reference-generators.d.ts.map +1 -0
  223. package/dist/generators/built-in/reference-generators.js +320 -0
  224. package/dist/generators/built-in/reference-generators.js.map +1 -0
  225. package/dist/generators/codec-based.d.ts +63 -0
  226. package/dist/generators/codec-based.d.ts.map +1 -0
  227. package/dist/generators/codec-based.js +88 -0
  228. package/dist/generators/codec-based.js.map +1 -0
  229. package/dist/generators/content-deduplicator.d.ts +114 -0
  230. package/dist/generators/content-deduplicator.d.ts.map +1 -0
  231. package/dist/generators/content-deduplicator.js +356 -0
  232. package/dist/generators/content-deduplicator.js.map +1 -0
  233. package/dist/generators/index.d.ts +50 -0
  234. package/dist/generators/index.d.ts.map +1 -0
  235. package/dist/generators/index.js +54 -0
  236. package/dist/generators/index.js.map +1 -0
  237. package/dist/generators/orchestrator.d.ts +265 -0
  238. package/dist/generators/orchestrator.d.ts.map +1 -0
  239. package/dist/generators/orchestrator.js +570 -0
  240. package/dist/generators/orchestrator.js.map +1 -0
  241. package/dist/generators/pipeline/build-pipeline.d.ts +131 -0
  242. package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -0
  243. package/dist/generators/pipeline/build-pipeline.js +248 -0
  244. package/dist/generators/pipeline/build-pipeline.js.map +1 -0
  245. package/dist/generators/pipeline/context-inference.d.ts +55 -0
  246. package/dist/generators/pipeline/context-inference.d.ts.map +1 -0
  247. package/dist/generators/pipeline/context-inference.js +76 -0
  248. package/dist/generators/pipeline/context-inference.js.map +1 -0
  249. package/dist/generators/pipeline/index.d.ts +27 -0
  250. package/dist/generators/pipeline/index.d.ts.map +1 -0
  251. package/dist/generators/pipeline/index.js +34 -0
  252. package/dist/generators/pipeline/index.js.map +1 -0
  253. package/dist/generators/pipeline/merge-patterns.d.ts +33 -0
  254. package/dist/generators/pipeline/merge-patterns.d.ts.map +1 -0
  255. package/dist/generators/pipeline/merge-patterns.js +50 -0
  256. package/dist/generators/pipeline/merge-patterns.js.map +1 -0
  257. package/dist/generators/pipeline/relationship-resolver.d.ts +47 -0
  258. package/dist/generators/pipeline/relationship-resolver.d.ts.map +1 -0
  259. package/dist/generators/pipeline/relationship-resolver.js +132 -0
  260. package/dist/generators/pipeline/relationship-resolver.js.map +1 -0
  261. package/dist/generators/pipeline/sequence-utils.d.ts +49 -0
  262. package/dist/generators/pipeline/sequence-utils.d.ts.map +1 -0
  263. package/dist/generators/pipeline/sequence-utils.js +235 -0
  264. package/dist/generators/pipeline/sequence-utils.js.map +1 -0
  265. package/dist/generators/pipeline/transform-dataset.d.ts +82 -0
  266. package/dist/generators/pipeline/transform-dataset.d.ts.map +1 -0
  267. package/dist/generators/pipeline/transform-dataset.js +355 -0
  268. package/dist/generators/pipeline/transform-dataset.js.map +1 -0
  269. package/dist/generators/pipeline/transform-types.d.ts +96 -0
  270. package/dist/generators/pipeline/transform-types.d.ts.map +1 -0
  271. package/dist/generators/pipeline/transform-types.js +18 -0
  272. package/dist/generators/pipeline/transform-types.js.map +1 -0
  273. package/dist/generators/registry.d.ts +64 -0
  274. package/dist/generators/registry.d.ts.map +1 -0
  275. package/dist/generators/registry.js +77 -0
  276. package/dist/generators/registry.js.map +1 -0
  277. package/dist/generators/source-mapper.d.ts +143 -0
  278. package/dist/generators/source-mapper.d.ts.map +1 -0
  279. package/dist/generators/source-mapper.js +602 -0
  280. package/dist/generators/source-mapper.js.map +1 -0
  281. package/dist/generators/source-mapping-validator.d.ts +118 -0
  282. package/dist/generators/source-mapping-validator.d.ts.map +1 -0
  283. package/dist/generators/source-mapping-validator.js +334 -0
  284. package/dist/generators/source-mapping-validator.js.map +1 -0
  285. package/dist/generators/types.d.ts +104 -0
  286. package/dist/generators/types.d.ts.map +1 -0
  287. package/dist/generators/types.js +5 -0
  288. package/dist/generators/types.js.map +1 -0
  289. package/dist/generators/warning-collector.d.ts +144 -0
  290. package/dist/generators/warning-collector.d.ts.map +1 -0
  291. package/dist/generators/warning-collector.js +166 -0
  292. package/dist/generators/warning-collector.js.map +1 -0
  293. package/dist/git/branch-diff.d.ts +44 -0
  294. package/dist/git/branch-diff.d.ts.map +1 -0
  295. package/dist/git/branch-diff.js +57 -0
  296. package/dist/git/branch-diff.js.map +1 -0
  297. package/dist/git/helpers.d.ts +46 -0
  298. package/dist/git/helpers.d.ts.map +1 -0
  299. package/dist/git/helpers.js +67 -0
  300. package/dist/git/helpers.js.map +1 -0
  301. package/dist/git/index.d.ts +18 -0
  302. package/dist/git/index.d.ts.map +1 -0
  303. package/dist/git/index.js +18 -0
  304. package/dist/git/index.js.map +1 -0
  305. package/dist/git/name-status.d.ts +32 -0
  306. package/dist/git/name-status.d.ts.map +1 -0
  307. package/dist/git/name-status.js +66 -0
  308. package/dist/git/name-status.js.map +1 -0
  309. package/dist/index.d.ts +107 -0
  310. package/dist/index.d.ts.map +1 -0
  311. package/dist/index.js +122 -0
  312. package/dist/index.js.map +1 -0
  313. package/dist/lint/engine.d.ts +113 -0
  314. package/dist/lint/engine.d.ts.map +1 -0
  315. package/dist/lint/engine.js +228 -0
  316. package/dist/lint/engine.js.map +1 -0
  317. package/dist/lint/index.d.ts +26 -0
  318. package/dist/lint/index.d.ts.map +1 -0
  319. package/dist/lint/index.js +24 -0
  320. package/dist/lint/index.js.map +1 -0
  321. package/dist/lint/process-guard/decider.d.ts +166 -0
  322. package/dist/lint/process-guard/decider.d.ts.map +1 -0
  323. package/dist/lint/process-guard/decider.js +412 -0
  324. package/dist/lint/process-guard/decider.js.map +1 -0
  325. package/dist/lint/process-guard/derive-state.d.ts +96 -0
  326. package/dist/lint/process-guard/derive-state.d.ts.map +1 -0
  327. package/dist/lint/process-guard/derive-state.js +368 -0
  328. package/dist/lint/process-guard/derive-state.js.map +1 -0
  329. package/dist/lint/process-guard/detect-changes.d.ts +109 -0
  330. package/dist/lint/process-guard/detect-changes.d.ts.map +1 -0
  331. package/dist/lint/process-guard/detect-changes.js +487 -0
  332. package/dist/lint/process-guard/detect-changes.js.map +1 -0
  333. package/dist/lint/process-guard/index.d.ts +35 -0
  334. package/dist/lint/process-guard/index.d.ts.map +1 -0
  335. package/dist/lint/process-guard/index.js +39 -0
  336. package/dist/lint/process-guard/index.js.map +1 -0
  337. package/dist/lint/process-guard/types.d.ts +255 -0
  338. package/dist/lint/process-guard/types.d.ts.map +1 -0
  339. package/dist/lint/process-guard/types.js +31 -0
  340. package/dist/lint/process-guard/types.js.map +1 -0
  341. package/dist/lint/rules.d.ts +147 -0
  342. package/dist/lint/rules.d.ts.map +1 -0
  343. package/dist/lint/rules.js +289 -0
  344. package/dist/lint/rules.js.map +1 -0
  345. package/dist/lint/steps/cross-checks.d.ts +66 -0
  346. package/dist/lint/steps/cross-checks.d.ts.map +1 -0
  347. package/dist/lint/steps/cross-checks.js +290 -0
  348. package/dist/lint/steps/cross-checks.js.map +1 -0
  349. package/dist/lint/steps/feature-checks.d.ts +78 -0
  350. package/dist/lint/steps/feature-checks.d.ts.map +1 -0
  351. package/dist/lint/steps/feature-checks.js +279 -0
  352. package/dist/lint/steps/feature-checks.js.map +1 -0
  353. package/dist/lint/steps/index.d.ts +22 -0
  354. package/dist/lint/steps/index.d.ts.map +1 -0
  355. package/dist/lint/steps/index.js +26 -0
  356. package/dist/lint/steps/index.js.map +1 -0
  357. package/dist/lint/steps/pair-resolver.d.ts +29 -0
  358. package/dist/lint/steps/pair-resolver.d.ts.map +1 -0
  359. package/dist/lint/steps/pair-resolver.js +76 -0
  360. package/dist/lint/steps/pair-resolver.js.map +1 -0
  361. package/dist/lint/steps/runner.d.ts +28 -0
  362. package/dist/lint/steps/runner.d.ts.map +1 -0
  363. package/dist/lint/steps/runner.js +143 -0
  364. package/dist/lint/steps/runner.js.map +1 -0
  365. package/dist/lint/steps/step-checks.d.ts +41 -0
  366. package/dist/lint/steps/step-checks.d.ts.map +1 -0
  367. package/dist/lint/steps/step-checks.js +164 -0
  368. package/dist/lint/steps/step-checks.js.map +1 -0
  369. package/dist/lint/steps/types.d.ts +95 -0
  370. package/dist/lint/steps/types.d.ts.map +1 -0
  371. package/dist/lint/steps/types.js +79 -0
  372. package/dist/lint/steps/types.js.map +1 -0
  373. package/dist/lint/steps/utils.d.ts +22 -0
  374. package/dist/lint/steps/utils.d.ts.map +1 -0
  375. package/dist/lint/steps/utils.js +57 -0
  376. package/dist/lint/steps/utils.js.map +1 -0
  377. package/dist/mcp/file-watcher.d.ts +24 -0
  378. package/dist/mcp/file-watcher.d.ts.map +1 -0
  379. package/dist/mcp/file-watcher.js +75 -0
  380. package/dist/mcp/file-watcher.js.map +1 -0
  381. package/dist/mcp/index.d.ts +19 -0
  382. package/dist/mcp/index.d.ts.map +1 -0
  383. package/dist/mcp/index.js +21 -0
  384. package/dist/mcp/index.js.map +1 -0
  385. package/dist/mcp/pipeline-session.d.ts +33 -0
  386. package/dist/mcp/pipeline-session.d.ts.map +1 -0
  387. package/dist/mcp/pipeline-session.js +149 -0
  388. package/dist/mcp/pipeline-session.js.map +1 -0
  389. package/dist/mcp/server.d.ts +28 -0
  390. package/dist/mcp/server.d.ts.map +1 -0
  391. package/dist/mcp/server.js +197 -0
  392. package/dist/mcp/server.js.map +1 -0
  393. package/dist/mcp/tool-registry.d.ts +4 -0
  394. package/dist/mcp/tool-registry.d.ts.map +1 -0
  395. package/dist/mcp/tool-registry.js +525 -0
  396. package/dist/mcp/tool-registry.js.map +1 -0
  397. package/dist/renderable/codecs/adr.d.ts +4730 -0
  398. package/dist/renderable/codecs/adr.d.ts.map +1 -0
  399. package/dist/renderable/codecs/adr.js +590 -0
  400. package/dist/renderable/codecs/adr.js.map +1 -0
  401. package/dist/renderable/codecs/architecture.d.ts +4760 -0
  402. package/dist/renderable/codecs/architecture.d.ts.map +1 -0
  403. package/dist/renderable/codecs/architecture.js +524 -0
  404. package/dist/renderable/codecs/architecture.js.map +1 -0
  405. package/dist/renderable/codecs/business-rules.d.ts +4777 -0
  406. package/dist/renderable/codecs/business-rules.d.ts.map +1 -0
  407. package/dist/renderable/codecs/business-rules.js +648 -0
  408. package/dist/renderable/codecs/business-rules.js.map +1 -0
  409. package/dist/renderable/codecs/claude-module.d.ts +4710 -0
  410. package/dist/renderable/codecs/claude-module.d.ts.map +1 -0
  411. package/dist/renderable/codecs/claude-module.js +214 -0
  412. package/dist/renderable/codecs/claude-module.js.map +1 -0
  413. package/dist/renderable/codecs/composite.d.ts +84 -0
  414. package/dist/renderable/codecs/composite.d.ts.map +1 -0
  415. package/dist/renderable/codecs/composite.js +124 -0
  416. package/dist/renderable/codecs/composite.js.map +1 -0
  417. package/dist/renderable/codecs/convention-extractor.d.ts +105 -0
  418. package/dist/renderable/codecs/convention-extractor.d.ts.map +1 -0
  419. package/dist/renderable/codecs/convention-extractor.js +353 -0
  420. package/dist/renderable/codecs/convention-extractor.js.map +1 -0
  421. package/dist/renderable/codecs/decision-doc.d.ts +308 -0
  422. package/dist/renderable/codecs/decision-doc.d.ts.map +1 -0
  423. package/dist/renderable/codecs/decision-doc.js +485 -0
  424. package/dist/renderable/codecs/decision-doc.js.map +1 -0
  425. package/dist/renderable/codecs/design-review.d.ts +55 -0
  426. package/dist/renderable/codecs/design-review.d.ts.map +1 -0
  427. package/dist/renderable/codecs/design-review.js +532 -0
  428. package/dist/renderable/codecs/design-review.js.map +1 -0
  429. package/dist/renderable/codecs/diagram-utils.d.ts +62 -0
  430. package/dist/renderable/codecs/diagram-utils.d.ts.map +1 -0
  431. package/dist/renderable/codecs/diagram-utils.js +70 -0
  432. package/dist/renderable/codecs/diagram-utils.js.map +1 -0
  433. package/dist/renderable/codecs/helpers.d.ts +553 -0
  434. package/dist/renderable/codecs/helpers.d.ts.map +1 -0
  435. package/dist/renderable/codecs/helpers.js +913 -0
  436. package/dist/renderable/codecs/helpers.js.map +1 -0
  437. package/dist/renderable/codecs/index-codec.d.ts +4714 -0
  438. package/dist/renderable/codecs/index-codec.d.ts.map +1 -0
  439. package/dist/renderable/codecs/index-codec.js +250 -0
  440. package/dist/renderable/codecs/index-codec.js.map +1 -0
  441. package/dist/renderable/codecs/index.d.ts +46 -0
  442. package/dist/renderable/codecs/index.d.ts.map +1 -0
  443. package/dist/renderable/codecs/index.js +70 -0
  444. package/dist/renderable/codecs/index.js.map +1 -0
  445. package/dist/renderable/codecs/patterns.d.ts +4757 -0
  446. package/dist/renderable/codecs/patterns.d.ts.map +1 -0
  447. package/dist/renderable/codecs/patterns.js +462 -0
  448. package/dist/renderable/codecs/patterns.js.map +1 -0
  449. package/dist/renderable/codecs/planning.d.ts +14055 -0
  450. package/dist/renderable/codecs/planning.d.ts.map +1 -0
  451. package/dist/renderable/codecs/planning.js +449 -0
  452. package/dist/renderable/codecs/planning.js.map +1 -0
  453. package/dist/renderable/codecs/pr-changes.d.ts +4742 -0
  454. package/dist/renderable/codecs/pr-changes.d.ts.map +1 -0
  455. package/dist/renderable/codecs/pr-changes.js +425 -0
  456. package/dist/renderable/codecs/pr-changes.js.map +1 -0
  457. package/dist/renderable/codecs/reference.d.ts +215 -0
  458. package/dist/renderable/codecs/reference.d.ts.map +1 -0
  459. package/dist/renderable/codecs/reference.js +1578 -0
  460. package/dist/renderable/codecs/reference.js.map +1 -0
  461. package/dist/renderable/codecs/reporting.d.ts +14026 -0
  462. package/dist/renderable/codecs/reporting.d.ts.map +1 -0
  463. package/dist/renderable/codecs/reporting.js +365 -0
  464. package/dist/renderable/codecs/reporting.js.map +1 -0
  465. package/dist/renderable/codecs/requirements.d.ts +4743 -0
  466. package/dist/renderable/codecs/requirements.d.ts.map +1 -0
  467. package/dist/renderable/codecs/requirements.js +428 -0
  468. package/dist/renderable/codecs/requirements.js.map +1 -0
  469. package/dist/renderable/codecs/session.d.ts +9410 -0
  470. package/dist/renderable/codecs/session.d.ts.map +1 -0
  471. package/dist/renderable/codecs/session.js +848 -0
  472. package/dist/renderable/codecs/session.js.map +1 -0
  473. package/dist/renderable/codecs/shape-matcher.d.ts +54 -0
  474. package/dist/renderable/codecs/shape-matcher.d.ts.map +1 -0
  475. package/dist/renderable/codecs/shape-matcher.js +106 -0
  476. package/dist/renderable/codecs/shape-matcher.js.map +1 -0
  477. package/dist/renderable/codecs/shared-schema.d.ts +44 -0
  478. package/dist/renderable/codecs/shared-schema.d.ts.map +1 -0
  479. package/dist/renderable/codecs/shared-schema.js +43 -0
  480. package/dist/renderable/codecs/shared-schema.js.map +1 -0
  481. package/dist/renderable/codecs/taxonomy.d.ts +4733 -0
  482. package/dist/renderable/codecs/taxonomy.d.ts.map +1 -0
  483. package/dist/renderable/codecs/taxonomy.js +570 -0
  484. package/dist/renderable/codecs/taxonomy.js.map +1 -0
  485. package/dist/renderable/codecs/timeline.d.ts +14094 -0
  486. package/dist/renderable/codecs/timeline.d.ts.map +1 -0
  487. package/dist/renderable/codecs/timeline.js +906 -0
  488. package/dist/renderable/codecs/timeline.js.map +1 -0
  489. package/dist/renderable/codecs/types/base.d.ts +81 -0
  490. package/dist/renderable/codecs/types/base.d.ts.map +1 -0
  491. package/dist/renderable/codecs/types/base.js +56 -0
  492. package/dist/renderable/codecs/types/base.js.map +1 -0
  493. package/dist/renderable/codecs/types/index.d.ts +5 -0
  494. package/dist/renderable/codecs/types/index.d.ts.map +1 -0
  495. package/dist/renderable/codecs/types/index.js +5 -0
  496. package/dist/renderable/codecs/types/index.js.map +1 -0
  497. package/dist/renderable/codecs/validation-rules.d.ts +4773 -0
  498. package/dist/renderable/codecs/validation-rules.d.ts.map +1 -0
  499. package/dist/renderable/codecs/validation-rules.js +537 -0
  500. package/dist/renderable/codecs/validation-rules.js.map +1 -0
  501. package/dist/renderable/generate.d.ts +338 -0
  502. package/dist/renderable/generate.d.ts.map +1 -0
  503. package/dist/renderable/generate.js +437 -0
  504. package/dist/renderable/generate.js.map +1 -0
  505. package/dist/renderable/index.d.ts +36 -0
  506. package/dist/renderable/index.d.ts.map +1 -0
  507. package/dist/renderable/index.js +58 -0
  508. package/dist/renderable/index.js.map +1 -0
  509. package/dist/renderable/load-preamble.d.ts +56 -0
  510. package/dist/renderable/load-preamble.d.ts.map +1 -0
  511. package/dist/renderable/load-preamble.js +298 -0
  512. package/dist/renderable/load-preamble.js.map +1 -0
  513. package/dist/renderable/render.d.ts +61 -0
  514. package/dist/renderable/render.d.ts.map +1 -0
  515. package/dist/renderable/render.js +346 -0
  516. package/dist/renderable/render.js.map +1 -0
  517. package/dist/renderable/schema.d.ts +194 -0
  518. package/dist/renderable/schema.d.ts.map +1 -0
  519. package/dist/renderable/schema.js +197 -0
  520. package/dist/renderable/schema.js.map +1 -0
  521. package/dist/renderable/utils.d.ts +146 -0
  522. package/dist/renderable/utils.d.ts.map +1 -0
  523. package/dist/renderable/utils.js +362 -0
  524. package/dist/renderable/utils.js.map +1 -0
  525. package/dist/scanner/ast-parser.d.ts +75 -0
  526. package/dist/scanner/ast-parser.d.ts.map +1 -0
  527. package/dist/scanner/ast-parser.js +835 -0
  528. package/dist/scanner/ast-parser.js.map +1 -0
  529. package/dist/scanner/gherkin-ast-parser.d.ts +166 -0
  530. package/dist/scanner/gherkin-ast-parser.d.ts.map +1 -0
  531. package/dist/scanner/gherkin-ast-parser.js +507 -0
  532. package/dist/scanner/gherkin-ast-parser.js.map +1 -0
  533. package/dist/scanner/gherkin-scanner.d.ts +106 -0
  534. package/dist/scanner/gherkin-scanner.d.ts.map +1 -0
  535. package/dist/scanner/gherkin-scanner.js +149 -0
  536. package/dist/scanner/gherkin-scanner.js.map +1 -0
  537. package/dist/scanner/index.d.ts +85 -0
  538. package/dist/scanner/index.d.ts.map +1 -0
  539. package/dist/scanner/index.js +102 -0
  540. package/dist/scanner/index.js.map +1 -0
  541. package/dist/scanner/pattern-scanner.d.ts +83 -0
  542. package/dist/scanner/pattern-scanner.d.ts.map +1 -0
  543. package/dist/scanner/pattern-scanner.js +110 -0
  544. package/dist/scanner/pattern-scanner.js.map +1 -0
  545. package/dist/taxonomy/categories.d.ts +47 -0
  546. package/dist/taxonomy/categories.d.ts.map +1 -0
  547. package/dist/taxonomy/categories.js +175 -0
  548. package/dist/taxonomy/categories.js.map +1 -0
  549. package/dist/taxonomy/claude-section-values.d.ts +12 -0
  550. package/dist/taxonomy/claude-section-values.d.ts.map +1 -0
  551. package/dist/taxonomy/claude-section-values.js +17 -0
  552. package/dist/taxonomy/claude-section-values.js.map +1 -0
  553. package/dist/taxonomy/conventions.d.ts +13 -0
  554. package/dist/taxonomy/conventions.d.ts.map +1 -0
  555. package/dist/taxonomy/conventions.js +27 -0
  556. package/dist/taxonomy/conventions.js.map +1 -0
  557. package/dist/taxonomy/deliverable-status.d.ts +99 -0
  558. package/dist/taxonomy/deliverable-status.d.ts.map +1 -0
  559. package/dist/taxonomy/deliverable-status.js +131 -0
  560. package/dist/taxonomy/deliverable-status.js.map +1 -0
  561. package/dist/taxonomy/format-types.d.ts +17 -0
  562. package/dist/taxonomy/format-types.d.ts.map +1 -0
  563. package/dist/taxonomy/format-types.js +23 -0
  564. package/dist/taxonomy/format-types.js.map +1 -0
  565. package/dist/taxonomy/generator-options.d.ts +67 -0
  566. package/dist/taxonomy/generator-options.d.ts.map +1 -0
  567. package/dist/taxonomy/generator-options.js +75 -0
  568. package/dist/taxonomy/generator-options.js.map +1 -0
  569. package/dist/taxonomy/hierarchy-levels.d.ts +23 -0
  570. package/dist/taxonomy/hierarchy-levels.d.ts.map +1 -0
  571. package/dist/taxonomy/hierarchy-levels.js +22 -0
  572. package/dist/taxonomy/hierarchy-levels.js.map +1 -0
  573. package/dist/taxonomy/index.d.ts +35 -0
  574. package/dist/taxonomy/index.d.ts.map +1 -0
  575. package/dist/taxonomy/index.js +56 -0
  576. package/dist/taxonomy/index.js.map +1 -0
  577. package/dist/taxonomy/layer-types.d.ts +22 -0
  578. package/dist/taxonomy/layer-types.d.ts.map +1 -0
  579. package/dist/taxonomy/layer-types.js +28 -0
  580. package/dist/taxonomy/layer-types.js.map +1 -0
  581. package/dist/taxonomy/normalized-status.d.ts +99 -0
  582. package/dist/taxonomy/normalized-status.d.ts.map +1 -0
  583. package/dist/taxonomy/normalized-status.js +113 -0
  584. package/dist/taxonomy/normalized-status.js.map +1 -0
  585. package/dist/taxonomy/registry-builder.d.ts +104 -0
  586. package/dist/taxonomy/registry-builder.d.ts.map +1 -0
  587. package/dist/taxonomy/registry-builder.js +561 -0
  588. package/dist/taxonomy/registry-builder.js.map +1 -0
  589. package/dist/taxonomy/risk-levels.d.ts +16 -0
  590. package/dist/taxonomy/risk-levels.d.ts.map +1 -0
  591. package/dist/taxonomy/risk-levels.js +15 -0
  592. package/dist/taxonomy/risk-levels.js.map +1 -0
  593. package/dist/taxonomy/severity-types.d.ts +6 -0
  594. package/dist/taxonomy/severity-types.d.ts.map +1 -0
  595. package/dist/taxonomy/severity-types.js +5 -0
  596. package/dist/taxonomy/severity-types.js.map +1 -0
  597. package/dist/taxonomy/status-values.d.ts +39 -0
  598. package/dist/taxonomy/status-values.d.ts.map +1 -0
  599. package/dist/taxonomy/status-values.js +42 -0
  600. package/dist/taxonomy/status-values.js.map +1 -0
  601. package/dist/types/branded.d.ts +89 -0
  602. package/dist/types/branded.d.ts.map +1 -0
  603. package/dist/types/branded.js +57 -0
  604. package/dist/types/branded.js.map +1 -0
  605. package/dist/types/errors.d.ts +342 -0
  606. package/dist/types/errors.d.ts.map +1 -0
  607. package/dist/types/errors.js +251 -0
  608. package/dist/types/errors.js.map +1 -0
  609. package/dist/types/index.d.ts +41 -0
  610. package/dist/types/index.d.ts.map +1 -0
  611. package/dist/types/index.js +5 -0
  612. package/dist/types/index.js.map +1 -0
  613. package/dist/types/result.d.ts +78 -0
  614. package/dist/types/result.d.ts.map +1 -0
  615. package/dist/types/result.js +78 -0
  616. package/dist/types/result.js.map +1 -0
  617. package/dist/utils/collection-utils.d.ts +49 -0
  618. package/dist/utils/collection-utils.d.ts.map +1 -0
  619. package/dist/utils/collection-utils.js +58 -0
  620. package/dist/utils/collection-utils.js.map +1 -0
  621. package/dist/utils/id-utils.d.ts +46 -0
  622. package/dist/utils/id-utils.d.ts.map +1 -0
  623. package/dist/utils/id-utils.js +51 -0
  624. package/dist/utils/id-utils.js.map +1 -0
  625. package/dist/utils/index.d.ts +21 -0
  626. package/dist/utils/index.d.ts.map +1 -0
  627. package/dist/utils/index.js +21 -0
  628. package/dist/utils/index.js.map +1 -0
  629. package/dist/utils/string-utils.d.ts +150 -0
  630. package/dist/utils/string-utils.d.ts.map +1 -0
  631. package/dist/utils/string-utils.js +281 -0
  632. package/dist/utils/string-utils.js.map +1 -0
  633. package/dist/validation/anti-patterns.d.ts +134 -0
  634. package/dist/validation/anti-patterns.d.ts.map +1 -0
  635. package/dist/validation/anti-patterns.js +307 -0
  636. package/dist/validation/anti-patterns.js.map +1 -0
  637. package/dist/validation/dod-validator.d.ts +94 -0
  638. package/dist/validation/dod-validator.d.ts.map +1 -0
  639. package/dist/validation/dod-validator.js +198 -0
  640. package/dist/validation/dod-validator.js.map +1 -0
  641. package/dist/validation/fsm/index.d.ts +59 -0
  642. package/dist/validation/fsm/index.d.ts.map +1 -0
  643. package/dist/validation/fsm/index.js +64 -0
  644. package/dist/validation/fsm/index.js.map +1 -0
  645. package/dist/validation/fsm/states.d.ts +93 -0
  646. package/dist/validation/fsm/states.d.ts.map +1 -0
  647. package/dist/validation/fsm/states.js +98 -0
  648. package/dist/validation/fsm/states.js.map +1 -0
  649. package/dist/validation/fsm/transitions.d.ts +100 -0
  650. package/dist/validation/fsm/transitions.d.ts.map +1 -0
  651. package/dist/validation/fsm/transitions.js +122 -0
  652. package/dist/validation/fsm/transitions.js.map +1 -0
  653. package/dist/validation/fsm/validator.d.ts +163 -0
  654. package/dist/validation/fsm/validator.d.ts.map +1 -0
  655. package/dist/validation/fsm/validator.js +205 -0
  656. package/dist/validation/fsm/validator.js.map +1 -0
  657. package/dist/validation/index.d.ts +23 -0
  658. package/dist/validation/index.d.ts.map +1 -0
  659. package/dist/validation/index.js +25 -0
  660. package/dist/validation/index.js.map +1 -0
  661. package/dist/validation/types.d.ts +136 -0
  662. package/dist/validation/types.d.ts.map +1 -0
  663. package/dist/validation/types.js +56 -0
  664. package/dist/validation/types.js.map +1 -0
  665. package/dist/validation-schemas/codec-utils.d.ts +188 -0
  666. package/dist/validation-schemas/codec-utils.d.ts.map +1 -0
  667. package/dist/validation-schemas/codec-utils.js +258 -0
  668. package/dist/validation-schemas/codec-utils.js.map +1 -0
  669. package/dist/validation-schemas/config.d.ts +99 -0
  670. package/dist/validation-schemas/config.d.ts.map +1 -0
  671. package/dist/validation-schemas/config.js +178 -0
  672. package/dist/validation-schemas/config.js.map +1 -0
  673. package/dist/validation-schemas/doc-directive.d.ts +195 -0
  674. package/dist/validation-schemas/doc-directive.d.ts.map +1 -0
  675. package/dist/validation-schemas/doc-directive.js +239 -0
  676. package/dist/validation-schemas/doc-directive.js.map +1 -0
  677. package/dist/validation-schemas/dual-source.d.ts +167 -0
  678. package/dist/validation-schemas/dual-source.d.ts.map +1 -0
  679. package/dist/validation-schemas/dual-source.js +168 -0
  680. package/dist/validation-schemas/dual-source.js.map +1 -0
  681. package/dist/validation-schemas/export-info.d.ts +53 -0
  682. package/dist/validation-schemas/export-info.d.ts.map +1 -0
  683. package/dist/validation-schemas/export-info.js +101 -0
  684. package/dist/validation-schemas/export-info.js.map +1 -0
  685. package/dist/validation-schemas/extracted-pattern.d.ts +351 -0
  686. package/dist/validation-schemas/extracted-pattern.d.ts.map +1 -0
  687. package/dist/validation-schemas/extracted-pattern.js +459 -0
  688. package/dist/validation-schemas/extracted-pattern.js.map +1 -0
  689. package/dist/validation-schemas/extracted-shape.d.ts +200 -0
  690. package/dist/validation-schemas/extracted-shape.d.ts.map +1 -0
  691. package/dist/validation-schemas/extracted-shape.js +182 -0
  692. package/dist/validation-schemas/extracted-shape.js.map +1 -0
  693. package/dist/validation-schemas/feature.d.ts +554 -0
  694. package/dist/validation-schemas/feature.d.ts.map +1 -0
  695. package/dist/validation-schemas/feature.js +262 -0
  696. package/dist/validation-schemas/feature.js.map +1 -0
  697. package/dist/validation-schemas/index.d.ts +15 -0
  698. package/dist/validation-schemas/index.d.ts.map +1 -0
  699. package/dist/validation-schemas/index.js +32 -0
  700. package/dist/validation-schemas/index.js.map +1 -0
  701. package/dist/validation-schemas/lint.d.ts +46 -0
  702. package/dist/validation-schemas/lint.d.ts.map +1 -0
  703. package/dist/validation-schemas/lint.js +45 -0
  704. package/dist/validation-schemas/lint.js.map +1 -0
  705. package/dist/validation-schemas/master-dataset.d.ts +8299 -0
  706. package/dist/validation-schemas/master-dataset.d.ts.map +1 -0
  707. package/dist/validation-schemas/master-dataset.js +275 -0
  708. package/dist/validation-schemas/master-dataset.js.map +1 -0
  709. package/dist/validation-schemas/output-schemas.d.ts +183 -0
  710. package/dist/validation-schemas/output-schemas.d.ts.map +1 -0
  711. package/dist/validation-schemas/output-schemas.js +149 -0
  712. package/dist/validation-schemas/output-schemas.js.map +1 -0
  713. package/dist/validation-schemas/scenario-ref.d.ts +80 -0
  714. package/dist/validation-schemas/scenario-ref.d.ts.map +1 -0
  715. package/dist/validation-schemas/scenario-ref.js +73 -0
  716. package/dist/validation-schemas/scenario-ref.js.map +1 -0
  717. package/dist/validation-schemas/tag-registry.d.ts +210 -0
  718. package/dist/validation-schemas/tag-registry.d.ts.map +1 -0
  719. package/dist/validation-schemas/tag-registry.js +248 -0
  720. package/dist/validation-schemas/tag-registry.js.map +1 -0
  721. package/dist/validation-schemas/workflow-config.d.ts +125 -0
  722. package/dist/validation-schemas/workflow-config.d.ts.map +1 -0
  723. package/dist/validation-schemas/workflow-config.js +138 -0
  724. package/dist/validation-schemas/workflow-config.js.map +1 -0
  725. package/docs/ANNOTATION-GUIDE.md +271 -0
  726. package/docs/ARCHITECTURE.md +1636 -0
  727. package/docs/CONFIGURATION.md +337 -0
  728. package/docs/DOCS-GAP-ANALYSIS.md +811 -0
  729. package/docs/GHERKIN-PATTERNS.md +366 -0
  730. package/docs/INDEX.md +345 -0
  731. package/docs/MCP-SETUP.md +140 -0
  732. package/docs/METHODOLOGY.md +240 -0
  733. package/docs/PROCESS-API.md +65 -0
  734. package/docs/PROCESS-GUARD.md +341 -0
  735. package/docs/SESSION-GUIDES.md +391 -0
  736. package/docs/TAXONOMY.md +106 -0
  737. package/docs/VALIDATION.md +418 -0
  738. package/docs-live/ARCHITECTURE.md +362 -0
  739. package/docs-live/BUSINESS-RULES.md +24 -0
  740. package/docs-live/CHANGELOG-GENERATED.md +375 -0
  741. package/docs-live/DECISIONS.md +78 -0
  742. package/docs-live/INDEX.md +231 -0
  743. package/docs-live/PRODUCT-AREAS.md +255 -0
  744. package/docs-live/TAXONOMY.md +202 -0
  745. package/docs-live/VALIDATION-RULES.md +119 -0
  746. package/docs-live/_claude-md/annotation/annotation-overview.md +26 -0
  747. package/docs-live/_claude-md/annotation/annotation-reference.md +213 -0
  748. package/docs-live/_claude-md/architecture/architecture-codecs.md +160 -0
  749. package/docs-live/_claude-md/architecture/architecture-types.md +32 -0
  750. package/docs-live/_claude-md/architecture/reference-sample.md +162 -0
  751. package/docs-live/_claude-md/authoring/gherkin-authoring-guide.md +245 -0
  752. package/docs-live/_claude-md/configuration/configuration-guide.md +216 -0
  753. package/docs-live/_claude-md/configuration/configuration-overview.md +37 -0
  754. package/docs-live/_claude-md/core-types/core-types-overview.md +20 -0
  755. package/docs-live/_claude-md/data-api/data-api-overview.md +39 -0
  756. package/docs-live/_claude-md/generation/generation-overview.md +30 -0
  757. package/docs-live/_claude-md/process/process-overview.md +127 -0
  758. package/docs-live/_claude-md/validation/process-guard.md +185 -0
  759. package/docs-live/_claude-md/validation/validation-overview.md +37 -0
  760. package/docs-live/_claude-md/validation/validation-tools-guide.md +242 -0
  761. package/docs-live/_claude-md/workflow/session-workflow-guide.md +141 -0
  762. package/docs-live/business-rules/annotation.md +1462 -0
  763. package/docs-live/business-rules/configuration.md +465 -0
  764. package/docs-live/business-rules/core-types.md +531 -0
  765. package/docs-live/business-rules/data-api.md +1403 -0
  766. package/docs-live/business-rules/generation.md +4726 -0
  767. package/docs-live/business-rules/process.md +122 -0
  768. package/docs-live/business-rules/validation.md +998 -0
  769. package/docs-live/decisions/adr-001-taxonomy-canonical-values.md +197 -0
  770. package/docs-live/decisions/adr-002-gherkin-only-testing.md +57 -0
  771. package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +147 -0
  772. package/docs-live/decisions/adr-004-session-workflow-commands.md +137 -0
  773. package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +150 -0
  774. package/docs-live/decisions/adr-006-single-read-model-architecture.md +136 -0
  775. package/docs-live/decisions/adr-021-doc-generation-proof-of-concept.md +489 -0
  776. package/docs-live/product-areas/ANNOTATION.md +591 -0
  777. package/docs-live/product-areas/CONFIGURATION.md +1048 -0
  778. package/docs-live/product-areas/CORE-TYPES.md +221 -0
  779. package/docs-live/product-areas/DATA-API.md +850 -0
  780. package/docs-live/product-areas/GENERATION.md +1200 -0
  781. package/docs-live/product-areas/PROCESS.md +351 -0
  782. package/docs-live/product-areas/VALIDATION.md +1135 -0
  783. package/docs-live/reference/ANNOTATION-REFERENCE.md +232 -0
  784. package/docs-live/reference/ARCHITECTURE-CODECS.md +675 -0
  785. package/docs-live/reference/ARCHITECTURE-TYPES.md +436 -0
  786. package/docs-live/reference/CONFIGURATION-GUIDE.md +235 -0
  787. package/docs-live/reference/GHERKIN-AUTHORING-GUIDE.md +270 -0
  788. package/docs-live/reference/PROCESS-API-RECIPES.md +476 -0
  789. package/docs-live/reference/PROCESS-API-REFERENCE.md +63 -0
  790. package/docs-live/reference/PROCESS-GUARD-REFERENCE.md +258 -0
  791. package/docs-live/reference/REFERENCE-SAMPLE.md +1135 -0
  792. package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +384 -0
  793. package/docs-live/reference/VALIDATION-TOOLS-GUIDE.md +263 -0
  794. package/docs-live/taxonomy/categories.md +33 -0
  795. package/docs-live/taxonomy/format-types.md +67 -0
  796. package/docs-live/taxonomy/metadata-tags.md +693 -0
  797. package/docs-live/validation/error-catalog.md +78 -0
  798. package/docs-live/validation/fsm-transitions.md +50 -0
  799. package/docs-live/validation/protection-levels.md +51 -0
  800. package/package.json +233 -0
@@ -0,0 +1,293 @@
1
+ /**
2
+ * @architect
3
+ * @architect-pattern ScopeValidatorImpl
4
+ * @architect-status completed
5
+ * @architect-implements DataAPIDesignSessionSupport
6
+ * @architect-uses ProcessStateAPI, MasterDataset, StubResolverImpl
7
+ * @architect-used-by ProcessAPICLIImpl
8
+ * @architect-target src/api/scope-validator.ts
9
+ * @architect-arch-role service
10
+ * @architect-arch-context api
11
+ * @architect-arch-layer application
12
+ *
13
+ * ## ScopeValidator — Pre-flight Session Readiness Checker
14
+ *
15
+ * Pure function composition over ProcessStateAPI and MasterDataset.
16
+ * Runs a checklist of prerequisite validations before starting a
17
+ * design or implementation session.
18
+ *
19
+ * **When to Use:** When running pre-flight checks before a session via the `scope-validate` CLI subcommand.
20
+ */
21
+ import { QueryApiError } from './types.js';
22
+ import { getPatternName, findPatternByName, firstImplements } from './pattern-helpers.js';
23
+ import { findStubPatterns, resolveStubs, extractDecisionItems } from './stub-resolver.js';
24
+ import { VALID_PROCESS_STATUS_SET } from '../taxonomy/index.js';
25
+ import { isPatternComplete } from '../taxonomy/normalized-status.js';
26
+ // ---------------------------------------------------------------------------
27
+ // Valid statuses for FSM transition checks
28
+ // ---------------------------------------------------------------------------
29
+ const VALID_STATUSES = VALID_PROCESS_STATUS_SET;
30
+ // ---------------------------------------------------------------------------
31
+ // Main Entry Point
32
+ // ---------------------------------------------------------------------------
33
+ export function validateScope(api, dataset, options) {
34
+ const { patternName, scopeType, baseDir, strict } = options;
35
+ const pattern = api.getPattern(patternName);
36
+ if (pattern === undefined) {
37
+ throw new QueryApiError('PATTERN_NOT_FOUND', `Pattern not found: "${patternName}"`);
38
+ }
39
+ const rawChecks = [];
40
+ if (scopeType === 'implement') {
41
+ rawChecks.push(checkDependenciesCompleted(api, patternName));
42
+ rawChecks.push(checkDeliverablesDefined(api, patternName));
43
+ rawChecks.push(checkFsmAllowsTransition(api, patternName));
44
+ rawChecks.push(checkDesignDecisionsRecorded(dataset, patternName));
45
+ rawChecks.push(checkExecutableSpecsSet(api, patternName));
46
+ }
47
+ else {
48
+ rawChecks.push(checkStubsFromDepsExist(dataset, patternName, baseDir));
49
+ }
50
+ // DD-4: --strict promotes WARN → BLOCKED
51
+ const checks = strict === true
52
+ ? rawChecks.map((c) => (c.severity === 'WARN' ? { ...c, severity: 'BLOCKED' } : c))
53
+ : rawChecks;
54
+ const blockerCount = checks.filter((c) => c.severity === 'BLOCKED').length;
55
+ const warnCount = checks.filter((c) => c.severity === 'WARN').length;
56
+ let verdict;
57
+ if (blockerCount > 0) {
58
+ verdict = 'blocked';
59
+ }
60
+ else if (warnCount > 0) {
61
+ verdict = 'warnings';
62
+ }
63
+ else {
64
+ verdict = 'ready';
65
+ }
66
+ return {
67
+ pattern: getPatternName(pattern),
68
+ scopeType,
69
+ checks,
70
+ verdict,
71
+ blockerCount,
72
+ warnCount,
73
+ };
74
+ }
75
+ // ---------------------------------------------------------------------------
76
+ // Text Formatter (co-located per PDR-002 DD-7)
77
+ // ---------------------------------------------------------------------------
78
+ export function formatScopeValidation(result) {
79
+ const sections = [];
80
+ sections.push(`=== SCOPE VALIDATION: ${result.pattern} (${result.scopeType}) ===`);
81
+ const checkLines = result.checks.map((c) => {
82
+ const blockers = c.blockerNames !== undefined && c.blockerNames.length > 0
83
+ ? `\n Blockers: ${c.blockerNames.join(', ')}`
84
+ : '';
85
+ return `[${c.severity}] ${c.label}: ${c.detail}${blockers}`;
86
+ });
87
+ sections.push('=== CHECKLIST ===\n' + checkLines.join('\n'));
88
+ let verdictText;
89
+ if (result.verdict === 'blocked') {
90
+ const blockerDetails = result.checks
91
+ .filter((c) => c.severity === 'BLOCKED')
92
+ .map((c) => `- ${c.label}: ${c.detail}`);
93
+ verdictText =
94
+ `BLOCKED: ${result.blockerCount} blocker(s) prevent ${result.scopeType} session` +
95
+ '\n' +
96
+ blockerDetails.join('\n');
97
+ }
98
+ else if (result.verdict === 'warnings') {
99
+ verdictText = `READY (with ${result.warnCount} warning(s)): ${result.scopeType} session can proceed`;
100
+ }
101
+ else {
102
+ verdictText = `READY: All checks passed for ${result.scopeType} session`;
103
+ }
104
+ sections.push('=== VERDICT ===\n' + verdictText);
105
+ return sections.join('\n\n') + '\n';
106
+ }
107
+ // ---------------------------------------------------------------------------
108
+ // Composable Check Functions — Implementation Session
109
+ // ---------------------------------------------------------------------------
110
+ export function checkDependenciesCompleted(api, patternName) {
111
+ const deps = api.getPatternDependencies(patternName);
112
+ const dependsOn = deps?.dependsOn ?? [];
113
+ if (dependsOn.length === 0) {
114
+ return {
115
+ id: 'dependencies-completed',
116
+ label: 'Dependencies completed',
117
+ severity: 'PASS',
118
+ detail: 'No dependencies',
119
+ };
120
+ }
121
+ const blockers = [];
122
+ for (const depName of dependsOn) {
123
+ const depPattern = api.getPattern(depName);
124
+ const status = depPattern?.status ?? 'unknown';
125
+ if (!isPatternComplete(depPattern?.status)) {
126
+ blockers.push(`${depName} (${status})`);
127
+ }
128
+ }
129
+ if (blockers.length === 0) {
130
+ return {
131
+ id: 'dependencies-completed',
132
+ label: 'Dependencies completed',
133
+ severity: 'PASS',
134
+ detail: `${dependsOn.length}/${dependsOn.length} completed`,
135
+ };
136
+ }
137
+ return {
138
+ id: 'dependencies-completed',
139
+ label: 'Dependencies completed',
140
+ severity: 'BLOCKED',
141
+ detail: `${dependsOn.length - blockers.length}/${dependsOn.length} completed`,
142
+ blockerNames: blockers,
143
+ };
144
+ }
145
+ export function checkDeliverablesDefined(api, patternName) {
146
+ const deliverables = api.getPatternDeliverables(patternName);
147
+ if (deliverables.length > 0) {
148
+ return {
149
+ id: 'deliverables-defined',
150
+ label: 'Deliverables defined',
151
+ severity: 'PASS',
152
+ detail: `${deliverables.length} deliverable(s) found`,
153
+ };
154
+ }
155
+ return {
156
+ id: 'deliverables-defined',
157
+ label: 'Deliverables defined',
158
+ severity: 'BLOCKED',
159
+ detail: 'No deliverables found in Background table',
160
+ };
161
+ }
162
+ export function checkFsmAllowsTransition(api, patternName) {
163
+ const pattern = api.getPattern(patternName);
164
+ const status = pattern?.status;
165
+ if (status === undefined || !VALID_STATUSES.has(status)) {
166
+ return {
167
+ id: 'fsm-allows-transition',
168
+ label: 'FSM allows transition',
169
+ severity: 'BLOCKED',
170
+ detail: `Unknown status: ${status ?? 'undefined'}`,
171
+ };
172
+ }
173
+ // Pattern is already active — no transition needed for implement session
174
+ if (status === 'active') {
175
+ return {
176
+ id: 'fsm-allows-transition',
177
+ label: 'FSM allows transition',
178
+ severity: 'PASS',
179
+ detail: 'Already active — no transition needed',
180
+ };
181
+ }
182
+ const isValid = api.isValidTransition(status, 'active');
183
+ if (isValid) {
184
+ return {
185
+ id: 'fsm-allows-transition',
186
+ label: 'FSM allows transition',
187
+ severity: 'PASS',
188
+ detail: `${status} → active is valid`,
189
+ };
190
+ }
191
+ const check = api.checkTransition(status, 'active');
192
+ const alternatives = check.validAlternatives ?? [];
193
+ const altText = alternatives.length > 0 ? ` Valid from: ${alternatives.join(', ')}` : '';
194
+ return {
195
+ id: 'fsm-allows-transition',
196
+ label: 'FSM allows transition',
197
+ severity: 'BLOCKED',
198
+ detail: `${status} → active is not valid.${altText}`,
199
+ };
200
+ }
201
+ export function checkDesignDecisionsRecorded(dataset, patternName) {
202
+ const stubs = findStubPatterns(dataset);
203
+ const lowerName = patternName.toLowerCase();
204
+ const patternStubs = stubs.filter((s) => {
205
+ const implName = firstImplements(s);
206
+ return implName?.toLowerCase() === lowerName;
207
+ });
208
+ let totalDecisions = 0;
209
+ for (const stub of patternStubs) {
210
+ const decisions = extractDecisionItems(stub.directive.description);
211
+ totalDecisions += decisions.length;
212
+ }
213
+ if (totalDecisions > 0) {
214
+ return {
215
+ id: 'design-decisions-recorded',
216
+ label: 'Design decisions recorded',
217
+ severity: 'PASS',
218
+ detail: `${totalDecisions} decision(s) found in ${patternStubs.length} stub(s)`,
219
+ };
220
+ }
221
+ return {
222
+ id: 'design-decisions-recorded',
223
+ label: 'Design decisions recorded',
224
+ severity: 'WARN',
225
+ detail: 'No PDR/AD references found in stubs',
226
+ };
227
+ }
228
+ export function checkExecutableSpecsSet(api, patternName) {
229
+ const pattern = api.getPattern(patternName);
230
+ if (pattern?.behaviorFile !== undefined) {
231
+ return {
232
+ id: 'executable-specs-set',
233
+ label: 'Executable specs location set',
234
+ severity: 'PASS',
235
+ detail: pattern.behaviorFile,
236
+ };
237
+ }
238
+ return {
239
+ id: 'executable-specs-set',
240
+ label: 'Executable specs location set',
241
+ severity: 'WARN',
242
+ detail: 'No @executable-specs tag found',
243
+ };
244
+ }
245
+ // ---------------------------------------------------------------------------
246
+ // Composable Check Functions — Design Session
247
+ // ---------------------------------------------------------------------------
248
+ export function checkStubsFromDepsExist(dataset, patternName, baseDir) {
249
+ const pattern = findPatternByName(dataset.patterns, patternName);
250
+ const dependsOn = pattern?.dependsOn ?? [];
251
+ if (dependsOn.length === 0) {
252
+ return {
253
+ id: 'stubs-from-deps-exist',
254
+ label: 'Stubs from dependencies exist',
255
+ severity: 'PASS',
256
+ detail: 'No dependencies to check',
257
+ };
258
+ }
259
+ const allStubs = findStubPatterns(dataset);
260
+ const depsWithoutStubs = [];
261
+ for (const depName of dependsOn) {
262
+ const lowerDep = depName.toLowerCase();
263
+ const depStubs = allStubs.filter((s) => {
264
+ const implName = firstImplements(s);
265
+ return implName?.toLowerCase() === lowerDep;
266
+ });
267
+ if (depStubs.length === 0) {
268
+ depsWithoutStubs.push(depName);
269
+ continue;
270
+ }
271
+ const resolved = resolveStubs(depStubs, baseDir);
272
+ const anyExists = resolved.some((r) => r.targetExists);
273
+ if (!anyExists) {
274
+ depsWithoutStubs.push(depName);
275
+ }
276
+ }
277
+ if (depsWithoutStubs.length === 0) {
278
+ return {
279
+ id: 'stubs-from-deps-exist',
280
+ label: 'Stubs from dependencies exist',
281
+ severity: 'PASS',
282
+ detail: `All ${dependsOn.length} dependencies have stubs`,
283
+ };
284
+ }
285
+ return {
286
+ id: 'stubs-from-deps-exist',
287
+ label: 'Stubs from dependencies exist',
288
+ severity: 'WARN',
289
+ detail: `${depsWithoutStubs.length}/${dependsOn.length} dependencies lack stubs`,
290
+ blockerNames: depsWithoutStubs,
291
+ };
292
+ }
293
+ //# sourceMappingURL=scope-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope-validator.js","sourceRoot":"","sources":["../../src/api/scope-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @architect
3
+ * @architect-pattern StubResolverImpl
4
+ * @architect-status active
5
+ * @architect-implements DataAPIStubIntegration
6
+ * @architect-uses ProcessStateAPI
7
+ * @architect-used-by ProcessAPICLIImpl
8
+ *
9
+ * ## StubResolver — Design Stub Discovery and Resolution
10
+ *
11
+ * Identifies design session stubs in the MasterDataset and resolves them
12
+ * against the filesystem to determine implementation status.
13
+ *
14
+ * Stub identification heuristic:
15
+ * - Source file path contains `/stubs/` (lives in stubs directory), OR
16
+ * - Pattern has a `targetPath` field (from @architect-target tag)
17
+ *
18
+ * Resolution uses a `fileExists` callback (defaulting to `fs.existsSync()`) on
19
+ * targetPath — not pipeline data — because target files may not have `@architect`
20
+ * annotations. The callback enables testing without filesystem side effects.
21
+ *
22
+ * **When to Use:** When querying design stub status via the `stubs` CLI subcommand or when checking stub resolution in scope validation.
23
+ */
24
+ import type { ExtractedPattern } from '../validation-schemas/extracted-pattern.js';
25
+ import type { MasterDataset } from '../validation-schemas/master-dataset.js';
26
+ /**
27
+ * Result of resolving a single stub against the filesystem.
28
+ */
29
+ export interface StubResolution {
30
+ /** The stub's pattern name */
31
+ readonly stubName: string;
32
+ /** Source file path of the stub */
33
+ readonly stubFile: string;
34
+ /** Target implementation path (from @architect-target) */
35
+ readonly targetPath: string;
36
+ /** Design session that created this stub (from @architect-since) */
37
+ readonly since: string | undefined;
38
+ /** Parent pattern this stub implements (from @architect-implements) */
39
+ readonly implementsPattern: string | undefined;
40
+ /** Whether the target file exists on disk */
41
+ readonly targetExists: boolean;
42
+ }
43
+ /**
44
+ * Summary of all stubs grouped by the pattern they implement.
45
+ */
46
+ export interface StubSummary {
47
+ /** Pattern name that stubs implement */
48
+ readonly pattern: string;
49
+ /** All stubs for this pattern */
50
+ readonly stubs: readonly StubResolution[];
51
+ /** Count of resolved (target exists) stubs */
52
+ readonly resolvedCount: number;
53
+ /** Count of unresolved (target missing) stubs */
54
+ readonly unresolvedCount: number;
55
+ }
56
+ /**
57
+ * A single extracted decision item from stub description text.
58
+ */
59
+ export interface DecisionItem {
60
+ /** Decision ID (e.g., "AD-1") */
61
+ readonly id: string;
62
+ /** Description text */
63
+ readonly description: string;
64
+ /** Referenced PDR number, if any */
65
+ readonly pdr: string | undefined;
66
+ }
67
+ /**
68
+ * A pattern reference to a PDR.
69
+ */
70
+ export interface PdrReference {
71
+ /** Pattern name referencing the PDR */
72
+ readonly pattern: string;
73
+ /** Where the reference was found */
74
+ readonly source: 'description' | 'seeAlso';
75
+ /** Source file path */
76
+ readonly filePath: string;
77
+ }
78
+ /**
79
+ * Identify stub patterns from the MasterDataset.
80
+ *
81
+ * A pattern is a stub if:
82
+ * 1. Its source file path contains '/stubs/' (lives in stubs directory), OR
83
+ * 2. It has a `targetPath` field (from @architect-target tag)
84
+ */
85
+ export declare function findStubPatterns(dataset: MasterDataset): readonly ExtractedPattern[];
86
+ /**
87
+ * Resolve stubs against the filesystem to determine implementation status.
88
+ *
89
+ * For each stub pattern with a `targetPath`:
90
+ * - Resolves the path relative to baseDir
91
+ * - Checks if the target file exists via `fileExists` callback
92
+ * - Extracts stub metadata (since, implementsPattern)
93
+ */
94
+ export declare function resolveStubs(stubs: readonly ExtractedPattern[], baseDir: string, fileExists?: (path: string) => boolean): readonly StubResolution[];
95
+ /**
96
+ * Group stub resolutions by the pattern they implement.
97
+ *
98
+ * Stubs that share the same `implementsPattern` value are grouped together.
99
+ * Stubs without an `implementsPattern` are grouped under their own stubName.
100
+ */
101
+ export declare function groupStubsByPattern(resolutions: readonly StubResolution[]): readonly StubSummary[];
102
+ /**
103
+ * Extract AD-N decision items from a pattern's description text.
104
+ *
105
+ * Parses JSDoc description for references like:
106
+ * - `AD-1: Unified action model (PDR-011)`
107
+ * - `AD-5: Router maps command types to orchestrator`
108
+ */
109
+ export declare function extractDecisionItems(description: string): readonly DecisionItem[];
110
+ /**
111
+ * Cross-reference all patterns that mention a specific PDR number.
112
+ *
113
+ * Scans pattern descriptions and seeAlso references
114
+ * for `PDR-{number}` occurrences.
115
+ */
116
+ export declare function findPdrReferences(patterns: readonly ExtractedPattern[], pdrNumber: string): readonly PdrReference[];
117
+ //# sourceMappingURL=stub-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-resolver.d.ts","sourceRoot":"","sources":["../../src/api/stub-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAO7E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,uEAAuE;IACvE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oCAAoC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC;IAC3C,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAMD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,gBAAgB,EAAE,CAIpF;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,gBAAgB,EAAE,EAClC,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAoB,GACjD,SAAS,cAAc,EAAE,CAe3B;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,SAAS,cAAc,EAAE,GACrC,SAAS,WAAW,EAAE,CAyBxB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,YAAY,EAAE,CAoBjF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,SAAS,EAAE,MAAM,GAChB,SAAS,YAAY,EAAE,CAgCzB"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * @architect
3
+ * @architect-pattern StubResolverImpl
4
+ * @architect-status active
5
+ * @architect-implements DataAPIStubIntegration
6
+ * @architect-uses ProcessStateAPI
7
+ * @architect-used-by ProcessAPICLIImpl
8
+ *
9
+ * ## StubResolver — Design Stub Discovery and Resolution
10
+ *
11
+ * Identifies design session stubs in the MasterDataset and resolves them
12
+ * against the filesystem to determine implementation status.
13
+ *
14
+ * Stub identification heuristic:
15
+ * - Source file path contains `/stubs/` (lives in stubs directory), OR
16
+ * - Pattern has a `targetPath` field (from @architect-target tag)
17
+ *
18
+ * Resolution uses a `fileExists` callback (defaulting to `fs.existsSync()`) on
19
+ * targetPath — not pipeline data — because target files may not have `@architect`
20
+ * annotations. The callback enables testing without filesystem side effects.
21
+ *
22
+ * **When to Use:** When querying design stub status via the `stubs` CLI subcommand or when checking stub resolution in scope validation.
23
+ */
24
+ import { existsSync } from 'node:fs';
25
+ import { resolve } from 'node:path';
26
+ import { getPatternName, firstImplements } from './pattern-helpers.js';
27
+ // ---------------------------------------------------------------------------
28
+ // Functions
29
+ // ---------------------------------------------------------------------------
30
+ /**
31
+ * Identify stub patterns from the MasterDataset.
32
+ *
33
+ * A pattern is a stub if:
34
+ * 1. Its source file path contains '/stubs/' (lives in stubs directory), OR
35
+ * 2. It has a `targetPath` field (from @architect-target tag)
36
+ */
37
+ export function findStubPatterns(dataset) {
38
+ return dataset.patterns.filter((p) => p.source.file.includes('/stubs/') || p.targetPath !== undefined);
39
+ }
40
+ /**
41
+ * Resolve stubs against the filesystem to determine implementation status.
42
+ *
43
+ * For each stub pattern with a `targetPath`:
44
+ * - Resolves the path relative to baseDir
45
+ * - Checks if the target file exists via `fileExists` callback
46
+ * - Extracts stub metadata (since, implementsPattern)
47
+ */
48
+ export function resolveStubs(stubs, baseDir, fileExists = existsSync) {
49
+ return stubs.map((stub) => {
50
+ const targetPath = stub.targetPath ?? '';
51
+ const absoluteTarget = targetPath !== '' ? resolve(baseDir, targetPath) : '';
52
+ const targetExists = targetPath !== '' && fileExists(absoluteTarget);
53
+ return {
54
+ stubName: getPatternName(stub),
55
+ stubFile: stub.source.file,
56
+ targetPath,
57
+ since: stub.since,
58
+ implementsPattern: firstImplements(stub),
59
+ targetExists,
60
+ };
61
+ });
62
+ }
63
+ /**
64
+ * Group stub resolutions by the pattern they implement.
65
+ *
66
+ * Stubs that share the same `implementsPattern` value are grouped together.
67
+ * Stubs without an `implementsPattern` are grouped under their own stubName.
68
+ */
69
+ export function groupStubsByPattern(resolutions) {
70
+ const groups = new Map();
71
+ for (const resolution of resolutions) {
72
+ const key = resolution.implementsPattern ?? resolution.stubName;
73
+ const existing = groups.get(key);
74
+ if (existing !== undefined) {
75
+ existing.push(resolution);
76
+ }
77
+ else {
78
+ groups.set(key, [resolution]);
79
+ }
80
+ }
81
+ const summaries = [];
82
+ for (const [pattern, stubs] of groups) {
83
+ const resolvedCount = stubs.filter((s) => s.targetExists).length;
84
+ summaries.push({
85
+ pattern,
86
+ stubs,
87
+ resolvedCount,
88
+ unresolvedCount: stubs.length - resolvedCount,
89
+ });
90
+ }
91
+ return summaries.sort((a, b) => a.pattern.localeCompare(b.pattern));
92
+ }
93
+ /**
94
+ * Extract AD-N decision items from a pattern's description text.
95
+ *
96
+ * Parses JSDoc description for references like:
97
+ * - `AD-1: Unified action model (PDR-011)`
98
+ * - `AD-5: Router maps command types to orchestrator`
99
+ */
100
+ export function extractDecisionItems(description) {
101
+ const items = [];
102
+ const regex = /AD-(\d+):\s*(.+?)(?:\s*\(PDR-(\d+)\))?$/gm;
103
+ let match = regex.exec(description);
104
+ while (match !== null) {
105
+ const adNum = match[1];
106
+ const desc = match[2];
107
+ const pdrNum = match[3];
108
+ if (adNum !== undefined && desc !== undefined) {
109
+ items.push({
110
+ id: `AD-${adNum}`,
111
+ description: desc.trim(),
112
+ pdr: pdrNum !== undefined ? `PDR-${pdrNum}` : undefined,
113
+ });
114
+ }
115
+ match = regex.exec(description);
116
+ }
117
+ return items;
118
+ }
119
+ /**
120
+ * Cross-reference all patterns that mention a specific PDR number.
121
+ *
122
+ * Scans pattern descriptions and seeAlso references
123
+ * for `PDR-{number}` occurrences.
124
+ */
125
+ export function findPdrReferences(patterns, pdrNumber) {
126
+ const references = [];
127
+ const pdrTag = `PDR-${pdrNumber}`;
128
+ for (const pattern of patterns) {
129
+ const displayName = getPatternName(pattern);
130
+ // Check description text (lives on the directive)
131
+ if (pattern.directive.description.includes(pdrTag)) {
132
+ references.push({
133
+ pattern: displayName,
134
+ source: 'description',
135
+ filePath: pattern.source.file,
136
+ });
137
+ }
138
+ // Check seeAlso references (top-level on ExtractedPattern)
139
+ if (pattern.seeAlso !== undefined) {
140
+ for (const ref of pattern.seeAlso) {
141
+ if (ref.includes(pdrTag)) {
142
+ references.push({
143
+ pattern: displayName,
144
+ source: 'seeAlso',
145
+ filePath: pattern.source.file,
146
+ });
147
+ break; // One reference per pattern per source
148
+ }
149
+ }
150
+ }
151
+ }
152
+ return references;
153
+ }
154
+ //# sourceMappingURL=stub-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-resolver.js","sourceRoot":"","sources":["../../src/api/stub-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @architect
3
+ * @architect-core
4
+ * @architect-pattern PatternSummarizerImpl
5
+ * @architect-status active
6
+ * @architect-implements DataAPIOutputShaping
7
+ * @architect-uses ProcessStateAPI
8
+ * @architect-used-by OutputPipeline, ProcessAPICLIImpl
9
+ * @architect-arch-role service
10
+ * @architect-arch-context api
11
+ * @architect-arch-layer application
12
+ *
13
+ * ## PatternSummarizer — Compact Pattern Projection
14
+ *
15
+ * Projects the full ExtractedPattern (~3.5KB per pattern) down to a
16
+ * PatternSummary (~100 bytes) for list queries. Reduces CLI output
17
+ * from ~594KB to ~4KB for typical codebases.
18
+ *
19
+ * Uses Zod schema-first pattern: PatternSummarySchema defines the type,
20
+ * and PatternSummary is inferred from it.
21
+ *
22
+ * **When to Use:** When projecting full ExtractedPattern data down to compact summaries for list and overview queries.
23
+ */
24
+ import { z } from 'zod';
25
+ import type { ExtractedPattern } from '../validation-schemas/extracted-pattern.js';
26
+ /**
27
+ * Compact projection of ExtractedPattern for list queries.
28
+ *
29
+ * Fields selected for maximum information density at minimum size:
30
+ * - patternName: identifies the pattern
31
+ * - status: FSM state (roadmap/active/completed/deferred)
32
+ * - category: domain classification
33
+ * - phase: roadmap phase number (for sequencing)
34
+ * - file: source file path (for navigation)
35
+ * - source: typescript or gherkin (for filtering)
36
+ */
37
+ export declare const PatternSummarySchema: z.ZodObject<{
38
+ patternName: z.ZodString;
39
+ status: z.ZodOptional<z.ZodString>;
40
+ category: z.ZodString;
41
+ phase: z.ZodOptional<z.ZodNumber>;
42
+ file: z.ZodString;
43
+ source: z.ZodEnum<{
44
+ gherkin: "gherkin";
45
+ typescript: "typescript";
46
+ }>;
47
+ }, z.core.$strip>;
48
+ export type PatternSummary = z.infer<typeof PatternSummarySchema>;
49
+ /**
50
+ * Valid field names for PatternSummary, used by --fields validation.
51
+ */
52
+ export declare const SUMMARY_FIELDS: ReadonlySet<string>;
53
+ /**
54
+ * Derive source type from file extension.
55
+ */
56
+ export declare function deriveSource(filePath: string): 'typescript' | 'gherkin';
57
+ /**
58
+ * Project an ExtractedPattern to a compact PatternSummary.
59
+ *
60
+ * - `patternName` prefers explicit @architect-pattern tag, falls back to `name`
61
+ * - `source` is derived from file extension (.feature -> gherkin, else typescript)
62
+ * - Optional fields (status, phase) are included when present, omitted when undefined
63
+ *
64
+ * @param pattern - Full ExtractedPattern from the pipeline
65
+ * @returns Compact PatternSummary (~100 bytes JSON)
66
+ */
67
+ export declare function summarizePattern(pattern: ExtractedPattern): PatternSummary;
68
+ /**
69
+ * Project an array of ExtractedPatterns to compact summaries.
70
+ *
71
+ * @param patterns - Array of ExtractedPatterns
72
+ * @returns Array of PatternSummary objects
73
+ */
74
+ export declare function summarizePatterns(patterns: readonly ExtractedPattern[]): readonly PatternSummary[];
75
+ //# sourceMappingURL=summarize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/api/summarize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAOnF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAO/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAO7C,CAAC;AAMH;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,cAAc,CAS1E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,gBAAgB,EAAE,GACpC,SAAS,cAAc,EAAE,CAE3B"}