arbiterforge/ca-override
Sanctioned, logged bypass of a gate or hard rule — one audit line, then proceed.
npx skills add https://github.com/arbiterForge/codeArbiter --skill ca-override
The sanctioned escape hatch. Bypass is permitted only with an audit log entry. Overrides are always
logged, always visible, never silent. Single identity, single confirm.
$ARGUMENTS — the reason names the gate being bypassed and a justification. Reject avague reason ("just skip it") and ask for a specific one.
git config user.email only. If it is unset, ask the user onceto state their identity for the log. (No platform ladder, no second confirmation.)
<project-root>/.codearbiter/overrides.log: [ISO-8601 timestamp] | BY: <email> | GATE: <gate bypassed> | REASON: <reason>
The log is append-only — never edited or deleted, committed as a permanent audit artifact.
A routine gate (lint, a style rule, a non-security review finding) takes the single-confirm path above.
But a security-critical stop is NOT bypassable by a single confirm. The following require the
heavier path below, never the one-line flow:
Heavier path (all required, in order):
concrete risk. A generic "security override" is rejected.
their own words (a bare "yes"/"go ahead"/"I trust you" is declined — this mirrors decision-variance).
Detect identity from git config user.email; if unset, ask once.
SECURITY-OVERRIDE that records the specific finding,not just the gate name:
[ISO-8601] | BY: <email> | SECURITY-OVERRIDE | FINDING: <specific finding> | REASON: <reason>
python3 "${CLAUDE_PLUGIN_ROOT}/hooks/security-pass.py" || python "${CLAUDE_PLUGIN_ROOT}/hooks/security-pass.py",
which writes <project-root>/.codearbiter/.markers/security-gate-passed bound to the
sensitive lines it approves, so hook H-09b/H-10b allows the commit — recorded only after
steps 1–3, never to skip the gate proper.
Under $ca-sprint, a security-critical override is a hard-gate STOP: it surfaces to the user and is
never auto-decided, even in autonomous mode (SPRINT.md hard gates).
MUST write the log line before proceeding — it is not optional. MUST capture an operator identity —
"codeArbiter" or "automated" are not valid. MUST include a justification. The override is scoped to
the immediate action only; it creates no standing exception. MUST NOT edit or delete an existing
overrides.log entry. MUST route a security-critical / crypto-secret / irreversible stop through the
Security ceiling path — never the single-confirm flow — and MUST NOT auto-decide such an override
under $ca-sprint.
$ca-conflict.Take arbiterforge/ca-override from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.