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,350 @@
1
+ ---
2
+ version: 2
3
+ last_updated: "2026-04-16"
4
+ source: manual
5
+ status: established
6
+ ---
7
+
8
+ # Finance Domain — Extension Scenarios
9
+
10
+ Classification axis: **Change trigger** — cases classified by the type of change that triggers structural evolution of the financial ontology. Cases cover both growth triggers (Cases 1–8) and shrinkage/migration triggers (Cases 9–10).
11
+
12
+ ---
13
+
14
+ ## Case 1: Adding a New Company
15
+
16
+ ### Situation
17
+ Adding a previously absent company's financial statements to the ontology.
18
+
19
+ ### Case Study: Adding a Financial Industry Entity (Banking)
20
+ A general-industry ontology expanded to include a major bank. The bank's IS started with Net Interest Income (not Revenue → Gross Profit), regulatory capital disclosures (CET1, Tier 1) were required beyond standard 5-statement completeness, and >40% of accounts were company-specific extensions requiring normalization.
21
+
22
+ ### Impact Analysis
23
+
24
+ | Principle | Impact |
25
+ |---|---|
26
+ | Entity node creation | New Entity with industry classification and listing status |
27
+ | Statement structure | Financial industry may require additional statements |
28
+ | Extension accounts | Normalization mapping for company-specific accounts |
29
+ | Referential integrity | RI01 (concept exists), RI05 (entity recognized) |
30
+
31
+ ### Verification Checklist
32
+ - [ ] Entity node created with correct industry classification? → structure_spec.md §Required Node Types
33
+ - [ ] All required statements created for entity-period? → structure_spec.md §Financial Statement Completeness
34
+ - [ ] Extension accounts mapped to canonical names? → concepts.md §Extension Account Handling
35
+ - [ ] Referential integrity verified? → dependency_rules.md §Referential Integrity
36
+
37
+ ### Affected Files
38
+ | File | Impact | Section |
39
+ |---|---|---|
40
+ | structure_spec.md | Verify | §Financial Statement Completeness (industry branching) |
41
+ | concepts.md | Modify | §Extension Account Handling (new mappings) |
42
+ | dependency_rules.md | Verify | §Referential Integrity |
43
+
44
+ ---
45
+
46
+ ## Case 2: Adding Quarterly Reports
47
+
48
+ ### Situation
49
+ Adding quarterly reports for a company that previously had only annual reports.
50
+
51
+ ### Case Study: First Quarterly Data Ingestion
52
+ An entity's annual report was structured (XBRL). Quarterly reports were available only as HTML filings. Challenges: cumulative YTD vs single-quarter distinction, reviewed (not audited) status requiring confidence metadata, and quarterly extension accounts not matching annual taxonomy.
53
+
54
+ ### Impact Analysis
55
+
56
+ | Principle | Impact |
57
+ |---|---|
58
+ | Period nodes | Quarterly Period nodes with distinct start/end dates |
59
+ | Period rules | PR03 enforcement (quarterly vs annual comparison prevented) |
60
+ | Cumulative vs single-quarter | PR04 metadata to distinguish YTD from single-quarter |
61
+ | Assurance level | Quarterly = reviewed (not audited); lower confidence |
62
+ | Source quality | Quarterly may come from different source format |
63
+
64
+ ### Verification Checklist
65
+ - [ ] Quarterly Period nodes created with correct dates? → structure_spec.md §Required Node Types → Period
66
+ - [ ] PR03 prevents quarterly-annual direct comparison? → logic_rules.md §Period Rules
67
+ - [ ] Cumulative vs single-quarter distinguished? → logic_rules.md §Period Rules → PR04
68
+ - [ ] Assurance level (reviewed) captured? → structure_spec.md §Required Node Types → AuditInfo
69
+ - [ ] Source type metadata captured for quarterly data? → dependency_rules.md §Source Quality Metadata
70
+
71
+ ### Affected Files
72
+ | File | Impact | Section |
73
+ |---|---|---|
74
+ | structure_spec.md | Verify | §Required Node Types (Period, AuditInfo) |
75
+ | logic_rules.md | Verify | §Period Rules (PR03, PR04) |
76
+ | dependency_rules.md | Verify | §Source of Truth Transition Rules |
77
+
78
+ ---
79
+
80
+ ## Case 3: IFRS Taxonomy Version Update
81
+
82
+ ### Situation
83
+ The IFRS Foundation releases an annual taxonomy update — elements added, renamed, deprecated, or restructured.
84
+
85
+ ### Case Study: IFRS Taxonomy 2023 → 2024 Update
86
+ Taxonomy update introduced new elements for IFRS 17 (Insurance Contracts) and refined IFRS 9 disclosure elements. 15 elements deprecated, 23 added, 8 renamed. Historical FinancialFacts referencing deprecated elements needed migration to new element IDs while preserving query continuity.
87
+
88
+ ### Impact Analysis
89
+
90
+ | Principle | Impact |
91
+ |---|---|
92
+ | Concept hierarchy | Additions, deletions, renames in Concept nodes |
93
+ | Referential integrity | RI01 re-verification for all HAS_CONCEPT edges |
94
+ | Synonym mappings | concepts.md update for renamed elements |
95
+ | Historical data | Cross-version correspondence table for deprecated → new mapping |
96
+ | Version tracking | Taxonomy version per entity-period must be tracked |
97
+
98
+ ### Verification Checklist
99
+ - [ ] Changed Concept nodes identified? → concepts.md §Core Synonym Mappings
100
+ - [ ] RI01 re-verified? → dependency_rules.md §Referential Integrity
101
+ - [ ] Synonym mappings updated? → concepts.md §Extension Account Handling
102
+ - [ ] Historical data migrated or cross-version table maintained? → structure_spec.md §Version Management
103
+ - [ ] Taxonomy version tracked per entity-period? → dependency_rules.md §Taxonomy/Instance Separation
104
+
105
+ ### Affected Files
106
+ | File | Impact | Section |
107
+ |---|---|---|
108
+ | concepts.md | Modify | §Core Synonym Mappings, §Extension Account Handling |
109
+ | dependency_rules.md | Verify | §Referential Integrity, §Taxonomy/Instance Separation |
110
+ | structure_spec.md | Verify | §Semantic Identifier Preservation, §Version Management |
111
+
112
+ ---
113
+
114
+ ## Case 4: Non-Financial Data Integration (ESG)
115
+
116
+ ### Situation
117
+ Adding ESG (Environmental, Social, Governance) metrics, workforce statistics, and sustainability disclosures alongside financial data.
118
+
119
+ ### Case Study: ISSB S1/S2 Integration
120
+ ISSB released sustainability disclosure standards (IFRS S1 General, IFRS S2 Climate) aligned with IFRS financial reporting. Non-financial facts (carbon emissions, workforce diversity, board composition) required new Concept types, different temporal granularity (some metrics are annual-only), and different source dependencies (sustainability reports, CDP filings).
121
+
122
+ ### Impact Analysis
123
+
124
+ | Principle | Impact |
125
+ |---|---|
126
+ | New node types | NonFinancialFact or extended FinancialFact with category tag |
127
+ | Relationship reuse | REPORTED_BY, IN_PERIOD reusable; HAS_CONCEPT requires extended taxonomy |
128
+ | Accounting identity impact | EQ01-EQ03 do not apply to non-financial data — separate rule set needed |
129
+ | Source dependencies | Non-financial data rarely from XBRL; typically semi-structured/unstructured |
130
+ | Comparability | Non-financial metrics have less standardized definitions than financial |
131
+
132
+ ### Verification Checklist
133
+ - [ ] New node type or category tag defined? → structure_spec.md §Required Node Types
134
+ - [ ] Existing relationships reused where possible? → structure_spec.md §Required Relationships
135
+ - [ ] Existing accounting identities not impacted? → logic_rules.md §Accounting Identities
136
+ - [ ] Separate logic rules for non-financial data defined? → logic_rules.md
137
+ - [ ] Source quality tracked for non-financial data? → dependency_rules.md §Source Quality Metadata
138
+
139
+ ### Affected Files
140
+ | File | Impact | Section |
141
+ |---|---|---|
142
+ | structure_spec.md | Modify | §Required Node Types (new type or extension) |
143
+ | logic_rules.md | Modify | §new section for non-financial rules |
144
+ | dependency_rules.md | Verify | §Source of Truth Transition Rules |
145
+
146
+ ---
147
+
148
+ ## Case 5: Multi-Country Expansion
149
+
150
+ ### Situation
151
+ Expanding from single-country financial data to multi-country coverage with different accounting standards (IFRS, US-GAAP, J-GAAP).
152
+
153
+ ### Case Study: IFRS ↔ US-GAAP Cross-Mapping
154
+ Expanding from Korea (K-IFRS) to US (US-GAAP) entities. Key differences: goodwill amortisation (US-GAAP 2024 option vs IFRS impairment-only), LIFO allowed (US-GAAP) vs prohibited (IFRS), lease classification (US-GAAP retains operating/finance for lessees; IFRS does not). The EQUIVALENT_TO relationship between IFRS and US-GAAP taxonomy elements required mapping ~2,000 elements with ~300 partial correspondences.
155
+
156
+ ### Impact Analysis
157
+
158
+ | Principle | Impact |
159
+ |---|---|
160
+ | Entity codes | Cross-country entity code unification (stock codes, LEI) |
161
+ | Taxonomy mapping | IFRS ↔ US-GAAP ↔ Local GAAP cross-mapping (~2,000 elements) |
162
+ | Currency | Multi-currency dimension added to FinancialFact |
163
+ | Reporting frequency | Different disclosure frequencies and fiscal year-ends |
164
+ | Accounting standard differences | LIFO, goodwill, lease classification differences must be flagged |
165
+
166
+ ### Verification Checklist
167
+ - [ ] Entity code system unified across countries? → structure_spec.md §ID System
168
+ - [ ] Cross-standard taxonomy mapping defined? → concepts.md §External Standard Mappings
169
+ - [ ] Currency dimension added? → structure_spec.md §Required Node Types → FinancialFact attributes
170
+ - [ ] Accounting standard differences flagged during comparison? → concepts.md §Interpretation Principles → #3
171
+ - [ ] Period rules accommodate non-December fiscal year-ends? → logic_rules.md §Period Rules → PR05
172
+
173
+ ### Affected Files
174
+ | File | Impact | Section |
175
+ |---|---|---|
176
+ | concepts.md | Modify | §External Standard Mappings (cross-standard) |
177
+ | structure_spec.md | Modify | §ID System (multi-country), §Required Node Types (currency) |
178
+ | logic_rules.md | Verify | §Period Rules (PR05, PR03 with different standards) |
179
+
180
+ ---
181
+
182
+ ## Case 6: Restatement Processing
183
+
184
+ ### Situation
185
+ A previously filed report is superseded by a restated filing.
186
+
187
+ ### Case Study: Material Restatement Due to Revenue Recognition Error
188
+ A company restated 3 years of revenue after discovering premature recognition (recognizing revenue before performance obligations were satisfied under IFRS 15). The restatement created multiple FinancialFact versions for the same entity-period-concept combination. Prior period BS figures also changed due to cumulative effect adjustment.
189
+
190
+ ### Impact Analysis
191
+
192
+ | Principle | Impact |
193
+ |---|---|
194
+ | Version management | Multiple instances for same entity-period-concept |
195
+ | Final version determination | Filing ID + date determines authoritative version |
196
+ | Historical comparison | Previous versions preserved for trend analysis |
197
+ | Cross-statement impact | IS restatement cascades to BS (retained earnings) and equity changes |
198
+ | Partial restatement | Only changed items updated; unchanged items retained from original |
199
+
200
+ ### Verification Checklist
201
+ - [ ] Restatement detected (multiple versions for same combination)? → structure_spec.md §Version Management
202
+ - [ ] Final version determinable by filing metadata? → structure_spec.md §Version Management
203
+ - [ ] Previous versions deactivated but preserved? → structure_spec.md §Version Management
204
+ - [ ] Cross-statement impact verified? → logic_rules.md §Cross-Statement Linkage Rules
205
+ - [ ] Referential integrity maintained for final version? → dependency_rules.md §Referential Integrity
206
+
207
+ ### Affected Files
208
+ | File | Impact | Section |
209
+ |---|---|---|
210
+ | structure_spec.md | Verify | §Version Management, §ID System |
211
+ | logic_rules.md | Verify | §Cross-Statement Linkage Rules (XL04) |
212
+ | dependency_rules.md | Verify | §Referential Integrity |
213
+
214
+ ---
215
+
216
+ ## Case 7: New Accounting Standard Adoption
217
+
218
+ ### Situation
219
+ A new or significantly amended IFRS standard takes effect, changing recognition, measurement, or disclosure requirements.
220
+
221
+ ### Case Study: IFRS 16 Leases Adoption (2019)
222
+ Operating leases moved from off-balance-sheet to on-balance-sheet. Right-of-use assets and lease liabilities appeared on BS for the first time. Companies chose between full retrospective and modified retrospective transition methods. Impact: total assets and total liabilities increased by 10-30% for asset-heavy companies (airlines, retail). Existing ratios (debt-to-equity, ROA) were fundamentally altered.
223
+
224
+ ### Impact Analysis
225
+
226
+ | Principle | Impact |
227
+ |---|---|
228
+ | New concepts | Right-of-use asset, lease liability taxonomy elements added |
229
+ | BS impact | Total assets and liabilities increase materially |
230
+ | Ratio impact | Leverage ratios, ROA, interest coverage all affected |
231
+ | Transition method | Full retrospective vs modified retrospective → different comparability |
232
+ | Historical comparison | Pre-adoption and post-adoption figures not directly comparable |
233
+
234
+ ### Verification Checklist
235
+ - [ ] New taxonomy elements added to Concept hierarchy? → concepts.md §IFRS 16 Lease Terms
236
+ - [ ] Accounting identities still hold with new elements? → logic_rules.md §Accounting Identities
237
+ - [ ] Derived metric formulas updated or caveated? → logic_rules.md §Derived Metric Calculation Rules
238
+ - [ ] Transition method documented for comparability? → concepts.md §Accounting Policy Differences
239
+ - [ ] Historical comparison flagged for standard adoption impact? → concepts.md §Interpretation Principles
240
+
241
+ ### Affected Files
242
+ | File | Impact | Section |
243
+ |---|---|---|
244
+ | concepts.md | Modify | §relevant IFRS section, §Accounting Policy Differences |
245
+ | logic_rules.md | Modify | §relevant rules, §Derived Metric Calculation Rules |
246
+ | structure_spec.md | Verify | §Required Node Types (Concept) |
247
+
248
+ ---
249
+
250
+ ## Case 8: Source Format Migration (PDF → XBRL)
251
+
252
+ ### Situation
253
+ A previously PDF-only filing jurisdiction mandates XBRL filing, or a company that was available only via HTML now files in XBRL.
254
+
255
+ ### Case Study: EU ESEF Mandate (2020)
256
+ EU mandated XBRL tagging (European Single Electronic Format) for IFRS annual reports. Previously HTML-only filings became XBRL-tagged. Challenges: initial XBRL filings had high error rates, extension accounts were tagged inconsistently, and block-tagged notes (entire note sections tagged as one element rather than granular tagging) limited data extraction.
257
+
258
+ ### Impact Analysis
259
+
260
+ | Principle | Impact |
261
+ |---|---|
262
+ | Source quality upgrade | PDF/HTML (Priority 2/3) → XBRL (Priority 1) |
263
+ | ID system | Temporary IDs from PDF can be replaced by XBRL element IDs |
264
+ | Referential integrity | RI03 temporary IDs promoted to canonical |
265
+ | Data completeness | XBRL may tag more items than what was extractable from PDF |
266
+ | Validation | XBRL filing validation rules catch errors not detected in PDF |
267
+
268
+ ### Verification Checklist
269
+ - [ ] Source priority metadata updated? → dependency_rules.md §Source of Truth Transition Rules
270
+ - [ ] Temporary IDs promoted to canonical XBRL IDs? → dependency_rules.md §Referential Integrity → RI03
271
+ - [ ] Historical PDF data preserved for comparison? → structure_spec.md §Version Management
272
+ - [ ] XBRL validation errors handled? → logic_rules.md §Accounting Identities
273
+
274
+ ### Affected Files
275
+ | File | Impact | Section |
276
+ |---|---|---|
277
+ | dependency_rules.md | Modify | §Source of Truth Transition Rules, §Referential Integrity |
278
+ | structure_spec.md | Verify | §ID System (canonical promotion) |
279
+
280
+ ---
281
+
282
+ ## Case 9: Entity Delisting or Dissolution
283
+
284
+ ### Situation (Shrinkage)
285
+ A company delists from a stock exchange or dissolves. Historical data must be preserved but entity status updated.
286
+
287
+ ### Impact Analysis
288
+
289
+ | Principle | Impact |
290
+ |---|---|
291
+ | Entity status | Listing status → delisted, with effective date |
292
+ | Historical preservation | All historical facts preserved with immutable period attribution |
293
+ | Going concern | Final filing may have going concern emphasis |
294
+ | Segment changes | Segments may be dissolved or transferred to acquirer |
295
+ | Comparison impact | Peer comparison sets must exclude delisted entity from current period |
296
+
297
+ ### Verification Checklist
298
+ - [ ] Entity status updated with delisting/dissolution date? → structure_spec.md §Required Node Types
299
+ - [ ] Historical data preserved and queryable? → structure_spec.md §Version Management
300
+ - [ ] Peer comparison exclusion implemented? → competency_qs.md CQ-IE
301
+ - [ ] Going concern audit emphasis captured? → structure_spec.md §Required Node Types → AuditInfo
302
+
303
+ ---
304
+
305
+ ## Case 10: Taxonomy Element Deprecation
306
+
307
+ ### Situation (Shrinkage)
308
+ A taxonomy element is deprecated in a new IFRS Taxonomy version. All references must be migrated.
309
+
310
+ ### Impact Analysis
311
+
312
+ | Principle | Impact |
313
+ |---|---|
314
+ | Concept node | Mark as deprecated with sunset date |
315
+ | Migration mapping | Deprecated element → replacement element mapping |
316
+ | Historical data | Old references preserved for historical queries; new queries use replacement |
317
+ | Cross-version queries | Queries spanning pre/post-deprecation must use mapping table |
318
+
319
+ ### Verification Checklist
320
+ - [ ] Deprecated concept marked with metadata? → structure_spec.md §Semantic Identifier Preservation
321
+ - [ ] Migration mapping defined? → concepts.md §Extension Account Handling
322
+ - [ ] Historical queries still functional? → competency_qs.md CQ-TS
323
+ - [ ] New filings use replacement element? → dependency_rules.md §Referential Integrity
324
+
325
+ ---
326
+
327
+ ## Scenario Interconnections
328
+
329
+ | Scenario | Triggers / Interacts With | Reason |
330
+ |---|---|---|
331
+ | Case 1 (New Company) | → Case 3 (Taxonomy) | New company may use newer taxonomy version |
332
+ | Case 2 (Quarterly) | → Case 8 (Source Migration) | Quarterly data may come from different source format |
333
+ | Case 3 (Taxonomy Update) | → Case 10 (Deprecation) | Taxonomy updates include element deprecations |
334
+ | Case 4 (ESG) | → Case 7 (New Standard) | ESG standards (ISSB S1/S2) are new accounting standards |
335
+ | Case 5 (Multi-Country) | → Case 3 (Taxonomy) | Different countries use different taxonomy versions |
336
+ | Case 6 (Restatement) | → Case 2 (Quarterly) | Restatements may affect both quarterly and annual data |
337
+ | Case 7 (New Standard) | → Case 3 (Taxonomy) | New standards produce new taxonomy elements |
338
+ | Case 8 (Source Migration) | → Case 1 (New Company) | Newly XBRL-filed companies become data-accessible |
339
+ | Case 9 (Delisting) | → Case 6 (Restatement) | Final filings may include retrospective adjustments |
340
+ | Case 10 (Deprecation) | → Case 5 (Multi-Country) | Deprecation affects cross-country mapping tables |
341
+
342
+ ---
343
+
344
+ ## Related Documents
345
+ - domain_scope.md — Classification axes affected by extension scenarios
346
+ - concepts.md — Mapping update targets for new companies and taxonomy changes
347
+ - structure_spec.md — Structural basis for adding new node types and relationships
348
+ - dependency_rules.md — Source transition and referential integrity rules
349
+ - logic_rules.md — Identity impact verification for new data types
350
+ - competency_qs.md — Advanced questions addressed by extension scenarios
@@ -0,0 +1,191 @@
1
+ ---
2
+ version: 2
3
+ last_updated: "2026-04-16"
4
+ source: manual
5
+ status: established
6
+ ---
7
+
8
+ # Finance Domain — Logic Rules
9
+
10
+ Classification axis: **Rule type** — rules classified by the nature of the financial constraint they enforce.
11
+
12
+ ## Accounting Identities
13
+
14
+ Fundamental mathematical constraints that must hold. Violation indicates data error, not a business exception.
15
+
16
+ | ID | Identity | Violation Severity | Verification Timing | Tolerance |
17
+ |---|---|---|---|---|
18
+ | EQ01 | Assets = Liabilities + Equity | Error (block) | At input | ±1 unit (rounding) |
19
+ | EQ02 | Opening equity + Net income + OCI ± Capital transactions = Closing equity | Warning | At query | ±1% of equity (notes may be incomplete) |
20
+ | EQ03 | Opening cash + Operating CF + Investing CF + Financing CF = Closing cash | Error (block) | At input | ±1 unit (rounding) |
21
+ | EQ04 | Comprehensive income = Net income + Other comprehensive income | Error (block) | At input | ±1 unit |
22
+ | EQ05 | Total assets = Current assets + Non-current assets | Error (block) | At input | ±1 unit |
23
+ | EQ06 | Total liabilities = Current liabilities + Non-current liabilities | Error (block) | At input | ±1 unit |
24
+
25
+ > **EQ02 Warning rationale:** Not all items from the Statement of Changes in Equity may be available as structured data (treasury stock transactions, stock-based compensation, dividends). Note information may be needed for complete verification. A warning allows data to be stored while flagging the gap for investigation.
26
+
27
+ ### Identity Verification Priority
28
+
29
+ When multiple identities can be verified, prioritize by impact:
30
+ 1. **EQ01** (BS equation) — most fundamental; failure indicates systemic data error
31
+ 2. **EQ03** (CF reconciliation) — second most critical; failure often indicates missing CF items
32
+ 3. **EQ05, EQ06** (subtotal consistency) — structural consistency within BS
33
+ 4. **EQ04** (OCI linkage) — important but OCI items are sometimes presented differently
34
+ 5. **EQ02** (equity reconciliation) — lowest priority due to data availability constraints
35
+
36
+ ## Cross-Statement Linkage Rules
37
+
38
+ These rules verify consistency between different financial statements.
39
+
40
+ | ID | Rule | From Statement | To Statement | Severity |
41
+ |---|---|---|---|---|
42
+ | XL01 | Net income in IS = Net income in Statement of Changes in Equity | IS | Equity Changes | Error |
43
+ | XL02 | Closing cash in CF = Cash and cash equivalents in BS | CF | BS | Error |
44
+ | XL03 | OCI items in Comprehensive Income = OCI items in Statement of Changes in Equity | OCI | Equity Changes | Warning |
45
+ | XL04 | Opening balances in current period BS = Closing balances in prior period BS | BS(t) | BS(t-1) | Warning |
46
+
47
+ > **XL04 Warning:** Restated prior-period figures may differ from the originally reported prior period. Verification requires restatement-aware comparison — match against the restated version, not the original filing.
48
+
49
+ ## Relation Rules
50
+
51
+ Arithmetic relationships within financial statements.
52
+
53
+ | ID | Rule | Description | Severity | Industry |
54
+ |---|---|---|---|---|
55
+ | RE01 | Gross profit = Revenue - Cost of goods sold | IS arithmetic | Error | General |
56
+ | RE02 | Operating income = Gross profit - SG&A | Varies by industry — see note | Warning | General |
57
+ | RE03 | Current ratio = Current assets / Current liabilities | Derived metric formula | — (calculation) | All |
58
+ | RE04 | Quick ratio = (Current assets - Inventory) / Current liabilities | Derived metric formula | — (calculation) | All |
59
+ | RE05 | Interest coverage = EBIT / Interest expense | Derived metric formula | — (calculation) | All |
60
+ | RE06 | Working capital = Current assets - Current liabilities | Derived metric formula | — (calculation) | All |
61
+
62
+ > **RE02 industry branching:** Financial industry has a different operating income structure. Instead of "gross profit - SG&A," it starts from net interest income, fee income, and insurance premium income. The general industry formula does not apply. Rule selection branches on the industry classification axis (general/financial).
63
+
64
+ ### Financial Industry Specific Rules
65
+
66
+ | ID | Rule | Description | Severity |
67
+ |---|---|---|---|
68
+ | FI-RE01 | Net interest income = Interest income - Interest expense | Bank P&L starting point | Error |
69
+ | FI-RE02 | Pre-provision income = Net interest income + Non-interest income - Non-interest expense | Bank operating metric | Warning |
70
+ | FI-RE03 | CET1 ratio = Common Equity Tier 1 / Risk-weighted assets | Basel III regulatory ratio | — (calculation) |
71
+
72
+ ## Period Rules
73
+
74
+ Temporal attribution and comparison constraints.
75
+
76
+ | ID | Rule | Description | Verification Timing | Severity |
77
+ |---|---|---|---|---|
78
+ | PR01 | Instant items are attributed to a specific date | BS items (assets, liabilities, equity) | At input | Error |
79
+ | PR02 | Duration items are attributed to a start-date-to-end-date interval | IS and CF items | At input | Error |
80
+ | PR03 | Period comparison of the same item requires matching durations | Prevents quarterly vs annual comparison | At query | Error |
81
+ | PR04 | Cumulative YTD figures must be distinguishable from single-quarter figures | Q3 cumulative (Jan-Sep) ≠ Q3 single (Jul-Sep) | At input | Warning |
82
+ | PR05 | Fiscal year end date must be captured — not all entities use December 31 | April-end (Japan), March-end (Korea gov), June-end (retail) | At input | Warning |
83
+
84
+ > **PR03 enforcement:** Even for the same company, quarterly revenue (3-month) and annual revenue (12-month) are not directly comparable. The ontology must prevent queries that compare items across different durations without explicit normalization (e.g., annualization).
85
+
86
+ ### Period Identification
87
+
88
+ - Period identification uses the combination: `{EntityCode}_{StartDate}_{EndDate}_{ReportingUnit}_{Source}`
89
+ - Same entity, same dates, but different sources (XBRL vs PDF) produce different Facts — source provenance is part of the identifier
90
+ - Restated filings for the same period produce additional version-tagged instances
91
+
92
+ ## Classification Rules
93
+
94
+ | ID | Rule | Description | Severity |
95
+ |---|---|---|---|
96
+ | CL01 | BS items with recovery/settlement ≤12 months are current | IAS 1.66 current asset criteria | Warning |
97
+ | CL02 | Liabilities with no unconditional right to defer beyond 12 months are current | IAS 1.69 current liability criteria | Warning |
98
+ | CL03 | Reclassification of current portion of long-term debt | Long-term borrowings due ≤12 months → current | Warning |
99
+ | CL04 | Financial assets classified by business model + SPPI test | IFRS 9 classification: amortised cost / FVOCI / FVPL | Warning |
100
+
101
+ > **CL01-CL03 Warning:** Classification often requires judgment and note disclosures. Automated verification may flag items that are correctly classified based on judgment not visible in structured data.
102
+
103
+ ## Revenue Recognition Rules (IFRS 15)
104
+
105
+ | ID | Rule | Description | Verification Timing | Severity |
106
+ |---|---|---|---|---|
107
+ | RR01 | Revenue is recognized at the point of or over the period of performance obligation fulfillment | Point-in-time vs over-time | At input | Warning |
108
+ | RR02 | Variable consideration is estimated and included in the transaction price | Returns, rebates, performance bonuses | At query | Warning |
109
+ | RR03 | Contract assets arise when performance precedes payment | Right to consideration not yet unconditional | At input | Warning |
110
+ | RR04 | Contract liabilities arise when payment precedes performance | Obligation to transfer goods/services | At input | Warning |
111
+ | RR05 | Multi-element arrangements allocate transaction price to performance obligations | Standalone selling price basis | At query | Warning |
112
+
113
+ > **IFRS 15 Warning rationale:** Revenue recognition requires significant judgment (identification of performance obligations, estimation of variable consideration). Automated verification can flag patterns but cannot replace judgment — hence Warning severity.
114
+
115
+ ## Financial Instrument Classification Rules (IFRS 9)
116
+
117
+ | ID | Rule | Description | Verification Timing | Severity |
118
+ |---|---|---|---|---|
119
+ | FI01 | Financial assets classified by business model + cash flow test | Amortised cost / FVOCI / FVPL | At input | Warning |
120
+ | FI02 | ECL measured as 12-month (Stage 1) or lifetime (Stage 2/3) | Significant increase in credit risk triggers Stage 2 | At query | Warning |
121
+ | FI03 | Hedge relationships require documentation and effectiveness testing | Hedging instrument ↔ hedged item linkage | At query | Warning |
122
+
123
+ ## Lease Rules (IFRS 16)
124
+
125
+ | ID | Rule | Description | Verification Timing | Severity |
126
+ |---|---|---|---|---|
127
+ | LS01 | Lessee recognizes right-of-use asset and lease liability at commencement | Except short-term (≤12 months) and low-value exemptions | At input | Warning |
128
+ | LS02 | ROU asset depreciated over shorter of lease term and useful life | Straight-line unless another method more appropriate | At query | Warning |
129
+ | LS03 | Lease liability = PV of remaining lease payments | Discounted at implicit rate or incremental borrowing rate | At input | Warning |
130
+
131
+ ## Constraint Conflict Checking
132
+
133
+ | ID | Rule | Description | Severity |
134
+ |---|---|---|---|
135
+ | CF01 | Consolidated total assets ≥ Separate total assets | General expectation due to subsidiary inclusion | Warning |
136
+ | CF02 | Audit opinion ≠ "Qualified" or "Adverse" for reliable comparison | Qualified opinions indicate material misstatement or scope limitation | Warning |
137
+ | CF03 | Segment revenue sum + intercompany eliminations + unallocated ≈ Consolidated revenue | Segment reconciliation | Warning |
138
+ | CF04 | Non-GAAP metrics must be accompanied by GAAP reconciliation | SEC requirement; ESMA guidelines | Warning |
139
+
140
+ > **CF01 exceptions:** Intercompany elimination, different consolidation dates, and foreign currency effects can cause consolidated < separate in specific line items. The constraint is a heuristic, not an identity — violations trigger investigation, not rejection.
141
+
142
+ ### Constraint Conflict Resolution
143
+
144
+ When rules conflict:
145
+ 1. **Accounting identities (EQ01-EQ06)** always take precedence — they are mathematical facts
146
+ 2. **Cross-statement linkages (XL01-XL04)** take precedence over classification rules — consistency across statements is more important than individual classification
147
+ 3. **Period rules (PR01-PR05)** take precedence over comparison queries — temporal validity must hold before comparison is meaningful
148
+ 4. **Classification rules** are subordinate to identities and linkages — classification involves judgment and may be overridden by auditor determination
149
+
150
+ ## Derived Metric Calculation Rules
151
+
152
+ | Metric | Formula | Required Items | Temporal Caution | Tier |
153
+ |---|---|---|---|---|
154
+ | ROE | Net income / Average equity | ProfitLoss (duration), Equity (instant) | Average = (opening + closing) / 2 | T3 |
155
+ | ROA | Net income / Average total assets | ProfitLoss (duration), Assets (instant) | Average = (opening + closing) / 2 | T3 |
156
+ | Debt-to-equity | Total liabilities / Total equity | Liabilities (instant), Equity (instant) | Same point-in-time required | T3 |
157
+ | Current ratio | Current assets / Current liabilities | CurrentAssets (instant), CurrentLiabilities (instant) | Same point-in-time required | T3 |
158
+ | Quick ratio | (Current assets - Inventory) / Current liabilities | CurrentAssets, Inventory, CurrentLiabilities (all instant) | Same point-in-time required | T3 |
159
+ | Interest coverage | EBIT / Interest expense | OperatingIncome + Interest (duration), Interest (duration) | Same period required | T3 |
160
+ | EPS | Net income / Weighted avg shares | ProfitLoss (duration), Shares (from notes) | Weighted average, not period-end count | T1a |
161
+ | Operating margin | Operating income / Revenue | Both duration | Same period required | T3 |
162
+ | EBITDA | Operating income + D&A | Or: Net income + Interest + Tax + D&A | Both duration; definition must be documented | T3 |
163
+ | Free cash flow | Operating CF - CapEx | Both duration | CapEx = purchase of PP&E from investing CF | T3 |
164
+ | Net debt | Total borrowings - Cash and equivalents | Borrowings (instant), Cash (instant) | Same point-in-time required | T3 |
165
+ | P/E ratio | Market price / EPS | Price (market data), EPS (computed) | Price is point-in-time; EPS is trailing 12 months | T3 |
166
+ | P/B ratio | Market cap / Book value of equity | Price × shares, Equity (instant) | Same point-in-time for equity; price is market | T3 |
167
+
168
+ ### Metric Computation Cautions
169
+
170
+ - **Averaging rule:** When a duration metric (net income) is divided by an instant metric (equity), the instant metric must be averaged (opening + closing) / 2 to match the period. Using only the closing value biases the ratio
171
+ - **Non-GAAP consistency:** EBITDA, free cash flow, and adjusted metrics are not standardized. When comparing across entities, the definition must be verified — "adjusted EBITDA" may exclude different items at each company
172
+ - **Financial industry:** Standard profitability ratios (operating margin, gross margin) are not meaningful for banks and insurance companies. Use NIM, ROE, CET1 ratio, combined ratio (insurance) instead
173
+
174
+ ## SE Transfer Verification
175
+
176
+ | SE Pattern | Finance Equivalent | Key Difference |
177
+ |---|---|---|
178
+ | Type system enforcement (compile-time) | Accounting identity verification (at-input) | SE uses compiler; finance uses data validation pipeline |
179
+ | State machine determinism | Period/temporal state correctness | SE verifies via tests; finance verifies via period rule enforcement |
180
+ | Database constraints (NOT NULL, FK) | Referential integrity (RI01-RI03) | SE uses DB enforcement; finance uses ontology validation |
181
+ | API versioning | Taxonomy versioning (IFRS Taxonomy annual updates) | SE versions endpoints; finance versions concept hierarchies |
182
+ | Test coverage | Competency question coverage (CQ matrix) | SE measures line coverage; finance measures question answerability |
183
+
184
+ ## Related Documents
185
+
186
+ - domain_scope.md — Normative tier classification, sub-area definitions
187
+ - concepts.md — Account classification principles, synonym mappings, IFRS term definitions
188
+ - structure_spec.md — Node types and relationships where identities and rules are enforced
189
+ - dependency_rules.md — Direction rules, referential integrity, source dependencies
190
+ - competency_qs.md — Questions where logic rules provide inference paths
191
+ - conciseness_rules.md — Redundancy rules informed by identity-based equivalence