/ca-reconcile
SMARTS arbitration — reconcile architectural artifacts against the scaffold and prior decisions; every variance resolved by an explicit, user-attributed choice.
$ npx -y skills add arbiterForge/codeArbiter --skill ca-reconcile --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/ca-reconcile
Context preview
The summary Claude sees to decide when to auto-load this skill.
SMARTS arbitration — reconcile architectural artifacts against the scaffold and prior decisions; every variance resolved by an explicit, user-attributed choice.
SKILL.md
ca-reconcile.SKILL.mdname: ca-reconcile
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}/routines/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 `<project-root>/.codearbiter/plans/`) — and indexes the append-only decision log at `<project-root>/.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 `<project-root>/.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.
Read more
name: ca-reconcile 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}/routines/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 `<project-root>/.codearbiter/plans/`) — and indexes the append-only decision log at `<project-root>/.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 `<project-root>/.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.
When you can't trust yourself with your code base, trust Arbiter.
Repo: arbiterForge/codeArbiter
Other skills on codearbiter.
- /brainstorming
The Socratic spec-refinement front of /feature, and the planning front of /sprint. Routed to BEFORE any code — it takes a one-line idea and drives it to an approved, concrete spec with testable acceptance criteria. Four gated phases — frame, refine, write, approve. No
Open skill - /commit-gate
The only path to a commit. Routed to when the user invokes /commit or otherwise instructs codeArbiter to persist staged changes. Nine gated phases — permission, branch, classification, verification (test/lint/secrets), behavioral proof, diff review, selective stage, message,
Open skill - /context-check
Optional manual drift audit — report stale provenance-tracked docs (via _provenancelib drift detection across .codearbiter/.provenance/), then per stale doc offer re-scout / re-baseline / defer. Not the daily loop; commit-gate auto-heal owns routine maintenance.
Open skill - /context-creation
The brownfield back-fill. Routed to by /create-context, and by startup when .codearbiter/CONTEXT.md lacks the <!--INITIALIZED--> body marker but source code exists. Six gated phases — pre-flight, scout dispatch, synthesis, gap interview, write, lock. Reads the existing codebase
Open skill - /crypto-compliance
The banned-primitive gate. Routed to when changed code hashes, signs, encrypts, derives keys, generates security-relevant randomness, configures TLS, or imports a crypto library. Rejects broken primitives, disabled TLS verification, and home-rolled crypto; the approved-primitive
Open skill - /debug
Investigate-then-decide root-cause analysis for a defect whose cause is unknown (distinct from /fix, which assumes a known bug). Five gated phases: capture, hypothesize, gather, decide, hand off. Investigation only, no code changes; exits to /fix, /adr, or a no-action close.
Open skill

