← ClaudeAtlas

contradiction-resolutionlisted

Detects conflicting claims in wiki state (flat memory/ layout), surfaces them via memory/CONFLICTS.md, supports snooze-until-/done, never silent-resolves. User arbitrates every conflict.
kanadhiayash/zeref-memory-engine · ★ 2 · AI & Automation · score 74
Install: claude install-skill kanadhiayash/zeref-memory-engine
# contradiction-resolution ## Mission When two claims conflict, surface both sides with provenance. User decides. Never silent resolution. ## What counts as a conflict | Type | Example | |---|---| | **Direct negation** | "DB is Postgres" vs "DB is MySQL" | | **Mutually exclusive** | "Ship Friday" vs "Ship next Monday" | | **Quantitative drift** | "Budget $50k" vs "Budget $80k" — flag if delta > 20% | | **Decision supersession** | New decision contradicts existing decision still marked active | | **Source disagreement** | Two pushed-in claims from different sources disagree | Not a conflict: - Refined detail (more specific version of same fact) - Status update (open → resolved) - Same claim with stronger evidence ## DETECT (called by memory-keeper before write) 1. Compute fingerprint of incoming claim: - subject (extracted noun phrase) - predicate (verb + complement) - quantitative value (if any) 2. Scan `memory/DECISIONS.md`, `memory/OPEN_QUESTIONS.md`, `memory/RISKS.md` for matching subjects 3. If match found AND predicate/value conflicts per types above → CONFLICT 4. Emit to `memory-keeper`: `{"verdict": "conflict", "side_a_id": "...", "side_a_hash": "...", "side_b_payload": {...}}` 5. If no match → pass-through (proceed with write) ## QUEUE (called by memory-keeper after conflict detected) 1. Halt original write 2. Append to `memory/CONFLICTS.md`: ``` ### C<N> — <iso-date> — <conflict-title> **Status**: open **Side A**: <claim-a> (evidence: <g