reconcile
SMARTS arbitration — reconcile architectural artifacts against the scaffold and prior decisions; every variance resolved by an explicit, user-attributed choice.
What it does
Section titled “What it does”Arbitrates variances between the project’s three architectural artifacts
(01-architecture-breakdown.md, 02-phased-build-plan.md, 03-task-backlog.md) and what the
scaffold or prior ADRs actually show. Every divergent, scaffold-silent, or artifact-silent case
gets a SMARTS analysis of its resolution options and a strength-labeled recommendation — but the
skill never arbitrates on its own. Each variance ends in exactly one of three user-chosen outcomes:
ratify the existing decision, supersede it (appending a new decision log entry and, if warranted, a
replacement ADR via /ca:adr), or surface it as an unresolved [CONFIRM-NN]. Called bare it runs
the full reconciliation pass; give it a target and it narrows to just that ADR, conflict, or
artifact.
/ca:reconcile [<ADR-id | artifact | scope>]Leave it bare for a full reconciliation pass; pass an ADR ID, artifact name, or other scope to narrow it to one variance.
Example
Section titled “Example”> /ca:reconcile ADR-0004
Variance: ADR-0004 (fast-forward hotfix branch) vs. scaffold — divergent.Artifact position: hotfixes may fast-forward directly to main.Scaffold evidence: git-enforce.py H-01 blocks any direct commit to main, no hotfix carve-out found.
SMARTS analysis... recommendation: supersede (moderate).Your call — ratify, supersede, or surface as [CONFIRM-NN]?> supersede
Decision log entry appended, Decided by: dev@example.com.Route to /ca:adr to author the replacement ADR? (y/n)When to reach for it
Section titled “When to reach for it”A variance already exists between artifacts, code, or prior decisions and needs a user-attributed
resolution. For a brand-new decision with no prior conflict, use /ca:adr; for ADR health alone,
use /ca:adr-status.
| Gate | When | Effect |
|---|---|---|
| explicit choice per variance | every variance presented | ”you pick ratify, supersede, or surface as [CONFIRM-NN] — “you decide” or “use your best judgment” is declined; only your verbatim acceptance of the recommendation counts as a decision” |
Related
Section titled “Related”Source
Section titled “Source”Source — plugins/ca/commands/reconcile.md (v2.9.1)
---description: SMARTS arbitration — reconcile architectural artifacts against the scaffold and prior decisions; every variance resolved by an explicit, user-attributed choice.argument-hint: (none) | "<ADR-id | artifact | scope>"---
# /ca:reconcile — architectural arbitration
Reconciles the project's architectural artifacts against the scaffold and prior decisions, or challenges a specific ADR that is wrong, stale, or in conflict with another. Presents SMARTS analyses and recommendations but never arbitrates — every variance is resolved by an explicit user choice recorded in the decision log with user attribution. With no argument it runs a full reconciliation pass; an argument scopes it to a named ADR, conflict, or artifact.
## Routes to
The `decision-variance` skill (`${CLAUDE_PLUGIN_ROOT}/skills/decision-variance/SKILL.md`). It locatesthe three architectural artifacts by exact filename — `01-architecture-breakdown.md`,`02-phased-build-plan.md`, `03-task-backlog.md` (under `${CLAUDE_PROJECT_DIR}/.codearbiter/plans/`) —and indexes the append-only decision log at`${CLAUDE_PROJECT_DIR}/.codearbiter/decisions/decision-log.md`. It MAY dispatch the`decision-challenger` agent (`${CLAUDE_PLUGIN_ROOT}/agents/decision-challenger.md`) to stress-test anin-scope ADR — optional, not forced. Each variance ends in one of three user-chosen outcomes:
1. **Ratify** — the existing decision stands; the SMARTS analysis and re-affirmation are logged.2. **Supersede** — a new decision is recorded by appending a log entry whose `Supersedes:` references the prior one; a replacement ADR is authored via `/ca:adr`.3. **Surface as `[CONFIRM-NN]`** — unresolvable now; a numbered placeholder is added to `${CLAUDE_PROJECT_DIR}/.codearbiter/open-questions.md`.
## When NOT to use
- Author a brand-new ADR with no prior conflict → `/ca:adr`.- Check ADR health (aged, unchallenged, unresolved CONFIRM-NN) → `/ca:adr-status`.- A general architectural discussion without recording a decision → `/ca:btw`.- A rule conflict between project docs and code → `/ca:conflict`.- Routine git text-merge conflicts — this is architectural reconciliation, not merge resolution.
## Hard gate
MUST NOT record an arbitration decision without an explicit user choice; decline "you decide" /"use your best judgment" with a structural refusal (the only delegation is the user verbatim acceptingthe recommendation, logged as such in `Decided by:`). MUST match the three artifacts by exactfilename. The decision log is append-only — MUST NOT edit or rebuild a prior entry; supersede byappending. MUST NOT modify the artifacts, scaffold, or code to "fix" a variance. MUST NOT author anADR as the disposition of a routine finding — ADRs are authored only via `/ca:adr` with userattribution.