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…
Zero-onboarding, read-only dry-run of the reviewer fleet against the current uncommitted diff. Predicts reviewers, runs the state-free secret scan, writes nothing.
$ npx -y skills add arbiterForge/codeArbiter --skill ca-preview --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ca-previewContext preview
The summary Claude sees to decide when to auto-load this skill.
Zero-onboarding, read-only dry-run of the reviewer fleet against the current uncommitted diff. Predicts reviewers, runs the state-free secret scan, writes nothing.
name: ca-preview description: Zero-onboarding, read-only dry-run of the reviewer fleet against the current uncommitted diff. Predicts reviewers, runs the state-free secret scan, writes nothing. argument-hint: (none)
See what codeArbiter would do to your real code before paying any onboarding cost. This is a read-only dry-run against the current uncommitted diff: it predicts which reviewers the change would dispatch, runs the checks that need no project rules, and reports. It never writes state.
It requires no `$ca-init`, no `.codearbiter/` directory, and no decompose or create-context interview. It functions in a repo that never opted in, and it modifies nothing: not the worktree, not the index, not `.codearbiter/`. `git status` is unchanged by a run.
1. **Collect the diff.** Call the thin entry hook `preview.py` in `diff` mode, which wraps `collect_diff` from [hooks/_previewlib.py](../../hooks/_previewlib.py). It unions HEAD-vs-worktree changes, staged changes, and untracked files (forward-slash paths). Run it from the project root so `_previewlib`/`_hooklib` resolve on the same `sys.path`. Resolve the interpreter once by presence — `PY=python3; { command -v python3 >/dev/null 2>&1 && python3 --version >/dev/null 2>&1; } || PY=python` — never `python3 X || python X`, which reruns X on any nonzero exit (#577):
"$PY" "${PLUGIN_ROOT}/hooks/preview.py" diffIf the result is empty (clean tree, or not a git repo), print a friendly **"Nothing to preview"** line and STOP. This is a clean exit, not an error: no stack trace, no failure.
2. **Predict reviewers by path.** Read the reviewer-to-path matrix at [includes/review-matrix.md](../../includes/review-matrix.md). That include is the single source of truth for which reviewer is dispatched when scope touches a given path: do NOT restate, fork, or inline a second copy of the table here. For each changed path, list the reviewers that WOULD dispatch and name the triggering path for each. This is the same mapping `$ca-review` uses, so the predicted set matches what a real review would dispatch.
3. **Run the state-free secret scan.** Call the thin entry hook `preview.py` in `secrets` mode, which wraps `scan_secrets` from [hooks/_previewlib.py](../../hooks/_previewlib.py). It reads each changed file's current content and returns `SecretFinding(path, line_no, snippet)` for every credential line, with the secret VALUE already masked to `****` in `snippet`:
"$PY" "${PLUGIN_ROOT}/hooks/preview.py" secretsReport each finding by `path:line_no` with its redacted snippet. The snippet arrives already masked: never reconstruct or print a raw secret value.
Emit one clear report with these parts:
staged, untracked).
for each. These are predicted (would-dispatch), not run here.
redacted snippet, marked as found (ran locally), at BLOCK severity. State "none found" when the scan is clean.
`$ca-review`.
This reports reviewer and gate behavior on the current diff. It makes NO hook-probe claims and says nothing about whether the install's hooks fire: that is `$ca-doctor`. Do not blend the two.
MUST NOT stage or commit. `git status` MUST be unchanged after a run.
decompose / create-context interview.
carries only that masked form.
exit, never a stack trace.
(ran locally): it MUST NOT attribute fabricated findings to any predicted reviewer.
When you can't trust yourself with your code base, trust Arbiter.
Repo: arbiterForge/codeArbiter
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…
The only path to a commit. Routed to when the user invokes /commit or otherwise instructs codeArbiter to persist staged changes. Nine gated phases —…
Optional manual drift audit — report stale provenance-tracked docs (via _provenancelib drift detection across .codearbiter/.provenance/), then per stale doc…
The brownfield back-fill. Routed to by /create-context, and by startup when .codearbiter/CONTEXT.md lacks the <!--INITIALIZED--> body marker but source code…
The banned-primitive gate. Routed to when changed code hashes, signs, encrypts, derives keys, generates security-relevant randomness, configures TLS, or…
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,…