Post inline comments on GitHub PRs and respond to review feedback via gh api
83
75%
Does it follow best practices?
Impact
96%
1.29xAverage score across 3 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./dot_config/opencode/skill/gh-pr-inline/SKILL.mdgh pr reviewgh pr review doesn't support inline comments on specific lines. Use gh api instead.
Use --input - with heredoc JSON (not -f 'comments=[...]' which gets stringified):
gh api repos/{owner}/{repo}/pulls/{pr_number}/reviews \
--method POST \
--input - << 'EOF'
{
"event": "REQUEST_CHANGES",
"comments": [
{"path":"file.rb","line":10,"body":"Comment text"},
{"path":"other.rb","line":25,"body":"Another comment"}
]
}
EOFCOMMENT - Neutral feedbackAPPROVE - Approve the PRREQUEST_CHANGES - Block merge until addressedFor comments spanning lines, add start_line:
{"path":"file.rb","start_line":5,"line":10,"body":"This block..."}When addressing reviewer comments after making fixes, don't reply to every comment. Use this workflow:
Fetch all threads with their resolution status and comment IDs:
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:5) {
nodes { id body author { login } }
}
}
}
}
}
}' -f owner=OWNER -f repo=REPO -F pr=NUMBERUse the thread's GraphQL id (starts with PRRT_):
gh api graphql -f query='
mutation($id:ID!) {
resolveReviewThread(input:{threadId:$id}) {
thread { isResolved }
}
}' -f id=PRRT_kwDOxxxxxxxUse the REST API with the top comment's numeric ID from the thread:
gh api repos/{owner}/{repo}/pulls/{pr_number}/comments/{comment_id}/replies \
--method POST \
-f body="Intentionally left as-is because..."gh api repos/{owner}/{repo}/pulls/comments/{id} --method DELETEbody field to skip summary commentpath, line, body03cec9d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.