Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aio-libs avatar

Aiobotocore Bot

  • 1.4k repo stars
  • Updated August 3, 2026
  • aio-libs/aiobotocore

Skillselion catalog entry

About

aiobotocore-bot: Skills for the aiobotocore CI automation: review-pr, analyze-pr-feedback, check-async-need, check-ov

  • aiobotocore-bot

Aiobotocore Bot by the numbers

  • Data as of Aug 4, 2026 (Skillselion catalog sync)
/plugin marketplace add aio-libs/aiobotocore
/plugin install aiobotocore-bot@aiobotocore

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
repo stars1.4k
Last updatedAugust 3, 2026
Repositoryaio-libs/aiobotocore

What it does

Skillselion catalog entry

README.md

aiobotocore-bot plugin

Skills used by this repo's Claude Code GitHub Actions workflows (.github/workflows/claude.yml, .github/workflows/botocore-sync.yml). The agent invokes them via the Skill tool in agentic contexts; humans can invoke them interactively as /aiobotocore-bot:<name> slash commands.

See docs/ai-workflows.md for the full system design; this README only covers the plugin itself.

Skills

  • /aiobotocore-bot:review-pr [--comment] — sequential PR code review (CLAUDE.md compliance, bugs in the diff, aiobotocore-specific async patterns, port-vs-no-port sanity check for sync-bot PRs). Scores each finding 0–100 and filters < 80. With --comment, posts inline review comments via mcp__github_inline_comment__create_inline_comment.
  • /aiobotocore-bot:analyze-pr-feedback [--focus=<databaseId>] [--resolve] — fetch every review thread + top-level PR comment (including resolved) and synthesize the discussion into three buckets: what was asked, what was done, what's still outstanding. Act on the third bucket using the three-outcome rule (already-fixed, fix-now, ask-clarification).
  • /aiobotocore-bot:check-async-need --from=<ver> --to=<ver> — classify new/changed functions in overridden botocore files as no-port, port-required, or ambiguous. Single source of truth for the port-vs-no-port decision; used by both the sync bot (at classification time) and the reviewer (as a sanity check on sync-bot PRs).
  • /aiobotocore-bot:check-override-drift --pr=<number> — flag unmatched behavioral changes or cosmetic additions in overridden code. Principle: unmatched behavioral changes should be avoided; legitimate async gaps are OK. Used by the reviewer on any PR that touches aiobotocore/*.py files with a botocore mirror.
  • /aiobotocore-bot:open-pr --title=... --mode=generic|sync-no-port|sync-port — re-read pull_request_template.md, fill placeholders, verify checked boxes against the diff, append sync-specific extra sections when mode is sync-no-port/sync-port, create or update the PR.
  • /aiobotocore-bot:update-botocore-bounds --mode=no-port|port --target=<ver>botocore-sync only. Updates the pyproject.toml botocore (and boto3) upper / lower bounds and refreshes uv.lock. Does NOT bump aiobotocore/__init__.py or edit CHANGES.rst — those are owned by draft-release (see below).
  • /aiobotocore-bot:draft-release [--version=X.Y.Z] [--dry-run] — read merged PRs since the last release tag, categorize them, compute the next version, write the CHANGES.rst entry, bump aiobotocore/__init__.py, and open a Release vX.Y.Z PR. Triggered by .github/workflows/draft-release.yml (manual via Actions UI). Merge of the release PR triggers .github/workflows/auto-release-on-merge.yml which creates the tag, drafts a GitHub Release, builds the dist, and publishes to PyPI via the shared reusable-publish.yml workflow.
  • /aiobotocore-bot:port-tests [--from=<ver> --to=<ver>] [--backfill] [--paths=...] — convert botocore tests to aiobotocore-equivalent async form. Two modes: port-PR (given a botocore version range, port new/changed tests into the existing mirrored files) and backfill (port not-yet-ported tests from the specified mirrored files). Validates each file with pytest -x; commits on pass, reverts + advises on fail.
  • /aiobotocore-bot:pyright-delta — create a baseline worktree at origin/main, run pyright there, remove worktree, run pyright with current changes, report only new errors in files the changes touched. Worktree instead of git-stash avoids the failed-stash-pop hazard.
  • /aiobotocore-bot:complete-run --event=... --number=... [--comment-id=...] [--skip-reply] — end-of-run cleanup: post summary reply to the right target (inline thread vs top-level PR comment vs issue comment) and swap 👀→👍.

Evals

Narrow LLM-driven evals for the skills live in evals/. Each one replays the skill against labeled ground truth and asserts the output matches, run N times with majority vote to tolerate non-determinism.

  • evals/check_async_need.py — replays the async-need classifier against historical botocore sync PRs (title tells us the correct verdict).

See evals/README.md for setup and usage.

Design notes

  • Sequential, not parallel. Our review launches steps in the main conversation rather than fanning out to subagents (#1507). The cost per review is lower than parallel-agent alternatives at comparable signal quality.
  • Local-load path only. The marketplace at .claude-plugin/ in the repo root is loaded by claude-code-action via plugin_marketplaces: ./. so PR branches test their own plugin changes.

Using these locally

From the repo root:

claude /plugin marketplace add ./
claude /plugin install aiobotocore-bot@aiobotocore

Or pass directly with --plugin-dir:

claude --plugin-dir ./plugins/aiobotocore-bot

Related skills

Backend & APIsintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.