resolve-copilot-review
Triage GitHub Copilot's automated PR review comments, fix the confirmed issues, and resolve the review threads.
Skill by craigspaterson
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/craigspaterson-resolve-copilot-review
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/resolve-copilot-review
What's inside
- Skill name
resolve-copilot-review- Description
- Triage GitHub Copilot's automated PR review comments, fix the confirmed issues, and resolve the review threads. Use when the user mentions Copilot review findings/comments, asks to address or clear PR feedback, or wants Copilot's review threads resolved.
- License
- MIT
- Instructions
- 64 lines in SKILL.md · view on GitHub
Files (2)
- README.md
- SKILL.md
SKILL.md (first lines)
# Resolve Copilot Review
## Step 1 — Identify the PR
Get `owner`/`repo` from the base repository (where the PR and its threads live —
`gh pr view` only exposes the *head* repo, which differs on fork PRs):
gh repo view --json owner,name -q '.owner.login + "/" + .name'
Then get the PR `number` — the one the user named, or the open PR for the current branch:
gh pr view --json number,url,headRefName
Completion: you have `owner`, `repo`, and PR `number`.
## Step 2 — Fetch Copilot's review threads
REST's `pulls/{n}/comments` endpoint carries neither thread-resolution state nor a resolvable thread id — both only exist via GraphQL's `reviewThreads`. Fetch threads there:
gh api graphql -f query='
query($owner:String!,$repo:String!,$pr:Int!){
repository(owner:$owner,name:$repo){
pullRequest(number:$pr){
reviewThreads(first:100){
nodes{
id isResolved path line
comments(first:10){nodes{id databaseId author{login} body path line}}
}
}
}
}
}' -f owner=OWNER -f repo=REPO -F pr=NUMBER
Filter to threads where `isResolved` is false and the first comment's `author.login` contains "copilot" (case-insensitive — the exact login string has varied). Completion: for every open Copilot thread you have the GraphQL thread `id`, the file `path`/`line`, the finding text, and the first comment's `databaseId`.
`id` (GraphQL node id, used to resolve the thread) and `databaseId` (REST numeric id, used to reply) are different id spaces for the same comment — don't cross them.
If there are zero open Copilot threads, say so and stop here.
## Step 3 — Triage every finding before touching code
For each open thread, read the referenced file at that line and judge it: **valid** (a real defect) or **not applicable** (already handled, out of scope, or the bot is wrong). Report the full list with a one-line verdict and reason per finding — this is the "tell me if they're valid" step, and it happens before any edit.
Completion: every open thread has a stated verdict, reported to the user.
## Step 4 — Fix, reply, resolve
For each thread, in verdict order:
1. **Valid** — make the fix. Reply on the thread naming what changed:
`gh api repos/OWNER/REPO/pulls/NUMBER/comments/DATABASE_ID/replies -f body="..."`
2. **Not applicable** — reply explaining why, same endpoint, no code change.
3. Resolve the thread either way:
`gh api graphql -f query='mutation($id:ID!){resolveReviewThread(input:{threadId:$id}){thread{isResolved}}}' -f id=THREAD_ID`
Completion: every thread from Step 3 has a reply and is resolved; every valid fix is staged.
## Step 5 — Commit and push
Commit the fixes (skip if none were needed) and push to the PR's branch, so the diff Copilot reviewed actually reflects the fixes.
Completion: working tree clean, branch pushed, PR updated.From craigspaterson/agent-skills, MIT.
More from craigspaterson/agent-skills
- 0.563score
push-to-ado
craigspaterson
Uploads a drafted User Story or Technical Story to Azure DevOps as a work item, populating Title, Description, Acceptance Criteria, Story Points, Priority…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
start-story
craigspaterson
Activates a work item or issue and creates the feature branch in one step.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
create-pr
craigspaterson
Create or update a GitHub pull request using the repo's own .github/pull_request_template.md as the body structure, with a Conventional Commits-style title…
SkillBFreshness: B★ 2Claude Code +9 - 0.507score
terraform-docs-inject
craigspaterson
Generate Terraform docs and inject them into terraform/README.md using terraform-docs markdown table output-mode inject.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
user-story
craigspaterson
Draft Jira-formatted User Stories with Acceptance Criteria.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
technical-story
craigspaterson
Draft Jira-formatted Technical Stories (Infrastructure and Application sub-types) with Acceptance Criteria, for backlog items that describe a system or…
SkillCFreshness: C★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 10, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/craigspaterson/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from craigspaterson
- 0.563score
push-to-ado
craigspaterson
Uploads a drafted User Story or Technical Story to Azure DevOps as a work item, populating Title, Description, Acceptance Criteria, Story Points, Priority…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
start-story
craigspaterson
Activates a work item or issue and creates the feature branch in one step.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
create-pr
craigspaterson
Create or update a GitHub pull request using the repo's own .github/pull_request_template.md as the body structure, with a Conventional Commits-style title…
SkillBFreshness: B★ 2Claude Code +9 - 0.507score
terraform-docs-inject
craigspaterson
Generate Terraform docs and inject them into terraform/README.md using terraform-docs markdown table output-mode inject.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
user-story
craigspaterson
Draft Jira-formatted User Stories with Acceptance Criteria.
SkillCFreshness: C★ 2Claude Code +9 - 0.507score
technical-story
craigspaterson
Draft Jira-formatted Technical Stories (Infrastructure and Application sub-types) with Acceptance Criteria, for backlog items that describe a system or…
SkillCFreshness: C★ 2Claude Code +9
Cite this page
resolve-copilot-review skill. Agent Mart. https://agentmart.dev/skills/craigspaterson-resolve-copilot-review (last updated 2026-10-24)