## Context Nothing becomes canonical knowledge just because an agent returned it. Depends on #221 and #224. ## Behavior to implement A validation pipeline for each proposal: 1. Schema check. 2. Resolve referenced entities, including aliases. 3. Exact-duplicate check (fuzzy matching is #238). 4. Scope check. 5. Required provenance on evidence (source reference, observed_at, collector). 6. Temporal fields and status transitions. 7. Obvious contradiction with active claims → mark disputed and link both claims. 8. Never overwrite history. 9. Access metadata rules (#232). 10. Review policy. Outcomes: auto-accept (when policy allows), require approval (`waiting_for_approval`), disputed or unresolved, rejected with a reason. Review policy is configurable per claim type. Example: ownership and normative claims always need approval. ## Acceptance criteria - Every accepted change links to its investigation and evidence. - A proposal with a missing source reference is rejected with a clear reason. - A contradicting proposal leaves both claims visible with a `contradicts` link.
Activity