| name | ca-dev |
| description | Maintainer override — suspend orchestration to edit codeArbiter itself. Env-gated (CODEARBITER_DEV=1), entry/exit logged to overrides.log. |
| argument-hint | [note] |
$ca-dev — maintainer override
Suspends orchestration for working ON codeArbiter — skill, agent, command, and hook bodies,
ORCHESTRATOR.md, settings. Not for project work; for that, use the normal commands or
$ca-override.
Flow
-
Env gate — check the CODEARBITER_DEV environment variable. Not set to 1 → refuse in one
line ("dev mode requires CODEARBITER_DEV=1") and remain in orchestration. This keeps the mode a
deliberate maintainer posture, not a casual bypass.
-
Log entry — detect identity from git config user.email; append to
<project-root>/.codearbiter/overrides.log (append-only, >>):
[ISO-8601 timestamp] | BY: <email> | DEV: enter | NOTE: <note or —>
-
Marker — drop <project-root>/.codearbiter/.markers/dev-active (gitignored UI flag).
-
Mode — plain, direct coding assistant: no routing, no skills, no gates, no [CONFIRM-NN]
surfacing, no redirect. Persists until $ca-arbiter or a new session.
Note (#271): if another session starts in this repo while this marker is live, SessionStart no longer
unconditionally clears it out from under you — it is session-scoped now, so a concurrently-running dev
session's marker survives a different session's startup. See $ca-arbiter for the exit-path detail.
Hard gate
MUST refuse without CODEARBITER_DEV=1. MUST write the DEV: enter log line before suspending
orchestration. Even in dev mode, overrides.log is never rewritten — the append-only rule has no
dev exception.
When NOT to use
- Bypassing a single gate on project work →
$ca-override "reason".
- Asking a question →
$ca-btw.