dev
Maintainer override — suspend orchestration to edit codeArbiter itself. Env-gated (CODEARBITER_DEV=1), entry/exit logged to overrides.log.
What it does
Section titled “What it does”Suspends codeArbiter’s orchestration so you can edit codeArbiter itself — skill, agent, command,
and hook bodies, ORCHESTRATOR.md, settings. It is not for project work; /ca:override covers a
single-gate bypass on ordinary project code, and this command declines that use.
Entry is gated behind the CODEARBITER_DEV=1 environment variable specifically so it’s a
deliberate maintainer posture, never a one-line accidental bypass. Once entered, an append-only
log line records who and when in .codearbiter/overrides.log, a gitignored marker file turns the
statusline alarm-red so the mode is unmistakable, and the session becomes a plain, direct coding
assistant — no routing, no skills, no gates, no [CONFIRM-NN] surfacing — until /ca:arbiter or a
new session.
/ca:dev [note]An optional free-text note is recorded alongside the entry log line.
Example
Section titled “Example”$ export CODEARBITER_DEV=1> /ca:dev "fixing pre-bash H-03 regex"
[2026-07-02T14:02:11Z] | BY: dev@example.com | DEV: enter | NOTE: fixing pre-bash H-03 regexdev-active marker written; statusline is now red.Orchestration suspended — plain coding assistant mode until /ca:arbiter.When to reach for it
Section titled “When to reach for it”A single gate bypass on ordinary project work is /ca:override "reason"’s job, not this one’s;
a plain question is /ca:btw’s.
| Gate | When | Effect |
|---|---|---|
| env gate | CODEARBITER_DEV is not set to 1 | refuses in one line and orchestration stays in force — dev mode is never a casual bypass |
| append-only audit | entering dev mode | an entry line is appended to overrides.log before orchestration is suspended, and the statusline turns alarm-red for the duration |
Related
Section titled “Related”Source
Section titled “Source”Source — plugins/ca/commands/dev.md (v2.9.1)
---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
1. **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.2. **Log entry** — detect identity from `git config user.email`; append to `${CLAUDE_PROJECT_DIR}/.codearbiter/overrides.log` (append-only, `>>`):
``` [ISO-8601 timestamp] | BY: <email> | DEV: enter | NOTE: <note or —> ```
3. **Marker** — drop `${CLAUDE_PROJECT_DIR}/.codearbiter/.markers/dev-active` (gitignored UI flag); the statusline turns alarm-red so dev mode is unmistakable.4. **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 longerunconditionally clears it out from under you — it is session-scoped now, so a concurrently-running devsession'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 suspendingorchestration. Even in dev mode, `overrides.log` is never rewritten — the append-only rule has nodev exception.
## When NOT to use
- Bypassing a single gate on project work → `/ca:override "reason"`.- Asking a question → `/ca:btw`.