skills/paper-review/SKILL.md
Conversational code review written to a markdown file the reviewer annotates, then acted on. Use when the user asks to review the current branch or diff, runs /paper-review (optionally with "working tree", "staging", "rescan", or a ref/range), says "review my changes", or asks to act on their annotations in an existing review file.
npx skillsauth add hsablonniere/skills paper-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Conversational code review as a living markdown file. The agent writes findings as quoted lines; the reviewer annotates in plain text between or after those lines; the agent re-reads, acts on clear decisions, asks follow-ups, and rescans for new issues. The file is the conversation.
> quoted lines = agent voice (findings, questions, suggestions, status notes).> lines.[OPEN] (default), [DONE], [WONTFIX], [DISCUSS]. The agent owns it..reviews/<branch>.md — slashes in the branch name become - (e.g. feat/foo → feat-foo.md)..reviews/ is expected to be ignored via the user's global gitignore (git config --global core.excludesfile). Do not modify the project's .gitignore. If a review file shows up in git status, tell the user to add .reviews/ to their global excludes once — never commit review files.The whole job runs inside one sub-agent (Task tool). The main thread is a dispatcher, nothing more.
The orchestrator (main thread) does ONLY this:
git branch --show-current) to name the file.working tree, staging/staged, rescan, or an explicit ref/range/PR (default: branch vs base).references/directives.md and references/format.md — do not read them yourself).The orchestrator must NOT — these all belong to the sub-agent:
Anything beyond the four orchestrator steps above is a leak. Resist the urge to "just check".
Give the sub-agent this whole brief. It does everything: resolve, explore, decide, write, self-verify.
Setup
.reviews/<branch>.md — slashes in the branch become -.date +%F (use in the title).test -f .reviews/<branch>.md → exists = apply, else = write. Treat a later read failure as "fall back to write".main/master exists (git rev-parse --verify), diff <base>...HEADworking tree → git diff HEAD plus contents of untracked files (git ls-files --others --exclude-standard)staging/staged → git diff --cachedgrep --include=*.js fails); prefer git grep / git ls-files.Write mode
references/directives.md — keep signal, drop nitpicks..reviews/<branch>.md per references/format.md.Apply mode — do all localization yourself (grep/read source as needed; do not expect the orchestrator to have done it). For each item:
[DONE], add a > done: <what changed> line citing file:line.[WONTFIX], add > wontfix: <reason restated>.[DISCUSS], add a > follow-up question or answer.[OPEN].Then rescan the diff against the same base as the original review (working-tree edits just made are included) and append genuinely new items as [OPEN], numbered from max(existing number) + 1. Never renumber existing items, even when non-contiguous after a [WONTFIX].
Self-verify the edits (e.g. a final git grep that the changes landed and nothing stale remains) and state the result in the summary. Return: what changed in code + what now awaits the reviewer ([DISCUSS] / [OPEN] counts).
Boundaries (sub-agent)
> lines.references/directives.md — review axes, context to pull (CLAUDE.md, git history, prior PR comments, code comments), the anti-false-positive list, and the confidence filter.references/format.md — exact file template plus a worked, annotated round-trip example.tools
Perform a non-interactive interactive git rebase. Use when the user asks to rebase, squash, reorder, drop, or rename commits.
tools
Create a Pull Request (GitHub) or Merge Request (GitLab) with a well-crafted title and description. Use when the user asks to create a PR, MR, open a pull request, submit a merge request, or says something like "open a PR".
tools
Interview the user to deeply explore an idea, feature, or problem through Q&A. Use when the user asks to be interviewed, wants to think through something, or needs help clarifying a concept.
tools
Create a git commit with a well-crafted conventional commit message. Use when the user asks to commit, create a commit, or says something like "commit this".