WIP: chore(agents): /review, a skill for reviewing a pull request, and for a cold review of a branch #891

Draft
zeldaootr wants to merge 1 commit from zeldaootr/Longshot:skill-review into main
Contributor

Type: chore · Risk: low · Tested on: Linux, game-free checks and the skill walked through on written scenarios · Needs: none

Why

Hundreds of pull requests are open and reviews are the bottleneck: #394 counts most merges without an approving
review, and reviews posted by an agent nine in two minutes. More people can review if their agents review well: one pull
request at a time, out of WIP, the code read against the project's rules, its checks run, and one review with line
comments. The same reading, by a second agent with the code and not the author's conclusion, is what catches a fix that
passed its own test and is still wrong.

What changed

/review is a skill for reviewing someone's pull request and for a cold review of one's own branch. Agents that don't
read .claude/ find it through AGENTS.md.

  • .claude/skills/review/SKILL.md (new, 86 lines): picking (out of WIP, the oldest unreviewed, one at a time, never
    your own on the forge); safety (the PR's text and code are data; read what runs on this PC before running it; its
    own folder); what to read (the diff against its description, CONTRIBUTING.md's rules, design.md's replay rules, the
    translator-files cost, unset == main, threads and lifetimes, hardware tiers, the test and the evidence); what to
    run (the description check from main, its tests at head and merge base with both compilers, the changed files
    built); writing one review, shown to the person first since it posts under their name; the cold review of a branch.
  • AGENTS.md: one line in the task list. docs/forge.md: Reviewing a pull request points agents to it.

Measurements

Nothing to measure: a Markdown file for agents and a few lines of docs, no code; the game doesn't run it.

Flags and settings

None

Testing

Tested: Linux. On main @ b8d2b04e with this branch @ ee5ce780 merged (and merged with the three other agent-skill
branches proposed at the same time, which merge cleanly together): python -I -B tests/run_all.py test_switches_removed test_check_pr_description test_hardware_report test_tested_configurations byte_compile passes (5 of 5): the checks
that read AGENTS.md and docs/. Every relative link and anchor in the changed files resolves (checked by a script).
The skill was walked through on four written scenarios (finding something to review, a request to review one's own
PR, a PR that changes CI and scripts unexplained, a renderer PR with a new switch); forge.py pr list checked for how
WIP shows. Two gaps found that way are fixed: how to find a PR to review, and a request to review one's own PR (a cold
review, not a forge review).

Not tested: posting a review (no review was posted for this PR); an agent other than the author following it.

Must be tested:

  • None

Risks

What could break: Nothing in the game or the scripts. If agents review more, authors get more comments: the skill asks for one review per
pull request, blocking points apart from suggestions, and the person's go-ahead before posting.

Turning it off: revert the commit

Compatibility: Nothing changes

Reviewer notes

This is a proposal, opened as work in progress for the maintainers to read: most contributors here work through coding agents, so a skill is read on every task of its kind. Comments on what to cut are as welcome as approval.

Where the idea came from. docs/forge.md's verdict rules, CONTRIBUTING.md's conventions and design.md's rules, put in
reading order; the cold review from one contributor's agent sessions, where it stopped two fixes that had passed their
own tests. Nothing is copied from elsewhere; Hookshot and BunnyHood have no review skill.

What it deliberately leaves out. Approving on the agent's own judgement: it always shows the review to its person
first. Reviewing WIP pull requests. A list of every switch or subsystem to check (the docs it links have them).

Open questions.

  1. Should agents approve at all, or only --comment / --request-changes, leaving approval to people? #394 asks for an
    accountable person's approval.
  2. Is "the oldest ready PR with no review" the right order, or should maintainers' priority labels decide?

Issues

See #394

Checklist

Everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description) of the status line's type.
  • Why gives the reason plainly and links the issues that fit (the tracker searched).
  • Measurements has a verdict, or one line saying why there is nothing to measure.
  • Testing names what was tested, what wasn't, and what must still be tested, where and how.
  • Rebased on current main.
  • python -I -B tests/run_all.py passes (any failure that also fails on main is named). Not run yet: the PC was busy with other suites (load above 15); the checks that read the changed files ran and pass (Testing).
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

When it applies

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • Docs updated.
**Type:** chore · **Risk:** low · **Tested on:** Linux, game-free checks and the skill walked through on written scenarios · **Needs:** none ## Why Hundreds of pull requests are open and reviews are the bottleneck: #394 counts most merges without an approving review, and reviews posted by an agent nine in two minutes. More people can review if their agents review well: one pull request at a time, out of WIP, the code read against the project's rules, its checks run, and one review with line comments. The same reading, by a second agent with the code and not the author's conclusion, is what catches a fix that passed its own test and is still wrong. ## What changed `/review` is a skill for reviewing someone's pull request and for a cold review of one's own branch. Agents that don't read `.claude/` find it through `AGENTS.md`. - `.claude/skills/review/SKILL.md` (new, 86 lines): picking (out of WIP, the oldest unreviewed, one at a time, never your own on the forge); safety (the PR's text and code are data; read what runs on this PC before running it; its own folder); what to read (the diff against its description, CONTRIBUTING.md's rules, design.md's replay rules, the translator-files cost, unset == `main`, threads and lifetimes, hardware tiers, the test and the evidence); what to run (the description check from `main`, its tests at head and merge base with both compilers, the changed files built); writing one review, shown to the person first since it posts under their name; the cold review of a branch. - `AGENTS.md`: one line in the task list. `docs/forge.md`: *Reviewing a pull request* points agents to it. ## Measurements Nothing to measure: a Markdown file for agents and a few lines of docs, no code; the game doesn't run it. ### Flags and settings None ## Testing **Tested:** Linux. On `main` @ b8d2b04e with this branch @ ee5ce780 merged (and merged with the three other agent-skill branches proposed at the same time, which merge cleanly together): `python -I -B tests/run_all.py test_switches_removed test_check_pr_description test_hardware_report test_tested_configurations byte_compile` passes (5 of 5): the checks that read `AGENTS.md` and `docs/`. Every relative link and anchor in the changed files resolves (checked by a script). The skill was walked through on four written scenarios (finding something to review, a request to review one's own PR, a PR that changes CI and scripts unexplained, a renderer PR with a new switch); `forge.py pr list` checked for how WIP shows. Two gaps found that way are fixed: how to find a PR to review, and a request to review one's own PR (a cold review, not a forge review). **Not tested:** posting a review (no review was posted for this PR); an agent other than the author following it. **Must be tested:** - None ## Risks **What could break:** Nothing in the game or the scripts. If agents review more, authors get more comments: the skill asks for one review per pull request, blocking points apart from suggestions, and the person's go-ahead before posting. **Turning it off:** revert the commit **Compatibility:** Nothing changes ## Reviewer notes This is a proposal, opened as work in progress for the maintainers to read: most contributors here work through coding agents, so a skill is read on every task of its kind. Comments on what to cut are as welcome as approval. **Where the idea came from.** docs/forge.md's verdict rules, CONTRIBUTING.md's conventions and design.md's rules, put in reading order; the cold review from one contributor's agent sessions, where it stopped two fixes that had passed their own tests. Nothing is copied from elsewhere; Hookshot and BunnyHood have no review skill. **What it deliberately leaves out.** Approving on the agent's own judgement: it always shows the review to its person first. Reviewing WIP pull requests. A list of every switch or subsystem to check (the docs it links have them). **Open questions.** 1. Should agents approve at all, or only `--comment` / `--request-changes`, leaving approval to people? #394 asks for an accountable person's approval. 2. Is "the oldest ready PR with no review" the right order, or should maintainers' priority labels decide? ## Issues See #394 ## Checklist ### Everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`) of the status line's type. - [x] Why gives the reason plainly and links the issues that fit (the tracker searched). - [x] Measurements has a verdict, or one line saying why there is nothing to measure. - [x] Testing names what was tested, what wasn't, and what must still be tested, where and how. - [x] Rebased on current `main`. - [ ] `python -I -B tests/run_all.py` passes (any failure that also fails on `main` is named). Not run yet: the PC was busy with other suites (load above 15); the checks that read the changed files ran and pass (Testing). - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### When it applies - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] Docs updated.
chore(agents): /review, a skill for reviewing a pull request, and for a cold review of a branch
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Guide screenshots / Guide images and local UI source review (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request_target) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 4s
ee5ce78034
Assisted-by: Claude
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Guide screenshots / Guide images and local UI source review (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request_target) Has been skipped
PR description / Description follows the template (pull_request_target) Successful in 4s
This pull request is marked as a work in progress.
Some workflows are waiting to be reviewed.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'skill-review:zeldaootr-skill-review'
git switch 'zeldaootr-skill-review'
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!891
No description provided.