Review dotnet/macios PRs against established rules. Trigger on "review this PR", a GitHub PR URL, or code review requests. Checks bindings, MSBuild, nullable, formatting, performance, testing, native runtime code, and Apple platform patterns.
71
86%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Review PRs against guidelines distilled from past reviews by senior maintainers of dotnet/macios (Sebastien, Rolf, Chris, Manuel, Alex).
Be polite but skeptical. Prioritize bugs, performance regressions, safety issues, and pattern violations over style nitpicks. 3 important comments > 15 nitpicks.
Flag severity clearly in every comment:
Every review should produce at least one inline comment. Even clean PRs have opportunities for improvement — code consolidation, missing edge-case tests, documentation gaps, or binding improvements. Use 💡 suggestions for these. Only omit inline comments if the PR is truly trivial (e.g., a 1-line typo fix or dependency bump).
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 dotnet/macios).
gh pr diff {number} --repo {owner}/{repo}
gh pr view {number} --repo {owner}/{repo} --json filesFor 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.
gh pr view {number} --repo {owner}/{repo} --json title,bodyNow 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 (benchmarks, profiling data). If it claims a bug fix, verify the bug exists and the fix addresses root cause — not symptoms.
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.
Read references/review-rules.md from this skill's directory.
For each changed file, check against the review rules. Record issues as:
{ "path": "src/Example.cs", "line": 42, "side": "RIGHT", "body": "..." }What to look for (in priority order):
XAMCORE_5_0 guard[Export] selectors, missing [NullAllowed], incorrect return types, missing platform attributesConstraints:
line = line number in the NEW file (right side). Double-check against the diff.Post your findings directly:
If no issues found and CI is green, submit with at most one or two 💡 suggestions and a positive summary. Truly trivial PRs (dependency bumps, 1-line typo fixes) may have no inline comments.
Review event to submit:
COMMENT — never REQUEST_CHANGES or APPROVE.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.
🤖 {severity} **{Category}** — {What's wrong and what to do instead.}
_{Rule: Brief name}_Where {severity} is ❌, ⚠️, or 💡.
Categories: Binding definition · Platform attributes · Breaking change · MSBuild tasks · MSBuild targets · Nullable · Async pattern · Error handling · Memory management · Security · Formatting · Performance · Code organization · Patterns · Native runtime · Testing · YAGNI · API design · Documentation
d259b5f
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.