@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,240 @@
|
|
|
1
|
+
# Architect Methodology
|
|
2
|
+
|
|
3
|
+
> **Editorial Document:** This document contains design philosophy and rationale that cannot be auto-generated from code annotations. It is maintained manually.
|
|
4
|
+
|
|
5
|
+
> **Git is the event store. Documentation artifacts are projections. Annotated code is the single source of truth.**
|
|
6
|
+
|
|
7
|
+
This document explains the _why_ behind `@libar-dev/architect`. For _how_, see [README.md](../README.md) and [TAXONOMY.md](./TAXONOMY.md).
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Core Thesis
|
|
12
|
+
|
|
13
|
+
Traditional documentation fails because it exists outside the code. Developers update code, forget to update docs, and the gap widens until docs become fiction.
|
|
14
|
+
|
|
15
|
+
**The USDP (Unified Software Delivery Process) inverts this:**
|
|
16
|
+
|
|
17
|
+
| Traditional Approach | USDP Approach |
|
|
18
|
+
| ------------------------------ | ---------------------------------- |
|
|
19
|
+
| Docs are written | Docs are generated |
|
|
20
|
+
| Status is tracked manually | Status is FSM-enforced |
|
|
21
|
+
| Requirements live in Jira | Requirements are Gherkin scenarios |
|
|
22
|
+
| AI agents parse stale Markdown | AI agents query typed APIs |
|
|
23
|
+
|
|
24
|
+
### The Insight
|
|
25
|
+
|
|
26
|
+
Event sourcing teaches us: **derive state, don't store it**. Apply this to documentation:
|
|
27
|
+
|
|
28
|
+
- **Events** = Git commits (changes to annotated code)
|
|
29
|
+
- **Projections** = Generated docs (PATTERNS.md, ROADMAP.md)
|
|
30
|
+
- **Read Model** = MasterDataset (consumed by codecs, validators, and Data API CLI)
|
|
31
|
+
|
|
32
|
+
When you run `architect-generate`, you're rebuilding read models from the event stream. The source annotations are always authoritative.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Dogfooding: This Package Documents Itself
|
|
37
|
+
|
|
38
|
+
Every pattern in this package uses its own annotation system. Real examples:
|
|
39
|
+
|
|
40
|
+
**Document Extractor** (pattern extraction):
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
/**
|
|
44
|
+
* @architect
|
|
45
|
+
* @architect-pattern Document Extractor
|
|
46
|
+
* @architect-status completed
|
|
47
|
+
* @architect-uses Pattern Scanner, Tag Registry, Zod
|
|
48
|
+
* @architect-used-by Orchestrator, Generators
|
|
49
|
+
*/
|
|
50
|
+
export function extractPatterns(
|
|
51
|
+
scannedFiles: readonly ScannedFile[], baseDir: string, registry?: TagRegistry
|
|
52
|
+
): ExtractionResults { ... }
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Pattern Scanner** (file discovery):
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
/**
|
|
59
|
+
* @architect
|
|
60
|
+
* @architect-pattern Pattern Scanner
|
|
61
|
+
* @architect-status completed
|
|
62
|
+
* @architect-uses glob, AST Parser
|
|
63
|
+
* @architect-used-by Doc Extractor, Orchestrator
|
|
64
|
+
*/
|
|
65
|
+
export async function scanPatterns(
|
|
66
|
+
config: ScannerConfig, registry?: TagRegistry
|
|
67
|
+
): Promise<Result<ScanResults, never>> { ... }
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Run `pnpm docs:patterns` and these annotations become a searchable pattern registry with dependency graphs.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Session Workflow
|
|
75
|
+
|
|
76
|
+
| Session | Input | Output | FSM State |
|
|
77
|
+
| --------------------- | ------------------- | --------------------------- | ---------------------------------- |
|
|
78
|
+
| **Planning** | Pattern brief | Roadmap spec (`.feature`) | Creates `roadmap` |
|
|
79
|
+
| **Design** | Complex requirement | Decision specs + code stubs | None |
|
|
80
|
+
| **Implementation** | Roadmap spec | Code + tests | `roadmap` → `active` → `completed` |
|
|
81
|
+
| **Planning + Design** | Pattern brief | Spec + stubs | Creates `roadmap` |
|
|
82
|
+
|
|
83
|
+
**When to skip sessions:**
|
|
84
|
+
|
|
85
|
+
| Skip | When |
|
|
86
|
+
| ----------------- | ----------------------------------------------------- |
|
|
87
|
+
| Design | Single valid approach, straightforward implementation |
|
|
88
|
+
| Planning + Design | Ready to code, clear scope, no decisions |
|
|
89
|
+
| Neither | Multi-session work, architectural decisions |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Annotation Ownership Strategy
|
|
94
|
+
|
|
95
|
+
> **Split-Ownership Principle:** Feature files own _what_ and _when_ (planning). Code stubs own _how_ and _with what_ (implementation). Neither duplicates the other.
|
|
96
|
+
|
|
97
|
+
### Feature Files Own (Planning)
|
|
98
|
+
|
|
99
|
+
| Tag | Purpose |
|
|
100
|
+
| ---------------------- | -------------------------------------------------------- |
|
|
101
|
+
| `@<prefix>-status` | FSM state (`roadmap`, `active`, `completed`, `deferred`) |
|
|
102
|
+
| `@<prefix>-phase` | Milestone sequencing |
|
|
103
|
+
| `@<prefix>-depends-on` | Pattern-level roadmap dependencies |
|
|
104
|
+
| `@<prefix>-enables` | What this unblocks |
|
|
105
|
+
| `@<prefix>-release` | Version targeting |
|
|
106
|
+
|
|
107
|
+
### Code Stubs Own (Implementation)
|
|
108
|
+
|
|
109
|
+
| Tag | Purpose |
|
|
110
|
+
| ------------------- | ---------------------------------------------------- |
|
|
111
|
+
| `@<prefix>-uses` | Technical dependencies (what this calls) |
|
|
112
|
+
| `@<prefix>-used-by` | Technical consumers (what calls this) |
|
|
113
|
+
| `@<prefix>-usecase` | When/how to use |
|
|
114
|
+
| Category flags | Domain classification (`core`, `api`, `infra`, etc.) |
|
|
115
|
+
|
|
116
|
+
### Example Split
|
|
117
|
+
|
|
118
|
+
**Feature file** (specs/my-pattern.feature):
|
|
119
|
+
|
|
120
|
+
```gherkin
|
|
121
|
+
@architect
|
|
122
|
+
@architect-pattern:EventStoreDurability
|
|
123
|
+
@architect-status:roadmap
|
|
124
|
+
@architect-phase:18
|
|
125
|
+
@architect-depends-on:EventStoreFoundation
|
|
126
|
+
@architect-enables:SagaEngine
|
|
127
|
+
Feature: Event Store Durability
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**Code stub** (src/event-store/durability.ts):
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
/**
|
|
134
|
+
* @architect
|
|
135
|
+
* @architect-status roadmap
|
|
136
|
+
* @architect-event-sourcing
|
|
137
|
+
* @architect-uses EventStoreFoundation, Workpool
|
|
138
|
+
* @architect-used-by SagaEngine, CommandOrchestrator
|
|
139
|
+
*/
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Note: Code stubs must NOT use `@<prefix>-pattern`. The feature file is the canonical pattern definition.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Two-Tier Spec Architecture
|
|
147
|
+
|
|
148
|
+
| Tier | Location | Purpose | Executable |
|
|
149
|
+
| ----------- | ----------------------- | ------------------------------------------- | ---------- |
|
|
150
|
+
| **Roadmap** | `architect/specs/` | Planning, deliverables, acceptance criteria | No |
|
|
151
|
+
| **Package** | `{pkg}/tests/features/` | Implementation proof, regression testing | Yes |
|
|
152
|
+
|
|
153
|
+
**Traceability:**
|
|
154
|
+
|
|
155
|
+
- Roadmap spec: `@<prefix>-executable-specs:{package}/tests/features/behavior/{feature}`
|
|
156
|
+
- Package spec: `@<prefix>-implements:{PatternName}`
|
|
157
|
+
|
|
158
|
+
This separation keeps test output clean (no roadmap noise) while maintaining bidirectional traceability.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Code Stubs
|
|
163
|
+
|
|
164
|
+
Code is the source of truth. Feature files reference code, not duplicate it.
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
/**
|
|
168
|
+
* @architect
|
|
169
|
+
* @architect-status roadmap
|
|
170
|
+
*
|
|
171
|
+
* ## Reservation Pattern - TTL-Based Pre-Creation Uniqueness
|
|
172
|
+
*/
|
|
173
|
+
export function reserve(ctx: MutationCtx, args: ReserveArgs): Promise<ReservationResult> {
|
|
174
|
+
throw new Error('ReservationPattern not yet implemented - roadmap pattern');
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
| Level | Contains | When |
|
|
179
|
+
| ------------- | ------------------------- | -------------------------- |
|
|
180
|
+
| **Minimal** | JSDoc annotations only | Quick exploration |
|
|
181
|
+
| **Interface** | Types + stub functions | API contracts |
|
|
182
|
+
| **Partial** | Working code + some stubs | Progressive implementation |
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Stubs Architecture
|
|
187
|
+
|
|
188
|
+
Two types of stubs serve different purposes and live in different locations:
|
|
189
|
+
|
|
190
|
+
### Code Stubs (Design Session Artifacts)
|
|
191
|
+
|
|
192
|
+
Design session code stubs define API shapes with `throw new Error("Not implemented")`. They live **outside `src/`** to avoid TypeScript compilation and ESLint issues:
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
architect/
|
|
196
|
+
├── stubs/ # Design session code stubs (not compiled)
|
|
197
|
+
│ └── {pattern-name}/ # One directory per pattern
|
|
198
|
+
│ └── *.ts # API shapes, interfaces, throw-not-implemented
|
|
199
|
+
├── specs/ # Tier 1 roadmap specs
|
|
200
|
+
└── ...
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
| Phase | Location | Status |
|
|
204
|
+
| -------------- | ---------------------------- | ------------------------------------ |
|
|
205
|
+
| Design | `architect/stubs/{pattern}/` | `throw new Error("Not implemented")` |
|
|
206
|
+
| Implementation | Move/copy to `src/` | Replace with real logic |
|
|
207
|
+
| Completed | `src/` | Production code |
|
|
208
|
+
|
|
209
|
+
Stubs are scanned by the documentation pipeline (via `-i 'architect/stubs/**/*.ts'`) but excluded from TypeScript compilation (`tsconfig.json` includes only `src/**/*`) and ESLint (`eslint` targets `src tests`).
|
|
210
|
+
|
|
211
|
+
### Planning Stubs (Test Step Definition Stubs)
|
|
212
|
+
|
|
213
|
+
Step definitions created during Planning sessions go in a separate directory excluded from test execution:
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
tests/
|
|
217
|
+
├── steps/ # Executable (included in test runner)
|
|
218
|
+
├── planning-stubs/ # Not yet implemented (excluded)
|
|
219
|
+
└── features/ # Feature files
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
| Phase | Location | Status |
|
|
223
|
+
| -------------- | ----------------- | ------------------------------------ |
|
|
224
|
+
| Planning | `planning-stubs/` | `throw new Error("Not implemented")` |
|
|
225
|
+
| Implementation | Move to `steps/` | Replace with real logic |
|
|
226
|
+
| Completed | `steps/` | Fully executable |
|
|
227
|
+
|
|
228
|
+
This avoids `.skip()` (forbidden by test safety policy) while preserving planning artifacts.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Related Documentation
|
|
233
|
+
|
|
234
|
+
| Document | Purpose |
|
|
235
|
+
| -------------------------------------------- | -------------------------------------------- |
|
|
236
|
+
| [README.md](../README.md) | Quick start, FSM diagram, Data API CLI usage |
|
|
237
|
+
| [PROCESS-GUARD.md](./PROCESS-GUARD.md) | FSM validation rules, protection levels, CLI |
|
|
238
|
+
| [CONFIGURATION.md](./CONFIGURATION.md) | Tag prefixes, presets, customization |
|
|
239
|
+
| [GHERKIN-PATTERNS.md](./GHERKIN-PATTERNS.md) | Writing effective specs |
|
|
240
|
+
| [TAXONOMY.md](./TAXONOMY.md) | Tag taxonomy concepts and API |
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Data API CLI
|
|
2
|
+
|
|
3
|
+
> **Deprecated:** The full CLI documentation is now auto-generated. See [CLI Reference Tables](../docs-live/reference/PROCESS-API-REFERENCE.md) and [Recipes & Workflow Guide](../docs-live/reference/PROCESS-API-RECIPES.md). This file retains only quick-start guidance and operational reference (JSON envelope, exit codes).
|
|
4
|
+
>
|
|
5
|
+
> Query process state directly from annotated source code.
|
|
6
|
+
|
|
7
|
+
> **For AI coding agents:** Start every session with these three commands:
|
|
8
|
+
>
|
|
9
|
+
> 1. `overview` — project health
|
|
10
|
+
> 2. `scope-validate <pattern> <session-type>` — catches blockers before you start
|
|
11
|
+
> 3. `context <pattern> --session <type>` — curated context bundle
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Generated References
|
|
16
|
+
|
|
17
|
+
> This document retains operational reference (JSON envelope, exit codes, piping).
|
|
18
|
+
> For full CLI documentation, see the generated references below.
|
|
19
|
+
|
|
20
|
+
- **[CLI Reference Tables](../docs-live/reference/PROCESS-API-REFERENCE.md)** — all flags, options, filters, and modifiers
|
|
21
|
+
- **[Recipes & Workflow Guide](../docs-live/reference/PROCESS-API-RECIPES.md)** — command descriptions, usage examples, and common recipes
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Output Reference
|
|
26
|
+
|
|
27
|
+
### JSON Envelope
|
|
28
|
+
|
|
29
|
+
All JSON commands wrap output in a `QueryResult` envelope:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"success": true,
|
|
34
|
+
"data": { ... },
|
|
35
|
+
"metadata": {
|
|
36
|
+
"timestamp": "2026-02-21T04:31:31.633Z",
|
|
37
|
+
"patternCount": 318
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
On error:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"success": false,
|
|
47
|
+
"error": "Pattern not found: \"Orchestrator\"\nDid you mean: OrchestratorPipelineFactoryMigration?",
|
|
48
|
+
"code": "PATTERN_NOT_FOUND"
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Exit Codes
|
|
53
|
+
|
|
54
|
+
| Code | Meaning |
|
|
55
|
+
| ---- | ------------------------------ |
|
|
56
|
+
| `0` | Success |
|
|
57
|
+
| `1` | Error (with message on stderr) |
|
|
58
|
+
|
|
59
|
+
### JSON Piping
|
|
60
|
+
|
|
61
|
+
`pnpm` outputs a banner line to stdout (`> @libar-dev/...`). For clean JSON piping, use `npx tsx src/cli/process-api.ts` directly:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npx tsx src/cli/process-api.ts list --status roadmap --names-only | jq '.data[]'
|
|
65
|
+
```
|
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
# Process Guard
|
|
2
|
+
|
|
3
|
+
> **Deprecated:** This document is superseded by the auto-generated [Process Guard Reference](../docs-live/reference/PROCESS-GUARD-REFERENCE.md) which includes quick reference tables, error guides, CLI usage, and programmatic API. This file is preserved for reference only.
|
|
4
|
+
|
|
5
|
+
Process Guard validates delivery workflow changes at commit time. For FSM concepts and state definitions, see [METHODOLOGY.md](./METHODOLOGY.md#fsm-enforced-workflow).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Quick Reference
|
|
10
|
+
|
|
11
|
+
### Protection Levels
|
|
12
|
+
|
|
13
|
+
| Status | Level | Allowed | Blocked |
|
|
14
|
+
| ----------- | ----- | -------------------------- | ------------------------------------- |
|
|
15
|
+
| `roadmap` | none | Full editing | - |
|
|
16
|
+
| `deferred` | none | Full editing | - |
|
|
17
|
+
| `active` | scope | Edit existing deliverables | Adding new deliverables |
|
|
18
|
+
| `completed` | hard | Nothing | Any change without `@*-unlock-reason` |
|
|
19
|
+
|
|
20
|
+
### Valid Transitions
|
|
21
|
+
|
|
22
|
+
| From | To | Notes |
|
|
23
|
+
| ----------- | ---------------------- | ------------------------------- |
|
|
24
|
+
| `roadmap` | `active`, `deferred` | Start work or postpone |
|
|
25
|
+
| `active` | `completed`, `roadmap` | Finish or regress if blocked |
|
|
26
|
+
| `deferred` | `roadmap` | Resume planning |
|
|
27
|
+
| `completed` | _(none)_ | Terminal — use unlock to modify |
|
|
28
|
+
|
|
29
|
+
### Escape Hatches
|
|
30
|
+
|
|
31
|
+
| Situation | Solution | Example |
|
|
32
|
+
| ----------------------------- | ---------------------------------- | --------------------------------------------- |
|
|
33
|
+
| Fix bug in completed spec | Add `@*-unlock-reason:'reason'` | `@architect-unlock-reason:'Fix typo'` |
|
|
34
|
+
| Modify outside session scope | `--ignore-session` flag | `architect-guard --staged --ignore-session` |
|
|
35
|
+
| CI treats warnings as errors | `--strict` flag | `architect-guard --all --strict` |
|
|
36
|
+
| Skip workflow (legacy import) | Multiple transitions in one commit | Set `roadmap` then `completed` in same commit |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Error Messages and Fixes
|
|
41
|
+
|
|
42
|
+
### `completed-protection`
|
|
43
|
+
|
|
44
|
+
**Error:**
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
[ERROR] specs/phase-state-machine.feature
|
|
48
|
+
Cannot modify completed spec without unlock reason
|
|
49
|
+
Suggestion: Add @architect-unlock-reason:'reason for modification'
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Cause:** File has `@architect-status:completed` but no unlock annotation.
|
|
53
|
+
|
|
54
|
+
**Fix:** Add unlock reason explaining why modification is necessary:
|
|
55
|
+
|
|
56
|
+
```gherkin
|
|
57
|
+
@architect
|
|
58
|
+
@architect-pattern:PhaseStateMachine
|
|
59
|
+
@architect-status:completed
|
|
60
|
+
@architect-unlock-reason:'Fix incorrect FSM diagram in documentation'
|
|
61
|
+
Feature: Phase State Machine
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Unlock reason requirements:**
|
|
65
|
+
|
|
66
|
+
- Minimum **10 characters** (short reasons like "fix" are rejected)
|
|
67
|
+
- Cannot be a placeholder: `test`, `xxx`, `bypass`, `temp`, `todo`, `fixme`
|
|
68
|
+
- If the reason is invalid, the error still fires — Process Guard treats it as no unlock reason
|
|
69
|
+
|
|
70
|
+
**Alternative:** If this should be new work, create a new spec instead of modifying completed work.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### `invalid-status-transition`
|
|
75
|
+
|
|
76
|
+
**Error:**
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
[ERROR] specs/my-feature.feature
|
|
80
|
+
Invalid status transition: roadmap -> completed
|
|
81
|
+
Suggestion: Valid transitions from roadmap: active, deferred
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Cause:** Attempted to skip `active` phase.
|
|
85
|
+
|
|
86
|
+
**Fix:** Follow the FSM path:
|
|
87
|
+
|
|
88
|
+
```gherkin
|
|
89
|
+
# Step 1: Move to active
|
|
90
|
+
@architect-status:active
|
|
91
|
+
|
|
92
|
+
# Step 2: After implementation complete, move to completed
|
|
93
|
+
@architect-status:completed
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Common invalid transitions:**
|
|
97
|
+
|
|
98
|
+
| Attempted | Why Invalid | Valid Path |
|
|
99
|
+
| --------------------- | ---------------------------- | -------------------------------------- |
|
|
100
|
+
| `roadmap->completed` | Must go through `active` | `roadmap->active->completed` |
|
|
101
|
+
| `deferred->active` | Must return to roadmap first | `deferred->roadmap->active` |
|
|
102
|
+
| `deferred->completed` | Cannot skip two states | `deferred->roadmap->active->completed` |
|
|
103
|
+
| `completed->*` | Terminal state | Use `@*-unlock-reason` to modify |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### `scope-creep`
|
|
108
|
+
|
|
109
|
+
**Error:**
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
[ERROR] specs/process-guard-linter.feature
|
|
113
|
+
Cannot add deliverables to active spec: "New unplanned feature"
|
|
114
|
+
Suggestion: Remove new deliverable or revert status to roadmap
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Cause:** Added a row to the deliverables table while status is `active`.
|
|
118
|
+
|
|
119
|
+
**Fix options:**
|
|
120
|
+
|
|
121
|
+
1. **Remove the new deliverable** — Keep scope locked during implementation
|
|
122
|
+
2. **Revert to roadmap** — If scope genuinely needs to expand:
|
|
123
|
+
```gherkin
|
|
124
|
+
@architect-status:roadmap # Temporarily revert
|
|
125
|
+
# Add deliverable, then:
|
|
126
|
+
@architect-status:active # Resume implementation
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Why this rule exists:** Prevents scope creep during implementation. Plan fully before starting; implement what was planned.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### `session-scope` (Warning)
|
|
134
|
+
|
|
135
|
+
**Warning:**
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
[WARN] specs/unrelated-feature.feature
|
|
139
|
+
File not in active session scope
|
|
140
|
+
Suggestion: Add to session scope or use --ignore-session
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**Cause:** Modifying a file not listed in the current session's `scopedSpecs`.
|
|
144
|
+
|
|
145
|
+
**Fix options:**
|
|
146
|
+
|
|
147
|
+
1. **Add to session scope** — If this file should be in scope
|
|
148
|
+
2. **Use `--ignore-session`** — For intentional out-of-scope changes:
|
|
149
|
+
```bash
|
|
150
|
+
architect-guard --staged --ignore-session
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### `session-excluded`
|
|
156
|
+
|
|
157
|
+
**Error:**
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
[ERROR] specs/legacy-feature.feature
|
|
161
|
+
File is explicitly excluded from session
|
|
162
|
+
Suggestion: Remove from exclusion list or use --ignore-session
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Cause:** File is in the session's `excludedSpecs` list.
|
|
166
|
+
|
|
167
|
+
**Fix options:**
|
|
168
|
+
|
|
169
|
+
1. **Remove from exclusion list** — If exclusion was a mistake
|
|
170
|
+
2. **Use `--ignore-session`** — For emergency changes:
|
|
171
|
+
```bash
|
|
172
|
+
architect-guard --staged --ignore-session
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
### `deliverable-removed` (Warning)
|
|
178
|
+
|
|
179
|
+
**Warning:**
|
|
180
|
+
|
|
181
|
+
```text
|
|
182
|
+
[WARN] specs/active-feature.feature
|
|
183
|
+
Deliverable removed: "Unit tests"
|
|
184
|
+
Suggestion: Document if descoped or completed elsewhere
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Cause:** A deliverable was removed from an active spec.
|
|
188
|
+
|
|
189
|
+
**Fix:** This is informational. If intentional, no action needed. Consider documenting why in a commit message.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## CLI Usage
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
lint-process [options]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Modes
|
|
200
|
+
|
|
201
|
+
| Flag | Description | Use Case |
|
|
202
|
+
| ---------- | --------------------------------- | ------------------ |
|
|
203
|
+
| `--staged` | Validate staged changes (default) | Pre-commit hooks |
|
|
204
|
+
| `--all` | Validate all changes vs main | CI/CD pipelines |
|
|
205
|
+
| `--files` | Validate specific files | Development checks |
|
|
206
|
+
|
|
207
|
+
### Options
|
|
208
|
+
|
|
209
|
+
| Flag | Description |
|
|
210
|
+
| ------------------- | -------------------------------------- |
|
|
211
|
+
| `--strict` | Treat warnings as errors (exit 1) |
|
|
212
|
+
| `--ignore-session` | Skip session scope rules |
|
|
213
|
+
| `--show-state` | Debug: show derived process state |
|
|
214
|
+
| `--format json` | Machine-readable output |
|
|
215
|
+
| `-f, --file <path>` | Specific file to validate (repeatable) |
|
|
216
|
+
| `-b, --base-dir` | Base directory for file resolution |
|
|
217
|
+
|
|
218
|
+
### Exit Codes
|
|
219
|
+
|
|
220
|
+
| Code | Meaning |
|
|
221
|
+
| ---- | -------------------------------------------- |
|
|
222
|
+
| `0` | No errors (warnings allowed unless --strict) |
|
|
223
|
+
| `1` | Errors found |
|
|
224
|
+
|
|
225
|
+
### Examples
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# Pre-commit hook (recommended)
|
|
229
|
+
architect-guard --staged
|
|
230
|
+
|
|
231
|
+
# CI pipeline with strict mode
|
|
232
|
+
architect-guard --all --strict
|
|
233
|
+
|
|
234
|
+
# Validate specific file
|
|
235
|
+
architect-guard --file specs/my-feature.feature
|
|
236
|
+
|
|
237
|
+
# Debug: see what state was derived
|
|
238
|
+
architect-guard --staged --show-state
|
|
239
|
+
|
|
240
|
+
# Override session scope for emergency fix
|
|
241
|
+
architect-guard --staged --ignore-session
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Pre-commit Setup
|
|
247
|
+
|
|
248
|
+
### Husky
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# .husky/pre-commit
|
|
252
|
+
#!/usr/bin/env sh
|
|
253
|
+
. "$(dirname -- "$0")/_/husky.sh"
|
|
254
|
+
|
|
255
|
+
npx architect-guard --staged
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### package.json
|
|
259
|
+
|
|
260
|
+
```json
|
|
261
|
+
{
|
|
262
|
+
"scripts": {
|
|
263
|
+
"lint:process": "architect-guard --staged",
|
|
264
|
+
"lint:process:ci": "architect-guard --all --strict"
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Programmatic API
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
import {
|
|
275
|
+
deriveProcessState,
|
|
276
|
+
detectStagedChanges,
|
|
277
|
+
validateChanges,
|
|
278
|
+
hasErrors,
|
|
279
|
+
summarizeResult,
|
|
280
|
+
} from '@libar-dev/architect/lint';
|
|
281
|
+
|
|
282
|
+
// 1. Derive state from annotations
|
|
283
|
+
const state = (await deriveProcessState({ baseDir: '.' })).value;
|
|
284
|
+
|
|
285
|
+
// 2. Detect changes
|
|
286
|
+
const changes = detectStagedChanges('.').value;
|
|
287
|
+
|
|
288
|
+
// 3. Validate
|
|
289
|
+
const { result } = validateChanges({
|
|
290
|
+
state,
|
|
291
|
+
changes,
|
|
292
|
+
options: { strict: false, ignoreSession: false },
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
// 4. Handle results
|
|
296
|
+
if (hasErrors(result)) {
|
|
297
|
+
console.log(summarizeResult(result));
|
|
298
|
+
for (const v of result.violations) {
|
|
299
|
+
console.log(`[${v.rule}] ${v.file}: ${v.message}`);
|
|
300
|
+
if (v.suggestion) console.log(` Fix: ${v.suggestion}`);
|
|
301
|
+
}
|
|
302
|
+
process.exit(1);
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### API Functions
|
|
307
|
+
|
|
308
|
+
| Category | Function | Description |
|
|
309
|
+
| -------- | --------------------------- | --------------------------------- |
|
|
310
|
+
| State | `deriveProcessState(cfg)` | Build state from file annotations |
|
|
311
|
+
| Changes | `detectStagedChanges(dir)` | Parse staged git diff |
|
|
312
|
+
| Changes | `detectBranchChanges(dir)` | Parse all changes vs main |
|
|
313
|
+
| Changes | `detectFileChanges(dir, f)` | Parse specific files |
|
|
314
|
+
| Validate | `validateChanges(input)` | Run all validation rules |
|
|
315
|
+
| Results | `hasErrors(result)` | Check for blocking errors |
|
|
316
|
+
| Results | `hasWarnings(result)` | Check for warnings |
|
|
317
|
+
| Results | `summarizeResult(result)` | Human-readable summary |
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Architecture
|
|
322
|
+
|
|
323
|
+
Process Guard uses the **Decider pattern**: pure functions with no I/O.
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
deriveProcessState() ─┐
|
|
327
|
+
├─► validateChanges() ─► ValidationResult
|
|
328
|
+
detectChanges() ─────┘
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
State is derived from file annotations — there is no separate state file to maintain.
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Related Documentation
|
|
336
|
+
|
|
337
|
+
| Document | Content |
|
|
338
|
+
| ---------------------------------- | ------------------------------- |
|
|
339
|
+
| [METHODOLOGY.md](./METHODOLOGY.md) | FSM concepts, state definitions |
|
|
340
|
+
| [README.md](../README.md) | Package overview, quick start |
|
|
341
|
+
| [TAXONOMY.md](./TAXONOMY.md) | Tag taxonomy concepts and API |
|