misc-configs/claude/skills/custom-unresolved-pr-comments-summarize/SKILL.md
--- disable-model-invocation: true allowed-tools: Write, Bash(gh:*) --- # Fetch and summarize this PR's UNRESOLVED comments ## Context - OWNER: !`gh repo view --json owner -q .owner.login` - REPO: !`gh repo view --json name -q .name` - PR_NUMBER: !`gh pr view --json number -q .number` ## Your task ### Step 1: Fetch unresolved inline review threads Use this GraphQL query (substitute OWNER, REPO, PR_NUMBER from context above): ```bash gh api graphql -f query=' query($owner: String!, $repo:
npx skillsauth add mauroporras/dotfiles misc-configs/claude/skills/custom-unresolved-pr-comments-summarizeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
gh repo view --json owner -q .owner.logingh repo view --json name -q .namegh pr view --json number -q .numberUse this GraphQL query (substitute OWNER, REPO, PR_NUMBER from context above):
gh api graphql -f query='
query($owner: String!, $repo: String!, $pr: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $pr) {
url
title
reviewThreads(first: 100) {
nodes {
id
isResolved
comments(first: 10) {
nodes {
author { login }
body
path
line
}
}
}
}
}
}
}' -f owner="OWNER" -f repo="REPO" -F pr=PR_NUMBER
ALWAYS:
isResolved: falseTop-level review comments (the body of a review, not attached to a specific file line) are not captured by reviewThreads.
Fetch them separately:
gh api graphql -f query='
query($owner: String!, $repo: String!, $pr: Int!) {
repository(owner: $owner, name: $repo) {
pullRequest(number: $pr) {
reviews(first: 100, states: [CHANGES_REQUESTED]) {
nodes {
author { login }
body
url
state
submittedAt
}
}
}
}
}' -f owner="OWNER" -f repo="REPO" -F pr=PR_NUMBER
ALWAYS:
Include reviews that have a non-empty body (skip reviews where the body is blank or only whitespace). These represent top-level change requests that aren't tied to a specific file/line.
Create a file named pr-{pr-number}-comments.md in the current directory, like this:
# PR #{pr-number} Review Comments
Title: {pr-title}
URL: {pr-url}
## Files
### {path/to/file.ext}
#### #{unique-descriptive-tag}
- [ ] Done
Line: {path/to/file.ext:line}
Author: @{the-author}
Thread ID: {thread-id}
_Comment:_
{comment}
## Contentious Comments
{Highlight any comments that you'd push back on}
ALWAYS:
tools
--- disable-model-invocation: true allowed-tools: Read, Bash(git --no-pager log:*), Bash(git --no-pager diff:*) --- # Get familiar with the current branch's changes ## Context - Commits on this branch: !`git --no-pager log origin/HEAD..HEAD --oneline` - List of changed files: !`git --no-pager diff origin/HEAD...HEAD --stat` - Full diff: !`git --no-pager diff origin/HEAD...HEAD` ## Your task Analyze the changes purely based on the code (do not check the branch name, linked GitHub issues, PR
tools
--- disable-model-invocation: true context: fork argument-hint: [push] [issue-number] allowed-tools: Bash(git --no-pager diff:*), Bash(git rev-parse:*), Bash(git remote get-url:*), Bash(git commit:*), Bash(git push:*) model: haiku --- # Commit STAGED changes, optionally push ## Context - Current staged changes only: !`git --no-pager diff --staged` - Current branch: !`git rev-parse --abbrev-ref HEAD` - Remote URL: !`git remote get-url origin` - Arguments (issue number and/or `push`, empty if n
tools
--- disable-model-invocation: true allowed-tools: Read, Bash(git --no-pager diff:*) model: haiku --- # Summarize STAGED changes ## Context - Current staged changes only: !`git --no-pager diff --staged` ## Your task Summarize the changes purely based on the code (do not check the branch name, linked GitHub issues, PR descriptions, or any other contextual clues). REQUIRED: - Prioritize brevity over grammar: Keep messages short, even if grammatically imperfect NEVER: - Run additional Git
tools
--- disable-model-invocation: true context: fork allowed-tools: Bash(git checkout:*), Bash(git --no-pager diff:*) model: haiku --- # New branch for STAGED changes ## Context - Current Git diff (staged changes only): !`git --no-pager diff --staged` ## Your task Based on the above STAGED changes, create a new branch with a descriptive name. ALWAYS: - Prioritize brevity over grammar: Keep the branch name short, even if grammatically imperfect - Name the branch `<type>/<short-kebab-descript