From aiobotocore-bot
Posts summary reply to event-specific GitHub target (inline thread or top-level PR/issue comment) and swaps claude[bot]'s ๐ reaction to ๐ at aiobotocore-bot workflow end.
npx claudepluginhub aio-libs/aiobotocore --plugin aiobotocore-botThis skill is limited to using the following tools:
End-of-run cleanup: posts the summary reply to the correct target based on the triggering event,
Posts replies to unreplied GitHub PR review comments after feedback evaluation and fixes. Filters root comments, deduplicates, resolves threads by default.
Fetches GitHub PR review threads and top-level comments including resolved ones, synthesizes into asked/done/outstanding buckets, generates per-thread action plans with grouped commits. Supports --focus and --resolve flags.
Fetches unresolved GitHub PR comments and threads, analyzes reviewer feedback, implements fixes, builds/tests, commits/pushes changes, replies to comments, and resolves threads.
Share bugs, ideas, or general feedback.
End-of-run cleanup: posts the summary reply to the correct target based on the triggering event,
then swaps the ๐ reaction you added at run start for a ๐ to signal completion. Use instead of
hand-rolling the two gh api blocks โ the event-vs-comment-vs-PR target logic is easy to get wrong.
--event=<event_name> (required): $EVENT_NAME from the workflow, one of pull_request,
pull_request_review, pull_request_review_comment, issue_comment, issues.--number=<n> (required): $NUMBER โ PR or issue number.--comment-id=<id> (optional): $COMMENT_ID โ required for comment-triggered events.--summary=<body> (optional, required unless --skip-reply): summary text to post.--skip-reply (optional): reaction swap only. Use from pull_request flows where
the review-pr skill already posted its own review comment.--repo=<owner/repo> (optional): defaults to $REPO.Skip if --skip-reply is set. Pick the target by event:
pull_request_review_comment: reply in the same inline thread so the discussion stays
attached to the code:
gh api repos/$REPO/pulls/$NUMBER/comments/$COMMENT_ID/replies \
--method POST -f body='<summary>'
pull_request_review or issue_comment (on a PR): post as a top-level PR comment via the
issues endpoint (works for PR conversation too):
gh api repos/$REPO/issues/$NUMBER/comments \
--method POST -f body='<summary>'
issues: top-level issue comment via the same endpoint as above.
Delete the ๐ (eyes) reaction and add ๐ (+1). Target depends on whether --comment-id is set:
The jq filter scopes the deletion to the bot's own reaction so a human coincidentally reacting with ๐ doesn't lose their reaction when the run completes.
Comment events (--comment-id set):
gh api repos/$REPO/issues/comments/$COMMENT_ID/reactions \
--jq '.[] | select(.content == "eyes" and .user.login == "claude[bot]") | .id' \
| xargs -I{} gh api repos/$REPO/issues/comments/$COMMENT_ID/reactions/{} --method DELETE
gh api repos/$REPO/issues/comments/$COMMENT_ID/reactions \
--method POST -f content=+1
PR events (no --comment-id):
gh api repos/$REPO/issues/$NUMBER/reactions \
--jq '.[] | select(.content == "eyes" and .user.login == "claude[bot]") | .id' \
| xargs -I{} gh api repos/$REPO/issues/$NUMBER/reactions/{} --method DELETE
gh api repos/$REPO/issues/$NUMBER/reactions \
--method POST -f content=+1
GitHub's reactions API does not support a literal checkmark, so +1 is used as the "done" marker.
If the ๐ reaction isn't found (workflow failed to add it, or a prior run already swapped), post the ๐ anyway and proceed โ missing the delete is not an error worth blocking on.