ワンクリックで
pr-review
Review a GitHub PR by number against the repo's PR template, audit checklist, and conventions. Use when the user says "review PR
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Review a GitHub PR by number against the repo's PR template, audit checklist, and conventions. Use when the user says "review PR
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Audit a file, package, or diff for cryptographic correctness, errs-go compliance, deserialization safety, and audit-scope risk. Use when the user asks to audit, review for security, or check before merging into in-scope code.
Audit code for timing side-channels — variable-time operations on secret values. Use when the user asks to check constant-time, timing, or side-channel safety of a file, function, or diff in this repo.
Run audit twice in parallel — once in this Claude session, once via OpenAI's Codex CLI — then merge the findings into unique-to-each / agreed-by-both buckets followed by both raw reports. Use when the user says "dual-audit <target>" or wants a second-opinion audit of a file, package, or diff.
Run pr-review twice in parallel — once in this Claude session, once via OpenAI's Codex CLI — then merge the findings into unique-to-each / agreed-by-both buckets followed by both raw reports. Use when the user says "dual-review PR
Run spec-compliance twice in parallel — once in this Claude session, once via OpenAI's Codex CLI — then merge the findings into unique-to-each / agreed-by-both buckets followed by both raw reports. Use when the user says "dual-spec-compliance <target>" or wants a second-opinion check of paper/spec/reference-implementation alignment for a package.
Determine whether a package faithfully implements its cited reference — academic paper, normative spec (RFC / wiki / design doc), or upstream reference implementation code. Use when the user asks to check paper/spec/reference-implementation compliance, reduction alignment, byte-exact parity with an upstream, or whether the code matches the protocol description in a README, paper, RFC, or `code` directive.
| name | pr-review |
| description | Review a GitHub PR by number against the repo's PR template, audit checklist, and conventions. Use when the user says "review PR |
| effort | max |
You are reviewing a PR for this repo. Be terse. Cite file:line. Don't approve or block — give findings.
Get the PR: gh pr view <N> --json title,body,files and gh pr diff <N>.
Read the PR description against .github/pull_request_template.md. Note any unchecked box that the diff actually needed (tests claimed but absent, docs claimed but missing, etc.).
Walk the diff for:
errs.Wrap(err).WithMessage(...)._test.go change. New invariants → _prop_test.go with rapid. Reproducer for a bug fix. Ensure that the tests are meaningful and not just "coverage noise". For cryptography code, ensure the tests are cryptographically meaningful. If there are multiple ways to instantiate a test object, ensure that the tests cover them - for example, if a sharing scheme is defined over arbitrary monotone access structures, ensure that the tests cover at least two different access structures, not just the same one with different parameters.doc.go and a README.md. For existing packages, ensure that all documentation in doc.go and README.md still applies and are up to date after the change.ErrSerialization = errs.New("serialisation error") is mixed; flag it).*.gen.go should come with the matching generator change in tools/, or whereever they were generated in the first place.Pre-existing issues: if the diff touches a file with pre-existing issues, note whether the diff makes them worse, better, or has no impact.
Before writing the report, actively check the categories below — these are the ones most often missed when the diff is large:
- lines in _test.go files for assertions with no replacement.testdata/rapid/* directory names, doc comments referencing the old method, error messages echoing the old name.StructureMustBeAs / type assertions on code paths that a new flavor exercises. Type-level smoke-test assertions don't catch runtime panics.Unmarshal* / From* methods re-run the same invariants the New* constructors enforce? Trust-boundary code must validate.Output as GitHub-flavoured markdown. Use headers, bold severity tags, and code spans for paths so the terminal renders a clear visual hierarchy. Do not wrap the whole report in a fenced code block (that defeats the renderer). Template:
## PR #<N> — <title>
**Audit-scope files:** `path1`, `path2` _(or "none")_
### Findings
- **[blocker]** `file.go:42` — short description
- **[nit]** `file.go:99` — short description
- **[question]** `file.go:123` — short description
_(If none: "No findings.")_
### Description vs. diff
<one line: "matches" or the specific mismatch>
### Recommendation
<one short paragraph>
Severity tags must be one of [blocker], [nit], [question] and always bolded so they pop in the terminal. Order findings as you discover them; severity tags are for the reader, not a filing system. Aim for breadth of investigation before brevity — a thorough report with ungrouped findings beats a tidy one with gaps.