# Review Issue

Review an incoming external issue (and any gated-closed PR behind it) and decide...

- Repository: https://github.com/PrefectHQ/fastmcp (28267 stars)
- Category: Git and review
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add PrefectHQ/fastmcp --skill review-issue -g -a claude-code -y`
Codex: `npx skills add PrefectHQ/fastmcp --skill review-issue -g -a codex -y`
Cursor: `npx skills add PrefectHQ/fastmcp --skill review-issue -g -a cursor -y`
Gemini CLI: `npx skills add PrefectHQ/fastmcp --skill review-issue -g -a gemini-cli -y`

## Description

Review an incoming external issue (and any gated-closed PR behind it) and decide whether to assign the contributor or decline. Use when the maintainer says "look at this issue", "review issue #N", "should we take this", or asks whether to assign someone. Assigning the author auto-reopens their PR for normal review. This is the entry point for incoming-issue triage, distinct from review-pr, which assesses the full change and follows CI and review feedback.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Review an incoming issue

This skill ends in a recommendation for the maintainer:

- **Assign**: the issue is valid, an external PR suits it, and a sound PR exists. Assign the author, which clears the gate, then review the code.
- **Decline**: close the open contribution, or leave a closed one closed, and explain why on the issue once authorized.
- **Maintainer decision needed**: only when investigation leaves a concrete choice that materially changes supported behavior or ongoing support scope. State the affected scenario, competing outcomes, why protocol/docs/history/prior decisions do not settle it, and a recommendation. Ordinary reviewer uncertainty or implementation preferences do not qualify. The unresolved choice alone is not a reason to decline or formally request changes.

Assignment commits us to reviewing the PR, not to merging it. A gate closure is administrative, so a closed PR gets the same bar as an open one.

## How the gate works

[require-issue-link.yml](../../../.github/workflows/require-issue-link.yml) checks every external PR:

- It needs `Fixes/Closes/Resolves #N`. PRs without a valid link are closed.
- A linked PR stays open with a failing check until its author is assigned to that issue. Issues labeled `prs welcome` waive assignment but still need the link.
- Assigning the author (`gh issue edit N --add-assignee <login>`) re-runs the check and reopens a gate-closed PR. If that run fails, the gate misbehaved: investigate the run rather than re-assigning.
- Maintainer PRs are exempt, and so are authors with the `trusted-contributor` label. Reopening a PR by hand or removing `missing-issue-link` applies a sticky `bypass-issue-check`, so prefer assignment.
- `marvin-dedupe-issues`, `auto-close-duplicates`, and `auto-close-needs-mre` have usually commented already. Read them as leads.

## Procedure

1. **Orient.** Read the issue, its bot comments, and every PR that references it, in all states:

The rest: https://github.com/PrefectHQ/fastmcp/blob/HEAD/.agents/skills/review-issue/SKILL.md
