Conflict Detector
Use this skill during Step 6 when conflicts appear.
Conflict Types
- Definitional conflict
- Scope conflict
- Obligation conflict
- Enforcement/sanction conflict
- Recency conflict
Output
Use references/conflict-report-template.md.
Resolution priority:
- Legal hierarchy
- Jurisdictional relevance
- Recency
- Original-text support
Before marking a conflict resolved or unresolved, apply the deterministic helper in
citation_auditor.conflict_resolution:
from citation_auditor.conflict_resolution import resolve_conflict
resolution = resolve_conflict(claim_a, claim_b, sources, target_jurisdictions, profile="general")
- If
resolution.outcome == "resolved", usepreferred_source_idin the conflict report and include the helper's top rationale inprovisional_resolution. - If
resolution.outcome == "unresolved", keep the conflict tagged[Unresolved Conflict]and record the score delta/rationale inresidual_uncertainty. - Do not override the helper with narrative intuition unless a jurisdiction-specific legal rule is cited from a primary source; if that happens, record the rule and source id in the conflict report.
Use a matter-specific profile when the conflict fits one of these patterns:
| Profile | Use When |
|---|---|
eu-member-state |
EU regulation/case law conflicts with member-state source, agency guidance, or implementation material |
us-federal-state |
US federal and state sources may conflict, especially where preemption is raised |
kr-delegated-regulation |
Korean statute, delegated regulation, ordinance, and agency guidance hierarchy matters |
agency-guidance |
Agency guidance or FAQ appears to conflict with statute, regulation, or case law |
If none fits cleanly, keep profile="general" and mark close-score results
[Unresolved Conflict].
Severity Handling
- High severity (obligation/sanction): attempt source expansion first.
- Low severity (definition/recency): mark
[Unresolved Conflict]when unresolved.
Persistence — output/unresolved-conflicts.json
When a conflict is marked [Unresolved Conflict] (i.e., it cannot be resolved after
applying the resolution-priority rules and any source-expansion attempt), write a record
to output/unresolved-conflicts.json.
Entry Schema
{
"conflict_id": "CF-001",
"first_detected": "2026-03-05",
"last_seen": "2026-03-05",
"times_encountered": 1,
"type": "obligation",
"severity": "high",
"jurisdictions_involved": ["NL", "AU"],
"domains_involved": [1],
"description": "Conflicting obligations on loot-box disclosure between NL KSA ruling and AU ACCC guidance",
"claim_a": {
"summary": "NL: loot boxes are games of chance requiring full odds disclosure",
"source_id": "NL-A1",
"citation": "[A1] KSA, Decision 2024-07-01, p. 12",
"grade": "A"
},
"claim_b": {
"summary": "AU: loot boxes are not gambling under Qld Racing Act s. 4",
"source_id": "AU-P2",
"citation": "[P2] Queensland Racing Act 2002, s. 4",
"grade": "A"
},
"resolution_attempted": true,
"resolution_outcome": "unresolved",
"residual_uncertainty": "Whether AU federal law may impose separate disclosure requirements",
"next_steps": "Check Australian Consumer Law Schedule 2, Competition and Consumer Act 2010",
"status": "open"
}
Write Rules
Before writing, check if an entry with the same
jurisdictions_involved+domains_involvedtypealready exists in the file.
- Duplicate found: update
last_seenand incrementtimes_encountered. Do not create a new entry. - No duplicate: append a new entry.
Set
statusto"open"when first written. Change to"resolved"only when a subsequent research session provides a definitive primary-source resolution.Update
output/unresolved-conflicts.jsonimmediately when the conflict is detected — do not wait until Step 9.
Read Rules (at session start)
When the main agent loads this file at session start:
- Surface any
"open"entries whosejurisdictions_involvedanddomains_involvedoverlap with the current query's scope. - Prepend a brief note in the Step 6 analysis output: "Note: {N} pre-existing unresolved conflict(s) from prior sessions are relevant to this query. See conflict IDs: {list}. These are included in the analysis below."