reply-comments — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited reply-comments (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reply to PR review comments after addressing the feedback. Use this after /review-comments to close the feedback loop.
/reply-comments
/reply-comments 123 # Specific PR numberIf no PR number provided, get it from the current branch:
~/.claude/skills/reply-comments/scripts/gh-pr-current-info.shIf the script is unavailable, fall back to:
gh pr view --json number,url,title,headRepositoryOwner,headRepository \
--jq '{number, url, title, owner: .headRepositoryOwner.login, repo: .headRepository.name}'Get all review comments with their thread/resolution status:
~/.claude/skills/reply-comments/scripts/gh-pr-comments.sh {owner} {repo} {pr_number}If the script is unavailable, fall back to:
gh api "repos/{owner}/{repo}/pulls/{pr_number}/comments" \
--jq '.[] | {id, path, line, body, user: .user.login, in_reply_to_id, created_at}'Check what was recently committed to understand which comments were addressed:
# Get recent commit messages and changed files
git log --oneline -10
git diff HEAD~1 --name-onlyFor each review comment, determine if it was addressed by:
Use different tones based on the reviewer:
AI Bots (amazon-q-developer[bot], copilot[bot], github-actions[bot], etc.):
const."Human Reviewers (anyone without [bot] suffix):
For comments NOT addressed (intentionally skipped):
Reply to each comment:
~/.claude/skills/reply-comments/scripts/gh-pr-reply-comment.sh {owner} {repo} {pr_number} {comment_id} "{reply_text}"If the script is unavailable, fall back to:
gh api "repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies" \
-f body="{reply_text}"First, get the thread IDs:
~/.claude/skills/reply-comments/scripts/gh-pr-review-threads.sh {owner} {repo} {pr_number}If the script is unavailable, fall back to:
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
comments(first: 1) { nodes { databaseId body } }
}
}
}
}
}
' -f owner="{owner}" -f repo="{repo}" -F pr={pr_number}Then resolve each thread that was addressed:
~/.claude/skills/reply-comments/scripts/gh-pr-resolve-thread.sh {thread_id}If the script is unavailable, fall back to:
gh api graphql -f query='
mutation($threadId: ID!) {
resolveReviewThread(input: {threadId: $threadId}) {
thread { isResolved }
}
}
' -f threadId="{thread_id}"Report what was done:
Replied to 6 comments:
- amazon-q-developer[bot]: 3 (all resolved)
- @username: 2 (2 resolved, 1 kept as-is)
- copilot[bot]: 1 (resolved)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.