git clone https://github.com/LightbridgeLab/CodeCannon
T=$(mktemp -d) && git clone --depth=1 https://github.com/LightbridgeLab/CodeCannon "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/review" ~/.claude/skills/lightbridgelab-codecannon-review && rm -rf "$T"
.agents/skills/review/SKILL.mdCodex CLI: This skill is triggered by description matching. State any arguments in your message. Sub-agent spawning is not supported — perform any review steps inline.
What /review
does
/review/review runs a standalone code review on a PR. It wraps .claude/review-agent-prompt.md.
Pre-flight
If
ai is "off", say:
"Code review is disabled for this project (REVIEW_GATE is set to 'off' in .codecannon.yaml). To enable reviews, set REVIEW_GATE to 'ai' or 'advisory' and re-run CodeCannon/sync.py."
Do not proceed.
Step 1 — Identify the PR
If
$ARGUMENTS is a number, use it as the PR number.
If
$ARGUMENTS is empty, detect the current branch's open PR:
gh pr view --json number --jq '.number'
If no PR is found, abort and say: "No open PR found for the current branch. Pass a PR number explicitly:
/review <number>"
Step 2 — Run the review
Load
.claude/review-agent-prompt.md and perform the review for the PR number.
If sub-agent spawning is supported (e.g. Claude Code): invoke a dedicated review agent with the prompt and PR number.
If sub-agent spawning is not supported (e.g. Codex, Cursor, Gemini): perform the review yourself inline — follow the instructions in the review-agent prompt directly.
The review must:
- Read the PR diff via
gh pr diff <number> - Read any files needed for full context
- Post findings as a PR comment via
gh pr comment <number>
Step 3 — Report verdict
After the review agent completes, relay its verdict to the user:
- APPROVE → "Review passed. Run
to merge (or it may already be merged if called from/submit-for-review
)."/submit-for-review - REQUEST CHANGES → Surface the CRITICAL findings. Say: "Fix the issues above and run
again before merging."/review
Important
- This command does not commit, push, or merge anything. It only reviews.
- It may be called manually at any time, not just from
./submit-for-review - The review comment is posted to GitHub for the audit trail.