Skip to content

reconcile

SMARTS arbitration — reconcile architectural artifacts against the scaffold and prior decisions; every variance resolved by an explicit, user-attributed choice.

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.

> /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)

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.

GateWhenEffect
explicit choice per varianceevery 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”
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 locates
the 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 an
in-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 accepting
the recommendation, logged as such in `Decided by:`). MUST match the three artifacts by exact
filename. The decision log is append-only — MUST NOT edit or rebuild a prior entry; supersede by
appending. MUST NOT modify the artifacts, scaffold, or code to "fix" a variance. MUST NOT author an
ADR as the disposition of a routine finding — ADRs are authored only via `/ca:adr` with user
attribution.

View in repo