Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/dotnet/maui/pr-finalizenpx skills add dotnet/maui --skill pr-finalizegit clone --depth 1 https://github.com/dotnet/mauiWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00092 | $0.02928 |
| Opus 5 | $0.00046 | $0.01464 |
| Sonnet 5 | $0.00018 | $0.00586 |
| Haiku 4.5 | $0.00009 | $0.00293 |
Grade A, and why
pr-finalize scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 378 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PR Finalize
Ensures PR title and description accurately reflect the implementation, and performs a code review for best practices before merge.
Standalone skill - Can be used on any PR, not just PRs reviewed by the pr-review skill.
Two-Phase Workflow
- Title & Description Review - Verify PR metadata matches implementation
- Code Review - Review code for best practices and potential issues
🚨 CRITICAL RULES
1. NEVER Approve or Request Changes
AI agents must NEVER use --approve or --request-changes flags.
| Action | Allowed? | Why |
|---|---|---|
gh pr review --approve |
❌ NEVER | Approval is a human decision |
gh pr review --request-changes |
❌ NEVER | Blocking PRs is a human decision |
2. NEVER Post Comments Directly
This skill is ANALYSIS ONLY. Never post comments using gh commands.
| Action | Allowed? | Why |
|---|---|---|
gh pr review --comment |
❌ NEVER | Review-PR.ps1 handles posting via scripts |
gh pr comment |
❌ NEVER | Review-PR.ps1 handles posting via scripts |
| Analyze and report findings | ✅ YES | This is the skill's purpose |
Correct workflow:
- This skill: Analyze PR, produce findings and write to
pr-finalize-summary.md - Human-controlled follow-up: PR finalization is not part of the automated
Review-PR.ps1flow. Only post or use the summary when a user explicitly asks for PR finalization.
Only humans control when comments are posted. Your job is to analyze and present findings.
Phase 1: Title & Description
Core Principle: Preserve Quality
Review existing description BEFORE suggesting changes. Many PR authors write excellent, detailed descriptions. Your job is to:
- Evaluate first - Is the existing description good? Better than a template?
- Preserve quality - Don't replace a thorough description with a generic template
- Enhance, don't replace - Add missing required elements (NOTE block, issue links) without rewriting good content
- Only rewrite if needed - When description is stale, inaccurate, or missing key information
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 378 lines · 92 tokens per session scan A a694c787f6c0
pr-finalize is a skill published in the GitHub repository dotnet/maui (23,317 stars, last pushed 2d ago), licensed MIT. It adds 92 tokens to every session and 2,928 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dpg-migration
Migration logic for Azure SDK for .NET data-plane libraries migrating from AutoRest/Swagger to TypeSpec-based generation. Uses MCP tools from the generator-agent server for automated deterministic fixes.
csharp-azure-spector-coverage-gaps
Discovers and implements gaps in Spector test coverage for the Azure C# HTTP client emitter. Use when asked to find missing Spector scenarios, add Spector test coverage, or implement a specific Spector spec for the Azure C# emitter. Can also compare coverage between the Azure dashboard and the Standard (TypeSpec core)…
auto-build-repair
Headless, bounded repair of custom-code build failures in an already-generated Azure SDK PR. Thin wrapper over the shared azure-sdk-mcp:azsdkcustomizedcodeupdate engine in custom-code-only scope (editScope: CustomCode); the skill owns the iterate-until-green loop, capped by a per-language maxIterations read from…
azure-sdk-mgmt-pr-review
Review Azure SDK management-plane pull requests, check naming conventions, API compatibility, and code quality.
mgmt-review-comment-resolution
Resolve review comments on Azure management-plane .NET SDK PRs. Handles renaming types/properties, changing property types, and other API surface adjustments by updating TypeSpec client.tsp and regenerating.
mitigate-breaking-changes
Patterns and techniques for mitigating breaking changes during Azure management-plane SDK migration from Swagger/AutoRest to TypeSpec. Covers SDK-side customizations (partial classes, CodeGenType, CodeGenSuppress) and TypeSpec decorator customizations (clientName, access, markAsPageable, alternateType…