@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,848 +0,0 @@
1
- /**
2
- * @architect
3
- * @architect-core
4
- * @architect-pattern SessionCodec
5
- * @architect-status completed
6
- * @architect-arch-role projection
7
- * @architect-arch-context renderer
8
- * @architect-arch-layer application
9
- * @architect-include codec-transformation
10
- * @architect-convention codec-registry
11
- * @architect-product-area:Generation
12
- *
13
- * ## SessionContextCodec
14
- *
15
- * **Purpose:** Current session context for AI agents and developers.
16
- *
17
- * **Output Files:** `SESSION-CONTEXT.md` (session status), `sessions/phase-<N>-<name>.md` (incomplete phase details)
18
- *
19
- * ### When to Use
20
- *
21
- * - When starting a new implementation session and need to see active work status
22
- * - When generating compact context for AI agent consumption (_claude-md/ output)
23
- * - When checking incomplete phases and their deliverable progress
24
- *
25
- * ## RemainingWorkCodec
26
- *
27
- * **Purpose:** Aggregate view of all incomplete work across phases.
28
- *
29
- * **Output Files:** `REMAINING-WORK.md` (summary), `remaining/phase-<N>-<name>.md` (phase details)
30
- *
31
- * | Option | Type | Default | Description |
32
- * | --- | --- | --- | --- |
33
- * | includeIncomplete | boolean | true | Include planned items |
34
- * | includeBlocked | boolean | true | Show blocked items analysis |
35
- * | includeNextActionable | boolean | true | Next actionable items section |
36
- * | maxNextActionable | number | 5 | Max items in next actionable |
37
- * | sortBy | "phase" \| "priority" \| "effort" \| "quarter" | "phase" | Sort order |
38
- * | groupPlannedBy | "quarter" \| "priority" \| "level" \| "none" | "none" | Group planned items |
39
- */
40
- import { z } from 'zod';
41
- import { MasterDatasetSchema, } from '../../validation-schemas/master-dataset.js';
42
- import { heading, paragraph, separator, table, list, collapsible, linkOut, document, } from '../schema.js';
43
- import { normalizeStatus, isPatternComplete, isPatternActive, isPatternPlanned, } from '../../taxonomy/index.js';
44
- import { getPhaseStatusEmoji } from '../../validation/types.js';
45
- import { getStatusEmoji, getDisplayName, extractSummary, completionPercentage, renderProgressBar, sortByPhaseAndName, formatBusinessValue, } from '../utils.js';
46
- import { DEFAULT_BASE_OPTIONS, mergeOptions } from './types/base.js';
47
- /**
48
- * Default options for SessionContextCodec
49
- */
50
- export const DEFAULT_SESSION_OPTIONS = {
51
- ...DEFAULT_BASE_OPTIONS,
52
- includeAcceptanceCriteria: true,
53
- includeDependencies: true,
54
- includeDeliverables: true,
55
- includeRelatedPatterns: false,
56
- includeHandoffContext: true,
57
- };
58
- /**
59
- * Default options for RemainingWorkCodec
60
- */
61
- export const DEFAULT_REMAINING_WORK_OPTIONS = {
62
- ...DEFAULT_BASE_OPTIONS,
63
- includeIncomplete: true,
64
- includeBlocked: true,
65
- includeNextActionable: true,
66
- maxNextActionable: 5,
67
- includeStats: true,
68
- sortBy: 'phase',
69
- groupPlannedBy: 'none',
70
- };
71
- import { RenderableDocumentOutputSchema } from './shared-schema.js';
72
- import { renderAcceptanceCriteria, renderBusinessRulesSection } from './helpers.js';
73
- import { toKebabCase } from '../../utils/index.js';
74
- // ═══════════════════════════════════════════════════════════════════════════
75
- // Session Context Document Codec
76
- // ═══════════════════════════════════════════════════════════════════════════
77
- /**
78
- * Create a SessionContextCodec with custom options.
79
- *
80
- * @param options - Codec configuration options
81
- * @returns Configured Zod codec
82
- *
83
- * @example
84
- * ```typescript
85
- * // Include related patterns
86
- * const codec = createSessionContextCodec({ includeRelatedPatterns: true });
87
- *
88
- * // Disable detail files for compact output
89
- * const codec = createSessionContextCodec({ generateDetailFiles: false });
90
- * ```
91
- */
92
- export function createSessionContextCodec(options) {
93
- const opts = mergeOptions(DEFAULT_SESSION_OPTIONS, options);
94
- return z.codec(MasterDatasetSchema, RenderableDocumentOutputSchema, {
95
- decode: (dataset) => {
96
- return buildSessionContextDocument(dataset, opts);
97
- },
98
- /** @throws Always - this codec is decode-only. See zod-codecs.md */
99
- encode: () => {
100
- throw new Error('SessionContextCodec is decode-only. See zod-codecs.md');
101
- },
102
- });
103
- }
104
- /**
105
- * Default Session Context Document Codec
106
- *
107
- * Transforms MasterDataset → RenderableDocument for session context.
108
- * Shows current phase focus, active work, and planning context.
109
- */
110
- export const SessionContextCodec = createSessionContextCodec();
111
- /**
112
- * Create a RemainingWorkCodec with custom options.
113
- *
114
- * @param options - Codec configuration options
115
- * @returns Configured Zod codec
116
- *
117
- * @example
118
- * ```typescript
119
- * // Sort by priority instead of phase
120
- * const codec = createRemainingWorkCodec({ sortBy: "priority" });
121
- *
122
- * // Group planned items by quarter
123
- * const codec = createRemainingWorkCodec({ groupPlannedBy: "quarter" });
124
- * ```
125
- */
126
- export function createRemainingWorkCodec(options) {
127
- const opts = mergeOptions(DEFAULT_REMAINING_WORK_OPTIONS, options);
128
- return z.codec(MasterDatasetSchema, RenderableDocumentOutputSchema, {
129
- decode: (dataset) => {
130
- return buildRemainingWorkDocument(dataset, opts);
131
- },
132
- /** @throws Always - this codec is decode-only. See zod-codecs.md */
133
- encode: () => {
134
- throw new Error('RemainingWorkCodec is decode-only. See zod-codecs.md');
135
- },
136
- });
137
- }
138
- /**
139
- * Default Remaining Work Document Codec
140
- *
141
- * Transforms MasterDataset → RenderableDocument for remaining work.
142
- * Aggregates all incomplete work across phases.
143
- */
144
- export const RemainingWorkCodec = createRemainingWorkCodec();
145
- // ═══════════════════════════════════════════════════════════════════════════
146
- // Session Context Document Builder
147
- // ═══════════════════════════════════════════════════════════════════════════
148
- /**
149
- * Build session context document
150
- */
151
- function buildSessionContextDocument(dataset, options) {
152
- const sections = [];
153
- // 1. Overall status
154
- sections.push(...buildSessionStatus(dataset));
155
- // 2. Phase navigation table (links to detail files)
156
- sections.push(...buildSessionPhaseNavigation(dataset, options));
157
- // 3. Active work (current focus)
158
- sections.push(...buildActiveWork(dataset, options));
159
- // 4. Current phase context (summary only)
160
- sections.push(...buildCurrentPhaseContextSummary(dataset, options));
161
- // 5. Blocked items (if any - controlled by includeDependencies)
162
- if (options.includeDependencies) {
163
- sections.push(...buildBlockedItems(dataset));
164
- }
165
- // 6. Recent completions
166
- sections.push(...buildSessionRecentCompletions(dataset, options));
167
- // Build phase detail files (if enabled)
168
- const additionalFiles = options.generateDetailFiles
169
- ? buildSessionPhaseFiles(dataset, options)
170
- : {};
171
- const docOpts = {
172
- purpose: 'Current session context and focus areas',
173
- detailLevel: options.generateDetailFiles
174
- ? 'Summary with links to phase details'
175
- : 'Compact summary',
176
- };
177
- if (Object.keys(additionalFiles).length > 0) {
178
- docOpts.additionalFiles = additionalFiles;
179
- }
180
- return document('Session Context', sections, docOpts);
181
- }
182
- /**
183
- * Build session status section
184
- */
185
- function buildSessionStatus(dataset) {
186
- const { counts } = dataset;
187
- const progress = completionPercentage(counts);
188
- const progressBar = renderProgressBar(counts.completed, counts.total, 20);
189
- // Find current phase (first incomplete phase)
190
- const currentPhase = dataset.byPhase.find((p) => p.counts.total > 0 && p.counts.completed < p.counts.total);
191
- const currentPhaseInfo = currentPhase
192
- ? `Phase ${currentPhase.phaseNumber}: ${currentPhase.phaseName ?? 'Unnamed'}`
193
- : 'All phases complete';
194
- return [
195
- heading(2, 'Session Status'),
196
- paragraph(`**Overall Progress:** ${progressBar} (${progress}%)`),
197
- paragraph(`**Current Focus:** ${currentPhaseInfo}`),
198
- table(['Metric', 'Value'], [
199
- ['Active Patterns', String(counts.active)],
200
- ['Completed', String(counts.completed)],
201
- ['Remaining', String(counts.planned + counts.active)],
202
- ]),
203
- separator(),
204
- ];
205
- }
206
- /**
207
- * Build active work section
208
- */
209
- function buildActiveWork(dataset, _options) {
210
- const sections = [];
211
- const activePatterns = dataset.byStatus.active;
212
- if (activePatterns.length === 0) {
213
- sections.push(heading(2, 'Active Work'), paragraph('No patterns are currently active.'), separator());
214
- return sections;
215
- }
216
- sections.push(heading(2, 'Active Work'));
217
- sections.push(paragraph(`${activePatterns.length} patterns in progress:`));
218
- // Group by phase
219
- const byPhase = new Map();
220
- for (const p of activePatterns) {
221
- const phase = p.phase ?? 0;
222
- const existing = byPhase.get(phase) ?? [];
223
- existing.push(p);
224
- byPhase.set(phase, existing);
225
- }
226
- // Sort by phase
227
- const sortedPhases = [...byPhase.keys()].sort((a, b) => a - b);
228
- for (const phase of sortedPhases) {
229
- const patterns = byPhase.get(phase) ?? [];
230
- const phaseLabel = phase === 0 ? 'Unphased' : `Phase ${phase}`;
231
- sections.push(heading(3, `🚧 ${phaseLabel}`));
232
- const rows = patterns.map((p) => {
233
- const name = getDisplayName(p);
234
- const summary = extractSummary(p.directive.description, p.patternName);
235
- const effort = p.effort ?? '-';
236
- return [name, summary || '-', effort];
237
- });
238
- sections.push(table(['Pattern', 'Description', 'Effort'], rows));
239
- }
240
- sections.push(separator());
241
- return sections;
242
- }
243
- /**
244
- * Build current phase context summary (links to detail file)
245
- */
246
- function buildCurrentPhaseContextSummary(dataset, options) {
247
- const sections = [];
248
- // Find current phase (first incomplete)
249
- const currentPhase = dataset.byPhase.find((p) => p.counts.total > 0 && p.counts.completed < p.counts.total);
250
- if (!currentPhase) {
251
- return [];
252
- }
253
- const { phaseNumber, phaseName, counts } = currentPhase;
254
- const displayName = phaseName ?? `Phase ${phaseNumber}`;
255
- const progress = completionPercentage(counts);
256
- const progressBar = renderProgressBar(counts.completed, counts.total, 15);
257
- const slug = getSessionPhaseSlug(phaseNumber, phaseName);
258
- sections.push(heading(2, 'Current Phase Focus'));
259
- sections.push(paragraph(`**${displayName}:** ${progressBar} ${progress}% complete`), paragraph(`${counts.active} active, ${counts.planned} planned, ${counts.completed} completed`));
260
- // Only show link if generating detail files
261
- if (options.generateDetailFiles) {
262
- sections.push(linkOut(`View ${displayName} details →`, `sessions/${slug}.md`));
263
- }
264
- sections.push(separator());
265
- return sections;
266
- }
267
- /**
268
- * Build recent completions section
269
- */
270
- function buildSessionRecentCompletions(dataset, options) {
271
- const sections = [];
272
- const completed = dataset.byStatus.completed;
273
- if (completed.length === 0) {
274
- return [];
275
- }
276
- // Show most recent completions (use limits from options with safe default)
277
- const recentLimit = options.limits.recentItems ?? 10;
278
- const recent = completed.slice(-recentLimit).reverse();
279
- const completedContent = [];
280
- const items = recent.map((p) => {
281
- const name = getDisplayName(p);
282
- const phase = p.phase !== undefined ? ` (Phase ${p.phase})` : '';
283
- return `✅ ${name}${phase}`;
284
- });
285
- completedContent.push(list(items));
286
- if (completed.length > recentLimit) {
287
- completedContent.push(paragraph(`...and ${completed.length - recentLimit} more.`));
288
- }
289
- sections.push(collapsible(`Recent Completions (${completed.length} total)`, completedContent));
290
- return sections;
291
- }
292
- /**
293
- * Build blocked items section
294
- */
295
- function buildBlockedItems(dataset) {
296
- const sections = [];
297
- // Find patterns that are blocked (have unmet dependencies)
298
- const blocked = [];
299
- for (const pattern of dataset.patterns) {
300
- if (!pattern.dependsOn || pattern.dependsOn.length === 0)
301
- continue;
302
- if (isPatternComplete(pattern.status))
303
- continue;
304
- // Check if any dependency is not completed
305
- const hasUnmetDep = pattern.dependsOn.some((depName) => {
306
- const dep = dataset.patterns.find((p) => p.patternName === depName || p.name === depName);
307
- return dep !== undefined && !isPatternComplete(dep.status);
308
- });
309
- if (hasUnmetDep) {
310
- blocked.push(pattern);
311
- }
312
- }
313
- if (blocked.length === 0) {
314
- return [];
315
- }
316
- sections.push(heading(2, '⚠️ Blocked Items'));
317
- sections.push(paragraph(`${blocked.length} patterns are blocked by incomplete dependencies:`));
318
- const rows = blocked.map((p) => {
319
- const name = getDisplayName(p);
320
- const deps = (p.dependsOn ?? []).join(', ');
321
- return [name, deps];
322
- });
323
- sections.push(table(['Pattern', 'Blocked By'], rows));
324
- sections.push(separator());
325
- return sections;
326
- }
327
- // ═══════════════════════════════════════════════════════════════════════════
328
- // Session Context Progressive Disclosure
329
- // ═══════════════════════════════════════════════════════════════════════════
330
- /**
331
- * Generate slug for session phase detail file
332
- */
333
- function getSessionPhaseSlug(phaseNumber, phaseName) {
334
- const paddedPhase = String(phaseNumber).padStart(2, '0');
335
- const namePart = phaseName ? toKebabCase(phaseName) : 'unnamed';
336
- return `phase-${paddedPhase}-${namePart}`;
337
- }
338
- /**
339
- * Build session phase navigation table
340
- */
341
- function buildSessionPhaseNavigation(dataset, options) {
342
- const sections = [];
343
- // Get incomplete phases (the ones relevant for session context)
344
- const incompletePhases = dataset.byPhase.filter((p) => p.counts.total > 0 && p.counts.completed < p.counts.total);
345
- if (incompletePhases.length === 0) {
346
- return [];
347
- }
348
- sections.push(heading(2, 'Phase Navigation'));
349
- const rows = incompletePhases
350
- .sort((a, b) => a.phaseNumber - b.phaseNumber)
351
- .map((phase) => {
352
- const { phaseNumber, phaseName, counts } = phase;
353
- const displayName = phaseName ?? `Phase ${phaseNumber}`;
354
- const progress = completionPercentage(counts);
355
- const remaining = counts.total - counts.completed;
356
- const slug = getSessionPhaseSlug(phaseNumber, phaseName);
357
- const statusEmoji = getPhaseStatusEmoji(false, counts.active > 0);
358
- // Link to detail file only if generating detail files
359
- const nameCell = options.generateDetailFiles
360
- ? `${statusEmoji} [${displayName}](sessions/${slug}.md)`
361
- : `${statusEmoji} ${displayName}`;
362
- return [nameCell, `${remaining} remaining`, `${progress}%`];
363
- });
364
- sections.push(table(['Phase', 'Remaining', 'Complete'], rows), separator());
365
- return sections;
366
- }
367
- /**
368
- * Build session phase detail files (progressive disclosure)
369
- */
370
- function buildSessionPhaseFiles(dataset, options) {
371
- const files = {};
372
- // Get incomplete phases
373
- const incompletePhases = dataset.byPhase.filter((p) => p.counts.total > 0 && p.counts.completed < p.counts.total);
374
- for (const phase of incompletePhases) {
375
- const slug = getSessionPhaseSlug(phase.phaseNumber, phase.phaseName);
376
- files[`sessions/${slug}.md`] = buildSessionPhaseDetailDocument(phase, dataset, options);
377
- }
378
- return files;
379
- }
380
- /**
381
- * Build a single session phase detail document
382
- */
383
- function buildSessionPhaseDetailDocument(phase, dataset, options) {
384
- const sections = [];
385
- const { phaseNumber, phaseName, patterns, counts } = phase;
386
- const displayName = phaseName ?? `Phase ${phaseNumber}`;
387
- // Summary
388
- const progress = completionPercentage(counts);
389
- const progressBar = renderProgressBar(counts.completed, counts.total, 20);
390
- sections.push(heading(2, 'Summary'), paragraph(`**Progress:** ${progressBar} (${progress}%)`), table(['Status', 'Count'], [
391
- ['🚧 Active', String(counts.active)],
392
- ['📋 Planned', String(counts.planned)],
393
- ['✅ Completed', String(counts.completed)],
394
- ['**Total**', String(counts.total)],
395
- ]), separator());
396
- // Active patterns (priority)
397
- const active = patterns.filter((p) => isPatternActive(p.status));
398
- if (active.length > 0) {
399
- sections.push(heading(2, '🚧 Active Work'));
400
- sections.push(...buildSessionPatternList(active, true));
401
- }
402
- // Planned patterns
403
- const planned = patterns.filter((p) => isPatternPlanned(p.status));
404
- if (planned.length > 0) {
405
- sections.push(heading(2, '📋 Planned Work'));
406
- // Separate blocked from ready (only if includeDependencies is enabled)
407
- if (options.includeDependencies) {
408
- const blocked = [];
409
- const ready = [];
410
- for (const pattern of planned) {
411
- if (!pattern.dependsOn || pattern.dependsOn.length === 0) {
412
- ready.push(pattern);
413
- continue;
414
- }
415
- const hasUnmetDep = pattern.dependsOn.some((depName) => {
416
- const dep = dataset.patterns.find((p) => p.patternName === depName || p.name === depName);
417
- return dep !== undefined && !isPatternComplete(dep.status);
418
- });
419
- if (hasUnmetDep) {
420
- blocked.push(pattern);
421
- }
422
- else {
423
- ready.push(pattern);
424
- }
425
- }
426
- if (ready.length > 0) {
427
- sections.push(heading(3, '✅ Ready to Start'));
428
- sections.push(...buildSessionPatternList(ready, false));
429
- }
430
- if (blocked.length > 0) {
431
- sections.push(heading(3, '⚠️ Blocked'));
432
- sections.push(...buildBlockedPatternList(blocked));
433
- }
434
- }
435
- else {
436
- // Without dependency checking, show all planned items together
437
- sections.push(...buildSessionPatternList(planned, false));
438
- }
439
- }
440
- // Completed patterns (collapsible)
441
- const completed = patterns.filter((p) => isPatternComplete(p.status));
442
- if (completed.length > 0) {
443
- const completedContent = [];
444
- const items = completed.map((p) => `✅ ${getDisplayName(p)}`);
445
- completedContent.push(list(items));
446
- sections.push(collapsible(`Completed in this phase (${completed.length})`, completedContent));
447
- }
448
- // Back link
449
- sections.push(linkOut('← Back to Session Context', '../SESSION-CONTEXT.md'));
450
- return document(`${displayName} - Session Focus`, sections, {
451
- purpose: `Detailed session context for ${displayName}`,
452
- });
453
- }
454
- /**
455
- * Build session pattern list with details
456
- */
457
- function buildSessionPatternList(patterns, showEffort) {
458
- const sections = [];
459
- for (const pattern of sortByPhaseAndName([...patterns])) {
460
- const emoji = getStatusEmoji(pattern.status);
461
- const name = getDisplayName(pattern);
462
- sections.push(heading(3, `${emoji} ${name}`));
463
- // Metadata table
464
- const metaRows = [['Status', normalizeStatus(pattern.status)]];
465
- if (showEffort && pattern.effort) {
466
- metaRows.push(['Effort', pattern.effort]);
467
- }
468
- const businessValue = formatBusinessValue(pattern.businessValue);
469
- if (businessValue) {
470
- metaRows.push(['Business Value', businessValue]);
471
- }
472
- sections.push(table(['Property', 'Value'], metaRows));
473
- // Description
474
- if (pattern.directive.description) {
475
- sections.push(paragraph(pattern.directive.description));
476
- }
477
- // Use cases
478
- if (pattern.useCases && pattern.useCases.length > 0) {
479
- sections.push(heading(4, 'Use Cases'), list([...pattern.useCases]));
480
- }
481
- // Acceptance Criteria (scenarios with steps, DataTables, DocStrings)
482
- sections.push(...renderAcceptanceCriteria(pattern.scenarios));
483
- // Business Rules (from Gherkin Rule: keyword)
484
- sections.push(...renderBusinessRulesSection(pattern.rules));
485
- }
486
- sections.push(separator());
487
- return sections;
488
- }
489
- /**
490
- * Build blocked pattern list with dependencies
491
- */
492
- function buildBlockedPatternList(patterns) {
493
- const rows = sortByPhaseAndName([...patterns]).map((p) => {
494
- const name = getDisplayName(p);
495
- const deps = (p.dependsOn ?? []).join(', ');
496
- const effort = p.effort ?? '-';
497
- return [name, deps, effort];
498
- });
499
- return [table(['Pattern', 'Blocked By', 'Effort'], rows), separator()];
500
- }
501
- // ═══════════════════════════════════════════════════════════════════════════
502
- // Remaining Work Document Builder
503
- // ═══════════════════════════════════════════════════════════════════════════
504
- /**
505
- * Build remaining work document
506
- */
507
- function buildRemainingWorkDocument(dataset, options) {
508
- const sections = [];
509
- // Get all incomplete patterns based on options
510
- let incomplete = [];
511
- if (options.includeIncomplete) {
512
- incomplete = [...dataset.byStatus.active, ...dataset.byStatus.planned];
513
- }
514
- else {
515
- incomplete = [...dataset.byStatus.active]; // Only active
516
- }
517
- if (incomplete.length === 0) {
518
- sections.push(heading(2, 'All Work Complete'), paragraph('All patterns have been completed. 🎉'));
519
- return document('Remaining Work', sections, {
520
- purpose: 'Track incomplete work',
521
- });
522
- }
523
- // 1. Summary (if enabled)
524
- if (options.includeStats) {
525
- sections.push(...buildRemainingWorkSummary(dataset, incomplete));
526
- }
527
- // 2. Phase navigation table (links to detail files)
528
- sections.push(...buildRemainingPhaseNavigation(dataset, options));
529
- // 3. By priority (blocked vs not blocked) - summary only (if blocked items enabled)
530
- if (options.includeBlocked) {
531
- sections.push(...buildRemainingByPrioritySummary(dataset, incomplete, options));
532
- }
533
- // 4. Next actionable items (if enabled)
534
- if (options.includeNextActionable) {
535
- sections.push(...buildNextActionableItems(dataset, incomplete, options));
536
- }
537
- // Build phase detail files (if enabled)
538
- const additionalFiles = options.generateDetailFiles
539
- ? buildRemainingPhaseFiles(dataset, options)
540
- : {};
541
- const docOpts = {
542
- purpose: 'Aggregate view of all incomplete work',
543
- detailLevel: options.generateDetailFiles
544
- ? 'Summary with links to phase details'
545
- : 'Compact summary',
546
- };
547
- if (Object.keys(additionalFiles).length > 0) {
548
- docOpts.additionalFiles = additionalFiles;
549
- }
550
- return document('Remaining Work', sections, docOpts);
551
- }
552
- /**
553
- * Build next actionable items section
554
- */
555
- function buildNextActionableItems(dataset, incomplete, options) {
556
- const sections = [];
557
- // Find patterns that are not blocked
558
- const actionable = incomplete.filter((pattern) => {
559
- if (!isPatternPlanned(pattern.status)) {
560
- return false; // Active items are already being worked on
561
- }
562
- if (!pattern.dependsOn || pattern.dependsOn.length === 0) {
563
- return true; // No dependencies = actionable
564
- }
565
- // Check if all dependencies are completed
566
- const allDepsComplete = pattern.dependsOn.every((depName) => {
567
- const dep = dataset.patterns.find((p) => p.patternName === depName || p.name === depName);
568
- return dep === undefined || isPatternComplete(dep.status);
569
- });
570
- return allDepsComplete;
571
- });
572
- if (actionable.length === 0) {
573
- return [];
574
- }
575
- sections.push(heading(2, 'Next Actionable Items'));
576
- sections.push(paragraph('Items ready to start (no blocking dependencies):'));
577
- const limit = options.maxNextActionable;
578
- const items = sortByPhaseAndName(actionable)
579
- .slice(0, limit)
580
- .map((p) => {
581
- const name = getDisplayName(p);
582
- const phase = p.phase !== undefined ? ` (Phase ${p.phase})` : '';
583
- const effort = p.effort ? ` - ${p.effort}` : '';
584
- return `📋 ${name}${phase}${effort}`;
585
- });
586
- sections.push(list(items));
587
- if (actionable.length > limit) {
588
- sections.push(paragraph(`Showing ${limit} of ${actionable.length} actionable items.`));
589
- }
590
- sections.push(separator());
591
- return sections;
592
- }
593
- /**
594
- * Build remaining work summary
595
- */
596
- function buildRemainingWorkSummary(dataset, incomplete) {
597
- const active = incomplete.filter((p) => isPatternActive(p.status));
598
- const planned = incomplete.filter((p) => isPatternPlanned(p.status));
599
- const progress = completionPercentage(dataset.counts);
600
- const progressBar = renderProgressBar(dataset.counts.completed, dataset.counts.total, 20);
601
- return [
602
- heading(2, 'Summary'),
603
- paragraph(`**Overall Progress:** ${progressBar} (${progress}%)`),
604
- table(['Status', 'Count'], [
605
- ['🚧 Active', String(active.length)],
606
- ['📋 Planned', String(planned.length)],
607
- ['**Total Remaining**', String(incomplete.length)],
608
- ]),
609
- separator(),
610
- ];
611
- }
612
- // ═══════════════════════════════════════════════════════════════════════════
613
- // Remaining Work Progressive Disclosure
614
- // ═══════════════════════════════════════════════════════════════════════════
615
- /**
616
- * Generate slug for remaining work phase detail file
617
- */
618
- function getRemainingPhaseSlug(phaseNumber, phaseName) {
619
- const paddedPhase = String(phaseNumber).padStart(2, '0');
620
- const namePart = phaseName ? toKebabCase(phaseName) : 'unnamed';
621
- return `phase-${paddedPhase}-${namePart}`;
622
- }
623
- /**
624
- * Build remaining work phase navigation table
625
- */
626
- function buildRemainingPhaseNavigation(dataset, options) {
627
- const sections = [];
628
- // Get incomplete phases
629
- const incompletePhases = dataset.byPhase.filter((p) => p.counts.total > 0 && p.counts.completed < p.counts.total);
630
- if (incompletePhases.length === 0) {
631
- return [];
632
- }
633
- sections.push(heading(2, 'By Phase'));
634
- const rows = incompletePhases
635
- .sort((a, b) => a.phaseNumber - b.phaseNumber)
636
- .map((phase) => {
637
- const { phaseNumber, phaseName, counts } = phase;
638
- const displayName = phaseName ?? `Phase ${phaseNumber}`;
639
- const remaining = counts.total - counts.completed;
640
- const progress = completionPercentage(counts);
641
- const slug = getRemainingPhaseSlug(phaseNumber, phaseName);
642
- const statusEmoji = getPhaseStatusEmoji(false, counts.active > 0);
643
- // Link to detail file only if generating detail files
644
- const nameCell = options.generateDetailFiles
645
- ? `${statusEmoji} [${displayName}](remaining/${slug}.md)`
646
- : `${statusEmoji} ${displayName}`;
647
- return [nameCell, String(remaining), String(counts.active), `${progress}%`];
648
- });
649
- // Add backlog row for patterns without a phase assignment
650
- // Use pattern.id (always defined) instead of patternName (can be undefined)
651
- // to avoid incorrect filtering when undefined values are added to the Set
652
- const patternsWithPhase = new Set(dataset.byPhase.flatMap((p) => p.patterns.map((pat) => pat.id)));
653
- const incomplete = [...dataset.byStatus.active, ...dataset.byStatus.planned];
654
- const backlogPatterns = incomplete.filter((p) => !patternsWithPhase.has(p.id));
655
- if (backlogPatterns.length > 0) {
656
- const backlogActive = backlogPatterns.filter((p) => isPatternActive(p.status)).length;
657
- const statusEmoji = getPhaseStatusEmoji(false, backlogActive > 0);
658
- rows.push([
659
- `${statusEmoji} Backlog (No Phase)`,
660
- String(backlogPatterns.length),
661
- String(backlogActive),
662
- '0%',
663
- ]);
664
- }
665
- sections.push(table(['Phase', 'Remaining', 'Active', 'Complete'], rows), separator());
666
- return sections;
667
- }
668
- /**
669
- * Build remaining work by priority (summary only for index)
670
- */
671
- function buildRemainingByPrioritySummary(dataset, incomplete, options) {
672
- const sections = [];
673
- // Categorize by priority
674
- const unblocked = [];
675
- const blocked = [];
676
- for (const pattern of incomplete) {
677
- if (!pattern.dependsOn || pattern.dependsOn.length === 0) {
678
- unblocked.push(pattern);
679
- continue;
680
- }
681
- const hasUnmetDep = pattern.dependsOn.some((depName) => {
682
- const dep = dataset.patterns.find((p) => p.patternName === depName || p.name === depName);
683
- return dep !== undefined && !isPatternComplete(dep.status);
684
- });
685
- if (hasUnmetDep) {
686
- blocked.push(pattern);
687
- }
688
- else {
689
- unblocked.push(pattern);
690
- }
691
- }
692
- sections.push(heading(2, 'By Priority'));
693
- // Summary table
694
- const readyCount = unblocked.filter((p) => isPatternPlanned(p.status)).length;
695
- const activeCount = incomplete.filter((p) => isPatternActive(p.status)).length;
696
- sections.push(table(['Priority', 'Count'], [
697
- ['🚧 In Progress', String(activeCount)],
698
- ['✅ Ready to Start', String(readyCount)],
699
- ['⚠️ Blocked', String(blocked.length)],
700
- ]));
701
- // Show top ready to start (use limits from options with safe default)
702
- const limit = options.limits.recentItems ?? 10;
703
- const readyToStart = unblocked.filter((p) => isPatternPlanned(p.status));
704
- if (readyToStart.length > 0) {
705
- sections.push(heading(3, 'Top Ready to Start'));
706
- const items = sortByPhaseAndName(readyToStart)
707
- .slice(0, limit)
708
- .map((p) => {
709
- const name = getDisplayName(p);
710
- const phase = p.phase !== undefined ? ` (Phase ${p.phase})` : '';
711
- return `${name}${phase}`;
712
- });
713
- sections.push(list(items));
714
- if (readyToStart.length > limit) {
715
- sections.push(paragraph(`See phase detail files for full list.`));
716
- }
717
- }
718
- sections.push(separator());
719
- return sections;
720
- }
721
- /**
722
- * Build remaining work phase detail files (progressive disclosure)
723
- */
724
- function buildRemainingPhaseFiles(dataset, options) {
725
- const files = {};
726
- // Get incomplete phases
727
- const incompletePhases = dataset.byPhase.filter((p) => p.counts.total > 0 && p.counts.completed < p.counts.total);
728
- for (const phase of incompletePhases) {
729
- const slug = getRemainingPhaseSlug(phase.phaseNumber, phase.phaseName);
730
- files[`remaining/${slug}.md`] = buildRemainingPhaseDetailDocument(phase, dataset, options);
731
- }
732
- return files;
733
- }
734
- /**
735
- * Build a single remaining work phase detail document
736
- */
737
- function buildRemainingPhaseDetailDocument(phase, dataset, _options) {
738
- const sections = [];
739
- const { phaseNumber, phaseName, patterns, counts } = phase;
740
- const displayName = phaseName ?? `Phase ${phaseNumber}`;
741
- // Summary
742
- const progress = completionPercentage(counts);
743
- const progressBar = renderProgressBar(counts.completed, counts.total, 20);
744
- const remaining = counts.total - counts.completed;
745
- sections.push(heading(2, 'Summary'), paragraph(`**Progress:** ${progressBar} (${progress}%)`), paragraph(`**Remaining:** ${remaining} patterns (${counts.active} active, ${counts.planned} planned)`), separator());
746
- // Get incomplete patterns
747
- const incompletePatterns = patterns.filter((p) => !isPatternComplete(p.status));
748
- // Categorize by priority
749
- const active = [];
750
- const ready = [];
751
- const blocked = [];
752
- for (const pattern of incompletePatterns) {
753
- if (isPatternActive(pattern.status)) {
754
- active.push(pattern);
755
- continue;
756
- }
757
- if (!pattern.dependsOn || pattern.dependsOn.length === 0) {
758
- ready.push(pattern);
759
- continue;
760
- }
761
- const hasUnmetDep = pattern.dependsOn.some((depName) => {
762
- const dep = dataset.patterns.find((p) => p.patternName === depName || p.name === depName);
763
- return dep !== undefined && !isPatternComplete(dep.status);
764
- });
765
- if (hasUnmetDep) {
766
- blocked.push(pattern);
767
- }
768
- else {
769
- ready.push(pattern);
770
- }
771
- }
772
- // Active patterns
773
- if (active.length > 0) {
774
- sections.push(heading(2, '🚧 In Progress'));
775
- sections.push(...buildRemainingPatternTable(active));
776
- }
777
- // Ready to start
778
- if (ready.length > 0) {
779
- sections.push(heading(2, '✅ Ready to Start'));
780
- sections.push(paragraph('These patterns can be started immediately:'));
781
- sections.push(...buildRemainingPatternTable(ready));
782
- }
783
- // Blocked
784
- if (blocked.length > 0) {
785
- sections.push(heading(2, '⚠️ Blocked'));
786
- sections.push(paragraph('These patterns are waiting on dependencies:'));
787
- const rows = sortByPhaseAndName([...blocked]).map((p) => {
788
- const name = getDisplayName(p);
789
- const deps = (p.dependsOn ?? []).join(', ');
790
- const effort = p.effort ?? '-';
791
- return [name, deps, effort];
792
- });
793
- sections.push(table(['Pattern', 'Blocked By', 'Effort'], rows));
794
- sections.push(separator());
795
- }
796
- // All remaining patterns (detailed)
797
- sections.push(heading(2, 'All Remaining Patterns'));
798
- for (const pattern of sortByPhaseAndName([...incompletePatterns])) {
799
- const emoji = getStatusEmoji(pattern.status);
800
- const name = getDisplayName(pattern);
801
- sections.push(heading(3, `${emoji} ${name}`));
802
- // Metadata table
803
- const metaRows = [['Status', normalizeStatus(pattern.status)]];
804
- if (pattern.effort) {
805
- metaRows.push(['Effort', pattern.effort]);
806
- }
807
- const businessValue = formatBusinessValue(pattern.businessValue);
808
- if (businessValue) {
809
- metaRows.push(['Business Value', businessValue]);
810
- }
811
- if (pattern.dependsOn && pattern.dependsOn.length > 0) {
812
- metaRows.push(['Dependencies', pattern.dependsOn.join(', ')]);
813
- }
814
- sections.push(table(['Property', 'Value'], metaRows));
815
- // Description
816
- if (pattern.directive.description) {
817
- sections.push(paragraph(pattern.directive.description));
818
- }
819
- // Use cases
820
- if (pattern.useCases && pattern.useCases.length > 0) {
821
- sections.push(heading(4, 'Use Cases'), list([...pattern.useCases]));
822
- }
823
- // Acceptance Criteria (scenarios with steps, DataTables, DocStrings)
824
- sections.push(...renderAcceptanceCriteria(pattern.scenarios));
825
- // Business Rules (from Gherkin Rule: keyword)
826
- sections.push(...renderBusinessRulesSection(pattern.rules));
827
- }
828
- sections.push(separator());
829
- // Back link
830
- sections.push(linkOut('← Back to Remaining Work', '../REMAINING-WORK.md'));
831
- return document(`${displayName} - Remaining Work`, sections, {
832
- purpose: `Detailed remaining work for ${displayName}`,
833
- });
834
- }
835
- /**
836
- * Build remaining pattern table
837
- */
838
- function buildRemainingPatternTable(patterns) {
839
- const rows = sortByPhaseAndName([...patterns]).map((p) => {
840
- const emoji = getStatusEmoji(p.status);
841
- const name = getDisplayName(p);
842
- const effort = p.effort ?? '-';
843
- const businessValue = formatBusinessValue(p.businessValue) || '-';
844
- return [`${emoji} ${name}`, effort, businessValue];
845
- });
846
- return [table(['Pattern', 'Effort', 'Business Value'], rows), separator()];
847
- }
848
- //# sourceMappingURL=session.js.map