From volley
Use after Codex has implemented a plan. Claude reviews the diff (defaults to uncommitted changes; accepts a git revision range as argument), checks it against PLAN.md and acceptance criteria, and writes a verdict to .volley/CODE-REVIEW.md. Inline review - does not call Codex.
How this skill is triggered — by the user, by Claude, or both
Slash command
/volley:review-codeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Claude reads what Codex built and judges it.
Claude reads what Codex built and judges it.
Verify .volley/ is initialized and the lock allows Claude to act.
[ -d .volley ] || { echo "ERROR: .volley/ not found. Run /volley:setup first." >&2; exit 1; }
[ -f .volley/STATE ] || { echo "ERROR: .volley/STATE not found. Run /volley:setup first." >&2; exit 1; }
. "${CLAUDE_PLUGIN_ROOT}/scripts/lib.sh"
volley_state_assert_active .volley/STATE claude || exit 1
Resolve the diff to review.
HEAD~3..HEAD), use that.git diff HEAD
Locate the plan and HANDOFF. Same logic as /volley:review-plan for finding the latest PLAN.md. Read the plan and .volley/HANDOFF.md content.
Read the diff into context. Use Bash to capture the diff and Read tools as needed for full context on changed files.
Review with these prompts in mind:
Write .volley/CODE-REVIEW.md with this structure:
# Claude Code Review
**Diff range:** <range used>
**Reviewed:** <ISO timestamp>
**Plan:** <plan path>
## Verdict
SHIP | FIX | DISCUSS
## Coverage of acceptance criteria
- Criterion 1: ✓ addressed in <file:line>
- Criterion 2: ✗ not addressed
- ...
## Coverage of plan tasks
- Task N: ✓
- Task M: partial (missing X)
## Issues found
- (file:line — description)
## Out-of-plan changes
- (file:line — what was changed beyond the plan, with judgement)
## Suggested next moves
- (concrete actions)
Surface the review inline.
Reconcile the GitHub issue (only if this repo uses the issue-tracking rule).
This step is conditional - skip entirely if the repo's CLAUDE.md does not define the "GitHub Issue Tracking Rule" or no matching issue exists.
gh issue list --state open --search "[NN-MM] in:title" (derive NN-MM from the plan filename). If none, skip silently.cat .volley/IMPLEMENTATION-LOG.md
✓ in the Coverage of plan tasks table above (i.e. verified by this review, not merely logged by Codex), tick its checkbox in the issue body. Use gh issue edit <n> --body-file with the updated body, or the GraphQL updateIssue mutation. Do not tick tasks marked partial or ✗.SHIP AND NN-MM-SUMMARY.md exists. Prefer letting the PR close it via Closes #N; if committing directly, gh issue close <n> with a comment linking the commit.FIX/DISCUSS: tick only the verified tasks, leave the issue open, and add a brief comment noting what remains.Print the next-step block.
SHIP: volley_next_step "git commit + open PR" "Code looks good. Commit (your existing flow) and open the PR."FIX: volley_next_step_options "Option A|/volley:implement|Hand back to Codex for fixes" "Option B|edit code yourself|Quick edits Claude can make directly"DISCUSS: volley_next_step_done "Open issues to talk through with the user before the next move."Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub ryan-m-frank/volley --plugin volley