@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.
- package/CHANGELOG.md +1 -1
- package/README.md +5 -5
- package/dist/api/arch-queries.d.ts.map +1 -1
- package/dist/api/context-assembler.d.ts.map +1 -1
- package/dist/api/handoff-generator.d.ts.map +1 -1
- package/dist/api/index.d.ts +8 -8
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +7 -7
- package/dist/api/index.js.map +1 -1
- package/dist/api/{process-state.d.ts → pattern-graph-api.d.ts} +15 -15
- package/dist/api/pattern-graph-api.d.ts.map +1 -0
- package/dist/api/{process-state.js → pattern-graph-api.js} +13 -13
- package/dist/api/pattern-graph-api.js.map +1 -0
- package/dist/api/rules-query.d.ts +6 -6
- package/dist/api/rules-query.d.ts.map +1 -1
- package/dist/api/rules-query.js +4 -4
- package/dist/api/rules-query.js.map +1 -1
- package/dist/api/scope-validator.d.ts.map +1 -1
- package/dist/api/types.d.ts +8 -8
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/types.js +5 -5
- package/dist/cli/cli-schema.d.ts +3 -4
- package/dist/cli/cli-schema.d.ts.map +1 -1
- package/dist/cli/cli-schema.js +13 -14
- package/dist/cli/cli-schema.js.map +1 -1
- package/dist/cli/output-pipeline.d.ts.map +1 -1
- package/dist/cli/pattern-graph-cli.d.ts.map +1 -0
- package/dist/cli/validate-patterns.d.ts.map +1 -1
- package/dist/generators/built-in/cli-recipe-generator.d.ts +3 -4
- package/dist/generators/built-in/cli-recipe-generator.d.ts.map +1 -1
- package/dist/generators/built-in/cli-recipe-generator.js +6 -7
- package/dist/generators/built-in/cli-recipe-generator.js.map +1 -1
- package/dist/generators/built-in/cli-reference-generator.d.ts +18 -0
- package/dist/generators/built-in/cli-reference-generator.d.ts.map +1 -0
- package/dist/generators/built-in/{process-api-reference-generator.js → cli-reference-generator.js} +13 -13
- package/dist/generators/built-in/cli-reference-generator.js.map +1 -0
- package/dist/generators/built-in/codec-generators.js +12 -12
- package/dist/generators/built-in/codec-generators.js.map +1 -1
- package/dist/generators/built-in/design-review-generator.d.ts.map +1 -1
- package/dist/generators/built-in/reference-generators.d.ts.map +1 -1
- package/dist/generators/codec-based.d.ts.map +1 -1
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/orchestrator.d.ts.map +1 -1
- package/dist/generators/pipeline/build-pipeline.d.ts +17 -14
- package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -1
- package/dist/generators/pipeline/build-pipeline.js +27 -21
- package/dist/generators/pipeline/build-pipeline.js.map +1 -1
- package/dist/generators/pipeline/index.d.ts.map +1 -1
- package/dist/generators/types.d.ts.map +1 -1
- package/dist/mcp/pipeline-session.d.ts.map +1 -1
- package/dist/renderable/codecs/index-codec.d.ts.map +1 -1
- package/dist/renderable/codecs/index-codec.js +54 -28
- package/dist/renderable/codecs/index-codec.js.map +1 -1
- package/docs/ANNOTATION-GUIDE.md +5 -5
- package/docs/ARCHITECTURE.md +79 -79
- package/docs/{PROCESS-API.md → CLI.md} +6 -6
- package/docs/CONFIGURATION.md +2 -2
- package/docs/DOCS-GAP-ANALYSIS.md +65 -65
- package/docs/INDEX.md +34 -34
- package/docs/MCP-SETUP.md +3 -3
- package/docs/METHODOLOGY.md +1 -1
- package/docs/SESSION-GUIDES.md +3 -3
- package/docs/VALIDATION.md +4 -4
- package/docs-live/ARCHITECTURE.md +48 -42
- package/docs-live/BUSINESS-RULES.md +3 -3
- package/docs-live/CHANGELOG-GENERATED.md +109 -103
- package/docs-live/INDEX.md +21 -21
- package/docs-live/PRODUCT-AREAS.md +7 -7
- package/docs-live/TAXONOMY.md +3 -5
- package/docs-live/_claude-md/annotation/annotation-overview.md +1 -1
- package/docs-live/_claude-md/annotation/annotation-reference.md +5 -5
- package/docs-live/_claude-md/architecture/architecture-types.md +4 -4
- package/docs-live/_claude-md/architecture/reference-sample.md +2 -2
- package/docs-live/_claude-md/data-api/data-api-overview.md +2 -2
- package/docs-live/_claude-md/generation/generation-overview.md +15 -15
- package/docs-live/_claude-md/process/process-overview.md +1 -1
- package/docs-live/_claude-md/validation/validation-overview.md +1 -1
- package/docs-live/business-rules/annotation.md +1 -2
- package/docs-live/business-rules/configuration.md +1 -1
- package/docs-live/business-rules/data-api.md +149 -136
- package/docs-live/business-rules/generation.md +172 -20
- package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +1 -1
- package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +5 -5
- package/docs-live/decisions/adr-006-single-read-model-architecture.md +24 -24
- package/docs-live/product-areas/ANNOTATION.md +19 -9
- package/docs-live/product-areas/CONFIGURATION.md +39 -19
- package/docs-live/product-areas/DATA-API.md +155 -151
- package/docs-live/product-areas/GENERATION.md +159 -144
- package/docs-live/product-areas/PROCESS.md +4 -4
- package/docs-live/product-areas/VALIDATION.md +35 -20
- package/docs-live/reference/ANNOTATION-REFERENCE.md +5 -5
- package/docs-live/reference/ARCHITECTURE-CODECS.md +11 -11
- package/docs-live/reference/ARCHITECTURE-TYPES.md +28 -25
- package/docs-live/reference/{PROCESS-API-RECIPES.md → CLI-RECIPES.md} +11 -11
- package/docs-live/reference/{PROCESS-API-REFERENCE.md → CLI-REFERENCE.md} +2 -2
- package/docs-live/reference/REFERENCE-SAMPLE.md +56 -56
- package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +3 -3
- package/docs-live/taxonomy/format-types.md +2 -2
- package/docs-live/taxonomy/metadata-tags.md +1 -23
- package/package.json +7 -7
- package/dist/api/arch-queries.d.ts +0 -95
- package/dist/api/arch-queries.js +0 -310
- package/dist/api/arch-queries.js.map +0 -1
- package/dist/api/context-assembler.d.ts +0 -124
- package/dist/api/context-assembler.js +0 -472
- package/dist/api/context-assembler.js.map +0 -1
- package/dist/api/context-formatter.d.ts +0 -26
- package/dist/api/context-formatter.js +0 -183
- package/dist/api/context-formatter.js.map +0 -1
- package/dist/api/coverage-analyzer.d.ts +0 -38
- package/dist/api/coverage-analyzer.d.ts.map +0 -1
- package/dist/api/coverage-analyzer.js +0 -117
- package/dist/api/coverage-analyzer.js.map +0 -1
- package/dist/api/fuzzy-match.d.ts +0 -75
- package/dist/api/fuzzy-match.d.ts.map +0 -1
- package/dist/api/fuzzy-match.js +0 -150
- package/dist/api/fuzzy-match.js.map +0 -1
- package/dist/api/handoff-generator.d.ts +0 -45
- package/dist/api/handoff-generator.js +0 -139
- package/dist/api/handoff-generator.js.map +0 -1
- package/dist/api/pattern-helpers.d.ts +0 -51
- package/dist/api/pattern-helpers.d.ts.map +0 -1
- package/dist/api/pattern-helpers.js +0 -84
- package/dist/api/pattern-helpers.js.map +0 -1
- package/dist/api/process-state.d.ts.map +0 -1
- package/dist/api/process-state.js.map +0 -1
- package/dist/api/scope-validator.d.ts +0 -56
- package/dist/api/scope-validator.js +0 -293
- package/dist/api/scope-validator.js.map +0 -1
- package/dist/api/stub-resolver.d.ts +0 -117
- package/dist/api/stub-resolver.d.ts.map +0 -1
- package/dist/api/stub-resolver.js +0 -154
- package/dist/api/stub-resolver.js.map +0 -1
- package/dist/api/summarize.d.ts +0 -75
- package/dist/api/summarize.d.ts.map +0 -1
- package/dist/api/summarize.js +0 -97
- package/dist/api/summarize.js.map +0 -1
- package/dist/cache/file-cache.d.ts +0 -72
- package/dist/cache/file-cache.d.ts.map +0 -1
- package/dist/cache/file-cache.js +0 -80
- package/dist/cache/file-cache.js.map +0 -1
- package/dist/cache/index.d.ts +0 -5
- package/dist/cache/index.d.ts.map +0 -1
- package/dist/cache/index.js +0 -5
- package/dist/cache/index.js.map +0 -1
- package/dist/cli/dataset-cache.d.ts +0 -66
- package/dist/cli/dataset-cache.js +0 -179
- package/dist/cli/dataset-cache.js.map +0 -1
- package/dist/cli/error-handler.d.ts +0 -84
- package/dist/cli/error-handler.d.ts.map +0 -1
- package/dist/cli/error-handler.js +0 -197
- package/dist/cli/error-handler.js.map +0 -1
- package/dist/cli/generate-docs.d.ts +0 -30
- package/dist/cli/generate-docs.js +0 -370
- package/dist/cli/generate-docs.js.map +0 -1
- package/dist/cli/lint-patterns.d.ts +0 -57
- package/dist/cli/lint-patterns.d.ts.map +0 -1
- package/dist/cli/lint-patterns.js +0 -257
- package/dist/cli/lint-patterns.js.map +0 -1
- package/dist/cli/lint-process.d.ts +0 -54
- package/dist/cli/lint-process.d.ts.map +0 -1
- package/dist/cli/lint-process.js +0 -319
- package/dist/cli/lint-process.js.map +0 -1
- package/dist/cli/lint-steps.d.ts +0 -32
- package/dist/cli/lint-steps.d.ts.map +0 -1
- package/dist/cli/lint-steps.js +0 -172
- package/dist/cli/lint-steps.js.map +0 -1
- package/dist/cli/mcp-server.d.ts +0 -22
- package/dist/cli/mcp-server.js +0 -57
- package/dist/cli/mcp-server.js.map +0 -1
- package/dist/cli/output-pipeline.d.ts +0 -130
- package/dist/cli/output-pipeline.js +0 -234
- package/dist/cli/output-pipeline.js.map +0 -1
- package/dist/cli/process-api.d.ts +0 -37
- package/dist/cli/process-api.d.ts.map +0 -1
- package/dist/cli/process-api.js +0 -1550
- package/dist/cli/process-api.js.map +0 -1
- package/dist/cli/repl.d.ts +0 -38
- package/dist/cli/repl.js +0 -239
- package/dist/cli/repl.js.map +0 -1
- package/dist/cli/validate-patterns.d.ts +0 -115
- package/dist/cli/validate-patterns.js +0 -707
- package/dist/cli/validate-patterns.js.map +0 -1
- package/dist/cli/version.d.ts +0 -35
- package/dist/cli/version.d.ts.map +0 -1
- package/dist/cli/version.js +0 -64
- package/dist/cli/version.js.map +0 -1
- package/dist/config/config-loader.d.ts +0 -167
- package/dist/config/config-loader.d.ts.map +0 -1
- package/dist/config/config-loader.js +0 -294
- package/dist/config/config-loader.js.map +0 -1
- package/dist/config/defaults.d.ts +0 -92
- package/dist/config/defaults.d.ts.map +0 -1
- package/dist/config/defaults.js +0 -103
- package/dist/config/defaults.js.map +0 -1
- package/dist/config/define-config.d.ts +0 -37
- package/dist/config/define-config.d.ts.map +0 -1
- package/dist/config/define-config.js +0 -38
- package/dist/config/define-config.js.map +0 -1
- package/dist/config/factory.d.ts +0 -79
- package/dist/config/factory.d.ts.map +0 -1
- package/dist/config/factory.js +0 -116
- package/dist/config/factory.js.map +0 -1
- package/dist/config/index.d.ts +0 -45
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -48
- package/dist/config/index.js.map +0 -1
- package/dist/config/merge-sources.d.ts +0 -47
- package/dist/config/merge-sources.d.ts.map +0 -1
- package/dist/config/merge-sources.js +0 -61
- package/dist/config/merge-sources.js.map +0 -1
- package/dist/config/presets.d.ts +0 -115
- package/dist/config/presets.d.ts.map +0 -1
- package/dist/config/presets.js +0 -119
- package/dist/config/presets.js.map +0 -1
- package/dist/config/project-config-schema.d.ts +0 -192
- package/dist/config/project-config-schema.d.ts.map +0 -1
- package/dist/config/project-config-schema.js +0 -231
- package/dist/config/project-config-schema.js.map +0 -1
- package/dist/config/project-config.d.ts +0 -229
- package/dist/config/project-config.d.ts.map +0 -1
- package/dist/config/project-config.js +0 -37
- package/dist/config/project-config.js.map +0 -1
- package/dist/config/regex-builders.d.ts +0 -49
- package/dist/config/regex-builders.d.ts.map +0 -1
- package/dist/config/regex-builders.js +0 -85
- package/dist/config/regex-builders.js.map +0 -1
- package/dist/config/resolve-config.d.ts +0 -65
- package/dist/config/resolve-config.d.ts.map +0 -1
- package/dist/config/resolve-config.js +0 -150
- package/dist/config/resolve-config.js.map +0 -1
- package/dist/config/types.d.ts +0 -81
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -22
- package/dist/config/types.js.map +0 -1
- package/dist/config/workflow-loader.d.ts +0 -90
- package/dist/config/workflow-loader.d.ts.map +0 -1
- package/dist/config/workflow-loader.js +0 -167
- package/dist/config/workflow-loader.js.map +0 -1
- package/dist/extractor/doc-extractor.d.ts +0 -233
- package/dist/extractor/doc-extractor.d.ts.map +0 -1
- package/dist/extractor/doc-extractor.js +0 -481
- package/dist/extractor/doc-extractor.js.map +0 -1
- package/dist/extractor/dual-source-extractor.d.ts +0 -161
- package/dist/extractor/dual-source-extractor.d.ts.map +0 -1
- package/dist/extractor/dual-source-extractor.js +0 -407
- package/dist/extractor/dual-source-extractor.js.map +0 -1
- package/dist/extractor/gherkin-extractor.d.ts +0 -170
- package/dist/extractor/gherkin-extractor.d.ts.map +0 -1
- package/dist/extractor/gherkin-extractor.js +0 -543
- package/dist/extractor/gherkin-extractor.js.map +0 -1
- package/dist/extractor/index.d.ts +0 -7
- package/dist/extractor/index.d.ts.map +0 -1
- package/dist/extractor/index.js +0 -11
- package/dist/extractor/index.js.map +0 -1
- package/dist/extractor/layer-inference.d.ts +0 -66
- package/dist/extractor/layer-inference.d.ts.map +0 -1
- package/dist/extractor/layer-inference.js +0 -93
- package/dist/extractor/layer-inference.js.map +0 -1
- package/dist/extractor/shape-extractor.d.ts +0 -79
- package/dist/extractor/shape-extractor.d.ts.map +0 -1
- package/dist/extractor/shape-extractor.js +0 -966
- package/dist/extractor/shape-extractor.js.map +0 -1
- package/dist/generators/built-in/codec-generators.d.ts +0 -29
- package/dist/generators/built-in/decision-doc-generator.d.ts +0 -204
- package/dist/generators/built-in/decision-doc-generator.js +0 -654
- package/dist/generators/built-in/decision-doc-generator.js.map +0 -1
- package/dist/generators/built-in/design-review-generator.d.ts +0 -26
- package/dist/generators/built-in/design-review-generator.js +0 -94
- package/dist/generators/built-in/design-review-generator.js.map +0 -1
- package/dist/generators/built-in/index.d.ts +0 -22
- package/dist/generators/built-in/index.js +0 -23
- package/dist/generators/built-in/index.js.map +0 -1
- package/dist/generators/built-in/process-api-reference-generator.d.ts +0 -18
- package/dist/generators/built-in/process-api-reference-generator.d.ts.map +0 -1
- package/dist/generators/built-in/process-api-reference-generator.js.map +0 -1
- package/dist/generators/built-in/reference-generators.d.ts +0 -51
- package/dist/generators/built-in/reference-generators.js +0 -320
- package/dist/generators/built-in/reference-generators.js.map +0 -1
- package/dist/generators/codec-based.d.ts +0 -63
- package/dist/generators/codec-based.js +0 -88
- package/dist/generators/codec-based.js.map +0 -1
- package/dist/generators/content-deduplicator.d.ts +0 -114
- package/dist/generators/content-deduplicator.d.ts.map +0 -1
- package/dist/generators/content-deduplicator.js +0 -356
- package/dist/generators/content-deduplicator.js.map +0 -1
- package/dist/generators/index.d.ts +0 -50
- package/dist/generators/index.js +0 -54
- package/dist/generators/index.js.map +0 -1
- package/dist/generators/orchestrator.d.ts +0 -265
- package/dist/generators/orchestrator.js +0 -570
- package/dist/generators/orchestrator.js.map +0 -1
- package/dist/generators/pipeline/context-inference.d.ts +0 -55
- package/dist/generators/pipeline/context-inference.d.ts.map +0 -1
- package/dist/generators/pipeline/context-inference.js +0 -76
- package/dist/generators/pipeline/context-inference.js.map +0 -1
- package/dist/generators/pipeline/index.d.ts +0 -27
- package/dist/generators/pipeline/index.js +0 -34
- package/dist/generators/pipeline/index.js.map +0 -1
- package/dist/generators/pipeline/merge-patterns.d.ts +0 -33
- package/dist/generators/pipeline/merge-patterns.d.ts.map +0 -1
- package/dist/generators/pipeline/merge-patterns.js +0 -50
- package/dist/generators/pipeline/merge-patterns.js.map +0 -1
- package/dist/generators/pipeline/relationship-resolver.d.ts +0 -47
- package/dist/generators/pipeline/relationship-resolver.d.ts.map +0 -1
- package/dist/generators/pipeline/relationship-resolver.js +0 -132
- package/dist/generators/pipeline/relationship-resolver.js.map +0 -1
- package/dist/generators/pipeline/sequence-utils.d.ts +0 -49
- package/dist/generators/pipeline/sequence-utils.d.ts.map +0 -1
- package/dist/generators/pipeline/sequence-utils.js +0 -235
- package/dist/generators/pipeline/sequence-utils.js.map +0 -1
- package/dist/generators/pipeline/transform-dataset.d.ts +0 -82
- package/dist/generators/pipeline/transform-dataset.d.ts.map +0 -1
- package/dist/generators/pipeline/transform-dataset.js +0 -355
- package/dist/generators/pipeline/transform-dataset.js.map +0 -1
- package/dist/generators/pipeline/transform-types.d.ts +0 -96
- package/dist/generators/pipeline/transform-types.d.ts.map +0 -1
- package/dist/generators/pipeline/transform-types.js +0 -18
- package/dist/generators/pipeline/transform-types.js.map +0 -1
- package/dist/generators/registry.d.ts +0 -64
- package/dist/generators/registry.js +0 -77
- package/dist/generators/registry.js.map +0 -1
- package/dist/generators/source-mapper.d.ts +0 -143
- package/dist/generators/source-mapper.d.ts.map +0 -1
- package/dist/generators/source-mapper.js +0 -602
- package/dist/generators/source-mapper.js.map +0 -1
- package/dist/generators/source-mapping-validator.d.ts +0 -118
- package/dist/generators/source-mapping-validator.d.ts.map +0 -1
- package/dist/generators/source-mapping-validator.js +0 -334
- package/dist/generators/source-mapping-validator.js.map +0 -1
- package/dist/generators/types.d.ts +0 -104
- package/dist/generators/types.js +0 -5
- package/dist/generators/types.js.map +0 -1
- package/dist/generators/warning-collector.d.ts +0 -144
- package/dist/generators/warning-collector.d.ts.map +0 -1
- package/dist/generators/warning-collector.js +0 -166
- package/dist/generators/warning-collector.js.map +0 -1
- package/dist/git/branch-diff.d.ts +0 -44
- package/dist/git/branch-diff.d.ts.map +0 -1
- package/dist/git/branch-diff.js +0 -57
- package/dist/git/branch-diff.js.map +0 -1
- package/dist/git/helpers.d.ts +0 -46
- package/dist/git/helpers.d.ts.map +0 -1
- package/dist/git/helpers.js +0 -67
- package/dist/git/helpers.js.map +0 -1
- package/dist/git/index.d.ts +0 -18
- package/dist/git/index.d.ts.map +0 -1
- package/dist/git/index.js +0 -18
- package/dist/git/index.js.map +0 -1
- package/dist/git/name-status.d.ts +0 -32
- package/dist/git/name-status.d.ts.map +0 -1
- package/dist/git/name-status.js +0 -66
- package/dist/git/name-status.js.map +0 -1
- package/dist/index.d.ts +0 -107
- package/dist/index.js +0 -122
- package/dist/index.js.map +0 -1
- package/dist/lint/engine.d.ts +0 -113
- package/dist/lint/engine.d.ts.map +0 -1
- package/dist/lint/engine.js +0 -228
- package/dist/lint/engine.js.map +0 -1
- package/dist/lint/index.d.ts +0 -26
- package/dist/lint/index.d.ts.map +0 -1
- package/dist/lint/index.js +0 -24
- package/dist/lint/index.js.map +0 -1
- package/dist/lint/process-guard/decider.d.ts +0 -166
- package/dist/lint/process-guard/decider.d.ts.map +0 -1
- package/dist/lint/process-guard/decider.js +0 -412
- package/dist/lint/process-guard/decider.js.map +0 -1
- package/dist/lint/process-guard/derive-state.d.ts +0 -96
- package/dist/lint/process-guard/derive-state.d.ts.map +0 -1
- package/dist/lint/process-guard/derive-state.js +0 -368
- package/dist/lint/process-guard/derive-state.js.map +0 -1
- package/dist/lint/process-guard/detect-changes.d.ts +0 -109
- package/dist/lint/process-guard/detect-changes.d.ts.map +0 -1
- package/dist/lint/process-guard/detect-changes.js +0 -487
- package/dist/lint/process-guard/detect-changes.js.map +0 -1
- package/dist/lint/process-guard/index.d.ts +0 -35
- package/dist/lint/process-guard/index.d.ts.map +0 -1
- package/dist/lint/process-guard/index.js +0 -39
- package/dist/lint/process-guard/index.js.map +0 -1
- package/dist/lint/process-guard/types.d.ts +0 -255
- package/dist/lint/process-guard/types.d.ts.map +0 -1
- package/dist/lint/process-guard/types.js +0 -31
- package/dist/lint/process-guard/types.js.map +0 -1
- package/dist/lint/rules.d.ts +0 -147
- package/dist/lint/rules.d.ts.map +0 -1
- package/dist/lint/rules.js +0 -289
- package/dist/lint/rules.js.map +0 -1
- package/dist/lint/steps/cross-checks.d.ts +0 -66
- package/dist/lint/steps/cross-checks.d.ts.map +0 -1
- package/dist/lint/steps/cross-checks.js +0 -290
- package/dist/lint/steps/cross-checks.js.map +0 -1
- package/dist/lint/steps/feature-checks.d.ts +0 -78
- package/dist/lint/steps/feature-checks.d.ts.map +0 -1
- package/dist/lint/steps/feature-checks.js +0 -279
- package/dist/lint/steps/feature-checks.js.map +0 -1
- package/dist/lint/steps/index.d.ts +0 -22
- package/dist/lint/steps/index.d.ts.map +0 -1
- package/dist/lint/steps/index.js +0 -26
- package/dist/lint/steps/index.js.map +0 -1
- package/dist/lint/steps/pair-resolver.d.ts +0 -29
- package/dist/lint/steps/pair-resolver.d.ts.map +0 -1
- package/dist/lint/steps/pair-resolver.js +0 -76
- package/dist/lint/steps/pair-resolver.js.map +0 -1
- package/dist/lint/steps/runner.d.ts +0 -28
- package/dist/lint/steps/runner.d.ts.map +0 -1
- package/dist/lint/steps/runner.js +0 -143
- package/dist/lint/steps/runner.js.map +0 -1
- package/dist/lint/steps/step-checks.d.ts +0 -41
- package/dist/lint/steps/step-checks.d.ts.map +0 -1
- package/dist/lint/steps/step-checks.js +0 -164
- package/dist/lint/steps/step-checks.js.map +0 -1
- package/dist/lint/steps/types.d.ts +0 -95
- package/dist/lint/steps/types.d.ts.map +0 -1
- package/dist/lint/steps/types.js +0 -79
- package/dist/lint/steps/types.js.map +0 -1
- package/dist/lint/steps/utils.d.ts +0 -22
- package/dist/lint/steps/utils.d.ts.map +0 -1
- package/dist/lint/steps/utils.js +0 -57
- package/dist/lint/steps/utils.js.map +0 -1
- package/dist/mcp/file-watcher.d.ts +0 -24
- package/dist/mcp/file-watcher.js +0 -75
- package/dist/mcp/file-watcher.js.map +0 -1
- package/dist/mcp/index.d.ts +0 -19
- package/dist/mcp/index.js +0 -21
- package/dist/mcp/index.js.map +0 -1
- package/dist/mcp/pipeline-session.d.ts +0 -33
- package/dist/mcp/pipeline-session.js +0 -149
- package/dist/mcp/pipeline-session.js.map +0 -1
- package/dist/mcp/server.d.ts +0 -28
- package/dist/mcp/server.js +0 -197
- package/dist/mcp/server.js.map +0 -1
- package/dist/mcp/tool-registry.d.ts +0 -4
- package/dist/mcp/tool-registry.js +0 -525
- package/dist/mcp/tool-registry.js.map +0 -1
- package/dist/renderable/codecs/adr.d.ts +0 -4730
- package/dist/renderable/codecs/adr.d.ts.map +0 -1
- package/dist/renderable/codecs/adr.js +0 -590
- package/dist/renderable/codecs/adr.js.map +0 -1
- package/dist/renderable/codecs/architecture.d.ts +0 -4760
- package/dist/renderable/codecs/architecture.d.ts.map +0 -1
- package/dist/renderable/codecs/architecture.js +0 -524
- package/dist/renderable/codecs/architecture.js.map +0 -1
- package/dist/renderable/codecs/business-rules.d.ts +0 -4777
- package/dist/renderable/codecs/business-rules.d.ts.map +0 -1
- package/dist/renderable/codecs/business-rules.js +0 -648
- package/dist/renderable/codecs/business-rules.js.map +0 -1
- package/dist/renderable/codecs/claude-module.d.ts +0 -4710
- package/dist/renderable/codecs/claude-module.d.ts.map +0 -1
- package/dist/renderable/codecs/claude-module.js +0 -214
- package/dist/renderable/codecs/claude-module.js.map +0 -1
- package/dist/renderable/codecs/composite.d.ts +0 -84
- package/dist/renderable/codecs/composite.d.ts.map +0 -1
- package/dist/renderable/codecs/composite.js +0 -124
- package/dist/renderable/codecs/composite.js.map +0 -1
- package/dist/renderable/codecs/convention-extractor.d.ts +0 -105
- package/dist/renderable/codecs/convention-extractor.d.ts.map +0 -1
- package/dist/renderable/codecs/convention-extractor.js +0 -353
- package/dist/renderable/codecs/convention-extractor.js.map +0 -1
- package/dist/renderable/codecs/decision-doc.d.ts +0 -308
- package/dist/renderable/codecs/decision-doc.d.ts.map +0 -1
- package/dist/renderable/codecs/decision-doc.js +0 -485
- package/dist/renderable/codecs/decision-doc.js.map +0 -1
- package/dist/renderable/codecs/design-review.d.ts +0 -55
- package/dist/renderable/codecs/design-review.d.ts.map +0 -1
- package/dist/renderable/codecs/design-review.js +0 -532
- package/dist/renderable/codecs/design-review.js.map +0 -1
- package/dist/renderable/codecs/diagram-utils.d.ts +0 -62
- package/dist/renderable/codecs/diagram-utils.d.ts.map +0 -1
- package/dist/renderable/codecs/diagram-utils.js +0 -70
- package/dist/renderable/codecs/diagram-utils.js.map +0 -1
- package/dist/renderable/codecs/helpers.d.ts +0 -553
- package/dist/renderable/codecs/helpers.d.ts.map +0 -1
- package/dist/renderable/codecs/helpers.js +0 -913
- package/dist/renderable/codecs/helpers.js.map +0 -1
- package/dist/renderable/codecs/index-codec.d.ts +0 -4714
- package/dist/renderable/codecs/index.d.ts +0 -46
- package/dist/renderable/codecs/index.d.ts.map +0 -1
- package/dist/renderable/codecs/index.js +0 -70
- package/dist/renderable/codecs/index.js.map +0 -1
- package/dist/renderable/codecs/patterns.d.ts +0 -4757
- package/dist/renderable/codecs/patterns.d.ts.map +0 -1
- package/dist/renderable/codecs/patterns.js +0 -462
- package/dist/renderable/codecs/patterns.js.map +0 -1
- package/dist/renderable/codecs/planning.d.ts +0 -14055
- package/dist/renderable/codecs/planning.d.ts.map +0 -1
- package/dist/renderable/codecs/planning.js +0 -449
- package/dist/renderable/codecs/planning.js.map +0 -1
- package/dist/renderable/codecs/pr-changes.d.ts +0 -4742
- package/dist/renderable/codecs/pr-changes.d.ts.map +0 -1
- package/dist/renderable/codecs/pr-changes.js +0 -425
- package/dist/renderable/codecs/pr-changes.js.map +0 -1
- package/dist/renderable/codecs/reference.d.ts +0 -215
- package/dist/renderable/codecs/reference.d.ts.map +0 -1
- package/dist/renderable/codecs/reference.js +0 -1578
- package/dist/renderable/codecs/reference.js.map +0 -1
- package/dist/renderable/codecs/reporting.d.ts +0 -14026
- package/dist/renderable/codecs/reporting.d.ts.map +0 -1
- package/dist/renderable/codecs/reporting.js +0 -365
- package/dist/renderable/codecs/reporting.js.map +0 -1
- package/dist/renderable/codecs/requirements.d.ts +0 -4743
- package/dist/renderable/codecs/requirements.d.ts.map +0 -1
- package/dist/renderable/codecs/requirements.js +0 -428
- package/dist/renderable/codecs/requirements.js.map +0 -1
- package/dist/renderable/codecs/session.d.ts +0 -9410
- package/dist/renderable/codecs/session.d.ts.map +0 -1
- package/dist/renderable/codecs/session.js +0 -848
- package/dist/renderable/codecs/session.js.map +0 -1
- package/dist/renderable/codecs/shape-matcher.d.ts +0 -54
- package/dist/renderable/codecs/shape-matcher.d.ts.map +0 -1
- package/dist/renderable/codecs/shape-matcher.js +0 -106
- package/dist/renderable/codecs/shape-matcher.js.map +0 -1
- package/dist/renderable/codecs/shared-schema.d.ts +0 -44
- package/dist/renderable/codecs/shared-schema.d.ts.map +0 -1
- package/dist/renderable/codecs/shared-schema.js +0 -43
- package/dist/renderable/codecs/shared-schema.js.map +0 -1
- package/dist/renderable/codecs/taxonomy.d.ts +0 -4733
- package/dist/renderable/codecs/taxonomy.d.ts.map +0 -1
- package/dist/renderable/codecs/taxonomy.js +0 -570
- package/dist/renderable/codecs/taxonomy.js.map +0 -1
- package/dist/renderable/codecs/timeline.d.ts +0 -14094
- package/dist/renderable/codecs/timeline.d.ts.map +0 -1
- package/dist/renderable/codecs/timeline.js +0 -906
- package/dist/renderable/codecs/timeline.js.map +0 -1
- package/dist/renderable/codecs/types/base.d.ts +0 -81
- package/dist/renderable/codecs/types/base.d.ts.map +0 -1
- package/dist/renderable/codecs/types/base.js +0 -56
- package/dist/renderable/codecs/types/base.js.map +0 -1
- package/dist/renderable/codecs/types/index.d.ts +0 -5
- package/dist/renderable/codecs/types/index.d.ts.map +0 -1
- package/dist/renderable/codecs/types/index.js +0 -5
- package/dist/renderable/codecs/types/index.js.map +0 -1
- package/dist/renderable/codecs/validation-rules.d.ts +0 -4773
- package/dist/renderable/codecs/validation-rules.d.ts.map +0 -1
- package/dist/renderable/codecs/validation-rules.js +0 -537
- package/dist/renderable/codecs/validation-rules.js.map +0 -1
- package/dist/renderable/generate.d.ts +0 -338
- package/dist/renderable/generate.d.ts.map +0 -1
- package/dist/renderable/generate.js +0 -437
- package/dist/renderable/generate.js.map +0 -1
- package/dist/renderable/index.d.ts +0 -36
- package/dist/renderable/index.d.ts.map +0 -1
- package/dist/renderable/index.js +0 -58
- package/dist/renderable/index.js.map +0 -1
- package/dist/renderable/load-preamble.d.ts +0 -56
- package/dist/renderable/load-preamble.d.ts.map +0 -1
- package/dist/renderable/load-preamble.js +0 -298
- package/dist/renderable/load-preamble.js.map +0 -1
- package/dist/renderable/render.d.ts +0 -61
- package/dist/renderable/render.d.ts.map +0 -1
- package/dist/renderable/render.js +0 -346
- package/dist/renderable/render.js.map +0 -1
- package/dist/renderable/schema.d.ts +0 -194
- package/dist/renderable/schema.d.ts.map +0 -1
- package/dist/renderable/schema.js +0 -197
- package/dist/renderable/schema.js.map +0 -1
- package/dist/renderable/utils.d.ts +0 -146
- package/dist/renderable/utils.d.ts.map +0 -1
- package/dist/renderable/utils.js +0 -362
- package/dist/renderable/utils.js.map +0 -1
- package/dist/scanner/ast-parser.d.ts +0 -75
- package/dist/scanner/ast-parser.d.ts.map +0 -1
- package/dist/scanner/ast-parser.js +0 -835
- package/dist/scanner/ast-parser.js.map +0 -1
- package/dist/scanner/gherkin-ast-parser.d.ts +0 -166
- package/dist/scanner/gherkin-ast-parser.d.ts.map +0 -1
- package/dist/scanner/gherkin-ast-parser.js +0 -507
- package/dist/scanner/gherkin-ast-parser.js.map +0 -1
- package/dist/scanner/gherkin-scanner.d.ts +0 -106
- package/dist/scanner/gherkin-scanner.d.ts.map +0 -1
- package/dist/scanner/gherkin-scanner.js +0 -149
- package/dist/scanner/gherkin-scanner.js.map +0 -1
- package/dist/scanner/index.d.ts +0 -85
- package/dist/scanner/index.d.ts.map +0 -1
- package/dist/scanner/index.js +0 -102
- package/dist/scanner/index.js.map +0 -1
- package/dist/scanner/pattern-scanner.d.ts +0 -83
- package/dist/scanner/pattern-scanner.d.ts.map +0 -1
- package/dist/scanner/pattern-scanner.js +0 -110
- package/dist/scanner/pattern-scanner.js.map +0 -1
- package/dist/taxonomy/categories.d.ts +0 -47
- package/dist/taxonomy/categories.d.ts.map +0 -1
- package/dist/taxonomy/categories.js +0 -175
- package/dist/taxonomy/categories.js.map +0 -1
- package/dist/taxonomy/claude-section-values.d.ts +0 -12
- package/dist/taxonomy/claude-section-values.d.ts.map +0 -1
- package/dist/taxonomy/claude-section-values.js +0 -17
- package/dist/taxonomy/claude-section-values.js.map +0 -1
- package/dist/taxonomy/conventions.d.ts +0 -13
- package/dist/taxonomy/conventions.d.ts.map +0 -1
- package/dist/taxonomy/conventions.js +0 -27
- package/dist/taxonomy/conventions.js.map +0 -1
- package/dist/taxonomy/deliverable-status.d.ts +0 -99
- package/dist/taxonomy/deliverable-status.d.ts.map +0 -1
- package/dist/taxonomy/deliverable-status.js +0 -131
- package/dist/taxonomy/deliverable-status.js.map +0 -1
- package/dist/taxonomy/format-types.d.ts +0 -17
- package/dist/taxonomy/format-types.d.ts.map +0 -1
- package/dist/taxonomy/format-types.js +0 -23
- package/dist/taxonomy/format-types.js.map +0 -1
- package/dist/taxonomy/generator-options.d.ts +0 -67
- package/dist/taxonomy/generator-options.d.ts.map +0 -1
- package/dist/taxonomy/generator-options.js +0 -75
- package/dist/taxonomy/generator-options.js.map +0 -1
- package/dist/taxonomy/hierarchy-levels.d.ts +0 -23
- package/dist/taxonomy/hierarchy-levels.d.ts.map +0 -1
- package/dist/taxonomy/hierarchy-levels.js +0 -22
- package/dist/taxonomy/hierarchy-levels.js.map +0 -1
- package/dist/taxonomy/index.d.ts +0 -35
- package/dist/taxonomy/index.d.ts.map +0 -1
- package/dist/taxonomy/index.js +0 -56
- package/dist/taxonomy/index.js.map +0 -1
- package/dist/taxonomy/layer-types.d.ts +0 -22
- package/dist/taxonomy/layer-types.d.ts.map +0 -1
- package/dist/taxonomy/layer-types.js +0 -28
- package/dist/taxonomy/layer-types.js.map +0 -1
- package/dist/taxonomy/normalized-status.d.ts +0 -99
- package/dist/taxonomy/normalized-status.d.ts.map +0 -1
- package/dist/taxonomy/normalized-status.js +0 -113
- package/dist/taxonomy/normalized-status.js.map +0 -1
- package/dist/taxonomy/registry-builder.d.ts +0 -104
- package/dist/taxonomy/registry-builder.d.ts.map +0 -1
- package/dist/taxonomy/registry-builder.js +0 -561
- package/dist/taxonomy/registry-builder.js.map +0 -1
- package/dist/taxonomy/risk-levels.d.ts +0 -16
- package/dist/taxonomy/risk-levels.d.ts.map +0 -1
- package/dist/taxonomy/risk-levels.js +0 -15
- package/dist/taxonomy/risk-levels.js.map +0 -1
- package/dist/taxonomy/severity-types.d.ts +0 -6
- package/dist/taxonomy/severity-types.d.ts.map +0 -1
- package/dist/taxonomy/severity-types.js +0 -5
- package/dist/taxonomy/severity-types.js.map +0 -1
- package/dist/taxonomy/status-values.d.ts +0 -39
- package/dist/taxonomy/status-values.d.ts.map +0 -1
- package/dist/taxonomy/status-values.js +0 -42
- package/dist/taxonomy/status-values.js.map +0 -1
- package/dist/types/branded.d.ts +0 -89
- package/dist/types/branded.d.ts.map +0 -1
- package/dist/types/branded.js +0 -57
- package/dist/types/branded.js.map +0 -1
- package/dist/types/errors.d.ts +0 -342
- package/dist/types/errors.d.ts.map +0 -1
- package/dist/types/errors.js +0 -251
- package/dist/types/errors.js.map +0 -1
- package/dist/types/index.d.ts +0 -41
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -5
- package/dist/types/index.js.map +0 -1
- package/dist/types/result.d.ts +0 -78
- package/dist/types/result.d.ts.map +0 -1
- package/dist/types/result.js +0 -78
- package/dist/types/result.js.map +0 -1
- package/dist/utils/collection-utils.d.ts +0 -49
- package/dist/utils/collection-utils.d.ts.map +0 -1
- package/dist/utils/collection-utils.js +0 -58
- package/dist/utils/collection-utils.js.map +0 -1
- package/dist/utils/id-utils.d.ts +0 -46
- package/dist/utils/id-utils.d.ts.map +0 -1
- package/dist/utils/id-utils.js +0 -51
- package/dist/utils/id-utils.js.map +0 -1
- package/dist/utils/index.d.ts +0 -21
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -21
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/string-utils.d.ts +0 -150
- package/dist/utils/string-utils.d.ts.map +0 -1
- package/dist/utils/string-utils.js +0 -281
- package/dist/utils/string-utils.js.map +0 -1
- package/dist/validation/anti-patterns.d.ts +0 -134
- package/dist/validation/anti-patterns.d.ts.map +0 -1
- package/dist/validation/anti-patterns.js +0 -307
- package/dist/validation/anti-patterns.js.map +0 -1
- package/dist/validation/dod-validator.d.ts +0 -94
- package/dist/validation/dod-validator.d.ts.map +0 -1
- package/dist/validation/dod-validator.js +0 -198
- package/dist/validation/dod-validator.js.map +0 -1
- package/dist/validation/fsm/index.d.ts +0 -59
- package/dist/validation/fsm/index.d.ts.map +0 -1
- package/dist/validation/fsm/index.js +0 -64
- package/dist/validation/fsm/index.js.map +0 -1
- package/dist/validation/fsm/states.d.ts +0 -93
- package/dist/validation/fsm/states.d.ts.map +0 -1
- package/dist/validation/fsm/states.js +0 -98
- package/dist/validation/fsm/states.js.map +0 -1
- package/dist/validation/fsm/transitions.d.ts +0 -100
- package/dist/validation/fsm/transitions.d.ts.map +0 -1
- package/dist/validation/fsm/transitions.js +0 -122
- package/dist/validation/fsm/transitions.js.map +0 -1
- package/dist/validation/fsm/validator.d.ts +0 -163
- package/dist/validation/fsm/validator.d.ts.map +0 -1
- package/dist/validation/fsm/validator.js +0 -205
- package/dist/validation/fsm/validator.js.map +0 -1
- package/dist/validation/index.d.ts +0 -23
- package/dist/validation/index.d.ts.map +0 -1
- package/dist/validation/index.js +0 -25
- package/dist/validation/index.js.map +0 -1
- package/dist/validation/types.d.ts +0 -136
- package/dist/validation/types.d.ts.map +0 -1
- package/dist/validation/types.js +0 -56
- package/dist/validation/types.js.map +0 -1
- package/dist/validation-schemas/codec-utils.d.ts +0 -188
- package/dist/validation-schemas/codec-utils.d.ts.map +0 -1
- package/dist/validation-schemas/codec-utils.js +0 -258
- package/dist/validation-schemas/codec-utils.js.map +0 -1
- package/dist/validation-schemas/config.d.ts +0 -99
- package/dist/validation-schemas/config.d.ts.map +0 -1
- package/dist/validation-schemas/config.js +0 -178
- package/dist/validation-schemas/config.js.map +0 -1
- package/dist/validation-schemas/doc-directive.d.ts +0 -195
- package/dist/validation-schemas/doc-directive.d.ts.map +0 -1
- package/dist/validation-schemas/doc-directive.js +0 -239
- package/dist/validation-schemas/doc-directive.js.map +0 -1
- package/dist/validation-schemas/dual-source.d.ts +0 -167
- package/dist/validation-schemas/dual-source.d.ts.map +0 -1
- package/dist/validation-schemas/dual-source.js +0 -168
- package/dist/validation-schemas/dual-source.js.map +0 -1
- package/dist/validation-schemas/export-info.d.ts +0 -53
- package/dist/validation-schemas/export-info.d.ts.map +0 -1
- package/dist/validation-schemas/export-info.js +0 -101
- package/dist/validation-schemas/export-info.js.map +0 -1
- package/dist/validation-schemas/extracted-pattern.d.ts +0 -351
- package/dist/validation-schemas/extracted-pattern.d.ts.map +0 -1
- package/dist/validation-schemas/extracted-pattern.js +0 -459
- package/dist/validation-schemas/extracted-pattern.js.map +0 -1
- package/dist/validation-schemas/extracted-shape.d.ts +0 -200
- package/dist/validation-schemas/extracted-shape.d.ts.map +0 -1
- package/dist/validation-schemas/extracted-shape.js +0 -182
- package/dist/validation-schemas/extracted-shape.js.map +0 -1
- package/dist/validation-schemas/feature.d.ts +0 -554
- package/dist/validation-schemas/feature.d.ts.map +0 -1
- package/dist/validation-schemas/feature.js +0 -262
- package/dist/validation-schemas/feature.js.map +0 -1
- package/dist/validation-schemas/index.d.ts +0 -15
- package/dist/validation-schemas/index.d.ts.map +0 -1
- package/dist/validation-schemas/index.js +0 -32
- package/dist/validation-schemas/index.js.map +0 -1
- package/dist/validation-schemas/lint.d.ts +0 -46
- package/dist/validation-schemas/lint.d.ts.map +0 -1
- package/dist/validation-schemas/lint.js +0 -45
- package/dist/validation-schemas/lint.js.map +0 -1
- package/dist/validation-schemas/master-dataset.d.ts +0 -8299
- package/dist/validation-schemas/master-dataset.d.ts.map +0 -1
- package/dist/validation-schemas/master-dataset.js +0 -275
- package/dist/validation-schemas/master-dataset.js.map +0 -1
- package/dist/validation-schemas/output-schemas.d.ts +0 -183
- package/dist/validation-schemas/output-schemas.d.ts.map +0 -1
- package/dist/validation-schemas/output-schemas.js +0 -149
- package/dist/validation-schemas/output-schemas.js.map +0 -1
- package/dist/validation-schemas/scenario-ref.d.ts +0 -80
- package/dist/validation-schemas/scenario-ref.d.ts.map +0 -1
- package/dist/validation-schemas/scenario-ref.js +0 -73
- package/dist/validation-schemas/scenario-ref.js.map +0 -1
- package/dist/validation-schemas/tag-registry.d.ts +0 -210
- package/dist/validation-schemas/tag-registry.d.ts.map +0 -1
- package/dist/validation-schemas/tag-registry.js +0 -248
- package/dist/validation-schemas/tag-registry.js.map +0 -1
- package/dist/validation-schemas/workflow-config.d.ts +0 -125
- package/dist/validation-schemas/workflow-config.d.ts.map +0 -1
- package/dist/validation-schemas/workflow-config.js +0 -138
- package/dist/validation-schemas/workflow-config.js.map +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**312 rules** from 62 features. 312 rules have explicit invariants.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -362,17 +362,17 @@ _Validates that ARCHITECTURE.md retains its full reference content and that_
|
|
|
362
362
|
|
|
363
363
|
---
|
|
364
364
|
|
|
365
|
-
####
|
|
365
|
+
#### PatternGraph shapes appear in ARCHITECTURE-TYPES reference
|
|
366
366
|
|
|
367
|
-
> **Invariant:** The ARCHITECTURE-TYPES.md reference document contains core
|
|
367
|
+
> **Invariant:** The ARCHITECTURE-TYPES.md reference document contains core PatternGraph types (PatternGraph, RuntimePatternGraph, RawDataset) and pipeline types (PipelineOptions, PipelineResult) extracted from shape annotations.
|
|
368
368
|
>
|
|
369
369
|
> **Rationale:** Type shapes are the structural backbone of the pipeline. Generating their documentation from annotations ensures the reference always matches the actual TypeScript interfaces, eliminating manual drift.
|
|
370
370
|
|
|
371
371
|
**Verified by:**
|
|
372
372
|
|
|
373
|
-
- Core
|
|
373
|
+
- Core PatternGraph types appear in ARCHITECTURE-TYPES
|
|
374
374
|
- Pipeline types appear in ARCHITECTURE-TYPES reference
|
|
375
|
-
- Unified Transformation section has full
|
|
375
|
+
- Unified Transformation section has full PatternGraph content
|
|
376
376
|
|
|
377
377
|
---
|
|
378
378
|
|
|
@@ -554,7 +554,7 @@ _arch-tag-extraction.feature_
|
|
|
554
554
|
|
|
555
555
|
### Business Rules Document Codec
|
|
556
556
|
|
|
557
|
-
_Tests the BusinessRulesCodec transformation from
|
|
557
|
+
_Tests the BusinessRulesCodec transformation from PatternGraph to RenderableDocument._
|
|
558
558
|
|
|
559
559
|
---
|
|
560
560
|
|
|
@@ -709,12 +709,11 @@ _Tests the CodecBasedGenerator which adapts the RenderableDocument Model (RDM)_
|
|
|
709
709
|
|
|
710
710
|
> **Invariant:** CodecBasedGenerator delegates document generation to the underlying codec and surfaces codec errors through the generator interface.
|
|
711
711
|
>
|
|
712
|
-
> **Rationale:** The adapter pattern enables codec-based rendering to integrate with the existing orchestrator without modifying either side.
|
|
712
|
+
> **Rationale:** The adapter pattern enables codec-based rendering to integrate with the existing orchestrator without modifying either side. PatternGraph is required in context — enforced by the TypeScript type system, not at runtime.
|
|
713
713
|
|
|
714
714
|
**Verified by:**
|
|
715
715
|
|
|
716
716
|
- Generator delegates to codec
|
|
717
|
-
- Missing MasterDataset returns error
|
|
718
717
|
- Codec options are passed through
|
|
719
718
|
|
|
720
719
|
_codec-based.feature_
|
|
@@ -1004,7 +1003,7 @@ _content-deduplication.feature_
|
|
|
1004
1003
|
|
|
1005
1004
|
### Convention Extractor
|
|
1006
1005
|
|
|
1007
|
-
_Extracts convention content from
|
|
1006
|
+
_Extracts convention content from PatternGraph decision records_
|
|
1008
1007
|
|
|
1009
1008
|
---
|
|
1010
1009
|
|
|
@@ -1477,7 +1476,7 @@ _Tests the full design review generation pipeline: sequence annotations are_
|
|
|
1477
1476
|
|
|
1478
1477
|
> **Invariant:** buildSequenceIndexEntry produces a SequenceIndexEntry with steps sorted by stepNumber, participants deduplicated with orchestrator first, and data flow types collected from Input/Output annotations.
|
|
1479
1478
|
>
|
|
1480
|
-
> **Rationale:** Pre-computing in the transform pass avoids repeated parsing in the codec. ADR-006 mandates the
|
|
1479
|
+
> **Rationale:** Pre-computing in the transform pass avoids repeated parsing in the codec. ADR-006 mandates the PatternGraph as the sole read model.
|
|
1481
1480
|
|
|
1482
1481
|
**Verified by:**
|
|
1483
1482
|
|
|
@@ -1612,7 +1611,7 @@ _Tests the full design review generation pipeline: sequence annotations are_
|
|
|
1612
1611
|
|
|
1613
1612
|
#### Process API sequence lookup resolves pattern names case-insensitively
|
|
1614
1613
|
|
|
1615
|
-
> **Invariant:** The sequence subcommand resolves pattern names with the same case-insensitive matching behavior as other pattern-oriented
|
|
1614
|
+
> **Invariant:** The sequence subcommand resolves pattern names with the same case-insensitive matching behavior as other pattern-oriented pattern-graph queries.
|
|
1616
1615
|
>
|
|
1617
1616
|
> **Rationale:** Design review consumers should not need exact display-name casing when querying sequence data from the CLI.
|
|
1618
1617
|
|
|
@@ -1905,6 +1904,159 @@ _Links to implementation files in generated pattern documents should have_
|
|
|
1905
1904
|
|
|
1906
1905
|
_implementation-links.feature_
|
|
1907
1906
|
|
|
1907
|
+
### Index Codec
|
|
1908
|
+
|
|
1909
|
+
_Validates the Index Codec that transforms PatternGraph into a_
|
|
1910
|
+
|
|
1911
|
+
---
|
|
1912
|
+
|
|
1913
|
+
#### Document metadata is correctly set
|
|
1914
|
+
|
|
1915
|
+
> **Invariant:** The index document must have the title "Documentation Index", a purpose string referencing @libar-dev/architect, and all sections enabled when using default options.
|
|
1916
|
+
>
|
|
1917
|
+
> **Rationale:** Document metadata drives navigation and table of contents generation — incorrect titles or missing purpose strings produce broken index pages in generated doc sites.
|
|
1918
|
+
|
|
1919
|
+
**Verified by:**
|
|
1920
|
+
|
|
1921
|
+
- Document title is Documentation Index
|
|
1922
|
+
- Document purpose references @libar-dev/architect
|
|
1923
|
+
- Default options produce all sections
|
|
1924
|
+
|
|
1925
|
+
---
|
|
1926
|
+
|
|
1927
|
+
#### Package metadata section renders correctly
|
|
1928
|
+
|
|
1929
|
+
> **Invariant:** The Package Metadata section must always render a table with hardcoded fields: Package (@libar-dev/architect), Purpose, Patterns count derived from dataset, Product Areas count derived from dataset, and License (MIT).
|
|
1930
|
+
>
|
|
1931
|
+
> **Rationale:** Package metadata provides readers with an instant snapshot of the project — hardcoded fields ensure consistent branding while dataset-derived counts stay accurate.
|
|
1932
|
+
|
|
1933
|
+
**Verified by:**
|
|
1934
|
+
|
|
1935
|
+
- Package name shows @libar-dev/architect
|
|
1936
|
+
- Purpose shows context engineering platform description
|
|
1937
|
+
- License shows MIT
|
|
1938
|
+
- Pattern counts reflect dataset
|
|
1939
|
+
- Product area count reflects dataset
|
|
1940
|
+
- Package metadata section can be disabled
|
|
1941
|
+
|
|
1942
|
+
---
|
|
1943
|
+
|
|
1944
|
+
#### Document inventory groups entries by topic
|
|
1945
|
+
|
|
1946
|
+
> **Invariant:** When documentEntries is non-empty and includeDocumentInventory is true, entries must be grouped by topic with one H3 sub-heading and one table per topic group. When entries are empty, no inventory section is rendered.
|
|
1947
|
+
>
|
|
1948
|
+
> **Rationale:** A flat list of all documents becomes unnavigable beyond a small count — topic grouping gives readers a structured entry point into the documentation set.
|
|
1949
|
+
|
|
1950
|
+
**Verified by:**
|
|
1951
|
+
|
|
1952
|
+
- Empty entries produces no inventory section
|
|
1953
|
+
- Entries grouped by topic produce per-topic tables
|
|
1954
|
+
- Inventory section can be disabled
|
|
1955
|
+
|
|
1956
|
+
---
|
|
1957
|
+
|
|
1958
|
+
#### Product area statistics are computed from dataset
|
|
1959
|
+
|
|
1960
|
+
> **Invariant:** The Product Area Statistics table must list each product area alphabetically with Patterns, Completed, Active, Planned, and Progress columns, plus a bolded Total row aggregating all areas. The progress column must contain a visual progress bar and percentage.
|
|
1961
|
+
>
|
|
1962
|
+
> **Rationale:** Product area statistics give team leads a cross-cutting view of work distribution — alphabetical order and a total row enable fast scanning and aggregate assessment.
|
|
1963
|
+
|
|
1964
|
+
**Verified by:**
|
|
1965
|
+
|
|
1966
|
+
- Product area table includes all areas alphabetically
|
|
1967
|
+
- Total row aggregates all areas
|
|
1968
|
+
- Progress bar and percentage are computed
|
|
1969
|
+
- Product area stats can be disabled
|
|
1970
|
+
|
|
1971
|
+
---
|
|
1972
|
+
|
|
1973
|
+
#### Phase progress summarizes pattern status
|
|
1974
|
+
|
|
1975
|
+
> **Invariant:** The Phase Progress section must render a summary paragraph with total, completed, active, and planned counts, a status distribution table with Status/Count/Percentage columns, and — when patterns have phase numbers — a "By Phase" sub-section with a per-phase breakdown table.
|
|
1976
|
+
>
|
|
1977
|
+
> **Rationale:** Phase progress is the primary indicator of delivery health — the summary paragraph provides instant context while the distribution table enables deeper analysis.
|
|
1978
|
+
|
|
1979
|
+
**Verified by:**
|
|
1980
|
+
|
|
1981
|
+
- Phase progress shows total counts
|
|
1982
|
+
- Status distribution table shows completed/active/planned
|
|
1983
|
+
- Per-phase breakdown appears when phases exist
|
|
1984
|
+
- Phase progress can be disabled
|
|
1985
|
+
|
|
1986
|
+
---
|
|
1987
|
+
|
|
1988
|
+
#### Regeneration footer contains commands
|
|
1989
|
+
|
|
1990
|
+
> **Invariant:** The Regeneration section must always be present (it is not optional), must contain the heading "Regeneration", and must include at least one code block with pnpm commands.
|
|
1991
|
+
>
|
|
1992
|
+
> **Rationale:** The regeneration footer ensures consumers always know how to rebuild the docs — it is unconditional so it cannot be accidentally omitted.
|
|
1993
|
+
|
|
1994
|
+
**Verified by:**
|
|
1995
|
+
|
|
1996
|
+
- Regeneration section has heading "Regeneration"
|
|
1997
|
+
- Code blocks contain pnpm commands
|
|
1998
|
+
|
|
1999
|
+
---
|
|
2000
|
+
|
|
2001
|
+
#### Section ordering follows layout contract
|
|
2002
|
+
|
|
2003
|
+
> **Invariant:** Sections must appear in this fixed order: Package Metadata, preamble (if any), Document Inventory (if any), Product Area Statistics, Phase Progress, Regeneration. Separators must appear after each non-final section group. This order is the layout contract for INDEX.md.
|
|
2004
|
+
>
|
|
2005
|
+
> **Rationale:** Consumers depend on a predictable INDEX.md structure for navigation links — reordering sections would break existing bookmarks and tool-generated cross-references.
|
|
2006
|
+
|
|
2007
|
+
**Verified by:**
|
|
2008
|
+
|
|
2009
|
+
- Default layout order is metadata, stats, progress, regeneration
|
|
2010
|
+
- Preamble appears after metadata and before inventory
|
|
2011
|
+
- Separators appear between sections
|
|
2012
|
+
- Default layout order is metadata
|
|
2013
|
+
- stats
|
|
2014
|
+
- progress
|
|
2015
|
+
- regeneration
|
|
2016
|
+
|
|
2017
|
+
---
|
|
2018
|
+
|
|
2019
|
+
#### Custom purpose text overrides default
|
|
2020
|
+
|
|
2021
|
+
> **Invariant:** When purposeText is set to a non-empty string, the document purpose must use that string instead of the auto-generated default. When purposeText is empty or omitted, the auto-generated purpose is used.
|
|
2022
|
+
>
|
|
2023
|
+
> **Rationale:** Consumers with different documentation sets need to customize the navigation purpose without post-processing the generated output.
|
|
2024
|
+
|
|
2025
|
+
**Verified by:**
|
|
2026
|
+
|
|
2027
|
+
- purposeText replaces auto-generated purpose
|
|
2028
|
+
- Empty purposeText uses auto-generated purpose
|
|
2029
|
+
|
|
2030
|
+
---
|
|
2031
|
+
|
|
2032
|
+
#### Epilogue replaces regeneration footer
|
|
2033
|
+
|
|
2034
|
+
> **Invariant:** When epilogue sections are provided, they completely replace the built-in regeneration footer. When epilogue is empty, the regeneration footer is rendered as before.
|
|
2035
|
+
>
|
|
2036
|
+
> **Rationale:** Consumers may need a custom footer (e.g., links to CI, contribution guides) that has nothing to do with regeneration commands.
|
|
2037
|
+
|
|
2038
|
+
**Verified by:**
|
|
2039
|
+
|
|
2040
|
+
- Epilogue replaces built-in footer
|
|
2041
|
+
- Empty epilogue preserves regeneration footer
|
|
2042
|
+
|
|
2043
|
+
---
|
|
2044
|
+
|
|
2045
|
+
#### Package metadata overrides work
|
|
2046
|
+
|
|
2047
|
+
> **Invariant:** When packageMetadataOverrides provides a value for name, purpose, or license, that value replaces the corresponding default or projectMetadata value in the Package Metadata table. Unset override keys fall through to the default chain.
|
|
2048
|
+
>
|
|
2049
|
+
> **Rationale:** Consumers reusing the IndexCodec for different packages need to override individual metadata fields without providing a full projectMetadata object.
|
|
2050
|
+
|
|
2051
|
+
**Verified by:**
|
|
2052
|
+
|
|
2053
|
+
- Name override replaces package name
|
|
2054
|
+
- Purpose override replaces purpose
|
|
2055
|
+
- License override replaces license
|
|
2056
|
+
- Unset overrides fall through to defaults
|
|
2057
|
+
|
|
2058
|
+
_index-codec.feature_
|
|
2059
|
+
|
|
1908
2060
|
### Layered Diagram Generation
|
|
1909
2061
|
|
|
1910
2062
|
_As a documentation generator_
|
|
@@ -3111,12 +3263,12 @@ _Scoped diagram generation from diagramScopes config, including archContext,_
|
|
|
3111
3263
|
|
|
3112
3264
|
> **Invariant:** Hardcoded diagram sources render without relationship-scoping input and emit stable, source-specific Mermaid content.
|
|
3113
3265
|
>
|
|
3114
|
-
> **Rationale:** Domain diagrams such as pipeline and
|
|
3266
|
+
> **Rationale:** Domain diagrams such as pipeline and PatternGraph fan-out encode canonical architecture views that should not depend on ad-hoc test dataset shape.
|
|
3115
3267
|
|
|
3116
3268
|
**Verified by:**
|
|
3117
3269
|
|
|
3118
|
-
-
|
|
3119
|
-
-
|
|
3270
|
+
- pattern-graph-views source produces PatternGraph fan-out diagram
|
|
3271
|
+
- pattern-graph-views source renders expected fan-out nodes
|
|
3120
3272
|
|
|
3121
3273
|
---
|
|
3122
3274
|
|
|
@@ -3636,7 +3788,7 @@ _- Need to generate product requirements documents with flexible groupings_
|
|
|
3636
3788
|
|
|
3637
3789
|
#### RequirementsDocumentCodec generates PRD-style documentation from patterns
|
|
3638
3790
|
|
|
3639
|
-
> **Invariant:** RequirementsDocumentCodec transforms
|
|
3791
|
+
> **Invariant:** RequirementsDocumentCodec transforms PatternGraph patterns into a PRD-style document with flexible grouping (product area, user role, or phase), optional detail file generation, and business value rendering.
|
|
3640
3792
|
>
|
|
3641
3793
|
> **Rationale:** Flexible grouping lets stakeholders view requirements through their preferred lens (area, role, or phase), and detail files provide deep-dive context without bloating the summary document.
|
|
3642
3794
|
|
|
@@ -3659,7 +3811,7 @@ _- Need to generate product requirements documents with flexible groupings_
|
|
|
3659
3811
|
|
|
3660
3812
|
#### AdrDocumentCodec documents architecture decisions
|
|
3661
3813
|
|
|
3662
|
-
> **Invariant:** AdrDocumentCodec transforms
|
|
3814
|
+
> **Invariant:** AdrDocumentCodec transforms PatternGraph ADR patterns into an architecture decision record document with status tracking, category/phase/date grouping, supersession relationships, and optional detail file generation.
|
|
3663
3815
|
>
|
|
3664
3816
|
> **Rationale:** Architecture decisions lose value without status tracking and supersession chains; without them, teams act on outdated decisions and cannot trace why a previous approach was abandoned.
|
|
3665
3817
|
|
|
@@ -4165,7 +4317,7 @@ _table-extraction.feature_
|
|
|
4165
4317
|
|
|
4166
4318
|
### Taxonomy Codec
|
|
4167
4319
|
|
|
4168
|
-
_Validates the Taxonomy Codec that transforms
|
|
4320
|
+
_Validates the Taxonomy Codec that transforms PatternGraph into a_
|
|
4169
4321
|
|
|
4170
4322
|
---
|
|
4171
4323
|
|
|
@@ -4333,7 +4485,7 @@ _- Generators need multiple views of the same pattern data_
|
|
|
4333
4485
|
|
|
4334
4486
|
#### Empty dataset produces valid zero-state views
|
|
4335
4487
|
|
|
4336
|
-
> **Invariant:** An empty input produces a
|
|
4488
|
+
> **Invariant:** An empty input produces a PatternGraph with all counts at zero and no groupings.
|
|
4337
4489
|
>
|
|
4338
4490
|
> **Rationale:** Generators must handle the zero-state gracefully; a missing or malformed empty dataset would cause null-reference errors across all rendering codecs.
|
|
4339
4491
|
|
|
@@ -4418,7 +4570,7 @@ _- Generators need multiple views of the same pattern data_
|
|
|
4418
4570
|
|
|
4419
4571
|
#### Workflow integration conditionally includes delivery process data
|
|
4420
4572
|
|
|
4421
|
-
> **Invariant:** The workflow is included in the
|
|
4573
|
+
> **Invariant:** The workflow is included in the PatternGraph only when provided, and phase names are resolved from the workflow configuration.
|
|
4422
4574
|
>
|
|
4423
4575
|
> **Rationale:** Projects without a delivery workflow must still produce valid datasets; unconditionally requiring workflow data would break standalone documentation generation.
|
|
4424
4576
|
|
|
@@ -4431,7 +4583,7 @@ _transform-dataset.feature_
|
|
|
4431
4583
|
|
|
4432
4584
|
### Validation Rules Codec
|
|
4433
4585
|
|
|
4434
|
-
_Validates the Validation Rules Codec that transforms
|
|
4586
|
+
_Validates the Validation Rules Codec that transforms PatternGraph into a_
|
|
4435
4587
|
|
|
4436
4588
|
---
|
|
4437
4589
|
|
|
@@ -112,7 +112,7 @@ artifacts are annotated source code, executable specs, and decision specs.
|
|
|
112
112
|
|
|
113
113
|
**Invariant:** `@architect-pattern:X` may appear in exactly one file across the entire codebase. The `mergePatterns()` conflict check in `orchestrator.ts` correctly enforces this.
|
|
114
114
|
|
|
115
|
-
**Rationale:** Duplicate pattern definitions cause merge conflicts in the
|
|
115
|
+
**Rationale:** Duplicate pattern definitions cause merge conflicts in the PatternGraph and produce ambiguous ownership in generated documentation.
|
|
116
116
|
|
|
117
117
|
| Current State | Resolution |
|
|
118
118
|
| ------------------------------- | ----------------------------------------------- |
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**Context:**
|
|
15
15
|
The documentation generator needs to transform structured pattern data
|
|
16
|
-
(
|
|
16
|
+
(PatternGraph) into markdown files. The initial approach used direct
|
|
17
17
|
string concatenation in generator functions, mixing data selection,
|
|
18
18
|
formatting logic, and output assembly in a single pass. This made
|
|
19
19
|
generators hard to test, difficult to compose, and impossible to
|
|
@@ -22,7 +22,7 @@ AI context).
|
|
|
22
22
|
|
|
23
23
|
**Decision:**
|
|
24
24
|
Adopt a codec architecture inspired by serialization codecs (encode/decode).
|
|
25
|
-
Each document type has a codec that decodes a
|
|
25
|
+
Each document type has a codec that decodes a PatternGraph into a
|
|
26
26
|
RenderableDocument — an intermediate representation of sections, headings,
|
|
27
27
|
tables, paragraphs, and code blocks. A separate renderer transforms the
|
|
28
28
|
RenderableDocument into markdown. This separates data selection (what to
|
|
@@ -52,15 +52,15 @@ include) from formatting (how it looks) from serialization (markdown syntax).
|
|
|
52
52
|
|
|
53
53
|
### Codecs implement a decode-only contract
|
|
54
54
|
|
|
55
|
-
**Invariant:** Every codec is a pure function that accepts a
|
|
55
|
+
**Invariant:** Every codec is a pure function that accepts a PatternGraph and returns a RenderableDocument. Codecs do not perform side effects, do not write files, and do not access the filesystem. The codec contract is decode-only because the transformation is one-directional: structured data becomes a document, never the reverse.
|
|
56
56
|
|
|
57
|
-
**Rationale:** Pure functions are deterministic and trivially testable. For the same
|
|
57
|
+
**Rationale:** Pure functions are deterministic and trivially testable. For the same PatternGraph, a codec always produces the same RenderableDocument. This makes snapshot testing reliable and enables codec output comparison across versions.
|
|
58
58
|
|
|
59
59
|
**Codec call signature:**
|
|
60
60
|
|
|
61
61
|
```typescript
|
|
62
62
|
interface DocumentCodec {
|
|
63
|
-
decode(dataset:
|
|
63
|
+
decode(dataset: PatternGraph): RenderableDocument;
|
|
64
64
|
}
|
|
65
65
|
```
|
|
66
66
|
|
|
@@ -14,26 +14,26 @@
|
|
|
14
14
|
**Context:**
|
|
15
15
|
The Architect package applies event sourcing to itself: git is
|
|
16
16
|
the event store, annotated source files are authoritative state, generated
|
|
17
|
-
documentation is a projection. The
|
|
17
|
+
documentation is a projection. The PatternGraph is the read model —
|
|
18
18
|
produced by a single-pass O(n) transformer with pre-computed views
|
|
19
19
|
and a relationship index.
|
|
20
20
|
|
|
21
|
-
ADR-005 established that codecs consume
|
|
22
|
-
The
|
|
21
|
+
ADR-005 established that codecs consume PatternGraph as their sole input.
|
|
22
|
+
The PatternGraphAPI consumes it. But the validation layer bypasses it,
|
|
23
23
|
wiring its own mini-pipeline from raw scanner/extractor output. It creates
|
|
24
24
|
a lossy local type that discards relationship data, then discovers it
|
|
25
25
|
lacks the information needed — requiring ad-hoc re-derivation of what
|
|
26
|
-
the
|
|
26
|
+
the PatternGraph already computes.
|
|
27
27
|
|
|
28
|
-
This is the same class of problem the
|
|
28
|
+
This is the same class of problem the PatternGraph was created to solve.
|
|
29
29
|
Before the single-pass transformer, each generator called `.filter()`
|
|
30
|
-
independently. The
|
|
30
|
+
independently. The PatternGraph eliminated that duplication for codecs.
|
|
31
31
|
This ADR extends the same principle to all consumers.
|
|
32
32
|
|
|
33
33
|
**Decision:**
|
|
34
|
-
The
|
|
34
|
+
The PatternGraph is the single read model for all consumers. No consumer
|
|
35
35
|
re-derives pattern data from raw scanner/extractor output when that data
|
|
36
|
-
is available in the
|
|
36
|
+
is available in the PatternGraph. Validators, codecs, and query APIs
|
|
37
37
|
consume the same pre-computed read model.
|
|
38
38
|
|
|
39
39
|
**Consequences:**
|
|
@@ -42,27 +42,27 @@ consume the same pre-computed read model.
|
|
|
42
42
|
| -------- | ---------------------------------------------------------------------------------------------- |
|
|
43
43
|
| Positive | Relationship resolution happens once — no consumer re-derives implements, uses, or dependsOn |
|
|
44
44
|
| Positive | Eliminates lossy local types that discard fields from canonical ExtractedPattern |
|
|
45
|
-
| Positive | Validation rules automatically benefit from new
|
|
45
|
+
| Positive | Validation rules automatically benefit from new PatternGraph views and indices |
|
|
46
46
|
| Positive | Aligns with the monorepo's own ADR-006: projections for all reads, never query aggregate state |
|
|
47
47
|
| Negative | Validators that today only need stage 1-2 data will import the transformer |
|
|
48
|
-
| Negative |
|
|
48
|
+
| Negative | PatternGraph schema changes affect more consumers |
|
|
49
49
|
|
|
50
50
|
## Rules
|
|
51
51
|
|
|
52
52
|
### All feature consumers query the read model, not raw state
|
|
53
53
|
|
|
54
|
-
**Invariant:** Code that needs pattern relationships, status groupings, cross-source resolution, or dependency information consumes the
|
|
54
|
+
**Invariant:** Code that needs pattern relationships, status groupings, cross-source resolution, or dependency information consumes the PatternGraph. Direct scanner/extractor imports are permitted only in pipeline orchestration code that builds the PatternGraph.
|
|
55
55
|
|
|
56
|
-
**Rationale:** Bypassing the read model forces consumers to re-derive data that the
|
|
56
|
+
**Rationale:** Bypassing the read model forces consumers to re-derive data that the PatternGraph already computes, creating duplicate logic and divergent behavior when the pipeline evolves.
|
|
57
57
|
|
|
58
|
-
| Layer | May Import
|
|
59
|
-
| ---------------------- |
|
|
60
|
-
| Pipeline Orchestration | scanner/, extractor/, pipeline/
|
|
61
|
-
| Feature Consumption |
|
|
58
|
+
| Layer | May Import | Examples |
|
|
59
|
+
| ---------------------- | ------------------------------- | ---------------------------------------------------- |
|
|
60
|
+
| Pipeline Orchestration | scanner/, extractor/, pipeline/ | orchestrator.ts, pattern-graph-cli.ts pipeline setup |
|
|
61
|
+
| Feature Consumption | PatternGraph, relationshipIndex | codecs, PatternGraphAPI, validators, query handlers |
|
|
62
62
|
|
|
63
63
|
**Verified by:**
|
|
64
64
|
|
|
65
|
-
- Feature consumers import from
|
|
65
|
+
- Feature consumers import from PatternGraph not from raw pipeline stages
|
|
66
66
|
|
|
67
67
|
Exception: `lint-patterns.ts` is a pure stage-1 consumer. It validates
|
|
68
68
|
annotation syntax on scanned files. No relationships
|
|
@@ -74,21 +74,21 @@ consume the same pre-computed read model.
|
|
|
74
74
|
|
|
75
75
|
**Invariant:** Consumers do not define local DTOs that duplicate and discard fields from ExtractedPattern. If a consumer needs a subset, the type system provides the projection — not a hand-written extraction function that becomes a barrier between the consumer and canonical data.
|
|
76
76
|
|
|
77
|
-
**Rationale:** Lossy local types silently drop fields that later become needed, causing bugs that only surface when new
|
|
77
|
+
**Rationale:** Lossy local types silently drop fields that later become needed, causing bugs that only surface when new PatternGraph capabilities are added and the local type lacks them.
|
|
78
78
|
|
|
79
79
|
**Verified by:**
|
|
80
80
|
|
|
81
|
-
- Feature consumers import from
|
|
81
|
+
- Feature consumers import from PatternGraph not from raw pipeline stages
|
|
82
82
|
|
|
83
83
|
### Relationship resolution is computed once
|
|
84
84
|
|
|
85
|
-
**Invariant:** Forward relationships (uses, dependsOn, implementsPatterns) and reverse lookups (usedBy, implementedBy, extendedBy) are computed in `
|
|
85
|
+
**Invariant:** Forward relationships (uses, dependsOn, implementsPatterns) and reverse lookups (usedBy, implementedBy, extendedBy) are computed in `transformToPatternGraph()`. No consumer re-derives these from raw pattern arrays or scanned file tags.
|
|
86
86
|
|
|
87
87
|
**Rationale:** Re-deriving relationships in consumers duplicates the resolution logic and risks inconsistency when different consumers implement subtly different traversal or filtering rules.
|
|
88
88
|
|
|
89
89
|
**Verified by:**
|
|
90
90
|
|
|
91
|
-
- Feature consumers import from
|
|
91
|
+
- Feature consumers import from PatternGraph not from raw pipeline stages
|
|
92
92
|
|
|
93
93
|
### Three named anti-patterns
|
|
94
94
|
|
|
@@ -106,7 +106,7 @@ consume the same pre-computed read model.
|
|
|
106
106
|
|
|
107
107
|
```typescript
|
|
108
108
|
// Good: consume the read model
|
|
109
|
-
function validateCrossSource(dataset:
|
|
109
|
+
function validateCrossSource(dataset: RuntimePatternGraph): ValidationSummary {
|
|
110
110
|
const rel = dataset.relationshipIndex[patternName];
|
|
111
111
|
const isImplemented = rel.implementedBy.length > 0;
|
|
112
112
|
}
|
|
@@ -121,12 +121,12 @@ consume the same pre-computed read model.
|
|
|
121
121
|
**References**
|
|
122
122
|
|
|
123
123
|
- Monorepo ADR-006: Projections for All Reads (same principle, application domain)
|
|
124
|
-
- ADR-005: Codec-Based Markdown Rendering (established
|
|
124
|
+
- ADR-005: Codec-Based Markdown Rendering (established PatternGraph as codec input)
|
|
125
125
|
- Order-management ARCHITECTURE.md: CommandOrchestrator + Read Model separation
|
|
126
126
|
|
|
127
127
|
**Verified by:**
|
|
128
128
|
|
|
129
|
-
- Feature consumers import from
|
|
129
|
+
- Feature consumers import from PatternGraph not from raw pipeline stages
|
|
130
130
|
|
|
131
131
|
Naming them makes them visible in code review — including AI-assisted
|
|
132
132
|
sessions where the default proposal is often "add a helper function."
|
|
@@ -198,12 +198,6 @@ interface CategoryDefinition {
|
|
|
198
198
|
| description | Brief description of the category's purpose and typical patterns |
|
|
199
199
|
| aliases | Alternative tag names that map to this category (e.g., "es" for "event-sourcing") |
|
|
200
200
|
|
|
201
|
-
### TagDefinition (type)
|
|
202
|
-
|
|
203
|
-
```typescript
|
|
204
|
-
type TagDefinition = MetadataTagDefinitionForRegistry;
|
|
205
|
-
```
|
|
206
|
-
|
|
207
201
|
### CategoryTag (type)
|
|
208
202
|
|
|
209
203
|
```typescript
|
|
@@ -231,6 +225,22 @@ type CategoryTag = (typeof CATEGORIES)[number]['tag'];
|
|
|
231
225
|
function buildRegistry(): TagRegistry;
|
|
232
226
|
```
|
|
233
227
|
|
|
228
|
+
### isShapeOnlyDirective (function)
|
|
229
|
+
|
|
230
|
+
```typescript
|
|
231
|
+
/**
|
|
232
|
+
* Check if a directive is a shape-only annotation (declaration-level @architect-shape).
|
|
233
|
+
*
|
|
234
|
+
* Shape directives annotate individual interfaces/types for documentation extraction.
|
|
235
|
+
* They inherit context from a parent pattern and should not enter the directive pipeline
|
|
236
|
+
* as standalone patterns.
|
|
237
|
+
*/
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
function isShapeOnlyDirective(directive: DocDirective, registry: TagRegistry): boolean;
|
|
242
|
+
```
|
|
243
|
+
|
|
234
244
|
### METADATA_TAGS_BY_GROUP (const)
|
|
235
245
|
|
|
236
246
|
```typescript
|
|
@@ -239,7 +249,7 @@ function buildRegistry(): TagRegistry;
|
|
|
239
249
|
* Used for documentation generation to create organized sections.
|
|
240
250
|
*
|
|
241
251
|
* Groups:
|
|
242
|
-
* - core: Essential pattern identification (pattern, status,
|
|
252
|
+
* - core: Essential pattern identification (pattern, status, usecase)
|
|
243
253
|
* - relationship: Pattern dependencies and connections
|
|
244
254
|
* - process: Timeline and assignment tracking
|
|
245
255
|
* - prd: Product requirements documentation
|
|
@@ -255,7 +265,7 @@ function buildRegistry(): TagRegistry;
|
|
|
255
265
|
|
|
256
266
|
```typescript
|
|
257
267
|
METADATA_TAGS_BY_GROUP = {
|
|
258
|
-
core: ['pattern', 'status', '
|
|
268
|
+
core: ['pattern', 'status', 'usecase'] as const,
|
|
259
269
|
relationship: [
|
|
260
270
|
'uses',
|
|
261
271
|
'used-by',
|
|
@@ -521,7 +531,7 @@ CATEGORY_TAGS = CATEGORIES.map((c) => c.tag) as readonly CategoryTag[];
|
|
|
521
531
|
|
|
522
532
|
| Rule | Invariant | Rationale |
|
|
523
533
|
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
524
|
-
| Single value tags produce scalar metadata fields | Each single-value tag (pattern, phase, status
|
|
534
|
+
| Single value tags produce scalar metadata fields | Each single-value tag (pattern, phase, status) maps to exactly one metadata field with the correct type. | Incorrect type coercion (e.g., phase as string instead of number) causes downstream pipeline failures in filtering and sorting. |
|
|
525
535
|
| Array value tags accumulate into list metadata fields | Tags for depends-on and enables split comma-separated values and accumulate across multiple tag occurrences. | Missing a dependency value silently breaks the dependency graph, causing incorrect build ordering and orphaned pattern references. |
|
|
526
536
|
| Category tags are colon-free tags filtered against known non-categories | Tags without colons become categories, except known non-category tags (acceptance-criteria, happy-path) and the architect opt-in marker. | Including test-control tags (acceptance-criteria, happy-path) as categories pollutes the pattern taxonomy with non-semantic values. |
|
|
527
537
|
| Complex tag lists produce fully populated metadata | All tag types (scalar, array, category) are correctly extracted from a single mixed tag list. | Real feature files combine many tag types; extraction must handle all types simultaneously without interference between parsers. |
|