Review one or more PRs in Dylan's style: up to 7 copy-pasteable asks and one š¢/š”/š“ call. Quick by default; "deep" adds thermos and Bugbot. Use for /dyl-review, "review this PR like me", or terse design/correctness comments. Never posts to the PR.
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Produce a draft PR review the human can paste. This is the one review: thermos and Bugbot run inside it at deep depth, never as separate steps.
Input: one or more PR links or numbers. Multiple PRs get one review block each.
Requires pstack, plus thermos at deep depth. Check first with ../dyl-mode/references/requirements.md. Missing ā stop and tell the user to run /add-plugin <name>.
Forge. Use origin pr when the repo lives on Origin, gh pr otherwise. Commands below show both.
Deep when the invoking skill or the human asks for it (deep / thorough / thermo). Otherwise quick.
<base> below is the PR's base branch (gh pr view <n> --json baseRefName, or origin pr view <n> --json baseRef), not assumed main. For deep, the PR head must be checked out locally: the current branch, or a throwaway worktree (git fetch origin <base> <branch>, then git worktree add /tmp/dyl-review-<pr> origin/<branch>, removed when done). Thermos and Bugbot audit a checkout.git diff origin/<base>...HEAD from the checkout when there is one, with origin/<base> freshly fetched, else gh pr diff <n> / origin pr diff <n>), then launches every worker the depth calls for in one message, pointing each at that file and at the checkout when there is one:
thermo-nuclear-review-subagent and thermo-nuclear-code-quality-review-subagent (the pair the thermos skill from the Thermos plugin launches), plus exactly one bugbot subagent with Diff: branch changes (Cursor's built-in /review-bugbot).
Analysis happens in the workers, not on the main thread.Task model: inherit, or omit model). Do not pin a cheap/fast model for the review judgment pass.Use generalPurpose, not dyl-agent: dyl-agent routes review asks back into this skill. Scope it to this section (steps 1 to 3): the worker does not spawn workers or synthesize. It must:
Read the diff file the main thread wrote. Open surrounding files from the checkout when one exists. Pull title and body read-only via gh pr view / origin pr view. Focus on the priority list below.
dyl-mode skill's Dylan gates and pstack poteto-mode's Principles index. Ask whether applying them would shrink or clarify the change (The Algorithm, reuse, simplify, flag scope, prove-it, laziness, measure-before-code for UI).AGENTS.md, .cursor/rules/, and any repo-local best-practices skill for the surface the PR touches. Apply them as a lens.Up to 7 candidates for the shortlist below, each anchored to file:line when known.
Inputs: the Dylan-lens candidates, plus in deep both thermos reports and the Bugbot report.
Prefer high-signal issues you can anchor to a file/line. Every bullet is an ask or a concern. No praise, "nice catch", or other compliments as bullets (tagged nit or otherwise). Zero bullets is fine on a clean PR.
For each finding:
Pick exactly one mark and lead with it on its own line (no "Rec:" label). In that same clause, call out the shape of the asks when it matters:
| Mark | Meaning | Clause habit |
|---|---|---|
| š¢ | Ship shape / small nits only | Say "nits only" (or "no asks") when the bullets are optional polish |
| š” | Fine to land after addressing the asks (or with clear follow-ups) | Name whether remaining asks are nits vs should-fix-soon |
| š“ | Blocking correctness, safety, or design issue | Say "blocker" / "blockers" and what kind (correctness, safety, design) |
Examples: š¢ Nits only, š” A couple should-fix asks, rest nits, š“ Blocker on silent fallback. Do not hide a blocker behind a yellow mark.
One block per PR. No section labels. No "Rec:" or "Comments (draft...)". No em dashes. Raw thermos or Bugbot reports never appear; the shortlist is the review.
## <title> (<PR link>)
š¢|š”|š“ <short clause that names nits and/or blockers>
<2 to 4 plain sentences. What the PR does, whether the shape is simple enough,
whether the dyl-mode or repo-standards lenses would shrink it.>
- <comment>
- <comment>In bullets, you may tag a line (nit) or (blocker) when the severity is easy to miss. Keep it rare. The emoji line still carries the overall call. (nit) means a small problem worth fixing if cheap, not a compliment.
Standalone, the block is the entire reply: first character #, no emoji before the ## title (a mode-indicator emoji from user rules goes on its own line after the block, never on the header line), and nothing after it unless a blocker needs a human decision (security/privacy/auth ambiguity).
Invoked by another skill (for example /dyl-ready-pr), hand the block back to that skill; its reply rules apply.
cursor/plugins
5866df5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.