/init
Opt this repo into codeArbiter — scaffold the root-level .codearbiter/ state store.
$ npx -y skills add arbiterForge/codeArbiter --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/init
Context preview
What this command does when you run it.
Opt this repo into codeArbiter — scaffold the root-level .codearbiter/ state store.
Command definition
init.mddescription: Opt this repo into codeArbiter — scaffold the root-level .codearbiter/ state store.
argument-hint: (none) | --stage N | --check
{{CMD:init}} — first-run scaffold
Stand up the root-level `.codearbiter/` project-state store that opts a repo into arbiter management. This is the v2 replacement for vendoring/`init-vendor`: no symlinks, no shims, no dual root. It writes the activation flag and the empty state files, then hands off to the populator.
`.codearbiter/CONTEXT.md` frontmatter `arbiter: enabled` is the single activation flag — it gates {{IF:claude}}both the SessionStart persona injection and the arbiter statusline segments{{ELSE}}the SessionStart persona injection{{END}}. The scaffolded `CONTEXT.md` is a **stub** (no initialization sentinel), so after scaffolding the project still needs populating before normal operation.
Procedure
1. Run the scaffolder against the repo's git toplevel (resolved by the script):
python "{{PLUGIN_ROOT}}/hooks/init-codearbiter.py"It is idempotent and refuses if `.codearbiter/CONTEXT.md` already exists — it never overwrites state. Pass `--stage N` to set the initial maturity value (default `1`). Use `--check` to report state without creating anything.
2. It creates `.codearbiter/` with: `CONTEXT.md` (`arbiter: enabled`, `stage: N`, stub body), `open-tasks.md`, `open-questions.md`, `overrides.log` (audit header), and `last-checkpoint` (`0`).
3. **Then route to the populator** — the stub is not yet usable:
- **Source code already exists** in the repo → route to `{{CMD:create-context}}` (brownfield: scouts
read the codebase and synthesize the full context, writing the initialization sentinel).
- **Greenfield** (no meaningful source) → route to `{{CMD:decompose}}` (layered interview).
The populator is **mandatory, not optional**: it authors `tech-stack.md`, `coding-standards.md`, and `security-controls.md` (and writes the initialization sentinel). The pipeline gates BLOCK on reading those files — `writing-plans` and `tdd` need `tech-stack.md`, the security gates need `security-controls.md` — so `{{CMD:feature}}` run on a freshly-scaffolded stub will STOP at pre-flight until the populator has run. `session-start` surfaces this as `NOT INITIALIZED` every session.
4. Report what was created and which populator you are routing to.
When NOT to use
- `.codearbiter/` already scaffolded → the scaffolder refuses; run `{{CMD:create-context}}` or
`{{CMD:decompose}}` to populate, or `{{CMD:status}}` to see state.
- You only want to re-check detection state → run the scaffolder with `--check`.
Hard gate
MUST NOT hand-author `.codearbiter/CONTEXT.md` frontmatter — the scaffolder is the sanctioned path so the activation flag and state-file shapes match what the hook{{IF:claude}} and statusline{{END}} parse{{IF:claude}}{{ELSE}}s{{END}}. MUST NOT mark a stub initialized; only the populator writes the initialization sentinel.
Read more
description: Opt this repo into codeArbiter — scaffold the root-level .codearbiter/ state store. argument-hint: (none) | --stage N | --check
{{CMD:init}} — first-run scaffold
Stand up the root-level `.codearbiter/` project-state store that opts a repo into arbiter management. This is the v2 replacement for vendoring/`init-vendor`: no symlinks, no shims, no dual root. It writes the activation flag and the empty state files, then hands off to the populator.
`.codearbiter/CONTEXT.md` frontmatter `arbiter: enabled` is the single activation flag — it gates {{IF:claude}}both the SessionStart persona injection and the arbiter statusline segments{{ELSE}}the SessionStart persona injection{{END}}. The scaffolded `CONTEXT.md` is a **stub** (no initialization sentinel), so after scaffolding the project still needs populating before normal operation.
Procedure
1. Run the scaffolder against the repo's git toplevel (resolved by the script):
python "{{PLUGIN_ROOT}}/hooks/init-codearbiter.py"It is idempotent and refuses if `.codearbiter/CONTEXT.md` already exists — it never overwrites state. Pass `--stage N` to set the initial maturity value (default `1`). Use `--check` to report state without creating anything.
2. It creates `.codearbiter/` with: `CONTEXT.md` (`arbiter: enabled`, `stage: N`, stub body), `open-tasks.md`, `open-questions.md`, `overrides.log` (audit header), and `last-checkpoint` (`0`).
3. **Then route to the populator** — the stub is not yet usable:
- **Source code already exists** in the repo → route to `{{CMD:create-context}}` (brownfield: scouts
read the codebase and synthesize the full context, writing the initialization sentinel).
- **Greenfield** (no meaningful source) → route to `{{CMD:decompose}}` (layered interview).
The populator is **mandatory, not optional**: it authors `tech-stack.md`, `coding-standards.md`, and `security-controls.md` (and writes the initialization sentinel). The pipeline gates BLOCK on reading those files — `writing-plans` and `tdd` need `tech-stack.md`, the security gates need `security-controls.md` — so `{{CMD:feature}}` run on a freshly-scaffolded stub will STOP at pre-flight until the populator has run. `session-start` surfaces this as `NOT INITIALIZED` every session.
4. Report what was created and which populator you are routing to.
When NOT to use
- `.codearbiter/` already scaffolded → the scaffolder refuses; run `{{CMD:create-context}}` or
`{{CMD:decompose}}` to populate, or `{{CMD:status}}` to see state.
- You only want to re-check detection state → run the scaffolder with `--check`.
Hard gate
MUST NOT hand-author `.codearbiter/CONTEXT.md` frontmatter — the scaffolder is the sanctioned path so the activation flag and state-file shapes match what the hook{{IF:claude}} and statusline{{END}} parse{{IF:claude}}{{ELSE}}s{{END}}. MUST NOT mark a stub initialized; only the populator writes the initialization sentinel.
When you can't trust yourself with your code base, trust Arbiter.
Repo: arbiterForge/codeArbiter
Other commands on codearbiter.
- /add-dep
Vet a new or changed third-party dependency for license, provenance, and supply-chain risk before any install runs.
Open command - /adr-status
Report the health of Architecture Decision Records — aged, unchallenged, supersession candidates, unresolved CONFIRM-NN. Read-only.
Open command - /adr
Author a numbered, dated, user-attributed Architecture Decision Record under .codearbiter/decisions/.
Open command - /arbiter
Exit maintainer dev mode — restore orchestration, remove the dev marker, log the exit.
Open command - /audit
Assemble the governance record for a range — commits, overrides, ADRs, sprint auto-decisions, open questions, checkpoint findings — into one dated audit packet. Read-only.
Open command - /btw
Lightweight Q&A about the project — answer from context and return, no routing, no state change.
Open command

