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,259 @@
1
+ # Review Target Profile Contract
2
+
3
+ > Status: Active
4
+ > Purpose: Fix the review target's artifact role, closure level, and boundary obligation before lens dispatch.
5
+ > Scope: `review` only.
6
+
7
+ ---
8
+
9
+ ## 1. Position
10
+
11
+ `review-target-profile.yaml` is a runtime-owned execution-preparation artifact.
12
+
13
+ It answers a question that `target-snapshot.md` and `materialized-input.md` do
14
+ not answer:
15
+
16
+ ```text
17
+ What kind of artifact is being reviewed, and what must this artifact be
18
+ responsible for closing inside the current review boundary?
19
+ ```
20
+
21
+ This is not a new reasoning stage. The current v1 profile is deterministic and
22
+ heuristic. It exists so lens, issue-artifact, deliberation, and synthesize
23
+ stages evaluate the target against the same bounded target obligation.
24
+
25
+ ---
26
+
27
+ ## 2. Relation To Existing Artifacts
28
+
29
+ | Artifact | Role |
30
+ |---|---|
31
+ | `interpretation.yaml` | LLM-owned target and intent interpretation candidate. |
32
+ | `binding.yaml` | Runtime-owned resolved target refs, lens set, domain, and boundary. |
33
+ | `target-snapshot.md` | Preserved review-time target basis. |
34
+ | `materialized-input.md` | Execution-friendly normalized target input. |
35
+ | `review-target-profile.yaml` | Runtime-owned artifact role, target input kind, closure level, goals, and obligation policy. |
36
+ | `review-context-manifest.yaml` | Context admission, consumer allowlist, and packet provenance. |
37
+
38
+ `review-target-profile.yaml` does not replace any of the above. It is admitted
39
+ through `review-context-manifest.yaml` as an explicit context source.
40
+
41
+ ---
42
+
43
+ ## 3. Filesystem Seat
44
+
45
+ ```text
46
+ {session_root}/execution-preparation/review-target-profile.yaml
47
+ ```
48
+
49
+ `binding.yaml`, `execution-plan.yaml`, `target-snapshot-manifest.yaml`,
50
+ `review-run-manifest.yaml`, and `review-record.yaml` must preserve the profile
51
+ ref when the session reaches the corresponding phase. The profile ref is a
52
+ required runtime contract field; a canonical review session must not continue as
53
+ though the profile were optional.
54
+
55
+ ---
56
+
57
+ ## 4. Shape
58
+
59
+ ```yaml
60
+ schema_version: "1"
61
+ session_id: "20260524-example"
62
+ created_at: "2026-05-24T12:00:00+09:00"
63
+ target_scope_kind: bundle
64
+ materialized_input_kind: bundle_member_texts
65
+ target_input_kind: explicit_bundle
66
+ target_material_kind: code
67
+ requested_target: package.json
68
+ review_intent_summary: "review implementation change"
69
+ artifact_roles:
70
+ primary: computational_artifact
71
+ secondary:
72
+ - configuration_artifact
73
+ domain: software-engineering
74
+ maturity: review_candidate
75
+ closure_level: bounded_partial
76
+ review_goal:
77
+ - correctness
78
+ - verifiability
79
+ - runtime_contract
80
+ closure_obligation_policy:
81
+ - must_close_in_target
82
+ - must_close_before_next_stage
83
+ - may_close_during_next_stage
84
+ - planned_later
85
+ - out_of_scope
86
+ target_refs:
87
+ - ref: /abs/project/package.json
88
+ role: primary
89
+ kind: file
90
+ exists: true
91
+ sha256: "..."
92
+ material_profile:
93
+ target_material_kind: code
94
+ target_material_kind_candidates:
95
+ - code
96
+ support_status: partial
97
+ unsupported_reason: review records target material kind, but material-specific validation is not implemented yet
98
+ detection:
99
+ owner: runtime_heuristic
100
+ confidence: 0.92
101
+ confidence_basis: file name or extension indicates code/config material
102
+ boundary:
103
+ filesystem_allowed_roots:
104
+ - /abs/project
105
+ source: binding
106
+ inference:
107
+ owner: runtime_heuristic
108
+ confidence: 0.8
109
+ confidence_basis: explicit bundle target with primary/supporting refs
110
+ ```
111
+
112
+ ---
113
+
114
+ ## 5. Target Input Kind
115
+
116
+ Allowed values:
117
+
118
+ | Value | Meaning |
119
+ |---|---|
120
+ | `single_file` | One file is the review target. |
121
+ | `directory` | A directory listing/content snapshot is the review target. |
122
+ | `explicit_bundle` | User or host supplied primary and supporting refs. |
123
+ | `git_diff` | Runtime materialized a git diff patch as the target basis. |
124
+ | `generated_packet` | Host supplied a generated review packet as the target basis. |
125
+
126
+ `git_diff` target refs must be materialized inside the active session root as
127
+ `{session_root}/diff-target.patch`. Creating the diff under a different review
128
+ session would break artifact truth and must fail review target profiling.
129
+
130
+ `generated_packet` is allowed for explicit packet review, but it is lower
131
+ confidence than `explicit_bundle` because the reviewed basis is a generated
132
+ representation rather than the original artifact set.
133
+
134
+ ---
135
+
136
+ ## 6. Target Material Kind Compatibility
137
+
138
+ The current profile fixes how the target entered review, what artifact role it
139
+ carries, what material kind it appears to be, and what closure obligation
140
+ applies.
141
+
142
+ `target_material_kind` uses the shared values from
143
+ `.onto/authority/core-lexicon.yaml`:
144
+
145
+ ```text
146
+ code | spreadsheet | document | database | mixed | unknown
147
+ ```
148
+
149
+ The cross-process goal and completion conditions for this extension are defined
150
+ in `.onto/processes/shared/target-material-kind-contract.md`.
151
+
152
+ This axis must stay separate from:
153
+
154
+ - `domain`: what the target is about
155
+ - `target_input_kind`: how the target entered runtime
156
+ - `artifact_roles`: what responsibility the artifact carries
157
+ - `medium`: a cross-product reference and learning frame
158
+
159
+ The current runtime records material kind and detection confidence as a bounded
160
+ heuristic. It must not claim material-specific validation until per-material
161
+ validators or adapters are implemented.
162
+
163
+ ---
164
+
165
+ ## 7. Artifact Roles
166
+
167
+ Roles are role-based, not file-extension based:
168
+
169
+ ```text
170
+ knowledge_artifact
171
+ decision_artifact
172
+ procedural_artifact
173
+ computational_artifact
174
+ record_artifact
175
+ contract_artifact
176
+ creative_artifact
177
+ presentation_artifact
178
+ data_artifact
179
+ configuration_artifact
180
+ ```
181
+
182
+ The current runtime uses a deterministic heuristic from target input kind,
183
+ bundle kind, and file extension. The profile records `inference.confidence` and
184
+ `inference.confidence_basis` so downstream review can preserve uncertainty.
185
+
186
+ ---
187
+
188
+ ## 8. Closure Level And Obligation
189
+
190
+ Allowed closure levels:
191
+
192
+ | Value | Meaning |
193
+ |---|---|
194
+ | `bounded_closed` | The target is expected to close its own correctness inside the declared boundary. |
195
+ | `bounded_partial` | The target is bounded but may intentionally leave next-stage implementation or decision details open. |
196
+ | `open_partial` | The target is a partial representation or packet, so review must preserve representation limits. |
197
+
198
+ Issue classification may use:
199
+
200
+ ```text
201
+ must_close_in_target
202
+ must_close_before_next_stage
203
+ may_close_during_next_stage
204
+ planned_later
205
+ out_of_scope
206
+ ```
207
+
208
+ These values are distinct from severity, timing, and closure class.
209
+
210
+ ---
211
+
212
+ ## 9. Consumer Policy
213
+
214
+ The review target profile is admitted to:
215
+
216
+ - all selected lens consumers
217
+ - issue-artifact consumers
218
+ - per-lens deliberation consumers
219
+ - controlled deliberation
220
+ - synthesize
221
+ - final output and review record
222
+
223
+ The profile does not authorize new filesystem reads. It only classifies the
224
+ already bound target refs and the already declared filesystem boundary.
225
+
226
+ ---
227
+
228
+ ## 10. Binding Rules
229
+
230
+ Review target binding is fail-loud.
231
+
232
+ 1. Runtime fixes `session_id` before target resolution.
233
+ 2. `diffRange` materializes `diff-target.patch` under the same `session_id`
234
+ that `binding.yaml`, `execution-plan.yaml`, and `review-target-profile.yaml`
235
+ use.
236
+ 3. `diffRange` must not be combined with explicit bundle fields.
237
+ 4. If `targetScopeKind=file` or `targetScopeKind=directory` is provided, the
238
+ resolved filesystem target must match that shape.
239
+ 5. `primaryRef`, `memberRefs`, and `bundleKind` are explicit bundle inputs.
240
+ They must not drift interpretation away from binding for a non-bundle review.
241
+ 6. Every explicit bundle primary/supporting ref must exist and be inside the
242
+ declared filesystem boundary before materialized input is rendered.
243
+ 7. Project-external bundle refs require an explicit filesystem allowed root.
244
+ Runtime must not silently read them because multi-artifact review depends on
245
+ bounded context.
246
+ 8. Target binding violations surface as structured MCP failures with
247
+ `mcp_error_code=ONTO_REVIEW_TARGET_BINDING_FAILED`.
248
+
249
+ ---
250
+
251
+ ## 11. Verification Surface
252
+
253
+ The MCP review conformance suite must cover:
254
+
255
+ - `review-target-profile` artifact refs in MCP results and run manifests
256
+ - explicit bundle primary/supporting refs and hashes
257
+ - explicit target shape mismatch failure
258
+ - project-external bundle ref boundary failure
259
+ - `git_diff` target refs using the active session root
@@ -0,0 +1,129 @@
1
+ # Shared Phenomenon Contract
2
+
3
+ > 상태: Active
4
+ > 목적: 여러 lens가 같은 위치를 대상으로 각자의 claim을 내는 상황(overlap-permitted lens claims)을 다루기 위한 co-location rule과 claim 관계 분류를 정의한다.
5
+ > 이 문서는 overlap/co-location 규칙의 **유일한 normative seat**이다. 다른 contract 파일은 이 문서를 참조만 한다.
6
+
7
+ ---
8
+
9
+ ## 1. Position
10
+
11
+ 9개 review lens는 각자 독립된 perspective에서 검토 대상을 분석한다.
12
+ 동일한 현상(phenomenon)에 대해 여러 lens가 각자의 lens-qualified claim을 제기하는 것은
13
+ 허용된 정상 상태이다 (overlap-permitted lens claims).
14
+
15
+ 이 계약은 그 overlap을 다루는 규칙의 단독 정의 문서이다.
16
+
17
+ ---
18
+
19
+ ## 2. Terminology
20
+
21
+ 이 계약에서 사용하는 핵심 용어:
22
+
23
+ - **Phenomenon** (현상): 검토 대상에서 관찰 가능한 하나의 사건·상태. lens 독립적 단위.
24
+ - **Evidence locus**: 현상을 관찰할 수 있는 대상 내부의 특정 위치. lens 독립적 단위. output schema에서는 `evidence_anchor` 필드로 직렬화된다.
25
+ - **Lens-qualified claim**: `{target, evidence_anchor, claim, lens_id}` 4필드로 이루어진 주장 단위.
26
+ - **Shared phenomenon**: 둘 이상의 lens-qualified claim이 같은 target + 같은 evidence locus를 대상으로 하는 location-based grouping relation. 의미적 phenomenon identity가 아니라 observation co-location이다. 같은 위치에서 서로 다른 의미의 claim이 관찰될 수 있으며, 이들은 claim relation 분류(§4)로 구분된다.
27
+ - **Claim relation**: 같은 shared phenomenon에 속한 두 claim 사이의 관계. co-location 성립 후 claim 내용을 비교하여 분류한다.
28
+
29
+ ---
30
+
31
+ ## 3. Co-location Rule
32
+
33
+ 두 lens-qualified claim이 같은 shared phenomenon에 속하는지 co-location으로 판정하는 규칙.
34
+
35
+ **판정 기준**: `target`과 `evidence_anchor`가 동일하면 같은 shared phenomenon으로 co-location된다.
36
+
37
+ - claim 내용(방향·심각도·결론)은 co-location 판정에 **포함되지 않는다**
38
+ - 즉 shared phenomenon은 "같은 곳을 같은 대상으로 보고 있다"만 의미한다
39
+ - co-location은 의미적 동일성을 함의하지 않는다. 같은 위치의 두 claim이 본질적으로 다른 현상일 수 있으며, 그 구분은 §4 claim relation이 담당한다.
40
+ - `evidence_anchor`의 동일성은 정규화된 위치 표기로 판정한다 (예: `§6.1`과 `section 6.1`은 동일)
41
+
42
+ ---
43
+
44
+ ## 4. Claim Relation Classification
45
+
46
+ 같은 shared phenomenon에 속한 claim 쌍에 대해, claim 내용을 비교하여 관계를 분류한다.
47
+ co-located claim들은 의미적으로 `corroboration`, `disagreement`, `partial overlap`, `dedup` 중 하나의 관계를 가진다. 이 분류가 곧 의미적 phenomenon 해석이다.
48
+
49
+ | Claim relation | 조건 | synthesize 처리 |
50
+ |---|---|---|
51
+ | **corroboration** | claim 방향이 같고 severity가 양립 가능 | 합의(consensus)로 집계 |
52
+ | **disagreement** | claim 방향 또는 severity가 충돌 | 명시적 disagreement 항목으로 보존 |
53
+ | **partial overlap** | claim이 부분적으로만 겹침 (한 claim이 다른 claim의 부분집합이거나 일부 측면만 공유) | 각 claim을 개별 보존 + shared phenomenon pointer로 연결 |
54
+ | **dedup** | 동일 lens가 동일 phenomenon에 대해 중복 보고 | 1건으로 축약 |
55
+
56
+ 4분류는 상호배타적이다. 판정 우선순위:
57
+ 1. 동일 lens인가? → `dedup`
58
+ 2. claim 방향이 충돌하는가? → `disagreement`
59
+ 3. claim이 부분적으로만 겹치는가? → `partial overlap`
60
+ 4. 그 외 → `corroboration`
61
+
62
+ **경계 원칙**: claim relation이 불확실하면 **별도 claim으로 분리 보존**이 기본값이다. 암묵적 병합을 금지한다.
63
+
64
+ **3개 이상 claim의 경우**: N개 claim이 같은 shared phenomenon에 속하면, synthesize는 participating lenses 전체를 phenomenon 단위로 묶고 **group 수준에서 하나의 대표 claim_relation을 지정**한다. 개별 claim의 세부 내용(severity, direction)은 원본 round1 output(`lens_result_refs.{lens-id}`)에 보존되며 `shared_phenomenon_summary` entry는 재서술하지 않는다. 대표 relation 선택은 §4 우선순위(`dedup` > `disagreement` > `partial overlap` > `corroboration`)를 따른다.
65
+
66
+ ---
67
+
68
+ ## 5. 4-Field Output Requirement
69
+
70
+ 모든 lens-qualified claim은 아래 4필드를 필수로 포함해야 한다.
71
+
72
+ | 필드 | 설명 | producer | consumer |
73
+ |---|---|---|---|
74
+ | `target` | 검토 대상의 식별자 | lens output (round1/*.md) | synthesize, ReviewRecord |
75
+ | `evidence_anchor` | evidence locus의 직렬화 형식 (파일경로:라인, §번호 등) | lens output | synthesize, ReviewRecord |
76
+ | `claim` | what + severity + direction | lens output | synthesize, ReviewRecord |
77
+ | `lens_id` | claim을 제기한 lens | lens output (자동 부여) | synthesize, ReviewRecord |
78
+
79
+ - `lens-prompt-contract.md` §Output Schema가 이 4필드를 lens output 필수 필드로 요구한다
80
+ - `synthesize-prompt-contract.md` §Input Expectations가 이 4필드를 수신 필수로 요구한다
81
+ - 이 문서는 4필드의 의미와 co-location 판정만 정의한다. 직렬화 형식은 `lens-prompt-contract.md`가 소유한다
82
+
83
+ ---
84
+
85
+ ## 6. Authority
86
+
87
+ - 이 문서(`shared-phenomenon-contract.md`)가 co-location rule, claim relation 분류, overlap 정책의 **유일한 normative seat**이다
88
+ - `lens-prompt-contract.md`는 4필드 직렬화 형식을 소유하되, co-location 규칙은 이 문서를 참조만 한다
89
+ - `synthesize-prompt-contract.md`는 claim relation 분류를 출력에 표출하되, 분류 규칙은 이 문서를 참조만 한다
90
+ - 동일 규칙이 다른 문서에 normative로 존재하면 authority violation이다
91
+
92
+ ---
93
+
94
+ ## 7. Reverse Application — Pre-review Lens Relevance Derivation
95
+
96
+ §2–§3 이 정의한 co-location 규칙은 양방향으로 소비된다. 본 절은 그 중 reverse 방향의 소비 규약만 규정한다.
97
+
98
+ - **Forward** (§3 기본 방향): 주어진 두 claim → 같은 shared phenomenon 인지 판정. 소비 시점: review-time synthesis.
99
+ - **Reverse** (본 절): 주어진 target 으로부터 관찰 가능한 phenomenon 을 추출하고, 각 lens perspective 가 그 phenomenon 과 co-locate 될 수 있는지를 역판정. 소비 시점: pre-review lens relevance 판단.
100
+
101
+ ### 7.1 Reverse 적용 규칙
102
+
103
+ Reverse application 은 §2–§3 규칙을 새로 만들지 않고 동일 규칙을 방향만 바꿔 사용한다.
104
+
105
+ 1. target 본문을 sampling 하여 관찰 가능한 phenomenon 을 §2 Phenomenon 단위로 추출한다
106
+ 2. 각 lens 의 perspective 정의(`.onto/roles/<lens>.md`)를 읽는다
107
+ 3. 추출된 phenomenon 중 하나 이상이 해당 lens perspective 의 observation focus 와 §3 기준으로 co-locate 가능한지 판정한다
108
+ 4. 판정 결과가 긍정이면 그 lens 는 target 에 "relevant" 이다
109
+
110
+ ### 7.2 Input Scope 규약
111
+
112
+ - target 본문 기반의 semantic 판단이다. target metadata (파일 경로·크기·kind) 만으로 수행하는 판정은 drift 위험이 커 본 절의 reverse application 대상이 아니다
113
+ - phenomenon 추출은 target 의 대표 샘플에 한정한다. 전체 본문 완독은 사전 판단 비용을 review 본 실행과 동급으로 만들어 원래 목적(비용 절감)을 훼손한다
114
+
115
+ ### 7.3 Axiology 제외 불가
116
+
117
+ `axiology` lens 는 §7.1 relevance 판정에서 제외되지 않는다. 목적·가치 정합 검증은 모든 리뷰의 필수 구성이며, 본 판정의 대상이 아니다. 이 원칙의 output schema 수준 표현은 `interpretation-contract.md §4.7` 이 소유한다.
118
+
119
+ ### 7.4 Consumer 분리
120
+
121
+ - 본 절은 판정 규칙만 소유한다. 판정을 언제 실행할지의 orchestration은 `interpretation-contract.md §4.7`이 소유한다
122
+ - 판정 결과의 output schema (`lens_selection_plan`) 는 `interpretation-contract.md §4.7` 이 소유한다
123
+ - 본 절은 세 소유자 중 **판단 규칙** 층의 단일 normative seat 이다
124
+
125
+ ### 7.5 Authority
126
+
127
+ - 본 절은 pre-review lens relevance 판정 규칙의 **유일한 normative seat** 이다
128
+ - `interpretation-contract.md §4.7` 은 본 절을 참조만 한다
129
+ - 동일 판정 규칙이 다른 문서에 normative 로 존재하면 authority violation 이다