Skip to content

conflict

Stop everything and surface a rule conflict — persona vs. docs vs. code. Present both sides and the conflict-hierarchy level; the user resolves. No silent reconciliation.

The protocol for a rule conflict — not a skill route, an orchestrator-level halt. When two sources disagree (the persona vs. a .codearbiter/ document, a doc vs. code, or two docs against each other), everything in progress stops, both passages are quoted exactly, and the tension is classified against the conflict-resolution hierarchy so you can see which level it sits at. The orchestrator never picks a side, and recency alone never decides it — a more-recently-updated source is noted as informational, not determinative. It also fires automatically whenever the orchestrator detects this class of contradiction on its own, not just when invoked directly.

/ca:conflict

Takes no arguments — it presents whatever conflict triggered it (or the most recent one it detected).

> /ca:conflict
## Conflict detected — work halted
### Source A
File: plugins/ca/ORCHESTRATOR.md · Last updated: 2026-06-10
> Direct commit to a protected branch is prohibited.
### Source B
File: .codearbiter/decisions/0004-fast-forward-hotfix-branch.md · Last updated: 2026-07-01
> Hotfix commits may land directly on main under the fast-forward exception.
### Nature of conflict
ADR-0004 appears to carve an exception into a hard rule the persona states as absolute.
### Conflict-hierarchy level
Level 1 — a hard rule vs. an accepted ADR.
### To resolve
Update ADR-0004 to route through commit-gate, or supersede the hard rule via a new ADR.
---
Work is halted. Resolve before the orchestrator proceeds.

You rarely invoke this directly — it’s usually the orchestrator surfacing a contradiction it found. For a gate you’ve decided to bypass rather than a contradiction to resolve, that’s /ca:override.

GateWhenEffect
halt on detectionthe persona, a .codearbiter/ document, and code contradict each other — or two docs contradict each otherall other work stops, both sides are quoted side by side and classified against the conflict-resolution hierarchy, and work resumes only after you resolve it explicitly
Source — plugins/ca/commands/conflict.md (v2.9.1)
---
description: Stop everything and surface a rule conflict — persona vs. docs vs. code. Present both sides and the conflict-hierarchy level; the user resolves. No silent reconciliation.
argument-hint: (none)
---
# /ca:conflict — conflict protocol
Orchestrator protocol, not a skill route. When a rule conflict surfaces — the persona, a `.codearbiter/` document, and code contradict each other, or two docs contradict each other — all other work STOPs and the conflict is presented for the user to resolve. The orchestrator never picks a side.
## Flow
1. **Halt** — suspend the in-progress task. No partial progress.
2. **Identify** the conflicting sources (A and B): which document, file, or rule each is.
3. **Quote** the exact passages side by side.
4. **Classify** the conflict against the §2 conflict-resolution hierarchy and name the level the
tension sits at. Note which source was more recently updated — informational, not determinative.
5. **Present** and wait. Work resumes only after the user explicitly resolves.
## Output
```
## Conflict detected — work halted
### Source A
File: <path> · Last updated: <date>
> <exact quoted text>
### Source B
File: <path> · Last updated: <date>
> <exact quoted text>
### Nature of conflict
<what the two sources disagree about>
### Conflict-hierarchy level
Level N — <why the tension sits here>
### To resolve
<options — update A, update B, or supersede one via an ADR>
---
Work is halted. Resolve before the orchestrator proceeds.
```
## When routed automatically
The orchestrator surfaces a conflict on its own when the persona and a `.codearbiter/` doc contradict
each other, two docs contradict, code contradicts an accepted ADR, a new ADR contradicts an accepted
one, or a task instruction contradicts a hard gate.
## After resolution
The orchestrator records the resolution; if the user authorized a doc update, it makes that update
(the one sanctioned side effect) and resumes from the suspension point.
## Hard gate
MUST stop ALL other work. MUST NOT pick a side without explicit user instruction. MUST NOT decide by
recency alone. MUST NOT silently continue past a detected conflict. If the conflict involves a guessed
or auto-resolved `[CONFIRM-NN]`, flag that as a separate critical finding.

View in repo