////

[rosaic-knowledge-agent] RKA suggestion review was approve-to-add: nothing entered the graph until a huma

RKA suggestion review was approve-to-add: nothing entered the graph until a human approved, so the graph stayed sparse and review was a bottleneck. We wanted to invert it (promote-first): promote everything trust-marked,

////

Problem#

RKA suggestion review was approve-to-add: nothing entered the graph until a human approved, so the graph stayed sparse and review was a bottleneck. We wanted to invert it (promote-first): promote everything trust-marked, and treat human review as a governed graph write that UPGRADES trust.

Solution#

Implemented + merged promote-first inversion (branch feat/promote-first -> master, merge 90643c0). (1) review_state axis (unreviewed|system_confirmed|human_confirmed|human_edited|human_rejected) on Edge + KnowledgeSuggestion. (2) New CLI rka-promote-all (--dry-run default / --apply) reusing triage_backlog junk-skip helpers; promotes eligible non-junk suggestions to graph as inferred/unreviewed with trust metadata stamped at promotion. (3) review_actions became governed graph writes: approve->human_asserted+human_confirmed (confidence 1.0), edit->human_edited, reject->human_rejected (best-effort try/except graph write AFTER sqlite status + ReviewEvent). (4) trusted_only = review_state != human_rejected AND (assertion_tier=asserted AND confidence_kind=deterministic OR review_state IN [human_confirmed,human_edited]); applied in neighbors/vector_knn/list_entities AND on endpoint nodes. Live --apply: graph 900->1890 nodes, 936->2525 edges; new facts all review_state=unreviewed (excluded from trusted_only until reviewed, visible in include_inferred). 313 tests pass, ruff clean.

Failure Modes#

trusted_only in neighbors() requires BOTH endpoint nodes AND the edge to be trusted (n AND r AND m) — a live QA harness that stamped only edges (not nodes) returned [] and looked like a bug; it was the harness, not the code. So approving a relation must upgrade trust on the endpoint NODES too, not just the edge, or it won't surface in trusted traversal. Also: the rka-promote-all console entry point needs a pip install -e . reinstall after pyproject.toml changes before it resolves.