onto-mcp 0.4.12 → 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.
- package/.onto/authority/core-lexicon.yaml +1 -1
- package/.onto/authority/supported-models.yaml +137 -0
- package/.onto/domains/accounting-kr/competency_qs.md +153 -153
- package/.onto/processes/reconstruct/obligation-coverage-ledger.yaml +842 -0
- package/.onto/processes/reconstruct/obligation-coverage-recorded.yaml +225 -0
- package/.onto/processes/reconstruct/ontology-seeding-and-maturation-design.md +93 -54
- package/.onto/processes/reconstruct/reconstruct-contract-registry.yaml +169 -8
- package/.onto/processes/reconstruct/reconstruct-execution-ux-contract.md +72 -1
- package/.onto/processes/reconstruct/source-profiles/spreadsheet.md +35 -0
- package/.onto/processes/review/productized-live-path.md +9 -5
- package/.onto/processes/review/prompt-execution-runner-contract.md +32 -8
- package/.onto/processes/review/review-target-profile-contract.md +47 -4
- package/.onto/processes/shared/pipeline-execution-ledger-contract.md +11 -0
- package/.onto/processes/shared/target-material-kind-contract.md +1 -1
- package/README.md +64 -1
- package/dist/cli.js +11 -1
- package/dist/core-api/reconstruct-api.js +575 -24
- package/dist/core-api/review-api.js +70 -5
- package/dist/core-api/review-progress.js +7 -0
- package/dist/core-api/runtime-observation.js +7 -0
- package/dist/core-runtime/artifact-io.js +75 -3
- package/dist/core-runtime/cli/claude-code-review-unit-executor.js +19 -8
- package/dist/core-runtime/cli/materialize-review-prompt-packets.js +68 -14
- package/dist/core-runtime/cli/prepare-review-session.js +34 -1
- package/dist/core-runtime/cli/render-review-final-output.js +2 -1
- package/dist/core-runtime/cli/run-review-prompt-execution.js +758 -48
- package/dist/core-runtime/cli/run-seats.js +18 -0
- package/dist/core-runtime/cli/runtime-submit-context.js +10 -2
- package/dist/core-runtime/cli/unit-resubmit.js +269 -0
- package/dist/core-runtime/cli/worker-structured-output.js +80 -2
- package/dist/core-runtime/discovery/host-detection.js +71 -22
- package/dist/core-runtime/discovery/review-cert-assemble.js +208 -0
- package/dist/core-runtime/discovery/review-cert-record.js +442 -0
- package/dist/core-runtime/discovery/review-execution-units.js +22 -0
- package/dist/core-runtime/discovery/seat-inventory.js +167 -0
- package/dist/core-runtime/discovery/settings-chain.js +311 -52
- package/dist/core-runtime/discovery/supported-models.js +282 -29
- package/dist/core-runtime/discovery/synthesize-cert-assemble.js +197 -0
- package/dist/core-runtime/discovery/synthesize-cert-capsule.js +399 -0
- package/dist/core-runtime/discovery/synthesize-cert-judge.js +340 -0
- package/dist/core-runtime/discovery/synthesize-cert-loop.js +234 -0
- package/dist/core-runtime/discovery/synthesize-cert-mutation.js +117 -0
- package/dist/core-runtime/discovery/synthesize-cert-packet.js +182 -0
- package/dist/core-runtime/discovery/synthesize-cert-record.js +831 -0
- package/dist/core-runtime/discovery/synthesize-cert-sampler.js +336 -0
- package/dist/core-runtime/effort-calibration-ingest.js +135 -0
- package/dist/core-runtime/llm/dispatch-breaker.js +412 -0
- package/dist/core-runtime/llm/dispatch-fallback-adapter-capabilities.js +33 -0
- package/dist/core-runtime/llm/llm-caller.js +188 -47
- package/dist/core-runtime/llm/mock-llm-realization.js +35 -4
- package/dist/core-runtime/llm/model-switcher.js +1 -1
- package/dist/core-runtime/llm/openai-responses-incomplete-error.js +46 -0
- package/dist/core-runtime/llm/sealed-dispatch-capability.js +359 -0
- package/dist/core-runtime/llm/structured-dispatch-error.js +15 -0
- package/dist/core-runtime/onboard/claude-profile-scan.js +65 -0
- package/dist/core-runtime/onboard/cli-host.js +5 -2
- package/dist/core-runtime/onboard/configure-provider.js +33 -1
- package/dist/core-runtime/onboard/host-target.js +28 -3
- package/dist/core-runtime/onboard/register.js +54 -12
- package/dist/core-runtime/pipeline-execution-ledger.js +10 -0
- package/dist/core-runtime/reconstruct/artifact-types.js +35 -0
- package/dist/core-runtime/reconstruct/claim-projection-validation.js +17 -0
- package/dist/core-runtime/reconstruct/competency-projection-contract.js +63 -0
- package/dist/core-runtime/reconstruct/comprehension-artifact.js +321 -0
- package/dist/core-runtime/reconstruct/comprehension-reduce.js +367 -0
- package/dist/core-runtime/reconstruct/comprehension-semantic-map.js +771 -0
- package/dist/core-runtime/reconstruct/contract-registry.js +20 -0
- package/dist/core-runtime/reconstruct/dispatch-fallback-artifacts.js +640 -0
- package/dist/core-runtime/reconstruct/execution-telemetry.js +83 -9
- package/dist/core-runtime/reconstruct/final-output-sections.js +89 -0
- package/dist/core-runtime/reconstruct/governing-snapshot.js +36 -1
- package/dist/core-runtime/reconstruct/leaf-reader.js +305 -0
- package/dist/core-runtime/reconstruct/llm-dispatch-failure.js +270 -0
- package/dist/core-runtime/reconstruct/llm-touch-fingerprint.js +94 -0
- package/dist/core-runtime/reconstruct/material-admission-validation.js +18 -0
- package/dist/core-runtime/reconstruct/material-profile-validation.js +14 -0
- package/dist/core-runtime/reconstruct/materialize-preparation.js +304 -18
- package/dist/core-runtime/reconstruct/maturation-validation.js +1231 -53
- package/dist/core-runtime/reconstruct/mock-llm-realization.js +107 -3
- package/dist/core-runtime/reconstruct/obligation-assertion.js +18 -0
- package/dist/core-runtime/reconstruct/ontology-seed-validation.js +27 -0
- package/dist/core-runtime/reconstruct/output-budget.js +6 -0
- package/dist/core-runtime/reconstruct/pipeline-execution-ledger.js +87 -3
- package/dist/core-runtime/reconstruct/post-seed-validation.js +118 -5
- package/dist/core-runtime/reconstruct/purpose-authority-validation.js +117 -2
- package/dist/core-runtime/reconstruct/record.js +42 -0
- package/dist/core-runtime/reconstruct/registry-verification-validation.js +16 -0
- package/dist/core-runtime/reconstruct/run-control-validation.js +1011 -34
- package/dist/core-runtime/reconstruct/run.js +5198 -536
- package/dist/core-runtime/reconstruct/seed-authoring-readiness-validation.js +54 -3
- package/dist/core-runtime/reconstruct/semantic-quality-gate.js +105 -2
- package/dist/core-runtime/reconstruct/source-observation-delta-validation.js +41 -0
- package/dist/core-runtime/reconstruct/source-observations.js +166 -0
- package/dist/core-runtime/reconstruct/source-safety-validation.js +71 -183
- package/dist/core-runtime/reconstruct/source-scout-pack-validation.js +37 -1
- package/dist/core-runtime/reconstruct/terminal-validation.js +132 -2
- package/dist/core-runtime/review/continuation-plan.js +12 -5
- package/dist/core-runtime/review/issue-artifact-runtime.js +4 -1
- package/dist/core-runtime/review/materializers.js +100 -11
- package/dist/core-runtime/review/nesting-batch.js +6 -2
- package/dist/core-runtime/review/obligation-shardability.js +138 -0
- package/dist/core-runtime/review/pipeline-execution-ledger.js +42 -2
- package/dist/core-runtime/review/review-artifact-utils.js +217 -5
- package/dist/core-runtime/review/review-execution-steps.js +32 -8
- package/dist/core-runtime/review/review-progress-contract.js +8 -0
- package/dist/core-runtime/review/review-prompt-budget.js +97 -0
- package/dist/core-runtime/review/semantic-quality-gate.js +33 -7
- package/dist/core-runtime/review/spreadsheet-review-disposition.js +94 -0
- package/dist/core-runtime/route-identity.js +182 -0
- package/dist/core-runtime/spreadsheet-header-escalation.js +204 -0
- package/dist/core-runtime/spreadsheet-structure-observer.js +2689 -0
- package/dist/core-runtime/target-material-kind.js +58 -0
- package/dist/mcp/server.js +12 -5
- package/dist/tui/app.js +167 -0
- package/dist/tui/data/event-follower.js +116 -0
- package/dist/tui/data/node-detail.js +42 -0
- package/dist/tui/data/projection-poll.js +26 -0
- package/dist/tui/data/session-discovery.js +65 -0
- package/dist/tui/index.js +108 -0
- package/dist/tui/screens/log.js +25 -0
- package/dist/tui/screens/node-detail.js +17 -0
- package/dist/tui/screens/session-selector.js +26 -0
- package/dist/tui/screens/workflow-tree.js +90 -0
- package/dist/tui/view-model/reconstruct-adapter.js +162 -0
- package/dist/tui/view-model/review-adapter.js +270 -0
- package/dist/tui/view-model/tree-view-model.js +19 -0
- package/package.json +18 -3
- 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:
|
|
70
|
+
definition_sha256: 6b543ab5621ef169312c1632fa6e446950a72621a974c29130695039cea7b51b
|
|
71
71
|
contract_status: active
|
|
72
|
-
runtime_implementation_status:
|
|
72
|
+
runtime_implementation_status: partially_wired
|
|
73
73
|
schema_version: 1
|
|
74
|
-
profile_version:
|
|
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:
|
|
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
|
|
@@ -1273,6 +1308,9 @@ validation_gate_catalog:
|
|
|
1273
1308
|
- gate_id: source_scout_pack_post_maturation_gate
|
|
1274
1309
|
validation_artifact_ref: source-scout-pack-validation.post-maturation.yaml
|
|
1275
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
|
|
1276
1314
|
- gate_id: source_purpose_candidates_gate
|
|
1277
1315
|
validation_artifact_ref: source-purpose-candidates-validation.yaml
|
|
1278
1316
|
required_when: seed_validity_or_seed_iteration_readiness_is_projected
|
|
@@ -1443,6 +1481,11 @@ required_when_predicate_catalog:
|
|
|
1443
1481
|
truth_expression: "artifact_exists(source-scout-pack.post-maturation.yaml)"
|
|
1444
1482
|
unknown_projection: blocked
|
|
1445
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."
|
|
1446
1489
|
- predicate_id: source_frontier_observation_delta
|
|
1447
1490
|
gate_instance_scope: per_round
|
|
1448
1491
|
input_authority_refs: [rounds/<round-id>/source-observation-delta.yaml]
|
|
@@ -1979,6 +2022,16 @@ readiness_projection:
|
|
|
1979
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.
|
|
1980
2023
|
|
|
1981
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
|
|
1982
2035
|
- validator_id: reconstruct-run-control-validator
|
|
1983
2036
|
gate_ids: [reconstruct_run_control_gate]
|
|
1984
2037
|
validator_version: 1
|
|
@@ -2097,10 +2150,9 @@ validator_records:
|
|
|
2097
2150
|
- source-observations.yaml
|
|
2098
2151
|
- reconstruct-contract-registry.yaml
|
|
2099
2152
|
validation_obligations:
|
|
2100
|
-
-
|
|
2153
|
+
- validate_exactly_four_canonical_source_safety_axes
|
|
2101
2154
|
- validate_every_observation_has_source_safety_rows_for_each_intended_consumption
|
|
2102
2155
|
- validate_visibility_tier_is_derived_not_independent_authority
|
|
2103
|
-
- fail_when_nested_redaction_evidence_contradicts_top_level_axis_state
|
|
2104
2156
|
- validate_source_safety_subject_refs_against_observed_source_refs
|
|
2105
2157
|
- preserve_prompt_context_evidence_support_public_output_replay_and_material_claim_consumption_boundaries
|
|
2106
2158
|
output_ref: source-safety-ledger-validation.yaml
|
|
@@ -2527,7 +2579,7 @@ validator_records:
|
|
|
2527
2579
|
- validator_id: revision-proposal-validator
|
|
2528
2580
|
gate_ids: [revision_proposal_gate]
|
|
2529
2581
|
validator_version: 1
|
|
2530
|
-
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]
|
|
2531
2583
|
output_ref: revision-proposal-validation.yaml
|
|
2532
2584
|
- validator_id: maturation-baseline-validator
|
|
2533
2585
|
gate_ids: [maturation_baseline_gate]
|
|
@@ -2564,6 +2616,7 @@ validator_records:
|
|
|
2564
2616
|
- reject_matrix_rows_without_baseline_row_ref
|
|
2565
2617
|
- validate_matrix_row_ids_are_stable_and_baseline_row_refs_close
|
|
2566
2618
|
- preserve_frontier_seed_state_before_question_frontier_authoring
|
|
2619
|
+
- reject_blocking_question_refs_before_question_frontier_authoring
|
|
2567
2620
|
output_ref: baseline-actionability-matrix-validation.yaml
|
|
2568
2621
|
- validator_id: actionability-matrix-validator
|
|
2569
2622
|
gate_ids: [actionability_matrix_gate]
|
|
@@ -2575,6 +2628,8 @@ validator_records:
|
|
|
2575
2628
|
- maturation-answer-claims-validation.yaml
|
|
2576
2629
|
- ontology-expansion.yaml
|
|
2577
2630
|
- ontology-expansion-validation.yaml
|
|
2631
|
+
- maturation-question-frontier.yaml
|
|
2632
|
+
- maturation-question-frontier-validation.yaml
|
|
2578
2633
|
- reconstruct-contract-registry.yaml
|
|
2579
2634
|
validation_obligations:
|
|
2580
2635
|
- support_zero_delta_baseline_only_matrix_when_no_maturation_deltas_exist
|
|
@@ -2583,6 +2638,7 @@ validator_records:
|
|
|
2583
2638
|
- validate_matrix_row_ids_are_stable_and_baseline_row_refs_close
|
|
2584
2639
|
- validate_maturity_level_against_supporting_refs_blocking_questions_and_limitations
|
|
2585
2640
|
- require_blocker_and_high_rows_to_be_l4_limitation_backed_or_continuation_blocking
|
|
2641
|
+
- validate_blocking_question_refs_against_validated_question_frontier
|
|
2586
2642
|
output_ref: actionability-matrix-validation.yaml
|
|
2587
2643
|
- validator_id: maturation-question-frontier-validator
|
|
2588
2644
|
gate_ids: [maturation_question_frontier_gate]
|
|
@@ -2670,7 +2726,7 @@ validator_records:
|
|
|
2670
2726
|
output_ref: answer-support-ledger-validation.yaml
|
|
2671
2727
|
- validator_id: maturation-answer-claims-validator
|
|
2672
2728
|
gate_ids: [maturation_answer_claim_gate]
|
|
2673
|
-
validator_version:
|
|
2729
|
+
validator_version: 2
|
|
2674
2730
|
input_authority_refs:
|
|
2675
2731
|
- maturation-answer-claims.yaml
|
|
2676
2732
|
- answer-support-ledger-validation.yaml
|
|
@@ -2756,6 +2812,8 @@ validator_records:
|
|
|
2756
2812
|
- maturation-authority-response-validation.yaml
|
|
2757
2813
|
- ontology-expansion-validation.yaml
|
|
2758
2814
|
- maturation-convergence-ledger-validation.yaml
|
|
2815
|
+
- revision-proposal.yaml
|
|
2816
|
+
- revision-proposal-validation.yaml
|
|
2759
2817
|
- reconstruct-contract-registry.yaml
|
|
2760
2818
|
validation_obligations:
|
|
2761
2819
|
- validate_continuation_state_against_validated_actionability_matrix_and_frontier_state
|
|
@@ -2763,6 +2821,10 @@ validator_records:
|
|
|
2763
2821
|
- validate_continue_ask_user_or_blocked_state_against_available_next_authority
|
|
2764
2822
|
- validate_limitation_refs_and_row_scope_for_actionable_limited_state
|
|
2765
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
|
|
2766
2828
|
output_ref: maturation-continuation-decision-validation.yaml
|
|
2767
2829
|
- validator_id: actionable-ontology-validator
|
|
2768
2830
|
gate_ids: [actionable_ontology_gate]
|
|
@@ -3188,3 +3250,102 @@ version_policy:
|
|
|
3188
3250
|
- query access contract registry changes
|
|
3189
3251
|
- readiness projection changes
|
|
3190
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
|
-
|
|
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
|
|
@@ -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
|
|
204
|
-
|
|
205
|
-
read-only
|
|
206
|
-
|
|
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이 아니라:
|
|
@@ -60,7 +60,7 @@ runtime은 아래만 한다.
|
|
|
60
60
|
- `prompt-packets/synthesis/{issue_id}.prompt.md`
|
|
61
61
|
9. executor realization
|
|
62
62
|
- `worker`
|
|
63
|
-
- `
|
|
63
|
+
- `direct_call`
|
|
64
64
|
10. host runtime
|
|
65
65
|
- `codex`
|
|
66
66
|
- `openai`
|
|
@@ -108,6 +108,9 @@ runtime은 아래만 한다.
|
|
|
108
108
|
9. `execution-result.yaml`
|
|
109
109
|
10. `review-run-manifest.yaml`
|
|
110
110
|
11. `error-log.md`
|
|
111
|
+
12. `dispatch-incomplete.yaml` — dispatch breaker가 켜진 배치(lens/issue-stance)의
|
|
112
|
+
end state (완료/dead-letter/미완료 집합). 트립이든 완주든 기록하며, OFF에서는
|
|
113
|
+
쓰지 않는다
|
|
111
114
|
|
|
112
115
|
원칙:
|
|
113
116
|
|
|
@@ -121,6 +124,22 @@ runtime은 아래만 한다.
|
|
|
121
124
|
- `execution-result.yaml`은 actual execution truth의 canonical seat다
|
|
122
125
|
- `execution-result.yaml`과 `review-run-manifest.yaml`은 effective retry policy를 기록해야 한다
|
|
123
126
|
- `lens-completion-barrier.yaml`은 downstream stage 진입 gate다
|
|
127
|
+
- `review.execution.retry.dispatch_breaker`(opt-in)가 켜지면 lens/issue-stance
|
|
128
|
+
fan-out 풀의 **flat per-unit 루프**는 유닛의 최종 outcome을 계통 실패 분류
|
|
129
|
+
(rate_limit/auth/transport)로 관찰하고, 서로 다른 유닛에 걸친 연속 계통 실패가
|
|
130
|
+
임계에 닿으면 잔여 유닛을 디스패치하지 않고 halt한다 (`halt_reason` prefix
|
|
131
|
+
`dispatch_breaker:`, lens 풀은 `halt_phase=lens_dispatch_breaker`). 미완료
|
|
132
|
+
집합은 `dispatch-incomplete.yaml`이 회복 계약(재디스패치 집합 == 미완료 집합)
|
|
133
|
+
으로 영속하며, 트립 halt의 execution-result는 완료 유닛 행을 보존한다.
|
|
134
|
+
nested-workers 1차 배치가 실행된 스테이지도 breaker가 적용된다(§4-1): 배치-창
|
|
135
|
+
SUCCESS는 실 디스패치가 아니므로 완료로만 집계돼 계통 streak을 리셋하지 않고,
|
|
136
|
+
배치-창 FAILURE는 flat 경로처럼 실패로 분류된다(item-local→dead-letter, 계통→
|
|
137
|
+
회복 미완료 집합). 배치-실패 유닛의 flat 재시도가 계통 실패를 직접 관찰·구동
|
|
138
|
+
한다. lens/issue-stance 풀의 실제 dispatch width가 2 이상이면 runner가
|
|
139
|
+
breaker policy를 내부적으로 `concurrent:true`로 투영해 완료순서가 poison-vs-outage
|
|
140
|
+
회복 집합을 결정하지 못하게 한다. 이 값은 사용자 설정 키가 아니라 runtime-owned
|
|
141
|
+
execution projection이다. OFF(기본)는 현행 halt/배리어 동작이며 nested 경로도
|
|
142
|
+
무변경이다
|
|
124
143
|
- degraded case / partial failure는 `error-log.md`에 기록해야 한다
|
|
125
144
|
- runtime unavailable completion으로 root unit이 completed가 된 경우에도 원 실패는 child unit result로 보존하고 degradation evidence에 포함해야 한다
|
|
126
145
|
- `error-log.md`는 최소 한 번 `EffectiveBoundaryState`를 기록해야 한다
|
|
@@ -168,13 +187,18 @@ evidence로 쓰지 않는다.
|
|
|
168
187
|
|
|
169
188
|
현재 구현에서 prompt execution runner를 통해 실행되는 execution profile:
|
|
170
189
|
|
|
171
|
-
- `
|
|
172
|
-
- `
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
190
|
+
- `main-workers + codex|claude_code` (Codex CLI 또는 Claude Code CLI 경로)
|
|
191
|
+
- `main-workers + direct_call` (API/local provider 경로)
|
|
192
|
+
- `nested-workers + codex|claude_code` (outer OAuth worker가 ready unit batch를
|
|
193
|
+
fan-out하고, inner unit은 flat 경로와 동일한 unit-executor CLI/seat/검증 계약을
|
|
194
|
+
따른다)
|
|
195
|
+
|
|
196
|
+
`nested-workers + direct_call`은 outer worker seat가 없으므로
|
|
197
|
+
`nested_workers_executor_unsupported` structured failure로 fail-closed한다. raw
|
|
198
|
+
provider-CLI inner bridge는 retired 경로이며, active nested path의 계약은
|
|
199
|
+
`nesting-batch-worker-contract.md`가 소유한다. mock-backed nested harness는 wiring,
|
|
200
|
+
schema, artifact contract, route/failure 검증 evidence이며 product semantic
|
|
201
|
+
completion 또는 semantic quality evidence로 승격하지 않는다.
|
|
178
202
|
|
|
179
203
|
원칙:
|
|
180
204
|
|
|
@@ -93,8 +93,8 @@ material_profile:
|
|
|
93
93
|
target_material_kind: code
|
|
94
94
|
target_material_kind_candidates:
|
|
95
95
|
- code
|
|
96
|
-
support_status:
|
|
97
|
-
unsupported_reason:
|
|
96
|
+
support_status: supported
|
|
97
|
+
unsupported_reason: null
|
|
98
98
|
detection:
|
|
99
99
|
owner: runtime_heuristic
|
|
100
100
|
confidence: 0.92
|
|
@@ -157,8 +157,51 @@ This axis must stay separate from:
|
|
|
157
157
|
- `medium`: a cross-product reference and learning frame
|
|
158
158
|
|
|
159
159
|
The current runtime records material kind and detection confidence as a bounded
|
|
160
|
-
heuristic.
|
|
161
|
-
|
|
160
|
+
heuristic. Per-material review handling is implemented for **spreadsheet** through a
|
|
161
|
+
**single per-ref disposition** (`computeSpreadsheetDisposition`, the SSOT): every
|
|
162
|
+
spreadsheet honesty surface — `support_status`, `target_refs[].inspectable`/`.sha256`,
|
|
163
|
+
the `review_goal` obligations, the prompt `material_kind_obligations`, and the render
|
|
164
|
+
notes — **projects from one record computed once over the shared observation**, instead
|
|
165
|
+
of each surface re-deriving its claim from a different proxy. The structural inventory is
|
|
166
|
+
rendered into `materialized-input.md` with detail (formula text, named-range references,
|
|
167
|
+
data-validation rules incl. operator + formula bounds, protections, risk signals) —
|
|
168
|
+
**structure inspected only, not recalculated**.
|
|
169
|
+
|
|
170
|
+
Two distinct axes, deliberately not coupled:
|
|
171
|
+
|
|
172
|
+
- **`inspectable`** — the workbook was read (`unsupported_reason === null`) AND has
|
|
173
|
+
renderable structure, *including plain tabular data* (columns / per-column cardinality /
|
|
174
|
+
distinct-value counts). The aggregate-only rule is NARROWED, not preserved: the single
|
|
175
|
+
value-bearing field is `data_validations[].members` — bounded DECLARED type=list enum labels
|
|
176
|
+
parsed from a formula1 literal (never observed/free/high-cardinality cell values).
|
|
177
|
+
A clean CSV or a formula-free data `.xlsx` is `inspectable` and stays
|
|
178
|
+
`support_status: supported`. It is NOT coupled to whether any obligation is backed.
|
|
179
|
+
- **`backed_goals`** — the POSITIVE subset of the six obligations whose specific evidence
|
|
180
|
+
exists in that ref's inventory; this drives `review_goal`. `review_goal` therefore
|
|
181
|
+
carries **only the backed subset, not always all six**: a plain-data CSV backs none
|
|
182
|
+
(and so carries no spreadsheet obligation while remaining `supported`); a macro-only or
|
|
183
|
+
protection-only workbook backs only `access_and_protection_hygiene`. `structural_risk_signals`
|
|
184
|
+
is backed by genuine structural risk only — `unreadable_sheet_part` (an observation-failure
|
|
185
|
+
marker) and the `macro_present` / `external_links_present` signals (owned by other goals)
|
|
186
|
+
do not back it.
|
|
187
|
+
|
|
188
|
+
`support_status` runs the gate over the **union of resolved and materialized** spreadsheet
|
|
189
|
+
refs the prompt renders — **regardless of the resolved material kind**, so a `code`-resolved
|
|
190
|
+
target carrying a materialized workbook the observer could not read degrades to `partial`
|
|
191
|
+
(it is not gated only when the resolved kind is spreadsheet). If **any** rendered spreadsheet
|
|
192
|
+
ref is uninspectable the target is `partial`, with a reason naming each uninspected ref by
|
|
193
|
+
its full resolved path and actual cause; obligations are dropped only when **no** ref is
|
|
194
|
+
inspectable. A `supported`/`null` profile is never emitted for a workbook the render shows as
|
|
195
|
+
`unsupported`. The render emits obligation-backing detail **before** the per-sheet bodies so
|
|
196
|
+
the prompt embed cut cannot strip an obligation's evidence, and protected/hidden sheets beyond
|
|
197
|
+
the render cap are disclosed by count. Observation bounds the number of sheets read
|
|
198
|
+
(`max_sheets_observed`, conservatively high) and a CSV/workbook whose decode or parse throws
|
|
199
|
+
degrades to an honest `unsupported` inventory rather than aborting review prep.
|
|
200
|
+
|
|
201
|
+
`code`, `document`, `database`, and `unknown` retain their prior support states
|
|
202
|
+
until their per-material review adapters land. A spreadsheet inside a `mixed`
|
|
203
|
+
bundle does not yet receive spreadsheet obligations (a known limitation,
|
|
204
|
+
consistent with the `mixed` support state).
|
|
162
205
|
|
|
163
206
|
---
|
|
164
207
|
|
|
@@ -81,6 +81,7 @@ interface PipelineExecutionLedgerUnitEntry {
|
|
|
81
81
|
lastFailureMessage: string | null;
|
|
82
82
|
upstreamUnitIds: string[];
|
|
83
83
|
downstreamUnitIds: string[];
|
|
84
|
+
resolution?: "demoted";
|
|
84
85
|
executionTelemetry?: PipelineUnitExecutionTelemetry | null;
|
|
85
86
|
}
|
|
86
87
|
|
|
@@ -170,6 +171,16 @@ Execution telemetry rules:
|
|
|
170
171
|
competency-question assessment) so batching changes stay attributable.
|
|
171
172
|
- Units that made no LLM call carry no telemetry field; absence is not a
|
|
172
173
|
failure signal.
|
|
174
|
+
- `resolution: "demoted"` marks terminal resolution outside the trusted-output
|
|
175
|
+
path (bounded resubmit exhausted, complete-with-failure): the downstream
|
|
176
|
+
stage product consumed and disclosed the gap (review: issue-stance-matrix
|
|
177
|
+
`validation.missing_stances`), so the unit owes no further dispatch — it
|
|
178
|
+
must not reappear on the frontier, block convergence, or block downstream
|
|
179
|
+
upstream-trust. `status`/`lastFailureMessage` keep the audit truth
|
|
180
|
+
(typically `failed`); a resolved unit contributes no preserved artifacts.
|
|
181
|
+
Frontier/convergence consumers use `isResolvedLedgerUnit`
|
|
182
|
+
(trusted-or-resolved); artifact-preservation consumers keep
|
|
183
|
+
`isTrustedLedgerUnit`.
|
|
173
184
|
- Current population status: `reconstruct` populates telemetry from its run
|
|
174
185
|
manifest steps. `review` does not populate it yet.
|
|
175
186
|
|
|
@@ -81,7 +81,7 @@ the lexicon.
|
|
|
81
81
|
|
|
82
82
|
| Process | Required alignment |
|
|
83
83
|
|---|---|
|
|
84
|
-
| `review` | `review-target-profile.yaml` records `target_material_kind
|
|
84
|
+
| `review` | `review-target-profile.yaml` records `target_material_kind` and provides a per-material review adapter for `spreadsheet` via a **single per-ref disposition** (`computeSpreadsheetDisposition`): every honesty surface (`support_status`, `target_refs[].inspectable`, `review_goal`, prompt obligations, render notes) projects from one record. `inspectable` (the workbook was read and has renderable structure, *including plain tabular data*) drives `support_status`; the **positive** `backed_goals` subset drives `review_goal`, so `review_goal` carries only the backed obligations — a plain CSV is `supported`/`inspectable` yet backs none, and a macro/protection-only workbook backs only `access_and_protection_hygiene`. `support_status` degrades to `partial` when **any** rendered ref across the resolved∪materialized union is uninspectable (unsupported format .xls/.xlsb/.ods, unreadable/oversized/empty, or a corrupt shell), and the gate runs regardless of the resolved kind (a code target carrying a materialized uninspectable workbook also degrades). `code` stays `supported`, `document`/`database` stay `partial`, `mixed` stays `partial_composite`, and `unknown` stays `unknown` until their adapters land (precise per-kind states owned by `review-target-profile-contract.md` §6). Review `support_status` and reconstruct `runtime_implementation_status` are **independent per-process axes over the same shared inventory backing**: review `supported` does not imply the reconstruct seed pipeline is fully wired (it remains `partially_wired`). |
|
|
85
85
|
| `reconstruct` | Source profiles, source adapters, source observations, and directive validation must be keyed by `target_material_kind`. |
|
|
86
86
|
| `evolve` | Future adapters must not assume code-product inputs; adapter selection should start from `target_material_kind` as defined in `.onto/processes/evolve/material-kind-adapter-contract.md`. |
|
|
87
87
|
|