Agent skill

Code Review

by jonathanpeppers in jonathanpeppers/dotnes

Review dotnes pull requests against established repository rules.

MITAuto-check passedDevelopment

Install Code Review

skills CLI
$ npx skills add jonathanpeppers/dotnes --skill code-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jonathanpeppers/dotnes code-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jonathanpeppers/dotnes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/code-review .claude/skills/code-review && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
code-review
GitHub stars
780
Token cost
~2.1k tokens
SKILL.md length
1,013 words
Files
10 (incl. references)
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Review dotnes pull requests against established repository rules.

  • Works in 7 steps: Identify the PR → Gather context (before reading PR… → Incorporate PR narrative and reconcile → …
  • The user asks for a code review
  • SKILL.md covers Review Mindset, Workflow and Comment format
  • Calls gh; reaches github.com

What it does

Code Review is an agent skill from jonathanpeppers/dotnes. Review dotnes pull requests against established repository rules. Use this skill whenever the user asks for a code review, says "review this PR", provides a GitHub pull request URL or number, or asks whether a change is ready to merge. Checks transpiler correctness, 6502 assembly, NES and cc65 conventions, MSBuild integration, snapshot tests, C patterns, security, and AI-generated code pitfalls.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including reference files (for example `references/ai-pitfalls.md`, `references/csharp-rules.md` and `references/msbuild-rules.md`).

It sits in Development, covering Code review and Pull requests. It works with C#, GitHub and .NET. The repository describes itself as: .NET for the NES game console. The licence is MIT.

When your agent uses it

  • The user asks for a code review
  • Says review this PR
  • Provides a GitHub pull request URL
  • Asks whether a change is ready to merge

Example prompts

  • “review this PR”
  • “/code-review”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Identify the PR
  2. Gather context (before reading PR description)
  3. Incorporate PR narrative and reconcile
  4. Check CI status
  5. Load review rules
  6. Analyze the diff
  7. Post the review

What it can do on your machine

Read from SKILL.md and the folder at commit 42ca23d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Code Review loads about 2.1k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 103 tokens; SKILL.md has 1,013 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~103
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~13k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jonathanpeppers/dotnes at commit 42ca23d, republished under its MIT licence (© jonathanpeppers). 1,013 words, ~2,084 tokens.

Download SKILL.mdSave it as .claude/skills/code-review/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
code-review
description
Review dotnes pull requests against established repository rules. Use this skill whenever the user asks for a code review, says "review this PR", provides a GitHub pull request URL or number, or asks whether a change is ready to merge. Checks transpiler correctness, 6502 assembly, NES and cc65 conventions, MSBuild integration, snapshot tests, C# patterns, security, and AI-generated code pitfalls.

dotnes Code Review

Review PRs against guidelines for the dotnes transpiler — a tool that converts .NET IL into 6502 machine code to produce NES ROMs.

Review Mindset

Be polite but skeptical. Prioritize bugs, correctness regressions, and transpiler safety over style nitpicks. 3 important comments > 15 nitpicks.

This is a compiler/transpiler project — correctness is paramount. A subtle bug in opcode emission can produce a ROM that silently does the wrong thing, and the only way to catch it may be running in an emulator. Treat every change to Transpiler.cs, IL2NESWriter.cs, NESWriter.cs, BuiltInSubroutines.cs, or Program6502.cs with extra scrutiny.

Flag severity clearly in every comment:

  • ❌ error — Must fix before merge. Bugs, incorrect 6502 emission, broken snapshot tests, security issues.
  • ⚠️ warning — Should fix. Performance issues, missing test coverage, inconsistency with patterns.
  • 💡 suggestion — Consider changing. Style, readability, optional improvements.

For substantive PRs, prefer at least one useful inline comment over suggestions buried in the summary. Do not invent a nit merely to produce a comment. Only comment on a changed line where the observation is actionable and specific.

Workflow

1. Identify the PR

If triggered from an agentic workflow (slash command on a PR), use the PR from the event context. Otherwise, extract owner, repo, pr_number from a URL or reference provided by the user. Formats: https://github.com/{owner}/{repo}/pull/{number}, {owner}/{repo}#{number}, or bare number (defaults to jonathanpeppers/dotnes).

2. Gather context (before reading PR description)
gh pr diff {number} --repo {owner}/{repo}
gh pr view {number} --repo {owner}/{repo} --json files

For each changed file, read the full source file (not just the diff) to understand surrounding invariants, call patterns, and data flow. If the change modifies a public/internal API or utility, search for callers. Check whether sibling types need the same fix.

Form an independent assessment of what the change does and what problems it has before reading the PR description.

Verify project context before applying a rule. Check the target framework, project references, build imports, and existing compatibility helpers so a rule for modern .NET is not incorrectly applied to netstandard2.0, or vice versa.

3. Incorporate PR narrative and reconcile
gh pr view {number} --repo {owner}/{repo} --json title,body

Now read the PR description and linked issues. Treat them as claims to verify, not facts to accept. Where your independent reading disagrees with the PR description, investigate further. If the PR claims a performance improvement, require evidence. If it claims a bug fix, verify the bug exists and the fix addresses root cause — not symptoms.

4. Check CI status
gh pr checks {number} --repo {owner}/{repo}

Review the CI results. Never post ✅ LGTM if any required CI check is failing or if the code doesn't build. If CI is failing:

  • Investigate the failure.
  • Inspect the failed GitHub Actions job logs.
  • If the failure is caused by the PR's code changes, flag it as ❌ error.
  • If the failure is a known infrastructure issue or pre-existing flake unrelated to the PR, note it in the summary but still use ⚠️ Needs Changes — the PR isn't mergeable until CI is green.
5. Load review rules

Based on the file types identified in step 2, read the appropriate rule files from this skill's references/ directory.

Always load:

  • references/repo-conventions.md — Formatting, style, and patterns specific to dotnes.
  • references/ai-pitfalls.md — Common AI-generated code mistakes.

Conditionally load based on changed file types:

  • references/csharp-rules.md — When any .cs files changed. Covers nullable, async, error handling, performance, and code organization.
  • references/transpiler-rules.md — When files under src/dotnes.tasks/ changed, especially Transpiler.cs, IL2NESWriter.cs, NESWriter.cs, BuiltInSubroutines.cs, or Program6502.cs. The core of this project.
  • references/nes-program-rules.md — When files under samples/ changed, or when NESLib.cs changed, or when the diff contains NES API calls (e.g., pal_col, ppu_on_all, oam_spr). Covers NES program constraints and neslib API usage.
  • references/testing-rules.md — When test files changed (files under src/dotnes.tests/) or when transpiler changes lack corresponding test additions.
  • references/msbuild-rules.md — When .targets, .props, or .csproj files changed, or when TranspileToNES.cs changed.
  • references/native-rules.md — When .c, .h, or cc65 reference source files changed. Covers reference parity, C safety, ownership, and compiler limits.
  • references/security-rules.md — When any code files changed (C# or MSBuild).
Show full SKILL.md (381 more words)Show less
6. Analyze the diff

For each changed file, check against the loaded review rules. Record issues as:

json
{ "path": "src/Example.cs", "line": 42, "side": "RIGHT", "body": "..." }

What to look for (in priority order):

  1. Transpiler correctness — Wrong opcodes, incorrect address modes, broken label resolution, ROM layout changes
  2. Safety and determinism — Resource leaks, path/command vulnerabilities, non-deterministic ROM output
  3. Snapshot regressions — Changes that would alter .verified.bin output for unchanged samples
  4. Bugs & correctness — Logic errors, off-by-one, null dereferences
  5. Missing tests — Transpiler changes without RoslynTests, new samples without snapshot data
  6. Performance — Unnecessary allocations, O(n²) patterns in hot transpiler paths
  7. Code duplication — Near-identical methods that should be consolidated
  8. Documentation — Misleading comments, undocumented behavioral decisions, missing docs/msbuild-properties.md updates

Constraints:

  • Only comment on added/modified lines in the diff — the API rejects out-of-range lines.
  • line = line number in the NEW file (right side). Double-check against the diff.
  • One issue per comment.
  • Don't pile on. If the same issue appears many times, flag it once with a note listing all affected files.
  • Don't flag what CI catches. Skip compiler errors, formatting the linter will catch, etc.
  • Avoid false positives. Verify the concern actually applies given the full context. If unsure, phrase it as a question rather than a firm claim.
  • Verify downstream behavior. Trace changed values to their final consumer; helper names and comments are not proof of semantics.
7. Post the review

Post your findings directly:

  • Inline comments on specific lines of the diff with the severity, category, and explanation.
  • Review summary with the overall verdict (✅ LGTM, ⚠️ Needs Changes, or ❌ Reject), issue counts by severity, and positive callouts.

If no issues are found and CI is green, submit a positive summary. Add at most one or two 💡 suggestions only when they are concrete and worthwhile. Truly trivial PRs (dependency bumps, 1-line typo fixes) may have no inline comments.

Copilot-authored PRs: If the PR author is Copilot (the GitHub Copilot coding agent) and the verdict is ⚠️ Needs Changes or ❌ Reject, prefix the review summary with @copilot so the comment automatically triggers Copilot to address the feedback. Do NOT add the prefix for ✅ LGTM verdicts.

Comment format

🤖 {severity} **{Category}** — {What's wrong and what to do instead.}

Where {severity} is ❌, ⚠️, or 💡.

Categories: Transpiler correctness · 6502 emission · ROM layout · Snapshot integrity · NES program · neslib API · C reference · MSBuild · Nullable · Async pattern · Error handling · Resource management · Performance · Code organization · Testing · YAGNI · API design · Documentation · Security

© jonathanpeppers, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files (references) in .github/skills/code-review of jonathanpeppers/dotnes.

  • SKILL.md
  • references/ai-pitfalls.md
  • references/csharp-rules.md
  • references/msbuild-rules.md
  • references/native-rules.md
  • references/nes-program-rules.md
  • references/repo-conventions.md
  • references/security-rules.md
  • references/testing-rules.md
  • references/transpiler-rules.md

Open the folder on GitHubat commit 42ca23d

Compare with similar skills

Code Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Code Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Code Review this skilljonathanpeppers/dotnes780—~2.1kAutomated safety check: PassMIT
Code Reviewdotnet/macios2.9k—~1.7kAutomated safety check: PassCustom licence
MAUI PR Performance Analysisdotnet/maui23k—~2.4kAutomated safety check: PassMIT
Gh Stackdotnet/macios2.9k2 repos~10kAutomated safety check: PassCustom licence
Find Reviewable MAUI PRsdotnet/maui23k—~1.7kAutomated safety check: PassMIT
.NET MAUI Code Reviewdotnet/efcore15k—~2kAutomated safety check: PassMIT

Similar skills

  • Code Review

    dotnet/macios

    Official

    Review dotnet/macios PRs against established rules. An agent skill from dotnet/macios.

    2.9k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Interprets pinned managed benchmark evidence for a dotnet/maui pull request and writes a narrative for the performance review workflow, without running or publishing anything.

    23k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Gh Stack

    dotnet/macios

    Official

    Manage stacked branches and pull requests with the gh-stack GitHub CLI extension.

    2.9k GitHub starsUsed in 2 repos~10k tokens
    DevelopmentAuto-check passed
  • Official

    Lists open pull requests in dotnet/maui and dotnet/docs-maui that are worth reviewing next, ranked by priority labels, milestone and partner or community origin.

    23k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Deep code-only review of a pull request or candidate patch for correctness, safety and .NET MAUI conventions, judging the code before reading the PR description.

    15k GitHub stars~2k tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Runs a three-phase review of a dotnet/maui pull request (pre-flight, try-fix, report), writing results to local files and never posting comments to the PR.

    23k GitHub stars~3.6k tokensUpdated today
    DevelopmentAuto-check passed

More from jonathanpeppers/dotnes

  • Nes Decompile

    jonathanpeppers/dotnes

    Decompile NES ROM files (.nes) into C projects that can be rebuilt with dotnes.

    780 GitHub stars~1.6k tokensUpdated 13 days ago
    Auto-check passed
  • Nes Rom Debug

    jonathanpeppers/dotnes

    Disassemble and debug NES ROM files (.nes) produced by the dotnes transpiler.

    780 GitHub stars~1.5k tokensUpdated 13 days ago
    Auto-check passed
  • PR Iterate

    jonathanpeppers/dotnes

    Iterate on a GitHub pull request from a coding agent (like Copilot coding agent) until it's ready for human review.

    780 GitHub stars~2.4k tokensUpdated 13 days ago
    Auto-check passed

Works with

Categories

Questions about Code Review

What does Code Review do?

Review dotnes pull requests against established repository rules. Code Review is an agent skill from jonathanpeppers/dotnes. Review dotnes pull requests against established repository rules.

When should I use Code Review?

Code Review fits situations like: the user asks for a code review; says review this PR; provides a GitHub pull request URL; asks whether a change is ready to merge.

How do I install Code Review in Claude Code?

Run `npx skills add jonathanpeppers/dotnes --skill code-review -a claude-code`. Or copy the skill folder (.github/skills/code-review in jonathanpeppers/dotnes) into .claude/skills/code-review in your project. Claude Code loads it when a task matches its description.

How do I install Code Review in Codex?

Run `npx skills add jonathanpeppers/dotnes --skill code-review -a codex`. Or copy the skill folder (.github/skills/code-review in jonathanpeppers/dotnes) into .agents/skills/code-review in your project. Codex loads it when a task matches its description.

Can I use Code Review in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jonathanpeppers/dotnes --skill code-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-review, .gemini/skills/code-review, .github/skills/code-review and .opencode/skills/code-review in your project.

What does Code Review need to run?

Going by SKILL.md and its folder, Code Review needs the command-line tools its instructions call (gh).

Does Code Review access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Code Review safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Code Review use?

Code Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Code Review use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 11k tokens, read only when the agent opens those files.

What are the alternatives to Code Review?

Skills that share tags, products or a category with Code Review: Code Review (dotnet/macios, 2.9k stars), MAUI PR Performance Analysis (dotnet/maui, 23k stars), Gh Stack (dotnet/macios, 2.9k stars) and Find Reviewable MAUI PRs (dotnet/maui, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Code Review?

jonathanpeppers (a GitHub user) maintains it in jonathanpeppers/dotnes, which has 780 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on September 23, 2026.

Source: jonathanpeppers/dotnes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.