Ca pr
When you can't trust yourself with your code base, trust Arbiter.
npx -y skills add arbiterForge/codeArbiter --skill ca-prAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Open a pull request the only sanctioned way — clear every BLOCK-level review finding, then stage the PR. Never a direct write to the default branch.
SKILL.md
3.3 KB, as published. Nobody here has run it
/ca-pr — open a pull request
The only permitted path to a pull request. Every change lands through a PR — never a direct write or force-push to the default branch. No PR is drafted while any BLOCK-level review finding stands.
Flow
Routes to the finishing-a-development-branch skill, open-PR path. The orchestrator reads the current
branch, its diff against the base, and the commit log to determine what changed and which reviewers
apply, then:
- Confirm the commit gate cleared this session (
commit-gategreen, or/ca-commitcompleted). - Path matrix — inspect the diff and dispatch the reviewer agents the change demands:
- auth / crypto / middleware paths →
auth-crypto-reviewer+security-reviewer - migration files →
migration-reviewer - dependency manifests →
dependency-reviewer - all paths →
coverage-auditor
- auth / crypto / middleware paths →
- Run reviewers in parallel where there are no dependencies.
- BLOCK check — any CRITICAL or HIGH finding STOPs the flow; present it and do not draft the PR.
The user resolves, re-runs
/ca-commit, then/ca-pr. - Stage the PR once all BLOCK findings clear: concise title; summary of what changed and why; a
bulleted test plan; a conflict-hierarchy tradeoff citation for any non-obvious tradeoff; a link to
any ADR the change implements or contradicts. The PR body is a user-facing deliverable: before
composing it, load
<plugin-root>/includes/anti-slop-design/core.mdand themedium-documentsleaf, and apply at least the §3.A em-dash ban and the §3.B copy self-audit to the prose. Thengh pr create; return the URL. - Auto-attach the babysitter — resolve the flag with the canonical resolver, never by eyeballing
the env var (so the accepted
on|true|1spellings and the dormancy gate can't drift):
It prints one JSON line, e.g.python3 "<plugin-root>/hooks/babysit.py" --root "<project-root>" || python "<plugin-root>/hooks/babysit.py" --root "<project-root>"{"enabled": true, "on_red": "propose"}. Only whenenabledis true (the global flagCODEARBITER_BABYSITis on — default off, mirrorsCODEARBITER_PRUNE— and the repo is arbiter-active), attach a CI watcher to the PR just opened, equivalent to/ca-watch <new-PR>. Whenenabledis false, do nothing here — the user can still run/ca-watchad-hoc. Never enable the flag on the user's behalf.
Routes to
finishing-a-development-branch (<plugin-root>/routines/finishing-a-development-branch/SKILL.md),
open-PR path.
When NOT to use
- Staged changes not yet committed →
/ca-commit. - Review a diff without opening a PR →
/ca-review. - A pre-implementation security pass →
/ca-threat-model.
Hard gate
MUST NOT open a PR while any BLOCK-level (CRITICAL or HIGH) finding is unresolved. MUST NOT skip a
reviewer the path matrix requires. MUST NOT open a PR before the commit gate ran this session. MUST
NOT open a PR, write, or force-push directly to the default branch. MUST NOT auto-attach a CI watcher
unless CODEARBITER_BABYSIT is on, and MUST NOT enable that flag on the user's behalf.