Skip to content
Back to skills

Review Code

ASecurity

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.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 5, 2026
developmentgobashcode-reviewgit

Works with

  • claude code

Security analysis

A100/100

Scanned June 5, 2026

npx -y skills add Ryan-M-Frank/volley --skill review-code --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Review Code?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Review Code
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ryan-m-frank-review-code/badge)](https://www.skillsdirectory.com/skills/ryan-m-frank-review-code)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: review-code
description: 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.
---

# /volley:review-code

Claude reads what Codex built and judges it.

## Steps for Claude

1. **Verify .volley/ is initialized and the lock allows Claude to act.**
   ```bash
   [ -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
   ```

2. **Resolve the diff to review.**
   - If user passed a range argument (e.g. `HEAD~3..HEAD`), use that.
   - Otherwise, default to uncommitted changes:
     ```bash
     git diff HEAD
     ```
   - If diff is empty, tell user "No changes to review. Did Codex finish?" and stop.

3. **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.

4. **Read the diff into context.** Use Bash to capture the diff and Read tools as needed for full context on changed files.

5. **Review with these prompts in mind:**
   - Does each change implement a specific PLAN task or acceptance criterion? (Cite which.)
   - Are there changes that go beyond the plan's scope?
   - Are there gaps - acceptance criteria not addressed?
   - Are the tests covering the new code?
   - Any obvious correctness, safety, or style issues for this codebase?

6. **Write `.volley/CODE-REVIEW.md` with this structure:**

   ```markdown
   # 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)
   ```

7. **Surface the review inline.**

8. **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.
   - Find the plan's issue: `gh issue list --state open --search "[NN-MM] in:title"` (derive `NN-MM` from the plan filename). If none, skip silently.
   - Cross-reference Codex's task log for what actually got built:
     ```bash
     cat .volley/IMPLEMENTATION-LOG.md
     ```
   - For each task marked `✓` 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 `✗`.**
   - Only close the issue when **all** tasks are ticked AND the verdict is `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.
   - On `FIX`/`DISCUSS`: tick only the verified tasks, leave the issue open, and add a brief comment noting what remains.

9. **Print the next-step block.**
   - If `SHIP`: `volley_next_step "git commit + open PR" "Code looks good. Commit (your existing flow) and open the PR."`
   - If `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"`
   - If `DISCUSS`: `volley_next_step_done "Open issues to talk through with the user before the next move."`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.