@libar-dev/architect 1.0.0-pre.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/LICENSE +25 -0
- package/LICENSE-MCP +62 -0
- package/README.md +147 -0
- package/dist/api/arch-queries.d.ts +95 -0
- package/dist/api/arch-queries.d.ts.map +1 -0
- package/dist/api/arch-queries.js +310 -0
- package/dist/api/arch-queries.js.map +1 -0
- package/dist/api/context-assembler.d.ts +124 -0
- package/dist/api/context-assembler.d.ts.map +1 -0
- package/dist/api/context-assembler.js +472 -0
- package/dist/api/context-assembler.js.map +1 -0
- package/dist/api/context-formatter.d.ts +26 -0
- package/dist/api/context-formatter.d.ts.map +1 -0
- package/dist/api/context-formatter.js +183 -0
- package/dist/api/context-formatter.js.map +1 -0
- package/dist/api/coverage-analyzer.d.ts +38 -0
- package/dist/api/coverage-analyzer.d.ts.map +1 -0
- package/dist/api/coverage-analyzer.js +117 -0
- package/dist/api/coverage-analyzer.js.map +1 -0
- package/dist/api/fuzzy-match.d.ts +75 -0
- package/dist/api/fuzzy-match.d.ts.map +1 -0
- package/dist/api/fuzzy-match.js +150 -0
- package/dist/api/fuzzy-match.js.map +1 -0
- package/dist/api/handoff-generator.d.ts +45 -0
- package/dist/api/handoff-generator.d.ts.map +1 -0
- package/dist/api/handoff-generator.js +139 -0
- package/dist/api/handoff-generator.js.map +1 -0
- package/dist/api/index.d.ts +61 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +54 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/pattern-helpers.d.ts +51 -0
- package/dist/api/pattern-helpers.d.ts.map +1 -0
- package/dist/api/pattern-helpers.js +84 -0
- package/dist/api/pattern-helpers.js.map +1 -0
- package/dist/api/process-state.d.ts +224 -0
- package/dist/api/process-state.d.ts.map +1 -0
- package/dist/api/process-state.js +308 -0
- package/dist/api/process-state.js.map +1 -0
- package/dist/api/rules-query.d.ts +60 -0
- package/dist/api/rules-query.d.ts.map +1 -0
- package/dist/api/rules-query.js +154 -0
- package/dist/api/rules-query.js.map +1 -0
- package/dist/api/scope-validator.d.ts +56 -0
- package/dist/api/scope-validator.d.ts.map +1 -0
- package/dist/api/scope-validator.js +293 -0
- package/dist/api/scope-validator.js.map +1 -0
- package/dist/api/stub-resolver.d.ts +117 -0
- package/dist/api/stub-resolver.d.ts.map +1 -0
- package/dist/api/stub-resolver.js +154 -0
- package/dist/api/stub-resolver.js.map +1 -0
- package/dist/api/summarize.d.ts +75 -0
- package/dist/api/summarize.d.ts.map +1 -0
- package/dist/api/summarize.js +97 -0
- package/dist/api/summarize.js.map +1 -0
- package/dist/api/types.d.ts +221 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +57 -0
- package/dist/api/types.js.map +1 -0
- package/dist/cache/file-cache.d.ts +72 -0
- package/dist/cache/file-cache.d.ts.map +1 -0
- package/dist/cache/file-cache.js +80 -0
- package/dist/cache/file-cache.js.map +1 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +5 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cli/cli-schema.d.ts +83 -0
- package/dist/cli/cli-schema.d.ts.map +1 -0
- package/dist/cli/cli-schema.js +505 -0
- package/dist/cli/cli-schema.js.map +1 -0
- package/dist/cli/dataset-cache.d.ts +66 -0
- package/dist/cli/dataset-cache.d.ts.map +1 -0
- package/dist/cli/dataset-cache.js +179 -0
- package/dist/cli/dataset-cache.js.map +1 -0
- package/dist/cli/error-handler.d.ts +84 -0
- package/dist/cli/error-handler.d.ts.map +1 -0
- package/dist/cli/error-handler.js +197 -0
- package/dist/cli/error-handler.js.map +1 -0
- package/dist/cli/generate-docs.d.ts +30 -0
- package/dist/cli/generate-docs.d.ts.map +1 -0
- package/dist/cli/generate-docs.js +370 -0
- package/dist/cli/generate-docs.js.map +1 -0
- package/dist/cli/lint-patterns.d.ts +57 -0
- package/dist/cli/lint-patterns.d.ts.map +1 -0
- package/dist/cli/lint-patterns.js +257 -0
- package/dist/cli/lint-patterns.js.map +1 -0
- package/dist/cli/lint-process.d.ts +54 -0
- package/dist/cli/lint-process.d.ts.map +1 -0
- package/dist/cli/lint-process.js +319 -0
- package/dist/cli/lint-process.js.map +1 -0
- package/dist/cli/lint-steps.d.ts +32 -0
- package/dist/cli/lint-steps.d.ts.map +1 -0
- package/dist/cli/lint-steps.js +172 -0
- package/dist/cli/lint-steps.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +22 -0
- package/dist/cli/mcp-server.d.ts.map +1 -0
- package/dist/cli/mcp-server.js +57 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/output-pipeline.d.ts +130 -0
- package/dist/cli/output-pipeline.d.ts.map +1 -0
- package/dist/cli/output-pipeline.js +234 -0
- package/dist/cli/output-pipeline.js.map +1 -0
- package/dist/cli/process-api.d.ts +37 -0
- package/dist/cli/process-api.d.ts.map +1 -0
- package/dist/cli/process-api.js +1550 -0
- package/dist/cli/process-api.js.map +1 -0
- package/dist/cli/repl.d.ts +38 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +239 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/validate-patterns.d.ts +115 -0
- package/dist/cli/validate-patterns.d.ts.map +1 -0
- package/dist/cli/validate-patterns.js +707 -0
- package/dist/cli/validate-patterns.js.map +1 -0
- package/dist/cli/version.d.ts +35 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +64 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/config/config-loader.d.ts +167 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +294 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/defaults.d.ts +92 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +103 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/define-config.d.ts +37 -0
- package/dist/config/define-config.d.ts.map +1 -0
- package/dist/config/define-config.js +38 -0
- package/dist/config/define-config.js.map +1 -0
- package/dist/config/factory.d.ts +79 -0
- package/dist/config/factory.d.ts.map +1 -0
- package/dist/config/factory.js +116 -0
- package/dist/config/factory.js.map +1 -0
- package/dist/config/index.d.ts +45 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +48 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/merge-sources.d.ts +47 -0
- package/dist/config/merge-sources.d.ts.map +1 -0
- package/dist/config/merge-sources.js +61 -0
- package/dist/config/merge-sources.js.map +1 -0
- package/dist/config/presets.d.ts +115 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +119 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/config/project-config-schema.d.ts +192 -0
- package/dist/config/project-config-schema.d.ts.map +1 -0
- package/dist/config/project-config-schema.js +231 -0
- package/dist/config/project-config-schema.js.map +1 -0
- package/dist/config/project-config.d.ts +229 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +37 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/config/regex-builders.d.ts +49 -0
- package/dist/config/regex-builders.d.ts.map +1 -0
- package/dist/config/regex-builders.js +85 -0
- package/dist/config/regex-builders.js.map +1 -0
- package/dist/config/resolve-config.d.ts +65 -0
- package/dist/config/resolve-config.d.ts.map +1 -0
- package/dist/config/resolve-config.js +150 -0
- package/dist/config/resolve-config.js.map +1 -0
- package/dist/config/types.d.ts +81 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +22 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/workflow-loader.d.ts +90 -0
- package/dist/config/workflow-loader.d.ts.map +1 -0
- package/dist/config/workflow-loader.js +167 -0
- package/dist/config/workflow-loader.js.map +1 -0
- package/dist/extractor/doc-extractor.d.ts +233 -0
- package/dist/extractor/doc-extractor.d.ts.map +1 -0
- package/dist/extractor/doc-extractor.js +481 -0
- package/dist/extractor/doc-extractor.js.map +1 -0
- package/dist/extractor/dual-source-extractor.d.ts +161 -0
- package/dist/extractor/dual-source-extractor.d.ts.map +1 -0
- package/dist/extractor/dual-source-extractor.js +407 -0
- package/dist/extractor/dual-source-extractor.js.map +1 -0
- package/dist/extractor/gherkin-extractor.d.ts +170 -0
- package/dist/extractor/gherkin-extractor.d.ts.map +1 -0
- package/dist/extractor/gherkin-extractor.js +543 -0
- package/dist/extractor/gherkin-extractor.js.map +1 -0
- package/dist/extractor/index.d.ts +7 -0
- package/dist/extractor/index.d.ts.map +1 -0
- package/dist/extractor/index.js +11 -0
- package/dist/extractor/index.js.map +1 -0
- package/dist/extractor/layer-inference.d.ts +66 -0
- package/dist/extractor/layer-inference.d.ts.map +1 -0
- package/dist/extractor/layer-inference.js +93 -0
- package/dist/extractor/layer-inference.js.map +1 -0
- package/dist/extractor/shape-extractor.d.ts +79 -0
- package/dist/extractor/shape-extractor.d.ts.map +1 -0
- package/dist/extractor/shape-extractor.js +966 -0
- package/dist/extractor/shape-extractor.js.map +1 -0
- package/dist/generators/built-in/cli-recipe-generator.d.ts +30 -0
- package/dist/generators/built-in/cli-recipe-generator.d.ts.map +1 -0
- package/dist/generators/built-in/cli-recipe-generator.js +155 -0
- package/dist/generators/built-in/cli-recipe-generator.js.map +1 -0
- package/dist/generators/built-in/codec-generators.d.ts +29 -0
- package/dist/generators/built-in/codec-generators.d.ts.map +1 -0
- package/dist/generators/built-in/codec-generators.js +195 -0
- package/dist/generators/built-in/codec-generators.js.map +1 -0
- package/dist/generators/built-in/decision-doc-generator.d.ts +204 -0
- package/dist/generators/built-in/decision-doc-generator.d.ts.map +1 -0
- package/dist/generators/built-in/decision-doc-generator.js +654 -0
- package/dist/generators/built-in/decision-doc-generator.js.map +1 -0
- package/dist/generators/built-in/design-review-generator.d.ts +26 -0
- package/dist/generators/built-in/design-review-generator.d.ts.map +1 -0
- package/dist/generators/built-in/design-review-generator.js +94 -0
- package/dist/generators/built-in/design-review-generator.js.map +1 -0
- package/dist/generators/built-in/index.d.ts +22 -0
- package/dist/generators/built-in/index.d.ts.map +1 -0
- package/dist/generators/built-in/index.js +23 -0
- package/dist/generators/built-in/index.js.map +1 -0
- package/dist/generators/built-in/process-api-reference-generator.d.ts +18 -0
- package/dist/generators/built-in/process-api-reference-generator.d.ts.map +1 -0
- package/dist/generators/built-in/process-api-reference-generator.js +85 -0
- package/dist/generators/built-in/process-api-reference-generator.js.map +1 -0
- package/dist/generators/built-in/reference-generators.d.ts +51 -0
- package/dist/generators/built-in/reference-generators.d.ts.map +1 -0
- package/dist/generators/built-in/reference-generators.js +320 -0
- package/dist/generators/built-in/reference-generators.js.map +1 -0
- package/dist/generators/codec-based.d.ts +63 -0
- package/dist/generators/codec-based.d.ts.map +1 -0
- package/dist/generators/codec-based.js +88 -0
- package/dist/generators/codec-based.js.map +1 -0
- package/dist/generators/content-deduplicator.d.ts +114 -0
- package/dist/generators/content-deduplicator.d.ts.map +1 -0
- package/dist/generators/content-deduplicator.js +356 -0
- package/dist/generators/content-deduplicator.js.map +1 -0
- package/dist/generators/index.d.ts +50 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +54 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/generators/orchestrator.d.ts +265 -0
- package/dist/generators/orchestrator.d.ts.map +1 -0
- package/dist/generators/orchestrator.js +570 -0
- package/dist/generators/orchestrator.js.map +1 -0
- package/dist/generators/pipeline/build-pipeline.d.ts +131 -0
- package/dist/generators/pipeline/build-pipeline.d.ts.map +1 -0
- package/dist/generators/pipeline/build-pipeline.js +248 -0
- package/dist/generators/pipeline/build-pipeline.js.map +1 -0
- package/dist/generators/pipeline/context-inference.d.ts +55 -0
- package/dist/generators/pipeline/context-inference.d.ts.map +1 -0
- package/dist/generators/pipeline/context-inference.js +76 -0
- package/dist/generators/pipeline/context-inference.js.map +1 -0
- package/dist/generators/pipeline/index.d.ts +27 -0
- package/dist/generators/pipeline/index.d.ts.map +1 -0
- package/dist/generators/pipeline/index.js +34 -0
- package/dist/generators/pipeline/index.js.map +1 -0
- package/dist/generators/pipeline/merge-patterns.d.ts +33 -0
- package/dist/generators/pipeline/merge-patterns.d.ts.map +1 -0
- package/dist/generators/pipeline/merge-patterns.js +50 -0
- package/dist/generators/pipeline/merge-patterns.js.map +1 -0
- package/dist/generators/pipeline/relationship-resolver.d.ts +47 -0
- package/dist/generators/pipeline/relationship-resolver.d.ts.map +1 -0
- package/dist/generators/pipeline/relationship-resolver.js +132 -0
- package/dist/generators/pipeline/relationship-resolver.js.map +1 -0
- package/dist/generators/pipeline/sequence-utils.d.ts +49 -0
- package/dist/generators/pipeline/sequence-utils.d.ts.map +1 -0
- package/dist/generators/pipeline/sequence-utils.js +235 -0
- package/dist/generators/pipeline/sequence-utils.js.map +1 -0
- package/dist/generators/pipeline/transform-dataset.d.ts +82 -0
- package/dist/generators/pipeline/transform-dataset.d.ts.map +1 -0
- package/dist/generators/pipeline/transform-dataset.js +355 -0
- package/dist/generators/pipeline/transform-dataset.js.map +1 -0
- package/dist/generators/pipeline/transform-types.d.ts +96 -0
- package/dist/generators/pipeline/transform-types.d.ts.map +1 -0
- package/dist/generators/pipeline/transform-types.js +18 -0
- package/dist/generators/pipeline/transform-types.js.map +1 -0
- package/dist/generators/registry.d.ts +64 -0
- package/dist/generators/registry.d.ts.map +1 -0
- package/dist/generators/registry.js +77 -0
- package/dist/generators/registry.js.map +1 -0
- package/dist/generators/source-mapper.d.ts +143 -0
- package/dist/generators/source-mapper.d.ts.map +1 -0
- package/dist/generators/source-mapper.js +602 -0
- package/dist/generators/source-mapper.js.map +1 -0
- package/dist/generators/source-mapping-validator.d.ts +118 -0
- package/dist/generators/source-mapping-validator.d.ts.map +1 -0
- package/dist/generators/source-mapping-validator.js +334 -0
- package/dist/generators/source-mapping-validator.js.map +1 -0
- package/dist/generators/types.d.ts +104 -0
- package/dist/generators/types.d.ts.map +1 -0
- package/dist/generators/types.js +5 -0
- package/dist/generators/types.js.map +1 -0
- package/dist/generators/warning-collector.d.ts +144 -0
- package/dist/generators/warning-collector.d.ts.map +1 -0
- package/dist/generators/warning-collector.js +166 -0
- package/dist/generators/warning-collector.js.map +1 -0
- package/dist/git/branch-diff.d.ts +44 -0
- package/dist/git/branch-diff.d.ts.map +1 -0
- package/dist/git/branch-diff.js +57 -0
- package/dist/git/branch-diff.js.map +1 -0
- package/dist/git/helpers.d.ts +46 -0
- package/dist/git/helpers.d.ts.map +1 -0
- package/dist/git/helpers.js +67 -0
- package/dist/git/helpers.js.map +1 -0
- package/dist/git/index.d.ts +18 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +18 -0
- package/dist/git/index.js.map +1 -0
- package/dist/git/name-status.d.ts +32 -0
- package/dist/git/name-status.d.ts.map +1 -0
- package/dist/git/name-status.js +66 -0
- package/dist/git/name-status.js.map +1 -0
- package/dist/index.d.ts +107 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/lint/engine.d.ts +113 -0
- package/dist/lint/engine.d.ts.map +1 -0
- package/dist/lint/engine.js +228 -0
- package/dist/lint/engine.js.map +1 -0
- package/dist/lint/index.d.ts +26 -0
- package/dist/lint/index.d.ts.map +1 -0
- package/dist/lint/index.js +24 -0
- package/dist/lint/index.js.map +1 -0
- package/dist/lint/process-guard/decider.d.ts +166 -0
- package/dist/lint/process-guard/decider.d.ts.map +1 -0
- package/dist/lint/process-guard/decider.js +412 -0
- package/dist/lint/process-guard/decider.js.map +1 -0
- package/dist/lint/process-guard/derive-state.d.ts +96 -0
- package/dist/lint/process-guard/derive-state.d.ts.map +1 -0
- package/dist/lint/process-guard/derive-state.js +368 -0
- package/dist/lint/process-guard/derive-state.js.map +1 -0
- package/dist/lint/process-guard/detect-changes.d.ts +109 -0
- package/dist/lint/process-guard/detect-changes.d.ts.map +1 -0
- package/dist/lint/process-guard/detect-changes.js +487 -0
- package/dist/lint/process-guard/detect-changes.js.map +1 -0
- package/dist/lint/process-guard/index.d.ts +35 -0
- package/dist/lint/process-guard/index.d.ts.map +1 -0
- package/dist/lint/process-guard/index.js +39 -0
- package/dist/lint/process-guard/index.js.map +1 -0
- package/dist/lint/process-guard/types.d.ts +255 -0
- package/dist/lint/process-guard/types.d.ts.map +1 -0
- package/dist/lint/process-guard/types.js +31 -0
- package/dist/lint/process-guard/types.js.map +1 -0
- package/dist/lint/rules.d.ts +147 -0
- package/dist/lint/rules.d.ts.map +1 -0
- package/dist/lint/rules.js +289 -0
- package/dist/lint/rules.js.map +1 -0
- package/dist/lint/steps/cross-checks.d.ts +66 -0
- package/dist/lint/steps/cross-checks.d.ts.map +1 -0
- package/dist/lint/steps/cross-checks.js +290 -0
- package/dist/lint/steps/cross-checks.js.map +1 -0
- package/dist/lint/steps/feature-checks.d.ts +78 -0
- package/dist/lint/steps/feature-checks.d.ts.map +1 -0
- package/dist/lint/steps/feature-checks.js +279 -0
- package/dist/lint/steps/feature-checks.js.map +1 -0
- package/dist/lint/steps/index.d.ts +22 -0
- package/dist/lint/steps/index.d.ts.map +1 -0
- package/dist/lint/steps/index.js +26 -0
- package/dist/lint/steps/index.js.map +1 -0
- package/dist/lint/steps/pair-resolver.d.ts +29 -0
- package/dist/lint/steps/pair-resolver.d.ts.map +1 -0
- package/dist/lint/steps/pair-resolver.js +76 -0
- package/dist/lint/steps/pair-resolver.js.map +1 -0
- package/dist/lint/steps/runner.d.ts +28 -0
- package/dist/lint/steps/runner.d.ts.map +1 -0
- package/dist/lint/steps/runner.js +143 -0
- package/dist/lint/steps/runner.js.map +1 -0
- package/dist/lint/steps/step-checks.d.ts +41 -0
- package/dist/lint/steps/step-checks.d.ts.map +1 -0
- package/dist/lint/steps/step-checks.js +164 -0
- package/dist/lint/steps/step-checks.js.map +1 -0
- package/dist/lint/steps/types.d.ts +95 -0
- package/dist/lint/steps/types.d.ts.map +1 -0
- package/dist/lint/steps/types.js +79 -0
- package/dist/lint/steps/types.js.map +1 -0
- package/dist/lint/steps/utils.d.ts +22 -0
- package/dist/lint/steps/utils.d.ts.map +1 -0
- package/dist/lint/steps/utils.js +57 -0
- package/dist/lint/steps/utils.js.map +1 -0
- package/dist/mcp/file-watcher.d.ts +24 -0
- package/dist/mcp/file-watcher.d.ts.map +1 -0
- package/dist/mcp/file-watcher.js +75 -0
- package/dist/mcp/file-watcher.js.map +1 -0
- package/dist/mcp/index.d.ts +19 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +21 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/pipeline-session.d.ts +33 -0
- package/dist/mcp/pipeline-session.d.ts.map +1 -0
- package/dist/mcp/pipeline-session.js +149 -0
- package/dist/mcp/pipeline-session.js.map +1 -0
- package/dist/mcp/server.d.ts +28 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +197 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tool-registry.d.ts +4 -0
- package/dist/mcp/tool-registry.d.ts.map +1 -0
- package/dist/mcp/tool-registry.js +525 -0
- package/dist/mcp/tool-registry.js.map +1 -0
- package/dist/renderable/codecs/adr.d.ts +4730 -0
- package/dist/renderable/codecs/adr.d.ts.map +1 -0
- package/dist/renderable/codecs/adr.js +590 -0
- package/dist/renderable/codecs/adr.js.map +1 -0
- package/dist/renderable/codecs/architecture.d.ts +4760 -0
- package/dist/renderable/codecs/architecture.d.ts.map +1 -0
- package/dist/renderable/codecs/architecture.js +524 -0
- package/dist/renderable/codecs/architecture.js.map +1 -0
- package/dist/renderable/codecs/business-rules.d.ts +4777 -0
- package/dist/renderable/codecs/business-rules.d.ts.map +1 -0
- package/dist/renderable/codecs/business-rules.js +648 -0
- package/dist/renderable/codecs/business-rules.js.map +1 -0
- package/dist/renderable/codecs/claude-module.d.ts +4710 -0
- package/dist/renderable/codecs/claude-module.d.ts.map +1 -0
- package/dist/renderable/codecs/claude-module.js +214 -0
- package/dist/renderable/codecs/claude-module.js.map +1 -0
- package/dist/renderable/codecs/composite.d.ts +84 -0
- package/dist/renderable/codecs/composite.d.ts.map +1 -0
- package/dist/renderable/codecs/composite.js +124 -0
- package/dist/renderable/codecs/composite.js.map +1 -0
- package/dist/renderable/codecs/convention-extractor.d.ts +105 -0
- package/dist/renderable/codecs/convention-extractor.d.ts.map +1 -0
- package/dist/renderable/codecs/convention-extractor.js +353 -0
- package/dist/renderable/codecs/convention-extractor.js.map +1 -0
- package/dist/renderable/codecs/decision-doc.d.ts +308 -0
- package/dist/renderable/codecs/decision-doc.d.ts.map +1 -0
- package/dist/renderable/codecs/decision-doc.js +485 -0
- package/dist/renderable/codecs/decision-doc.js.map +1 -0
- package/dist/renderable/codecs/design-review.d.ts +55 -0
- package/dist/renderable/codecs/design-review.d.ts.map +1 -0
- package/dist/renderable/codecs/design-review.js +532 -0
- package/dist/renderable/codecs/design-review.js.map +1 -0
- package/dist/renderable/codecs/diagram-utils.d.ts +62 -0
- package/dist/renderable/codecs/diagram-utils.d.ts.map +1 -0
- package/dist/renderable/codecs/diagram-utils.js +70 -0
- package/dist/renderable/codecs/diagram-utils.js.map +1 -0
- package/dist/renderable/codecs/helpers.d.ts +553 -0
- package/dist/renderable/codecs/helpers.d.ts.map +1 -0
- package/dist/renderable/codecs/helpers.js +913 -0
- package/dist/renderable/codecs/helpers.js.map +1 -0
- package/dist/renderable/codecs/index-codec.d.ts +4714 -0
- package/dist/renderable/codecs/index-codec.d.ts.map +1 -0
- package/dist/renderable/codecs/index-codec.js +250 -0
- package/dist/renderable/codecs/index-codec.js.map +1 -0
- package/dist/renderable/codecs/index.d.ts +46 -0
- package/dist/renderable/codecs/index.d.ts.map +1 -0
- package/dist/renderable/codecs/index.js +70 -0
- package/dist/renderable/codecs/index.js.map +1 -0
- package/dist/renderable/codecs/patterns.d.ts +4757 -0
- package/dist/renderable/codecs/patterns.d.ts.map +1 -0
- package/dist/renderable/codecs/patterns.js +462 -0
- package/dist/renderable/codecs/patterns.js.map +1 -0
- package/dist/renderable/codecs/planning.d.ts +14055 -0
- package/dist/renderable/codecs/planning.d.ts.map +1 -0
- package/dist/renderable/codecs/planning.js +449 -0
- package/dist/renderable/codecs/planning.js.map +1 -0
- package/dist/renderable/codecs/pr-changes.d.ts +4742 -0
- package/dist/renderable/codecs/pr-changes.d.ts.map +1 -0
- package/dist/renderable/codecs/pr-changes.js +425 -0
- package/dist/renderable/codecs/pr-changes.js.map +1 -0
- package/dist/renderable/codecs/reference.d.ts +215 -0
- package/dist/renderable/codecs/reference.d.ts.map +1 -0
- package/dist/renderable/codecs/reference.js +1578 -0
- package/dist/renderable/codecs/reference.js.map +1 -0
- package/dist/renderable/codecs/reporting.d.ts +14026 -0
- package/dist/renderable/codecs/reporting.d.ts.map +1 -0
- package/dist/renderable/codecs/reporting.js +365 -0
- package/dist/renderable/codecs/reporting.js.map +1 -0
- package/dist/renderable/codecs/requirements.d.ts +4743 -0
- package/dist/renderable/codecs/requirements.d.ts.map +1 -0
- package/dist/renderable/codecs/requirements.js +428 -0
- package/dist/renderable/codecs/requirements.js.map +1 -0
- package/dist/renderable/codecs/session.d.ts +9410 -0
- package/dist/renderable/codecs/session.d.ts.map +1 -0
- package/dist/renderable/codecs/session.js +848 -0
- package/dist/renderable/codecs/session.js.map +1 -0
- package/dist/renderable/codecs/shape-matcher.d.ts +54 -0
- package/dist/renderable/codecs/shape-matcher.d.ts.map +1 -0
- package/dist/renderable/codecs/shape-matcher.js +106 -0
- package/dist/renderable/codecs/shape-matcher.js.map +1 -0
- package/dist/renderable/codecs/shared-schema.d.ts +44 -0
- package/dist/renderable/codecs/shared-schema.d.ts.map +1 -0
- package/dist/renderable/codecs/shared-schema.js +43 -0
- package/dist/renderable/codecs/shared-schema.js.map +1 -0
- package/dist/renderable/codecs/taxonomy.d.ts +4733 -0
- package/dist/renderable/codecs/taxonomy.d.ts.map +1 -0
- package/dist/renderable/codecs/taxonomy.js +570 -0
- package/dist/renderable/codecs/taxonomy.js.map +1 -0
- package/dist/renderable/codecs/timeline.d.ts +14094 -0
- package/dist/renderable/codecs/timeline.d.ts.map +1 -0
- package/dist/renderable/codecs/timeline.js +906 -0
- package/dist/renderable/codecs/timeline.js.map +1 -0
- package/dist/renderable/codecs/types/base.d.ts +81 -0
- package/dist/renderable/codecs/types/base.d.ts.map +1 -0
- package/dist/renderable/codecs/types/base.js +56 -0
- package/dist/renderable/codecs/types/base.js.map +1 -0
- package/dist/renderable/codecs/types/index.d.ts +5 -0
- package/dist/renderable/codecs/types/index.d.ts.map +1 -0
- package/dist/renderable/codecs/types/index.js +5 -0
- package/dist/renderable/codecs/types/index.js.map +1 -0
- package/dist/renderable/codecs/validation-rules.d.ts +4773 -0
- package/dist/renderable/codecs/validation-rules.d.ts.map +1 -0
- package/dist/renderable/codecs/validation-rules.js +537 -0
- package/dist/renderable/codecs/validation-rules.js.map +1 -0
- package/dist/renderable/generate.d.ts +338 -0
- package/dist/renderable/generate.d.ts.map +1 -0
- package/dist/renderable/generate.js +437 -0
- package/dist/renderable/generate.js.map +1 -0
- package/dist/renderable/index.d.ts +36 -0
- package/dist/renderable/index.d.ts.map +1 -0
- package/dist/renderable/index.js +58 -0
- package/dist/renderable/index.js.map +1 -0
- package/dist/renderable/load-preamble.d.ts +56 -0
- package/dist/renderable/load-preamble.d.ts.map +1 -0
- package/dist/renderable/load-preamble.js +298 -0
- package/dist/renderable/load-preamble.js.map +1 -0
- package/dist/renderable/render.d.ts +61 -0
- package/dist/renderable/render.d.ts.map +1 -0
- package/dist/renderable/render.js +346 -0
- package/dist/renderable/render.js.map +1 -0
- package/dist/renderable/schema.d.ts +194 -0
- package/dist/renderable/schema.d.ts.map +1 -0
- package/dist/renderable/schema.js +197 -0
- package/dist/renderable/schema.js.map +1 -0
- package/dist/renderable/utils.d.ts +146 -0
- package/dist/renderable/utils.d.ts.map +1 -0
- package/dist/renderable/utils.js +362 -0
- package/dist/renderable/utils.js.map +1 -0
- package/dist/scanner/ast-parser.d.ts +75 -0
- package/dist/scanner/ast-parser.d.ts.map +1 -0
- package/dist/scanner/ast-parser.js +835 -0
- package/dist/scanner/ast-parser.js.map +1 -0
- package/dist/scanner/gherkin-ast-parser.d.ts +166 -0
- package/dist/scanner/gherkin-ast-parser.d.ts.map +1 -0
- package/dist/scanner/gherkin-ast-parser.js +507 -0
- package/dist/scanner/gherkin-ast-parser.js.map +1 -0
- package/dist/scanner/gherkin-scanner.d.ts +106 -0
- package/dist/scanner/gherkin-scanner.d.ts.map +1 -0
- package/dist/scanner/gherkin-scanner.js +149 -0
- package/dist/scanner/gherkin-scanner.js.map +1 -0
- package/dist/scanner/index.d.ts +85 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +102 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/pattern-scanner.d.ts +83 -0
- package/dist/scanner/pattern-scanner.d.ts.map +1 -0
- package/dist/scanner/pattern-scanner.js +110 -0
- package/dist/scanner/pattern-scanner.js.map +1 -0
- package/dist/taxonomy/categories.d.ts +47 -0
- package/dist/taxonomy/categories.d.ts.map +1 -0
- package/dist/taxonomy/categories.js +175 -0
- package/dist/taxonomy/categories.js.map +1 -0
- package/dist/taxonomy/claude-section-values.d.ts +12 -0
- package/dist/taxonomy/claude-section-values.d.ts.map +1 -0
- package/dist/taxonomy/claude-section-values.js +17 -0
- package/dist/taxonomy/claude-section-values.js.map +1 -0
- package/dist/taxonomy/conventions.d.ts +13 -0
- package/dist/taxonomy/conventions.d.ts.map +1 -0
- package/dist/taxonomy/conventions.js +27 -0
- package/dist/taxonomy/conventions.js.map +1 -0
- package/dist/taxonomy/deliverable-status.d.ts +99 -0
- package/dist/taxonomy/deliverable-status.d.ts.map +1 -0
- package/dist/taxonomy/deliverable-status.js +131 -0
- package/dist/taxonomy/deliverable-status.js.map +1 -0
- package/dist/taxonomy/format-types.d.ts +17 -0
- package/dist/taxonomy/format-types.d.ts.map +1 -0
- package/dist/taxonomy/format-types.js +23 -0
- package/dist/taxonomy/format-types.js.map +1 -0
- package/dist/taxonomy/generator-options.d.ts +67 -0
- package/dist/taxonomy/generator-options.d.ts.map +1 -0
- package/dist/taxonomy/generator-options.js +75 -0
- package/dist/taxonomy/generator-options.js.map +1 -0
- package/dist/taxonomy/hierarchy-levels.d.ts +23 -0
- package/dist/taxonomy/hierarchy-levels.d.ts.map +1 -0
- package/dist/taxonomy/hierarchy-levels.js +22 -0
- package/dist/taxonomy/hierarchy-levels.js.map +1 -0
- package/dist/taxonomy/index.d.ts +35 -0
- package/dist/taxonomy/index.d.ts.map +1 -0
- package/dist/taxonomy/index.js +56 -0
- package/dist/taxonomy/index.js.map +1 -0
- package/dist/taxonomy/layer-types.d.ts +22 -0
- package/dist/taxonomy/layer-types.d.ts.map +1 -0
- package/dist/taxonomy/layer-types.js +28 -0
- package/dist/taxonomy/layer-types.js.map +1 -0
- package/dist/taxonomy/normalized-status.d.ts +99 -0
- package/dist/taxonomy/normalized-status.d.ts.map +1 -0
- package/dist/taxonomy/normalized-status.js +113 -0
- package/dist/taxonomy/normalized-status.js.map +1 -0
- package/dist/taxonomy/registry-builder.d.ts +104 -0
- package/dist/taxonomy/registry-builder.d.ts.map +1 -0
- package/dist/taxonomy/registry-builder.js +561 -0
- package/dist/taxonomy/registry-builder.js.map +1 -0
- package/dist/taxonomy/risk-levels.d.ts +16 -0
- package/dist/taxonomy/risk-levels.d.ts.map +1 -0
- package/dist/taxonomy/risk-levels.js +15 -0
- package/dist/taxonomy/risk-levels.js.map +1 -0
- package/dist/taxonomy/severity-types.d.ts +6 -0
- package/dist/taxonomy/severity-types.d.ts.map +1 -0
- package/dist/taxonomy/severity-types.js +5 -0
- package/dist/taxonomy/severity-types.js.map +1 -0
- package/dist/taxonomy/status-values.d.ts +39 -0
- package/dist/taxonomy/status-values.d.ts.map +1 -0
- package/dist/taxonomy/status-values.js +42 -0
- package/dist/taxonomy/status-values.js.map +1 -0
- package/dist/types/branded.d.ts +89 -0
- package/dist/types/branded.d.ts.map +1 -0
- package/dist/types/branded.js +57 -0
- package/dist/types/branded.js.map +1 -0
- package/dist/types/errors.d.ts +342 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +251 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +41 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/result.d.ts +78 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +78 -0
- package/dist/types/result.js.map +1 -0
- package/dist/utils/collection-utils.d.ts +49 -0
- package/dist/utils/collection-utils.d.ts.map +1 -0
- package/dist/utils/collection-utils.js +58 -0
- package/dist/utils/collection-utils.js.map +1 -0
- package/dist/utils/id-utils.d.ts +46 -0
- package/dist/utils/id-utils.d.ts.map +1 -0
- package/dist/utils/id-utils.js +51 -0
- package/dist/utils/id-utils.js.map +1 -0
- package/dist/utils/index.d.ts +21 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +21 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/string-utils.d.ts +150 -0
- package/dist/utils/string-utils.d.ts.map +1 -0
- package/dist/utils/string-utils.js +281 -0
- package/dist/utils/string-utils.js.map +1 -0
- package/dist/validation/anti-patterns.d.ts +134 -0
- package/dist/validation/anti-patterns.d.ts.map +1 -0
- package/dist/validation/anti-patterns.js +307 -0
- package/dist/validation/anti-patterns.js.map +1 -0
- package/dist/validation/dod-validator.d.ts +94 -0
- package/dist/validation/dod-validator.d.ts.map +1 -0
- package/dist/validation/dod-validator.js +198 -0
- package/dist/validation/dod-validator.js.map +1 -0
- package/dist/validation/fsm/index.d.ts +59 -0
- package/dist/validation/fsm/index.d.ts.map +1 -0
- package/dist/validation/fsm/index.js +64 -0
- package/dist/validation/fsm/index.js.map +1 -0
- package/dist/validation/fsm/states.d.ts +93 -0
- package/dist/validation/fsm/states.d.ts.map +1 -0
- package/dist/validation/fsm/states.js +98 -0
- package/dist/validation/fsm/states.js.map +1 -0
- package/dist/validation/fsm/transitions.d.ts +100 -0
- package/dist/validation/fsm/transitions.d.ts.map +1 -0
- package/dist/validation/fsm/transitions.js +122 -0
- package/dist/validation/fsm/transitions.js.map +1 -0
- package/dist/validation/fsm/validator.d.ts +163 -0
- package/dist/validation/fsm/validator.d.ts.map +1 -0
- package/dist/validation/fsm/validator.js +205 -0
- package/dist/validation/fsm/validator.js.map +1 -0
- package/dist/validation/index.d.ts +23 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +25 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/types.d.ts +136 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +56 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation-schemas/codec-utils.d.ts +188 -0
- package/dist/validation-schemas/codec-utils.d.ts.map +1 -0
- package/dist/validation-schemas/codec-utils.js +258 -0
- package/dist/validation-schemas/codec-utils.js.map +1 -0
- package/dist/validation-schemas/config.d.ts +99 -0
- package/dist/validation-schemas/config.d.ts.map +1 -0
- package/dist/validation-schemas/config.js +178 -0
- package/dist/validation-schemas/config.js.map +1 -0
- package/dist/validation-schemas/doc-directive.d.ts +195 -0
- package/dist/validation-schemas/doc-directive.d.ts.map +1 -0
- package/dist/validation-schemas/doc-directive.js +239 -0
- package/dist/validation-schemas/doc-directive.js.map +1 -0
- package/dist/validation-schemas/dual-source.d.ts +167 -0
- package/dist/validation-schemas/dual-source.d.ts.map +1 -0
- package/dist/validation-schemas/dual-source.js +168 -0
- package/dist/validation-schemas/dual-source.js.map +1 -0
- package/dist/validation-schemas/export-info.d.ts +53 -0
- package/dist/validation-schemas/export-info.d.ts.map +1 -0
- package/dist/validation-schemas/export-info.js +101 -0
- package/dist/validation-schemas/export-info.js.map +1 -0
- package/dist/validation-schemas/extracted-pattern.d.ts +351 -0
- package/dist/validation-schemas/extracted-pattern.d.ts.map +1 -0
- package/dist/validation-schemas/extracted-pattern.js +459 -0
- package/dist/validation-schemas/extracted-pattern.js.map +1 -0
- package/dist/validation-schemas/extracted-shape.d.ts +200 -0
- package/dist/validation-schemas/extracted-shape.d.ts.map +1 -0
- package/dist/validation-schemas/extracted-shape.js +182 -0
- package/dist/validation-schemas/extracted-shape.js.map +1 -0
- package/dist/validation-schemas/feature.d.ts +554 -0
- package/dist/validation-schemas/feature.d.ts.map +1 -0
- package/dist/validation-schemas/feature.js +262 -0
- package/dist/validation-schemas/feature.js.map +1 -0
- package/dist/validation-schemas/index.d.ts +15 -0
- package/dist/validation-schemas/index.d.ts.map +1 -0
- package/dist/validation-schemas/index.js +32 -0
- package/dist/validation-schemas/index.js.map +1 -0
- package/dist/validation-schemas/lint.d.ts +46 -0
- package/dist/validation-schemas/lint.d.ts.map +1 -0
- package/dist/validation-schemas/lint.js +45 -0
- package/dist/validation-schemas/lint.js.map +1 -0
- package/dist/validation-schemas/master-dataset.d.ts +8299 -0
- package/dist/validation-schemas/master-dataset.d.ts.map +1 -0
- package/dist/validation-schemas/master-dataset.js +275 -0
- package/dist/validation-schemas/master-dataset.js.map +1 -0
- package/dist/validation-schemas/output-schemas.d.ts +183 -0
- package/dist/validation-schemas/output-schemas.d.ts.map +1 -0
- package/dist/validation-schemas/output-schemas.js +149 -0
- package/dist/validation-schemas/output-schemas.js.map +1 -0
- package/dist/validation-schemas/scenario-ref.d.ts +80 -0
- package/dist/validation-schemas/scenario-ref.d.ts.map +1 -0
- package/dist/validation-schemas/scenario-ref.js +73 -0
- package/dist/validation-schemas/scenario-ref.js.map +1 -0
- package/dist/validation-schemas/tag-registry.d.ts +210 -0
- package/dist/validation-schemas/tag-registry.d.ts.map +1 -0
- package/dist/validation-schemas/tag-registry.js +248 -0
- package/dist/validation-schemas/tag-registry.js.map +1 -0
- package/dist/validation-schemas/workflow-config.d.ts +125 -0
- package/dist/validation-schemas/workflow-config.d.ts.map +1 -0
- package/dist/validation-schemas/workflow-config.js +138 -0
- package/dist/validation-schemas/workflow-config.js.map +1 -0
- package/docs/ANNOTATION-GUIDE.md +271 -0
- package/docs/ARCHITECTURE.md +1636 -0
- package/docs/CONFIGURATION.md +337 -0
- package/docs/DOCS-GAP-ANALYSIS.md +811 -0
- package/docs/GHERKIN-PATTERNS.md +366 -0
- package/docs/INDEX.md +345 -0
- package/docs/MCP-SETUP.md +140 -0
- package/docs/METHODOLOGY.md +240 -0
- package/docs/PROCESS-API.md +65 -0
- package/docs/PROCESS-GUARD.md +341 -0
- package/docs/SESSION-GUIDES.md +391 -0
- package/docs/TAXONOMY.md +106 -0
- package/docs/VALIDATION.md +418 -0
- package/docs-live/ARCHITECTURE.md +362 -0
- package/docs-live/BUSINESS-RULES.md +24 -0
- package/docs-live/CHANGELOG-GENERATED.md +375 -0
- package/docs-live/DECISIONS.md +78 -0
- package/docs-live/INDEX.md +231 -0
- package/docs-live/PRODUCT-AREAS.md +255 -0
- package/docs-live/TAXONOMY.md +202 -0
- package/docs-live/VALIDATION-RULES.md +119 -0
- package/docs-live/_claude-md/annotation/annotation-overview.md +26 -0
- package/docs-live/_claude-md/annotation/annotation-reference.md +213 -0
- package/docs-live/_claude-md/architecture/architecture-codecs.md +160 -0
- package/docs-live/_claude-md/architecture/architecture-types.md +32 -0
- package/docs-live/_claude-md/architecture/reference-sample.md +162 -0
- package/docs-live/_claude-md/authoring/gherkin-authoring-guide.md +245 -0
- package/docs-live/_claude-md/configuration/configuration-guide.md +216 -0
- package/docs-live/_claude-md/configuration/configuration-overview.md +37 -0
- package/docs-live/_claude-md/core-types/core-types-overview.md +20 -0
- package/docs-live/_claude-md/data-api/data-api-overview.md +39 -0
- package/docs-live/_claude-md/generation/generation-overview.md +30 -0
- package/docs-live/_claude-md/process/process-overview.md +127 -0
- package/docs-live/_claude-md/validation/process-guard.md +185 -0
- package/docs-live/_claude-md/validation/validation-overview.md +37 -0
- package/docs-live/_claude-md/validation/validation-tools-guide.md +242 -0
- package/docs-live/_claude-md/workflow/session-workflow-guide.md +141 -0
- package/docs-live/business-rules/annotation.md +1462 -0
- package/docs-live/business-rules/configuration.md +465 -0
- package/docs-live/business-rules/core-types.md +531 -0
- package/docs-live/business-rules/data-api.md +1403 -0
- package/docs-live/business-rules/generation.md +4726 -0
- package/docs-live/business-rules/process.md +122 -0
- package/docs-live/business-rules/validation.md +998 -0
- package/docs-live/decisions/adr-001-taxonomy-canonical-values.md +197 -0
- package/docs-live/decisions/adr-002-gherkin-only-testing.md +57 -0
- package/docs-live/decisions/adr-003-source-first-pattern-architecture.md +147 -0
- package/docs-live/decisions/adr-004-session-workflow-commands.md +137 -0
- package/docs-live/decisions/adr-005-codec-based-markdown-rendering.md +150 -0
- package/docs-live/decisions/adr-006-single-read-model-architecture.md +136 -0
- package/docs-live/decisions/adr-021-doc-generation-proof-of-concept.md +489 -0
- package/docs-live/product-areas/ANNOTATION.md +591 -0
- package/docs-live/product-areas/CONFIGURATION.md +1048 -0
- package/docs-live/product-areas/CORE-TYPES.md +221 -0
- package/docs-live/product-areas/DATA-API.md +850 -0
- package/docs-live/product-areas/GENERATION.md +1200 -0
- package/docs-live/product-areas/PROCESS.md +351 -0
- package/docs-live/product-areas/VALIDATION.md +1135 -0
- package/docs-live/reference/ANNOTATION-REFERENCE.md +232 -0
- package/docs-live/reference/ARCHITECTURE-CODECS.md +675 -0
- package/docs-live/reference/ARCHITECTURE-TYPES.md +436 -0
- package/docs-live/reference/CONFIGURATION-GUIDE.md +235 -0
- package/docs-live/reference/GHERKIN-AUTHORING-GUIDE.md +270 -0
- package/docs-live/reference/PROCESS-API-RECIPES.md +476 -0
- package/docs-live/reference/PROCESS-API-REFERENCE.md +63 -0
- package/docs-live/reference/PROCESS-GUARD-REFERENCE.md +258 -0
- package/docs-live/reference/REFERENCE-SAMPLE.md +1135 -0
- package/docs-live/reference/SESSION-WORKFLOW-GUIDE.md +384 -0
- package/docs-live/reference/VALIDATION-TOOLS-GUIDE.md +263 -0
- package/docs-live/taxonomy/categories.md +33 -0
- package/docs-live/taxonomy/format-types.md +67 -0
- package/docs-live/taxonomy/metadata-tags.md +693 -0
- package/docs-live/validation/error-catalog.md +78 -0
- package/docs-live/validation/fsm-transitions.md +50 -0
- package/docs-live/validation/protection-levels.md +51 -0
- package/package.json +233 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-validation
|
|
4
|
+
* @architect-pattern FSMTransitions
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-implements PhaseStateMachineValidation
|
|
7
|
+
* @architect-depends-on:PDR005MvpWorkflow
|
|
8
|
+
* @architect-extract-shapes VALID_TRANSITIONS, isValidTransition, getValidTransitionsFrom, getTransitionErrorMessage
|
|
9
|
+
* @architect-arch-role read-model
|
|
10
|
+
* @architect-arch-context validation
|
|
11
|
+
* @architect-arch-layer domain
|
|
12
|
+
*
|
|
13
|
+
* ## FSM Transitions - Valid State Transition Matrix
|
|
14
|
+
*
|
|
15
|
+
* Defines valid transitions between FSM states per PDR-005:
|
|
16
|
+
*
|
|
17
|
+
* ```
|
|
18
|
+
* roadmap ──→ active ──→ completed
|
|
19
|
+
* │ │
|
|
20
|
+
* │ ↓
|
|
21
|
+
* │ roadmap (blocked/regressed)
|
|
22
|
+
* │
|
|
23
|
+
* ↓
|
|
24
|
+
* deferred ──→ roadmap
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* ### When to Use
|
|
28
|
+
*
|
|
29
|
+
* - Use `isValidTransition()` to validate proposed status changes
|
|
30
|
+
* - Use `getValidTransitionsFrom()` to show available options
|
|
31
|
+
*/
|
|
32
|
+
import { DEFAULT_TAG_PREFIX } from '../../config/defaults.js';
|
|
33
|
+
/**
|
|
34
|
+
* Valid FSM transitions matrix
|
|
35
|
+
*
|
|
36
|
+
* Maps each state to the list of states it can transition to.
|
|
37
|
+
*
|
|
38
|
+
* | From | Valid Targets | Notes |
|
|
39
|
+
* |-----------|----------------------------|------------------------------|
|
|
40
|
+
* | roadmap | active, deferred, roadmap | Can start, park, or stay |
|
|
41
|
+
* | active | completed, roadmap | Can finish or regress |
|
|
42
|
+
* | completed | (none) | Terminal state |
|
|
43
|
+
* | deferred | roadmap | Must go through roadmap |
|
|
44
|
+
*/
|
|
45
|
+
export const VALID_TRANSITIONS = {
|
|
46
|
+
roadmap: ['active', 'deferred', 'roadmap'], // Can start work, park, or stay in planning
|
|
47
|
+
active: ['completed', 'roadmap'], // Can finish or regress if blocked
|
|
48
|
+
completed: [], // Terminal state - no transitions allowed
|
|
49
|
+
deferred: ['roadmap'], // Must reactivate through roadmap first
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Check if a transition between two states is valid
|
|
53
|
+
*
|
|
54
|
+
* @param from - Current status
|
|
55
|
+
* @param to - Target status
|
|
56
|
+
* @returns true if the transition is allowed
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* isValidTransition("roadmap", "active"); // → true
|
|
61
|
+
* isValidTransition("roadmap", "completed"); // → false (must go through active)
|
|
62
|
+
* isValidTransition("completed", "active"); // → false (terminal state)
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export function isValidTransition(from, to) {
|
|
66
|
+
const validTargets = VALID_TRANSITIONS[from];
|
|
67
|
+
return validTargets.includes(to);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get all valid transitions from a given state
|
|
71
|
+
*
|
|
72
|
+
* @param status - Current status
|
|
73
|
+
* @returns Array of valid target states (empty for terminal states)
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* getValidTransitionsFrom("roadmap"); // → ["active", "deferred", "roadmap"]
|
|
78
|
+
* getValidTransitionsFrom("completed"); // → []
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export function getValidTransitionsFrom(status) {
|
|
82
|
+
return VALID_TRANSITIONS[status];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get a human-readable description of why a transition is invalid
|
|
86
|
+
*
|
|
87
|
+
* @param from - Current status
|
|
88
|
+
* @param to - Attempted target status
|
|
89
|
+
* @param options - Optional message options with registry for prefix
|
|
90
|
+
* @returns Error message describing the violation
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* getTransitionErrorMessage("roadmap", "completed");
|
|
95
|
+
* // → "Cannot transition from 'roadmap' to 'completed'. Must go through 'active' first."
|
|
96
|
+
*
|
|
97
|
+
* getTransitionErrorMessage("completed", "active");
|
|
98
|
+
* // → "Cannot transition from 'completed' (terminal state). Use unlock-reason tag to modify."
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export function getTransitionErrorMessage(from, to, options) {
|
|
102
|
+
const tagPrefix = options?.registry?.tagPrefix ?? DEFAULT_TAG_PREFIX;
|
|
103
|
+
// Handle terminal state
|
|
104
|
+
if (from === 'completed') {
|
|
105
|
+
return `Cannot transition from 'completed' (terminal state). Use ${tagPrefix}unlock-reason to modify.`;
|
|
106
|
+
}
|
|
107
|
+
// Handle skipping active (roadmap → completed)
|
|
108
|
+
if (from === 'roadmap' && to === 'completed') {
|
|
109
|
+
return `Cannot transition from 'roadmap' to 'completed'. Must go through 'active' first.`;
|
|
110
|
+
}
|
|
111
|
+
// Handle deferred shortcuts
|
|
112
|
+
if (from === 'deferred' && (to === 'active' || to === 'completed')) {
|
|
113
|
+
return `Cannot transition from 'deferred' to '${to}'. Must reactivate to 'roadmap' first.`;
|
|
114
|
+
}
|
|
115
|
+
// Generic message
|
|
116
|
+
const validTargets = VALID_TRANSITIONS[from];
|
|
117
|
+
if (validTargets.length === 0) {
|
|
118
|
+
return `Cannot transition from '${from}' (terminal state).`;
|
|
119
|
+
}
|
|
120
|
+
return `Invalid transition from '${from}' to '${to}'. Valid targets: ${validTargets.join(', ')}.`;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=transitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../src/validation/fsm/transitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAU9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,OAAO,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,4CAA4C;IACxF,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,mCAAmC;IACrE,SAAS,EAAE,EAAE,EAAE,0CAA0C;IACzD,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,wCAAwC;CACvD,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwB,EAAE,EAAsB;IAChF,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA0B;IAChE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAwB,EACxB,EAAsB,EACtB,OAAkC;IAElC,MAAM,SAAS,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAS,IAAI,kBAAkB,CAAC;IAErE,wBAAwB;IACxB,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,4DAA4D,SAAS,0BAA0B,CAAC;IACzG,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;QAC7C,OAAO,kFAAkF,CAAC;IAC5F,CAAC;IAED,4BAA4B;IAC5B,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;QACnE,OAAO,yCAAyC,EAAE,wCAAwC,CAAC;IAC7F,CAAC;IAED,kBAAkB;IAClB,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,2BAA2B,IAAI,qBAAqB,CAAC;IAC9D,CAAC;IAED,OAAO,4BAA4B,IAAI,SAAS,EAAE,qBAAqB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACpG,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-validation
|
|
4
|
+
* @architect-pattern FSMValidator
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-implements PhaseStateMachineValidation
|
|
7
|
+
* @architect-uses FSMTransitions, FSMStates
|
|
8
|
+
* @architect-depends-on:PDR005MvpWorkflow
|
|
9
|
+
* @architect-arch-role decider
|
|
10
|
+
* @architect-arch-context validation
|
|
11
|
+
* @architect-arch-layer application
|
|
12
|
+
*
|
|
13
|
+
* ## FSM Validator - Pure Validation Functions
|
|
14
|
+
*
|
|
15
|
+
* Pure validation functions following the Decider pattern:
|
|
16
|
+
* - No I/O, no side effects
|
|
17
|
+
* - Return structured results, never throw
|
|
18
|
+
* - Composable and testable
|
|
19
|
+
*
|
|
20
|
+
* ### When to Use
|
|
21
|
+
*
|
|
22
|
+
* - Use `validateStatus()` to validate status values before processing
|
|
23
|
+
* - Use `validateTransition()` to check proposed status changes
|
|
24
|
+
* - Use `validateCompletionMetadata()` to enforce completed state requirements
|
|
25
|
+
*/
|
|
26
|
+
import { type ProcessStatusValue } from '../../taxonomy/index.js';
|
|
27
|
+
import type { TagRegistry } from '../../validation-schemas/tag-registry.js';
|
|
28
|
+
import { type ProtectionLevel } from './states.js';
|
|
29
|
+
/**
|
|
30
|
+
* Result of validating a status value
|
|
31
|
+
*/
|
|
32
|
+
export interface StatusValidationResult {
|
|
33
|
+
/** Whether the status is valid */
|
|
34
|
+
valid: boolean;
|
|
35
|
+
/** The status that was validated */
|
|
36
|
+
status: string;
|
|
37
|
+
/** Error message if invalid */
|
|
38
|
+
error?: string;
|
|
39
|
+
/** Warnings (valid but with caveats) */
|
|
40
|
+
warnings?: string[];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Result of validating a status transition
|
|
44
|
+
*/
|
|
45
|
+
export interface TransitionValidationResult {
|
|
46
|
+
/** Whether the transition is valid */
|
|
47
|
+
valid: boolean;
|
|
48
|
+
/** The source status */
|
|
49
|
+
from: ProcessStatusValue;
|
|
50
|
+
/** The target status */
|
|
51
|
+
to: ProcessStatusValue;
|
|
52
|
+
/** Error message if invalid */
|
|
53
|
+
error?: string;
|
|
54
|
+
/** Valid alternatives if transition is invalid */
|
|
55
|
+
validAlternatives?: readonly ProcessStatusValue[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Result of validating completion metadata
|
|
59
|
+
*/
|
|
60
|
+
export interface CompletionMetadataValidationResult {
|
|
61
|
+
/** Whether the metadata is valid/complete */
|
|
62
|
+
valid: boolean;
|
|
63
|
+
/** Warnings for missing optional metadata */
|
|
64
|
+
warnings: string[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Pattern metadata for completion validation
|
|
68
|
+
*/
|
|
69
|
+
export interface PatternMetadata {
|
|
70
|
+
status: string;
|
|
71
|
+
completed?: string;
|
|
72
|
+
effortActual?: string;
|
|
73
|
+
effortPlanned?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Options for FSM validation functions
|
|
77
|
+
*/
|
|
78
|
+
export interface FSMValidationOptions {
|
|
79
|
+
/** Tag registry for prefix-aware error messages (optional) */
|
|
80
|
+
readonly registry?: TagRegistry;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Validate a status value against PDR-005 FSM
|
|
84
|
+
*
|
|
85
|
+
* @param status - Status value to validate
|
|
86
|
+
* @param options - Optional validation options with registry
|
|
87
|
+
* @returns Validation result with error/warnings
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* validateStatus("roadmap"); // → { valid: true, status: "roadmap" }
|
|
92
|
+
* validateStatus("done"); // → { valid: false, status: "done", error: "Invalid status..." }
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function validateStatus(status: string, options?: FSMValidationOptions): StatusValidationResult;
|
|
96
|
+
/**
|
|
97
|
+
* Validate a status transition against FSM rules
|
|
98
|
+
*
|
|
99
|
+
* @param from - Current status
|
|
100
|
+
* @param to - Target status
|
|
101
|
+
* @returns Validation result with alternatives if invalid
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* validateTransition("roadmap", "active");
|
|
106
|
+
* // → { valid: true, from: "roadmap", to: "active" }
|
|
107
|
+
*
|
|
108
|
+
* validateTransition("roadmap", "completed");
|
|
109
|
+
* // → { valid: false, from: "roadmap", to: "completed",
|
|
110
|
+
* // error: "Cannot transition...", validAlternatives: ["active", "deferred", "roadmap"] }
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function validateTransition(from: string, to: string): TransitionValidationResult;
|
|
114
|
+
/**
|
|
115
|
+
* Validate completion metadata requirements
|
|
116
|
+
*
|
|
117
|
+
* When a pattern has status "completed", it should have:
|
|
118
|
+
* - completed date tag (warning if missing)
|
|
119
|
+
* - effort-actual tag (warning if effort-planned exists but actual doesn't)
|
|
120
|
+
*
|
|
121
|
+
* @param pattern - Pattern metadata to validate
|
|
122
|
+
* @param options - Optional validation options with registry
|
|
123
|
+
* @returns Validation result with warnings
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* validateCompletionMetadata({ status: "completed" });
|
|
128
|
+
* // → { valid: true, warnings: ["Completed pattern missing completed date tag"] }
|
|
129
|
+
*
|
|
130
|
+
* validateCompletionMetadata({ status: "completed", completed: "2026-01-09" });
|
|
131
|
+
* // → { valid: true, warnings: [] }
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export declare function validateCompletionMetadata(pattern: PatternMetadata, options?: FSMValidationOptions): CompletionMetadataValidationResult;
|
|
135
|
+
/**
|
|
136
|
+
* Full validation of a pattern's status and metadata
|
|
137
|
+
*
|
|
138
|
+
* Combines status validation with completion metadata checks.
|
|
139
|
+
*
|
|
140
|
+
* @param pattern - Pattern metadata to validate
|
|
141
|
+
* @param options - Optional validation options with registry
|
|
142
|
+
* @returns Combined validation result
|
|
143
|
+
*/
|
|
144
|
+
export declare function validatePatternStatus(pattern: PatternMetadata, options?: FSMValidationOptions): {
|
|
145
|
+
valid: boolean;
|
|
146
|
+
statusResult: StatusValidationResult;
|
|
147
|
+
completionResult: CompletionMetadataValidationResult;
|
|
148
|
+
allWarnings: string[];
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Get a summary of FSM protection for a status
|
|
152
|
+
*
|
|
153
|
+
* @param status - Status to describe
|
|
154
|
+
* @param options - Optional validation options with registry
|
|
155
|
+
* @returns Human-readable protection description
|
|
156
|
+
*/
|
|
157
|
+
export declare function getProtectionSummary(status: ProcessStatusValue, options?: FSMValidationOptions): {
|
|
158
|
+
level: ProtectionLevel;
|
|
159
|
+
description: string;
|
|
160
|
+
canAddDeliverables: boolean;
|
|
161
|
+
requiresUnlock: boolean;
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/validation/fsm/validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAyB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAM5E,OAAO,EAAuC,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAGxF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kCAAkC;IAClC,KAAK,EAAE,OAAO,CAAC;IACf,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,sCAAsC;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,wBAAwB;IACxB,IAAI,EAAE,kBAAkB,CAAC;IACzB,wBAAwB;IACxB,EAAE,EAAE,kBAAkB,CAAC;IACvB,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,6CAA6C;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,GAC7B,sBAAsB,CAyBxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,0BAA0B,CAsCvF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,kCAAkC,CA0BpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B;IACD,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,sBAAsB,CAAC;IACrC,gBAAgB,EAAE,kCAAkC,CAAC;IACrD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAYA;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,oBAAoB,GAC7B;IACD,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;CACzB,CAgBA"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-validation
|
|
4
|
+
* @architect-pattern FSMValidator
|
|
5
|
+
* @architect-status active
|
|
6
|
+
* @architect-implements PhaseStateMachineValidation
|
|
7
|
+
* @architect-uses FSMTransitions, FSMStates
|
|
8
|
+
* @architect-depends-on:PDR005MvpWorkflow
|
|
9
|
+
* @architect-arch-role decider
|
|
10
|
+
* @architect-arch-context validation
|
|
11
|
+
* @architect-arch-layer application
|
|
12
|
+
*
|
|
13
|
+
* ## FSM Validator - Pure Validation Functions
|
|
14
|
+
*
|
|
15
|
+
* Pure validation functions following the Decider pattern:
|
|
16
|
+
* - No I/O, no side effects
|
|
17
|
+
* - Return structured results, never throw
|
|
18
|
+
* - Composable and testable
|
|
19
|
+
*
|
|
20
|
+
* ### When to Use
|
|
21
|
+
*
|
|
22
|
+
* - Use `validateStatus()` to validate status values before processing
|
|
23
|
+
* - Use `validateTransition()` to check proposed status changes
|
|
24
|
+
* - Use `validateCompletionMetadata()` to enforce completed state requirements
|
|
25
|
+
*/
|
|
26
|
+
import { PROCESS_STATUS_VALUES } from '../../taxonomy/index.js';
|
|
27
|
+
import { VALID_TRANSITIONS, getValidTransitionsFrom, getTransitionErrorMessage, } from './transitions.js';
|
|
28
|
+
import { isTerminalState, getProtectionLevel } from './states.js';
|
|
29
|
+
import { DEFAULT_TAG_PREFIX } from '../../config/defaults.js';
|
|
30
|
+
/**
|
|
31
|
+
* Check if a string is a valid ProcessStatusValue
|
|
32
|
+
*/
|
|
33
|
+
function isValidStatusValue(status) {
|
|
34
|
+
return PROCESS_STATUS_VALUES.includes(status);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Validate a status value against PDR-005 FSM
|
|
38
|
+
*
|
|
39
|
+
* @param status - Status value to validate
|
|
40
|
+
* @param options - Optional validation options with registry
|
|
41
|
+
* @returns Validation result with error/warnings
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* validateStatus("roadmap"); // → { valid: true, status: "roadmap" }
|
|
46
|
+
* validateStatus("done"); // → { valid: false, status: "done", error: "Invalid status..." }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export function validateStatus(status, options) {
|
|
50
|
+
const tagPrefix = options?.registry?.tagPrefix ?? DEFAULT_TAG_PREFIX;
|
|
51
|
+
if (!isValidStatusValue(status)) {
|
|
52
|
+
return {
|
|
53
|
+
valid: false,
|
|
54
|
+
status,
|
|
55
|
+
error: `Invalid status '${status}'. Valid values: ${PROCESS_STATUS_VALUES.join(', ')}.`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const warnings = [];
|
|
59
|
+
// Add contextual warnings for terminal state
|
|
60
|
+
if (isTerminalState(status)) {
|
|
61
|
+
warnings.push(`Status 'completed' is a terminal state. Use ${tagPrefix}unlock-reason to modify.`);
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
valid: true,
|
|
65
|
+
status,
|
|
66
|
+
...(warnings.length > 0 && { warnings }),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Validate a status transition against FSM rules
|
|
71
|
+
*
|
|
72
|
+
* @param from - Current status
|
|
73
|
+
* @param to - Target status
|
|
74
|
+
* @returns Validation result with alternatives if invalid
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* validateTransition("roadmap", "active");
|
|
79
|
+
* // → { valid: true, from: "roadmap", to: "active" }
|
|
80
|
+
*
|
|
81
|
+
* validateTransition("roadmap", "completed");
|
|
82
|
+
* // → { valid: false, from: "roadmap", to: "completed",
|
|
83
|
+
* // error: "Cannot transition...", validAlternatives: ["active", "deferred", "roadmap"] }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export function validateTransition(from, to) {
|
|
87
|
+
// First validate both status values
|
|
88
|
+
if (!isValidStatusValue(from)) {
|
|
89
|
+
return {
|
|
90
|
+
valid: false,
|
|
91
|
+
from: from, // Type assertion for interface compliance
|
|
92
|
+
to: to,
|
|
93
|
+
error: `Invalid source status '${from}'. Valid values: ${PROCESS_STATUS_VALUES.join(', ')}.`,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
if (!isValidStatusValue(to)) {
|
|
97
|
+
return {
|
|
98
|
+
valid: false,
|
|
99
|
+
from,
|
|
100
|
+
to: to,
|
|
101
|
+
error: `Invalid target status '${to}'. Valid values: ${PROCESS_STATUS_VALUES.join(', ')}.`,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
// Check if transition is valid
|
|
105
|
+
const validTargets = VALID_TRANSITIONS[from];
|
|
106
|
+
if (validTargets.includes(to)) {
|
|
107
|
+
return {
|
|
108
|
+
valid: true,
|
|
109
|
+
from,
|
|
110
|
+
to,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Invalid transition - provide helpful error and alternatives
|
|
114
|
+
return {
|
|
115
|
+
valid: false,
|
|
116
|
+
from,
|
|
117
|
+
to,
|
|
118
|
+
error: getTransitionErrorMessage(from, to),
|
|
119
|
+
validAlternatives: getValidTransitionsFrom(from),
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Validate completion metadata requirements
|
|
124
|
+
*
|
|
125
|
+
* When a pattern has status "completed", it should have:
|
|
126
|
+
* - completed date tag (warning if missing)
|
|
127
|
+
* - effort-actual tag (warning if effort-planned exists but actual doesn't)
|
|
128
|
+
*
|
|
129
|
+
* @param pattern - Pattern metadata to validate
|
|
130
|
+
* @param options - Optional validation options with registry
|
|
131
|
+
* @returns Validation result with warnings
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* validateCompletionMetadata({ status: "completed" });
|
|
136
|
+
* // → { valid: true, warnings: ["Completed pattern missing completed date tag"] }
|
|
137
|
+
*
|
|
138
|
+
* validateCompletionMetadata({ status: "completed", completed: "2026-01-09" });
|
|
139
|
+
* // → { valid: true, warnings: [] }
|
|
140
|
+
* ```
|
|
141
|
+
*/
|
|
142
|
+
export function validateCompletionMetadata(pattern, options) {
|
|
143
|
+
const tagPrefix = options?.registry?.tagPrefix ?? DEFAULT_TAG_PREFIX;
|
|
144
|
+
const warnings = [];
|
|
145
|
+
// Only check completion requirements for completed status
|
|
146
|
+
if (pattern.status !== 'completed') {
|
|
147
|
+
return { valid: true, warnings: [] };
|
|
148
|
+
}
|
|
149
|
+
// Check for completion date
|
|
150
|
+
if (!pattern.completed) {
|
|
151
|
+
warnings.push(`Completed pattern missing ${tagPrefix}completed date.`);
|
|
152
|
+
}
|
|
153
|
+
// Check for effort tracking consistency
|
|
154
|
+
if (pattern.effortPlanned && !pattern.effortActual) {
|
|
155
|
+
warnings.push(`Pattern has ${tagPrefix}effort but missing ${tagPrefix}effort-actual. ` +
|
|
156
|
+
'Consider adding actual effort for tracking.');
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
valid: true,
|
|
160
|
+
warnings,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Full validation of a pattern's status and metadata
|
|
165
|
+
*
|
|
166
|
+
* Combines status validation with completion metadata checks.
|
|
167
|
+
*
|
|
168
|
+
* @param pattern - Pattern metadata to validate
|
|
169
|
+
* @param options - Optional validation options with registry
|
|
170
|
+
* @returns Combined validation result
|
|
171
|
+
*/
|
|
172
|
+
export function validatePatternStatus(pattern, options) {
|
|
173
|
+
const statusResult = validateStatus(pattern.status, options);
|
|
174
|
+
const completionResult = validateCompletionMetadata(pattern, options);
|
|
175
|
+
const allWarnings = [...(statusResult.warnings ?? []), ...completionResult.warnings];
|
|
176
|
+
return {
|
|
177
|
+
valid: statusResult.valid && completionResult.valid,
|
|
178
|
+
statusResult,
|
|
179
|
+
completionResult,
|
|
180
|
+
allWarnings,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get a summary of FSM protection for a status
|
|
185
|
+
*
|
|
186
|
+
* @param status - Status to describe
|
|
187
|
+
* @param options - Optional validation options with registry
|
|
188
|
+
* @returns Human-readable protection description
|
|
189
|
+
*/
|
|
190
|
+
export function getProtectionSummary(status, options) {
|
|
191
|
+
const tagPrefix = options?.registry?.tagPrefix ?? DEFAULT_TAG_PREFIX;
|
|
192
|
+
const level = getProtectionLevel(status);
|
|
193
|
+
const descriptions = {
|
|
194
|
+
none: 'Fully editable - no restrictions',
|
|
195
|
+
scope: 'Scope-locked - cannot add new deliverables',
|
|
196
|
+
hard: `Hard-locked - requires ${tagPrefix}unlock-reason to modify`,
|
|
197
|
+
};
|
|
198
|
+
return {
|
|
199
|
+
level,
|
|
200
|
+
description: descriptions[level],
|
|
201
|
+
canAddDeliverables: level === 'none',
|
|
202
|
+
requiresUnlock: level === 'hard',
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/validation/fsm/validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-validation
|
|
4
|
+
* @architect-pattern ValidationModule
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
*
|
|
7
|
+
* ## ValidationModule - DoD Validation and Anti-Pattern Detection
|
|
8
|
+
*
|
|
9
|
+
* Barrel export for validation module providing:
|
|
10
|
+
* - Definition of Done (DoD) validation for completed phases
|
|
11
|
+
* - Anti-pattern detection for documentation architecture violations
|
|
12
|
+
*
|
|
13
|
+
* ### When to Use
|
|
14
|
+
*
|
|
15
|
+
* - Import validation functions for CLI integration
|
|
16
|
+
* - Import types for extending validation rules
|
|
17
|
+
*/
|
|
18
|
+
export type { AntiPatternId, AntiPatternThresholds, AntiPatternViolation, DoDValidationResult, DoDValidationSummary, WithTagRegistry, } from './types.js';
|
|
19
|
+
export { AntiPatternThresholdsSchema, DEFAULT_THRESHOLDS, getPhaseStatusEmoji } from './types.js';
|
|
20
|
+
export { isDeliverableComplete, hasAcceptanceCriteria, extractAcceptanceCriteriaScenarios, validateDoDForPhase, validateDoD, formatDoDSummary, } from './dod-validator.js';
|
|
21
|
+
export { type AntiPatternDetectionOptions, detectProcessInCode, detectMagicComments, detectScenarioBloat, detectMegaFeature, detectAntiPatterns, formatAntiPatternReport, toValidationIssues, } from './anti-patterns.js';
|
|
22
|
+
export * from './fsm/index.js';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,YAAY,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGlG,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,mBAAmB,EACnB,WAAW,EACX,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,2BAA2B,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAG5B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @architect
|
|
3
|
+
* @architect-validation
|
|
4
|
+
* @architect-pattern ValidationModule
|
|
5
|
+
* @architect-status completed
|
|
6
|
+
*
|
|
7
|
+
* ## ValidationModule - DoD Validation and Anti-Pattern Detection
|
|
8
|
+
*
|
|
9
|
+
* Barrel export for validation module providing:
|
|
10
|
+
* - Definition of Done (DoD) validation for completed phases
|
|
11
|
+
* - Anti-pattern detection for documentation architecture violations
|
|
12
|
+
*
|
|
13
|
+
* ### When to Use
|
|
14
|
+
*
|
|
15
|
+
* - Import validation functions for CLI integration
|
|
16
|
+
* - Import types for extending validation rules
|
|
17
|
+
*/
|
|
18
|
+
export { AntiPatternThresholdsSchema, DEFAULT_THRESHOLDS, getPhaseStatusEmoji } from './types.js';
|
|
19
|
+
// DoD Validator
|
|
20
|
+
export { isDeliverableComplete, hasAcceptanceCriteria, extractAcceptanceCriteriaScenarios, validateDoDForPhase, validateDoD, formatDoDSummary, } from './dod-validator.js';
|
|
21
|
+
// Anti-Pattern Detector
|
|
22
|
+
export { detectProcessInCode, detectMagicComments, detectScenarioBloat, detectMegaFeature, detectAntiPatterns, formatAntiPatternReport, toValidationIssues, } from './anti-patterns.js';
|
|
23
|
+
// FSM Module - Phase State Machine (PDR-005)
|
|
24
|
+
export * from './fsm/index.js';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAElG,gBAAgB;AAChB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,mBAAmB,EACnB,WAAW,EACX,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,wBAAwB;AACxB,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,6CAA6C;AAC7C,cAAc,gBAAgB,CAAC"}
|