@libar-dev/architect 1.0.0-pre.3 → 1.0.0-pre.5

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 (760) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +5 -5
  3. package/dist/api/arch-queries.d.ts.map +1 -1
  4. package/dist/api/context-assembler.d.ts.map +1 -1
  5. package/dist/api/handoff-generator.d.ts.map +1 -1
  6. package/dist/api/index.d.ts +8 -8
  7. package/dist/api/index.d.ts.map +1 -1
  8. package/dist/api/index.js +7 -7
  9. package/dist/api/index.js.map +1 -1
  10. package/dist/api/{process-state.d.ts → pattern-graph-api.d.ts} +15 -15
  11. package/dist/api/pattern-graph-api.d.ts.map +1 -0
  12. package/dist/api/{process-state.js → pattern-graph-api.js} +13 -13
  13. package/dist/api/pattern-graph-api.js.map +1 -0
  14. package/dist/api/rules-query.d.ts +6 -6
  15. package/dist/api/rules-query.d.ts.map +1 -1
  16. package/dist/api/rules-query.js +4 -4
  17. package/dist/api/rules-query.js.map +1 -1
  18. package/dist/api/scope-validator.d.ts.map +1 -1
  19. package/dist/api/types.d.ts +8 -8
  20. package/dist/api/types.d.ts.map +1 -1
  21. package/dist/api/types.js +5 -5
  22. package/dist/cli/cli-schema.d.ts +3 -4
  23. package/dist/cli/cli-schema.d.ts.map +1 -1
  24. package/dist/cli/cli-schema.js +13 -14
  25. package/dist/cli/cli-schema.js.map +1 -1
  26. package/dist/cli/output-pipeline.d.ts.map +1 -1
  27. package/dist/cli/pattern-graph-cli.d.ts.map +1 -0
  28. package/dist/cli/validate-patterns.d.ts.map +1 -1
  29. package/dist/generators/built-in/cli-recipe-generator.d.ts +3 -4
  30. package/dist/generators/built-in/cli-recipe-generator.d.ts.map +1 -1
  31. package/dist/generators/built-in/cli-recipe-generator.js +6 -7
  32. package/dist/generators/built-in/cli-recipe-generator.js.map +1 -1
  33. package/dist/generators/built-in/cli-reference-generator.d.ts +18 -0
  34. package/dist/generators/built-in/cli-reference-generator.d.ts.map +1 -0
  35. package/dist/generators/built-in/{process-api-reference-generator.js → cli-reference-generator.js} +13 -13
  36. package/dist/generators/built-in/cli-reference-generator.js.map +1 -0
  37. package/dist/generators/built-in/codec-generators.js +12 -12
  38. package/dist/generators/built-in/codec-generators.js.map +1 -1
  39. package/dist/generators/built-in/design-review-generator.d.ts.map +1 -1
  40. package/dist/generators/built-in/reference-generators.d.ts.map +1 -1
  41. package/dist/generators/codec-based.d.ts.map +1 -1
  42. package/dist/generators/index.d.ts.map +1 -1
  43. package/dist/generators/orchestrator.d.ts.map +1 -1
  44. package/dist/generators/pipeline/build-pipeline.d.ts +17 -14
  45. package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -1
  46. package/dist/generators/pipeline/build-pipeline.js +27 -21
  47. package/dist/generators/pipeline/build-pipeline.js.map +1 -1
  48. package/dist/generators/pipeline/index.d.ts.map +1 -1
  49. package/dist/generators/types.d.ts.map +1 -1
  50. package/dist/mcp/pipeline-session.d.ts.map +1 -1
  51. package/dist/renderable/codecs/index-codec.d.ts.map +1 -1
  52. package/dist/renderable/codecs/index-codec.js +54 -28
  53. package/dist/renderable/codecs/index-codec.js.map +1 -1
  54. package/docs/ANNOTATION-GUIDE.md +5 -5
  55. package/docs/ARCHITECTURE.md +79 -79
  56. package/docs/{PROCESS-API.md → CLI.md} +6 -6
  57. package/docs/CONFIGURATION.md +2 -2
  58. package/docs/DOCS-GAP-ANALYSIS.md +65 -65
  59. package/docs/INDEX.md +34 -34
  60. package/docs/MCP-SETUP.md +3 -3
  61. package/docs/METHODOLOGY.md +1 -1
  62. package/docs/SESSION-GUIDES.md +3 -3
  63. package/docs/VALIDATION.md +4 -4
  64. package/docs-live/ARCHITECTURE.md +48 -42
  65. package/docs-live/BUSINESS-RULES.md +3 -3
  66. package/docs-live/CHANGELOG-GENERATED.md +109 -103
  67. package/docs-live/INDEX.md +21 -21
  68. package/docs-live/PRODUCT-AREAS.md +7 -7
  69. package/docs-live/TAXONOMY.md +3 -5
  70. package/docs-live/_claude-md/annotation/annotation-overview.md +1 -1
  71. package/docs-live/_claude-md/annotation/annotation-reference.md +5 -5
  72. package/docs-live/_claude-md/architecture/architecture-types.md +4 -4
  73. package/docs-live/_claude-md/architecture/reference-sample.md +2 -2
  74. package/docs-live/_claude-md/data-api/data-api-overview.md +2 -2
  75. package/docs-live/_claude-md/generation/generation-overview.md +15 -15
  76. package/docs-live/_claude-md/process/process-overview.md +1 -1
  77. package/docs-live/_claude-md/validation/validation-overview.md +1 -1
  78. package/docs-live/business-rules/annotation.md +1 -2
  79. package/docs-live/business-rules/configuration.md +1 -1
  80. package/docs-live/business-rules/data-api.md +149 -136
  81. package/docs-live/business-rules/generation.md +172 -20
  82. package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +1 -1
  83. package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +5 -5
  84. package/docs-live/decisions/adr-006-single-read-model-architecture.md +24 -24
  85. package/docs-live/product-areas/ANNOTATION.md +19 -9
  86. package/docs-live/product-areas/CONFIGURATION.md +39 -19
  87. package/docs-live/product-areas/DATA-API.md +155 -151
  88. package/docs-live/product-areas/GENERATION.md +159 -144
  89. package/docs-live/product-areas/PROCESS.md +4 -4
  90. package/docs-live/product-areas/VALIDATION.md +35 -20
  91. package/docs-live/reference/ANNOTATION-REFERENCE.md +5 -5
  92. package/docs-live/reference/ARCHITECTURE-CODECS.md +11 -11
  93. package/docs-live/reference/ARCHITECTURE-TYPES.md +28 -25
  94. package/docs-live/reference/{PROCESS-API-RECIPES.md → CLI-RECIPES.md} +11 -11
  95. package/docs-live/reference/{PROCESS-API-REFERENCE.md → CLI-REFERENCE.md} +2 -2
  96. package/docs-live/reference/REFERENCE-SAMPLE.md +56 -56
  97. package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +3 -3
  98. package/docs-live/taxonomy/format-types.md +2 -2
  99. package/docs-live/taxonomy/metadata-tags.md +1 -23
  100. package/package.json +7 -7
  101. package/dist/api/arch-queries.d.ts +0 -95
  102. package/dist/api/arch-queries.js +0 -310
  103. package/dist/api/arch-queries.js.map +0 -1
  104. package/dist/api/context-assembler.d.ts +0 -124
  105. package/dist/api/context-assembler.js +0 -472
  106. package/dist/api/context-assembler.js.map +0 -1
  107. package/dist/api/context-formatter.d.ts +0 -26
  108. package/dist/api/context-formatter.js +0 -183
  109. package/dist/api/context-formatter.js.map +0 -1
  110. package/dist/api/coverage-analyzer.d.ts +0 -38
  111. package/dist/api/coverage-analyzer.d.ts.map +0 -1
  112. package/dist/api/coverage-analyzer.js +0 -117
  113. package/dist/api/coverage-analyzer.js.map +0 -1
  114. package/dist/api/fuzzy-match.d.ts +0 -75
  115. package/dist/api/fuzzy-match.d.ts.map +0 -1
  116. package/dist/api/fuzzy-match.js +0 -150
  117. package/dist/api/fuzzy-match.js.map +0 -1
  118. package/dist/api/handoff-generator.d.ts +0 -45
  119. package/dist/api/handoff-generator.js +0 -139
  120. package/dist/api/handoff-generator.js.map +0 -1
  121. package/dist/api/pattern-helpers.d.ts +0 -51
  122. package/dist/api/pattern-helpers.d.ts.map +0 -1
  123. package/dist/api/pattern-helpers.js +0 -84
  124. package/dist/api/pattern-helpers.js.map +0 -1
  125. package/dist/api/process-state.d.ts.map +0 -1
  126. package/dist/api/process-state.js.map +0 -1
  127. package/dist/api/scope-validator.d.ts +0 -56
  128. package/dist/api/scope-validator.js +0 -293
  129. package/dist/api/scope-validator.js.map +0 -1
  130. package/dist/api/stub-resolver.d.ts +0 -117
  131. package/dist/api/stub-resolver.d.ts.map +0 -1
  132. package/dist/api/stub-resolver.js +0 -154
  133. package/dist/api/stub-resolver.js.map +0 -1
  134. package/dist/api/summarize.d.ts +0 -75
  135. package/dist/api/summarize.d.ts.map +0 -1
  136. package/dist/api/summarize.js +0 -97
  137. package/dist/api/summarize.js.map +0 -1
  138. package/dist/cache/file-cache.d.ts +0 -72
  139. package/dist/cache/file-cache.d.ts.map +0 -1
  140. package/dist/cache/file-cache.js +0 -80
  141. package/dist/cache/file-cache.js.map +0 -1
  142. package/dist/cache/index.d.ts +0 -5
  143. package/dist/cache/index.d.ts.map +0 -1
  144. package/dist/cache/index.js +0 -5
  145. package/dist/cache/index.js.map +0 -1
  146. package/dist/cli/dataset-cache.d.ts +0 -66
  147. package/dist/cli/dataset-cache.js +0 -179
  148. package/dist/cli/dataset-cache.js.map +0 -1
  149. package/dist/cli/error-handler.d.ts +0 -84
  150. package/dist/cli/error-handler.d.ts.map +0 -1
  151. package/dist/cli/error-handler.js +0 -197
  152. package/dist/cli/error-handler.js.map +0 -1
  153. package/dist/cli/generate-docs.d.ts +0 -30
  154. package/dist/cli/generate-docs.js +0 -370
  155. package/dist/cli/generate-docs.js.map +0 -1
  156. package/dist/cli/lint-patterns.d.ts +0 -57
  157. package/dist/cli/lint-patterns.d.ts.map +0 -1
  158. package/dist/cli/lint-patterns.js +0 -257
  159. package/dist/cli/lint-patterns.js.map +0 -1
  160. package/dist/cli/lint-process.d.ts +0 -54
  161. package/dist/cli/lint-process.d.ts.map +0 -1
  162. package/dist/cli/lint-process.js +0 -319
  163. package/dist/cli/lint-process.js.map +0 -1
  164. package/dist/cli/lint-steps.d.ts +0 -32
  165. package/dist/cli/lint-steps.d.ts.map +0 -1
  166. package/dist/cli/lint-steps.js +0 -172
  167. package/dist/cli/lint-steps.js.map +0 -1
  168. package/dist/cli/mcp-server.d.ts +0 -22
  169. package/dist/cli/mcp-server.js +0 -57
  170. package/dist/cli/mcp-server.js.map +0 -1
  171. package/dist/cli/output-pipeline.d.ts +0 -130
  172. package/dist/cli/output-pipeline.js +0 -234
  173. package/dist/cli/output-pipeline.js.map +0 -1
  174. package/dist/cli/process-api.d.ts +0 -37
  175. package/dist/cli/process-api.d.ts.map +0 -1
  176. package/dist/cli/process-api.js +0 -1550
  177. package/dist/cli/process-api.js.map +0 -1
  178. package/dist/cli/repl.d.ts +0 -38
  179. package/dist/cli/repl.js +0 -239
  180. package/dist/cli/repl.js.map +0 -1
  181. package/dist/cli/validate-patterns.d.ts +0 -115
  182. package/dist/cli/validate-patterns.js +0 -707
  183. package/dist/cli/validate-patterns.js.map +0 -1
  184. package/dist/cli/version.d.ts +0 -35
  185. package/dist/cli/version.d.ts.map +0 -1
  186. package/dist/cli/version.js +0 -64
  187. package/dist/cli/version.js.map +0 -1
  188. package/dist/config/config-loader.d.ts +0 -167
  189. package/dist/config/config-loader.d.ts.map +0 -1
  190. package/dist/config/config-loader.js +0 -294
  191. package/dist/config/config-loader.js.map +0 -1
  192. package/dist/config/defaults.d.ts +0 -92
  193. package/dist/config/defaults.d.ts.map +0 -1
  194. package/dist/config/defaults.js +0 -103
  195. package/dist/config/defaults.js.map +0 -1
  196. package/dist/config/define-config.d.ts +0 -37
  197. package/dist/config/define-config.d.ts.map +0 -1
  198. package/dist/config/define-config.js +0 -38
  199. package/dist/config/define-config.js.map +0 -1
  200. package/dist/config/factory.d.ts +0 -79
  201. package/dist/config/factory.d.ts.map +0 -1
  202. package/dist/config/factory.js +0 -116
  203. package/dist/config/factory.js.map +0 -1
  204. package/dist/config/index.d.ts +0 -45
  205. package/dist/config/index.d.ts.map +0 -1
  206. package/dist/config/index.js +0 -48
  207. package/dist/config/index.js.map +0 -1
  208. package/dist/config/merge-sources.d.ts +0 -47
  209. package/dist/config/merge-sources.d.ts.map +0 -1
  210. package/dist/config/merge-sources.js +0 -61
  211. package/dist/config/merge-sources.js.map +0 -1
  212. package/dist/config/presets.d.ts +0 -115
  213. package/dist/config/presets.d.ts.map +0 -1
  214. package/dist/config/presets.js +0 -119
  215. package/dist/config/presets.js.map +0 -1
  216. package/dist/config/project-config-schema.d.ts +0 -192
  217. package/dist/config/project-config-schema.d.ts.map +0 -1
  218. package/dist/config/project-config-schema.js +0 -231
  219. package/dist/config/project-config-schema.js.map +0 -1
  220. package/dist/config/project-config.d.ts +0 -229
  221. package/dist/config/project-config.d.ts.map +0 -1
  222. package/dist/config/project-config.js +0 -37
  223. package/dist/config/project-config.js.map +0 -1
  224. package/dist/config/regex-builders.d.ts +0 -49
  225. package/dist/config/regex-builders.d.ts.map +0 -1
  226. package/dist/config/regex-builders.js +0 -85
  227. package/dist/config/regex-builders.js.map +0 -1
  228. package/dist/config/resolve-config.d.ts +0 -65
  229. package/dist/config/resolve-config.d.ts.map +0 -1
  230. package/dist/config/resolve-config.js +0 -150
  231. package/dist/config/resolve-config.js.map +0 -1
  232. package/dist/config/types.d.ts +0 -81
  233. package/dist/config/types.d.ts.map +0 -1
  234. package/dist/config/types.js +0 -22
  235. package/dist/config/types.js.map +0 -1
  236. package/dist/config/workflow-loader.d.ts +0 -90
  237. package/dist/config/workflow-loader.d.ts.map +0 -1
  238. package/dist/config/workflow-loader.js +0 -167
  239. package/dist/config/workflow-loader.js.map +0 -1
  240. package/dist/extractor/doc-extractor.d.ts +0 -233
  241. package/dist/extractor/doc-extractor.d.ts.map +0 -1
  242. package/dist/extractor/doc-extractor.js +0 -481
  243. package/dist/extractor/doc-extractor.js.map +0 -1
  244. package/dist/extractor/dual-source-extractor.d.ts +0 -161
  245. package/dist/extractor/dual-source-extractor.d.ts.map +0 -1
  246. package/dist/extractor/dual-source-extractor.js +0 -407
  247. package/dist/extractor/dual-source-extractor.js.map +0 -1
  248. package/dist/extractor/gherkin-extractor.d.ts +0 -170
  249. package/dist/extractor/gherkin-extractor.d.ts.map +0 -1
  250. package/dist/extractor/gherkin-extractor.js +0 -543
  251. package/dist/extractor/gherkin-extractor.js.map +0 -1
  252. package/dist/extractor/index.d.ts +0 -7
  253. package/dist/extractor/index.d.ts.map +0 -1
  254. package/dist/extractor/index.js +0 -11
  255. package/dist/extractor/index.js.map +0 -1
  256. package/dist/extractor/layer-inference.d.ts +0 -66
  257. package/dist/extractor/layer-inference.d.ts.map +0 -1
  258. package/dist/extractor/layer-inference.js +0 -93
  259. package/dist/extractor/layer-inference.js.map +0 -1
  260. package/dist/extractor/shape-extractor.d.ts +0 -79
  261. package/dist/extractor/shape-extractor.d.ts.map +0 -1
  262. package/dist/extractor/shape-extractor.js +0 -966
  263. package/dist/extractor/shape-extractor.js.map +0 -1
  264. package/dist/generators/built-in/codec-generators.d.ts +0 -29
  265. package/dist/generators/built-in/decision-doc-generator.d.ts +0 -204
  266. package/dist/generators/built-in/decision-doc-generator.js +0 -654
  267. package/dist/generators/built-in/decision-doc-generator.js.map +0 -1
  268. package/dist/generators/built-in/design-review-generator.d.ts +0 -26
  269. package/dist/generators/built-in/design-review-generator.js +0 -94
  270. package/dist/generators/built-in/design-review-generator.js.map +0 -1
  271. package/dist/generators/built-in/index.d.ts +0 -22
  272. package/dist/generators/built-in/index.js +0 -23
  273. package/dist/generators/built-in/index.js.map +0 -1
  274. package/dist/generators/built-in/process-api-reference-generator.d.ts +0 -18
  275. package/dist/generators/built-in/process-api-reference-generator.d.ts.map +0 -1
  276. package/dist/generators/built-in/process-api-reference-generator.js.map +0 -1
  277. package/dist/generators/built-in/reference-generators.d.ts +0 -51
  278. package/dist/generators/built-in/reference-generators.js +0 -320
  279. package/dist/generators/built-in/reference-generators.js.map +0 -1
  280. package/dist/generators/codec-based.d.ts +0 -63
  281. package/dist/generators/codec-based.js +0 -88
  282. package/dist/generators/codec-based.js.map +0 -1
  283. package/dist/generators/content-deduplicator.d.ts +0 -114
  284. package/dist/generators/content-deduplicator.d.ts.map +0 -1
  285. package/dist/generators/content-deduplicator.js +0 -356
  286. package/dist/generators/content-deduplicator.js.map +0 -1
  287. package/dist/generators/index.d.ts +0 -50
  288. package/dist/generators/index.js +0 -54
  289. package/dist/generators/index.js.map +0 -1
  290. package/dist/generators/orchestrator.d.ts +0 -265
  291. package/dist/generators/orchestrator.js +0 -570
  292. package/dist/generators/orchestrator.js.map +0 -1
  293. package/dist/generators/pipeline/context-inference.d.ts +0 -55
  294. package/dist/generators/pipeline/context-inference.d.ts.map +0 -1
  295. package/dist/generators/pipeline/context-inference.js +0 -76
  296. package/dist/generators/pipeline/context-inference.js.map +0 -1
  297. package/dist/generators/pipeline/index.d.ts +0 -27
  298. package/dist/generators/pipeline/index.js +0 -34
  299. package/dist/generators/pipeline/index.js.map +0 -1
  300. package/dist/generators/pipeline/merge-patterns.d.ts +0 -33
  301. package/dist/generators/pipeline/merge-patterns.d.ts.map +0 -1
  302. package/dist/generators/pipeline/merge-patterns.js +0 -50
  303. package/dist/generators/pipeline/merge-patterns.js.map +0 -1
  304. package/dist/generators/pipeline/relationship-resolver.d.ts +0 -47
  305. package/dist/generators/pipeline/relationship-resolver.d.ts.map +0 -1
  306. package/dist/generators/pipeline/relationship-resolver.js +0 -132
  307. package/dist/generators/pipeline/relationship-resolver.js.map +0 -1
  308. package/dist/generators/pipeline/sequence-utils.d.ts +0 -49
  309. package/dist/generators/pipeline/sequence-utils.d.ts.map +0 -1
  310. package/dist/generators/pipeline/sequence-utils.js +0 -235
  311. package/dist/generators/pipeline/sequence-utils.js.map +0 -1
  312. package/dist/generators/pipeline/transform-dataset.d.ts +0 -82
  313. package/dist/generators/pipeline/transform-dataset.d.ts.map +0 -1
  314. package/dist/generators/pipeline/transform-dataset.js +0 -355
  315. package/dist/generators/pipeline/transform-dataset.js.map +0 -1
  316. package/dist/generators/pipeline/transform-types.d.ts +0 -96
  317. package/dist/generators/pipeline/transform-types.d.ts.map +0 -1
  318. package/dist/generators/pipeline/transform-types.js +0 -18
  319. package/dist/generators/pipeline/transform-types.js.map +0 -1
  320. package/dist/generators/registry.d.ts +0 -64
  321. package/dist/generators/registry.js +0 -77
  322. package/dist/generators/registry.js.map +0 -1
  323. package/dist/generators/source-mapper.d.ts +0 -143
  324. package/dist/generators/source-mapper.d.ts.map +0 -1
  325. package/dist/generators/source-mapper.js +0 -602
  326. package/dist/generators/source-mapper.js.map +0 -1
  327. package/dist/generators/source-mapping-validator.d.ts +0 -118
  328. package/dist/generators/source-mapping-validator.d.ts.map +0 -1
  329. package/dist/generators/source-mapping-validator.js +0 -334
  330. package/dist/generators/source-mapping-validator.js.map +0 -1
  331. package/dist/generators/types.d.ts +0 -104
  332. package/dist/generators/types.js +0 -5
  333. package/dist/generators/types.js.map +0 -1
  334. package/dist/generators/warning-collector.d.ts +0 -144
  335. package/dist/generators/warning-collector.d.ts.map +0 -1
  336. package/dist/generators/warning-collector.js +0 -166
  337. package/dist/generators/warning-collector.js.map +0 -1
  338. package/dist/git/branch-diff.d.ts +0 -44
  339. package/dist/git/branch-diff.d.ts.map +0 -1
  340. package/dist/git/branch-diff.js +0 -57
  341. package/dist/git/branch-diff.js.map +0 -1
  342. package/dist/git/helpers.d.ts +0 -46
  343. package/dist/git/helpers.d.ts.map +0 -1
  344. package/dist/git/helpers.js +0 -67
  345. package/dist/git/helpers.js.map +0 -1
  346. package/dist/git/index.d.ts +0 -18
  347. package/dist/git/index.d.ts.map +0 -1
  348. package/dist/git/index.js +0 -18
  349. package/dist/git/index.js.map +0 -1
  350. package/dist/git/name-status.d.ts +0 -32
  351. package/dist/git/name-status.d.ts.map +0 -1
  352. package/dist/git/name-status.js +0 -66
  353. package/dist/git/name-status.js.map +0 -1
  354. package/dist/index.d.ts +0 -107
  355. package/dist/index.js +0 -122
  356. package/dist/index.js.map +0 -1
  357. package/dist/lint/engine.d.ts +0 -113
  358. package/dist/lint/engine.d.ts.map +0 -1
  359. package/dist/lint/engine.js +0 -228
  360. package/dist/lint/engine.js.map +0 -1
  361. package/dist/lint/index.d.ts +0 -26
  362. package/dist/lint/index.d.ts.map +0 -1
  363. package/dist/lint/index.js +0 -24
  364. package/dist/lint/index.js.map +0 -1
  365. package/dist/lint/process-guard/decider.d.ts +0 -166
  366. package/dist/lint/process-guard/decider.d.ts.map +0 -1
  367. package/dist/lint/process-guard/decider.js +0 -412
  368. package/dist/lint/process-guard/decider.js.map +0 -1
  369. package/dist/lint/process-guard/derive-state.d.ts +0 -96
  370. package/dist/lint/process-guard/derive-state.d.ts.map +0 -1
  371. package/dist/lint/process-guard/derive-state.js +0 -368
  372. package/dist/lint/process-guard/derive-state.js.map +0 -1
  373. package/dist/lint/process-guard/detect-changes.d.ts +0 -109
  374. package/dist/lint/process-guard/detect-changes.d.ts.map +0 -1
  375. package/dist/lint/process-guard/detect-changes.js +0 -487
  376. package/dist/lint/process-guard/detect-changes.js.map +0 -1
  377. package/dist/lint/process-guard/index.d.ts +0 -35
  378. package/dist/lint/process-guard/index.d.ts.map +0 -1
  379. package/dist/lint/process-guard/index.js +0 -39
  380. package/dist/lint/process-guard/index.js.map +0 -1
  381. package/dist/lint/process-guard/types.d.ts +0 -255
  382. package/dist/lint/process-guard/types.d.ts.map +0 -1
  383. package/dist/lint/process-guard/types.js +0 -31
  384. package/dist/lint/process-guard/types.js.map +0 -1
  385. package/dist/lint/rules.d.ts +0 -147
  386. package/dist/lint/rules.d.ts.map +0 -1
  387. package/dist/lint/rules.js +0 -289
  388. package/dist/lint/rules.js.map +0 -1
  389. package/dist/lint/steps/cross-checks.d.ts +0 -66
  390. package/dist/lint/steps/cross-checks.d.ts.map +0 -1
  391. package/dist/lint/steps/cross-checks.js +0 -290
  392. package/dist/lint/steps/cross-checks.js.map +0 -1
  393. package/dist/lint/steps/feature-checks.d.ts +0 -78
  394. package/dist/lint/steps/feature-checks.d.ts.map +0 -1
  395. package/dist/lint/steps/feature-checks.js +0 -279
  396. package/dist/lint/steps/feature-checks.js.map +0 -1
  397. package/dist/lint/steps/index.d.ts +0 -22
  398. package/dist/lint/steps/index.d.ts.map +0 -1
  399. package/dist/lint/steps/index.js +0 -26
  400. package/dist/lint/steps/index.js.map +0 -1
  401. package/dist/lint/steps/pair-resolver.d.ts +0 -29
  402. package/dist/lint/steps/pair-resolver.d.ts.map +0 -1
  403. package/dist/lint/steps/pair-resolver.js +0 -76
  404. package/dist/lint/steps/pair-resolver.js.map +0 -1
  405. package/dist/lint/steps/runner.d.ts +0 -28
  406. package/dist/lint/steps/runner.d.ts.map +0 -1
  407. package/dist/lint/steps/runner.js +0 -143
  408. package/dist/lint/steps/runner.js.map +0 -1
  409. package/dist/lint/steps/step-checks.d.ts +0 -41
  410. package/dist/lint/steps/step-checks.d.ts.map +0 -1
  411. package/dist/lint/steps/step-checks.js +0 -164
  412. package/dist/lint/steps/step-checks.js.map +0 -1
  413. package/dist/lint/steps/types.d.ts +0 -95
  414. package/dist/lint/steps/types.d.ts.map +0 -1
  415. package/dist/lint/steps/types.js +0 -79
  416. package/dist/lint/steps/types.js.map +0 -1
  417. package/dist/lint/steps/utils.d.ts +0 -22
  418. package/dist/lint/steps/utils.d.ts.map +0 -1
  419. package/dist/lint/steps/utils.js +0 -57
  420. package/dist/lint/steps/utils.js.map +0 -1
  421. package/dist/mcp/file-watcher.d.ts +0 -24
  422. package/dist/mcp/file-watcher.js +0 -75
  423. package/dist/mcp/file-watcher.js.map +0 -1
  424. package/dist/mcp/index.d.ts +0 -19
  425. package/dist/mcp/index.js +0 -21
  426. package/dist/mcp/index.js.map +0 -1
  427. package/dist/mcp/pipeline-session.d.ts +0 -33
  428. package/dist/mcp/pipeline-session.js +0 -149
  429. package/dist/mcp/pipeline-session.js.map +0 -1
  430. package/dist/mcp/server.d.ts +0 -28
  431. package/dist/mcp/server.js +0 -197
  432. package/dist/mcp/server.js.map +0 -1
  433. package/dist/mcp/tool-registry.d.ts +0 -4
  434. package/dist/mcp/tool-registry.js +0 -525
  435. package/dist/mcp/tool-registry.js.map +0 -1
  436. package/dist/renderable/codecs/adr.d.ts +0 -4730
  437. package/dist/renderable/codecs/adr.d.ts.map +0 -1
  438. package/dist/renderable/codecs/adr.js +0 -590
  439. package/dist/renderable/codecs/adr.js.map +0 -1
  440. package/dist/renderable/codecs/architecture.d.ts +0 -4760
  441. package/dist/renderable/codecs/architecture.d.ts.map +0 -1
  442. package/dist/renderable/codecs/architecture.js +0 -524
  443. package/dist/renderable/codecs/architecture.js.map +0 -1
  444. package/dist/renderable/codecs/business-rules.d.ts +0 -4777
  445. package/dist/renderable/codecs/business-rules.d.ts.map +0 -1
  446. package/dist/renderable/codecs/business-rules.js +0 -648
  447. package/dist/renderable/codecs/business-rules.js.map +0 -1
  448. package/dist/renderable/codecs/claude-module.d.ts +0 -4710
  449. package/dist/renderable/codecs/claude-module.d.ts.map +0 -1
  450. package/dist/renderable/codecs/claude-module.js +0 -214
  451. package/dist/renderable/codecs/claude-module.js.map +0 -1
  452. package/dist/renderable/codecs/composite.d.ts +0 -84
  453. package/dist/renderable/codecs/composite.d.ts.map +0 -1
  454. package/dist/renderable/codecs/composite.js +0 -124
  455. package/dist/renderable/codecs/composite.js.map +0 -1
  456. package/dist/renderable/codecs/convention-extractor.d.ts +0 -105
  457. package/dist/renderable/codecs/convention-extractor.d.ts.map +0 -1
  458. package/dist/renderable/codecs/convention-extractor.js +0 -353
  459. package/dist/renderable/codecs/convention-extractor.js.map +0 -1
  460. package/dist/renderable/codecs/decision-doc.d.ts +0 -308
  461. package/dist/renderable/codecs/decision-doc.d.ts.map +0 -1
  462. package/dist/renderable/codecs/decision-doc.js +0 -485
  463. package/dist/renderable/codecs/decision-doc.js.map +0 -1
  464. package/dist/renderable/codecs/design-review.d.ts +0 -55
  465. package/dist/renderable/codecs/design-review.d.ts.map +0 -1
  466. package/dist/renderable/codecs/design-review.js +0 -532
  467. package/dist/renderable/codecs/design-review.js.map +0 -1
  468. package/dist/renderable/codecs/diagram-utils.d.ts +0 -62
  469. package/dist/renderable/codecs/diagram-utils.d.ts.map +0 -1
  470. package/dist/renderable/codecs/diagram-utils.js +0 -70
  471. package/dist/renderable/codecs/diagram-utils.js.map +0 -1
  472. package/dist/renderable/codecs/helpers.d.ts +0 -553
  473. package/dist/renderable/codecs/helpers.d.ts.map +0 -1
  474. package/dist/renderable/codecs/helpers.js +0 -913
  475. package/dist/renderable/codecs/helpers.js.map +0 -1
  476. package/dist/renderable/codecs/index-codec.d.ts +0 -4714
  477. package/dist/renderable/codecs/index.d.ts +0 -46
  478. package/dist/renderable/codecs/index.d.ts.map +0 -1
  479. package/dist/renderable/codecs/index.js +0 -70
  480. package/dist/renderable/codecs/index.js.map +0 -1
  481. package/dist/renderable/codecs/patterns.d.ts +0 -4757
  482. package/dist/renderable/codecs/patterns.d.ts.map +0 -1
  483. package/dist/renderable/codecs/patterns.js +0 -462
  484. package/dist/renderable/codecs/patterns.js.map +0 -1
  485. package/dist/renderable/codecs/planning.d.ts +0 -14055
  486. package/dist/renderable/codecs/planning.d.ts.map +0 -1
  487. package/dist/renderable/codecs/planning.js +0 -449
  488. package/dist/renderable/codecs/planning.js.map +0 -1
  489. package/dist/renderable/codecs/pr-changes.d.ts +0 -4742
  490. package/dist/renderable/codecs/pr-changes.d.ts.map +0 -1
  491. package/dist/renderable/codecs/pr-changes.js +0 -425
  492. package/dist/renderable/codecs/pr-changes.js.map +0 -1
  493. package/dist/renderable/codecs/reference.d.ts +0 -215
  494. package/dist/renderable/codecs/reference.d.ts.map +0 -1
  495. package/dist/renderable/codecs/reference.js +0 -1578
  496. package/dist/renderable/codecs/reference.js.map +0 -1
  497. package/dist/renderable/codecs/reporting.d.ts +0 -14026
  498. package/dist/renderable/codecs/reporting.d.ts.map +0 -1
  499. package/dist/renderable/codecs/reporting.js +0 -365
  500. package/dist/renderable/codecs/reporting.js.map +0 -1
  501. package/dist/renderable/codecs/requirements.d.ts +0 -4743
  502. package/dist/renderable/codecs/requirements.d.ts.map +0 -1
  503. package/dist/renderable/codecs/requirements.js +0 -428
  504. package/dist/renderable/codecs/requirements.js.map +0 -1
  505. package/dist/renderable/codecs/session.d.ts +0 -9410
  506. package/dist/renderable/codecs/session.d.ts.map +0 -1
  507. package/dist/renderable/codecs/session.js +0 -848
  508. package/dist/renderable/codecs/session.js.map +0 -1
  509. package/dist/renderable/codecs/shape-matcher.d.ts +0 -54
  510. package/dist/renderable/codecs/shape-matcher.d.ts.map +0 -1
  511. package/dist/renderable/codecs/shape-matcher.js +0 -106
  512. package/dist/renderable/codecs/shape-matcher.js.map +0 -1
  513. package/dist/renderable/codecs/shared-schema.d.ts +0 -44
  514. package/dist/renderable/codecs/shared-schema.d.ts.map +0 -1
  515. package/dist/renderable/codecs/shared-schema.js +0 -43
  516. package/dist/renderable/codecs/shared-schema.js.map +0 -1
  517. package/dist/renderable/codecs/taxonomy.d.ts +0 -4733
  518. package/dist/renderable/codecs/taxonomy.d.ts.map +0 -1
  519. package/dist/renderable/codecs/taxonomy.js +0 -570
  520. package/dist/renderable/codecs/taxonomy.js.map +0 -1
  521. package/dist/renderable/codecs/timeline.d.ts +0 -14094
  522. package/dist/renderable/codecs/timeline.d.ts.map +0 -1
  523. package/dist/renderable/codecs/timeline.js +0 -906
  524. package/dist/renderable/codecs/timeline.js.map +0 -1
  525. package/dist/renderable/codecs/types/base.d.ts +0 -81
  526. package/dist/renderable/codecs/types/base.d.ts.map +0 -1
  527. package/dist/renderable/codecs/types/base.js +0 -56
  528. package/dist/renderable/codecs/types/base.js.map +0 -1
  529. package/dist/renderable/codecs/types/index.d.ts +0 -5
  530. package/dist/renderable/codecs/types/index.d.ts.map +0 -1
  531. package/dist/renderable/codecs/types/index.js +0 -5
  532. package/dist/renderable/codecs/types/index.js.map +0 -1
  533. package/dist/renderable/codecs/validation-rules.d.ts +0 -4773
  534. package/dist/renderable/codecs/validation-rules.d.ts.map +0 -1
  535. package/dist/renderable/codecs/validation-rules.js +0 -537
  536. package/dist/renderable/codecs/validation-rules.js.map +0 -1
  537. package/dist/renderable/generate.d.ts +0 -338
  538. package/dist/renderable/generate.d.ts.map +0 -1
  539. package/dist/renderable/generate.js +0 -437
  540. package/dist/renderable/generate.js.map +0 -1
  541. package/dist/renderable/index.d.ts +0 -36
  542. package/dist/renderable/index.d.ts.map +0 -1
  543. package/dist/renderable/index.js +0 -58
  544. package/dist/renderable/index.js.map +0 -1
  545. package/dist/renderable/load-preamble.d.ts +0 -56
  546. package/dist/renderable/load-preamble.d.ts.map +0 -1
  547. package/dist/renderable/load-preamble.js +0 -298
  548. package/dist/renderable/load-preamble.js.map +0 -1
  549. package/dist/renderable/render.d.ts +0 -61
  550. package/dist/renderable/render.d.ts.map +0 -1
  551. package/dist/renderable/render.js +0 -346
  552. package/dist/renderable/render.js.map +0 -1
  553. package/dist/renderable/schema.d.ts +0 -194
  554. package/dist/renderable/schema.d.ts.map +0 -1
  555. package/dist/renderable/schema.js +0 -197
  556. package/dist/renderable/schema.js.map +0 -1
  557. package/dist/renderable/utils.d.ts +0 -146
  558. package/dist/renderable/utils.d.ts.map +0 -1
  559. package/dist/renderable/utils.js +0 -362
  560. package/dist/renderable/utils.js.map +0 -1
  561. package/dist/scanner/ast-parser.d.ts +0 -75
  562. package/dist/scanner/ast-parser.d.ts.map +0 -1
  563. package/dist/scanner/ast-parser.js +0 -835
  564. package/dist/scanner/ast-parser.js.map +0 -1
  565. package/dist/scanner/gherkin-ast-parser.d.ts +0 -166
  566. package/dist/scanner/gherkin-ast-parser.d.ts.map +0 -1
  567. package/dist/scanner/gherkin-ast-parser.js +0 -507
  568. package/dist/scanner/gherkin-ast-parser.js.map +0 -1
  569. package/dist/scanner/gherkin-scanner.d.ts +0 -106
  570. package/dist/scanner/gherkin-scanner.d.ts.map +0 -1
  571. package/dist/scanner/gherkin-scanner.js +0 -149
  572. package/dist/scanner/gherkin-scanner.js.map +0 -1
  573. package/dist/scanner/index.d.ts +0 -85
  574. package/dist/scanner/index.d.ts.map +0 -1
  575. package/dist/scanner/index.js +0 -102
  576. package/dist/scanner/index.js.map +0 -1
  577. package/dist/scanner/pattern-scanner.d.ts +0 -83
  578. package/dist/scanner/pattern-scanner.d.ts.map +0 -1
  579. package/dist/scanner/pattern-scanner.js +0 -110
  580. package/dist/scanner/pattern-scanner.js.map +0 -1
  581. package/dist/taxonomy/categories.d.ts +0 -47
  582. package/dist/taxonomy/categories.d.ts.map +0 -1
  583. package/dist/taxonomy/categories.js +0 -175
  584. package/dist/taxonomy/categories.js.map +0 -1
  585. package/dist/taxonomy/claude-section-values.d.ts +0 -12
  586. package/dist/taxonomy/claude-section-values.d.ts.map +0 -1
  587. package/dist/taxonomy/claude-section-values.js +0 -17
  588. package/dist/taxonomy/claude-section-values.js.map +0 -1
  589. package/dist/taxonomy/conventions.d.ts +0 -13
  590. package/dist/taxonomy/conventions.d.ts.map +0 -1
  591. package/dist/taxonomy/conventions.js +0 -27
  592. package/dist/taxonomy/conventions.js.map +0 -1
  593. package/dist/taxonomy/deliverable-status.d.ts +0 -99
  594. package/dist/taxonomy/deliverable-status.d.ts.map +0 -1
  595. package/dist/taxonomy/deliverable-status.js +0 -131
  596. package/dist/taxonomy/deliverable-status.js.map +0 -1
  597. package/dist/taxonomy/format-types.d.ts +0 -17
  598. package/dist/taxonomy/format-types.d.ts.map +0 -1
  599. package/dist/taxonomy/format-types.js +0 -23
  600. package/dist/taxonomy/format-types.js.map +0 -1
  601. package/dist/taxonomy/generator-options.d.ts +0 -67
  602. package/dist/taxonomy/generator-options.d.ts.map +0 -1
  603. package/dist/taxonomy/generator-options.js +0 -75
  604. package/dist/taxonomy/generator-options.js.map +0 -1
  605. package/dist/taxonomy/hierarchy-levels.d.ts +0 -23
  606. package/dist/taxonomy/hierarchy-levels.d.ts.map +0 -1
  607. package/dist/taxonomy/hierarchy-levels.js +0 -22
  608. package/dist/taxonomy/hierarchy-levels.js.map +0 -1
  609. package/dist/taxonomy/index.d.ts +0 -35
  610. package/dist/taxonomy/index.d.ts.map +0 -1
  611. package/dist/taxonomy/index.js +0 -56
  612. package/dist/taxonomy/index.js.map +0 -1
  613. package/dist/taxonomy/layer-types.d.ts +0 -22
  614. package/dist/taxonomy/layer-types.d.ts.map +0 -1
  615. package/dist/taxonomy/layer-types.js +0 -28
  616. package/dist/taxonomy/layer-types.js.map +0 -1
  617. package/dist/taxonomy/normalized-status.d.ts +0 -99
  618. package/dist/taxonomy/normalized-status.d.ts.map +0 -1
  619. package/dist/taxonomy/normalized-status.js +0 -113
  620. package/dist/taxonomy/normalized-status.js.map +0 -1
  621. package/dist/taxonomy/registry-builder.d.ts +0 -104
  622. package/dist/taxonomy/registry-builder.d.ts.map +0 -1
  623. package/dist/taxonomy/registry-builder.js +0 -561
  624. package/dist/taxonomy/registry-builder.js.map +0 -1
  625. package/dist/taxonomy/risk-levels.d.ts +0 -16
  626. package/dist/taxonomy/risk-levels.d.ts.map +0 -1
  627. package/dist/taxonomy/risk-levels.js +0 -15
  628. package/dist/taxonomy/risk-levels.js.map +0 -1
  629. package/dist/taxonomy/severity-types.d.ts +0 -6
  630. package/dist/taxonomy/severity-types.d.ts.map +0 -1
  631. package/dist/taxonomy/severity-types.js +0 -5
  632. package/dist/taxonomy/severity-types.js.map +0 -1
  633. package/dist/taxonomy/status-values.d.ts +0 -39
  634. package/dist/taxonomy/status-values.d.ts.map +0 -1
  635. package/dist/taxonomy/status-values.js +0 -42
  636. package/dist/taxonomy/status-values.js.map +0 -1
  637. package/dist/types/branded.d.ts +0 -89
  638. package/dist/types/branded.d.ts.map +0 -1
  639. package/dist/types/branded.js +0 -57
  640. package/dist/types/branded.js.map +0 -1
  641. package/dist/types/errors.d.ts +0 -342
  642. package/dist/types/errors.d.ts.map +0 -1
  643. package/dist/types/errors.js +0 -251
  644. package/dist/types/errors.js.map +0 -1
  645. package/dist/types/index.d.ts +0 -41
  646. package/dist/types/index.d.ts.map +0 -1
  647. package/dist/types/index.js +0 -5
  648. package/dist/types/index.js.map +0 -1
  649. package/dist/types/result.d.ts +0 -78
  650. package/dist/types/result.d.ts.map +0 -1
  651. package/dist/types/result.js +0 -78
  652. package/dist/types/result.js.map +0 -1
  653. package/dist/utils/collection-utils.d.ts +0 -49
  654. package/dist/utils/collection-utils.d.ts.map +0 -1
  655. package/dist/utils/collection-utils.js +0 -58
  656. package/dist/utils/collection-utils.js.map +0 -1
  657. package/dist/utils/id-utils.d.ts +0 -46
  658. package/dist/utils/id-utils.d.ts.map +0 -1
  659. package/dist/utils/id-utils.js +0 -51
  660. package/dist/utils/id-utils.js.map +0 -1
  661. package/dist/utils/index.d.ts +0 -21
  662. package/dist/utils/index.d.ts.map +0 -1
  663. package/dist/utils/index.js +0 -21
  664. package/dist/utils/index.js.map +0 -1
  665. package/dist/utils/string-utils.d.ts +0 -150
  666. package/dist/utils/string-utils.d.ts.map +0 -1
  667. package/dist/utils/string-utils.js +0 -281
  668. package/dist/utils/string-utils.js.map +0 -1
  669. package/dist/validation/anti-patterns.d.ts +0 -134
  670. package/dist/validation/anti-patterns.d.ts.map +0 -1
  671. package/dist/validation/anti-patterns.js +0 -307
  672. package/dist/validation/anti-patterns.js.map +0 -1
  673. package/dist/validation/dod-validator.d.ts +0 -94
  674. package/dist/validation/dod-validator.d.ts.map +0 -1
  675. package/dist/validation/dod-validator.js +0 -198
  676. package/dist/validation/dod-validator.js.map +0 -1
  677. package/dist/validation/fsm/index.d.ts +0 -59
  678. package/dist/validation/fsm/index.d.ts.map +0 -1
  679. package/dist/validation/fsm/index.js +0 -64
  680. package/dist/validation/fsm/index.js.map +0 -1
  681. package/dist/validation/fsm/states.d.ts +0 -93
  682. package/dist/validation/fsm/states.d.ts.map +0 -1
  683. package/dist/validation/fsm/states.js +0 -98
  684. package/dist/validation/fsm/states.js.map +0 -1
  685. package/dist/validation/fsm/transitions.d.ts +0 -100
  686. package/dist/validation/fsm/transitions.d.ts.map +0 -1
  687. package/dist/validation/fsm/transitions.js +0 -122
  688. package/dist/validation/fsm/transitions.js.map +0 -1
  689. package/dist/validation/fsm/validator.d.ts +0 -163
  690. package/dist/validation/fsm/validator.d.ts.map +0 -1
  691. package/dist/validation/fsm/validator.js +0 -205
  692. package/dist/validation/fsm/validator.js.map +0 -1
  693. package/dist/validation/index.d.ts +0 -23
  694. package/dist/validation/index.d.ts.map +0 -1
  695. package/dist/validation/index.js +0 -25
  696. package/dist/validation/index.js.map +0 -1
  697. package/dist/validation/types.d.ts +0 -136
  698. package/dist/validation/types.d.ts.map +0 -1
  699. package/dist/validation/types.js +0 -56
  700. package/dist/validation/types.js.map +0 -1
  701. package/dist/validation-schemas/codec-utils.d.ts +0 -188
  702. package/dist/validation-schemas/codec-utils.d.ts.map +0 -1
  703. package/dist/validation-schemas/codec-utils.js +0 -258
  704. package/dist/validation-schemas/codec-utils.js.map +0 -1
  705. package/dist/validation-schemas/config.d.ts +0 -99
  706. package/dist/validation-schemas/config.d.ts.map +0 -1
  707. package/dist/validation-schemas/config.js +0 -178
  708. package/dist/validation-schemas/config.js.map +0 -1
  709. package/dist/validation-schemas/doc-directive.d.ts +0 -195
  710. package/dist/validation-schemas/doc-directive.d.ts.map +0 -1
  711. package/dist/validation-schemas/doc-directive.js +0 -239
  712. package/dist/validation-schemas/doc-directive.js.map +0 -1
  713. package/dist/validation-schemas/dual-source.d.ts +0 -167
  714. package/dist/validation-schemas/dual-source.d.ts.map +0 -1
  715. package/dist/validation-schemas/dual-source.js +0 -168
  716. package/dist/validation-schemas/dual-source.js.map +0 -1
  717. package/dist/validation-schemas/export-info.d.ts +0 -53
  718. package/dist/validation-schemas/export-info.d.ts.map +0 -1
  719. package/dist/validation-schemas/export-info.js +0 -101
  720. package/dist/validation-schemas/export-info.js.map +0 -1
  721. package/dist/validation-schemas/extracted-pattern.d.ts +0 -351
  722. package/dist/validation-schemas/extracted-pattern.d.ts.map +0 -1
  723. package/dist/validation-schemas/extracted-pattern.js +0 -459
  724. package/dist/validation-schemas/extracted-pattern.js.map +0 -1
  725. package/dist/validation-schemas/extracted-shape.d.ts +0 -200
  726. package/dist/validation-schemas/extracted-shape.d.ts.map +0 -1
  727. package/dist/validation-schemas/extracted-shape.js +0 -182
  728. package/dist/validation-schemas/extracted-shape.js.map +0 -1
  729. package/dist/validation-schemas/feature.d.ts +0 -554
  730. package/dist/validation-schemas/feature.d.ts.map +0 -1
  731. package/dist/validation-schemas/feature.js +0 -262
  732. package/dist/validation-schemas/feature.js.map +0 -1
  733. package/dist/validation-schemas/index.d.ts +0 -15
  734. package/dist/validation-schemas/index.d.ts.map +0 -1
  735. package/dist/validation-schemas/index.js +0 -32
  736. package/dist/validation-schemas/index.js.map +0 -1
  737. package/dist/validation-schemas/lint.d.ts +0 -46
  738. package/dist/validation-schemas/lint.d.ts.map +0 -1
  739. package/dist/validation-schemas/lint.js +0 -45
  740. package/dist/validation-schemas/lint.js.map +0 -1
  741. package/dist/validation-schemas/master-dataset.d.ts +0 -8299
  742. package/dist/validation-schemas/master-dataset.d.ts.map +0 -1
  743. package/dist/validation-schemas/master-dataset.js +0 -275
  744. package/dist/validation-schemas/master-dataset.js.map +0 -1
  745. package/dist/validation-schemas/output-schemas.d.ts +0 -183
  746. package/dist/validation-schemas/output-schemas.d.ts.map +0 -1
  747. package/dist/validation-schemas/output-schemas.js +0 -149
  748. package/dist/validation-schemas/output-schemas.js.map +0 -1
  749. package/dist/validation-schemas/scenario-ref.d.ts +0 -80
  750. package/dist/validation-schemas/scenario-ref.d.ts.map +0 -1
  751. package/dist/validation-schemas/scenario-ref.js +0 -73
  752. package/dist/validation-schemas/scenario-ref.js.map +0 -1
  753. package/dist/validation-schemas/tag-registry.d.ts +0 -210
  754. package/dist/validation-schemas/tag-registry.d.ts.map +0 -1
  755. package/dist/validation-schemas/tag-registry.js +0 -248
  756. package/dist/validation-schemas/tag-registry.js.map +0 -1
  757. package/dist/validation-schemas/workflow-config.d.ts +0 -125
  758. package/dist/validation-schemas/workflow-config.d.ts.map +0 -1
  759. package/dist/validation-schemas/workflow-config.js +0 -138
  760. package/dist/validation-schemas/workflow-config.js.map +0 -1
@@ -1,707 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * @architect
4
- * @architect-cli
5
- * @architect-pattern ValidatePatternsCLI
6
- * @architect-status completed
7
- * @architect-uses PatternScanner, GherkinScanner, DocExtractor, GherkinExtractor, MasterDataset, CodecUtils
8
- * @architect-extract-shapes ValidateCLIConfig, ValidationIssue, ValidationSummary
9
- *
10
- * ## ValidatePatternsCLI - Cross-Source Pattern Validator
11
- *
12
- * Cross-validates TypeScript patterns vs Gherkin feature files.
13
- * Ensures consistency between code annotations and feature specifications.
14
- *
15
- * ### Exit Codes
16
- *
17
- * - `0` - No errors
18
- * - `1` - Errors found
19
- * - `2` - Warnings found (with --strict)
20
- *
21
- * ### When to Use
22
- *
23
- * - Pre-commit validation to ensure code and feature files stay in sync
24
- * - CI pipeline to catch documentation drift early
25
- * - Strict mode (`--strict`) for production readiness checks
26
- */
27
- // ─── Error Convention ───────────────────────────────────────────────────
28
- // CLI modules use throw/catch + process.exit(). Pipeline modules use Result<T,E>.
29
- // See src/cli/error-handler.ts for the unified handler.
30
- // ────────────────────────────────────────────────────────────────────────
31
- import { printVersionAndExit } from './version.js';
32
- import { handleCliError } from './error-handler.js';
33
- import { getPatternName } from '../api/pattern-helpers.js';
34
- import { scanPatterns } from '../scanner/index.js';
35
- import { scanGherkinFiles } from '../scanner/gherkin-scanner.js';
36
- import { loadConfig, applyProjectSourceDefaults, formatConfigError, } from '../config/config-loader.js';
37
- import { buildMasterDataset } from '../generators/pipeline/index.js';
38
- import { ScannerConfigSchema, createJsonOutputCodec, ValidationSummaryOutputSchema, } from '../validation-schemas/index.js';
39
- import { normalizeStatus, isPatternComplete } from '../taxonomy/index.js';
40
- import { validateDoD, formatDoDSummary, detectAntiPatterns, formatAntiPatternReport, toValidationIssues, DEFAULT_THRESHOLDS, } from '../validation/index.js';
41
- /**
42
- * Codec for serializing validation summary to JSON
43
- */
44
- const ValidationSummaryCodec = createJsonOutputCodec(ValidationSummaryOutputSchema);
45
- /**
46
- * Parse command line arguments
47
- */
48
- export function parseArgs(argv = process.argv.slice(2)) {
49
- const config = {
50
- input: [],
51
- features: [],
52
- exclude: [],
53
- baseDir: process.cwd(),
54
- strict: false,
55
- format: 'pretty',
56
- help: false,
57
- dod: false,
58
- phases: [],
59
- antiPatterns: false,
60
- scenarioBloatThreshold: DEFAULT_THRESHOLDS.scenarioBloatThreshold,
61
- megaFeatureLineThreshold: DEFAULT_THRESHOLDS.megaFeatureLineThreshold,
62
- magicCommentThreshold: DEFAULT_THRESHOLDS.magicCommentThreshold,
63
- version: false,
64
- verbose: false,
65
- };
66
- for (let i = 0; i < argv.length; i++) {
67
- const arg = argv[i];
68
- if (arg === '--help' || arg === '-h') {
69
- config.help = true;
70
- }
71
- else if (arg === '--input' || arg === '-i') {
72
- const nextArg = argv[++i];
73
- if (!nextArg) {
74
- throw new Error(`Missing value for ${arg} flag`);
75
- }
76
- config.input.push(nextArg);
77
- }
78
- else if (arg === '--features' || arg === '-F') {
79
- const nextArg = argv[++i];
80
- if (!nextArg) {
81
- throw new Error(`Missing value for ${arg} flag`);
82
- }
83
- config.features.push(nextArg);
84
- }
85
- else if (arg === '--exclude' || arg === '-e') {
86
- const nextArg = argv[++i];
87
- if (!nextArg) {
88
- throw new Error(`Missing value for ${arg} flag`);
89
- }
90
- config.exclude.push(nextArg);
91
- }
92
- else if (arg === '--base-dir' || arg === '-b') {
93
- const nextArg = argv[++i];
94
- if (!nextArg) {
95
- throw new Error(`Missing value for ${arg} flag`);
96
- }
97
- config.baseDir = nextArg;
98
- }
99
- else if (arg === '--strict') {
100
- config.strict = true;
101
- }
102
- else if (arg === '--format' || arg === '-f') {
103
- const nextArg = argv[++i];
104
- if (!nextArg) {
105
- throw new Error(`Missing value for ${arg} flag`);
106
- }
107
- if (nextArg !== 'pretty' && nextArg !== 'json') {
108
- throw new Error(`Invalid format: ${nextArg}. Use "pretty" or "json"`);
109
- }
110
- config.format = nextArg;
111
- }
112
- else if (arg === '--dod') {
113
- config.dod = true;
114
- }
115
- else if (arg === '--phase') {
116
- const nextArg = argv[++i];
117
- if (!nextArg) {
118
- throw new Error(`Missing value for ${arg} flag`);
119
- }
120
- const phaseNum = parseInt(nextArg, 10);
121
- if (isNaN(phaseNum) || phaseNum < 1) {
122
- throw new Error(`Invalid phase number: ${nextArg}. Must be a positive integer.`);
123
- }
124
- config.phases.push(phaseNum);
125
- }
126
- else if (arg === '--anti-patterns') {
127
- config.antiPatterns = true;
128
- }
129
- else if (arg === '--scenario-threshold') {
130
- const nextArg = argv[++i];
131
- if (!nextArg) {
132
- throw new Error(`Missing value for ${arg} flag`);
133
- }
134
- const threshold = parseInt(nextArg, 10);
135
- if (isNaN(threshold) || threshold < 1) {
136
- throw new Error(`Invalid threshold: ${nextArg}. Must be a positive integer.`);
137
- }
138
- config.scenarioBloatThreshold = threshold;
139
- }
140
- else if (arg === '--mega-feature-threshold') {
141
- const nextArg = argv[++i];
142
- if (!nextArg) {
143
- throw new Error(`Missing value for ${arg} flag`);
144
- }
145
- const threshold = parseInt(nextArg, 10);
146
- if (isNaN(threshold) || threshold < 1) {
147
- throw new Error(`Invalid threshold: ${nextArg}. Must be a positive integer.`);
148
- }
149
- config.megaFeatureLineThreshold = threshold;
150
- }
151
- else if (arg === '--magic-comment-threshold') {
152
- const nextArg = argv[++i];
153
- if (!nextArg) {
154
- throw new Error(`Missing value for ${arg} flag`);
155
- }
156
- const threshold = parseInt(nextArg, 10);
157
- if (isNaN(threshold) || threshold < 1) {
158
- throw new Error(`Invalid threshold: ${nextArg}. Must be a positive integer.`);
159
- }
160
- config.magicCommentThreshold = threshold;
161
- }
162
- else if (arg === '--version' || arg === '-v') {
163
- config.version = true;
164
- }
165
- else if (arg === '--verbose') {
166
- config.verbose = true;
167
- }
168
- else if (arg?.startsWith('-') === true) {
169
- console.warn(`Warning: Unknown flag '${arg}' ignored`);
170
- }
171
- }
172
- return config;
173
- }
174
- /**
175
- * Print usage information
176
- */
177
- export function printHelp() {
178
- console.log(`
179
- architect-validate - Cross-validate TypeScript patterns vs Gherkin features
180
-
181
- Usage:
182
- architect-validate [options]
183
-
184
- Options:
185
- -i, --input <pattern> Glob pattern for TypeScript files (repeatable; falls back to config)
186
- -F, --features <pattern> Glob pattern for Gherkin feature files (repeatable; falls back to config)
187
- -e, --exclude <pattern> Glob pattern to exclude (repeatable)
188
- -b, --base-dir <dir> Base directory for paths (default: cwd)
189
- --strict Treat warnings as errors (exit 2 on warnings)
190
- --verbose Show info-level messages (hidden by default)
191
- -f, --format <type> Output format: "pretty" (default) or "json"
192
- -h, --help Show this help message
193
- -v, --version Show version number
194
-
195
- DoD Validation:
196
- --dod Enable Definition of Done validation
197
- --phase <N> Validate specific phase (repeatable, default: all completed)
198
-
199
- Anti-Pattern Detection:
200
- --anti-patterns Enable anti-pattern detection
201
- --scenario-threshold <N> Max scenarios per feature (default: 30)
202
- --mega-feature-threshold <N> Max lines per feature (default: 750)
203
- --magic-comment-threshold <N> Max magic comments (default: 5)
204
-
205
- Exit Codes:
206
- 0 No issues found
207
- 1 Errors found
208
- 2 Warnings found (with --strict)
209
-
210
- Cross-Source Validation Checks:
211
- error phase-mismatch Phase number differs between sources
212
- error status-mismatch Status differs between sources
213
- warning missing-pattern-in-gherkin Pattern in TypeScript has no matching feature
214
- warning missing-deliverables Completed phase has no deliverables defined
215
- warning deliverable-missing-fields Deliverable missing required fields
216
- info missing-pattern-in-ts Pattern in Gherkin has no matching TypeScript
217
- info unmatched-dependency Dependency references non-existent pattern
218
-
219
- DoD Validation Checks (--dod):
220
- error incomplete-deliverables Completed phase has incomplete deliverables
221
- error missing-acceptance-criteria Completed phase has no @acceptance-criteria scenarios
222
-
223
- Anti-Pattern Detection (--anti-patterns):
224
- error tag-duplication Dependencies in features (should be code-only)
225
- error process-in-code Process metadata in code (should be features-only)
226
- warning magic-comments Too many generator hints in features
227
- warning scenario-bloat Too many scenarios per feature
228
- warning mega-feature Feature file too large
229
-
230
- Examples:
231
- # Cross-source validation
232
- architect-validate -i "src/**/*.ts" -F "tests/features/**/*.feature"
233
-
234
- # DoD validation for all completed phases
235
- architect-validate -i "src/**/*.ts" -F "features/**/*.feature" --dod
236
-
237
- # DoD validation for specific phase
238
- architect-validate -i "src/**/*.ts" -F "features/**/*.feature" --dod --phase 14
239
-
240
- # Anti-pattern detection
241
- architect-validate -i "src/**/*.ts" -F "features/**/*.feature" --anti-patterns
242
-
243
- # Full validation (cross-source + DoD + anti-patterns)
244
- architect-validate -i "src/**/*.ts" -F "features/**/*.feature" --dod --anti-patterns --strict
245
-
246
- # JSON output for tooling
247
- architect-validate -i "src/**/*.ts" -F "features/**/*.feature" --format json
248
- `);
249
- }
250
- /**
251
- * Check if a TS pattern has a cross-source match via implements relationships.
252
- *
253
- * DD-3 Phase 2: For TS patterns not matched by name, check:
254
- * 1. If any Gherkin pattern implements this TS pattern (implementedBy)
255
- * 2. If this TS pattern implements a Gherkin pattern (implementsPatterns)
256
- */
257
- function hasImplementsMatch(tsPattern, tsName, gherkinByName, dataset) {
258
- // Check if a Gherkin pattern implements this TS pattern
259
- if ((dataset.relationshipIndex?.[tsName]?.implementedBy.length ?? 0) > 0) {
260
- return true;
261
- }
262
- // Check if this TS pattern implements a Gherkin pattern
263
- const implements_ = tsPattern.implementsPatterns ?? [];
264
- for (const implName of implements_) {
265
- if (gherkinByName.has(implName.toLowerCase())) {
266
- return true;
267
- }
268
- }
269
- return false;
270
- }
271
- /**
272
- * Check if a Gherkin pattern has a cross-source match via implements relationships.
273
- *
274
- * Symmetric counterpart to hasImplementsMatch for the Gherkin→TS direction:
275
- * 1. If a TS pattern implements this Gherkin pattern (implementedBy)
276
- * 2. If this Gherkin pattern implements a TS pattern (implementsPatterns)
277
- */
278
- function hasGherkinImplementsMatch(gherkinPattern, tsByName, dataset) {
279
- const name = getPatternName(gherkinPattern);
280
- // Check reverse: a TS pattern implements this Gherkin pattern
281
- if (dataset.relationshipIndex?.[name]?.implementedBy.some((ref) => tsByName.has(ref.name.toLowerCase())) === true) {
282
- return true;
283
- }
284
- // Check forward: this Gherkin pattern implements a TS pattern
285
- const implements_ = gherkinPattern.implementsPatterns ?? [];
286
- for (const implName of implements_) {
287
- if (tsByName.has(implName.toLowerCase())) {
288
- return true;
289
- }
290
- }
291
- return false;
292
- }
293
- /**
294
- * Validate cross-source consistency using the MasterDataset read model.
295
- *
296
- * Compares TypeScript patterns against Gherkin patterns to find:
297
- * - Missing patterns in either source (with implements-aware resolution)
298
- * - Phase number mismatches
299
- * - Status mismatches (after normalization)
300
- * - Missing deliverables for completed phases
301
- * - Invalid dependencies
302
- *
303
- * DD-2: Consumes RuntimeMasterDataset instead of raw scanner/extractor output.
304
- * DD-3: Two-phase matching — name-based first, then relationshipIndex fallback.
305
- *
306
- * @param dataset - The pre-computed MasterDataset read model
307
- * @returns Validation summary with issues and statistics
308
- */
309
- export function validatePatterns(dataset) {
310
- const issues = [];
311
- const tsPatterns = dataset.bySource.typescript;
312
- const gherkinPatterns = dataset.bySource.gherkin;
313
- // Phase 1: Build name-based maps for efficient lookups
314
- const tsByName = new Map();
315
- const gherkinByName = new Map();
316
- for (const p of tsPatterns) {
317
- tsByName.set(getPatternName(p).toLowerCase(), p);
318
- }
319
- for (const p of gherkinPatterns) {
320
- gherkinByName.set(getPatternName(p).toLowerCase(), p);
321
- }
322
- let matched = 0;
323
- let missingInGherkinCount = 0;
324
- // Check TypeScript patterns against Gherkin
325
- for (const tsPattern of tsPatterns) {
326
- const tsName = getPatternName(tsPattern).toLowerCase();
327
- let gherkinMatch = gherkinByName.get(tsName);
328
- // If the Gherkin pattern explicitly implements a DIFFERENT pattern, it's not
329
- // a true name match — it's a naming collision. The Gherkin pattern belongs to
330
- // whichever pattern it declares in @architect-implements.
331
- if (gherkinMatch !== undefined) {
332
- const gherkinImpl = gherkinMatch.implementsPatterns ?? [];
333
- if (gherkinImpl.length > 0 && !gherkinImpl.some((n) => n.toLowerCase() === tsName)) {
334
- gherkinMatch = undefined;
335
- }
336
- }
337
- if (!gherkinMatch) {
338
- // Phase 2: Check implements relationships before reporting
339
- if (hasImplementsMatch(tsPattern, getPatternName(tsPattern), gherkinByName, dataset)) {
340
- matched++;
341
- }
342
- else if (tsPattern.phase !== undefined) {
343
- // Only report for roadmap patterns (those with phase numbers)
344
- const name = getPatternName(tsPattern);
345
- missingInGherkinCount++;
346
- issues.push({
347
- severity: 'warning',
348
- message: `Pattern "${name}" in TypeScript has no matching Gherkin feature`,
349
- source: 'cross-source',
350
- pattern: name,
351
- file: tsPattern.source.file,
352
- });
353
- }
354
- }
355
- else {
356
- matched++;
357
- // Check phase consistency
358
- if (tsPattern.phase !== undefined && gherkinMatch.phase !== undefined) {
359
- if (tsPattern.phase !== gherkinMatch.phase) {
360
- const name = getPatternName(tsPattern);
361
- issues.push({
362
- severity: 'error',
363
- message: `Phase mismatch for "${name}": TypeScript=${tsPattern.phase}, Gherkin=${gherkinMatch.phase}`,
364
- source: 'cross-source',
365
- pattern: name,
366
- });
367
- }
368
- }
369
- // Check status consistency
370
- if (tsPattern.status && gherkinMatch.status) {
371
- const tsStatus = normalizeStatus(tsPattern.status);
372
- const gherkinStatus = normalizeStatus(gherkinMatch.status);
373
- if (tsStatus !== gherkinStatus) {
374
- const name = getPatternName(tsPattern);
375
- // Include both raw and normalized values for clarity when they differ textually
376
- const rawDiffers = tsPattern.status.toLowerCase() !== gherkinMatch.status.toLowerCase();
377
- const message = rawDiffers
378
- ? `Status mismatch for "${name}": TypeScript="${tsPattern.status}" (→${tsStatus}), Gherkin="${gherkinMatch.status}" (→${gherkinStatus})`
379
- : `Status mismatch for "${name}": TypeScript=${tsStatus}, Gherkin=${gherkinStatus}`;
380
- issues.push({
381
- severity: 'error',
382
- message,
383
- source: 'cross-source',
384
- pattern: name,
385
- });
386
- }
387
- }
388
- }
389
- }
390
- // Check Gherkin patterns against TypeScript
391
- let missingInTsCount = 0;
392
- for (const gherkinPattern of gherkinPatterns) {
393
- const gherkinName = getPatternName(gherkinPattern).toLowerCase();
394
- let tsMatch = tsByName.get(gherkinName);
395
- // Symmetric collision guard: if the TS pattern implements a DIFFERENT Gherkin
396
- // pattern, it's a naming collision, not a true match.
397
- if (tsMatch !== undefined) {
398
- const tsImpl = tsMatch.implementsPatterns ?? [];
399
- if (tsImpl.length > 0 && !tsImpl.some((n) => n.toLowerCase() === gherkinName)) {
400
- tsMatch = undefined;
401
- }
402
- }
403
- if (!tsMatch) {
404
- // Two-phase implements resolution (symmetric with TS→Gherkin direction)
405
- if (!hasGherkinImplementsMatch(gherkinPattern, tsByName, dataset)) {
406
- const name = getPatternName(gherkinPattern);
407
- missingInTsCount++;
408
- issues.push({
409
- severity: 'info',
410
- message: `Pattern "${name}" in Gherkin has no matching TypeScript pattern`,
411
- source: 'cross-source',
412
- pattern: name,
413
- file: gherkinPattern.source.file,
414
- });
415
- }
416
- }
417
- }
418
- // Check deliverables for completed roadmap patterns (those with phase numbers).
419
- // Test features and ADRs are completed but don't participate in the deliverables workflow.
420
- for (const gherkinPattern of gherkinPatterns) {
421
- if (isPatternComplete(gherkinPattern.status) && gherkinPattern.phase !== undefined) {
422
- const deliverables = gherkinPattern.deliverables ?? [];
423
- const name = getPatternName(gherkinPattern);
424
- if (deliverables.length === 0) {
425
- issues.push({
426
- severity: 'warning',
427
- message: `Completed pattern "${name}" has no deliverables defined`,
428
- source: 'gherkin',
429
- pattern: name,
430
- file: gherkinPattern.source.file,
431
- });
432
- }
433
- else {
434
- // Validate deliverable fields
435
- for (const d of deliverables) {
436
- if (!d.name || d.name.trim() === '') {
437
- issues.push({
438
- severity: 'warning',
439
- message: `Deliverable in "${name}" missing name`,
440
- source: 'gherkin',
441
- pattern: name,
442
- });
443
- }
444
- }
445
- }
446
- }
447
- }
448
- // Check dependencies exist
449
- const allPatternNames = new Set([...tsByName.keys(), ...gherkinByName.keys()]);
450
- for (const pattern of tsPatterns) {
451
- const deps = pattern.dependsOn ?? [];
452
- for (const dep of deps) {
453
- if (!allPatternNames.has(dep.toLowerCase())) {
454
- const name = getPatternName(pattern);
455
- issues.push({
456
- severity: 'info',
457
- message: `Pattern "${name}" depends on "${dep}" which does not exist`,
458
- source: 'typescript',
459
- pattern: name,
460
- });
461
- }
462
- }
463
- }
464
- return {
465
- issues,
466
- stats: {
467
- typescriptPatterns: tsPatterns.length,
468
- gherkinPatterns: gherkinPatterns.length,
469
- matched,
470
- missingInGherkin: missingInGherkinCount,
471
- missingInTypeScript: missingInTsCount,
472
- },
473
- };
474
- }
475
- /**
476
- * Format summary for pretty output
477
- */
478
- function formatPretty(summary, verbose = false) {
479
- const lines = [];
480
- lines.push('Pattern Validation Summary');
481
- lines.push('==========================');
482
- lines.push('');
483
- // Stats
484
- lines.push(`TypeScript patterns: ${summary.stats.typescriptPatterns}`);
485
- lines.push(`Gherkin patterns: ${summary.stats.gherkinPatterns}`);
486
- lines.push(`Matched: ${summary.stats.matched}`);
487
- lines.push('');
488
- // Group issues by severity
489
- const errors = summary.issues.filter((i) => i.severity === 'error');
490
- const warnings = summary.issues.filter((i) => i.severity === 'warning');
491
- const infos = summary.issues.filter((i) => i.severity === 'info');
492
- if (errors.length > 0) {
493
- lines.push(`Errors (${errors.length}):`);
494
- for (const issue of errors) {
495
- lines.push(` [ERROR] ${issue.message}`);
496
- if (issue.file) {
497
- lines.push(` at ${issue.file}`);
498
- }
499
- }
500
- lines.push('');
501
- }
502
- if (warnings.length > 0) {
503
- lines.push(`Warnings (${warnings.length}):`);
504
- for (const issue of warnings) {
505
- lines.push(` [WARN] ${issue.message}`);
506
- if (issue.file) {
507
- lines.push(` at ${issue.file}`);
508
- }
509
- }
510
- lines.push('');
511
- }
512
- if (infos.length > 0 && verbose) {
513
- lines.push(`Info (${infos.length}):`);
514
- for (const issue of infos) {
515
- lines.push(` [INFO] ${issue.message}`);
516
- if (issue.file) {
517
- lines.push(` at ${issue.file}`);
518
- }
519
- }
520
- lines.push('');
521
- }
522
- // Summary line
523
- if (errors.length === 0 && warnings.length === 0) {
524
- lines.push('All validations passed.');
525
- }
526
- else {
527
- lines.push(`Found ${errors.length} error(s), ${warnings.length} warning(s), ${infos.length} info message(s).`);
528
- }
529
- return lines.join('\n');
530
- }
531
- /**
532
- * Format summary as JSON
533
- *
534
- * Uses ValidationSummaryCodec for type-safe serialization.
535
- *
536
- * @throws Error if serialization fails (should never happen with valid data)
537
- */
538
- function formatJson(summary) {
539
- const result = ValidationSummaryCodec.serialize(summary);
540
- if (!result.ok) {
541
- throw new Error(`Validation summary serialization failed: ${result.error.message}`);
542
- }
543
- return result.value;
544
- }
545
- /**
546
- * Main CLI function
547
- */
548
- async function main() {
549
- const config = parseArgs();
550
- if (config.version) {
551
- printVersionAndExit('architect-validate');
552
- }
553
- if (config.help) {
554
- printHelp();
555
- process.exit(0);
556
- }
557
- // Apply config-based defaults if CLI flags not provided
558
- const configApplied = await applyProjectSourceDefaults(config);
559
- if (!configApplied && config.input.length === 0) {
560
- console.error(' (No architect.config.ts or architect.config.js found; provide -i/--input flags)');
561
- }
562
- // Validate that we have sources (from CLI or config)
563
- if (config.input.length === 0) {
564
- console.error('Error: No TypeScript sources specified.');
565
- console.error('Provide -i/--input flags or configure sources in architect.config.ts or architect.config.js');
566
- process.exit(1);
567
- }
568
- if (config.features.length === 0) {
569
- console.error('Error: No feature files specified.');
570
- console.error('Provide -F/--features flags or configure sources in architect.config.ts or architect.config.js');
571
- process.exit(1);
572
- }
573
- try {
574
- // Load configuration (discovers architect.config.ts or architect.config.js)
575
- const configResult = await loadConfig(config.baseDir);
576
- if (!configResult.ok) {
577
- console.error(formatConfigError(configResult.error));
578
- process.exit(1);
579
- }
580
- const { instance: dpInstance, isDefault, path: configPath } = configResult.value;
581
- const registry = dpInstance.registry;
582
- const configSource = !isDefault && configPath ? configPath : '(default libar-generic preset)';
583
- if (config.format === 'pretty') {
584
- console.log('Validating patterns...');
585
- console.log(` Config: ${configSource}`);
586
- console.log(` Base directory: ${config.baseDir}`);
587
- console.log(` TypeScript patterns: ${config.input.join(', ')}`);
588
- console.log(` Gherkin patterns: ${config.features.join(', ')}`);
589
- console.log('');
590
- }
591
- // Build MasterDataset via shared pipeline factory (DD-7)
592
- const pipelineResult = await buildMasterDataset({
593
- input: config.input,
594
- features: config.features,
595
- baseDir: config.baseDir,
596
- mergeConflictStrategy: 'concatenate',
597
- ...(config.exclude.length > 0 ? { exclude: config.exclude } : {}),
598
- });
599
- if (!pipelineResult.ok) {
600
- throw new Error(`Pipeline error [${pipelineResult.error.step}]: ${pipelineResult.error.message}`);
601
- }
602
- const { dataset, warnings: pipelineWarnings } = pipelineResult.value;
603
- if (config.format === 'pretty') {
604
- for (const w of pipelineWarnings) {
605
- console.warn(`⚠️ ${w.message}`);
606
- }
607
- }
608
- // Raw scans for stage-1 consumers (DoD validation, anti-pattern detection)
609
- // These correctly use scanned file data, not the MasterDataset — see DD-7
610
- const scannerConfig = ScannerConfigSchema.parse({
611
- patterns: config.input,
612
- exclude: config.exclude.length > 0 ? config.exclude : undefined,
613
- baseDir: config.baseDir,
614
- });
615
- const scanResult = await scanPatterns(scannerConfig, registry);
616
- if (!scanResult.ok) {
617
- throw new Error('Unexpected scan failure');
618
- }
619
- const gherkinScanResult = await scanGherkinFiles({
620
- patterns: config.features,
621
- baseDir: config.baseDir,
622
- });
623
- if (!gherkinScanResult.ok) {
624
- throw new Error('Unexpected Gherkin scan failure');
625
- }
626
- // Warn if no patterns found (common misconfiguration)
627
- if (dataset.bySource.typescript.length === 0) {
628
- console.warn('⚠️ Warning: No TypeScript patterns found. Check your --input patterns.');
629
- }
630
- if (dataset.bySource.gherkin.length === 0) {
631
- console.warn('⚠️ Warning: No Gherkin patterns found. Check your --features patterns.');
632
- }
633
- // Run cross-source validation against the read model (DD-2)
634
- const summary = validatePatterns(dataset);
635
- // Output cross-source results
636
- if (config.format === 'pretty') {
637
- console.log(formatPretty(summary, config.verbose));
638
- }
639
- // Run DoD validation if enabled
640
- let dodHasErrors = false;
641
- if (config.dod) {
642
- const dodSummary = validateDoD(gherkinScanResult.value.files, config.phases);
643
- if (config.format === 'pretty') {
644
- console.log(formatDoDSummary(dodSummary));
645
- }
646
- // Add DoD failures to issues
647
- for (const result of dodSummary.results) {
648
- if (!result.isDoDMet) {
649
- dodHasErrors = true;
650
- for (const msg of result.messages) {
651
- if (!msg.startsWith('DoD met')) {
652
- summary.issues.push({
653
- severity: 'error',
654
- message: `[DoD] Phase ${result.phase} (${result.patternName}): ${msg}`,
655
- source: 'gherkin',
656
- pattern: result.patternName,
657
- });
658
- }
659
- }
660
- }
661
- }
662
- }
663
- // Run anti-pattern detection if enabled
664
- let antiPatternHasErrors = false;
665
- if (config.antiPatterns) {
666
- const thresholds = {
667
- scenarioBloatThreshold: config.scenarioBloatThreshold,
668
- megaFeatureLineThreshold: config.megaFeatureLineThreshold,
669
- magicCommentThreshold: config.magicCommentThreshold,
670
- };
671
- const violations = detectAntiPatterns(scanResult.value.files, gherkinScanResult.value.files, {
672
- thresholds,
673
- });
674
- if (config.format === 'pretty') {
675
- console.log(formatAntiPatternReport(violations));
676
- }
677
- // Add anti-pattern violations to issues
678
- const antiPatternIssues = toValidationIssues(violations);
679
- summary.issues.push(...antiPatternIssues);
680
- antiPatternHasErrors = violations.some((v) => v.severity === 'error');
681
- }
682
- // Output JSON if requested (all results combined)
683
- if (config.format === 'json') {
684
- console.log(formatJson(summary));
685
- }
686
- // Determine exit code based on all validation results
687
- const hasErrors = summary.issues.some((i) => i.severity === 'error') || dodHasErrors || antiPatternHasErrors;
688
- const hasWarnings = summary.issues.some((i) => i.severity === 'warning');
689
- if (hasErrors) {
690
- process.exit(1);
691
- }
692
- else if (hasWarnings && config.strict) {
693
- process.exit(2);
694
- }
695
- else {
696
- process.exit(0);
697
- }
698
- }
699
- catch (error) {
700
- handleCliError(error, 1);
701
- }
702
- }
703
- // Entry point — catch ensures parseArgs errors reach the unified handler
704
- void main().catch((error) => {
705
- handleCliError(error, 1);
706
- });
707
- //# sourceMappingURL=validate-patterns.js.map