contradiction-resolutionlisted
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