mcpbeat

Ca Pr

arbiterforge/codearbiter-ca-pr

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.

842 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
138
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/arbiterForge/codeArbiter --skill ca-pr

The instruction itself

5 sections, as written by the author

/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-gate green, or /ca-commit completed).
  • 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
  • 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.md and the

medium-documents leaf, and apply at least the §3.A em-dash ban and the §3.B copy self-audit to the

prose. Then gh 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|1 spellings and the dormancy gate can't drift):

   python3 "<plugin-root>/hooks/babysit.py" --root "<project-root>" || python "<plugin-root>/hooks/babysit.py" --root "<project-root>"

It prints one JSON line, e.g. {"enabled": true, "on_red": "propose"}. Only when enabled is

true (the global flag CODEARBITER_BABYSIT is on — default off, mirrors CODEARBITER_PRUNE — and

the repo is arbiter-active), attach a CI watcher to the PR just opened, equivalent to

/ca-watch <new-PR>. When enabled is false, do nothing here — the user can still run /ca-watch

ad-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.

How to use it

Copy the folder

Take arbiterforge/codearbiter-ca-pr from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.