onto-mcp 0.4.11 → 0.4.13

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 (139) hide show
  1. package/.onto/authority/core-lexicon.yaml +1 -1
  2. package/.onto/authority/supported-models.yaml +153 -0
  3. package/.onto/domains/accounting-kr/competency_qs.md +153 -153
  4. package/.onto/processes/reconstruct/obligation-coverage-ledger.yaml +842 -0
  5. package/.onto/processes/reconstruct/obligation-coverage-recorded.yaml +225 -0
  6. package/.onto/processes/reconstruct/ontology-seeding-and-maturation-design.md +93 -54
  7. package/.onto/processes/reconstruct/reconstruct-contract-registry.yaml +202 -49
  8. package/.onto/processes/reconstruct/reconstruct-execution-ux-contract.md +72 -1
  9. package/.onto/processes/reconstruct/source-profiles/spreadsheet.md +35 -0
  10. package/.onto/processes/review/nesting-batch-worker-contract.md +1 -1
  11. package/.onto/processes/review/productized-live-path.md +9 -5
  12. package/.onto/processes/review/prompt-execution-runner-contract.md +32 -8
  13. package/.onto/processes/review/review-target-profile-contract.md +47 -4
  14. package/.onto/processes/shared/pipeline-execution-ledger-contract.md +11 -0
  15. package/.onto/processes/shared/target-material-kind-contract.md +1 -1
  16. package/README.md +64 -1
  17. package/dist/cli.js +11 -1
  18. package/dist/core-api/reconstruct-api.js +679 -18
  19. package/dist/core-api/review-api.js +70 -5
  20. package/dist/core-api/review-progress.js +7 -0
  21. package/dist/core-api/runtime-observation.js +7 -0
  22. package/dist/core-runtime/artifact-io.js +131 -0
  23. package/dist/core-runtime/cli/claude-code-review-unit-executor.js +21 -9
  24. package/dist/core-runtime/cli/claude-nesting-batch-worker.js +4 -2
  25. package/dist/core-runtime/cli/materialize-review-prompt-packets.js +68 -14
  26. package/dist/core-runtime/cli/prepare-review-session.js +34 -1
  27. package/dist/core-runtime/cli/render-review-final-output.js +2 -1
  28. package/dist/core-runtime/cli/run-review-prompt-execution.js +758 -48
  29. package/dist/core-runtime/cli/run-seats.js +18 -0
  30. package/dist/core-runtime/cli/runtime-submit-context.js +10 -2
  31. package/dist/core-runtime/cli/unit-resubmit.js +269 -0
  32. package/dist/core-runtime/cli/worker-structured-output.js +80 -2
  33. package/dist/core-runtime/discovery/host-detection.js +71 -22
  34. package/dist/core-runtime/discovery/review-cert-assemble.js +208 -0
  35. package/dist/core-runtime/discovery/review-cert-record.js +442 -0
  36. package/dist/core-runtime/discovery/review-execution-units.js +22 -0
  37. package/dist/core-runtime/discovery/seat-inventory.js +167 -0
  38. package/dist/core-runtime/discovery/settings-chain.js +311 -52
  39. package/dist/core-runtime/discovery/supported-models.js +289 -25
  40. package/dist/core-runtime/discovery/synthesize-cert-assemble.js +197 -0
  41. package/dist/core-runtime/discovery/synthesize-cert-capsule.js +399 -0
  42. package/dist/core-runtime/discovery/synthesize-cert-judge.js +340 -0
  43. package/dist/core-runtime/discovery/synthesize-cert-loop.js +234 -0
  44. package/dist/core-runtime/discovery/synthesize-cert-mutation.js +117 -0
  45. package/dist/core-runtime/discovery/synthesize-cert-packet.js +182 -0
  46. package/dist/core-runtime/discovery/synthesize-cert-record.js +831 -0
  47. package/dist/core-runtime/discovery/synthesize-cert-sampler.js +336 -0
  48. package/dist/core-runtime/effort-calibration-ingest.js +326 -0
  49. package/dist/core-runtime/effort-calibration-reconstruct.js +47 -0
  50. package/dist/core-runtime/effort-calibration-review.js +22 -0
  51. package/dist/core-runtime/effort-calibration-sweep.js +110 -0
  52. package/dist/core-runtime/effort-frontier.js +134 -0
  53. package/dist/core-runtime/llm/claude-bin.js +77 -0
  54. package/dist/core-runtime/llm/dispatch-breaker.js +412 -0
  55. package/dist/core-runtime/llm/dispatch-fallback-adapter-capabilities.js +33 -0
  56. package/dist/core-runtime/llm/llm-caller.js +316 -35
  57. package/dist/core-runtime/llm/mock-llm-realization.js +35 -4
  58. package/dist/core-runtime/llm/model-switcher.js +1 -1
  59. package/dist/core-runtime/llm/openai-responses-incomplete-error.js +46 -0
  60. package/dist/core-runtime/llm/sealed-dispatch-capability.js +359 -0
  61. package/dist/core-runtime/llm/structured-dispatch-error.js +15 -0
  62. package/dist/core-runtime/onboard/claude-profile-scan.js +65 -0
  63. package/dist/core-runtime/onboard/cli-host.js +5 -2
  64. package/dist/core-runtime/onboard/configure-provider.js +33 -1
  65. package/dist/core-runtime/onboard/host-target.js +28 -3
  66. package/dist/core-runtime/onboard/register.js +54 -12
  67. package/dist/core-runtime/pipeline-execution-ledger.js +10 -0
  68. package/dist/core-runtime/reconstruct/artifact-types.js +37 -0
  69. package/dist/core-runtime/reconstruct/benchmark-evidence.js +16 -0
  70. package/dist/core-runtime/reconstruct/claim-projection-validation.js +19 -5
  71. package/dist/core-runtime/reconstruct/competency-projection-contract.js +63 -0
  72. package/dist/core-runtime/reconstruct/comprehension-artifact.js +321 -0
  73. package/dist/core-runtime/reconstruct/comprehension-reduce.js +367 -0
  74. package/dist/core-runtime/reconstruct/comprehension-semantic-map.js +771 -0
  75. package/dist/core-runtime/reconstruct/contract-registry.js +20 -0
  76. package/dist/core-runtime/reconstruct/directive-validation.js +4 -3
  77. package/dist/core-runtime/reconstruct/dispatch-fallback-artifacts.js +640 -0
  78. package/dist/core-runtime/reconstruct/execution-telemetry.js +84 -9
  79. package/dist/core-runtime/reconstruct/final-output-sections.js +89 -0
  80. package/dist/core-runtime/reconstruct/governing-snapshot.js +36 -1
  81. package/dist/core-runtime/reconstruct/leaf-reader.js +305 -0
  82. package/dist/core-runtime/reconstruct/llm-dispatch-failure.js +270 -0
  83. package/dist/core-runtime/reconstruct/llm-touch-fingerprint.js +94 -0
  84. package/dist/core-runtime/reconstruct/material-admission-validation.js +20 -5
  85. package/dist/core-runtime/reconstruct/material-profile-validation.js +24 -6
  86. package/dist/core-runtime/reconstruct/materialize-preparation.js +380 -23
  87. package/dist/core-runtime/reconstruct/maturation-validation.js +1522 -67
  88. package/dist/core-runtime/reconstruct/mock-llm-realization.js +120 -1
  89. package/dist/core-runtime/reconstruct/obligation-assertion.js +18 -0
  90. package/dist/core-runtime/reconstruct/ontology-seed-validation.js +39 -7
  91. package/dist/core-runtime/reconstruct/output-budget.js +6 -0
  92. package/dist/core-runtime/reconstruct/pipeline-execution-ledger.js +112 -5
  93. package/dist/core-runtime/reconstruct/post-seed-validation.js +122 -11
  94. package/dist/core-runtime/reconstruct/proof-authority-validation.js +2 -6
  95. package/dist/core-runtime/reconstruct/purpose-authority-validation.js +119 -7
  96. package/dist/core-runtime/reconstruct/record.js +49 -3
  97. package/dist/core-runtime/reconstruct/registry-verification-validation.js +41 -5
  98. package/dist/core-runtime/reconstruct/run-control-validation.js +1019 -37
  99. package/dist/core-runtime/reconstruct/run.js +5409 -517
  100. package/dist/core-runtime/reconstruct/seed-authoring-readiness-validation.js +56 -8
  101. package/dist/core-runtime/reconstruct/semantic-quality-gate.js +112 -7
  102. package/dist/core-runtime/reconstruct/source-observation-delta-validation.js +53 -5
  103. package/dist/core-runtime/reconstruct/source-observations.js +166 -0
  104. package/dist/core-runtime/reconstruct/source-safety-validation.js +77 -188
  105. package/dist/core-runtime/reconstruct/source-scout-pack-validation.js +50 -6
  106. package/dist/core-runtime/reconstruct/terminal-validation.js +145 -13
  107. package/dist/core-runtime/review/continuation-plan.js +12 -5
  108. package/dist/core-runtime/review/issue-artifact-runtime.js +4 -1
  109. package/dist/core-runtime/review/materializers.js +100 -11
  110. package/dist/core-runtime/review/nesting-batch.js +6 -2
  111. package/dist/core-runtime/review/obligation-shardability.js +138 -0
  112. package/dist/core-runtime/review/pipeline-execution-ledger.js +42 -2
  113. package/dist/core-runtime/review/review-artifact-utils.js +219 -7
  114. package/dist/core-runtime/review/review-execution-steps.js +32 -8
  115. package/dist/core-runtime/review/review-progress-contract.js +8 -0
  116. package/dist/core-runtime/review/review-prompt-budget.js +97 -0
  117. package/dist/core-runtime/review/semantic-quality-gate.js +33 -7
  118. package/dist/core-runtime/review/spreadsheet-review-disposition.js +94 -0
  119. package/dist/core-runtime/route-identity.js +182 -0
  120. package/dist/core-runtime/spreadsheet-header-escalation.js +204 -0
  121. package/dist/core-runtime/spreadsheet-structure-observer.js +2689 -0
  122. package/dist/core-runtime/target-material-kind.js +58 -0
  123. package/dist/mcp/server.js +27 -5
  124. package/dist/mcp/tool-schemas.js +8 -0
  125. package/dist/tui/app.js +167 -0
  126. package/dist/tui/data/event-follower.js +116 -0
  127. package/dist/tui/data/node-detail.js +42 -0
  128. package/dist/tui/data/projection-poll.js +26 -0
  129. package/dist/tui/data/session-discovery.js +65 -0
  130. package/dist/tui/index.js +108 -0
  131. package/dist/tui/screens/log.js +25 -0
  132. package/dist/tui/screens/node-detail.js +17 -0
  133. package/dist/tui/screens/session-selector.js +26 -0
  134. package/dist/tui/screens/workflow-tree.js +90 -0
  135. package/dist/tui/view-model/reconstruct-adapter.js +162 -0
  136. package/dist/tui/view-model/review-adapter.js +270 -0
  137. package/dist/tui/view-model/tree-view-model.js +19 -0
  138. package/package.json +20 -3
  139. package/settings.example.json +77 -16
@@ -67,11 +67,11 @@ source_profile_records:
67
67
  target_material_kind: spreadsheet
68
68
  is_default_for_kind: true
69
69
  definition_ref: .onto/processes/reconstruct/source-profiles/spreadsheet.md
70
- definition_sha256: 35fa949f3fc680b52f3e8ff78eeb9754b86d068e6b20dca51f4107ba881b868f
70
+ definition_sha256: 6b543ab5621ef169312c1632fa6e446950a72621a974c29130695039cea7b51b
71
71
  contract_status: active
72
- runtime_implementation_status: planned
72
+ runtime_implementation_status: partially_wired
73
73
  schema_version: 1
74
- profile_version: 2
74
+ profile_version: 3
75
75
  migration_status: current
76
76
  supersedes: []
77
77
  replaced_by: []
@@ -872,6 +872,11 @@ artifact_authorities:
872
872
  reconstruct_run_control_validation:
873
873
  authority_ref: reconstruct-run-control-validation.yaml
874
874
  validation_ref: null
875
+ llm_dispatch_failures:
876
+ authority_ref: llm-dispatch-failures/*.yaml
877
+ validation_ref: reconstruct-run-control-validation.yaml
878
+ registry_ref: src/core-runtime/reconstruct/llm-dispatch-failure.ts
879
+ projection_policy: runtime_owned_provider_incomplete_evidence_projected_only_through_bounded_failed_status
875
880
  reconstruct_run_control_pre_publication_validation:
876
881
  authority_ref: reconstruct-run-control.pre-publication-validation.yaml
877
882
  validation_ref: null
@@ -900,10 +905,40 @@ artifact_authorities:
900
905
  source_observations:
901
906
  authority_ref: source-observations.yaml
902
907
  validation_ref: source-observation-directive-validation.yaml
908
+ seed_stage_prompt_source_observations:
909
+ authority_ref: seed-stage-prompt-source-observations.yaml
910
+ validation_ref: null
911
+ projection_policy: pre_maturation_seed_stage_projected_observation_snapshot_for_resume_truncation_conservation
912
+ dispatch_incomplete:
913
+ authority_ref: dispatch-incomplete.yaml
914
+ validation_ref: semantic-map-resume-validation.yaml
915
+ projection_policy: full_batch_dispatch_partition_for_stage_local_semantic_map_recovery
916
+ semantic_map_census:
917
+ authority_ref: comprehension/semantic-map-census.yaml
918
+ validation_ref: null
919
+ projection_policy: semantic_map_observation_partition_and_spend_census
920
+ semantic_map_sidecar:
921
+ authority_ref: comprehension/semantic-map.yaml
922
+ validation_ref: null
923
+ projection_policy: semantic_map_projection_sidecar_for_map_present_observations
924
+ semantic_map_resume_validation:
925
+ authority_ref: semantic-map-resume-validation.yaml
926
+ validation_ref: null
927
+ projection_policy: runtime_owned_validation_of_same_batch_semantic_map_recovery_frontier
928
+ dispatch_fallback_activation:
929
+ authority_ref: dispatch-fallback-activation.yaml
930
+ validation_ref: null
931
+ registry_ref: src/core-runtime/reconstruct/dispatch-fallback-artifacts.ts
932
+ projection_policy: create_once_lineage_claim_for_originating_initial_semantic_map_rate_limit_fallback
933
+ dispatch_fallback_outcome:
934
+ authority_ref: dispatch-fallback-outcome.yaml
935
+ validation_ref: null
936
+ registry_ref: src/core-runtime/reconstruct/dispatch-fallback-artifacts.ts
937
+ projection_policy: terminal_commit_marker_for_one_same_call_exact_incomplete_fallback_pass
903
938
  source_safety_ledger:
904
939
  authority_ref: source-safety-ledger.yaml
905
940
  validation_ref: source-safety-ledger-validation.yaml
906
- projection_policy: six_axis_source_safety_and_derived_visibility_by_observation_id_and_intended_consumption
941
+ projection_policy: four_axis_source_safety_and_derived_visibility_by_observation_id_and_intended_consumption
907
942
  source_safety_ledger_validation:
908
943
  authority_ref: source-safety-ledger-validation.yaml
909
944
  validation_ref: null
@@ -1124,6 +1159,12 @@ artifact_authorities:
1124
1159
  answer_support_ledger_validation:
1125
1160
  authority_ref: answer-support-ledger-validation.yaml
1126
1161
  validation_ref: null
1162
+ answer_support_judgment:
1163
+ authority_ref: answer-support-judgment.yaml
1164
+ validation_ref: answer-support-judgment-validation.yaml
1165
+ answer_support_judgment_validation:
1166
+ authority_ref: answer-support-judgment-validation.yaml
1167
+ validation_ref: null
1127
1168
  maturation_authority_response:
1128
1169
  authority_ref: maturation-authority-response.yaml
1129
1170
  validation_ref: maturation-authority-response-validation.yaml
@@ -1229,14 +1270,6 @@ planned_artifact_authorities:
1229
1270
  authority_ref: required-when-evaluation-validation.yaml
1230
1271
  validation_ref: null
1231
1272
  activation_condition: registry_predicate_evaluator_runtime_is_implemented
1232
- answer_support_judgment:
1233
- authority_ref: answer-support-judgment.yaml
1234
- validation_ref: answer-support-judgment-validation.yaml
1235
- activation_condition: answer_support_judge_runtime_is_implemented
1236
- answer_support_judgment_validation:
1237
- authority_ref: answer-support-judgment-validation.yaml
1238
- validation_ref: null
1239
- activation_condition: answer_support_judge_runtime_is_implemented
1240
1273
 
1241
1274
  validation_gate_catalog:
1242
1275
  - gate_id: reconstruct_run_control_gate
@@ -1275,6 +1308,9 @@ validation_gate_catalog:
1275
1308
  - gate_id: source_scout_pack_post_maturation_gate
1276
1309
  validation_artifact_ref: source-scout-pack-validation.post-maturation.yaml
1277
1310
  required_when: source_scout_pack_post_maturation_snapshot_exists
1311
+ - gate_id: semantic_map_resume_gate
1312
+ validation_artifact_ref: semantic-map-resume-validation.yaml
1313
+ required_when: semantic_map_resume_validation_exists
1278
1314
  - gate_id: source_purpose_candidates_gate
1279
1315
  validation_artifact_ref: source-purpose-candidates-validation.yaml
1280
1316
  required_when: seed_validity_or_seed_iteration_readiness_is_projected
@@ -1339,6 +1375,9 @@ validation_gate_catalog:
1339
1375
  - gate_id: answer_support_gate
1340
1376
  validation_artifact_ref: answer-support-ledger-validation.yaml
1341
1377
  required_when: answer_support_ledger_exists
1378
+ - gate_id: answer_support_judgment_gate
1379
+ validation_artifact_ref: answer-support-judgment-validation.yaml
1380
+ required_when: answer_support_judgment_required_minimal
1342
1381
  - gate_id: maturation_answer_claim_gate
1343
1382
  validation_artifact_ref: maturation-answer-claims-validation.yaml
1344
1383
  required_when: maturation_answer_claims_exist
@@ -1396,12 +1435,6 @@ planned_validation_gate_catalog:
1396
1435
  validation_artifact_ref: required-when-evaluation-validation.yaml
1397
1436
  required_when: always
1398
1437
  activation_condition: registry_predicate_evaluator_runtime_is_implemented
1399
- - gate_id: answer_support_judgment_gate
1400
- validation_artifact_ref: answer-support-judgment-validation.yaml
1401
- required_when: answer_support_judgment_required
1402
- activation_condition: answer_support_judge_runtime_is_implemented
1403
- activation_prerequisites:
1404
- - answer_support_ledger_validation_is_valid
1405
1438
 
1406
1439
  required_when_predicate_family_catalog:
1407
1440
  - predicate_family_id: frontier_observation_use_by_downstream_artifact
@@ -1448,6 +1481,11 @@ required_when_predicate_catalog:
1448
1481
  truth_expression: "artifact_exists(source-scout-pack.post-maturation.yaml)"
1449
1482
  unknown_projection: blocked
1450
1483
  explanation_template: "An immutable post-maturation SourceScoutPack snapshot exists and requires snapshot-scoped validation before post-maturation audit or replay use."
1484
+ - predicate_id: semantic_map_resume_validation_exists
1485
+ input_authority_refs: [semantic-map-resume-validation.yaml]
1486
+ truth_expression: "artifact_exists(semantic-map-resume-validation.yaml)"
1487
+ unknown_projection: blocked
1488
+ explanation_template: "A semantic-map resume validation artifact exists and must be valid before handoff consumption."
1451
1489
  - predicate_id: source_frontier_observation_delta
1452
1490
  gate_instance_scope: per_round
1453
1491
  input_authority_refs: [rounds/<round-id>/source-observation-delta.yaml]
@@ -1529,20 +1567,6 @@ required_when_predicate_catalog:
1529
1567
  truth_expression: "source_observation_delta_validation.validation_status == valid and answer_support_ledger_refs_delta_observation_ids"
1530
1568
  unknown_projection: not_applicable
1531
1569
  explanation_template: "Answer support ledger cites observation ids from a frontier-triggered observation delta."
1532
- - predicate_id: answer_support_judgment_uses_frontier_observation
1533
- predicate_family_id: frontier_observation_use_by_downstream_artifact
1534
- gate_instance_scope: per_round
1535
- downstream_artifact_ref: answer-support-judgment.yaml
1536
- downstream_validation_ref: answer-support-judgment-validation.yaml
1537
- input_authority_refs: [rounds/<round-id>/source-observation-delta.yaml, rounds/<round-id>/source-observation-delta-validation.yaml, answer-support-judgment.yaml]
1538
- truth_expression: "source_observation_delta_validation.validation_status == valid and answer_support_judgment_refs_delta_observation_ids"
1539
- unknown_projection: not_applicable
1540
- explanation_template: "Answer support judgment cites observation ids from a frontier-triggered observation delta."
1541
- - predicate_id: answer_support_judgment_required
1542
- input_authority_refs: [answer-support-ledger.yaml, answer-support-ledger-validation.yaml]
1543
- truth_expression: "artifact_exists(answer-support-ledger.yaml) and answer_support_ledger_has_convergent_source_evidence_cluster"
1544
- unknown_projection: not_applicable
1545
- explanation_template: "A judge confirmation is required when answer support uses convergent source evidence."
1546
1570
  - predicate_id: maturation_answer_claims_use_frontier_observation
1547
1571
  predicate_family_id: frontier_observation_use_by_downstream_artifact
1548
1572
  gate_instance_scope: per_round
@@ -1738,6 +1762,11 @@ required_when_predicate_catalog:
1738
1762
  truth_expression: "artifact_exists(answer-support-ledger.yaml)"
1739
1763
  unknown_projection: not_applicable
1740
1764
  explanation_template: "An answer support ledger exists and requires support-ledger validation."
1765
+ - predicate_id: answer_support_judgment_required_minimal
1766
+ input_authority_refs: [answer-support-judgment.yaml]
1767
+ truth_expression: "artifact_exists(answer-support-judgment.yaml)"
1768
+ unknown_projection: not_applicable
1769
+ explanation_template: "An answer support judgment exists and requires judgment validation. Convergent-source-evidence necessity and sufficiency are enforced by the maturation-answer-claims validator (B-6)."
1741
1770
  - predicate_id: maturation_authority_response_exists
1742
1771
  input_authority_refs: [maturation-authority-response.yaml]
1743
1772
  truth_expression: "artifact_exists(maturation-authority-response.yaml)"
@@ -1993,6 +2022,16 @@ readiness_projection:
1993
2022
  conflict_rule: When supporting artifacts project different canonical values, choose the first value in strictness_order_high_to_low that appears among contributing artifacts; lower list index is stricter and wins. Cite every contributing artifact.
1994
2023
 
1995
2024
  validator_records:
2025
+ - validator_id: semantic-map-resume-validator
2026
+ gate_ids: [semantic_map_resume_gate]
2027
+ validator_version: 1
2028
+ input_authority_refs:
2029
+ - dispatch-incomplete.yaml
2030
+ - comprehension/semantic-map-census.yaml
2031
+ - comprehension/semantic-map.yaml
2032
+ - source-observations.yaml
2033
+ validation_obligations: []
2034
+ output_ref: semantic-map-resume-validation.yaml
1996
2035
  - validator_id: reconstruct-run-control-validator
1997
2036
  gate_ids: [reconstruct_run_control_gate]
1998
2037
  validator_version: 1
@@ -2111,10 +2150,9 @@ validator_records:
2111
2150
  - source-observations.yaml
2112
2151
  - reconstruct-contract-registry.yaml
2113
2152
  validation_obligations:
2114
- - validate_exactly_six_canonical_source_safety_axes
2153
+ - validate_exactly_four_canonical_source_safety_axes
2115
2154
  - validate_every_observation_has_source_safety_rows_for_each_intended_consumption
2116
2155
  - validate_visibility_tier_is_derived_not_independent_authority
2117
- - fail_when_nested_redaction_evidence_contradicts_top_level_axis_state
2118
2156
  - validate_source_safety_subject_refs_against_observed_source_refs
2119
2157
  - preserve_prompt_context_evidence_support_public_output_replay_and_material_claim_consumption_boundaries
2120
2158
  output_ref: source-safety-ledger-validation.yaml
@@ -2541,7 +2579,7 @@ validator_records:
2541
2579
  - validator_id: revision-proposal-validator
2542
2580
  gate_ids: [revision_proposal_gate]
2543
2581
  validator_version: 1
2544
- input_authority_refs: [revision-proposal.yaml, failure-classification.yaml, failure-classification-validation.yaml, reconstruct-contract-registry.yaml]
2582
+ input_authority_refs: [revision-proposal.yaml, failure-classification.yaml, failure-classification-validation.yaml, ontology-seed.yaml, reconstruct-contract-registry.yaml]
2545
2583
  output_ref: revision-proposal-validation.yaml
2546
2584
  - validator_id: maturation-baseline-validator
2547
2585
  gate_ids: [maturation_baseline_gate]
@@ -2578,6 +2616,7 @@ validator_records:
2578
2616
  - reject_matrix_rows_without_baseline_row_ref
2579
2617
  - validate_matrix_row_ids_are_stable_and_baseline_row_refs_close
2580
2618
  - preserve_frontier_seed_state_before_question_frontier_authoring
2619
+ - reject_blocking_question_refs_before_question_frontier_authoring
2581
2620
  output_ref: baseline-actionability-matrix-validation.yaml
2582
2621
  - validator_id: actionability-matrix-validator
2583
2622
  gate_ids: [actionability_matrix_gate]
@@ -2589,6 +2628,8 @@ validator_records:
2589
2628
  - maturation-answer-claims-validation.yaml
2590
2629
  - ontology-expansion.yaml
2591
2630
  - ontology-expansion-validation.yaml
2631
+ - maturation-question-frontier.yaml
2632
+ - maturation-question-frontier-validation.yaml
2592
2633
  - reconstruct-contract-registry.yaml
2593
2634
  validation_obligations:
2594
2635
  - support_zero_delta_baseline_only_matrix_when_no_maturation_deltas_exist
@@ -2597,6 +2638,7 @@ validator_records:
2597
2638
  - validate_matrix_row_ids_are_stable_and_baseline_row_refs_close
2598
2639
  - validate_maturity_level_against_supporting_refs_blocking_questions_and_limitations
2599
2640
  - require_blocker_and_high_rows_to_be_l4_limitation_backed_or_continuation_blocking
2641
+ - validate_blocking_question_refs_against_validated_question_frontier
2600
2642
  output_ref: actionability-matrix-validation.yaml
2601
2643
  - validator_id: maturation-question-frontier-validator
2602
2644
  gate_ids: [maturation_question_frontier_gate]
@@ -2684,7 +2726,7 @@ validator_records:
2684
2726
  output_ref: answer-support-ledger-validation.yaml
2685
2727
  - validator_id: maturation-answer-claims-validator
2686
2728
  gate_ids: [maturation_answer_claim_gate]
2687
- validator_version: 1
2729
+ validator_version: 2
2688
2730
  input_authority_refs:
2689
2731
  - maturation-answer-claims.yaml
2690
2732
  - answer-support-ledger-validation.yaml
@@ -2692,6 +2734,10 @@ validator_records:
2692
2734
  - ontology-seed.yaml
2693
2735
  - reconstruct-contract-registry.yaml
2694
2736
  conditional_input_authority_refs:
2737
+ - artifact_ref: answer-support-judgment.yaml
2738
+ activation_condition: answer_support_judge_runtime_is_implemented
2739
+ consumed_for:
2740
+ - require_convergent_source_evidence_claims_to_have_two_independent_judge_confirmed_supports
2695
2741
  - artifact_ref: answer-support-judgment-validation.yaml
2696
2742
  activation_condition: answer_support_judge_runtime_is_implemented
2697
2743
  consumed_for:
@@ -2704,8 +2750,22 @@ validator_records:
2704
2750
  conditional_validation_obligations:
2705
2751
  - obligation_id: require_convergent_source_evidence_claims_to_have_two_independent_judge_confirmed_supports
2706
2752
  activation_condition: answer_support_judge_runtime_is_implemented
2707
- input_authority_refs: [answer-support-judgment-validation.yaml]
2753
+ input_authority_refs: [answer-support-judgment.yaml, answer-support-judgment-validation.yaml]
2708
2754
  output_ref: maturation-answer-claims-validation.yaml
2755
+ - validator_id: answer-support-judgment-validator
2756
+ gate_ids: [answer_support_judgment_gate]
2757
+ validator_version: 1
2758
+ input_authority_refs:
2759
+ - answer-support-judgment.yaml
2760
+ - answer-support-ledger.yaml
2761
+ - answer-support-ledger-validation.yaml
2762
+ - reconstruct-contract-registry.yaml
2763
+ validation_obligations:
2764
+ - validate_judgment_refs_resolve_to_answer_support_ledger_clusters_and_evidence
2765
+ - require_supports_enum_for_each_judgment
2766
+ - require_rationale_ref_for_each_judgment
2767
+ - require_convergent_clusters_to_judge_every_cited_evidence_ref
2768
+ output_ref: answer-support-judgment-validation.yaml
2709
2769
  - validator_id: ontology-expansion-validator
2710
2770
  gate_ids: [ontology_expansion_gate]
2711
2771
  validator_version: 1
@@ -2752,6 +2812,8 @@ validator_records:
2752
2812
  - maturation-authority-response-validation.yaml
2753
2813
  - ontology-expansion-validation.yaml
2754
2814
  - maturation-convergence-ledger-validation.yaml
2815
+ - revision-proposal.yaml
2816
+ - revision-proposal-validation.yaml
2755
2817
  - reconstruct-contract-registry.yaml
2756
2818
  validation_obligations:
2757
2819
  - validate_continuation_state_against_validated_actionability_matrix_and_frontier_state
@@ -2759,6 +2821,10 @@ validator_records:
2759
2821
  - validate_continue_ask_user_or_blocked_state_against_available_next_authority
2760
2822
  - validate_limitation_refs_and_row_scope_for_actionable_limited_state
2761
2823
  - reject_actionable_ready_until_final_requestion_convergence_is_proven
2824
+ - validate_revision_blocker_limitation_refs_against_validated_revision_proposal
2825
+ - require_revision_blocker_refs_in_continuation_limitation_refs
2826
+ - reject_actionable_ready_when_unresolved_revision_blockers_remain
2827
+ - bind_revision_proposal_validation_to_consumed_revision_proposal
2762
2828
  output_ref: maturation-continuation-decision-validation.yaml
2763
2829
  - validator_id: actionable-ontology-validator
2764
2830
  gate_ids: [actionable_ontology_gate]
@@ -2943,18 +3009,6 @@ validator_records:
2943
3009
  output_ref: handoff-decision-validation.yaml
2944
3010
 
2945
3011
  planned_validator_records:
2946
- - validator_id: answer-support-judgment-validator
2947
- gate_ids: [answer_support_judgment_gate]
2948
- validator_version: 1
2949
- input_authority_refs:
2950
- - answer-support-judgment.yaml
2951
- - answer-support-ledger-validation.yaml
2952
- - reconstruct-contract-registry.yaml
2953
- validation_obligations:
2954
- - validate_judgment_refs_resolve_to_answer_support_ledger_clusters_and_evidence
2955
- - require_supports_enum_for_each_judgment
2956
- - require_rationale_ref_for_each_judgment
2957
- output_ref: answer-support-judgment-validation.yaml
2958
3012
  - validator_id: maturation-promotion-request-validator
2959
3013
  gate_ids: [maturation_promotion_request_gate]
2960
3014
  validator_version: 1
@@ -3196,3 +3250,102 @@ version_policy:
3196
3250
  - query access contract registry changes
3197
3251
  - readiness projection changes
3198
3252
  - validator record changes
3253
+
3254
+ # G(b) prompt-projection field-parity (INV-SCHEMA-1). Declares the EXACT field/budget
3255
+ # surface of each governed runtime prompt projection so a registry-shape drift (a field or
3256
+ # budget added or dropped in the runtime contract without a registry home, or vice versa) is
3257
+ # caught in CI. Runtime SSOT for the competency-question assessment contract is
3258
+ # src/core-runtime/reconstruct/competency-projection-contract.ts; the parity guard
3259
+ # scripts/check-prompt-projection-parity.ts asserts this node equals that module's contract
3260
+ # surface (exact-set on payload_fields/policy_fields, exact-value on budget_fields) and that
3261
+ # run.ts consumes the extracted module rather than a duplicated local copy. Every element
3262
+ # declared here is guard-checked (no unguarded declared data).
3263
+ prompt_projection_contracts:
3264
+ competency_question_assessment:
3265
+ # Top-level keys of competencyQuestionAssessmentProjectionContract().
3266
+ payload_fields:
3267
+ - projection_kind
3268
+ - projection_contract_version
3269
+ - semantic_authority
3270
+ - prompt_char_limit
3271
+ - question_projection
3272
+ - evidence_projection
3273
+ - source_evidence_projection
3274
+ - source_evidence_excerpt_char_limit
3275
+ - source_evidence_reserve_derivation
3276
+ - validation_projection
3277
+ - claim_realization_projection
3278
+ - runtime_derivations
3279
+ - batching_policy
3280
+ - fail_loud_policy
3281
+ # Keys of the nested batching_policy object.
3282
+ policy_fields:
3283
+ - mode
3284
+ - order
3285
+ - build_budget_reserve_chars
3286
+ - single_question_overflow
3287
+ # The named budget constants the contract OUTPUT embeds (NOT the internal
3288
+ # EVIDENCE_CANDIDATE_LIMIT runaway guard, which never enters the contract surface).
3289
+ budget_fields:
3290
+ prompt_char_limit: 50000
3291
+ source_evidence_excerpt_char_limit: 4000
3292
+ build_budget_reserve_chars: 1000
3293
+
3294
+ # G(c) final-output append-section parity (INV-SCHEMA-1). Declares the canonical identity of
3295
+ # every section the reconstruct final output emits — section_id (hyphen; also the load-bearing
3296
+ # required_fragments text), heading (the provenance gate's match key), prompt_policy_id (the
3297
+ # underscore id in deterministic_runtime_append_sections; null for conditional sections),
3298
+ # emit_owner (emission surface: always_section vs conditional_markdown — distinct from the
3299
+ # binding flag), provenance_binding_required (whether the final-output provenance gate checks
3300
+ # it), and activation. Runtime SSOT is src/core-runtime/reconstruct/final-output-sections.ts;
3301
+ # the parity guard scripts/check-final-output-sections-parity.ts (G9) asserts this node equals
3302
+ # that module exactly and that run.ts consumes the module rather than inline heading literals.
3303
+ final_output_append_sections:
3304
+ - section_id: seed-answerability
3305
+ heading: Seed Answerability
3306
+ prompt_policy_id: seed_answerability
3307
+ emit_owner: always_section
3308
+ provenance_binding_required: true
3309
+ activation: always
3310
+ - section_id: artifact-truth
3311
+ heading: Artifact Truth
3312
+ prompt_policy_id: artifact_truth
3313
+ emit_owner: always_section
3314
+ provenance_binding_required: true
3315
+ activation: always
3316
+ - section_id: claim-projection
3317
+ heading: Claim Projection
3318
+ prompt_policy_id: claim_projection
3319
+ emit_owner: always_section
3320
+ provenance_binding_required: true
3321
+ activation: always
3322
+ - section_id: runtime-artifact-truth-footer
3323
+ heading: Runtime Artifact Truth Footer
3324
+ prompt_policy_id: provenance_footer
3325
+ emit_owner: always_section
3326
+ provenance_binding_required: true
3327
+ activation: always
3328
+ - section_id: runtime-provenance-bindings
3329
+ heading: Runtime Provenance Bindings
3330
+ prompt_policy_id: provenance_bindings
3331
+ emit_owner: always_section
3332
+ provenance_binding_required: true
3333
+ activation: always
3334
+ - section_id: source-projection-truncation
3335
+ heading: Source Projection Truncation
3336
+ prompt_policy_id: null
3337
+ emit_owner: conditional_markdown
3338
+ provenance_binding_required: false
3339
+ activation: document_projection_truncation_nonempty
3340
+ - section_id: workbook-inventory-projection-truncation
3341
+ heading: Workbook Inventory Projection Truncation
3342
+ prompt_policy_id: null
3343
+ emit_owner: conditional_markdown
3344
+ provenance_binding_required: false
3345
+ activation: workbook_inventory_projection_truncation_nonempty
3346
+ - section_id: unresolved-revision-proposals
3347
+ heading: Unresolved Revision Proposals
3348
+ prompt_policy_id: null
3349
+ emit_owner: conditional_markdown
3350
+ provenance_binding_required: false
3351
+ activation: disclosed_revision_proposals_nonempty
@@ -161,9 +161,78 @@ If a run halts, the output should still be useful:
161
161
 
162
162
  A halted run may provide candidate Seed content only if the corresponding
163
163
  artifact and validation refs exist. It may not imply seed confirmation, CQ
164
- assessment, failure classification, revision proposal, terminal seed iteration readiness, or
164
+ assessment, failure classification, revision proposal, terminal seed iteration readiness, or
165
165
  final ontology direction unless those artifacts exist.
166
166
 
167
+ ### 6.1 Provider output-ceiling failure
168
+
169
+ When an OpenAI Responses direct-API semantic-author call ends with
170
+ `incomplete_details.reason=max_output_tokens`, the runtime does not parse,
171
+ repair, continue, or accept the partial output. It persists the provider evidence
172
+ under `llm-dispatch-failures/*.yaml`, links that source artifact to the owning
173
+ attempt through a committed run-control transaction, marks the attempt `failed`,
174
+ and releases the session lock.
175
+
176
+ The headroom route is pinned to the public OpenAI Responses endpoint. A custom
177
+ actor `base_url` is rejected before dispatch, and ambient `OPENAI_BASE_URL` does
178
+ not redirect this route. Failure publication is serialized with every other
179
+ run-control mutation. It writes and fsyncs a scratch file, atomically promotes
180
+ it to a hash-prefixed pending file, records the prepared transaction, publishes
181
+ the canonical sidecar, and commits the transaction/failed attempt/released lock.
182
+ A valid untracked pending file may be adopted only when its bytes, hash-prefix,
183
+ session, attempt, and held owner lock all match. Scratch, malformed, truncated,
184
+ ambiguous, wrong-prefix, wrong-owner, or wrong-hash remnants abandon the current
185
+ attempt, release its lock, and require `blocked_partial_write` recovery.
186
+
187
+ `onto_reconstruct`, `onto_reconstruct_read`, the compatibility status/result
188
+ tools, and the Core API must return a record-less discriminated branch when the
189
+ run-control validator trusts the latest failed terminal. A latest trusted failed
190
+ attempt supersedes an older non-terminal preparation record. The branch has
191
+ `status: failed`, `reconstructRecord: null`, run-control and validation refs, the
192
+ failure artifact ref, stage progress, and a bounded failure summary. The summary
193
+ may expose the stable failure code, stage/artifact identity, provider status and
194
+ incomplete reason, base/headroom/effective output caps, provider token counts,
195
+ and request-count observability. Provider request/response ids, endpoint, and
196
+ partial-output hash remain source-artifact-only fields; raw partial output is not
197
+ persisted.
198
+
199
+ Failed progress does not infer semantic counts from the existence of a sidecar:
200
+ `failureCount` is `null`. Run-control and run-control-validation are completed
201
+ control stages. The failed semantic stage is halted. Other stages are completed
202
+ only when a committed transaction owned by the latest failed attempt still
203
+ matches the current regular-file bytes inside the real session root; otherwise
204
+ they remain pending. `reusableArtifactRefs` contains only that same bounded,
205
+ hash-verified latest-owner set, excludes the failure sidecar, and may be empty.
206
+
207
+ ### 6.2 Semantic-map provider fallback
208
+
209
+ `reconstruct.execution.dispatch_fallback` is an explicit default-off capability
210
+ for the spreadsheet semantic-map stage. It may activate only in the originating
211
+ fresh initial attempt after a sealed direct SDK route supplies structured
212
+ rate-limit evidence and the current attempt still owns the held session lock.
213
+ Arbitrary diagnostic text is not trigger evidence.
214
+
215
+ An activated run writes the direct-child
216
+ `dispatch-fallback-activation.yaml` claim before alternate-provider work. It
217
+ then reuses the existing semantic-map stage for exactly the persisted incomplete
218
+ observation set, with one fallback pass and one physical SDK request per logical
219
+ dispatch. Retained primary observations are not sent again.
220
+
221
+ `dispatch-fallback-outcome.yaml` is the terminal commit marker after the final
222
+ `dispatch-incomplete.yaml`, semantic-map census, and semantic-map sidecar have
223
+ been securely published and indexed in run control. A completed outcome is
224
+ projected into the completed reconstruct record and semantic-map manifest step.
225
+ A halted outcome is disclosed through the current breaker error and does not
226
+ create a completed record or manifest. Any session lineage with an activation,
227
+ including a crash between activation and outcome, requires a new session for a
228
+ later entry. A `running` attempt with a `held` session lock cannot be taken over
229
+ based on `lease_expires_at` alone.
230
+
231
+ The TypeScript schema, validators, path constructors, secure publishers, and
232
+ record projection for both artifacts are owned by
233
+ `src/core-runtime/reconstruct/dispatch-fallback-artifacts.ts`; prose and the
234
+ contract registry do not duplicate their machine schema.
235
+
167
236
  ## 7. Runtime Payload Expectations
168
237
 
169
238
  Future status/result payloads should expose enough facts for the host LLM to
@@ -175,6 +244,8 @@ render this contract without scraping prose:
175
244
  - stage state: pending, running, completed, skipped, or halted
176
245
  - skipped/deferred stage reason and `authority_impact`
177
246
  - stage artifact refs and owner
247
+ - record-less trusted provider failure status, bounded failure summary, and
248
+ failure/run-control refs
178
249
  - liveness state and recommended polling interval
179
250
  - deterministic count summaries from the latest completed artifacts
180
251
  - latest source frontier summary and reusable trusted observation refs
@@ -30,6 +30,10 @@ Workbook, sheet, named range, table, or used range.
30
30
  - named ranges
31
31
  - hidden rows and columns
32
32
  - macros or VBA presence
33
+ - protected ranges and sheet protection
34
+ - filters and auto-filter state
35
+ - charts, images, and object anchors
36
+ - external links and data connections to other workbooks or sources
33
37
 
34
38
  ## Correct Observation Examples
35
39
 
@@ -47,6 +51,18 @@ Workbook, sheet, named range, table, or used range.
47
51
 
48
52
  > The formula is a cost-recognition policy.
49
53
 
54
+ > The `#REF!` in `B2` is a bug caused by a deleted column.
55
+
56
+ > The date in `C5` is stored as text, so it is wrong.
57
+
58
+ ## Static Inspection Boundary
59
+
60
+ Static structural inspection reveals how formulas and structure were written, but
61
+ it cannot prove computed results. Record an observed formula or value as structure
62
+ inspected only; do not assert that a formula's output is correct unless an engine
63
+ recalculated it. Note unresolved external data, links, or connections as
64
+ unresolved rather than assuming their current values.
65
+
50
66
  ## Detail Location Format
51
67
 
52
68
  ```text
@@ -93,6 +109,19 @@ outside this list, record it in the `PurposeAdequacyFrame` with evidence and
93
109
  promote it to this profile only after repeated real-source runs justify the
94
110
  refinement.
95
111
 
112
+ ## Large Workbook Inspection Strategy
113
+
114
+ Inspect structure before converting the workbook to another format. Do not flatten
115
+ a workbook into a single table or dataframe before checking whether structure --
116
+ formulas, merged ranges, named ranges, and cross-sheet references -- carries
117
+ meaning.
118
+
119
+ For large workbooks, prefer narrow, targeted reads around the relevant ranges over
120
+ loading every sheet in full. Read the workbook's own structural index first -- the
121
+ sheet list, per-sheet dimensions, named ranges, and table definitions -- and use a
122
+ read-only or streaming inspection path so the used range and formula cells can be
123
+ observed without materializing the entire workbook.
124
+
96
125
  ## Scan Targets
97
126
 
98
127
  - sheet list and used range per sheet
@@ -104,3 +133,9 @@ refinement.
104
133
  - data validation rules
105
134
  - macro/VBA presence
106
135
  - external data connections
136
+ - protected ranges and sheet protection
137
+ - filters and auto-filter state
138
+ - charts, images, and object anchors
139
+ - external links to other workbooks
140
+ - formula-error cells, recorded as literal tokens such as `#REF!`, `#N/A`, or `#VALUE!`
141
+ - structural-risk signals recorded literally and without diagnosis: cross-sheet references whose target sheet or range is absent, dates stored as text, empty cells inside a calculation chain, and lookup keys whose stored type differs from the target column
@@ -36,7 +36,7 @@ outer의 유일한 역할: **script를 `bash -s`로 실행하고 stdout을 verba
36
36
  | brand | spawn | 비고 |
37
37
  |---|---|---|
38
38
  | codex (`codex-nesting-batch-worker.ts`) | `codex exec --sandbox danger-full-access --ephemeral`, prompt는 stdin | outer가 subprocess를 spawn해야 하므로 non-seatbelt; inner unit executor는 자체 read-only sandbox 유지 |
39
- | claude (`claude-nesting-batch-worker.ts`) | `claude -p <prompt positional> --allowedTools Bash --permission-mode bypassPermissions --strict-mcp-config`(빈 MCP) | prompt는 **positional**(stdin 무시됨). `--effort` 지원, service_tier 표면 없음(API 전용). `ONTO_CLAUDE_BIN` 오버라이드 |
39
+ | claude (`claude-nesting-batch-worker.ts`) | `claude -p <prompt positional> --allowedTools Bash --permission-mode bypassPermissions --strict-mcp-config`(빈 MCP) | prompt는 **positional**(stdin 무시됨). `--effort` 지원, service_tier 표면 없음(API 전용). 바이너리는 `resolveClaudeBin()`로 해석(`ONTO_CLAUDE_BIN` 오버라이드 → PATH → 일반 설치 위치) |
40
40
 
41
41
  outer(teamlead seat) model/effort는 settings `review.execution.teamlead.llm`에서 brand adapter(codex_cli/claude_code) 일치 시에만 해석된다. **inner unit의 LLM 설정은 outer 설정이 아니라 호출자가 구성한 inner argv에 실린다**(flat 동등).
42
42
 
@@ -198,17 +198,21 @@ canonical requirement:
198
198
  현재 repo-local TS bounded path에서 실행 가능한 `ReviewExecutionProfile` mode는 아래다.
199
199
 
200
200
  - `main-workers`: main이 teamlead 역할을 수행하고 worker가 lens를 실행한다.
201
+ - `nested-workers`: external OAuth worker executor(`codex` 또는 `claude_code`)가
202
+ outer seat에서 ready unit batch를 fan-out하고, 각 inner unit은 flat 경로와
203
+ 동일한 unit-executor CLI/seat/검증 계약을 따른다. `direct_call` executor와
204
+ 조합되면 outer worker seat가 없으므로 fail-closed한다.
201
205
  - `synthesize.llm`: deliberation 이후 별도 synthesize unit에 적용된다. synthesize는 모든 lens output, issue artifacts, deliberation, problem framing을 통합하므로 높은 effort가 기본적으로 적합하다.
202
206
 
203
- `nested-workers`는 concept/profile shape로 남아 있지만 현재 active live path에서는
204
- pre-dispatch에서 fail-loud한다. 기존 nested bridge sidecar structured output,
205
- read-only lens execution, settings-owned bounded dispatch를 강제하지 못하기 때문이다.
206
- mode는 inner lens 실행이 동일한 structured runner 계약을 따를 때만 다시 실행
207
- 가능한 경로가 될 수 있다.
207
+ `nested-workers`의 canonical 계약은 `nesting-batch-worker-contract.md`가 소유한다.
208
+ 과거 raw provider-CLI inner bridge retired 경로이며, 현재 runtime path는
209
+ sidecar structured output, read-only unit execution, settings-owned bounded dispatch를
210
+ 동일 unit executor 공유로 보존한다.
208
211
 
209
212
  worker executor는 profile resolution에서 아래 중 하나로 고정된다.
210
213
 
211
214
  - `codex`: host-bound OAuth 또는 Codex worker path.
215
+ - `claude_code`: host-bound Claude Code worker path.
212
216
  - `direct_call`: `api_key` 또는 `local` provider path.
213
217
 
214
218
  중요한 점은 host-specific naming이 아니라: