teleo-infrastructure/tests/test_kb_rich_proposal_creation_plan.py
twentyOne2x 699a9e7917
Some checks are pending
CI / lint-and-test (push) Waiting to run
Add Working Leo operator skill pack
- Add reusable Teleo/Leo skills for VPS, GCP, Telegram, KB changes, provenance, and handoff onboarding.
- Add guarded KB proposal tooling for approved rich proposals, apply packets, and rollback proof.
- Add Cory-style open-ended benchmark prompts and tests alongside the precise regression canaries.

`.agents/skills/leo-telegram-canary-ops/SKILL.md`
`.agents/skills/teleo-gcp-parity-ops/SKILL.md`
`.agents/skills/teleo-infra-provenance/SKILL.md`
`.agents/skills/teleo-kb-db-change-workflow/SKILL.md`
`.agents/skills/teleo-leo-onboarding/SKILL.md`
`.agents/skills/teleo-proof-handoff/SKILL.md`
`.agents/skills/teleo-vps-runtime-ops/SKILL.md`
`.agents/skills/working-leo-cory-outcomes/SKILL.md`
`docs/reports/leo-working-state-20260709/claim-source-contract-preview-current.md`
`docs/reports/leo-working-state-20260709/cory-expected-working-leo-outcomes-20260709.md`
`docs/reports/leo-working-state-20260709/current-truth-index.md`
`docs/reports/leo-working-state-20260709/fable-leo-teleo-onboarding.md`
`docs/reports/leo-working-state-20260709/gcp-db-parity-current-blocker-20260709.json`
`docs/reports/leo-working-state-20260709/helmer-7powers-creation-plan.json`
`docs/reports/leo-working-state-20260709/kb-apply-canary-execute-current.md`
`docs/reports/leo-working-state-20260709/kb-apply-canary-plan-current.md`
`docs/reports/leo-working-state-20260709/leo-db-state-13-skill-pack.svg`
`docs/reports/leo-working-state-20260709/operator-surface-map.md`
`docs/reports/leo-working-state-20260709/production-apply-packet-current.md`
`docs/reports/leo-working-state-20260709/rich-proposal-creation-plan-mapped-current.md`
`docs/reports/leo-working-state-20260709/skill-pack-manifest.json`
`docs/reports/leo-working-state-20260709/skill-pack-readme.md`
`docs/reports/leo-working-state-20260709/telegram-gateway-handler-canary-current.json`
`docs/reports/leo-working-state-20260709/telegram-gateway-handler-canary-current.md`
`docs/reports/leo-working-state-20260709/telegram-live-canary-current.json`
`docs/reports/leo-working-state-20260709/telegram-live-canary-current.md`
`docs/reports/leo-working-state-20260709/telegram-live-db-write-canary-20260709.json`
`docs/reports/leo-working-state-20260709/telegram-live-db-write-canary-20260709.md`
`docs/reports/leo-working-state-20260709/working-leo-current-state-20260709.md`
`docs/reports/leo-working-state-20260709/working-leo-definition-20260709.md`
`docs/reports/leo-working-state-20260709/working-leo-execution-plan-current.md`
`docs/reports/leo-working-state-20260709/working-leo-open-ended-benchmark-spec.json`
`scripts/approve_proposal.py`
`scripts/kb_claim_source_contract_preview.py`
`scripts/kb_rich_proposal_apply_packet.py`
`scripts/kb_rich_proposal_creation_plan.py`
`scripts/working_leo_open_ended_benchmark.py`
`tests/test_approve_proposal.py`
`tests/test_kb_claim_source_contract_preview.py`
`tests/test_kb_rich_proposal_apply_packet.py`
`tests/test_kb_rich_proposal_creation_plan.py`
`tests/test_working_leo_open_ended_benchmark.py`
2026-07-09 22:56:48 +02:00

241 lines
11 KiB
Python

"""Unit tests for scripts/kb_rich_proposal_creation_plan.py."""
from __future__ import annotations
import sys
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(REPO_ROOT / "scripts"))
import kb_rich_proposal_creation_plan as plan # noqa: E402
def _proposal():
return {
"id": "14fa5ecc-ac7a-41c1-807d-a2e85b936617",
"proposal_type": "attach_evidence",
"status": "approved",
"proposed_by_agent_id": "11111111-1111-1111-1111-111111111111",
"reviewed_by_handle": "m3ta",
"review_note": "Approve A and B; keep C low confidence.",
"source_ref": "telegram:m3ta:2026-07-05",
"payload": {
"old_claim": {"id": "d0000000-0000-0000-0000-000000000005"},
"claim_candidates": [
{
"claim_key": "capital_allocation_is_civilizational_steering",
"headline": "Capital allocation steers futures.",
"body": "Full body with the actual caveat.",
"type": "structural",
"confidence": 0.65,
"tags": ["capital-allocation"],
"review_note": "Moderate confidence only.",
"evidence": [{"source_key": "m3ta_telegram_approval"}],
"edges": [
{
"edge_type": "supersedes_component_of",
"target_claim_id": "d0000000-0000-0000-0000-000000000005",
},
{"edge_type": "requires", "target": "internet_finance_is_mechanism_not_telos"},
],
},
{
"claim_key": "internet_finance_is_mechanism_not_telos",
"headline": "Internet finance is a mechanism, not telos.",
"body": "Boundary body.",
"type": "normative/strategic-boundary",
"confidence": 0.8,
"evidence": [{"source_key": "m3ta_telegram_approval"}],
"edges": [{"edge_type": "serves", "target": "teleo telos"}],
},
],
"source_candidates": [
{
"source_key": "m3ta_telegram_approval",
"source_type": "dm",
"title": "m3ta approval",
"source_quality": "operator direction",
"usage_limits": "not external evidence",
"key_excerpts": ["approved with caveat"],
}
],
"proposed_concept_map_dependency": {"concept_key": "distributed_market_intelligence"},
},
}
def test_build_creation_plan_assigns_stable_ids_and_rows():
result = plan.build_creation_plan(_proposal())
assert result["direct_production_apply_ready"] is False
assert result["runtime_change"] is False
assert set(result["generated_ids"]["claims"]) == {
"capital_allocation_is_civilizational_steering",
"internet_finance_is_mechanism_not_telos",
}
assert len(result["planned_rows"]["claims"]) == 2
assert len(result["planned_rows"]["sources"]) == 3 # one operator source + two body-preservation sources
again = plan.build_creation_plan(_proposal())
assert result["generated_ids"] == again["generated_ids"]
def test_claim_type_subtypes_normalize_to_live_claim_types():
result = plan.build_creation_plan(_proposal())
rows = {row["claim_key"]: row for row in result["planned_rows"]["claims"]}
assert rows["internet_finance_is_mechanism_not_telos"]["type"] == "normative"
assert rows["internet_finance_is_mechanism_not_telos"]["original_type"] == "normative/strategic-boundary"
assert rows["internet_finance_is_mechanism_not_telos"]["type_normalization"]["to"] == "normative"
def test_source_types_normalize_to_live_source_types():
result = plan.build_creation_plan(_proposal())
rows = {row["source_key"]: row for row in result["planned_rows"]["sources"]}
assert rows["m3ta_telegram_approval"]["source_type"] == "dm"
body_key = "capital_allocation_is_civilizational_steering__proposal_body"
assert rows[body_key]["source_type"] == "other"
assert rows[body_key]["original_source_type"] == plan.BODY_SOURCE_TYPE
assert rows[body_key]["source_type_normalization"]["to"] == "other"
def test_body_sources_preserve_review_notes_and_caveats():
result = plan.build_creation_plan(_proposal())
body_sources = [row for row in result["planned_rows"]["sources"] if row["original_source_type"] == plan.BODY_SOURCE_TYPE]
assert len(body_sources) == 2
joined = "\n".join(row["excerpt"] for row in body_sources)
assert "Approve A and B; keep C low confidence." in joined
assert "Moderate confidence only." in joined
assert "Full body with the actual caveat." in joined
def test_supported_edges_plan_and_unsupported_edges_block():
result = plan.build_creation_plan(_proposal())
edges = result["planned_rows"]["claim_edges"]
assert len(edges) == 1
assert edges[0]["edge_type"] == "requires"
blocked_reasons = "\n".join(reason for item in result["blocked_fragments"] for reason in item["reasons"])
assert "unsupported edge_type 'supersedes_component_of'" in blocked_reasons
assert "unsupported edge_type 'serves'" in blocked_reasons
assert "target is external/context text" in blocked_reasons
def test_reviewed_mapping_overlay_converts_supported_subset():
result = plan.build_creation_plan(
_proposal(),
{
"edge_type_aliases": {
"supersedes_component_of": {
"to": "supersedes",
"reason": "component split is represented as explicit successor-to-old-claim supersedes edges",
},
"serves": "supports",
},
"target_claim_mappings": {
"teleo telos": {
"to": "13100000-0000-0000-0000-000000000001",
"reason": "test-only mapping to a UUID-shaped target",
}
},
},
)
edge_types = [edge["edge_type"] for edge in result["planned_rows"]["claim_edges"]]
assert "supersedes" in edge_types
assert "supports" in edge_types
mapped_edges = [edge for edge in result["planned_rows"]["claim_edges"] if edge["edge_type_mapping"]]
assert mapped_edges
assert result["mapping_overlay_applied"] is True
def test_evidence_rows_include_candidate_sources_and_body_sources():
result = plan.build_creation_plan(_proposal())
evidence = result["planned_rows"]["claim_evidence"]
roles = {row["role"] for row in evidence}
assert plan.DEFAULT_EVIDENCE_ROLE in roles
assert plan.BODY_EVIDENCE_ROLE in roles
assert len(evidence) == 4
def test_proposed_claims_and_reasoning_tool_node_plan():
proposal = {
"id": "a64df080-8502-42e2-98f4-9bbdecb8da73",
"proposal_type": "attach_evidence",
"status": "approved",
"proposed_by_agent_id": "11111111-1111-1111-1111-111111111111",
"reviewed_by_handle": "m3taversal",
"review_note": "Approved after claim #6 was removed/deferred.",
"source_ref": "telegram:m3taversal:2026-06-29:7-powers-approved-with-changes",
"payload": {
"proposed_reasoning_tool_node": {
"name": "Helmer 7 Powers",
"summary": "Benefit/barrier strategy framework.",
"core_test": "A Power needs both benefit and barrier.",
"review_gate": "Rio should review mechanism/value-capture claims.",
},
"seven_powers": [
{
"name": "Scale Economies",
"definition": "Unit cost declines with volume.",
"examples": ["Netflix content costs amortized", "potential Teleo scale candidate"],
}
],
"power_lifecycle_map": {"take_off": {"stage_question": "Which powers can be established?"}},
"conceptual_neighborhood": {
"theme": "competitive advantage and moats",
"additional_moat_neighborhood_candidates": [
{"claim_id": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "edge_type": "relates"},
{"claim_id": "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb", "edge_type": "defer"},
],
},
"approval_change_log": [{"change": "Removed proposed claim #6."}],
"proposed_claims": [
{
"claim_key": "seven_powers_requires_benefit_and_barrier",
"text": "7 Powers diagnoses durable value capture only with benefit and barrier.",
"type": "structural",
"confidence": 0.8,
"tags": ["grand-strategy"],
"evidence": ["acquired_7powers_hamilton_helmer"],
"edges": [
{
"edge_type": "supports",
"to_existing_claim": "8f3e773e-4255-47a7-ba8f-61c57a43bebe",
}
],
}
],
"source_candidates": [
{
"source_key": "acquired_7powers_hamilton_helmer",
"source_type": "podcast_transcript",
"title": "7 Powers with Hamilton Helmer | Acquired",
"key_excerpt": "Power has two conditions: benefit and barrier.",
}
],
},
}
result = plan.build_creation_plan(proposal)
assert result["generated_ids"]["reasoning_tools"]["Helmer 7 Powers"]
assert len(result["planned_rows"]["reasoning_tools"]) == 1
assert result["planned_rows"]["reasoning_tools"][0]["category"] == "strategy_framework"
description = result["planned_rows"]["reasoning_tools"][0]["description"]
assert "Removed proposed claim #6" in description
assert "potential Teleo scale candidate" not in description
assert '"deferred_application_examples_removed": 1' in description
assert '"deferred_neighborhood_candidates_removed": 1' in description
assert len(result["planned_rows"]["claims"]) == 1
assert result["planned_rows"]["claims"][0]["text"].startswith("7 Powers diagnoses")
rows = {row["source_key"]: row for row in result["planned_rows"]["sources"]}
assert rows["acquired_7powers_hamilton_helmer"]["source_type"] == "transcript"
assert len(result["planned_rows"]["claim_evidence"]) == 2
assert len(result["planned_rows"]["claim_edges"]) == 1
assert "insert into public.reasoning_tools" in result["rollback_rehearsal_sql"]
def test_rollback_sql_is_not_commit_sql():
result = plan.build_creation_plan(_proposal())
sql = result["rollback_rehearsal_sql"]
assert "insert into public.claims" in sql
assert "insert into public.sources" in sql
assert "rollback;" in sql
assert "commit;" not in sql.lower()