onto-mcp 0.4.6 → 0.4.7

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 (146) hide show
  1. package/.onto/authority/core-lens-registry.yaml +5 -14
  2. package/.onto/authority/core-lexicon.yaml +269 -392
  3. package/.onto/domains/commerce-performance-marketing-kr/competency_qs.md +249 -0
  4. package/.onto/domains/commerce-performance-marketing-kr/concepts.md +256 -0
  5. package/.onto/domains/commerce-performance-marketing-kr/conciseness_rules.md +164 -0
  6. package/.onto/domains/commerce-performance-marketing-kr/dependency_rules.md +227 -0
  7. package/.onto/domains/commerce-performance-marketing-kr/domain_scope.md +262 -0
  8. package/.onto/domains/commerce-performance-marketing-kr/domain_structure.svg +253 -0
  9. package/.onto/domains/commerce-performance-marketing-kr/extension_cases.md +370 -0
  10. package/.onto/domains/commerce-performance-marketing-kr/logic_rules.md +207 -0
  11. package/.onto/domains/commerce-performance-marketing-kr/structure_spec.md +412 -0
  12. package/.onto/domains/software-engineering/conciseness_rules.md +1 -1
  13. package/.onto/domains/software-engineering/domain_scope.md +3 -3
  14. package/.onto/principles/llm-native-development-guideline.md +136 -370
  15. package/.onto/principles/llm-runtime-interface-principles.md +184 -552
  16. package/.onto/principles/non-specialist-communication-guideline.md +159 -39
  17. package/.onto/principles/ontology-as-code-guideline.md +96 -134
  18. package/.onto/principles/ontology-as-code-naming-charter.md +163 -72
  19. package/.onto/principles/product-locality-principle.md +5 -7
  20. package/.onto/principles/productization-charter.md +159 -475
  21. package/.onto/processes/evolve/material-kind-adapter-contract.md +3 -3
  22. package/.onto/processes/reconstruct/ontology-seeding-and-maturation-design.md +1516 -181
  23. package/.onto/processes/reconstruct/operational-ontology-seed-contract.md +6 -2
  24. package/.onto/processes/reconstruct/reconstruct-boundary-contract.md +36 -30
  25. package/.onto/processes/reconstruct/reconstruct-contract-registry.yaml +903 -690
  26. package/.onto/processes/reconstruct/source-profiles/code.md +25 -0
  27. package/.onto/processes/reconstruct/source-profiles/document.md +25 -0
  28. package/.onto/processes/review/binding-contract.md +1 -1
  29. package/.onto/processes/review/external-oauth-worker-contract.md +142 -0
  30. package/.onto/processes/review/host-orchestration-contract.md +114 -0
  31. package/.onto/processes/review/interpretation-contract.md +2 -2
  32. package/.onto/processes/review/issue-stance-deliberation-contract.md +221 -78
  33. package/.onto/processes/review/lens-registry.md +4 -4
  34. package/.onto/processes/review/live-deliberation-experiment-contract.md +64 -0
  35. package/.onto/processes/review/material-issue-contract.md +141 -0
  36. package/.onto/processes/review/nesting-batch-worker-contract.md +68 -0
  37. package/.onto/processes/review/pre-dispatch-contracts.md +25 -22
  38. package/.onto/processes/review/productized-live-path.md +65 -64
  39. package/.onto/processes/review/prompt-execution-runner-contract.md +74 -38
  40. package/.onto/processes/review/record-contract.md +66 -43
  41. package/.onto/processes/review/record-field-mapping.md +70 -52
  42. package/.onto/processes/review/review-context-manifest-contract.md +1 -1
  43. package/.onto/processes/review/review-execution-ux-contract.md +42 -37
  44. package/.onto/processes/review/review-target-profile-contract.md +1 -1
  45. package/.onto/processes/review/shared-phenomenon-contract.md +1 -1
  46. package/.onto/processes/review/synthesize-prompt-contract.md +226 -250
  47. package/.onto/processes/shared/target-material-kind-contract.md +4 -12
  48. package/.onto/roles/axiology.md +1 -1
  49. package/.onto/roles/conciseness.md +1 -1
  50. package/.onto/roles/coverage.md +8 -4
  51. package/.onto/roles/dependency.md +1 -1
  52. package/.onto/roles/evolution.md +1 -1
  53. package/.onto/roles/logic.md +5 -4
  54. package/.onto/roles/pragmatics.md +1 -1
  55. package/.onto/roles/semantics.md +4 -3
  56. package/.onto/roles/structure.md +1 -1
  57. package/AGENTS.md +193 -59
  58. package/README.md +252 -66
  59. package/dist/core-api/reconstruct-api.js +25 -13
  60. package/dist/core-api/review-api.js +1328 -225
  61. package/dist/core-runtime/cli/assemble-review-record.js +60 -22
  62. package/dist/core-runtime/cli/claude-code-review-unit-executor.js +631 -0
  63. package/dist/core-runtime/cli/claude-nesting-batch-worker.js +187 -0
  64. package/dist/core-runtime/cli/codex-nesting-batch-worker.js +194 -0
  65. package/dist/core-runtime/cli/codex-review-unit-executor.js +253 -40
  66. package/dist/core-runtime/cli/host-orchestration-reference-driver.js +33 -0
  67. package/dist/core-runtime/cli/inline-http-review-unit-executor.js +676 -89
  68. package/dist/core-runtime/cli/lens-sidecar-tools.js +436 -0
  69. package/dist/core-runtime/cli/materialize-review-prompt-packets.js +178 -133
  70. package/dist/core-runtime/cli/nested-batch-dispatch.js +237 -0
  71. package/dist/core-runtime/cli/onto-tools.js +177 -28
  72. package/dist/core-runtime/cli/render-review-final-output.js +503 -94
  73. package/dist/core-runtime/cli/review-invoke.js +173 -107
  74. package/dist/core-runtime/cli/run-review-prompt-execution.js +3680 -460
  75. package/dist/core-runtime/cli/runtime-submit-context.js +337 -0
  76. package/dist/core-runtime/cli/structured-output-tools.js +1027 -0
  77. package/dist/core-runtime/cli/submit-salvage.js +115 -0
  78. package/dist/core-runtime/cli/worker-structured-output.js +266 -0
  79. package/dist/core-runtime/discovery/host-detection.js +37 -0
  80. package/dist/core-runtime/discovery/settings-chain.js +841 -85
  81. package/dist/core-runtime/llm/llm-caller.js +86 -180
  82. package/dist/core-runtime/llm/llm-tool-loop.js +95 -109
  83. package/dist/core-runtime/llm/mock-llm-realization.js +573 -0
  84. package/dist/core-runtime/llm/model-switcher.js +55 -9
  85. package/dist/core-runtime/path-boundary.js +16 -7
  86. package/dist/core-runtime/pipeline-execution-ledger.js +9 -0
  87. package/dist/core-runtime/reconstruct/artifact-types.js +61 -0
  88. package/dist/core-runtime/reconstruct/claim-projection-validation.js +862 -0
  89. package/dist/core-runtime/reconstruct/material-admission-validation.js +518 -0
  90. package/dist/core-runtime/reconstruct/materialize-preparation.js +4 -1
  91. package/dist/core-runtime/reconstruct/maturation-validation.js +3575 -0
  92. package/dist/core-runtime/reconstruct/ontology-seed-validation.js +4 -1
  93. package/dist/core-runtime/reconstruct/pipeline-execution-ledger.js +657 -16
  94. package/dist/core-runtime/reconstruct/post-seed-validation.js +9 -1
  95. package/dist/core-runtime/reconstruct/proof-authority-validation.js +160 -0
  96. package/dist/core-runtime/reconstruct/purpose-authority-validation.js +421 -0
  97. package/dist/core-runtime/reconstruct/record.js +176 -0
  98. package/dist/core-runtime/reconstruct/registry-verification-validation.js +371 -0
  99. package/dist/core-runtime/reconstruct/run-control-validation.js +724 -0
  100. package/dist/core-runtime/reconstruct/run.js +5670 -1786
  101. package/dist/core-runtime/reconstruct/seed-authoring-readiness-validation.js +758 -0
  102. package/dist/core-runtime/reconstruct/seed-claim-projections.js +23 -23
  103. package/dist/core-runtime/reconstruct/source-observation-delta-validation.js +750 -0
  104. package/dist/core-runtime/reconstruct/source-observations.js +10 -0
  105. package/dist/core-runtime/reconstruct/source-profiles.js +2 -2
  106. package/dist/core-runtime/reconstruct/source-safety-validation.js +614 -0
  107. package/dist/core-runtime/reconstruct/source-scout-pack-validation.js +707 -0
  108. package/dist/core-runtime/reconstruct/terminal-validation.js +314 -1
  109. package/dist/core-runtime/release-channel/release-channel.js +2 -2
  110. package/dist/core-runtime/review/artifact-generation-realization.js +34 -0
  111. package/dist/core-runtime/review/boundary-prompt-sections.js +44 -0
  112. package/dist/core-runtime/review/citation-audit.js +3 -1
  113. package/dist/core-runtime/review/continuation-plan.js +3 -15
  114. package/dist/core-runtime/review/controlled-lens-deliberation.js +584 -90
  115. package/dist/core-runtime/review/execution-plan-boundary.js +8 -11
  116. package/dist/core-runtime/review/issue-artifact-runtime.js +2500 -91
  117. package/dist/core-runtime/review/lens-completion-policy.js +36 -0
  118. package/dist/core-runtime/review/lens-sidecar-artifact.js +344 -0
  119. package/dist/core-runtime/review/lens-sidecar-ledger.js +139 -0
  120. package/dist/core-runtime/review/materializers.js +166 -61
  121. package/dist/core-runtime/review/nesting-batch.js +294 -0
  122. package/dist/core-runtime/review/orchestration-owner.js +35 -0
  123. package/dist/core-runtime/review/packet-boundary-policy.js +204 -5
  124. package/dist/core-runtime/review/participating-lens-paths.js +33 -14
  125. package/dist/core-runtime/review/pipeline-execution-ledger.js +293 -36
  126. package/dist/core-runtime/review/problem-framing-spine.js +67 -0
  127. package/dist/core-runtime/review/review-artifact-utils.js +6 -6
  128. package/dist/core-runtime/review/review-execution-profile.js +240 -38
  129. package/dist/core-runtime/review/review-execution-route.js +87 -18
  130. package/dist/core-runtime/review/review-execution-steps.js +989 -0
  131. package/dist/core-runtime/review/review-invocation-runner.js +42 -19
  132. package/dist/core-runtime/review/review-progress-contract.js +1 -1
  133. package/dist/core-runtime/review/review-record-validation.js +42 -4
  134. package/dist/core-runtime/review/review-result-classification.js +178 -47
  135. package/dist/core-runtime/review/route-visibility.js +349 -21
  136. package/dist/core-runtime/review/semantic-quality-gate.js +515 -0
  137. package/dist/core-runtime/review/synthesis-map-reduce.js +901 -0
  138. package/dist/core-runtime/review/unit-boundary-details.js +56 -0
  139. package/dist/mcp/server.js +182 -40
  140. package/dist/mcp/tool-schemas.js +16 -5
  141. package/package.json +12 -6
  142. package/scripts/check-retired-root-paths.sh +36 -0
  143. package/settings.example.json +227 -25
  144. package/dist/core-runtime/cli/codex-nested-dispatch.js +0 -226
  145. package/dist/core-runtime/cli/codex-nested-teamlead-executor.js +0 -464
  146. package/dist/core-runtime/cli/mock-review-unit-executor.js +0 -302
@@ -1,4 +1,4 @@
1
- lexicon_version: "0.41.0"
1
+ lexicon_version: "0.45.2"
2
2
  schema_version: "2"
3
3
  position: "Prototype-to-service ontology authority for the onto main repository."
4
4
  notes:
@@ -6,61 +6,6 @@ notes:
6
6
  - "This file owns the concept INVENTORY. Naming RULES are owned by ontology-as-code-naming-charter.md."
7
7
  - "Structure: authoring_rules → shared_attributes → entities → terms."
8
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
9
  # ---------------------------------------------------------------------------
65
10
  # Authoring Rules
66
11
  # ---------------------------------------------------------------------------
@@ -70,12 +15,12 @@ authoring_rules:
70
15
  identifier_resolution: "entities key를 우선 resolve. 동명 term이 존재하면 entities가 canonical."
71
16
  term_frame:
72
17
  required_slots: [term_id, canonical_label, korean_label, definition, term_status]
73
- optional_slots: [axis, allowed_values, notes, legacy_aliases, contract_ref, translation_mode]
18
+ optional_slots: [axis, allowed_values, notes, contract_ref, translation_mode]
74
19
  translation_policy:
75
20
  # 용어 표시 정책. Current onto-mcp review runtime does not implement
76
21
  # runtime translation or render-point registries.
77
22
  introduced_in: "v0.20.0 (2026-04-20) — 3-mode 초판"
78
- revised_in: "v0.22.0 (2026-05-26) — runtime translation registry retired"
23
+ revised_in: "v0.22.0 (2026-05-26) — runtime translation registry removed from the current runtime path"
79
24
  modes:
80
25
  preserved: "원어 유지. default. rank 1-4 정의 개념 + command 어휘 전수."
81
26
  translated: "future/non-runtime prose에서만 explicit opt-in 가능. current review artifacts는 canonical identifier를 유지."
@@ -92,10 +37,7 @@ authoring_rules:
92
37
  - "이유: rank 1-4 authority 정의 개념 + command 어휘는 원어 통일이 일관성 원칙. 중간 지점 (첫 등장 병기) 을 별도 mode 로 유지할 경우 policy complexity 대비 실익 미미"
93
38
  scope_policy:
94
39
  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"
40
+ rank5_and_lower: ".onto/processes/*.md + isolated historical records 등은 정의보다 서술 성격. 개별 term 의 mode 는 rank 1-4 정의가 canonical"
99
41
  relation_ownership: "source entity(및 그 instances)가 outbound relation만 소유. inverse는 derived, authored하지 않음."
100
42
  relation_ownership_interpretation: >
101
43
  "inverse 는 derived" 의 의미 명확화 (v0.18.0, framework v1.0.1 sync).
@@ -146,7 +88,7 @@ authoring_rules:
146
88
  shared_attributes는 정의 registry이며 applies_to를 두지 않음(entity.attributes에서 역추적).
147
89
  entity_frame:
148
90
  required_slots: [canonical_label, korean_label, definition, core_value]
149
- optional_slots: [attributes, relations, instances, execution_rules_ref, notes, legacy_aliases]
91
+ optional_slots: [attributes, relations, instances, execution_rules_ref, notes]
150
92
  instance_minimum: "definition 필수. instances는 parent의 relations/attributes를 상속하며, 추가로 자체 relations 및 notes를 정의할 수 있다."
151
93
  schema_version_evolution: >
152
94
  additive change = minor 올림. entity/attribute 삭제·의미 변경 = major 올림.
@@ -154,15 +96,12 @@ authoring_rules:
154
96
  lexicon_version_evolution: >
155
97
  내용 추가/수정 시 minor 올림. 구조(섹션 신설/폐지) 변경 시 major 올림.
156
98
  schema_version과 독립적으로 진화한다.
157
- schema_migration: "schema_version 부재 '1'간주."
99
+ schema_version_required: "schema_version 필수다. 누락되거나 현재 schema_version과 맞지 않는 파일은 현재 schema추측하지 않고 invalid로 처리한다."
158
100
  partition_trigger: "entity 수 100개 또는 파일 크기 50KB 초과 시 domain별 분할 검토."
159
101
  definition_language: "entities: 한국어. shared_attributes: 기존 영문 유지. terms: 기존 영문 유지, 신규는 한국어."
160
102
  term_status_vocabulary:
161
103
  allowed_values: [active, deprecated, retired]
162
104
  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
105
 
167
106
  # ---------------------------------------------------------------------------
168
107
  # Shared Attributes
@@ -179,10 +118,9 @@ shared_attributes:
179
118
  deprecated: "퇴역 후보"
180
119
  retired: "퇴역 완료"
181
120
  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)."
121
+ transition_canonical_owner: "Lifecycle transition execution is not wired in the current onto-mcp runtime."
183
122
  notes:
184
123
  - "전이 모델과 소비 문서는 각 entity의 execution_rules_ref에서 확인"
185
- - "W-D-05 (2026-04-16): deprecated/retired 관리 분산 drift 해소 — M-08 refresh protocol 이 canonical owner."
186
124
  scope:
187
125
  definition: "적용 범위 축. 항목이 어느 대상 전반에 유효한가를 분할하는 classifying dimension (framework v1.0 §2)."
188
126
  values:
@@ -191,8 +129,7 @@ shared_attributes:
191
129
  domain: "한 분야 (software-engineering, ui-design 등) 전반. cross-product 축 (~/.onto/domains/{domain}/)"
192
130
  methodology: "cross-everything 지식 frame. v1 은 definition only (instance 0, framework §2.4)"
193
131
  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 참조."
132
+ - "본 scope 는 current framework sync 의 적용 범위 축. 저장 경계는 좌표로부터 도출되는 결과물이다."
196
133
  - "scope.values 의 식별자는 적용 범위 레이블이며 실행 주체 (principal) 와 별개 개념이다."
197
134
  transition_kind:
198
135
  definition: "항목의 세 축 (tier / maturity / scope) 이동을 식별하는 전이 종류 enum. framework v1.0 §6 전이 정의의 lexicon 표상."
@@ -277,7 +214,7 @@ provisional_lifecycle:
277
214
  term_status_vocabulary: "authoring_rules.term_status_vocabulary — promoted 후 정식 등록 시 적용"
278
215
  citation_check_tool: "not wired in the current onto-mcp review runtime"
279
216
  recording_seat_structure: "W-D-03 — provisional_terms section 4 seat 구조 확정"
280
- refresh_protocol: "development-records/plan/20260413-refresh-protocol.md"
217
+ refresh_protocol: "not wired in the current onto-mcp runtime"
281
218
 
282
219
  # ---------------------------------------------------------------------------
283
220
  # Provisional Terms (W-D-03, D0 Bootstrap)
@@ -300,7 +237,7 @@ provisional_terms:
300
237
  downstream_consumer:
301
238
  - id: refresh_protocol
302
239
  role: "M-08 refresh protocol 주기적 scan — lifecycle_status 승격·폐기 판정"
303
- ref: "development-records/plan/20260413-refresh-protocol.md §3"
240
+ ref: "not wired in the current onto-mcp runtime"
304
241
  - id: citation_check
305
242
  role: "seed/candidate/provisional term 인용 금지 검증"
306
243
  ref: "not wired in the current onto-mcp review runtime"
@@ -331,100 +268,6 @@ provisional_terms:
331
268
  notes:
332
269
  - "DL-017 점진성 seat 3건 중 review 담당"
333
270
  - "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
271
  invoke_surface:
429
272
  term_id: invoke_surface
430
273
  lifecycle_status: seed
@@ -464,14 +307,17 @@ provisional_terms:
464
307
  registered_by: "Phase 1 host-decoupling (2026-04-17)"
465
308
  registered_date: "2026-04-17"
466
309
  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가 판정한다.
310
+ onto-mcp runtime이 host-bound external worker adapter를 사용할 수 있는지
311
+ 판정하는 detection 절차. canonical seat: src/core-runtime/discovery/host-detection.ts.
312
+ 현재 TS seat는 Codex worker availability와 Codex session signal 판정한다.
313
+ API key / local provider / model_id 선택은 host detection이 아니라
314
+ settings-driven LLM switcher가 판정한다.
471
315
  evidence:
472
316
  - "src/core-runtime/discovery/host-detection.ts (canonical seat)"
473
317
  notes:
474
- - "Host/team capability matrix는 canonical runtime path에서 제거했다. 현재 execution route는 worker, direct-call, mock 경로로 닫는다."
318
+ - "Host/team capability matrix는 canonical runtime path에서 제거했다. Review route는 auth_mode + model_provider + model_id + execution_adapter 축으로 표현해야 하며, 특정 brand host_runtime이 route 이름을 점유하면 안 된다."
319
+ - "현재 operational external-worker adapter 예시는 oauth+openai+codex_cli 이다. oauth+anthropic+claude_code 는 reserved/future 경로로 두며, 별도 패치에서 wire-up 한다."
320
+ - "api_key+openai/anthropic 는 settings-driven target capability로 분류한다. local+lmstudio+model_id 는 reserved/future 경로로 두며 이번 runtime naming migration 의 필수 구현·검증 범위에서 제외한다."
475
321
 
476
322
  main_worker_llm_axis:
477
323
  term_id: main_worker_llm_axis
@@ -479,21 +325,23 @@ provisional_terms:
479
325
  registered_by: "Phase 1 host-decoupling (2026-04-17)"
480
326
  registered_date: "2026-04-17"
481
327
  definition_draft: >
482
- review 실행에서 LLM 역할을 축으로 분리하는 모델.
328
+ review 실행에서 LLM 역할과 model routing 축을 분리하는 모델.
483
329
  - main LLM (orchestrator): 세션을 진행하고 lens 선택·synthesize 같은 메타 추론 수행
484
330
  - 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 차원에서 표현 불가능.
331
+ 두 LLM 은 같을 수도, 다를 수도 있다. LLM 선택은 auth_mode,
332
+ model_provider, model_id, base_url, execution_adapter를 분리해 표현한다.
333
+ 예: oauth + openai + model_id + codex_cli external worker,
334
+ api_key + openai/anthropic + model_id direct model call.
335
+ oauth + anthropic + model_id + claude_code 및
336
+ local + lmstudio + Qwen3_30B_A3B_Thinking_2507 + base_url local endpoint
337
+ reserved/future 경로로 두고 별도 패치에서 wire-up 한다.
338
+ 없으면 host_runtime 단일 축이 main/worker, auth, provider, model, adapter 결정을
339
+ 모두 묶어버려 cross-host·cross-model 조합이 type 차원에서 표현 불가능.
492
340
  evidence:
493
341
  - "src/core-runtime/discovery/settings-chain.ts (settings contract)"
494
342
  - "src/core-runtime/llm/model-switcher.ts (LLM provider/auth normalization)"
495
343
  notes:
496
- - "Phase 1: schema + 문서화만. Phase 2: worker_llm 직접 호출 (direct-call) 구현."
344
+ - "Route naming은 brand-agnostic이어야 한다. Codex/Claude Code 같은 brand는 execution_adapter 값으로만 등장한다."
497
345
  - "Phase 2 결정 1 (inline content vs function-calling loop): inline content mode 우선 — 8B 모델은 function-calling 신뢰도 낮음. function-calling loop 는 Phase 3."
498
346
  - "Phase 2 결정 2 (standalone main 시 LLM 호출 여부): TS process 가 별도 LLM 호출하여 lens 선택 + synthesize 수행 — 단순 dispatcher 가 아닌 별도 main LLM 사용."
499
347
 
@@ -501,11 +349,9 @@ provisional_terms:
501
349
  # Entities
502
350
  # ---------------------------------------------------------------------------
503
351
  # 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 개념의 부재는 누락이 아님.
352
+ # Current taxonomy terms include activity_enum and axis_enum.
353
+ # Non-review process entities are added only when their productized runtime path
354
+ # is designed.
509
355
 
510
356
  entities:
511
357
  learning:
@@ -576,11 +422,6 @@ entities:
576
422
  axiology:
577
423
  definition: "목적/가치 정합성, 숨겨진 tradeoff, 이해관계자 영향 검증"
578
424
  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
425
 
585
426
  review_process:
586
427
  canonical_label: "review_process"
@@ -614,13 +455,6 @@ entities:
614
455
  korean_label: "거버넌스 프로세스"
615
456
  definition: "govern entrypoint의 의도를 실행하는 프로세스. 규범 변경·drift 항목을 큐로 축적하고 주체자 판정을 이벤트 로그로 기록한다"
616
457
  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
458
  execution_rules_ref:
625
459
  process_contract: "not wired in the current onto-mcp review runtime"
626
460
  tool_surface: "future MCP govern tool after separate design"
@@ -628,7 +462,7 @@ entities:
628
462
  notes:
629
463
  - "W-C-01 v0 (2026-04-16): bounded minimum surface. 큐 기록만 제공. 승인 강제 차단은 W-C-02, 승급 경로·cross-project 규범은 W-C-03."
630
464
  - "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."
465
+ - "No govern runtime path is wired in current onto-mcp."
632
466
  - "승인 강제 차단 (pre-commit/CI/merge gate), 실제 diff 분석 drift probe 는 W-C-02 v1 이후."
633
467
 
634
468
  domain_document:
@@ -663,19 +497,24 @@ entities:
663
497
  review_record:
664
498
  canonical_label: "ReviewRecord"
665
499
  korean_label: "리뷰 기록"
666
- definition: "review 활동의 canonical 산출물. 검증 결과의 구조화된 계보(lineage) 기록. 이후 learning 생성 governance의 입력"
500
+ definition: "review 활동의 canonical 산출물. 검증 결과의 구조화된 계보(lineage) 기록. later learn/govern가 소비할 수 있는 primary review artifact 이지만, ReviewRecord 자체는 learning lifecycle 항목이 아니다."
667
501
  core_value: "이 개념이 없으면 검증 결과가 비구조적으로 흩어져, 학습 축적과 거버넌스 추적이 불가능하다"
668
502
  attributes:
669
- shared: [lifecycle_status]
503
+ shared: []
504
+ local:
505
+ record_status:
506
+ definition: "review runtime artifact의 완료/저하/중단 상태. shared lifecycle_status(seed/candidate/provisional/promoted)와 별도 축이다."
507
+ values:
508
+ completed: "review process가 필수 산출물을 완료"
509
+ completed_with_degradation: "review process가 완료됐지만 일부 degraded 경로 또는 경고를 기록"
510
+ halted_partial: "review process가 중단되어 부분 산출물만 신뢰 가능"
670
511
  execution_rules_ref:
671
512
  record_contract: ".onto/processes/review/record-contract.md"
672
- lifecycle_transition: "review_process 완료 시 seed → promote pipeline 진입"
513
+ status_validation: "src/core-runtime/review/review-record-validation.ts"
673
514
  notes:
674
- - "W-A-63에서 term → entity 승격. lifecycle_status 부여."
515
+ - "W-A-63에서 term → entity 승격."
675
516
  - "review_process.relations의 produces → creates 전환 완료."
676
- legacy_aliases:
677
- - alias: "review_record_term"
678
- context: "Pre-W-A-63 term entry. Entity 승격 전의 terms section 항목."
517
+ - "기존 `seed → promote` 언급은 learn/framework promotion 흔적이다. promote 전이는 Experience → Learning 또는 learning_to_principle_promotion 계열에서 다루며, ReviewRecord에는 적용하지 않는다."
679
518
 
680
519
  principle:
681
520
  canonical_label: "principle"
@@ -718,7 +557,7 @@ entities:
718
557
  note: "canonicalize 전이 (framework §6.3). Tier 1 learning · Tier 2 ontology/medium_reference/domain_document 중 하나를 source 로 받아 snapshot copy. R2-IA-4 — target 을 4 종 전체로 확장."
719
558
  execution_rules_ref:
720
559
  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)."
560
+ lifecycle_transition: "principle entity 는 shared_attributes.lifecycle_status 를 보유한다. Principle lifecycle transition execution is not wired in the current runtime."
722
561
  consumption_rule: "모든 onto 활동이 실행 전 관련 principle 을 ref. 위반 시 활동이 거부되거나 Principal 승인 요구."
723
562
  govern_zone: "framework v1.0 §11.1 zone matrix — 모든 T3 cell 은 govern 강제 zone."
724
563
  notes:
@@ -742,9 +581,6 @@ entities:
742
581
  notes:
743
582
  - "W-A-70에서 term → entity 승격. entrypoint와의 dispatches relation으로 실행 체인 추적 완성."
744
583
  - "§1.1 주체자 core concept 정합."
745
- legacy_aliases:
746
- - alias: "designer"
747
- context: "Retired design-context role name. Principal이 design entrypoint를 호출할 때 수행하던 역할의 구 명칭."
748
584
 
749
585
  entrypoint:
750
586
  canonical_label: "entrypoint"
@@ -754,9 +590,10 @@ entities:
754
590
  core_value: "이 개념이 없으면 주체자의 의도와 시스템 프로세스 사이에 해석 공백이 생긴다"
755
591
  notes:
756
592
  - >
757
- 현재 review instance dispatch target relation을 보유한다.
758
- 나머지 instance자체 notes에 deferred 상태를 명시하며, 이는 모델링 누락이 아니라 의도적 지연이다.
759
- instance의 Stage 3 dispatch target relation 도입은 `project_principal_stage3_backlog.md` 참조.
593
+ review instance productized dispatch target relation을 보유한다.
594
+ reconstructactive experimental build surface와 MCP/direct-call 도구를 보유하지만
595
+ production publish 전이므로 canonical production dispatch/process relation 아직 고정하지 않는다.
596
+ learn/evolve는 자체 notes에 deferred 상태를 명시하며, 이는 모델링 누락이 아니라 의도적 지연이다.
760
597
  instances:
761
598
  review:
762
599
  definition: "9-lens 구조로 검증"
@@ -765,13 +602,8 @@ entities:
765
602
  reconstruct:
766
603
  definition: "product로부터 ontology를 역설계하여 구축"
767
604
  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 보호."
605
+ - "status: active experimental build surface; production publish 전."
606
+ - "MCP/direct-call reconstruct tools and contracts exist, but production dispatch target relation remains pending until reconstruct is promoted from experimental to published."
775
607
  learn:
776
608
  definition: "학습 축적·승격·큐레이션·감사"
777
609
  notes: ["dispatch target: deferred to Stage 3 (intentional, not modeling omission)"]
@@ -781,8 +613,8 @@ entities:
781
613
  - { type: dispatches, target: govern_process }
782
614
  notes:
783
615
  - "v0.12.0 (W-C-01, 2026-04-16): dispatch target relation 도입. 기존 'deferred to Stage 3' 해소."
784
- design:
785
- definition: "대상을 분석하고 설계 문서를 생성"
616
+ evolve:
617
+ definition: "기존 대상에 영역·행동·운영 조건을 설계하고 진화시킨다"
786
618
  notes: ["dispatch target: deferred to Stage 3 (intentional, not modeling omission)"]
787
619
 
788
620
  LlmCompatibleProxy:
@@ -804,12 +636,12 @@ entities:
804
636
  config_schema: "src/core-runtime/discovery/settings-chain.ts:OntoConfig"
805
637
  notes:
806
638
  - "구현 인스턴스 예: LM Studio local endpoint (openai wire-format). 벤더 이름은 lexicon에 직접 넣지 않는다"
807
- - "codex CLI OAuth 경로와 구별됨 — OAuth 토큰은 chatgpt.com 백엔드 전용이라 프록시 wire-format으로 접근 불가. Codex worker 실행이 필요하며 이는 LlmBillingMode=subscription 경로로 별도 분류된다"
639
+ - "OAuth external-worker adapter 경로와 구별됨 — OAuth 토큰은 provider/backend별 host adapter가 소유하므로 단순 프록시 wire-format으로 접근 가능한 provider API key가 아니다. Codex CLI, Claude Code 같은 brand는 execution_adapter 값으로만 분류한다."
808
640
 
809
641
  LlmBillingMode:
810
642
  canonical_label: "LlmBillingMode"
811
643
  korean_label: "LLM 과금 모드"
812
- definition: "provider 호출당 한계비용 구조의 분류. 구독제·토큰당 과금·variable 등 billing 속성 자체만 다룸. 호출 경로의 선호 순위는 이 개념이 아니라 resolver 정책 층에서 관리된다."
644
+ definition: "provider 호출당 한계비용 구조의 분류. 구독제·토큰당 과금·local 실행 등 billing 속성 자체만 다룸. 호출 경로의 선호 순위는 이 개념이 아니라 resolver 정책 층에서 관리된다."
813
645
  core_value: "이 개념이 없으면 provider 목록이 단순 열거로만 남아 '구독제와 per-token 과금의 비용 구조가 왜 다른지'가 코드에서만 설명되고 개념 공간에서 사라진다. 과금 특성을 rank-1에 박제해 두면 운영·감사·회계가 일관된 용어로 논의 가능."
814
646
  attributes:
815
647
  shared: []
@@ -819,7 +651,7 @@ entities:
819
651
  values:
820
652
  subscription: "사전 정액제. 호출당 한계비용이 0에 수렴 (rate limit까지). 예: codex CLI의 chatgpt OAuth"
821
653
  per_token: "입출력 토큰 수 기반 과금. 호출량과 비용이 선형. 예: Anthropic API, OpenAI API"
822
- variable: "경로별로 0 또는 per-token일 있음. 로컬 엔드포인트 뒤의 실제 backend가 외부 비용을 만들 있을 때 사용"
654
+ local: "로컬 또는 자체 호스팅 모델 실행. Review 경로 예시 local + lmstudio + Qwen3_30B_A3B_Thinking_2507 reserved/future"
823
655
  # cost_order_rank removed (2026-04-15): ranking은 사용자 상황(보유 구독·API
824
656
  # 예산·context 여유·로컬 하드웨어 등) 의존적이므로 authority rank-1에 고정하지
825
657
  # 않는다. 기본 정책(stay-in-host 등)은 resolver 정책 층이 제공하고, 사용자가
@@ -827,15 +659,14 @@ entities:
827
659
  # 근거: 20260415T1700-execution-realization-priority-design.md D7.
828
660
  execution_rules_ref:
829
661
  classification_consumer: "src/core-runtime/llm/llm-caller.ts (provider 해소 정책에서 billing mode 분류를 참조)"
830
- design_record: "archived legacy learning rules (not current runtime authority)"
831
662
  notes:
832
663
  - "이 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)"
664
+ - "현재 runtime audit 값은 LlmCallResult.declared_billing_mode = subscription | per_token | local 이다. 로컬 프록시 뒤의 실제 비용 구조가 복잡한 경우 별도 cost metadata로 확장하며, provider/route 이름에 섞지 않는다."
834
665
 
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로 닫는다."
666
+ ReviewReasoningUnitExecutionRoute:
667
+ canonical_label: "ReviewReasoningUnitExecutionRoute"
668
+ korean_label: "리뷰 추론 단위 실행 경로"
669
+ definition: "review 작업에서 lens reasoning unit을 어떤 실행 경로로 호출하는가를 규정하는 brand-agnostic 축. route 이름은 external_oauth_worker, direct_model_call 처럼 일반 경로를 표현하고, Codex/Claude Code 같은 brand는 execution_adapter 값으로만 표현한다."
839
670
  core_value: "이 개념이 없으면 execution_realization과 provider/auth 설정이 단순 문자열 조합으로 흩어져, 어떤 경로가 독립 context를 제공하고 어떤 경로가 direct HTTP 호출인지 판단하기 어렵다."
840
671
  attributes:
841
672
  shared: []
@@ -854,46 +685,148 @@ entities:
854
685
  billing_source:
855
686
  definition: "실행 비용이 청구되는 자원 rail (누가·어떤 계정이 지불하느냐). 과금 방식(subscription vs per-token 등) 자체의 분류는 별도 개념 `LlmBillingMode`가 담당 — 이 필드는 rail 식별만 한다."
856
687
  values:
857
- chatgpt_account: "~/.codex/auth.json OAuth mode 경유 chatgpt 계정이 지불"
688
+ subscription_account: "OAuth external-worker adapter가 사용하는 구독/host 계정이 지불"
858
689
  api_provider_account: "OPENAI/ANTHROPIC/XAI 등 provider API key 계정이 지불"
859
690
  local_or_self_hosted: "로컬 모델 또는 자체 호스팅 (외부 지불 없음)"
860
691
  instances:
861
- worker_codex:
692
+ external_oauth_worker:
862
693
  execution_realization: "worker"
863
- host_runtime: "codex"
694
+ execution_route: "external_oauth_worker"
695
+ auth_mode: "oauth"
696
+ model_provider: "openai | anthropic"
697
+ model_id: "required"
698
+ execution_adapter: "codex_cli | claude_code"
864
699
  orchestration_locus: "external_worker"
865
700
  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:
701
+ billing_source: "subscription_account"
702
+ notes: "Operational adapters: oauth + openai + model_id + codex_cli, and oauth + anthropic + model_id + claude_code. Worker route is not Codex-specific; the brand lives only in execution_adapter. The claude_code worker reuses the same structured-output submit contract as codex_cli and projects legacy host_runtime=anthropic (no separate claude host enum)."
703
+ direct_model_call:
869
704
  execution_realization: "direct-call"
870
- host_runtime: "openai | anthropic | grok | lmstudio"
705
+ execution_route: "direct_model_call"
706
+ auth_mode: "api_key | local"
707
+ model_provider: "openai | anthropic | grok; reserved/future: lmstudio"
708
+ model_id: "required; reserved/future example: Qwen3_30B_A3B_Thinking_2507 for local+lmstudio"
709
+ base_url: "optional for hosted providers, required or defaulted for local/proxy providers"
710
+ wire_format: "native_sdk | openai_compatible"
871
711
  orchestration_locus: "direct_runtime_call"
872
712
  context_cost: "bounded_direct_call"
873
713
  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."
714
+ notes: "Current target capability includes api_key+openai/anthropic/grok. local+lmstudio+model_id is reserved/future for this migration scope. Provider, model_id, base_url, and wire_format are settings-driven LLM switcher outputs, not route names."
882
715
  execution_rules_ref:
883
716
  resolution_profile: "src/core-runtime/cli/review-invoke.ts:resolveExecutionProfile"
884
717
  resolution_handoff: "src/core-runtime/cli/review-invoke.ts:resolveExecutionRealizationHandoff"
885
- codex_executor: "src/core-runtime/cli/codex-review-unit-executor.ts"
718
+ external_worker_adapter_codex_cli: "src/core-runtime/cli/codex-review-unit-executor.ts"
719
+ external_worker_adapter_claude_code: "src/core-runtime/cli/claude-code-review-unit-executor.ts"
720
+ external_worker_shared_structured_output: "src/core-runtime/cli/worker-structured-output.ts"
886
721
  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
722
  notes:
889
- - "Priority(선호 순서)는 사용자 상황 의존적이므로 entry에 고정하지 않는다. Override 수단: `.onto/settings.json` `review.execution`, `llm` switcher."
723
+ - "Previous agent-spawn naming was too narrow because direct-call is not agent spawn and worker routes are not Codex-specific."
724
+ - "Compatibility artifact fields may still contain `codex`, `host_runtime`, or `runtime_provider` until the runtime migration catches up; this entity defines the canonical target classification."
725
+ - "Priority(선호 순서)는 사용자 상황 의존적이므로 이 entry에 고정하지 않는다. Override 수단: `.onto/settings.json` 의 `review.execution` actor-owned LLM settings."
890
726
  - "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."
727
+ - "Reserved/future local model access will be represented by actor-owned `llm.auth: local` + `llm.provider: lmstudio` + explicit `llm.model`. Review orchestration remains selected by the `review:` block."
728
+
729
+ ReviewOrchestrationOwner:
730
+ canonical_label: "ReviewOrchestrationOwner"
731
+ korean_label: "리뷰 오케스트레이션 소유자"
732
+ definition: "review의 라운드 루프(다음 ready unit 산출 → 실행 → 검증·전진 → assemble)를 누가 구동하는가를 규정하는 brand-agnostic 축. runtime은 onto TS 런타임이 한 MCP 호출 안에서 전 라운드를 구동(A, 블랙박스), host는 외부 host가 round/advance MCP 호출로 라운드 루프를 소유(B). prepare 시 세션에 불변 각인된다."
733
+ core_value: "이 개념이 없으면 'onto가 unit을 spawn하는가, 외부 host가 spawn하는가'가 설정·코드 경로에 암묵적으로 흩어져, 한 세션을 두 주체가 구동하는 이중 실행/누수를 구조적으로 막을 수 없다. 이 축이 단일 dispatch 소유권과 A/B fail-closed 경계의 기준점이다."
734
+ attributes:
735
+ shared: []
736
+ local:
737
+ loop_driver:
738
+ definition: "라운드 루프(frontier 산출·unit 실행·advance·assemble)를 구동하는 주체"
739
+ values:
740
+ onto_runtime: "onto TS 런타임이 MCP 호출 내부에서 전 라운드를 구동"
741
+ external_host: "외부 host가 round/advance MCP 호출로 라운드 루프를 소유"
742
+ unit_dispatch:
743
+ definition: "reasoning/issue/deliberation/synthesize unit을 누가 spawn하는가"
744
+ values:
745
+ onto_spawns: "onto가 executor subprocess를 spawn (runtime)"
746
+ host_spawns: "host가 자기 fabric에서 unit을 실행하고 seat 내용만 canonical output_path에 기록 (host)"
747
+ authority_invariant:
748
+ definition: "loop_driver와 무관하게 artifact 진실성을 소유하는 주체 (어느 locus든 불변)"
749
+ values:
750
+ onto_owns_artifact_truth: "ledger·execution-result·lens-completion-barrier·review-record·trust는 항상 onto가 기록 (host는 seat 내용만 기록)"
751
+ instances:
752
+ runtime:
753
+ loop_driver: "onto_runtime"
754
+ unit_dispatch: "onto_spawns"
755
+ authority_invariant: "onto_owns_artifact_truth"
756
+ settings_value: "review.execution.orchestration: runtime (미지정 기본)"
757
+ entry_tools: "onto_review / (onto_prepare_review + onto_review_continue)"
758
+ notes: "기본·무회귀 경로(A). host 세션에 이 경로(executeReviewPromptExecution)를 호출하면 spawn 전 fail-closed 거부."
759
+ host:
760
+ loop_driver: "external_host"
761
+ unit_dispatch: "host_spawns"
762
+ authority_invariant: "onto_owns_artifact_truth"
763
+ settings_value: "review.execution.orchestration: host (topology는 main-workers·nested-workers 모두 허용 — roadmap S2에서 host×nested 차단 해제)"
764
+ entry_tools: "onto_prepare_review + onto_review_round / onto_review_advance"
765
+ notes: "opt-in 경로(B). runtime 세션에 round/advance를 호출하면 fail-closed 거부. flat은 unit별 실행, nested는 라운드 배치를 NestingBatchWorker에 위임. live 심의는 S3."
766
+ distinction_from_route:
767
+ orchestration_locus: "ReviewReasoningUnitExecutionRoute.orchestration_locus는 '한 unit이 어디서 실행되나'(runtime_main/external_worker/direct_runtime_call)를 규정하는 직교 축이다. ReviewOrchestrationOwner는 '리뷰 라운드 루프를 누가 구동하나'를 규정한다. 이름이 비슷하나 결합되지 않는다 — host 세션이라도 각 unit의 execution route(orchestration_locus)는 별개로 선택된다."
768
+ execution_rules_ref:
769
+ settings_key: "src/core-runtime/discovery/settings-chain.ts (review.execution.orchestration; 양 topology와 조합 가능)"
770
+ durable_stamp: "src/core-runtime/review/materializers.ts (session-metadata + execution-plan에 불변 각인)"
771
+ capability_surface_guards: "src/core-runtime/review/orchestration-owner.ts (assertHostOrchestratedSession / assertRuntimeOrchestratedSession)"
772
+ runtime_round_engine: "src/core-runtime/review/review-execution-steps.ts (reviewRound / reviewAdvance + 공유 step 함수: computeReviewFrontier·ensureUnitPacket·validateUnitSeatToResult·mergeUnitResultIntoExecutionResult·finalizeStageGate)"
773
+ host_round_tools: "src/core-api/review-api.ts (reviewRound/reviewAdvance) + src/mcp/server.ts (onto_review_round/onto_review_advance)"
774
+ reference_host: "src/core-runtime/cli/host-orchestration-reference-driver.ts"
775
+ contract_ref: ".onto/processes/review/host-orchestration-contract.md"
776
+ notes:
777
+ - "prepare가 settings의 orchestration을 세션에 각인하면 생애 불변 — 한 세션은 정확히 한 locus만 구동한다(이중 실행·누수 차단)."
778
+ - "A·B는 '유닛을 누가 실행하나'만 다르다. packet 생성·seat 검증·결과 기록·stage gate·frontier·assemble은 단일 공유 구현(review-execution-steps.ts)을 쓴다. 4f rebase 이후 A의 post-lens 시퀀싱도 동일 frontier(computeReviewFrontier)+seat gate가 구동한다(run-review-prompt-execution.ts의 stage-routed frontier loop; lens는 정의상 stage 0으로 pre-loop) — 루프 구현이 단일화됐다."
779
+ - "전체 파이프라인 host 구동(compound runtime unit map/reduce 포함)은 PR #22로 완성 — reference host mock E2E가 completed ReviewRecord 도달을 증명한다. nested 라운드 배치는 NestingBatchWorker(S2) 참조."
780
+ - "live 심의 실험(S3)은 host 실현 자유의 한 사례다 — deliberation 유닛의 동료 관점 수송만 teammate 간 SendMessage 교환으로 바꾸며, seat·검증·gate·record 계약은 불변(신규 개념 없음): .onto/processes/review/live-deliberation-experiment-contract.md (Experimental)."
781
+
782
+ NestingBatchWorker:
783
+ canonical_label: "NestingBatchWorker"
784
+ korean_label: "네스팅 배치 워커"
785
+ definition: "nested-workers topology의 실행 계약: outer 워커 하나가 ready unit 배치를 받아 build-time에 전부 interpolate된 literal bash script를 실행해 unit-executor subprocess들을 병렬 fan-out하고, 각 unit의 canonical seat 기록을 보장한 뒤 UNIT_DISPATCH_SUMMARY 한 줄로 배치 요약을 보고한다. brand(codex/claude)와 ReviewOrchestrationOwner(A/B)에 중립."
786
+ core_value: "이 개념이 없으면 'nested가 flat과 같은 unit 계약을 실행하는가'가 brand별 구현에 암묵적으로 흩어진다. inner=unit-executor 불변식이 구조적 출력·검증·재시도 동등성을 코드 공유로 보장한다 — 과거 raw provider-CLI inner가 구조적 출력을 우회해 fail-closed된 원인을 제거한 단일 기준점."
787
+ attributes:
788
+ shared: []
789
+ local:
790
+ inner_invocation:
791
+ definition: "배치의 각 unit을 실행하는 주체"
792
+ values:
793
+ unit_executor_subprocess: "flat 경로가 spawn하는 것과 동일한 unit-executor CLI(구조적 출력·검증·재시도 코드 공유). raw provider-CLI inner는 계약 위반"
794
+ outer_role:
795
+ definition: "outer 워커의 유일한 역할"
796
+ values:
797
+ literal_script_executor: "생성된 literal bash script를 bash -s로 실행하고 stdout을 verbatim 표면화 — 추론·변수 치환·파일도구 사용 금지"
798
+ summary_authority:
799
+ definition: "배치 요약(UNIT_DISPATCH_SUMMARY)의 권위 수준"
800
+ values:
801
+ observational: "관찰 보조 신호. seat 진실성 판정은 onto(validateUnitSeatToResult)가 소유. 요약에 누락된 unit은 fail(보고 불이행) — silent drop은 구성상 불가"
802
+ instances:
803
+ codex_outer:
804
+ inner_invocation: "unit_executor_subprocess"
805
+ outer_role: "literal_script_executor"
806
+ summary_authority: "observational"
807
+ spawn: "codex exec --sandbox danger-full-access (outer가 subprocess를 spawn해야 함; inner unit executor는 자체 read-only sandbox 유지), prompt는 stdin"
808
+ claude_outer:
809
+ inner_invocation: "unit_executor_subprocess"
810
+ outer_role: "literal_script_executor"
811
+ summary_authority: "observational"
812
+ spawn: "claude -p <prompt positional> --allowedTools Bash --permission-mode bypassPermissions --strict-mcp-config (빈 MCP). service_tier 표면 없음(API 전용), effort→--effort"
813
+ execution_rules_ref:
814
+ batch_contract: "src/core-runtime/review/nesting-batch.ts (buildNestingBatchScript / buildNestingBatchWorkerPrompt / parseNestingBatchSummary / reconcileNestingBatchOutcomes)"
815
+ codex_realization: "src/core-runtime/cli/codex-nesting-batch-worker.ts (runCodexNestingBatchWorker)"
816
+ claude_realization: "src/core-runtime/cli/claude-nesting-batch-worker.ts (runClaudeNestingBatchWorker)"
817
+ a_path_bridge: "src/core-runtime/cli/nested-batch-dispatch.ts (executeReviewViaNestedBatch — units/inner argv는 호출자가 flat과 동일하게 구성: parity by construction)"
818
+ b_path_driver: "src/core-runtime/cli/host-orchestration-reference-driver.ts (executeBatch — 라운드 배치 위임)"
819
+ equivalence_gate: "src/core-runtime/cli/nesting-four-cell-equivalence.test.ts ({A,B}×{codex,claude} 4셀 seat/outcome 동등성)"
820
+ contract_ref: ".onto/processes/review/nesting-batch-worker-contract.md"
821
+ notes:
822
+ - "topology 값(main-workers|nested-workers)은 기존 ReviewExecutionMode 설정 축을 재사용 — 신규 settings 키 없음."
823
+ - "A에서는 lens 단계 + downstream wide 3단계(issue-stance per-lens·per-issue deliberation·per-issue synthesis)가 nested 배치로 실행된다 — 배치는 attempt #1이고 실패 유닛은 flat retry 루프로 잔여 예산을 소진(retry 의미론 불변), wave 폭은 flat pool cap과 동일(dispatch_width). 단일-유닛 체인 단계와 continuation/repair는 flat per-unit 루프(fan-out 부재; 동일 unit-executor·동일 seat 계약). B에서는 host가 라운드 단위로 배치를 위임할 수 있다."
824
+ - "outer 비순응(요약 누락·unit 누락·timeout)은 해당 unit fail로 수렴하고 seat 검증은 onto 소유 → fail-closed. nested에서 지원되지 않는 executor(direct_call)는 A 진입에서 nested_workers_executor_unsupported로 거부."
892
825
 
893
826
  # -------------------------------------------------------------------------
894
827
  # Framework v1.0 entities (§8.1, §8.6) — scope axis + Tier 1/2 types
895
828
  # Added in lexicon v0.15.0 (2026-04-20) per
896
- # development-records/evolve/20260419-knowledge-framework.md.
829
+ # Historical framework sync note is isolated outside runtime authority.
897
830
  # -------------------------------------------------------------------------
898
831
 
899
832
  product:
@@ -916,7 +849,6 @@ entities:
916
849
  cardinality: "many-to-one"
917
850
  notes:
918
851
  - "framework v1.0 §2.1 에서 entity 격상. onto-direction §1 의 'product' prose 정의와 정합."
919
- - "legacy 어휘 'project' (전역) 는 본 entity 로 통합 — framework §8.5 retire."
920
852
  - "v0.18.0 (2026-04-20, framework v1.0.1 sync): `described_by` relation 제거 — `ontology.describes` 가 canonical owner (single owner 원칙). 소비자는 ontology.describes 에서 derived 읽기."
921
853
  - "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
854
 
@@ -1001,7 +933,6 @@ entities:
1001
933
  shared: [lifecycle_status]
1002
934
  notes:
1003
935
  - "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
936
  - "compound verb (promote_and_generalize) 의 target=methodology 는 v1 enum 에서 미정의 — methodology Learning 직접 생성 금지 (framework §6.4)."
1006
937
 
1007
938
  ontology:
@@ -1090,6 +1021,16 @@ terms:
1090
1021
  axis: "review_input"
1091
1022
  term_status: "active"
1092
1023
  definition: "Resolved review target as a scope or bundle, not necessarily a single file path."
1024
+ - term_id: "material_issue"
1025
+ canonical_label: "material_issue"
1026
+ korean_label: "material issue"
1027
+ axis: "review_result_classification"
1028
+ term_status: "active"
1029
+ definition: "Review result classification/disclosure derived by the canonical review material issue predicate; it is not a standalone enum and does not by itself block the hot path or stage progress."
1030
+ contract_ref: ".onto/processes/review/material-issue-contract.md"
1031
+ notes:
1032
+ - "Exact predicate and admission disqualifiers are owned by .onto/processes/review/material-issue-contract.md and implemented by src/core-runtime/review/review-result-classification.ts."
1033
+ - "Blocking is owned by deterministic runtime gates for structural or contract failures, not by semantic material issue disclosure."
1093
1034
  - term_id: "target_material_kind"
1094
1035
  canonical_label: "TargetMaterialKind"
1095
1036
  korean_label: "대상물 형식"
@@ -1134,6 +1075,54 @@ terms:
1134
1075
  - "`kinetic_surface` asks who can do what and what changes."
1135
1076
  - "`dynamic_surface` asks how decisions, permissions, state, exceptions, and external/runtime conditions change the answer."
1136
1077
  - "Canonical reconstruct contract seats: .onto/processes/reconstruct/ontology-seeding-and-maturation-design.md and .onto/processes/reconstruct/operational-ontology-seed-contract.md."
1078
+ - term_id: "answer_support"
1079
+ canonical_label: "AnswerSupport"
1080
+ korean_label: "답변 지원 근거"
1081
+ axis: "reconstruct_maturation"
1082
+ term_status: "active"
1083
+ definition: "Direct authority, runtime proof, user confirmation, authority response, or convergent source evidence that can support a maturation answer claim."
1084
+ notes:
1085
+ - "Answer-support rows are host-authored and runtime-validated; source-backed evidence requires source-safety and source-observation lineage authority before downstream consumption."
1086
+ - term_id: "source_safety_authority"
1087
+ canonical_label: "SourceSafetyAuthority"
1088
+ korean_label: "소스 안전성 권한"
1089
+ axis: "reconstruct_source"
1090
+ term_status: "active"
1091
+ definition: "Runtime authority for lifecycle, authorization, privacy, redaction, proof-sufficiency, replay, and consumption visibility of observed source records."
1092
+ notes:
1093
+ - "Consumption-specific rows distinguish prompt context, evidence support, public output, replay, and material claim use."
1094
+ - term_id: "reconstruct_run_control"
1095
+ canonical_label: "ReconstructRunControl"
1096
+ korean_label: "재구성 실행 제어"
1097
+ axis: "runtime_control"
1098
+ term_status: "active"
1099
+ definition: "Runtime authority for reconstruct session ownership, idempotency fingerprinting, active-attempt lock ownership, duplicate-start diagnostics, and observed file-hash write checkpoints."
1100
+ notes:
1101
+ - "Retry, resume, and partial-write recovery are not active trust claims until their explicit surfaces are promoted."
1102
+ - term_id: "claim_projection_authority"
1103
+ canonical_label: "ClaimProjectionAuthority"
1104
+ korean_label: "클레임 투영 권한"
1105
+ axis: "runtime_output"
1106
+ term_status: "active"
1107
+ definition: "Deterministic strongest-honest-claim projection consumed by reconstruct status, result, API, MCP, handoff, and final-output surfaces."
1108
+ notes:
1109
+ - "Projection rows must derive from upstream validation authorities and expose blocked recovery refs when an upstream authority is invalid."
1110
+ - term_id: "material_admission_authority"
1111
+ canonical_label: "MaterialAdmissionAuthority"
1112
+ korean_label: "물질성 승인 권한"
1113
+ axis: "reconstruct_maturation"
1114
+ term_status: "active"
1115
+ definition: "Runtime admission authority for purpose-critical adequacy elements, with a separate phase for literal source-backed material values when that phase is promoted."
1116
+ notes:
1117
+ - "Purpose adequacy elements are not identical to material values; the active runtime writes pre_seed_purpose_element rows."
1118
+ - term_id: "source_observation_lineage_index"
1119
+ canonical_label: "SourceObservationLineageIndex"
1120
+ korean_label: "소스 관찰 계보 인덱스"
1121
+ axis: "reconstruct_source"
1122
+ term_status: "active"
1123
+ definition: "Session-level index binding source-observation deltas, delta validations, re-entry validations, frontier kind, round, and added observation ids before downstream answer-support consumption."
1124
+ notes:
1125
+ - "The validation artifact must prove exact upstream delta and re-entry validation identity, not only overlapping observation ids."
1137
1126
  - term_id: "pipeline_execution_ledger"
1138
1127
  canonical_label: "PipelineExecutionLedger"
1139
1128
  korean_label: "파이프라인 실행 단위 원장"
@@ -1151,9 +1140,6 @@ terms:
1151
1140
  axis: "execution_unit"
1152
1141
  term_status: "active"
1153
1142
  definition: "A reasoning unit that does not share main-context state, consumes contract-bounded input, and produces contract-bounded output independently."
1154
- legacy_aliases:
1155
- - alias: "worker"
1156
- context: "Prototype files sometimes use 'worker' to mean any context-isolated unit, not just the execution_realization value."
1157
1143
  notes:
1158
1144
  - "Typical realizations include an Agent Teams teammate, a worker, an MCP-isolated LLM, or an external model worker."
1159
1145
  - "The canonical concept is the context-isolated reasoning property, not a specific host implementation."
@@ -1162,7 +1148,7 @@ terms:
1162
1148
  korean_label: "리뷰 실행 설정"
1163
1149
  axis: "execution_profile"
1164
1150
  term_status: "active"
1165
- definition: "Runtime-resolved review execution descriptor derived from `.onto/settings.json` `review.execution`, the LLM switcher, and host capability signals."
1151
+ definition: "Runtime-resolved review execution descriptor derived from `.onto/settings.json` `review.execution`, actor-owned LLM settings, and host capability signals."
1166
1152
  allowed_modes:
1167
1153
  - "main-workers"
1168
1154
  - "nested-workers"
@@ -1180,23 +1166,36 @@ terms:
1180
1166
  term_status: "active"
1181
1167
  definition: "Project/user settings shape under `.onto/settings.json` `review.execution`."
1182
1168
  allowed_keys:
1183
- - "mode"
1184
- - "teamlead.seat"
1185
- - "teamlead.llm"
1186
- - "lens.seat"
1187
- - "lens.llm"
1188
- - "synthesize.seat"
1189
- - "synthesize.llm"
1169
+ - "executor"
1170
+ - "topology"
1171
+ - "actors.teamlead.seat"
1172
+ - "actors.teamlead.llm"
1173
+ - "actors.lens.seat"
1174
+ - "actors.lens.llm"
1175
+ - "actors.synthesize.seat"
1176
+ - "actors.synthesize.llm"
1190
1177
  - "deliberation"
1178
+ - "retry"
1179
+ - "units"
1180
+ - "units.*.llm"
1181
+ - "units.*.max_tokens"
1182
+ - "units.*.tool_mode"
1183
+ - "units.*.timeout_ms"
1184
+ - "units.*.max_retries"
1185
+ - "units.*.retry_initial_delay_ms"
1186
+ - "units.*.max_output_bytes"
1191
1187
  notes:
1192
1188
  - "Type source: `src/core-runtime/discovery/settings-chain.ts`."
1193
1189
  - "Unknown keys fail settings loading."
1190
+ - "`settings.json/v3` canonical structure uses full actor-owned `review.execution.actors.*.llm` objects; missing schema and v1/v2 settings fail settings loading."
1191
+ - "`executor: auto` lets runtime derive the external-worker/direct-call route. Current compatibility values `codex` and `direct_call` pin executor behavior, but canonical route naming is owned by ReviewReasoningUnitExecutionRoute."
1194
1192
  - "`deliberation` is `controlled-lens-deliberation`."
1195
1193
  - "`deliberation` selects a process mode; it is not an actor invocation profile."
1196
- - "In `nested-workers`, `teamlead.llm` and `lens.llm` are independent actor seats."
1197
- - "`synthesize.llm` is an independent post-deliberation actor seat."
1198
- - "`llm: inherit` means the actor uses the root `llm` object after settings merge."
1199
- - "Actor `llm` objects without `auth` and `provider` overlay the root `llm` object."
1194
+ - "`retry` owns global retry defaults; `units` owns per-unit overrides for LLM, token, tool-mode, timeout, retry, and output-byte settings."
1195
+ - "In `nested-workers`, `actors.teamlead.llm` and `actors.lens.llm` are independent actor seats."
1196
+ - "`actors.synthesize.llm` is an independent post-deliberation actor seat."
1197
+ - "Canonical v3 actor `llm` objects are full replacement settings, not partial overlays."
1198
+ - "Root/default LLM settings and actor inheritance are rejected by settings loading."
1200
1199
  - term_id: "lens_prompt_contract"
1201
1200
  canonical_label: "LensPromptContract"
1202
1201
  korean_label: "lens 프롬프트 계약"
@@ -1383,59 +1382,11 @@ terms:
1383
1382
  - "reconstruct"
1384
1383
  - "learn"
1385
1384
  - "govern"
1386
- legacy_aliases:
1387
- - alias: "build"
1388
- retire_kind: "renamed"
1389
- canonical_replacement: "reconstruct"
1390
- retire_date: "2026-04-13"
1391
- context: >
1392
- Legacy activity name retired 2026-04-13 via DR-M00-04 homonym mapping.
1393
- Scope: build 명칭은 activity 지칭에서 retired 됐다. 현재 onto-mcp runtime은 review만 wired 상태이며 reconstruct는 별도 설계 후 다시 도입한다. `npm run build:ts-core` 는 TypeScript 컴파일 명령으로 activity 와 무관하다.
1394
- - alias: "design"
1395
- retire_kind: "renamed"
1396
- canonical_replacement: "evolve"
1397
- retire_date: "2026-04-15"
1398
- context: >
1399
- Legacy activity name retired 2026-04-15 via W-A-78 (entrypoint-only rename).
1400
- Scope: design entrypoint 명칭은 evolve로 대체 예정이나 현재 onto-mcp runtime에는 evolve 경로가 wired 되지 않았다. 방법론 term의 자연어 "설계"는 entrypoint 명칭과 별개로 유지할 수 있다.
1401
- - alias: "ask"
1402
- retire_kind: "retired"
1403
- canonical_replacement: null
1404
- retire_date: "2026-04-13"
1405
- context: >
1406
- §1.2 에서 폐기 선언 (2026-04-13). 대체 없음 — 필요 시 단일 lens review 로 대체.
1407
- 단일 lens 질의는 review 계열에서 다룬다.
1408
- - alias: "E"
1409
- retire_kind: "shortcode"
1410
- canonical_replacement: "reconstruct"
1411
- retire_date: null
1412
- context: "Single-letter shortcode used in consolidated.md Activity column (DR-M00-03). Decoded at read time. legacy_aliases 에 등재하여 validator 가 unknown value 거부하지 않도록 함."
1413
- - alias: "D"
1414
- retire_kind: "shortcode"
1415
- canonical_replacement: "evolve"
1416
- retire_date: null
1417
- context: "Single-letter shortcode. Decoded at read time."
1418
- - alias: "R"
1419
- retire_kind: "shortcode"
1420
- canonical_replacement: "review"
1421
- retire_date: null
1422
- context: "Single-letter shortcode. Decoded at read time."
1423
- - alias: "L"
1424
- retire_kind: "shortcode"
1425
- canonical_replacement: "learn"
1426
- retire_date: null
1427
- context: "Single-letter shortcode. Decoded at read time."
1428
- - alias: "G"
1429
- retire_kind: "shortcode"
1430
- canonical_replacement: "govern"
1431
- retire_date: null
1432
- context: "Single-letter shortcode. Decoded at read time."
1433
1385
  notes:
1434
- - "Canonical definition source: development-records/evolve/20260413-onto-direction.md#§1.2 (as_of=2026-04-13)."
1386
+ - "Canonical definition source is now this lexicon entry; historical direction notes are not runtime authority."
1435
1387
  - "Consumers: M-05/M-06/M-07/M-08 work items (activity field), consolidated.md frontmatter activity_enum_ref, Expansion Protocol."
1436
1388
  - "Reference format: `.onto/authority/core-lexicon.yaml#activity_enum.v<lexicon_version>` (DR-M04-02). lexicon_version bump 시 reader 재파싱."
1437
1389
  - "Homonym caution: 본 enum 의 'activity' 는 onto taxonomy 단위이며, 일반 한국어 '활동' 과 혼동하지 않도록 consumer 는 canonical_label 인 'activity' 를 taxonomy 문맥에서만 사용."
1438
- - "legacy_aliases.retire_kind 분류 (v0.6.1 추가): `renamed` = canonical replacement 가 있는 rename, `retired` = 대체 없는 폐기, `shortcode` = 단축 표기 형식 (의미 동일, 표기만 축약)."
1439
1390
  - term_id: "axis_enum"
1440
1391
  canonical_label: "axis"
1441
1392
  korean_label: "축"
@@ -1448,57 +1399,15 @@ terms:
1448
1399
  - "B"
1449
1400
  - "C"
1450
1401
  - "D"
1451
- legacy_aliases: [] # v0.6.1 slot 신설 (E-05). 현재 empty. 축 rename·retire 발생 시 activity_enum 과 동일 구조로 기록.
1452
1402
  notes:
1453
1403
  - "A = entrypoint 구현 (활동별). 다섯 활동의 command·process·calling convention."
1454
1404
  - "B = 기반 인프라 (공통). product·ontology·review runtime 저장·처리 공통 인프라."
1455
1405
  - "C = 자율성 진화 (메타). self-application 메커니즘 + drift 판정 + 큐·승인 흐름 + 수준 0→1→2 엔진."
1456
1406
  - "D = 상시 원칙 (교차). lexicon provisional lifecycle. 모든 축 교차 원칙, 독립 축 아님."
1457
1407
  - "Axis 간 의존 (§1.5 derived): A→B (활동 구현은 인프라 위에서 작동), C→{A,B} (자율성은 A·B 최소 1사이클 운영 후 설계), D→{A,B,C} (모든 축 교차)."
1458
- - "Canonical definition source: development-records/evolve/20260413-onto-direction.md#§1.5 (as_of=2026-04-13)."
1408
+ - "Canonical definition source is now this lexicon entry; historical direction notes are not runtime authority."
1459
1409
  - "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."
1460
1410
  - "Reference format: `.onto/authority/core-lexicon.yaml#axis_enum.v<lexicon_version>` (DR-M04-02)."
1461
- - term_id: "fact_type"
1462
- canonical_label: "fact type"
1463
- korean_label: "사실 유형"
1464
- translation_mode: "preserved"
1465
- axis: "onto_taxonomy"
1466
- term_status: "deprecated"
1467
- 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."
1468
- allowed_values:
1469
- - "entity"
1470
- - "enum"
1471
- - "property"
1472
- - "relation"
1473
- - "code_mapping"
1474
- - "state_transition"
1475
- - "command"
1476
- - "query"
1477
- - "policy_constant"
1478
- - "flow"
1479
- stage_partition:
1480
- stage_1_structure:
1481
- - "entity"
1482
- - "enum"
1483
- - "property"
1484
- - "relation"
1485
- - "code_mapping"
1486
- stage_2_behavior:
1487
- - "state_transition"
1488
- - "command"
1489
- - "query"
1490
- - "policy_constant"
1491
- - "flow"
1492
- legacy_aliases: [] # Retired Explorer-path term. 향후 replacement 발생 시 activity_enum 과 동일 구조로 기록.
1493
- notes:
1494
- - "Legacy Stage 1 (Structure) = source 가 무엇인가 (names, fields, relations, schemas) 분류. Retired Explorer 가 Stage 1 라운드에서 우선 보고."
1495
- - "Legacy Stage 2 (Behavior) = source 가 무엇을 하는가 (state transitions, methods, flows) 분류. Stage 1 entity 확정 후 Stage 2 라운드에서 보고."
1496
- - "Legacy Stage 2 coverage 정의: 한 entity 가 ≥1 fact (state_transition | command | query) 를 가지면 covered. policy_constant + flow 는 cross-cutting, coverage 에 산입 안 됨."
1497
- - "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."
1498
- - "Canonical definition source: 본 lexicon term (v0.10.0)."
1499
- - "Reference format: `.onto/authority/core-lexicon.yaml#fact_type.v<lexicon_version>` (DR-M04-02 패턴 동일)."
1500
- - "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."
1501
-
1502
1411
  - term_id: "competency_question"
1503
1412
  canonical_label: "competency question"
1504
1413
  korean_label: "컴피턴시 질문"
@@ -1553,24 +1462,6 @@ terms:
1553
1462
  - "Consumer is not wired in the current onto-mcp review runtime; future lexicon lifecycle checks should be implemented as a review-runtime conformance check."
1554
1463
  - "기존 'promoted' 일반 명칭은 대상 모호성 유발. 본 term 이 lexicon term 대상의 promotion 만 지칭."
1555
1464
 
1556
- - term_id: "learning_scope_promotion"
1557
- canonical_label: "learning scope promotion"
1558
- korean_label: "학습 스코프 승격"
1559
- axis: "lifecycle_nomenclature"
1560
- term_status: "deprecated"
1561
- deprecated_in: "v0.15.0 (2026-04-20) — framework v1.0 sync"
1562
- 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."
1563
- allowed_values: []
1564
- replacement:
1565
- transition_kind: "generalize"
1566
- 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 반영)."
1567
- 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 으로 처리."
1568
- notes:
1569
- - "W-D-05 (2026-04-16) 신설 — 'promoted' 용어 3분리 중 2/3."
1570
- - "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."
1571
- - "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 경로로 분리."
1572
- - "소비 정책: deprecated term 은 authority file 내 참조만 허용. 신규 문서·코드는 transition_kind=generalize 를 사용하고 primary_scope/secondary_scopes 로 scope 축을 표현."
1573
-
1574
1465
  - term_id: "learning_to_principle_promotion"
1575
1466
  canonical_label: "learning-to-principle promotion"
1576
1467
  korean_label: "학습에서 규범으로의 승격"
@@ -1583,17 +1474,3 @@ terms:
1583
1474
  - "Source of truth is not wired in the current onto-mcp review runtime; govern requires separate design."
1584
1475
  - "Consumer: future govern MCP surface after separate design."
1585
1476
  - "W-C-03 blocker 해소를 위해 도착지 명시 (principle entity 신설) + 용어 canonical 확립 목적."
1586
-
1587
- - term_id: "drift_queue_entry"
1588
- canonical_label: "drift_queue_entry"
1589
- korean_label: "거버넌스 큐 항목"
1590
- axis: "governance"
1591
- term_status: "deprecated"
1592
- definition: "govern_process 가 소유하는 큐의 단일 항목. 규범 변경 제안(origin=human, tag=norm_change) 또는 drift 감지(origin=system, tag=drift) 가 하나의 entry 로 기록된다. pending → decided 의 단순 생애주기."
1593
- allowed_values: []
1594
- notes:
1595
- - "Introduced by W-C-01 (2026-04-16) bounded minimum surface."
1596
- - "Origin → tag deterministic mapping: human → norm_change, system → drift."
1597
- - "사람이 drift 를 계기로 올린 제안: tag=norm_change + prompted_by_drift_id 로 원본 drift entry 를 링크."
1598
- - "Not wired in the current onto-mcp review runtime."
1599
- - "Archived legacy govern code is isolated under development-records/archive/retired-runtime-legacy-20260526/."