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,1562 @@
1
+ lexicon_version: "0.39.0"
2
+ schema_version: "2"
3
+ position: "Prototype-to-service ontology authority for the onto main repository."
4
+ notes:
5
+ - "This lexicon is the concept SSOT for the productization track."
6
+ - "This file owns the concept INVENTORY. Naming RULES are owned by ontology-as-code-naming-charter.md."
7
+ - "Structure: authoring_rules → shared_attributes → entities → terms."
8
+
9
+ # ---------------------------------------------------------------------------
10
+ # Governance (preserved from v0.1.0)
11
+ # ---------------------------------------------------------------------------
12
+
13
+ legacy_alias_governance:
14
+ owner: "core-lexicon.yaml (this file)"
15
+ precedence: "canonical_label always wins. legacy_aliases exist for comprehension bridging only."
16
+ lifecycle: "A legacy alias is documentation-only and never extends runtime authority."
17
+ retire_gate: "Runtime canonical IDs are bare IDs. Legacy aliases remain only as comprehension notes."
18
+ relation_to_translation_reference: "retired from current runtime; historical translation reference is archived under development-records/archive/retired-runtime-legacy-20260526/."
19
+ scope_migration:
20
+ introduced_in: "v0.15.0 (2026-04-20) — framework v1.0 sync"
21
+ rule: "shared_attributes.scope.values 가 재정의됨. legacy identifier 는 semantic 이 다른 canonical value 로 mapping."
22
+ migrations:
23
+ - legacy: "user"
24
+ path_type: "split"
25
+ label_rename:
26
+ from_canonical: "user"
27
+ to_canonical: "methodology"
28
+ reason: "framework v1.0 §2.4 — 'user scope' 의 저장 경로 label (~/.onto/) 은 framework 의 적용 범위 축과 orthogonal. cross-everything 지식의 귀속 frame label 로 rename. label 층에서는 1:1 mapping 성립."
29
+ instance_routing:
30
+ reason: "legacy user-scope 항목 각각의 적용 범위는 내용 기준 결정. label rename 만으로 canonical scope 가 unique 하게 도출되지 않는다 (re-review 20260420-b74e947f semantics F1·evolution F1·coverage F-C2 반영)."
31
+ decision_rule:
32
+ default_target: "methodology"
33
+ default_condition: "내용이 product/medium/domain 중 어느 것에도 고정되지 않은 cross-everything 지식인 경우 (예: review 9-lens taxonomy, axis_enum)."
34
+ narrower_scope_triggers:
35
+ product: "특정 product context ({product}/.onto/ 하위에서만 의미) 에서만 참조되면 product 로 재분류."
36
+ medium: "특정 medium (excel, claude-code-skill 등) pattern/pitfall 에만 적용되면 medium 으로 재분류."
37
+ domain: "특정 domain (software-engineering, ui-design 등) 검증 기준에만 적용되면 domain 으로 재분류."
38
+ holding_state: "routing 결정 보류 시 primary_scope=methodology + secondary_scopes=[] 로 holding. 6개월 (framework §10.3 deferred) 내 재평가. deterministic migration artifact (source path / legacy scope / resolved primary_scope / rationale / migrated_at) 는 다음 PR 에서 도입 (re-review recommendation 3)."
39
+ semantics_change: "저장 경계 label → 적용 범위 frame. label layer 는 1:1 rename 이지만 instance layer 는 분기 routing (branch rule)."
40
+ - legacy: "project"
41
+ canonical: "product"
42
+ reason: "framework v1.0 §2.1 — Principal 의 작동 실체 단위를 'product' 로 통합 (productization-charter 정합)."
43
+ semantics_change: "저장 경계 레이블 → Principal 작동 실체. 대부분의 기존 'project' 참조는 product 로 직접 mapping 가능."
44
+ - legacy: "domain"
45
+ canonical: "domain"
46
+ reason: "identifier 보존. 의미만 '저장 경계 레이블' 에서 '적용 범위 frame' 으로 재정의."
47
+ semantics_change: "저장 경계 → 분야 frame. 기존 instance 는 그대로 유효 (분야 차원 지식)."
48
+ runtime_rule: "runtime 소비자(src/core-runtime/)는 canonical value만 읽는다."
49
+ deprecated_vocabulary:
50
+ introduced_in: "v0.15.0 (2026-04-20)"
51
+ items:
52
+ - name: "learning_applicability"
53
+ prior_seat: "entities.learning.attributes.local.learning_applicability (values: methodology, domain/{name})"
54
+ deprecated_at: "v0.15.0"
55
+ replacement: "entities.learning.attributes.local.primary_scope + secondary_scopes"
56
+ reason: "framework v1.0 §8.4 — scope 축이 단일 shared_attributes.scope (4 값) 로 통합되면서 별도 applicability enum 은 중복."
57
+ - name: "inline tag [methodology] / [domain/X] / [medium/X]"
58
+ prior_seat: "learning 파일 본문 tag 표기"
59
+ deprecated_at: "v0.15.0"
60
+ replacement: "frontmatter primary_scope + secondary_scopes (framework §7.4)"
61
+ reason: "framework v1.0 §8.4 — frontmatter scope 가 canonical."
62
+ # review_taxonomy_migration: removed in v0.2.0. Canonical aliases are owned by each entity/term's legacy_aliases field.
63
+
64
+ # ---------------------------------------------------------------------------
65
+ # Authoring Rules
66
+ # ---------------------------------------------------------------------------
67
+
68
+ authoring_rules:
69
+ canonical_identity: "YAML key = canonical identifier. canonical_label은 표시용. terms의 canonical identifier는 term_id."
70
+ identifier_resolution: "entities key를 우선 resolve. 동명 term이 존재하면 entities가 canonical."
71
+ term_frame:
72
+ required_slots: [term_id, canonical_label, korean_label, definition, term_status]
73
+ optional_slots: [axis, allowed_values, notes, legacy_aliases, contract_ref, translation_mode]
74
+ translation_policy:
75
+ # 용어 표시 정책. Current onto-mcp review runtime does not implement
76
+ # runtime translation or render-point registries.
77
+ introduced_in: "v0.20.0 (2026-04-20) — 3-mode 초판"
78
+ revised_in: "v0.22.0 (2026-05-26) — runtime translation registry retired"
79
+ modes:
80
+ preserved: "원어 유지. default. rank 1-4 정의 개념 + command 어휘 전수."
81
+ translated: "future/non-runtime prose에서만 explicit opt-in 가능. current review artifacts는 canonical identifier를 유지."
82
+ default_mode: "preserved"
83
+ explicit_declaration_required:
84
+ - "translated mode 는 해당 entity/term 에 `translation_mode: translated` 필드로 명시 (default preserved 의 예외)"
85
+ - "preserved (default) 는 필드 생략 허용. 강조 목적의 explicit 선언도 허용"
86
+ korean_label_role:
87
+ - "각 entity/term 의 korean_label 은 **descriptive 참조용**. Korean-speaking 기여자의 개념 이해를 돕는 label"
88
+ - "default mode=preserved 인 현재 정책에서는 runtime 렌더링에 쓰이지 않음"
89
+ - "translation_mode: translated 는 현재 review runtime artifact에 적용되지 않는다"
90
+ bilingual_abolition_note:
91
+ - "v0.21.0 에서 bilingual mode 완전 제거. 기존 v0.20.0 의 6 bilingual 항목 (principal, principle, product, experience, medium, provenance) 은 모두 preserved (새 default) 로 흡수"
92
+ - "이유: rank 1-4 authority 정의 개념 + command 어휘는 원어 통일이 일관성 원칙. 중간 지점 (첫 등장 병기) 을 별도 mode 로 유지할 경우 policy complexity 대비 실익 미미"
93
+ scope_policy:
94
+ principle: "rank 1 (lexicon entities/terms) + rank 2-4 (.onto/principles/ + productization-charter + interface specs) 정의 개념 + CLI command 어휘는 전수 preserved"
95
+ rank5_and_lower: ".onto/processes/*.md + development-records/ 등은 정의보다 서술 성격. 개별 term 의 mode 는 rank 1-4 정의가 canonical"
96
+ glossary_seat: "retired from current runtime; archived under development-records/archive/retired-runtime-legacy-20260526/"
97
+ lint_rules:
98
+ R3: "runtime translation lint is retired from current onto-mcp review runtime"
99
+ relation_ownership: "source entity(및 그 instances)가 outbound relation만 소유. inverse는 derived, authored하지 않음."
100
+ relation_ownership_interpretation: >
101
+ "inverse 는 derived" 의 의미 명확화 (v0.18.0, framework v1.0.1 sync).
102
+ 동일 edge 의 반대 방향 해석을 의미 — 예: product.implemented_with 가 authored 되면
103
+ medium 방향에서 본 "realizes" 는 derived. 따라서 medium entity 에 realizes 를 authored
104
+ 하지 않는다. 반면 learning.promoted_from, principle.canonicalized_from 처럼 snapshot 시점
105
+ provenance 를 기록하는 relation 은 source entity (experience/learning 등) 의 outbound 의
106
+ inverse 가 아니라 **self-outbound** (Learning·Principle 이 자기 자신의 historical pointer
107
+ 를 보관) 이므로 본 rule 의 위반이 아니다. 시점 정보 (source_commit_sha, snapshot_reference
108
+ semantics) 가 동반되는 것이 self-outbound provenance 의 징표.
109
+ relation_target_resolution: "relation target은 entities의 key 또는 terms의 term_id로 resolve된다."
110
+ relation_execution_rules_ref: >
111
+ relation 객체 내 execution_rules_ref는 단일 문자열을 허용한다.
112
+ entity 수준 execution_rules_ref와 동일 대상을 가리킬 경우,
113
+ entity 수준이 canonical이고 relation에서는 note로만 존재를 표기한다.
114
+ relation_type_vocabulary:
115
+ creates: "source가 target의 새 instance를 생성한다. target이 lifecycle_status를 가지면 seed로 시작."
116
+ consumes: "source가 target의 기존 instance를 입력으로 사용한다."
117
+ references: "source가 target을 검증 기준 또는 맥락으로 참조한다. target을 변경하지 않는다."
118
+ produces: "source가 target artifact를 산출물로 생성한다. creates와 달리 lifecycle 관리 대상이 아닌 artifact."
119
+ dispatches: "source가 target을 독립적 실행 책임 단위(process, lens, stage)로 호출한다."
120
+ # Framework v1.0 scope axis relation types (v0.16.0 신설, v0.18.0 정비)
121
+ implemented_with: "source(product) 가 target(medium) 을 구현 수단으로 사용한다. m:n 허용. composition manifest (implemented_with.yaml) 가 원천 seat. framework §7.1. medium 방향 inverse (`realizes`) 는 derived — authored 하지 않음."
122
+ belongs_to: "source 가 target 의 하위 또는 구성원으로 귀속된다. many-to-one (single primary). 예: product→domain, domain_document→domain. domain 방향 inverse (`contains`) 는 derived."
123
+ # Framework v1.0 transition relation types (provenance/snapshot pointers)
124
+ # Framework v1.0 transition relation types (provenance/snapshot pointers)
125
+ promoted_to: "source (experience) 가 promote 또는 promote_and_generalize 전이로 target (learning) 이 됐다. framework §6.1, §6.4. forward pointer."
126
+ promoted_from: "source (learning) 가 target (experience) 의 promote 결과로 생성됐다. historical snapshot pointer — promoted_to 의 inverse (provenance 대칭, CR-6). live reference 아님."
127
+ generalized_to: "source (learning) 가 generalize 전이를 거쳐 다른 scope 의 target (learning) 으로 확장된다. framework §6.2. v1 manual only."
128
+ canonicalized_to: "source (Tier 1 learning / Tier 2 ontology·medium_reference·domain_document) 가 canonicalize 전이를 거쳐 target (principle) 로 snapshot copy 된다. framework §6.3. Tier 축 이동."
129
+ canonicalized_from: "source (principle) 가 target (learning / ontology / medium_reference / domain_document) 의 canonicalize 결과로 생성됐다. snapshot_reference — canonicalized_to 의 inverse. historical, not live reference."
130
+ describes: "source (ontology) 가 target (product) 을 기술한다. described_by 의 inverse. v0.16.0 는 authored 유지; Inverse-edge dual authority 해소는 별도 PR scope."
131
+ extension: "새 relation type 도입 시: (1) 기존 types 각각과의 의미 경계를 1문장으로 기술, (2) 이 vocabulary 블록에 추가, (3) lexicon_version minor bump, (4) Inverse-edge 인 경우 authoring 정책 (relation_ownership: inverse는 derived) 과의 관계 명시 또는 별도 policy exception 기록."
132
+ relation_note_interpretation: >
133
+ relation의 note는 정보 제공 목적이며 규범적 실행 규칙이 아니다.
134
+ 실행 규칙은 반드시 execution_rules_ref로 위임한다.
135
+ operation_modeling: >
136
+ Operation은 독립 category가 아님. typed relation 또는 execution_rules_ref로 표현.
137
+ authority_boundary: >
138
+ 이 파일은 개념 식별(definition, core_value, attributes, relations)을 소유.
139
+ 실행 규칙(precondition, transition, constraint)은 .onto/processes/ 및 .onto/principles/에 위임.
140
+ 위임 대상 문서는 역방향으로 "개념 SSOT: core-lexicon.yaml의 {entity/term}" 참조를 갖추는 것을 권장.
141
+ core_value_boundary: >
142
+ core_value는 "이 개념이 온톨로지에 존재하는 이유"(existence justification)만 기술.
143
+ "이 개념을 특정 방식으로 사용해야 하는 이유"(usage justification)는 execution_rules_ref에 위임.
144
+ attribute_model: >
145
+ entity.attributes가 SSOT. shared: shared_attributes 참조. local: entity 내 직접 정의.
146
+ shared_attributes는 정의 registry이며 applies_to를 두지 않음(entity.attributes에서 역추적).
147
+ entity_frame:
148
+ required_slots: [canonical_label, korean_label, definition, core_value]
149
+ optional_slots: [attributes, relations, instances, execution_rules_ref, notes, legacy_aliases]
150
+ instance_minimum: "definition 필수. instances는 parent의 relations/attributes를 상속하며, 추가로 자체 relations 및 notes를 정의할 수 있다."
151
+ schema_version_evolution: >
152
+ additive change = minor 올림. entity/attribute 삭제·의미 변경 = major 올림.
153
+ 0.x 단계에서는 minor가 구조 변경을 포함할 수 있다.
154
+ lexicon_version_evolution: >
155
+ 내용 추가/수정 시 minor 올림. 구조(섹션 신설/폐지) 변경 시 major 올림.
156
+ schema_version과 독립적으로 진화한다.
157
+ schema_migration: "schema_version 부재 시 '1'로 간주."
158
+ partition_trigger: "entity 수 100개 또는 파일 크기 50KB 초과 시 domain별 분할 검토."
159
+ definition_language: "entities: 한국어. shared_attributes: 기존 영문 유지. terms: 기존 영문 유지, 신규는 한국어."
160
+ term_status_vocabulary:
161
+ allowed_values: [active, deprecated, retired]
162
+ transition: "active → deprecated → retired. deprecated term은 참조가 0이 되면 retired."
163
+ legacy_vocabulary: >
164
+ learning_lifecycle_op는 v0.2.0에서 제거됨.
165
+ 운영 단계(creation, promotion, retirement, consumption)는 typed relation 및 execution_rules_ref로 표현.
166
+
167
+ # ---------------------------------------------------------------------------
168
+ # Shared Attributes
169
+ # ---------------------------------------------------------------------------
170
+
171
+ shared_attributes:
172
+ lifecycle_status:
173
+ definition: "Lifecycle maturity or disposition of an asset."
174
+ values:
175
+ seed: "생성 직후. 검증 전"
176
+ candidate: "승격 후보로 식별됨"
177
+ provisional: "패널 리뷰 통과, 주체자 승인 대기"
178
+ promoted: "승인 완료. 소비 가능"
179
+ deprecated: "퇴역 후보"
180
+ retired: "퇴역 완료"
181
+ execution_rules_ref:
182
+ transition_canonical_owner: "development-records/plan/20260413-refresh-protocol.md (M-08 refresh protocol). deprecated/retired 전이의 canonical owner. 기존 promote Step 4a event marker review (learning 대상) + judgment audit (judgment-type learning 대상) 은 M-08 하위 경로로 재분류됨 (W-D-05, 2026-04-16)."
183
+ notes:
184
+ - "전이 모델과 소비 문서는 각 entity의 execution_rules_ref에서 확인"
185
+ - "W-D-05 (2026-04-16): deprecated/retired 관리 분산 drift 해소 — M-08 refresh protocol 이 canonical owner."
186
+ scope:
187
+ definition: "적용 범위 축. 항목이 어느 대상 전반에 유효한가를 분할하는 classifying dimension (framework v1.0 §2)."
188
+ values:
189
+ product: "Principal 이 시간·비용 투입해 만든 작동 실체 범위. 단일 product 내부 전체 ({product}/.onto/)"
190
+ medium: "한 product 의 구현 수단 (excel, claude-code-skill, cli 등) 전반. cross-product 축 (~/.onto/mediums/{medium}/)"
191
+ domain: "한 분야 (software-engineering, ui-design 등) 전반. cross-product 축 (~/.onto/domains/{domain}/)"
192
+ methodology: "cross-everything 지식 frame. v1 은 definition only (instance 0, framework §2.4)"
193
+ notes:
194
+ - "본 scope 는 knowledge framework v1.0 (development-records/evolve/20260419-knowledge-framework.md) §2 의 적용 범위 축. 저장 경계는 좌표로부터 도출되는 결과물 (framework §1 REC-5 · §4.2 · §5)."
195
+ - "legacy values [user, project] 는 framework v1.0 정합 시 재정의됨 — user → methodology (cross-everything frame), project → product (Principal 의 작동 실체). migration 기록은 legacy_alias_governance.scope_migration 참조."
196
+ - "scope.values 의 식별자는 적용 범위 레이블이며 실행 주체 (principal) 와 별개 개념이다."
197
+ transition_kind:
198
+ definition: "항목의 세 축 (tier / maturity / scope) 이동을 식별하는 전이 종류 enum. framework v1.0 §6 전이 정의의 lexicon 표상."
199
+ values:
200
+ promote: "Tier 1 maturity 이동 (Experience → Learning). same scope. 자동화 대상 (product)."
201
+ generalize: "scope 축 이동 (standalone). 이미 Learning 상태인 항목의 scope 확장. v1 manual only."
202
+ promote_and_generalize: "compound — product Experience → 다른 scope 의 Learning (medium 또는 domain). panel verdict 한 번으로 두 축 동시 이동. v1 active."
203
+ canonicalize: "tier 축 이동 (Tier 1·2 → Tier 3). snapshot copy — source commit SHA 기록 (framework §6.3)."
204
+ norm_update: "Tier 1 domain Learning → Tier 2 domain document 갱신. active (promote.md Step 7 권고)."
205
+ medium_norm_update: "Tier 1 medium Learning → Tier 2 medium reference 갱신. definition only."
206
+ ontology_update: "Tier 1 product Learning → Tier 2 ontology 갱신. definition only."
207
+ re_classification: "medium ↔ domain primary scope 재분류 (framework §7.3)."
208
+ retire: "lifecycle 종료. M-08 refresh protocol 담당."
209
+ notes:
210
+ - "activation 상태 (active / definition only) 의 canonical SSOT 는 framework v1.0 §6.6 전이 요약표."
211
+ - "compound verb 의 target=methodology 는 v1 enum 에 정의되지 않는다 (framework §6.4). methodology Learning 직접 생성 금지."
212
+ normative_tier:
213
+ definition: "항목의 강제력 축 값. framework v1.0 §3 의 3 tier 구분."
214
+ values:
215
+ "1_cost_saver": "Tier 1 — 실용 cost-saver. Experience (raw 관찰) + Learning (promoted 검증된 cost-saver)."
216
+ "2_reference": "Tier 2 — 서술적 reference. ontology / medium_reference / domain_document. soft guardrail, normative 아님."
217
+ "3_obligation": "Tier 3 — 의무 obligation. principle. canonicalize 경로로만 편집 가능. govern 강제 zone."
218
+ notes:
219
+ - "저장 디렉토리 결정은 (tier, primary_scope) 쌍. Tier 1 은 추가로 maturity 축에 따라 experiences/ · learnings/ 로 분화 (framework §12.7 storage 도출 규칙)."
220
+ - "Tier 2 는 descriptive soft guardrail 이지 normative artifact 가 아님. Tier 3 만 onto-direction §1.2 의 normative artifact 에 해당 (framework §11.2)."
221
+
222
+ # ---------------------------------------------------------------------------
223
+ # Provisional Lifecycle (W-D-01, D0 Bootstrap)
224
+ # ---------------------------------------------------------------------------
225
+ # 새 lexicon term 의 성숙도 전이 모델.
226
+ # shared_attributes.lifecycle_status 의 4 전이 상태를 lexicon term 에 적용하는 규칙.
227
+ # 본 section 은 개념 식별(상태 정의 + 전이 조건)을 소유.
228
+ # 실행 강제(인용 금지 검증)는 W-D-02 (lexicon-citation-check.ts) 에 위임.
229
+
230
+ provisional_lifecycle:
231
+ position: >
232
+ lexicon term 이 core-lexicon.yaml 의 terms section 에 정식 등록(term_status=active)되기 전,
233
+ 성숙도를 관리하는 전이 모델. shared_attributes.lifecycle_status 의 subset 을 사용.
234
+ states:
235
+ seed:
236
+ definition: "새 term 이 처음 식별됨. 검증 전 상태."
237
+ entry_condition: "work item 실행 중 기존 term 으로 표현할 수 없는 새 개념이 등장"
238
+ consumption_policy: "인용 금지. authority file (core-lexicon.yaml) 내 참조만 허용"
239
+ candidate:
240
+ definition: "승격 후보로 식별됨. 최소 1건의 사용 증거 확보."
241
+ entry_condition: "seed term 이 1개 이상의 active work item 에서 실제 사용됨"
242
+ evidence_required: "사용 work item ID + 사용 위치 (파일 경로)"
243
+ consumption_policy: "인용 금지. authority file 내 참조만 허용"
244
+ provisional:
245
+ definition: "패널 리뷰 통과. 주체자 승인 대기."
246
+ entry_condition: "candidate term 을 포함한 문서·코드가 9-lens review 에서 PASS 또는 CONDITIONAL PASS"
247
+ evidence_required: "review session ref (review_session_metadata ID)"
248
+ consumption_policy: "인용 금지. authority file 내 참조만 허용"
249
+ promoted:
250
+ definition: "주체자 승인 완료. 정식 소비 가능."
251
+ entry_condition: "주체자(principal) 명시적 승인"
252
+ evidence_required: "승인 일시"
253
+ consumption_policy: "소비 가능. terms section 에 term_status=active 로 정식 등록"
254
+ transitions:
255
+ - from: seed
256
+ to: candidate
257
+ trigger: "1개 이상의 active work item 에서 실제 사용"
258
+ - from: candidate
259
+ to: provisional
260
+ trigger: "9-lens review PASS 또는 CONDITIONAL PASS"
261
+ - from: provisional
262
+ to: promoted
263
+ trigger: "주체자(principal) 명시적 승인"
264
+ - from: seed
265
+ to: deprecated
266
+ trigger: "등록 사유 소멸 또는 동의어 발견"
267
+ - from: candidate
268
+ to: deprecated
269
+ trigger: "리뷰에서 불필요 판정 또는 기존 term 으로 대체 가능"
270
+ lifecycle_status_management:
271
+ primary_seat: ".onto/authority/core-lexicon.yaml provisional_terms section (W-D-03 에서 구조 확정)"
272
+ recording_actor: "해당 term 을 등장시킨 work item 의 ownership_boundary role"
273
+ refresh_responsibility: "M-08 refresh protocol 주기적 scan (20260413-refresh-protocol.md §3)"
274
+ promotion_execution: "promoted 전이 시 provisional_terms → terms section 이동 + term_status=active 설정"
275
+ cross_references:
276
+ shared_attributes_lifecycle_status: "shared_attributes.lifecycle_status — 상태 값 정의 원천"
277
+ term_status_vocabulary: "authoring_rules.term_status_vocabulary — promoted 후 정식 등록 시 적용"
278
+ citation_check_tool: "not wired in the current onto-mcp review runtime"
279
+ recording_seat_structure: "W-D-03 — provisional_terms section 4 seat 구조 확정"
280
+ refresh_protocol: "development-records/plan/20260413-refresh-protocol.md"
281
+
282
+ # ---------------------------------------------------------------------------
283
+ # Provisional Terms (W-D-03, D0 Bootstrap)
284
+ # ---------------------------------------------------------------------------
285
+ # 새 lexicon term 이 정식 등록(terms section, term_status=active) 되기 전
286
+ # 성숙도를 추적하는 recording seat. dep graph §2.2.1 의 4 seat 구조.
287
+
288
+ provisional_terms:
289
+ position: >
290
+ terms section 정식 등록 전 단계의 term 을 기록하는 seat.
291
+ provisional_lifecycle section 의 전이 모델에 따라 lifecycle_status 가 관리된다.
292
+ seat_structure:
293
+ recording_seat:
294
+ location: ".onto/authority/core-lexicon.yaml#provisional_terms.entries"
295
+ authority_rank: 1
296
+ note: "rank 1 authority file 내 section. 파일 분리는 partition_trigger (50KB) 초과 시 검토."
297
+ recording_actor:
298
+ responsibility: "해당 term 을 등장시킨 work item 의 ownership_boundary role"
299
+ escalation: "등록 누락 시 M-07 lifecycle balance check 가 gap 으로 flag"
300
+ downstream_consumer:
301
+ - id: refresh_protocol
302
+ role: "M-08 refresh protocol 주기적 scan — lifecycle_status 승격·폐기 판정"
303
+ ref: "development-records/plan/20260413-refresh-protocol.md §3"
304
+ - id: citation_check
305
+ role: "seed/candidate/provisional term 인용 금지 검증"
306
+ ref: "not wired in the current onto-mcp review runtime"
307
+ - id: work_item_author
308
+ role: "다른 축 work item 작성자 — provisional term 존재 확인 후 인용 회피"
309
+ promotion_path:
310
+ ref: "provisional_lifecycle section (W-D-01)"
311
+ stages: ["seed", "candidate", "provisional", "promoted"]
312
+ promotion_execution: "promoted 전이 시 본 entries 에서 제거 + terms section 에 term_status=active 로 이동"
313
+ entry_schema:
314
+ required_fields: [term_id, lifecycle_status, registered_by, registered_date, definition_draft]
315
+ optional_fields: [evidence, notes]
316
+ note: "entry key = term_id. entries 내부에 직접 기록."
317
+ entries:
318
+ review_execution_log:
319
+ term_id: review_execution_log
320
+ lifecycle_status: seed
321
+ registered_by: "W-A-71"
322
+ registered_date: "2026-04-14"
323
+ definition_draft: >
324
+ review 활동의 실행 로그 수집 seat.
325
+ 세션별 타이밍 데이터(전체 소요 시간, per-lens 소요 시간, provenance)를
326
+ 구조적으로 읽어 점진성(progressiveness) metric 을 산출한다.
327
+ 없으면 반복 review 의 비용·시간 변화를 계량할 수 없다.
328
+ evidence:
329
+ - ".onto/processes/review/record-contract.md (current review record contract)"
330
+ - "src/core-runtime/cli/assemble-review-record.ts (current ReviewRecord assembly)"
331
+ notes:
332
+ - "DL-017 점진성 seat 3건 중 review 담당"
333
+ - "W-A-75/76 (review-r+/r−) 의 선행 의존"
334
+ learning_usage_hitrate:
335
+ term_id: learning_usage_hitrate
336
+ lifecycle_status: deprecated
337
+ registered_by: "W-A-72"
338
+ registered_date: "2026-04-14"
339
+ definition_draft: >
340
+ promoted learning 의 활용 히트율 계측 seat.
341
+ 세션별 learning-manifest.yaml 에서 공급량(loaded), 필터링률(parsed→loaded),
342
+ 토큰 효율, tier/role 분포를 수집하여 학습 기제 신뢰도 proxy 를 산출한다.
343
+ 없으면 학습 축적이 실제로 활동 비용을 줄이는지 판단할 수 없다.
344
+ evidence:
345
+ - "archived legacy learning tracker (not current runtime authority)"
346
+ notes:
347
+ - "Not wired in the current onto-mcp review runtime."
348
+ - "learn/govern will require separate design after review/reconstruct/evolve are productized."
349
+ domain_validation_accuracy:
350
+ term_id: domain_validation_accuracy
351
+ lifecycle_status: deprecated
352
+ registered_by: "W-A-73"
353
+ registered_date: "2026-04-14"
354
+ definition_draft: >
355
+ reconstruct 활동에서 domain knowledge 추정의 적중률 계측 seat.
356
+ certainty 분류(inferred)에 대한 후속 검증 결과(validated/invalidated/revised)를
357
+ 기록하고 정확도 비율을 산출한다.
358
+ 없으면 domain assumption 의 신뢰성을 판단할 수 없다.
359
+ evidence:
360
+ - "archived legacy domain-validation tracker (not current runtime authority)"
361
+ notes:
362
+ - "Not wired in the current onto-mcp review runtime."
363
+ - "reconstruct will require separate productized design."
364
+ review_ontology_present_path:
365
+ term_id: review_ontology_present_path
366
+ lifecycle_status: deprecated
367
+ registered_by: "W-A-75"
368
+ registered_date: "2026-04-14"
369
+ definition_draft: >
370
+ review 활동의 r+ 경로 — 프로젝트에 ontology seat (code-mapping/behavior/model YAML 혹은
371
+ glossary/actions/transitions YAML) 이 존재하여 review lens 가 ontology-resolved
372
+ code location·action·transition 을 grounding 으로 사용할 수 있는 경우의 수행 계약.
373
+ 없으면 ontology 투자의 비용·품질 효과를 정의·계량할 수 없다.
374
+ evidence:
375
+ - "development-records/archive/retired-processes-20260526/review/ontology-path.md (archived legacy contract)"
376
+ notes:
377
+ - "DL-029 해소 2-path split 중 r+ 담당"
378
+ - "쌍: review_ontology_absent_path (W-A-76)"
379
+ - "Not wired in the current onto-mcp review runtime."
380
+ review_path_label:
381
+ term_id: review_path_label
382
+ lifecycle_status: deprecated
383
+ registered_by: "W-A-75"
384
+ registered_date: "2026-04-14"
385
+ definition_draft: >
386
+ review 세션 1건을 r+ / r− / unknown 중 하나로 분류한 결과 라벨.
387
+ classifyReviewPaths() 가 프로젝트의 ontology seat 존재 여부를 기준으로 부여한다.
388
+ 없으면 cohort 간 비용·품질 delta 를 계산할 대상이 정의되지 않는다.
389
+ evidence:
390
+ - "development-records/archive/retired-processes-20260526/review/ontology-path.md (archived legacy classifier contract)"
391
+ notes:
392
+ - "값: r+ (ontology-present), r- (ontology-absent), unknown (향후 per-session 분기 시 사용)"
393
+ - "cohort 집계는 PathCohortMetric, 비교는 PathDeltaMetric 에 노출"
394
+ review_ontology_absent_path:
395
+ term_id: review_ontology_absent_path
396
+ lifecycle_status: deprecated
397
+ registered_by: "W-A-76"
398
+ registered_date: "2026-04-14"
399
+ definition_draft: >
400
+ review 활동의 r− 경로 — 프로젝트에 ontology seat 이 없어 review lens 가
401
+ scan-local (ScanResult.files + content_hashes) 과 lens 자체 pretrained 지식에만
402
+ 의존하여 grounding 하는 ad-hoc 경로.
403
+ 없으면 ontology 투자 효과를 측정할 baseline 이 정의되지 않는다.
404
+ evidence:
405
+ - "development-records/archive/retired-processes-20260526/review/ontology-absent-path.md (archived legacy contract)"
406
+ notes:
407
+ - "DL-029 해소 2-path split 중 r− 담당"
408
+ - "쌍: review_ontology_present_path (W-A-75)"
409
+ - "Not wired in the current onto-mcp review runtime."
410
+ reconstruct_bounded_path:
411
+ term_id: reconstruct_bounded_path
412
+ lifecycle_status: deprecated
413
+ registered_by: "W-A-74"
414
+ registered_date: "2026-04-14"
415
+ definition_draft: >
416
+ reconstruct 활동의 bounded path (start → explore → complete).
417
+ review 3-step 과 대응하며, reconstruct runtime 의 RECONSTRUCT_TRANSITIONS 전체 상태 머신과는
418
+ 구별되는 runtime surface. session-level state 는 reconstruct-state.json 단일 파일로 관리한다.
419
+ 없으면 reconstruct runtime 방법론 호출 경로가 ad-hoc 이어서 post-PR 결함 cluster (reconstruct-runtime 40 BL) 의
420
+ 구조적 원인이 유지된다.
421
+ evidence:
422
+ - "archived legacy reconstruct handler (not current runtime authority)"
423
+ - "archived legacy reconstruct process contract (not current runtime authority)"
424
+ notes:
425
+ - "DL-020 해소"
426
+ - "§1.4 reconstruct 완료 기준 3축 (초안·why 추정·Principal 검증) 이 3-step 에 매핑됨"
427
+ - "Not wired in the current onto-mcp review runtime."
428
+ invoke_surface:
429
+ term_id: invoke_surface
430
+ lifecycle_status: seed
431
+ registered_by: "W-A-52"
432
+ registered_date: "2026-04-14"
433
+ definition_draft: >
434
+ 주체자가 진입하는 runtime/tool 표면. MCP-native 방향에서는 `src/mcp/` tool schema가 public
435
+ invoke surface이고, process 문서는 의미론 authority seat를 제공한다.
436
+ evidence:
437
+ - "src/mcp/server.ts (current MCP tool surface)"
438
+ - "src/core-api/review-api.ts (current review API facade)"
439
+ notes:
440
+ - "R-4 성문화 seed. authority seat 는 기존 rank 1 authority 파일 개념이므로 별도 seed 없음."
441
+ - "MCP-native public surface는 command document가 아니라 tool schema로 고정한다."
442
+ install_surface:
443
+ term_id: install_surface
444
+ lifecycle_status: seed
445
+ registered_by: "W-A-52"
446
+ registered_date: "2026-04-14"
447
+ definition_draft: >
448
+ runtime 실행 시 invoke_surface 가 실제로 읽는 파일이 거주하는 배포 트리.
449
+ 현재 onto 배포 기준 npm package와 project-local `.onto/`가 install surface 이다.
450
+ authority seat 의 deterministic snapshot 이어야 하며 (mirror requirement),
451
+ independent authority 를 갖지 않는다 (non-mutation). drift 는 재설치로만 보정된다.
452
+ 없으면 install tree 에 대한 현장 수정이 authority seat 를 우회할 수 있다.
453
+ evidence:
454
+ - "package.json files list"
455
+ - ".onto/processes/review/productized-live-path.md (current review process authority)"
456
+ notes:
457
+ - "R-4 성문화 seed. invoke_surface 와 한 쌍으로 alignment 모델의 축을 형성."
458
+ - "runtime-bound 경로에서도 동일 불변식 적용 (§9.4)."
459
+ - "MCP-native install surface는 host runtime에 종속되지 않는다."
460
+
461
+ host_runtime_detection:
462
+ term_id: host_runtime_detection
463
+ lifecycle_status: seed
464
+ registered_by: "Phase 1 host-decoupling (2026-04-17)"
465
+ registered_date: "2026-04-17"
466
+ definition_draft: >
467
+ onto-mcp runtime이 Codex worker를 사용할 수 있는지 판정하는 detection 절차.
468
+ canonical seat: src/core-runtime/discovery/host-detection.ts.
469
+ 현재 runtime은 Codex worker availability와 Codex session signal만 판정한다.
470
+ API key / local provider는 host detection이 아니라 settings-driven LLM switcher가 판정한다.
471
+ evidence:
472
+ - "src/core-runtime/discovery/host-detection.ts (canonical seat)"
473
+ notes:
474
+ - "Host/team capability matrix는 canonical runtime path에서 제거했다. 현재 execution route는 worker, direct-call, mock 세 경로로 닫는다."
475
+
476
+ main_worker_llm_axis:
477
+ term_id: main_worker_llm_axis
478
+ lifecycle_status: seed
479
+ registered_by: "Phase 1 host-decoupling (2026-04-17)"
480
+ registered_date: "2026-04-17"
481
+ definition_draft: >
482
+ review 실행에서 LLM 역할을 두 축으로 분리하는 모델.
483
+ - main LLM (orchestrator): 세션을 진행하고 lens 선택·synthesize 같은 메타 추론 수행
484
+ - worker LLM (per-lens executor): 9개 lens 의 실제 reasoning 수행
485
+ 두 LLM 은 같을 수도, 다를 수도 있다. Phase 1 에서는 두 축 모두 host_runtime 에 묶여 있으나
486
+ (main = host LLM, worker = host 가 spawn하는 instance), Phase 2 에서 독립 configurable
487
+ 로 wire 한다.
488
+ 예: OpenAI OAuth main path + Codex worker / Anthropic API direct call /
489
+ LM Studio local endpoint.
490
+ 없으면 host_runtime 단일 축이 main 과 worker 결정을 모두 묶어버려, cross-host 조합이
491
+ type 차원에서 표현 불가능.
492
+ evidence:
493
+ - "src/core-runtime/discovery/settings-chain.ts (settings contract)"
494
+ - "src/core-runtime/llm/model-switcher.ts (LLM provider/auth normalization)"
495
+ notes:
496
+ - "Phase 1: schema + 문서화만. Phase 2: worker_llm 직접 호출 (direct-call) 구현."
497
+ - "Phase 2 결정 1 (inline content vs function-calling loop): inline content mode 우선 — 8B 모델은 function-calling 신뢰도 낮음. function-calling loop 는 Phase 3."
498
+ - "Phase 2 결정 2 (standalone main 시 LLM 호출 여부): TS process 가 별도 LLM 호출하여 lens 선택 + synthesize 수행 — 단순 dispatcher 가 아닌 별도 main LLM 사용."
499
+
500
+ # ---------------------------------------------------------------------------
501
+ # Entities
502
+ # ---------------------------------------------------------------------------
503
+ # Stage 2 scope: review_process entity + principal term 추가.
504
+ # M-04-A 추가(2026-04-13): activity_enum + axis_enum taxonomy term.
505
+ # §1 정본 §1.2/§1.5 동기화 목적 — 기존 entrypoint entity (review instance 만 상세) 는 유지.
506
+ # entrypoint.instances 를 §1.2 5 활동 (reconstruct 추가, ask 폐기) 에 정렬하는 작업은 Stage 3 scope.
507
+ # reconstruct, ask, learn, govern, evolve의 고유 개념(process entity, dispatch target 등)은
508
+ # Stage 3에서 추가. 이 scope 경계는 의도적이며, 비-review 개념의 부재는 누락이 아님.
509
+
510
+ entities:
511
+ learning:
512
+ canonical_label: "learning"
513
+ korean_label: "학습"
514
+ definition: "promoted 검증된 cost-saver. Tier 1 의 maturity=Learning 좌표 (framework v1.0 §3.1). panel verdict 통과 후 소비 가능한 상태."
515
+ core_value: "이 개념이 없으면 동일한 실패를 반복하고, 특정 경로로만 접근 가능했던 지식을 매번 재탐색해야 한다"
516
+ attributes:
517
+ shared: [lifecycle_status]
518
+ local:
519
+ primary_scope:
520
+ definition: "한 Learning 항목의 적용 범위 축 값 (framework §2, primary). 저장 디렉토리 결정의 주 인자."
521
+ values: ["product", "medium", "domain", "methodology"]
522
+ secondary_scopes:
523
+ definition: "보조 적용 범위. 비어있을 수 있음 (framework §1 REC-5, m:n 적용 범위)."
524
+ type: "array of {scope_type: scope_value}"
525
+ source_experience_ref:
526
+ definition: "promote 시점 source Experience 의 entry marker. historical pointer (CR-6 / CON-3)."
527
+ type: "string"
528
+ learning_role:
529
+ definition: "학습 항목의 목적 분류"
530
+ values: ["guardrail", "foundation", "convention"]
531
+ learning_impact:
532
+ definition: "학습 항목의 영향 수준. 생성 시 결정, 불변"
533
+ values:
534
+ high: "이 학습이 없으면 critical 수준의 실패가 반복되거나, 복구 비용이 매우 높은 경우"
535
+ normal: "유용하지만 부재 시 영향이 high 미만인 경우"
536
+ relations:
537
+ - type: promoted_from
538
+ target: experience
539
+ cardinality: "many-to-one"
540
+ semantics: "historical pointer to source Experience (snapshot at promote time)"
541
+ note: "experience.promoted_to 의 inverse. provenance 대칭 확보 (CR-6)."
542
+ - type: generalized_to
543
+ target: learning
544
+ note: "standalone generalize 전이 (framework §6.2). scope 가 다른 Learning 간 이동. v1 manual only."
545
+ - type: canonicalized_to
546
+ target: principle
547
+ note: "canonicalize 전이 (framework §6.3). snapshot copy 로 Tier 3 Principle 생성."
548
+ execution_rules_ref:
549
+ data_accumulation: ".onto/principles/product-locality-principle.md §2.2"
550
+ consumption_precondition: ".onto/principles/product-locality-principle.md §2.2"
551
+ lifecycle_transition: "not wired in the current onto-mcp review runtime"
552
+ storage_derivation: "framework v1.0 §12.7 — (tier, primary_scope) + maturity 로 디렉토리 결정. 예: primary_scope=product → {product}/.onto/learnings/, primary_scope=medium → ~/.onto/mediums/{X}/learnings/"
553
+ notes:
554
+ - "framework v1.0 §8.2 에서 refine: 정의를 'promoted 검증된 cost-saver' 로 좁힘 (기존 '축적된 경험 지식' 에서 범위 축소). Experience 는 별도 entity 로 분리."
555
+ - "법칙이 아니라, 상황에 따라 유용한 정보. 있으면 좋지만 risk를 질 필요는 없는 항목."
556
+ - "v0.15.0 (2026-04-20): learning_applicability local attribute 제거 (framework §8.4 deprecate). primary_scope + secondary_scopes 가 대체. shared [scope] 제거 — framework 의 scope 는 항목당 primary 1 + secondary 다수 구조라 local 표상이 정합."
557
+
558
+ review_lens:
559
+ canonical_label: "review_lens"
560
+ korean_label: "리뷰 렌즈"
561
+ definition: "독립적 검증 관점. 다른 lens와 맥락을 공유하지 않고 자체 finding을 생산"
562
+ core_value: "이 개념이 없으면 단일 관점으로만 검증되어 놓침이 발생한다"
563
+ instances:
564
+ logic: { definition: "명제 간 모순, 전제-결론 비약, 조건 누락 검증" }
565
+ structure: { definition: "구성 요소의 완전성, 참조 연결, 구조적 대칭 검증" }
566
+ dependency:
567
+ definition: "non-hierarchical directed relations (의존·인과·사용·생산·트리거 등) 의 방향·순환·다이아몬드 구조 검증. 파일 import 그래프 같은 코드-중심 dependency 에 국한되지 않으며, 비계층적 관계 일반의 방향성·구조를 다룬다"
568
+ notes: ["UF-1 (W-A-61, 2026-04-14): lens 이름이 코드 dependency 그래프로 오독되지 않도록 umbrella scope 명시"]
569
+ semantics: { definition: "용어 정확성, 동의어 통일, 정의-사용 일치 검증" }
570
+ pragmatics: { definition: "실제 사용 시나리오 추적, 실용성 검증" }
571
+ evolution: { definition: "변경 내성, 확장성, 하위 호환성 검증" }
572
+ coverage: { definition: "개념 공간 커버리지, 누락 영역 식별" }
573
+ conciseness:
574
+ definition: "ontology-level parsimony — 중복 정의, 과잉 명세, 실질적 차이 없는 하위 분류 식별. prose brevity (문장을 짧게 쓰기) 가 아니라 개념 공간의 parsimony 이다"
575
+ notes: ["UF-2 (W-A-61, 2026-04-14): lens 이름이 prose 간결성으로 오독되지 않도록 ontology-level parsimony scope 명시"]
576
+ axiology:
577
+ definition: "목적/가치 정합성, 숨겨진 tradeoff, 이해관계자 영향 검증"
578
+ notes: ["New Perspectives proposal 책임 (productization-charter §10.2)"]
579
+ legacy_aliases:
580
+ - alias: "agent"
581
+ context: "Legacy 'agent panel' referred to what is now the 9 review lenses."
582
+ - alias: "onto_{id}"
583
+ context: "Pre-migration lens/role IDs used 'onto_' prefix. Bare IDs are canonical since 2026-04-08."
584
+
585
+ review_process:
586
+ canonical_label: "review_process"
587
+ korean_label: "리뷰 프로세스"
588
+ definition: "review entrypoint의 의도를 실행하는 프로세스. lens dispatch, synthesis, record assembly를 순차 수행한다"
589
+ core_value: "이 개념이 없으면 review의 개별 단계(lens, synthesize, record)가 운영 주체 없이 흩어져, 전체 실행 흐름과 책임 귀속을 추적할 수 없다"
590
+ relations:
591
+ - type: dispatches
592
+ target: review_lens
593
+ note: "lens를 독립 실행 단위로 호출. 병렬 dispatch, degradation 허용"
594
+ - type: dispatches
595
+ target: synthesize_stage
596
+ note: "전체 lens 결과를 통합하는 비-lens 단계. lens 완료 후 순차 실행"
597
+ - type: creates
598
+ target: experience
599
+ note: "lens 실행 중 raw 관찰 생성 (Tier 1, maturity=Experience). current onto-mcp review runtime은 ReviewRecord를 primary artifact로 만들며 learning 승격을 수행하지 않는다."
600
+ - type: consumes
601
+ target: learning
602
+ note: "consumption precondition 은 learning.execution_rules_ref.consumption_precondition 참조. promoted learning 만 소비 대상."
603
+ - type: references
604
+ target: domain_document
605
+ note: "resolution order는 domain_document.execution_rules_ref.resolution_order 참조"
606
+ - type: creates
607
+ target: review_record
608
+ note: "synthesis + record assembly를 거쳐 산출. W-A-63 entity 승격 시 produces → creates 전환 (lifecycle 관리 대상)"
609
+ execution_rules_ref:
610
+ execution_flow: ".onto/processes/review/productized-live-path.md"
611
+
612
+ govern_process:
613
+ canonical_label: "govern_process"
614
+ korean_label: "거버넌스 프로세스"
615
+ definition: "govern entrypoint의 의도를 실행하는 프로세스. 규범 변경·drift 항목을 큐로 축적하고 주체자 판정을 이벤트 로그로 기록한다"
616
+ core_value: "이 개념이 없으면 프로젝트 규범에 대한 변경 제안·drift 가 흩어져 언제 어떤 판단이 있었는지 추적 불가능해진다. 반복 재논의 비용을 막기 위한 규범 변경 관리 주체"
617
+ relations:
618
+ - type: consumes
619
+ target: drift_queue_entry
620
+ note: "decide 는 기존 queue entry 를 판정 대상으로 소비. W-C-02 drift engine 이 생성한 entry 도 동일 경로로 소비"
621
+ - type: creates
622
+ target: drift_queue_entry
623
+ note: "submit 서브커맨드가 새 entry 생성. origin=human → tag=norm_change, origin=system → tag=drift"
624
+ execution_rules_ref:
625
+ process_contract: "not wired in the current onto-mcp review runtime"
626
+ tool_surface: "future MCP govern tool after separate design"
627
+ storage_path: "not active in the current runtime"
628
+ notes:
629
+ - "W-C-01 v0 (2026-04-16): bounded minimum surface. 큐 기록만 제공. 승인 강제 차단은 W-C-02, 승급 경로·cross-project 규범은 W-C-03."
630
+ - "CLI-agent 책임 분리: CLI 는 이벤트 append + projection + 렌더링. agent 는 payload 작성 + 판정 근거 text 구성."
631
+ - "Archived legacy govern code is isolated under development-records/archive/retired-runtime-legacy-20260526/. No govern runtime path is wired in current onto-mcp."
632
+ - "승인 강제 차단 (pre-commit/CI/merge gate), 실제 diff 분석 drift probe 는 W-C-02 v1 이후."
633
+
634
+ domain_document:
635
+ canonical_label: "domain_document"
636
+ korean_label: "도메인 문서"
637
+ definition: "한 도메인의 Tier 2 reference. 기본 8 유형 (concepts, competency_qs, conciseness_rules, dependency_rules, domain_scope, extension_cases, logic_rules, structure_spec) + domain-specific custom 유형 허용 (framework v1.0 §12.3). grain: 1 file = 1 instance."
638
+ core_value: "이 개념이 없으면 검증이 도메인 맥락 없이 수행되어 실용적 판단이 불가능하다"
639
+ attributes:
640
+ shared: [lifecycle_status]
641
+ local:
642
+ doc_type:
643
+ definition: "domain document 의 유형. framework §12.3 의 기본 8 유형 (closed base set) + domain-specific custom 유형 (open extension) 의 open-closed enum."
644
+ values: ["concepts", "competency_qs", "conciseness_rules", "dependency_rules", "domain_scope", "extension_cases", "logic_rules", "structure_spec"]
645
+ extension_pattern: "custom:{type_name}"
646
+ extension_rule: "values 외의 유형 필요 시 'custom:{type_name}' 형식. type_name 은 snake_case, 한 domain 내 unique. 기계 검증은 (a) values membership OR (b) extension_pattern regex 매칭 중 하나 만족 시 accept."
647
+ relations:
648
+ - type: belongs_to
649
+ target: domain
650
+ cardinality: "many-to-one"
651
+ note: "각 domain_document 는 정확히 한 domain 에 귀속. domain.contains 의 inverse."
652
+ - type: canonicalized_to
653
+ target: principle
654
+ note: "Tier 2 → Tier 3 승격. snapshot copy (framework §6.3)."
655
+ execution_rules_ref:
656
+ resolution_order: ".onto/principles/product-locality-principle.md §2.3"
657
+ lifecycle_transition: "not wired in the current onto-mcp review runtime"
658
+ notes:
659
+ - "도메인 귀속은 파일 경로 규약 ({domain}/ 디렉토리) 에 의해 결정됨."
660
+ - "framework v1.0 §8.2 refine (2026-04-20, v0.15.0): grain 명확화 (1 file = 1 instance). doc_type local attribute 추가. belongs_to domain 및 canonicalized_to principle relation 명시. shared [scope] 제거 — primary_scope 는 belongs_to domain 으로 implicit, framework scope 는 domain 으로 고정."
661
+ - "v0.19.0 (2026-04-20, UF-semantics 해소): doc_type 에 `extension_pattern` + `extension_rule` 신설 — framework §12.3 이 명시한 `custom:{type_name}` 개방 규칙을 schema 에 드러냄. 기존 definition prose 는 'values 닫힘 + 자유 추가' 로 내부 모순이었음. re-review 20260420-b74e947f unique finding semantics 해소."
662
+
663
+ review_record:
664
+ canonical_label: "ReviewRecord"
665
+ korean_label: "리뷰 기록"
666
+ definition: "review 활동의 canonical 산출물. 검증 결과의 구조화된 계보(lineage) 기록. 이후 learning 생성 및 governance의 입력"
667
+ core_value: "이 개념이 없으면 검증 결과가 비구조적으로 흩어져, 학습 축적과 거버넌스 추적이 불가능하다"
668
+ attributes:
669
+ shared: [lifecycle_status]
670
+ execution_rules_ref:
671
+ record_contract: ".onto/processes/review/record-contract.md"
672
+ lifecycle_transition: "review_process 완료 시 seed → promote pipeline 진입"
673
+ notes:
674
+ - "W-A-63에서 term → entity 승격. lifecycle_status 부여."
675
+ - "review_process.relations의 produces → creates 전환 완료."
676
+ legacy_aliases:
677
+ - alias: "review_record_term"
678
+ context: "Pre-W-A-63 term entry. Entity 승격 전의 terms section 항목."
679
+
680
+ principle:
681
+ canonical_label: "principle"
682
+ korean_label: "규범"
683
+ definition: >
684
+ 규범적 결정으로 확정된 Tier 3 의무 obligation (framework v1.0 §3.3).
685
+ 모든 onto 활동이 준수해야 할 제약. canonicalize 경로로만 편집 가능 (snapshot copy).
686
+ 본문은 .onto/principles/ (rank 2-4) 와 .onto/processes/ (rank 5) 에 존재한다.
687
+ .onto/authority/core-lexicon.yaml (rank 1) 은 principle entity 정의만 담고 본문은 담지 않는다.
688
+ promoted term 과는 별개 층 — promoted term 은 lexicon inventory (개념 식별) 이고,
689
+ principle 은 normative commitment (행동 규범) 이다.
690
+ core_value: >
691
+ 이 개념이 없으면 '준수해야 할 규범' 과 '참조할 개념' 이 구별되지 않아 .onto/authority/ 가 behaviour policy 도
692
+ 담도록 팽창한다. rank 1 (개념 SSOT) 과 rank 2 (개발 원칙) 의 CLAUDE.md 위계 구분이 흐려져 drift 누적.
693
+ attributes:
694
+ shared: [lifecycle_status]
695
+ local:
696
+ primary_scope:
697
+ definition: "한 principle 항목의 적용 범위 축 값. 저장 디렉토리 결정 (framework §5, §12.7)."
698
+ values: ["product", "medium", "domain", "methodology"]
699
+ secondary_scopes:
700
+ definition: "보조 적용 범위. 비어있을 수 있음."
701
+ type: "array of {scope_type: scope_value}"
702
+ source_commit_sha:
703
+ definition: "canonicalize 시점 source 항목의 commit SHA. Tier 1·2 → Tier 3 snapshot 의 historical anchor (framework §6.3)."
704
+ type: "string"
705
+ source_ref:
706
+ definition: "source 항목 (learning / ontology / medium_reference / domain_document) 의 식별자. historical pointer, not live reference."
707
+ type: "string"
708
+ enforcement_state:
709
+ definition: "principle 의 강제력 상태. 선언만 된 상태 vs 실제 강제 (pre-commit/CI/merge gate) 상태 구별 (Next-IA-3)."
710
+ values:
711
+ declared_only: "본문에 선언됐으나 실제 기계적 강제는 없음. govern 경로 승인만 필요한 상태."
712
+ enforceable: "drift engine · pre-commit · CI gate 중 하나 이상이 기계적으로 차단하는 상태 (framework §11.3 Stage 2 설계 대상)."
713
+ relations:
714
+ - type: canonicalized_from
715
+ target: [learning, ontology, medium_reference, domain_document]
716
+ cardinality: "many-to-one"
717
+ semantics: "snapshot_reference (historical, not live)"
718
+ note: "canonicalize 전이 (framework §6.3). Tier 1 learning · Tier 2 ontology/medium_reference/domain_document 중 하나를 source 로 받아 snapshot copy. R2-IA-4 — target 을 4 종 전체로 확장."
719
+ execution_rules_ref:
720
+ authoring_path: "본문 배치는 .onto/principles/*.md (rank 2-4) 와 .onto/processes/*.md (rank 5). 본문 수정은 Principal 승인 또는 W-ID 기반 authoring. Tier 3 canonicalize 경로 (framework §6.3)."
721
+ lifecycle_transition: "principle entity 는 shared_attributes.lifecycle_status 를 보유 (seed→candidate→provisional→promoted→deprecated→retired). 기존에 등재된 instance (본 commit 시점의 .onto/principles/*, .onto/processes/*) 는 v0.15.0 기준 promoted 로 간주. deprecated/retired 전이의 canonical owner 는 M-08 refresh protocol (development-records/plan/20260413-refresh-protocol.md)."
722
+ consumption_rule: "모든 onto 활동이 실행 전 관련 principle 을 ref. 위반 시 활동이 거부되거나 Principal 승인 요구."
723
+ govern_zone: "framework v1.0 §11.1 zone matrix — 모든 T3 cell 은 govern 강제 zone."
724
+ notes:
725
+ - "W-D-05 (2026-04-16) 신설. lifecycle 통합 재정의 5 sub-task 중 S4."
726
+ - "v0.15.0 (2026-04-20, framework v1.0 sync): attributes 확장 (primary_scope + secondary_scopes + source_commit_sha + source_ref + enforcement_state). canonicalized_from relation 신설 — 기존 'references learning' 을 더 정밀한 canonicalize snapshot 의미로 대체. target 을 Tier 1·2 의 4 entity (learning, ontology, medium_reference, domain_document) 로 확장."
727
+ - "본 entity 는 principle 의 정의와 principle vs promoted term 구별 규칙만 담는다. 기존 promoted term (activity_enum, axis_enum 등) 의 principle-tier 재분류는 별도 W-ID (scope creep 방지)."
728
+ - "instance 본문 (각 `.onto/principles/` 파일, 각 `.onto/processes/` 파일) 은 파일 시스템 배치로 식별. lexicon 은 이들을 개별 entity 로 등재하지 않음 (domain_document, learning 패턴과 동일)."
729
+ - "구별 규칙 (principle vs promoted term, Q2 Fix): principle 은 execution_rules (무엇을 해야 하는가) 를 포함. term 은 definition (무엇인가) 만 포함. execution_rules_ref 보유 여부가 1차 구분 단서."
730
+
731
+ principal:
732
+ canonical_label: "principal"
733
+ korean_label: "주체자"
734
+ definition: "onto에 목적과 의도를 부여하고, 프로세스 결과의 가치를 판단하는 최종 권한 주체. entrypoint를 호출하여 실행을 개시한다"
735
+ core_value: "이 개념이 없으면 onto의 실행 체인에 목적 부여자가 부재하여, 프로세스 결과의 가치 판단과 승인 권한이 귀속되지 않는다"
736
+ relations:
737
+ - type: dispatches
738
+ target: entrypoint
739
+ note: "주체자가 entrypoint를 호출하여 onto 실행 체인을 개시한다. W-A-70 entity 승격 시 추가."
740
+ execution_rules_ref:
741
+ approval_authority: ".onto/processes/ 내 Principal 승인 요구 사항"
742
+ notes:
743
+ - "W-A-70에서 term → entity 승격. entrypoint와의 dispatches relation으로 실행 체인 추적 완성."
744
+ - "§1.1 주체자 core concept 정합."
745
+ legacy_aliases:
746
+ - alias: "designer"
747
+ context: "Retired design-context role name. Principal이 design entrypoint를 호출할 때 수행하던 역할의 구 명칭."
748
+
749
+ entrypoint:
750
+ canonical_label: "entrypoint"
751
+ korean_label: "진입점"
752
+ translation_mode: "preserved"
753
+ definition: "주체자(principal)가 onto에 진입하는 최상위 의도"
754
+ core_value: "이 개념이 없으면 주체자의 의도와 시스템 프로세스 사이에 해석 공백이 생긴다"
755
+ notes:
756
+ - >
757
+ 현재 review instance만 dispatch target relation을 보유한다.
758
+ 나머지 instance는 자체 notes에 deferred 상태를 명시하며, 이는 모델링 누락이 아니라 의도적 지연이다.
759
+ 각 instance의 Stage 3 dispatch target relation 도입은 `project_principal_stage3_backlog.md` 참조.
760
+ instances:
761
+ review:
762
+ definition: "9-lens 구조로 검증"
763
+ relations:
764
+ - { type: dispatches, target: review_process }
765
+ reconstruct:
766
+ definition: "product로부터 ontology를 역설계하여 구축"
767
+ notes:
768
+ - "dispatch target: deferred to Stage 3 (intentional, not modeling omission)"
769
+ - "W-A-77 rename (2026-04-14): build → reconstruct. §1.2 정본 정렬 완료. legacy alias는 activity_enum.legacy_aliases에 보존."
770
+ ask:
771
+ definition: "특정 관점에서 질의에 답변"
772
+ notes:
773
+ - "dispatch target: deferred to Stage 3 (intentional, not modeling omission)"
774
+ - "activity_enum cross-ref (v0.6.1): `ask` 는 activity_enum.legacy_aliases 에서 retire_kind=retired, canonical_replacement=null (§1.2 폐기 선언). 본 instance 는 Stage 3 에서 제거 예정 (BL-121 review 계열 이동/제거 집행 이후). 현재는 entrypoint.instances 고정 scope 보호."
775
+ learn:
776
+ definition: "학습 축적·승격·큐레이션·감사"
777
+ notes: ["dispatch target: deferred to Stage 3 (intentional, not modeling omission)"]
778
+ govern:
779
+ definition: "규범 변경 제안과 문서-코드 drift 감지 항목을 큐로 관리하고, 주체자 판정을 이벤트로 기록"
780
+ relations:
781
+ - { type: dispatches, target: govern_process }
782
+ notes:
783
+ - "v0.12.0 (W-C-01, 2026-04-16): dispatch target relation 도입. 기존 'deferred to Stage 3' 해소."
784
+ design:
785
+ definition: "대상을 분석하고 설계 문서를 생성"
786
+ notes: ["dispatch target: deferred to Stage 3 (intentional, not modeling omission)"]
787
+
788
+ LlmCompatibleProxy:
789
+ canonical_label: "LlmCompatibleProxy"
790
+ korean_label: "LLM 호환 프록시"
791
+ definition: "공용 LLM provider(OpenAI 등)의 wire-format을 유지한 채 백엔드 모델·라우팅·과금을 치환하는 중간 계층. onto는 이를 별도 provider 축으로 인식한다"
792
+ core_value: "이 개념이 없으면 로컬 모델·자체 호스팅·비용 관측·벤더 다중화 요구를 openai provider와 구분 없이 혼입해, 과금 경로·인증 모드·모델 네임스페이스가 섞인다"
793
+ attributes:
794
+ shared: []
795
+ local:
796
+ wire_format:
797
+ definition: "프록시가 준수하는 상위 공용 API의 와이어 포맷"
798
+ values: ["openai", "anthropic"]
799
+ base_url_resolution:
800
+ definition: "엔드포인트 결정 경로"
801
+ values: ["cli_flag", "env", "project_config", "onto_home_config"]
802
+ execution_rules_ref:
803
+ provider_resolution: "src/core-runtime/llm/llm-caller.ts:resolveLlmProviderConfig"
804
+ config_schema: "src/core-runtime/discovery/settings-chain.ts:OntoConfig"
805
+ notes:
806
+ - "구현 인스턴스 예: LM Studio local endpoint (openai wire-format). 벤더 이름은 lexicon에 직접 넣지 않는다"
807
+ - "codex CLI OAuth 경로와 구별됨 — OAuth 토큰은 chatgpt.com 백엔드 전용이라 프록시 wire-format으로 접근 불가. Codex worker 실행이 필요하며 이는 LlmBillingMode=subscription 경로로 별도 분류된다"
808
+
809
+ LlmBillingMode:
810
+ canonical_label: "LlmBillingMode"
811
+ korean_label: "LLM 과금 모드"
812
+ definition: "provider 호출당 한계비용 구조의 분류. 구독제·토큰당 과금·variable 등 billing 속성 자체만 다룸. 호출 경로의 선호 순위는 이 개념이 아니라 resolver 정책 층에서 관리된다."
813
+ core_value: "이 개념이 없으면 provider 목록이 단순 열거로만 남아 '구독제와 per-token 과금의 비용 구조가 왜 다른지'가 코드에서만 설명되고 개념 공간에서 사라진다. 과금 특성을 rank-1에 박제해 두면 운영·감사·회계가 일관된 용어로 논의 가능."
814
+ attributes:
815
+ shared: []
816
+ local:
817
+ mode:
818
+ definition: "과금 방식"
819
+ values:
820
+ subscription: "사전 정액제. 호출당 한계비용이 0에 수렴 (rate limit까지). 예: codex CLI의 chatgpt OAuth"
821
+ per_token: "입출력 토큰 수 기반 과금. 호출량과 비용이 선형. 예: Anthropic API, OpenAI API"
822
+ variable: "경로별로 0 또는 per-token일 수 있음. 로컬 엔드포인트 뒤의 실제 backend가 외부 비용을 만들 수 있을 때 사용"
823
+ # cost_order_rank removed (2026-04-15): ranking은 사용자 상황(보유 구독·API
824
+ # 예산·context 여유·로컬 하드웨어 등) 의존적이므로 authority rank-1에 고정하지
825
+ # 않는다. 기본 정책(stay-in-host 등)은 resolver 정책 층이 제공하고, 사용자가
826
+ # `api_provider` config나 `--codex` 같은 명시적 override로 조정한다.
827
+ # 근거: 20260415T1700-execution-realization-priority-design.md D7.
828
+ execution_rules_ref:
829
+ classification_consumer: "src/core-runtime/llm/llm-caller.ts (provider 해소 정책에서 billing mode 분류를 참조)"
830
+ design_record: "archived legacy learning rules (not current runtime authority)"
831
+ notes:
832
+ - "이 entry는 billing 속성 분류만 담는다. Provider 해소·선호 순서는 resolver 정책 층(llm-caller.ts resolveProvider)이 관리하며 사용자 상황에 따라 달라진다."
833
+ - "local provider를 variable로 분류하는 이유: 로컬 endpoint 뒤의 실제 backend가 로컬 모델이면 0, 유료 API backend면 per-token일 수 있다. 감사 관점에서는 보수적으로 per-token 신호를 기록(LlmCallResult.declared_billing_mode)"
834
+
835
+ LlmAgentSpawnRealization:
836
+ canonical_label: "LlmAgentSpawnRealization"
837
+ korean_label: "LLM 에이전트 생성 실현"
838
+ definition: "review 작업에서 lens reasoning unit을 어떤 실행 경로로 호출하는가를 규정하는 축. 현재 onto-mcp canonical route는 worker_codex, direct_call_provider, mock 세 instance로 닫는다."
839
+ core_value: "이 개념이 없으면 execution_realization과 provider/auth 설정이 단순 문자열 조합으로 흩어져, 어떤 경로가 독립 context를 제공하고 어떤 경로가 direct HTTP 호출인지 판단하기 어렵다."
840
+ attributes:
841
+ shared: []
842
+ local:
843
+ orchestration_locus:
844
+ definition: "lens dispatch와 unit 실행을 담당하는 주체의 소재"
845
+ values:
846
+ runtime_main: "TS runtime main path가 session과 dispatch를 준비"
847
+ external_worker: "외부 worker가 자체 orchestration"
848
+ direct_runtime_call: "TS runtime이 provider API/local endpoint를 직접 호출"
849
+ context_cost:
850
+ definition: "메인 세션 context 소비 특성"
851
+ values:
852
+ independent: "orchestration·lens reasoning 모두 메인 외부 context"
853
+ bounded_direct_call: "runtime이 packet text를 provider 호출로 전달하며 artifact boundary로 context를 제한"
854
+ billing_source:
855
+ definition: "실행 비용이 청구되는 자원 rail (누가·어떤 계정이 지불하느냐). 과금 방식(subscription vs per-token 등) 자체의 분류는 별도 개념 `LlmBillingMode`가 담당 — 이 필드는 rail 식별만 한다."
856
+ values:
857
+ chatgpt_account: "~/.codex/auth.json OAuth mode 경유 chatgpt 계정이 지불"
858
+ api_provider_account: "OPENAI/ANTHROPIC/XAI 등 provider API key 계정이 지불"
859
+ local_or_self_hosted: "로컬 모델 또는 자체 호스팅 (외부 지불 없음)"
860
+ instances:
861
+ worker_codex:
862
+ execution_realization: "worker"
863
+ host_runtime: "codex"
864
+ orchestration_locus: "external_worker"
865
+ context_cost: "independent"
866
+ billing_source: "chatgpt_account"
867
+ notes: "`llm.auth=oauth` + `llm.provider=openai` 경로. codex CLI가 chatgpt.com 백엔드 사용. 과금 모드 분류는 LlmBillingMode.subscription 참조."
868
+ direct_call_provider:
869
+ execution_realization: "direct-call"
870
+ host_runtime: "openai | anthropic | grok | lmstudio"
871
+ orchestration_locus: "direct_runtime_call"
872
+ context_cost: "bounded_direct_call"
873
+ billing_source: "api_provider_account | local_or_self_hosted"
874
+ notes: "`llm.auth=api_key` 또는 `llm.auth=local` 경로. Provider/model/base_url은 settings switcher가 해소한다."
875
+ mock:
876
+ execution_realization: "direct-call"
877
+ host_runtime: "standalone"
878
+ orchestration_locus: "direct_runtime_call"
879
+ context_cost: "bounded_direct_call"
880
+ billing_source: "local_or_self_hosted"
881
+ notes: "테스트 전용 deterministic executor."
882
+ execution_rules_ref:
883
+ resolution_profile: "src/core-runtime/cli/review-invoke.ts:resolveExecutionProfile"
884
+ resolution_handoff: "src/core-runtime/cli/review-invoke.ts:resolveExecutionRealizationHandoff"
885
+ codex_executor: "src/core-runtime/cli/codex-review-unit-executor.ts"
886
+ direct_call_executor: "src/core-runtime/cli/inline-http-review-unit-executor.ts"
887
+ design_record: "development-records/plan/20260415T1700-execution-realization-priority-design.md"
888
+ notes:
889
+ - "Priority(선호 순서)는 사용자 상황 의존적이므로 이 entry에 고정하지 않는다. Override 수단: `.onto/settings.json` 의 `review.execution`, `llm` switcher."
890
+ - "Provider resolution 축(LlmBillingMode, LlmCompatibleProxy)과 직교 — background task의 단일-턴 API call 경로와 review의 agentic 실행 경로는 서로 영향 주지 않음"
891
+ - "Local model access is represented by `llm.auth: local` + `llm.provider: lmstudio`. Review orchestration remains selected by the `review:` block."
892
+
893
+ # -------------------------------------------------------------------------
894
+ # Framework v1.0 entities (§8.1, §8.6) — scope axis + Tier 1/2 types
895
+ # Added in lexicon v0.15.0 (2026-04-20) per
896
+ # development-records/evolve/20260419-knowledge-framework.md.
897
+ # -------------------------------------------------------------------------
898
+
899
+ product:
900
+ canonical_label: "product"
901
+ korean_label: "프로덕트"
902
+ definition: "Principal 이 시간·비용 투입해 만든 작동 실체. onto 작업의 일차 단위 (framework v1.0 §2.1)."
903
+ core_value: "이 개념이 없으면 '무엇에 속한 지식인가' 의 소유 경계가 모호해지고, product-local 학습·규범·ontology 의 저장 boundary 가 성립하지 않는다."
904
+ attributes:
905
+ shared: []
906
+ # local attributes 없음 (v0.19.0, 2026-04-20).
907
+ # 기존 `local.mediums` 는 implemented_with relation 과 중복 — single-owner 원칙에 따라 제거.
908
+ # "한 product 의 medium 목록" 은 implemented_with.yaml manifest + product.implemented_with relation 으로 derived.
909
+ relations:
910
+ - type: implemented_with
911
+ target: medium
912
+ cardinality: "many-to-many"
913
+ note: "한 product 가 여러 medium 으로 구현 가능. framework §7.1 m:n relation + single primary + multi-axis frontmatter. implemented_with.yaml manifest 가 원천."
914
+ - type: belongs_to
915
+ target: domain
916
+ cardinality: "many-to-one"
917
+ notes:
918
+ - "framework v1.0 §2.1 에서 entity 격상. onto-direction §1 의 'product' prose 정의와 정합."
919
+ - "legacy 어휘 'project' (전역) 는 본 entity 로 통합 — framework §8.5 retire."
920
+ - "v0.18.0 (2026-04-20, framework v1.0.1 sync): `described_by` relation 제거 — `ontology.describes` 가 canonical owner (single owner 원칙). 소비자는 ontology.describes 에서 derived 읽기."
921
+ - "v0.19.0 (2026-04-20, UF-C1 해소): `local.mediums` attribute 제거 — `implemented_with → medium` relation 과 동일 정보를 중복 표상. single-owner 원칙을 attribute 층으로 확장. re-review 20260420-b74e947f unique finding conciseness C1 해소."
922
+
923
+ experience:
924
+ canonical_label: "experience"
925
+ korean_label: "경험"
926
+ definition: "onto 활동에서 자동 수집된 raw 관찰. Tier 1, maturity=Experience. panel verdict 이전 상태 (framework v1.0 §3.1)."
927
+ core_value: "이 개념이 없으면 review/reconstruct 과정의 중간 관찰이 기록되지 못해 cost-saver 로 승격할 후보 자체가 사라진다."
928
+ attributes:
929
+ shared: [lifecycle_status]
930
+ local:
931
+ primary_scope:
932
+ definition: "한 항목의 적용 범위 축 값 (framework §2, primary)."
933
+ values: ["product", "medium", "domain", "methodology"]
934
+ secondary_scopes:
935
+ definition: "보조 적용 범위. 비어있을 수 있음. framework §1 REC-5 (m:n 적용 범위)."
936
+ type: "array of {scope_type: scope_value}"
937
+ relations:
938
+ - type: promoted_to
939
+ target: learning
940
+ cardinality: "many-to-one"
941
+ note: "promote 또는 promote_and_generalize 전이의 도착지 (framework §6.1, §6.4)."
942
+ execution_rules_ref:
943
+ storage_derivation: "framework v1.0 §12.7 — (tier, primary_scope) + maturity 로 디렉토리 결정. 예: primary_scope=product → {product}/.onto/experiences/"
944
+ notes:
945
+ - "framework v1.0 §3.1 Tier 1 Experience cell 의 lexicon 표상. Tier 1 한정으로 성숙도 축 (Experience/Learning) 분화."
946
+
947
+ medium:
948
+ canonical_label: "medium"
949
+ korean_label: "구현 수단"
950
+ definition: "product 의 구현 수단 (excel, claude-code-skill, cli 등). scope axis 의 값으로 쓰일 수 있는 cross-product frame (framework v1.0 §2.2)."
951
+ core_value: "이 개념이 없으면 같은 medium 에서 반복되는 패턴·pitfall 을 product 별로 재발견해야 하고, medium 차원의 cost-saver 를 축적할 좌표가 없다."
952
+ # relations 블록 없음 (v0.18.0, framework v1.0.1 sync). product.implemented_with 가 canonical owner.
953
+ # "어느 medium 이 어느 product 를 구현하는가" 는 product.implemented_with 에서 derived 읽기.
954
+ notes:
955
+ - "framework v1.0 §2.2 에서 entity 격상. 기존 어휘 'artifact' 의 'means' 용법은 본 entity 로 rename — framework §8.5 retire. 'artifact' 의 '산출물 instance' 의미 (produces, review_artifact, provenance) 는 보존."
956
+ - "medium 의 Tier 2 reference doc 묶음은 medium_reference entity 가 소유. example: /excel-workbook-editing skill."
957
+ - "v0.18.0 (2026-04-20, framework v1.0.1 sync): 기존 `realizes → product` relation 제거 — 순수 inverse 이므로 product.implemented_with 가 canonical owner. 이 entity 는 현재 outbound relation 없음 (scope axis label 역할 + Tier 2 연결은 medium_reference 쪽)."
958
+
959
+ medium_reference:
960
+ canonical_label: "medium_reference"
961
+ korean_label: "medium 참조 문서"
962
+ definition: "한 medium 의 Tier 2 reference doc 묶음. 기본 6 유형 (concepts, patterns, conventions, pitfalls, tooling, validation) 또는 medium-specific 자유 구성 (framework v1.0 §4.2 cell 6, R2-IA-2 신설)."
963
+ core_value: "이 개념이 없으면 medium 차원의 서술적 guardrail 과 pitfall 을 체계적으로 적재할 좌표가 없다."
964
+ attributes:
965
+ shared: [lifecycle_status]
966
+ relations:
967
+ - type: references
968
+ target: medium
969
+ cardinality: "many-to-one"
970
+ - type: canonicalized_to
971
+ target: principle
972
+ note: "Tier 2 → Tier 3 승격. snapshot copy (framework §6.3 canonicalize)."
973
+ execution_rules_ref:
974
+ lifecycle_transition_seat:
975
+ transition_kind: "medium_norm_update"
976
+ state: "definition_only"
977
+ path: null
978
+ note: "framework §6.6 전이 (Tier 1 medium Learning → Tier 2 medium reference 갱신) 의 실행 좌표. Not wired in the current onto-mcp review runtime."
979
+ notes:
980
+ - "framework v1.0 §12.4 에서 기본 6 유형 정의. medium-specific 유형 추가 허용 (예: excel 의 formula_audit). domain_document 보다 자유도 높음."
981
+ - "v0.19.0 (2026-04-20, UF-evolution 해소): medium_norm_update transition 의 execution_rules_ref.lifecycle_transition_seat 예약 — transition_kind enum 에 정의된 이름에 대응하는 target entity 좌표 확보. re-review 20260420-b74e947f unique finding evolution 해소."
982
+
983
+ domain:
984
+ canonical_label: "domain"
985
+ korean_label: "도메인"
986
+ translation_mode: "preserved"
987
+ definition: "product 가 속한 분야 frame (software-engineering, ui-design 등). scope axis 의 값으로 쓰일 수 있는 cross-product frame (framework v1.0 §2.3)."
988
+ core_value: "이 개념이 없으면 분야 차원에서 누적되는 검증 기준·패턴·pitfall 이 product-local 에 묻혀 재사용 불가해진다."
989
+ # relations 블록 없음 (v0.18.0, framework v1.0.1 sync). domain_document.belongs_to 가 canonical owner.
990
+ # "domain 에 어떤 domain_document 들이 속하는가" 는 domain_document.belongs_to 에서 derived 읽기.
991
+ notes:
992
+ - "framework v1.0 §2.3 에서 entity 격상. 기존 shared_attributes.scope.values.domain 은 본 entity 의 scope label 로서의 참조."
993
+ - "v0.18.0 (2026-04-20, framework v1.0.1 sync): 기존 `contains → domain_document` relation 제거 — 순수 inverse 이므로 domain_document.belongs_to 가 canonical owner."
994
+
995
+ methodology:
996
+ canonical_label: "methodology"
997
+ korean_label: "방법론"
998
+ definition: "cross-everything 지식의 귀속 frame. product/medium/domain 경계를 넘어 항상 유효한 지식의 scope 값. v1 instance 0 (definition only, framework v1.0 §2.4 REC-1)."
999
+ core_value: "이 개념이 없으면 특정 scope 로 귀속 불가한 매우 일반적 지식 (예: review 9-lens taxonomy 자체) 의 좌표가 미정이 된다."
1000
+ attributes:
1001
+ shared: [lifecycle_status]
1002
+ notes:
1003
+ - "v1 은 instance 0 (definition only). 첫 instance 발생 시 framework §6 generalize 경로 재평가 (framework §10.3 deferred)."
1004
+ - "legacy scope value 'user' 의 의미는 본 entity ('methodology') 로 rename 됨 — framework §8.4 deprecate."
1005
+ - "compound verb (promote_and_generalize) 의 target=methodology 는 v1 enum 에서 미정의 — methodology Learning 직접 생성 금지 (framework §6.4)."
1006
+
1007
+ ontology:
1008
+ canonical_label: "ontology"
1009
+ korean_label: "온톨로지"
1010
+ translation_mode: "preserved"
1011
+ definition: "한 product 의 개념·실체·관계 망. onto-direction §1 prose 를 lexicon entity 로 격상. scope=product 한정, Tier 2 (framework v1.0 §8.2)."
1012
+ core_value: "이 개념이 없으면 product-local 개념 체계가 분산된 문서·코드에만 존재하고, 중앙 reference 로 canonicalize 할 SSOT 가 없다."
1013
+ attributes:
1014
+ shared: [lifecycle_status]
1015
+ relations:
1016
+ - type: describes
1017
+ target: product
1018
+ cardinality: "many-to-one"
1019
+ - type: canonicalized_to
1020
+ target: principle
1021
+ note: "Tier 2 → Tier 3 승격. Principal 직접만 (framework §6.3)."
1022
+ execution_rules_ref:
1023
+ lifecycle_transition_seat:
1024
+ transition_kind: "ontology_update"
1025
+ state: "definition_only"
1026
+ path: null
1027
+ note: "framework §6.6 전이 (Tier 1 product Learning → Tier 2 ontology 갱신) 의 실행 좌표. v1 은 definition only. 본 lexicon 자체가 onto product 의 primary ontology 이므로, activation 설계 시 lexicon 편집 governance 와 연동 고려 필요."
1028
+ notes:
1029
+ - "framework v1.0 §8.2 에서 entity 격상. 본 lexicon (.onto/authority/core-lexicon.yaml) 자체가 onto repo product 의 primary ontology instance."
1030
+ - "v0.19.0 (2026-04-20, UF-evolution 해소): ontology_update transition 의 execution_rules_ref.lifecycle_transition_seat 예약. medium_reference 와 대칭 구조로 확장 anchor 확보."
1031
+
1032
+ # ---------------------------------------------------------------------------
1033
+ # Terms
1034
+ # ---------------------------------------------------------------------------
1035
+
1036
+ terms:
1037
+ - term_id: "invocation_interpretation"
1038
+ canonical_label: "InvocationInterpretation"
1039
+ korean_label: "호출 해석"
1040
+ axis: "invocation_phase"
1041
+ term_status: "active"
1042
+ definition: "LLM-owned phase that interprets natural-language user input into entrypoint, target candidates, intent, and ambiguity."
1043
+ - term_id: "invocation_binding"
1044
+ canonical_label: "InvocationBinding"
1045
+ korean_label: "호출 고정"
1046
+ axis: "invocation_phase"
1047
+ term_status: "active"
1048
+ definition: "Runtime-owned deterministic phase that binds interpreted input into canonical requests and concrete refs."
1049
+ - term_id: "structural_role"
1050
+ canonical_label: "structural_role"
1051
+ korean_label: "구조 역할"
1052
+ axis: "structural_role"
1053
+ term_status: "active"
1054
+ definition: "Structural classification of an asset independent of its scope."
1055
+ allowed_values:
1056
+ - "ontology_seed"
1057
+ - "learning_prior"
1058
+ - "canonical_knowledge"
1059
+ notes:
1060
+ - "Referenced by ontology-as-code-naming-charter.md §2.3."
1061
+ - term_id: "use_role"
1062
+ canonical_label: "use_role"
1063
+ korean_label: "사용 역할"
1064
+ axis: "use_role"
1065
+ term_status: "active"
1066
+ definition: "Functional role in reasoning or runtime usage."
1067
+ allowed_values:
1068
+ - "scaffold"
1069
+ - "heuristic"
1070
+ - "constraint"
1071
+ notes:
1072
+ - "Referenced by ontology-as-code-naming-charter.md §2.4, §3."
1073
+ - "Orthogonal to learning_role (guardrail/foundation/convention). Value sets are entirely different."
1074
+ - term_id: "proposal_shape"
1075
+ canonical_label: "proposal_shape"
1076
+ korean_label: "제안 형식"
1077
+ axis: "proposal_shape"
1078
+ term_status: "active"
1079
+ definition: "Authoring-stage shape of a candidate proposal."
1080
+ allowed_values:
1081
+ - "defect_pattern"
1082
+ - "lens_observation"
1083
+ - "certainty_candidate"
1084
+ notes:
1085
+ - "Referenced by ontology-as-code-naming-charter.md §2.6."
1086
+ # review_record: W-A-63에서 entity로 승격됨. entities.review_record 참조.
1087
+ - term_id: "review_target_scope"
1088
+ canonical_label: "review_target_scope"
1089
+ korean_label: "검토 대상 범위"
1090
+ axis: "review_input"
1091
+ term_status: "active"
1092
+ definition: "Resolved review target as a scope or bundle, not necessarily a single file path."
1093
+ - term_id: "target_material_kind"
1094
+ canonical_label: "TargetMaterialKind"
1095
+ korean_label: "대상물 형식"
1096
+ axis: "runtime_input"
1097
+ term_status: "active"
1098
+ definition: "Runtime-visible classification of the target material form that determines observation, materialization, adapter, and validation strategy across review, reconstruct, and evolve."
1099
+ allowed_values:
1100
+ - "code"
1101
+ - "spreadsheet"
1102
+ - "document"
1103
+ - "database"
1104
+ - "mixed"
1105
+ - "unknown"
1106
+ notes:
1107
+ - "Orthogonal to domain: domain says what the target is about; target_material_kind says how the target must be read or validated."
1108
+ - "Orthogonal to medium: medium is a cross-product reference and learning frame such as excel or cli; target_material_kind is a per-run target classification."
1109
+ - "Orthogonal to target_input_kind: target_input_kind says how the target entered the runtime, such as single_file or git_diff; target_material_kind says what kind of material is being handled."
1110
+ - "Do not use review context `source_kind` for this axis. In review artifacts, source_kind identifies context-source artifacts such as materialized_input or review_target_profile."
1111
+ - term_id: "context_isolated_reasoning_unit"
1112
+ canonical_label: "ContextIsolatedReasoningUnit"
1113
+ korean_label: "맥락 격리 추론 단위"
1114
+ axis: "execution_unit"
1115
+ term_status: "active"
1116
+ definition: "A reasoning unit that does not share main-context state, consumes contract-bounded input, and produces contract-bounded output independently."
1117
+ legacy_aliases:
1118
+ - alias: "worker"
1119
+ context: "Prototype files sometimes use 'worker' to mean any context-isolated unit, not just the execution_realization value."
1120
+ notes:
1121
+ - "Typical realizations include an Agent Teams teammate, a worker, an MCP-isolated LLM, or an external model worker."
1122
+ - "The canonical concept is the context-isolated reasoning property, not a specific host implementation."
1123
+ - term_id: "review_execution_profile"
1124
+ canonical_label: "ReviewExecutionProfile"
1125
+ korean_label: "리뷰 실행 설정"
1126
+ axis: "execution_profile"
1127
+ term_status: "active"
1128
+ definition: "Runtime-resolved review execution descriptor derived from `.onto/settings.json` `review.execution`, the LLM switcher, and host capability signals."
1129
+ allowed_modes:
1130
+ - "main-workers"
1131
+ - "nested-workers"
1132
+ seats:
1133
+ - "main"
1134
+ - "worker"
1135
+ notes:
1136
+ - "`main-workers`: main teamlead, worker lens units."
1137
+ - "`nested-workers`: worker teamlead, nested worker lens units."
1138
+ - "Type source: `src/core-runtime/review/review-execution-profile.ts`."
1139
+ - term_id: "review_execution_settings"
1140
+ canonical_label: "ReviewExecutionSettings"
1141
+ korean_label: "리뷰 실행 설정 파일 구조"
1142
+ axis: "execution_profile"
1143
+ term_status: "active"
1144
+ definition: "Project/user settings shape under `.onto/settings.json` `review.execution`."
1145
+ allowed_keys:
1146
+ - "mode"
1147
+ - "teamlead.seat"
1148
+ - "teamlead.llm"
1149
+ - "lens.seat"
1150
+ - "lens.llm"
1151
+ - "synthesize.seat"
1152
+ - "synthesize.llm"
1153
+ - "deliberation"
1154
+ notes:
1155
+ - "Type source: `src/core-runtime/discovery/settings-chain.ts`."
1156
+ - "Unknown keys fail settings loading."
1157
+ - "`deliberation` is `controlled-lens-deliberation`."
1158
+ - "`deliberation` selects a process mode; it is not an actor invocation profile."
1159
+ - "In `nested-workers`, `teamlead.llm` and `lens.llm` are independent actor seats."
1160
+ - "`synthesize.llm` is an independent post-deliberation actor seat."
1161
+ - "`llm: inherit` means the actor uses the root `llm` object after settings merge."
1162
+ - "Actor `llm` objects without `auth` and `provider` overlay the root `llm` object."
1163
+ - term_id: "lens_prompt_contract"
1164
+ canonical_label: "LensPromptContract"
1165
+ korean_label: "lens 프롬프트 계약"
1166
+ axis: "prompt_contract"
1167
+ term_status: "active"
1168
+ definition: "Prompt execution contract that defines the common inputs, invariants, and output obligations for a review lens."
1169
+ - term_id: "synthesize_prompt_contract"
1170
+ canonical_label: "SynthesizePromptContract"
1171
+ korean_label: "종합 프롬프트 계약"
1172
+ axis: "prompt_contract"
1173
+ term_status: "active"
1174
+ definition: "Prompt execution contract that defines the inputs, invariants, and output obligations for the synthesize stage."
1175
+ - term_id: "lens_selection_plan"
1176
+ canonical_label: "LensSelectionPlan"
1177
+ korean_label: "lens 선택 계획"
1178
+ axis: "review_structure"
1179
+ term_status: "active"
1180
+ definition: "Interpretation-owned plan that recommends full/core-axis review and the lens set to execute."
1181
+ - term_id: "domain_final_selection"
1182
+ canonical_label: "DomainFinalSelection"
1183
+ korean_label: "도메인 최종 선택"
1184
+ axis: "invocation_phase"
1185
+ term_status: "active"
1186
+ definition: "Final domain value after explicit token parsing and, when needed, user confirmation of a recommendation."
1187
+ - term_id: "review_session_metadata"
1188
+ canonical_label: "review_session_metadata"
1189
+ korean_label: "검토 세션 메타데이터"
1190
+ axis: "review_artifact"
1191
+ term_status: "active"
1192
+ definition: "Deterministic execution metadata for a single review session."
1193
+ - term_id: "target_snapshot"
1194
+ canonical_label: "target_snapshot"
1195
+ korean_label: "대상 스냅샷"
1196
+ axis: "review_artifact"
1197
+ term_status: "active"
1198
+ definition: "Immutable basis of what the review actually read at execution time."
1199
+ - term_id: "review_target_materialized_input"
1200
+ canonical_label: "review_target_materialized_input"
1201
+ korean_label: "검토 대상 구체화 입력"
1202
+ axis: "review_artifact"
1203
+ term_status: "active"
1204
+ definition: "Execution-friendly materialization of the resolved review target scope for lens reading."
1205
+ - term_id: "context_candidate_assembly"
1206
+ canonical_label: "context_candidate_assembly"
1207
+ korean_label: "맥락 후보 조립물"
1208
+ axis: "review_artifact"
1209
+ term_status: "active"
1210
+ definition: "Candidate context set assembled for review execution before per-lens relevance judgment."
1211
+ - term_id: "synthesize_stage"
1212
+ canonical_label: "synthesize"
1213
+ korean_label: "종합 단계"
1214
+ axis: "review_structure"
1215
+ term_status: "active"
1216
+ definition: "A non-lens review stage that integrates lens findings into a final review result."
1217
+ notes:
1218
+ - "Homonym: 'synthesize' appears as both this concept term (axis: review_structure) and a role ID in core-lens-registry.yaml. Different axis — OaC §5 permits same token across disjoint namespaces."
1219
+ - term_id: "problem_framing_profile"
1220
+ canonical_label: "ProblemFramingProfile"
1221
+ korean_label: "문제 프레이밍 프로필"
1222
+ axis: "domain_document"
1223
+ term_status: "active"
1224
+ definition: "Domain document custom type that defines domain-specific axes used by review closure problem framing. It extends the review common spine and does not redefine common spine values."
1225
+ contract_ref: ".onto/processes/review/issue-stance-deliberation-contract.md §12.2"
1226
+ - term_id: "prompt_backed_reference_path"
1227
+ canonical_label: "PromptBackedReferencePath"
1228
+ korean_label: "프롬프트 기반 기준 경로"
1229
+ axis: "implementation_path"
1230
+ term_status: "active"
1231
+ definition: "Reference execution path that follows the designed process with prompt-driven execution before hardened implementation exists."
1232
+ - term_id: "implementation_replacement_step"
1233
+ canonical_label: "ImplementationReplacementStep"
1234
+ korean_label: "구현 치환 단계"
1235
+ axis: "implementation_path"
1236
+ term_status: "active"
1237
+ definition: "One bounded replacement step that moves a single responsibility from prompt-backed execution to product implementation."
1238
+ - term_id: "declared_handoff_inputs"
1239
+ canonical_label: "DeclaredHandoffInputs"
1240
+ korean_label: "선언형 handoff 입력"
1241
+ axis: "llm_runtime_interface"
1242
+ term_status: "active"
1243
+ definition: "Predeclared, runtime-provided input set that fixes role, primary target, required context, output seat, and explicit control policy for one LLM call."
1244
+ - term_id: "self_directed_exploration_inputs"
1245
+ canonical_label: "SelfDirectedExplorationInputs"
1246
+ korean_label: "자율 탐색 입력"
1247
+ axis: "llm_runtime_interface"
1248
+ term_status: "active"
1249
+ definition: "Additional inputs that an LLM acquires by its own semantic judgment during problem solving, such as extra file exploration or web research within the declared boundary."
1250
+ - term_id: "boundary_policy"
1251
+ canonical_label: "BoundaryPolicy"
1252
+ korean_label: "경계 정책"
1253
+ axis: "llm_runtime_interface"
1254
+ term_status: "active"
1255
+ definition: "Declared policy that specifies allowed, denied, required, and forbidden behavior for one LLM execution boundary."
1256
+ - term_id: "boundary_presentation"
1257
+ canonical_label: "BoundaryPresentation"
1258
+ korean_label: "경계 제시"
1259
+ axis: "llm_runtime_interface"
1260
+ term_status: "active"
1261
+ definition: "The way a declared boundary is exposed to an LLM, such as embedded instructions, refs, seat maps, or capability notices."
1262
+ - term_id: "boundary_enforcement_profile"
1263
+ canonical_label: "BoundaryEnforcementProfile"
1264
+ korean_label: "경계 강제 프로필"
1265
+ axis: "llm_runtime_interface"
1266
+ term_status: "active"
1267
+ definition: "Execution-specific description of how a declared boundary is actually enforced across prompt, host, MCP, filesystem, or environment layers."
1268
+ - term_id: "deterministic_state_enforcer"
1269
+ canonical_label: "DeterministicStateEnforcer"
1270
+ korean_label: "결정론적 상태 강제자"
1271
+ axis: "execution_unit"
1272
+ term_status: "active"
1273
+ definition: "Runtime state machine that deterministically enforces review process state transitions. Not an orchestrator — executes pre-fixed rules, not semantic judgment."
1274
+ notes:
1275
+ - "Review process only. reconstruct/learn/govern extensions require separate design."
1276
+ - "9 states (auto 3, await 3, terminal 3), 12 edges."
1277
+ - term_id: "auto_state"
1278
+ canonical_label: "auto_state"
1279
+ korean_label: "자동 상태"
1280
+ axis: "execution_unit"
1281
+ term_status: "active"
1282
+ definition: "State machine state where runtime executes deterministic steps automatically and transitions to the next state without caller intervention."
1283
+ - term_id: "await_state"
1284
+ canonical_label: "await_state"
1285
+ korean_label: "대기 상태"
1286
+ axis: "execution_unit"
1287
+ term_status: "active"
1288
+ definition: "State machine state where runtime outputs dispatch instructions and waits for caller to invoke the next transition."
1289
+ - term_id: "terminal_state"
1290
+ canonical_label: "terminal_state"
1291
+ korean_label: "종료 상태"
1292
+ axis: "execution_unit"
1293
+ term_status: "active"
1294
+ definition: "State machine state with no outgoing transitions. Represents final disposition of a review session."
1295
+ - term_id: "effective_boundary_state"
1296
+ canonical_label: "EffectiveBoundaryState"
1297
+ korean_label: "실효 경계 상태"
1298
+ axis: "llm_runtime_interface"
1299
+ term_status: "active"
1300
+ definition: "The final applied boundary state after policy declaration, presentation, capability realization, and deny-precedence resolution."
1301
+ - term_id: "design_target"
1302
+ canonical_label: "design_target"
1303
+ korean_label: "설계 대상"
1304
+ axis: "design"
1305
+ term_status: "active"
1306
+ definition: "The existing system (code, spreadsheet, document, etc.) to which design adds new areas."
1307
+ notes:
1308
+ - "reconstruct's analysis target and design_target can refer to the same system, but the relationship is contextual, not definitional."
1309
+ - term_id: "outcome"
1310
+ canonical_label: "outcome"
1311
+ korean_label: "결과"
1312
+ axis: "design"
1313
+ term_status: "active"
1314
+ definition: "A state change of the design target or its stakeholders. The unit that reorients design goals in Phase 1."
1315
+ - term_id: "design_area"
1316
+ canonical_label: "design_area"
1317
+ korean_label: "영역"
1318
+ axis: "design"
1319
+ term_status: "active"
1320
+ definition: "A partial scope of the design target relevant to the goal. The unit that partitions exploration range in Phase 2."
1321
+ notes:
1322
+ - "Different from domain (knowledge system applied to review/evolve). One domain may contain multiple areas; one area may span multiple domains."
1323
+ - term_id: "design_constraint"
1324
+ canonical_label: "design_constraint"
1325
+ korean_label: "설계 제약"
1326
+ axis: "design"
1327
+ term_status: "active"
1328
+ definition: "Constraints arising from the current structure, policies, behaviors, and external conditions of the design target and its environment."
1329
+ - term_id: "design_gap"
1330
+ canonical_label: "design_gap"
1331
+ korean_label: "격차"
1332
+ axis: "design"
1333
+ term_status: "active"
1334
+ definition: "The magnitude of difference between current state and Phase 1 outcomes within a given area. Qualitative 3-level: large / medium / small. Input to Phase 4 scenario ordering."
1335
+ # principal: W-A-70에서 entity로 승격됨. entities.principal 참조.
1336
+ - term_id: "activity_enum"
1337
+ canonical_label: "activity"
1338
+ korean_label: "활동"
1339
+ translation_mode: "preserved"
1340
+ axis: "onto_taxonomy"
1341
+ term_status: "active"
1342
+ definition: "§1.2 에 정의된 onto 의 다섯 활동. work item / consolidated / inventory / ledger 의 activity field canonical enum. 본 term 이 enum 의 authority SSOT."
1343
+ allowed_values:
1344
+ - "review"
1345
+ - "evolve"
1346
+ - "reconstruct"
1347
+ - "learn"
1348
+ - "govern"
1349
+ legacy_aliases:
1350
+ - alias: "build"
1351
+ retire_kind: "renamed"
1352
+ canonical_replacement: "reconstruct"
1353
+ retire_date: "2026-04-13"
1354
+ context: >
1355
+ Legacy activity name retired 2026-04-13 via DR-M00-04 homonym mapping.
1356
+ Scope: build 명칭은 activity 지칭에서 retired 됐다. 현재 onto-mcp runtime은 review만 wired 상태이며 reconstruct는 별도 설계 후 다시 도입한다. `npm run build:ts-core` 는 TypeScript 컴파일 명령으로 activity 와 무관하다.
1357
+ - alias: "design"
1358
+ retire_kind: "renamed"
1359
+ canonical_replacement: "evolve"
1360
+ retire_date: "2026-04-15"
1361
+ context: >
1362
+ Legacy activity name retired 2026-04-15 via W-A-78 (entrypoint-only rename).
1363
+ Scope: design entrypoint 명칭은 evolve로 대체 예정이나 현재 onto-mcp runtime에는 evolve 경로가 wired 되지 않았다. 방법론 term의 자연어 "설계"는 entrypoint 명칭과 별개로 유지할 수 있다.
1364
+ - alias: "ask"
1365
+ retire_kind: "retired"
1366
+ canonical_replacement: null
1367
+ retire_date: "2026-04-13"
1368
+ context: >
1369
+ §1.2 에서 폐기 선언 (2026-04-13). 대체 없음 — 필요 시 단일 lens review 로 대체.
1370
+ 단일 lens 질의는 review 계열에서 다룬다.
1371
+ - alias: "E"
1372
+ retire_kind: "shortcode"
1373
+ canonical_replacement: "reconstruct"
1374
+ retire_date: null
1375
+ context: "Single-letter shortcode used in consolidated.md Activity column (DR-M00-03). Decoded at read time. legacy_aliases 에 등재하여 validator 가 unknown value 거부하지 않도록 함."
1376
+ - alias: "D"
1377
+ retire_kind: "shortcode"
1378
+ canonical_replacement: "evolve"
1379
+ retire_date: null
1380
+ context: "Single-letter shortcode. Decoded at read time."
1381
+ - alias: "R"
1382
+ retire_kind: "shortcode"
1383
+ canonical_replacement: "review"
1384
+ retire_date: null
1385
+ context: "Single-letter shortcode. Decoded at read time."
1386
+ - alias: "L"
1387
+ retire_kind: "shortcode"
1388
+ canonical_replacement: "learn"
1389
+ retire_date: null
1390
+ context: "Single-letter shortcode. Decoded at read time."
1391
+ - alias: "G"
1392
+ retire_kind: "shortcode"
1393
+ canonical_replacement: "govern"
1394
+ retire_date: null
1395
+ context: "Single-letter shortcode. Decoded at read time."
1396
+ notes:
1397
+ - "Canonical definition source: development-records/evolve/20260413-onto-direction.md#§1.2 (as_of=2026-04-13)."
1398
+ - "Consumers: M-05/M-06/M-07/M-08 work items (activity field), consolidated.md frontmatter activity_enum_ref, Expansion Protocol."
1399
+ - "Reference format: `.onto/authority/core-lexicon.yaml#activity_enum.v<lexicon_version>` (DR-M04-02). lexicon_version bump 시 reader 재파싱."
1400
+ - "Homonym caution: 본 enum 의 'activity' 는 onto taxonomy 단위이며, 일반 한국어 '활동' 과 혼동하지 않도록 consumer 는 canonical_label 인 'activity' 를 taxonomy 문맥에서만 사용."
1401
+ - "legacy_aliases.retire_kind 분류 (v0.6.1 추가): `renamed` = canonical replacement 가 있는 rename, `retired` = 대체 없는 폐기, `shortcode` = 단축 표기 형식 (의미 동일, 표기만 축약)."
1402
+ - term_id: "axis_enum"
1403
+ canonical_label: "axis"
1404
+ korean_label: "축"
1405
+ translation_mode: "preserved"
1406
+ axis: "onto_taxonomy"
1407
+ term_status: "active"
1408
+ definition: "§1.5 에 정의된 onto 의 네 축. work item ID (W-{axis}-{nn:02d}) 의 axis 토큰 canonical enum. 본 term 이 enum 의 authority SSOT."
1409
+ allowed_values:
1410
+ - "A"
1411
+ - "B"
1412
+ - "C"
1413
+ - "D"
1414
+ legacy_aliases: [] # v0.6.1 slot 신설 (E-05). 현재 empty. 축 rename·retire 발생 시 activity_enum 과 동일 구조로 기록.
1415
+ notes:
1416
+ - "A = entrypoint 구현 (활동별). 다섯 활동의 command·process·calling convention."
1417
+ - "B = 기반 인프라 (공통). product·ontology·review runtime 저장·처리 공통 인프라."
1418
+ - "C = 자율성 진화 (메타). self-application 메커니즘 + drift 판정 + 큐·승인 흐름 + 수준 0→1→2 엔진."
1419
+ - "D = 상시 원칙 (교차). lexicon provisional lifecycle. 모든 축 교차 원칙, 독립 축 아님."
1420
+ - "Axis 간 의존 (§1.5 derived): A→B (활동 구현은 인프라 위에서 작동), C→{A,B} (자율성은 A·B 최소 1사이클 운영 후 설계), D→{A,B,C} (모든 축 교차)."
1421
+ - "Canonical definition source: development-records/evolve/20260413-onto-direction.md#§1.5 (as_of=2026-04-13)."
1422
+ - "Consumers: M-05/M-06/M-07/M-08 work items (axis field + W-ID token), consolidated.md frontmatter axis_enum_ref, Expansion Protocol 축 추가·삭제·병합 trigger."
1423
+ - "Reference format: `.onto/authority/core-lexicon.yaml#axis_enum.v<lexicon_version>` (DR-M04-02)."
1424
+ - term_id: "fact_type"
1425
+ canonical_label: "fact type"
1426
+ korean_label: "사실 유형"
1427
+ translation_mode: "preserved"
1428
+ axis: "onto_taxonomy"
1429
+ term_status: "deprecated"
1430
+ definition: "Retired Explorer-path classifier for ontology-like domain facts discovered while traversing source material. Kept as the authority for archived Delta artifacts only; not used by the current review runtime or the new reconstruct source-observation contract."
1431
+ allowed_values:
1432
+ - "entity"
1433
+ - "enum"
1434
+ - "property"
1435
+ - "relation"
1436
+ - "code_mapping"
1437
+ - "state_transition"
1438
+ - "command"
1439
+ - "query"
1440
+ - "policy_constant"
1441
+ - "flow"
1442
+ stage_partition:
1443
+ stage_1_structure:
1444
+ - "entity"
1445
+ - "enum"
1446
+ - "property"
1447
+ - "relation"
1448
+ - "code_mapping"
1449
+ stage_2_behavior:
1450
+ - "state_transition"
1451
+ - "command"
1452
+ - "query"
1453
+ - "policy_constant"
1454
+ - "flow"
1455
+ legacy_aliases: [] # Retired Explorer-path term. 향후 replacement 발생 시 activity_enum 과 동일 구조로 기록.
1456
+ notes:
1457
+ - "Legacy Stage 1 (Structure) = source 가 무엇인가 (names, fields, relations, schemas) 분류. Retired Explorer 가 Stage 1 라운드에서 우선 보고."
1458
+ - "Legacy Stage 2 (Behavior) = source 가 무엇을 하는가 (state transitions, methods, flows) 분류. Stage 1 entity 확정 후 Stage 2 라운드에서 보고."
1459
+ - "Legacy Stage 2 coverage 정의: 한 entity 가 ≥1 fact (state_transition | command | query) 를 가지면 covered. policy_constant + flow 는 cross-cutting, coverage 에 산입 안 됨."
1460
+ - "Current reconstruct design does not use fact_type for source observation. Use target_material_kind for material classification, SourceObservation for runtime structural records, and LLM-authored directives for ontology meaning."
1461
+ - "Canonical definition source: 본 lexicon term (v0.10.0)."
1462
+ - "Reference format: `.onto/authority/core-lexicon.yaml#fact_type.v<lexicon_version>` (DR-M04-02 패턴 동일)."
1463
+ - "Extension policy: do not add new values for the current reconstruct path. Any future replacement must be designed as a new contract rather than extending this retired Explorer taxonomy."
1464
+
1465
+ - term_id: "competency_question"
1466
+ canonical_label: "competency question"
1467
+ korean_label: "컴피턴시 질문"
1468
+ axis: "ontology_design"
1469
+ term_status: "active"
1470
+ definition: "도메인 ontology 가 답할 수 있어야 하는 질문. ontology 의 범위와 충분성을 검증하는 기준. pragmatics lens 의 주요 검증 대상."
1471
+ notes:
1472
+ - "Source: DDD/ontology engineering 표준 개념 (Brank: Application-based validation)."
1473
+ - "Consumers: .onto/domains/{domain}/competency_qs.md (파일별 CQ 등재), pragmatics lens (CQ testing), .onto/processes/review/lens-registry.md."
1474
+ - "관련 term: competency_scope (한 ontology 의 CQ 유효 범위)."
1475
+ - "Promotion trajectory: 현재 SE + business 도메인이 competency_qs.md 로 이 개념 소비. 향후 CQ 메타-구조 (CQ id, tier, applicability) 공식화 시 entity 승격 검토."
1476
+ - term_id: "competency_scope"
1477
+ canonical_label: "competency scope"
1478
+ korean_label: "컴피턴시 범위"
1479
+ axis: "ontology_design"
1480
+ term_status: "active"
1481
+ definition: "특정 ontology 가 답하도록 설계된 competency question 들의 적용 범위. 도메인 경계 + 질문 유형 + tier 수준을 포함한다."
1482
+ notes:
1483
+ - "Consumers: .onto/domains/business/, .onto/domains/se/ 의 competency_qs.md 각 파일 상단 scope 선언."
1484
+ - "Sub-scope 분류 축 예시: sub-area × CQ tier × applicability marker (W-B-39/40 deferred backlog 참조)."
1485
+ - term_id: "provenance"
1486
+ canonical_label: "provenance"
1487
+ korean_label: "출처"
1488
+ axis: "system_integrity"
1489
+ term_status: "active"
1490
+ definition: "artifact 의 생성 경로·시점·근거. '어디서 왔는가, 누가/무엇이 생성했는가, 어떤 근거를 가지는가' 를 기록한다. LLM-native 시스템의 runtime 신뢰성 확보 축."
1491
+ notes:
1492
+ - "Source: .onto/principles/llm-runtime-interface-principles.md (runtime 인터페이스 정책) + llm-native-development-guideline.md §항목 8 (declared boundary · provenance · degraded handling)."
1493
+ - "Consumers: review activity 의 binding.yaml, execution-preparation/target-snapshot.md, final-output.md, synthesis.md — 모든 산출물에 provenance 기록."
1494
+ - "관련 개념: evidence_seat (W-ID seat schema), canonical artifact provenance."
1495
+ - "Degraded policy: provenance 기록 실패 시 artifact 는 runtime-generated 로 기록 + log entry. Halt 하지 않음 (degraded handling)."
1496
+ - term_id: "modularity_boundary"
1497
+ canonical_label: "modularity boundary"
1498
+ korean_label: "모듈성 경계"
1499
+ axis: "ontology_design"
1500
+ term_status: "active"
1501
+ definition: "ontology 또는 시스템 내부에서 '무엇이 한 모듈에 속하는가' 를 가름. 응집도(cohesion) 와 결합도(coupling) 를 결정. 변경 전파·소비·확장 범위 판단의 축."
1502
+ notes:
1503
+ - "Consumers: review 9-lens prompt packets (모든 lens 가 이 경계를 공통 판단 기준으로 참조), m01-activity-inventory/govern.md (활동 단위 경계)."
1504
+ - "Lens별 적용: logic (rule locality), structure (schema locality), dependency (call/import graph locality), semantics (name scope locality), pragmatics (CQ locality), evolution (breakage locality), coverage (area locality), conciseness (dedup boundary), axiology (value-conflict locality)."
1505
+ - "관련 term: ownership_boundary (W-ID seat field — 구체적 파일/디렉토리 단위), modularity_boundary (개념 단위)."
1506
+ - term_id: "lexicon_term_promotion"
1507
+ canonical_label: "lexicon term promotion"
1508
+ korean_label: "렉시콘 용어 승격"
1509
+ axis: "lifecycle_nomenclature"
1510
+ term_status: "active"
1511
+ definition: "provisional_terms 섹션에 등재된 term 이 review PASS + Principal 승인을 거쳐 terms 섹션으로 이동하는 lifecycle 전이. term_status=active 로 설정되어 정식 참조 가능해진다."
1512
+ allowed_values: []
1513
+ notes:
1514
+ - "W-D-05 (2026-04-16) 신설 — 'promoted' 용어 3분리 중 1/3 (Semantic drift 해소)."
1515
+ - "Source of truth: .onto/authority/core-lexicon.yaml#provisional_lifecycle (W-D-01)."
1516
+ - "Consumer is not wired in the current onto-mcp review runtime; future lexicon lifecycle checks should be implemented as a review-runtime conformance check."
1517
+ - "기존 'promoted' 일반 명칭은 대상 모호성 유발. 본 term 이 lexicon term 대상의 promotion 만 지칭."
1518
+
1519
+ - term_id: "learning_scope_promotion"
1520
+ canonical_label: "learning scope promotion"
1521
+ korean_label: "학습 스코프 승격"
1522
+ axis: "lifecycle_nomenclature"
1523
+ term_status: "deprecated"
1524
+ deprecated_in: "v0.15.0 (2026-04-20) — framework v1.0 sync"
1525
+ definition: "(deprecated v0.15.0) 기존 정의: project-level learning (`{project}/.onto/learnings/{agent}.md`) 이 panel 검증 + Principal 승인 후 user-level scope (`~/.onto/learnings/{agent}.md`) 로 이동하는 lifecycle 전이. framework v1.0 의 새 scope vocabulary (product/medium/domain/methodology) 에서 `project` · `user` 가 legacy identifier 로 retire 됐으므로 본 term 의 경로 의미도 deprecated."
1526
+ allowed_values: []
1527
+ replacement:
1528
+ transition_kind: "generalize"
1529
+ note: "framework v1.0 §6.2 — 이미 Learning 상태인 항목의 scope 축 이동 (standalone generalize). v1 manual only. legacy project→user 경로는 '이미 project-level 에 축적된 Learning 을 user-level 로 확장' 의 의미이므로 maturity 축이 아닌 scope 축 이동이 정확한 canonical mapping. promote_and_generalize (Experience → 다른 scope 의 Learning) 가 아님 (v0.16.0, re-review session 20260420-b74e947f logic F1 반영)."
1530
+ methodology_target_legacy: "legacy user-scope 중 methodology (cross-everything frame) 로 재분류되는 case 는 v1 active transition 없음 — Principal manual 등재만 가능 (framework §6.4). 이 재분류 자체는 transition_kind 없이 legacy_alias_governance.scope_migration.migrations[legacy=user] 의 instance_routing 으로 처리."
1531
+ notes:
1532
+ - "W-D-05 (2026-04-16) 신설 — 'promoted' 용어 3분리 중 2/3."
1533
+ - "v0.15.0 (2026-04-20) deprecated — framework v1.0 의 4-scope model (product/medium/domain/methodology) 은 project→user 1-step path 와 semantics 가 다름. Legacy learning runtime consumers were archived in 2026-05-26 cleanup."
1534
+ - "v0.16.0 (2026-04-20) replacement refine — re-review (20260420-b74e947f) 의 logic F1 지적 반영. promote_and_generalize (Exp→Learn) 가 아니라 generalize (already-Learning scope 축 이동) 가 semantic mapping. methodology-target legacy 는 transition 없이 scope_migration instance_routing 경로로 분리."
1535
+ - "소비 정책: deprecated term 은 authority file 내 참조만 허용. 신규 문서·코드는 transition_kind=generalize 를 사용하고 primary_scope/secondary_scopes 로 scope 축을 표현."
1536
+
1537
+ - term_id: "learning_to_principle_promotion"
1538
+ canonical_label: "learning-to-principle promotion"
1539
+ korean_label: "학습에서 규범으로의 승격"
1540
+ axis: "lifecycle_nomenclature"
1541
+ term_status: "active"
1542
+ definition: "promoted learning (knowledge) 중 일정 기준을 충족한 항목이 .onto/principles/ 또는 .onto/processes/ 의 principle 본문으로 승격되는 lifecycle 전이. 구체 기준과 경로는 W-C-03 에서 설계·구현."
1543
+ allowed_values: []
1544
+ notes:
1545
+ - "W-D-05 (2026-04-16) 신설 — 'promoted' 용어 3분리 중 3/3 (Semantic drift 해소)."
1546
+ - "Source of truth is not wired in the current onto-mcp review runtime; govern requires separate design."
1547
+ - "Consumer: future govern MCP surface after separate design."
1548
+ - "W-C-03 blocker 해소를 위해 도착지 명시 (principle entity 신설) + 용어 canonical 확립 목적."
1549
+
1550
+ - term_id: "drift_queue_entry"
1551
+ canonical_label: "drift_queue_entry"
1552
+ korean_label: "거버넌스 큐 항목"
1553
+ axis: "governance"
1554
+ term_status: "deprecated"
1555
+ definition: "govern_process 가 소유하는 큐의 단일 항목. 규범 변경 제안(origin=human, tag=norm_change) 또는 drift 감지(origin=system, tag=drift) 가 하나의 entry 로 기록된다. pending → decided 의 단순 생애주기."
1556
+ allowed_values: []
1557
+ notes:
1558
+ - "Introduced by W-C-01 (2026-04-16) bounded minimum surface."
1559
+ - "Origin → tag deterministic mapping: human → norm_change, system → drift."
1560
+ - "사람이 drift 를 계기로 올린 제안: tag=norm_change + prompted_by_drift_id 로 원본 drift entry 를 링크."
1561
+ - "Not wired in the current onto-mcp review runtime."
1562
+ - "Archived legacy govern code is isolated under development-records/archive/retired-runtime-legacy-20260526/."