# Claim/Source Contract Preview - 2026-07-09 ## Scope Read-only contract preview for live approved rich KB proposals fetched from the VPS leoclean profile. This does not write Postgres, does not restart Leo, and does not change runtime behavior. ## Result ### `14fa5ecc-ac7a-41c1-807d-a2e85b936617` - Status: `approved` - Proposal type: `attach_evidence` - Direct apply ready: `false` - Claim rows needing canonical IDs: `4` - Source rows needing canonical IDs/deduplication: `5` - Edge fragments blocked until IDs/mapping exist: `17` - Evidence fragments blocked until claim/source IDs exist: `9` - Next action: Do not apply directly. Review a claim/source creation contract in a clone, assign/deduplicate canonical IDs, then rerun strict normalization to produce apply_payload child proposals. Contract gaps: - `current_apply_role_cannot_insert_claims_or_sources`: A separate reviewed role/contract for public.claims and public.sources creation. - `claim_candidates_need_canonical_ids`: Create or deduplicate claim rows, then rewrite edges/evidence using UUIDs. - `public_claims_has_no_body_or_review_note_columns`: Store those details in public.sources excerpts or add reviewed schema support. - `public_sources_has_limited_metadata_columns`: Deduplicate sources and decide where provenance metadata is retained. - `old_claim_supersession_is_many_successors`: Use typed claim_edges for supersession components or introduce an aggregate successor node. - `concept_map_dependency_has_no_first_class_storage`: Create first-class concept-map storage or keep the concept map as source-backed context. Claim candidates: - `capital_allocation_is_civilizational_steering` -> type `structural`, confidence `0.65`, needs canonical id - `capital_allocation_depends_on_distributed_market_intelligence` -> type `structural`, confidence `0.7`, needs canonical id - `internet_finance_structural_advantages_capital_allocation` -> type `structural`, confidence `0.45`, needs canonical id - `internet_finance_is_mechanism_not_telos` -> type `normative/strategic-boundary`, confidence `0.8`, needs canonical id Source candidates: - `m3ta_telegram_approval_supersede_split_2026_07_05` -> source_type `dm`, needs dedupe/canonical id - `kb_existing_hayek_claim_7da4851c` -> source_type `note`, needs dedupe/canonical id - `hayek_use_of_knowledge_in_society_fee_snapshot` -> source_type `url`, needs dedupe/canonical id - `rio_belief_capital_allocation_civilizational_infrastructure` -> source_type `note`, needs dedupe/canonical id - `leo_active_strategy_v2_context` -> source_type `note`, needs dedupe/canonical id ### `ac036c9d-20a0-4ffe-881f-57d6b7bacf22` - Status: `approved` - Proposal type: `attach_evidence` - Direct apply ready: `false` - Claim rows needing canonical IDs: `3` - Source rows needing canonical IDs/deduplication: `3` - Edge fragments blocked until IDs/mapping exist: `6` - Evidence fragments blocked until claim/source IDs exist: `5` - Next action: Do not apply directly. Review a claim/source creation contract in a clone, assign/deduplicate canonical IDs, then rerun strict normalization to produce apply_payload child proposals. Contract gaps: - `current_apply_role_cannot_insert_claims_or_sources`: A separate reviewed role/contract for public.claims and public.sources creation. - `claim_candidates_need_canonical_ids`: Create or deduplicate claim rows, then rewrite edges/evidence using UUIDs. - `public_claims_has_no_body_or_review_note_columns`: Store those details in public.sources excerpts or add reviewed schema support. - `public_sources_has_limited_metadata_columns`: Deduplicate sources and decide where provenance metadata is retained. Claim candidates: - `claim_nodes_need_bodies` -> type `governance/process`, confidence `0.85`, needs canonical id - `internet_finance_structural_advantages_body_draft` -> type `structural/forecast-like thesis`, confidence `0.45`, needs canonical id - `hayek_reframed_price_system_distributed_knowledge` -> type `structural/reframing`, confidence `0.8`, needs canonical id Source candidates: - `telegram_attachment_teleo_agent_strategy_kernels_2026_06_30` -> source_type `note`, needs dedupe/canonical id - `telegram_feedback_m3ta_claim_shape_2026_07_05` -> source_type `note`, needs dedupe/canonical id - `hayek_use_of_knowledge_in_society_fee_snapshot` -> source_type `url`, needs dedupe/canonical id ## Claim Ceiling This proves the live approved packets can be converted into a row-level contract preview. It does not prove those new claim/source rows should be inserted into canonical production tables without a clone/staging apply rehearsal and a reviewed creation contract. JSON proof: `/Users/user/Documents/Codex/2026-07-09/019f34eb-d297-72d0-b7e2-b222d5515ab9-load/outputs/claim-source-contract-preview-20260709/claim-source-contract-preview-current.json` Fetched live proposal bundle: `/Users/user/Documents/Codex/2026-07-09/019f34eb-d297-72d0-b7e2-b222d5515ab9-load/outputs/claim-source-contract-preview-20260709/approved-rich-proposals-live.json`