@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,26 @@
1
+ /**
2
+ * @architect
3
+ * @architect-lint
4
+ * @architect-pattern LintModule
5
+ * @architect-status completed
6
+ * @architect-uses LintRules, LintEngine
7
+ *
8
+ * ## LintModule - Annotation Quality Checking
9
+ *
10
+ * Provides lint rules and engine for pattern annotation quality checking.
11
+ * Exports the complete lint API including rules, engine, and formatters.
12
+ *
13
+ * ### When to Use
14
+ *
15
+ * - Use when importing lint functionality into CLI or other consumers
16
+ * - Use for accessing both rules and engine from a single import
17
+ */
18
+ export type { LintSeverity, LintViolation } from '../validation-schemas/lint.js';
19
+ export type { LintRule, LintContext } from './rules.js';
20
+ export { defaultRules, filterRulesBySeverity, missingPatternName, invalidStatus, missingStatus, missingWhenToUse, tautologicalDescription, missingRelationships, patternConflictInImplements, missingRelationshipTarget, } from './rules.js';
21
+ export type { LintResult, LintSummary, DirectiveWithLocation } from './engine.js';
22
+ export { lintDirective, lintFiles, hasFailures, sortViolationsBySeverity, formatPretty, formatJson, } from './engine.js';
23
+ export * from './process-guard/index.js';
24
+ export { runStepLint, STEP_LINT_RULES } from './steps/index.js';
25
+ export type { StepLintRule, FeatureStepPair, StepLintOptions } from './steps/index.js';
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACjF,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,YAAY,EACZ,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,cAAc,0BAA0B,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @architect
3
+ * @architect-lint
4
+ * @architect-pattern LintModule
5
+ * @architect-status completed
6
+ * @architect-uses LintRules, LintEngine
7
+ *
8
+ * ## LintModule - Annotation Quality Checking
9
+ *
10
+ * Provides lint rules and engine for pattern annotation quality checking.
11
+ * Exports the complete lint API including rules, engine, and formatters.
12
+ *
13
+ * ### When to Use
14
+ *
15
+ * - Use when importing lint functionality into CLI or other consumers
16
+ * - Use for accessing both rules and engine from a single import
17
+ */
18
+ export { defaultRules, filterRulesBySeverity, missingPatternName, invalidStatus, missingStatus, missingWhenToUse, tautologicalDescription, missingRelationships, patternConflictInImplements, missingRelationshipTarget, } from './rules.js';
19
+ export { lintDirective, lintFiles, hasFailures, sortViolationsBySeverity, formatPretty, formatJson, } from './engine.js';
20
+ // Process Guard (FSM validation, change detection, protection enforcement)
21
+ export * from './process-guard/index.js';
22
+ // Step Lint (vitest-cucumber feature/step compatibility checking)
23
+ export { runStepLint, STEP_LINT_RULES } from './steps/index.js';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,YAAY,EACZ,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,2EAA2E;AAC3E,cAAc,0BAA0B,CAAC;AAEzC,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * @architect
3
+ * @architect-lint
4
+ * @architect-pattern ProcessGuardDecider
5
+ * @architect-status active
6
+ * @architect-arch-role decider
7
+ * @architect-arch-context lint
8
+ * @architect-arch-layer application
9
+ * @architect-implements ProcessGuardLinter
10
+ * @architect-uses FSMValidator, DeriveProcessState, DetectChanges
11
+ * @architect-depends-on:FSMValidator,DeriveProcessState,DetectChanges
12
+ * @architect-convention process-guard-errors
13
+ * @architect-extract-shapes validateChanges
14
+ *
15
+ * ## ProcessGuardDecider - Pure Validation Logic
16
+ *
17
+ * Pure function that validates changes against process rules.
18
+ * Follows the Decider pattern from platform-core: no I/O, no side effects.
19
+ *
20
+ * ### When to Use
21
+ *
22
+ * - When validating proposed changes against workflow rules
23
+ * - When implementing custom validation rules for the process guard
24
+ * - When building pre-commit hooks that enforce FSM transitions
25
+ *
26
+ * ### Design Principles
27
+ *
28
+ * - **Pure Function**: (state, changes, options) => result
29
+ * - **No I/O**: All data passed in, no file reads
30
+ * - **Composable Rules**: Rules are separate functions combined in decider
31
+ * - **Testable**: Easy to unit test with mock data
32
+ *
33
+ * ### Rules Implemented
34
+ *
35
+ * 1. **Protection Level** - Completed files require unlock-reason
36
+ * 2. **Status Transition** - Transitions must follow PDR-005 FSM
37
+ * 3. **Scope Creep** - Active specs cannot add new deliverables
38
+ * 4. **Session Scope** - Modifications outside session scope warn
39
+ *
40
+ * ### Error Guide Content (convention: process-guard-errors)
41
+ *
42
+ * ## completed-protection
43
+ *
44
+ * **Invariant:** Completed specs are immutable without an explicit unlock
45
+ * reason. The unlock reason must be at least 10 characters and cannot be
46
+ * a placeholder.
47
+ *
48
+ * **Rationale:** The `completed` status represents verified, accepted work.
49
+ * Allowing silent modification undermines the terminal-state guarantee.
50
+ * Requiring an unlock reason creates an audit trail and forces the developer
51
+ * to justify why completed work needs revisiting.
52
+ *
53
+ * | Situation | Solution | Example |
54
+ * |-----------|----------|---------|
55
+ * | Fix typo in completed spec | Add unlock reason tag | `@architect-unlock-reason:Fix-typo-in-FSM-diagram` |
56
+ * | Spec needs rework | Create new spec instead | New feature file with `roadmap` status |
57
+ * | Legacy import | Multiple transitions in one commit | Set `roadmap` then `completed` |
58
+ *
59
+ * ## invalid-status-transition
60
+ *
61
+ * **Invariant:** Status transitions must follow the PDR-005 FSM path.
62
+ * The only valid paths are: roadmap to active, roadmap to deferred,
63
+ * active to completed, active to roadmap, deferred to roadmap.
64
+ *
65
+ * **Rationale:** The FSM enforces a deliberate progression through
66
+ * planning, implementation, and completion. Skipping states (e.g.,
67
+ * roadmap to completed) means work was never tracked as active, breaking
68
+ * session scoping and deliverable validation.
69
+ *
70
+ * | Attempted | Why Invalid | Valid Path |
71
+ * |-----------|-------------|------------|
72
+ * | roadmap to completed | Must go through active | roadmap to active to completed |
73
+ * | deferred to active | Must return to roadmap first | deferred to roadmap to active |
74
+ * | deferred to completed | Cannot skip two states | deferred to roadmap to active to completed |
75
+ *
76
+ * ## scope-creep
77
+ *
78
+ * **Invariant:** Active specs cannot add new deliverables. Scope is locked
79
+ * when status transitions to `active`.
80
+ *
81
+ * **Rationale:** Prevents scope creep during implementation. Plan fully
82
+ * before starting; implement what was planned. Adding deliverables mid-
83
+ * implementation signals inadequate planning and risks incomplete work.
84
+ *
85
+ * | Situation | Solution | Example |
86
+ * |-----------|----------|---------|
87
+ * | Need new deliverable | Revert to roadmap first | Change status to roadmap, add deliverable, then back to active |
88
+ * | Discovered work during implementation | Create new spec | New feature file for the discovered work |
89
+ *
90
+ * ## session-scope
91
+ *
92
+ * **Invariant:** Files outside the active session scope trigger warnings
93
+ * to prevent accidental cross-session modifications.
94
+ *
95
+ * **Rationale:** Session scoping ensures focused work. Modifying files
96
+ * outside the session scope often indicates scope creep or working on
97
+ * the wrong task. The warning is informational (not blocking) to allow
98
+ * intentional cross-scope changes with `--ignore-session`.
99
+ *
100
+ * ## session-excluded
101
+ *
102
+ * **Invariant:** Files explicitly excluded from a session cannot be
103
+ * modified in that session. This is a hard error, not a warning.
104
+ *
105
+ * **Rationale:** Explicit exclusion is a deliberate decision to protect
106
+ * certain files from modification during a session. Unlike session-scope
107
+ * (warning), exclusion represents a conscious boundary that should not
108
+ * be violated without changing the session configuration.
109
+ *
110
+ * ## deliverable-removed
111
+ *
112
+ * **Invariant:** Removing a deliverable from an active spec triggers a
113
+ * warning to ensure the removal is intentional and documented.
114
+ *
115
+ * **Rationale:** Deliverable removal during active implementation may
116
+ * indicate descoping or completion elsewhere. The warning ensures
117
+ * visibility -- the commit message should document why the deliverable
118
+ * was removed.
119
+ */
120
+ import type { ValidationResult, ProcessViolation, DeciderInput, DeciderOutput, ProcessGuardRule } from './types.js';
121
+ /**
122
+ * Validate changes against process rules.
123
+ *
124
+ * Pure function following the Decider pattern:
125
+ * - Takes all inputs explicitly (no hidden state)
126
+ * - Returns result without side effects
127
+ * - Emits events for observability
128
+ *
129
+ * @param input - Complete input including state, changes, and options
130
+ * @returns DeciderOutput with validation result and events
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * const output = validateChanges({
135
+ * state: processState,
136
+ * changes: changeDetection,
137
+ * options: { strict: false, ignoreSession: false },
138
+ * });
139
+ *
140
+ * if (!output.result.valid) {
141
+ * console.log('Violations:', output.result.violations);
142
+ * }
143
+ * ```
144
+ */
145
+ export declare function validateChanges(input: DeciderInput): DeciderOutput;
146
+ /**
147
+ * Check if validation result has any errors.
148
+ */
149
+ export declare function hasErrors(result: ValidationResult): boolean;
150
+ /**
151
+ * Check if validation result has any warnings.
152
+ */
153
+ export declare function hasWarnings(result: ValidationResult): boolean;
154
+ /**
155
+ * Get all violations and warnings combined.
156
+ */
157
+ export declare function getAllIssues(result: ValidationResult): readonly ProcessViolation[];
158
+ /**
159
+ * Filter violations by rule.
160
+ */
161
+ export declare function getViolationsByRule(result: ValidationResult, rule: ProcessGuardRule): readonly ProcessViolation[];
162
+ /**
163
+ * Create a summary string for the validation result.
164
+ */
165
+ export declare function summarizeResult(result: ValidationResult): string;
166
+ //# sourceMappingURL=decider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decider.d.ts","sourceRoot":"","sources":["../../../src/lint/process-guard/decider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsHG;AAQH,OAAO,KAAK,EAGV,gBAAgB,EAChB,gBAAgB,EAEhB,YAAY,EACZ,aAAa,EAEb,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAQpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CAoElE;AAuPD;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,EAAE,CAElF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,gBAAgB,GACrB,SAAS,gBAAgB,EAAE,CAE7B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAiBhE"}
@@ -0,0 +1,412 @@
1
+ /**
2
+ * @architect
3
+ * @architect-lint
4
+ * @architect-pattern ProcessGuardDecider
5
+ * @architect-status active
6
+ * @architect-arch-role decider
7
+ * @architect-arch-context lint
8
+ * @architect-arch-layer application
9
+ * @architect-implements ProcessGuardLinter
10
+ * @architect-uses FSMValidator, DeriveProcessState, DetectChanges
11
+ * @architect-depends-on:FSMValidator,DeriveProcessState,DetectChanges
12
+ * @architect-convention process-guard-errors
13
+ * @architect-extract-shapes validateChanges
14
+ *
15
+ * ## ProcessGuardDecider - Pure Validation Logic
16
+ *
17
+ * Pure function that validates changes against process rules.
18
+ * Follows the Decider pattern from platform-core: no I/O, no side effects.
19
+ *
20
+ * ### When to Use
21
+ *
22
+ * - When validating proposed changes against workflow rules
23
+ * - When implementing custom validation rules for the process guard
24
+ * - When building pre-commit hooks that enforce FSM transitions
25
+ *
26
+ * ### Design Principles
27
+ *
28
+ * - **Pure Function**: (state, changes, options) => result
29
+ * - **No I/O**: All data passed in, no file reads
30
+ * - **Composable Rules**: Rules are separate functions combined in decider
31
+ * - **Testable**: Easy to unit test with mock data
32
+ *
33
+ * ### Rules Implemented
34
+ *
35
+ * 1. **Protection Level** - Completed files require unlock-reason
36
+ * 2. **Status Transition** - Transitions must follow PDR-005 FSM
37
+ * 3. **Scope Creep** - Active specs cannot add new deliverables
38
+ * 4. **Session Scope** - Modifications outside session scope warn
39
+ *
40
+ * ### Error Guide Content (convention: process-guard-errors)
41
+ *
42
+ * ## completed-protection
43
+ *
44
+ * **Invariant:** Completed specs are immutable without an explicit unlock
45
+ * reason. The unlock reason must be at least 10 characters and cannot be
46
+ * a placeholder.
47
+ *
48
+ * **Rationale:** The `completed` status represents verified, accepted work.
49
+ * Allowing silent modification undermines the terminal-state guarantee.
50
+ * Requiring an unlock reason creates an audit trail and forces the developer
51
+ * to justify why completed work needs revisiting.
52
+ *
53
+ * | Situation | Solution | Example |
54
+ * |-----------|----------|---------|
55
+ * | Fix typo in completed spec | Add unlock reason tag | `@architect-unlock-reason:Fix-typo-in-FSM-diagram` |
56
+ * | Spec needs rework | Create new spec instead | New feature file with `roadmap` status |
57
+ * | Legacy import | Multiple transitions in one commit | Set `roadmap` then `completed` |
58
+ *
59
+ * ## invalid-status-transition
60
+ *
61
+ * **Invariant:** Status transitions must follow the PDR-005 FSM path.
62
+ * The only valid paths are: roadmap to active, roadmap to deferred,
63
+ * active to completed, active to roadmap, deferred to roadmap.
64
+ *
65
+ * **Rationale:** The FSM enforces a deliberate progression through
66
+ * planning, implementation, and completion. Skipping states (e.g.,
67
+ * roadmap to completed) means work was never tracked as active, breaking
68
+ * session scoping and deliverable validation.
69
+ *
70
+ * | Attempted | Why Invalid | Valid Path |
71
+ * |-----------|-------------|------------|
72
+ * | roadmap to completed | Must go through active | roadmap to active to completed |
73
+ * | deferred to active | Must return to roadmap first | deferred to roadmap to active |
74
+ * | deferred to completed | Cannot skip two states | deferred to roadmap to active to completed |
75
+ *
76
+ * ## scope-creep
77
+ *
78
+ * **Invariant:** Active specs cannot add new deliverables. Scope is locked
79
+ * when status transitions to `active`.
80
+ *
81
+ * **Rationale:** Prevents scope creep during implementation. Plan fully
82
+ * before starting; implement what was planned. Adding deliverables mid-
83
+ * implementation signals inadequate planning and risks incomplete work.
84
+ *
85
+ * | Situation | Solution | Example |
86
+ * |-----------|----------|---------|
87
+ * | Need new deliverable | Revert to roadmap first | Change status to roadmap, add deliverable, then back to active |
88
+ * | Discovered work during implementation | Create new spec | New feature file for the discovered work |
89
+ *
90
+ * ## session-scope
91
+ *
92
+ * **Invariant:** Files outside the active session scope trigger warnings
93
+ * to prevent accidental cross-session modifications.
94
+ *
95
+ * **Rationale:** Session scoping ensures focused work. Modifying files
96
+ * outside the session scope often indicates scope creep or working on
97
+ * the wrong task. The warning is informational (not blocking) to allow
98
+ * intentional cross-scope changes with `--ignore-session`.
99
+ *
100
+ * ## session-excluded
101
+ *
102
+ * **Invariant:** Files explicitly excluded from a session cannot be
103
+ * modified in that session. This is a hard error, not a warning.
104
+ *
105
+ * **Rationale:** Explicit exclusion is a deliberate decision to protect
106
+ * certain files from modification during a session. Unlike session-scope
107
+ * (warning), exclusion represents a conscious boundary that should not
108
+ * be violated without changing the session configuration.
109
+ *
110
+ * ## deliverable-removed
111
+ *
112
+ * **Invariant:** Removing a deliverable from an active spec triggers a
113
+ * warning to ensure the removal is intentional and documented.
114
+ *
115
+ * **Rationale:** Deliverable removal during active implementation may
116
+ * indicate descoping or completion elsewhere. The warning ensures
117
+ * visibility -- the commit message should document why the deliverable
118
+ * was removed.
119
+ */
120
+ import { validateTransition, getValidTransitionsFrom, isTerminalState, } from '../../validation/fsm/index.js';
121
+ import { isInSessionScope, isSessionExcluded } from './derive-state.js';
122
+ import { DEFAULT_TAG_PREFIX } from '../../config/defaults.js';
123
+ // =============================================================================
124
+ // Decider - Main Entry Point
125
+ // =============================================================================
126
+ /**
127
+ * Validate changes against process rules.
128
+ *
129
+ * Pure function following the Decider pattern:
130
+ * - Takes all inputs explicitly (no hidden state)
131
+ * - Returns result without side effects
132
+ * - Emits events for observability
133
+ *
134
+ * @param input - Complete input including state, changes, and options
135
+ * @returns DeciderOutput with validation result and events
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const output = validateChanges({
140
+ * state: processState,
141
+ * changes: changeDetection,
142
+ * options: { strict: false, ignoreSession: false },
143
+ * });
144
+ *
145
+ * if (!output.result.valid) {
146
+ * console.log('Violations:', output.result.violations);
147
+ * }
148
+ * ```
149
+ */
150
+ export function validateChanges(input) {
151
+ const { state, changes, options } = input;
152
+ const events = [];
153
+ const violations = [];
154
+ const warnings = [];
155
+ // Emit start event
156
+ const allFiles = [...changes.modifiedFiles, ...changes.addedFiles];
157
+ events.push({ type: 'validation_started', fileCount: allFiles.length });
158
+ // Run each rule
159
+ const rules = [
160
+ {
161
+ rule: 'completed-protection',
162
+ fn: () => checkProtectionLevel(state, changes, options.registry),
163
+ },
164
+ {
165
+ rule: 'invalid-status-transition',
166
+ fn: () => checkStatusTransitions(state, changes),
167
+ },
168
+ { rule: 'scope-creep', fn: () => checkScopeCreep(state, changes) },
169
+ {
170
+ rule: 'session-scope',
171
+ fn: () => (options.ignoreSession ? [] : checkSessionScope(state, changes)),
172
+ },
173
+ {
174
+ rule: 'session-excluded',
175
+ fn: () => (options.ignoreSession ? [] : checkSessionExcluded(state, changes)),
176
+ },
177
+ ];
178
+ for (const { rule, fn } of rules) {
179
+ const ruleViolations = fn();
180
+ const passed = ruleViolations.length === 0;
181
+ events.push({ type: 'rule_checked', rule, passed });
182
+ for (const v of ruleViolations) {
183
+ if (v.severity === 'error') {
184
+ violations.push(v);
185
+ }
186
+ else {
187
+ warnings.push(v);
188
+ }
189
+ }
190
+ }
191
+ // In strict mode, promote warnings to violations
192
+ const finalViolations = options.strict
193
+ ? [...violations, ...warnings.map((w) => ({ ...w, severity: 'error' }))]
194
+ : violations;
195
+ const finalWarnings = options.strict ? [] : warnings;
196
+ const valid = finalViolations.length === 0;
197
+ events.push({
198
+ type: 'validation_completed',
199
+ valid,
200
+ violationCount: finalViolations.length,
201
+ });
202
+ return {
203
+ result: {
204
+ valid,
205
+ violations: finalViolations,
206
+ warnings: finalWarnings,
207
+ processState: state,
208
+ changes,
209
+ },
210
+ events,
211
+ };
212
+ }
213
+ // =============================================================================
214
+ // Rule: Protection Level
215
+ // =============================================================================
216
+ /**
217
+ * Check protection level violations.
218
+ *
219
+ * - Completed (hard) files require unlock-reason tag
220
+ * - Returns error if modified without unlock
221
+ *
222
+ * @param state - Current process state
223
+ * @param changes - Detected changes
224
+ * @param registry - Optional tag registry for prefix-aware messages
225
+ */
226
+ function checkProtectionLevel(state, changes, registry) {
227
+ const tagPrefix = registry?.tagPrefix ?? DEFAULT_TAG_PREFIX;
228
+ const violations = [];
229
+ for (const file of [...changes.modifiedFiles, ...changes.addedFiles]) {
230
+ const fileState = state.files.get(file);
231
+ if (!fileState)
232
+ continue;
233
+ // Check hard protection (completed)
234
+ if (fileState.protection === 'hard' && !fileState.hasUnlockReason) {
235
+ // Exempt files transitioning TO a terminal state — this is a completion, not a post-completion edit
236
+ const transition = changes.statusTransitions.get(file);
237
+ if (transition !== undefined && isTerminalState(transition.to)) {
238
+ continue;
239
+ }
240
+ violations.push(createViolation('completed-protection', 'error', `Cannot modify completed spec '${file}' without unlock reason`, file, `Add ${tagPrefix}unlock-reason:'your reason' to proceed`));
241
+ }
242
+ }
243
+ return violations;
244
+ }
245
+ // =============================================================================
246
+ // Rule: Status Transitions
247
+ // =============================================================================
248
+ /**
249
+ * Check status transition validity.
250
+ *
251
+ * Uses FSM validation from phase-state-machine module.
252
+ * Enhanced error messages include line numbers and docstring context.
253
+ */
254
+ function checkStatusTransitions(state, changes) {
255
+ const violations = [];
256
+ for (const [file, transition] of changes.statusTransitions) {
257
+ // Only validated unlock reasons bypass FSM, and only for retroactive completion paths
258
+ const fileState = state.files.get(file);
259
+ if (transition.to === 'completed' &&
260
+ transition.hasUnlockReason === true &&
261
+ fileState?.hasUnlockReason === true) {
262
+ continue;
263
+ }
264
+ const validationResult = validateTransition(transition.from, transition.to);
265
+ if (!validationResult.valid) {
266
+ const validTransitions = getValidTransitionsFrom(transition.from);
267
+ // Build detailed message with context
268
+ const fileContext = transition.isNewFile === true ? ' (new file)' : '';
269
+ const lineInfo = transition.toLocation ? ` at line ${transition.toLocation.lineNumber}` : '';
270
+ const message = `Invalid status transition in '${file}'${fileContext}${lineInfo}: ${transition.from} → ${transition.to}`;
271
+ // Build suggestion with debugging hints
272
+ let suggestion = `Valid transitions from '${transition.from}': ${validTransitions.join(', ')}`;
273
+ // Add docstring debugging info if multiple tags were found
274
+ if (transition.allDetectedTags && transition.allDetectedTags.length > 1) {
275
+ const docstringTags = transition.allDetectedTags.filter((t) => t.insideDocstring);
276
+ if (docstringTags.length > 0) {
277
+ suggestion += `\n Note: ${docstringTags.length} status tag(s) inside docstrings were ignored`;
278
+ suggestion += '\n Detected tags:';
279
+ for (const tag of transition.allDetectedTags) {
280
+ const context = tag.insideDocstring ? ' [inside docstring - ignored]' : ' [file-level]';
281
+ suggestion += `\n Line ${tag.lineNumber}${context}`;
282
+ }
283
+ }
284
+ }
285
+ violations.push(createViolation('invalid-status-transition', 'error', message, file, suggestion));
286
+ }
287
+ }
288
+ return violations;
289
+ }
290
+ // =============================================================================
291
+ // Rule: Scope Creep
292
+ // =============================================================================
293
+ /**
294
+ * Check for scope creep (new deliverables in active specs).
295
+ *
296
+ * Active specs cannot add new deliverables.
297
+ */
298
+ function checkScopeCreep(state, changes) {
299
+ const violations = [];
300
+ for (const [file, deliverableChange] of changes.deliverableChanges) {
301
+ const fileState = state.files.get(file);
302
+ if (!fileState)
303
+ continue;
304
+ // Only check active specs (scope-locked)
305
+ if (fileState.protection === 'scope' && deliverableChange.added.length > 0) {
306
+ violations.push(createViolation('scope-creep', 'error', `Cannot add deliverables to active spec '${file}': ${deliverableChange.added.join(', ')}`, file, 'Create new spec or revert to roadmap status first'));
307
+ }
308
+ // Warn about removed deliverables
309
+ if (deliverableChange.removed.length > 0) {
310
+ violations.push(createViolation('deliverable-removed', 'warning', `Deliverable removed from '${file}': ${deliverableChange.removed.join(', ')}`, file, 'Was this completed or descoped? Consider documenting the reason.'));
311
+ }
312
+ }
313
+ return violations;
314
+ }
315
+ // =============================================================================
316
+ // Rule: Session Scope
317
+ // =============================================================================
318
+ /**
319
+ * Check session scope violations.
320
+ *
321
+ * Files outside active session scope trigger warnings.
322
+ */
323
+ function checkSessionScope(state, changes) {
324
+ const violations = [];
325
+ if (!state.activeSession) {
326
+ return violations; // No session, no scope rules
327
+ }
328
+ for (const file of [...changes.modifiedFiles, ...changes.addedFiles]) {
329
+ if (!isInSessionScope(state, file)) {
330
+ violations.push(createViolation('session-scope', 'warning', `File '${file}' is not in session scope`, file, `Add to session '${state.activeSession.id}' scope or use --ignore-session flag`));
331
+ }
332
+ }
333
+ return violations;
334
+ }
335
+ /**
336
+ * Check for explicitly excluded files.
337
+ *
338
+ * Explicitly excluded files trigger errors (not warnings).
339
+ */
340
+ function checkSessionExcluded(state, changes) {
341
+ const violations = [];
342
+ if (!state.activeSession) {
343
+ return violations;
344
+ }
345
+ for (const file of [...changes.modifiedFiles, ...changes.addedFiles]) {
346
+ if (isSessionExcluded(state, file)) {
347
+ violations.push(createViolation('session-excluded', 'error', `File '${file}' is explicitly excluded from session '${state.activeSession.id}'`, file, 'This file was explicitly excluded and cannot be modified in this session'));
348
+ }
349
+ }
350
+ return violations;
351
+ }
352
+ // =============================================================================
353
+ // Helpers
354
+ // =============================================================================
355
+ /**
356
+ * Create a process violation.
357
+ */
358
+ function createViolation(rule, severity, message, file, suggestion) {
359
+ // Build violation (handle exactOptionalPropertyTypes)
360
+ const violation = { rule, severity, message, file };
361
+ // Only add suggestion if provided
362
+ if (suggestion !== undefined) {
363
+ violation.suggestion = suggestion;
364
+ }
365
+ return violation;
366
+ }
367
+ // =============================================================================
368
+ // Convenience Functions
369
+ // =============================================================================
370
+ /**
371
+ * Check if validation result has any errors.
372
+ */
373
+ export function hasErrors(result) {
374
+ return result.violations.length > 0;
375
+ }
376
+ /**
377
+ * Check if validation result has any warnings.
378
+ */
379
+ export function hasWarnings(result) {
380
+ return result.warnings.length > 0;
381
+ }
382
+ /**
383
+ * Get all violations and warnings combined.
384
+ */
385
+ export function getAllIssues(result) {
386
+ return [...result.violations, ...result.warnings];
387
+ }
388
+ /**
389
+ * Filter violations by rule.
390
+ */
391
+ export function getViolationsByRule(result, rule) {
392
+ return result.violations.filter((v) => v.rule === rule);
393
+ }
394
+ /**
395
+ * Create a summary string for the validation result.
396
+ */
397
+ export function summarizeResult(result) {
398
+ const errorCount = result.violations.length;
399
+ const warningCount = result.warnings.length;
400
+ if (result.valid && warningCount === 0) {
401
+ return 'Process guard check passed';
402
+ }
403
+ const parts = [];
404
+ if (errorCount > 0) {
405
+ parts.push(`${errorCount} error${errorCount !== 1 ? 's' : ''}`);
406
+ }
407
+ if (warningCount > 0) {
408
+ parts.push(`${warningCount} warning${warningCount !== 1 ? 's' : ''}`);
409
+ }
410
+ return `Process guard check: ${parts.join(', ')}`;
411
+ }
412
+ //# sourceMappingURL=decider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decider.js","sourceRoot":"","sources":["../../../src/lint/process-guard/decider.ts"],"names":[],"mappings":"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"}