Agent skill

Iterate

by OpenHands in OpenHands/extensions

Iterate on a GitHub pull request — drive it through CI, code review, and QA until it is merge-ready.

MITAuto-check passedDevelopment

Install Iterate

skills CLI
$ npx skills add OpenHands/extensions --skill iterate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OpenHands/extensions iterate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OpenHands/extensions.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/iterate .claude/skills/iterate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
iterate
GitHub stars
157
Token cost
~3.8k tokens
SKILL.md length
1,759 words
Files
11 (incl. references)
Skills in repo
78
Repo updated
First seen
Licence
MIT

At a glance

Iterate on a GitHub pull request — drive it through CI, code review, and QA until it is merge-ready.

  • Works in 5 steps: Push and ensure PR exists (as draft) → Poll CI checks → Poll PR review (if present) → …
  • Tasks that involve Failing and flaky tests
  • SKILL.md covers Discover what the repo has, The loop, Step 1 — Push and ensure PR… and Step 2 — Poll CI checks, plus 12 more sections
  • Calls gh and git

What it does

Iterate is an agent skill from OpenHands/extensions. Iterate on a GitHub pull request — drive it through CI, code review, and QA until it is merge-ready. Poll verification layers with gh CLI, diagnose and fix CI failures, address review feedback, retry flaky checks, push fixes, and repeat. The agent is the orchestration loop.

Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 15 other files, including reference files (for example `.claude-plugin/plugin.json`, `.codex-plugin/plugin.json` and `.plugin/plugin.json`).

It sits in Development, covering Failing and flaky tests and Pull requests. It works with GitHub. The repository describes itself as: Public registry for OpenHands extensions. The licence is MIT.

When your agent uses it

  • Tasks that involve Failing and flaky tests
  • Tasks that involve Pull requests

Example prompts

  • “/iterate”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Push and ensure PR exists (as draft)
  2. Poll CI checks
  3. Poll PR review (if present)
  4. Poll QA report (if present)
  5. Decide and act

What it can do on your machine

Read from SKILL.md and the folder at commit d008b81. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Iterate loads about 3.8k tokens when it runs, and up to ~5.5k if it reads all its reference files. Until then it costs about 71 tokens; SKILL.md has 1,759 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~71
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from OpenHands/extensions at commit d008b81, republished under its MIT licence (© OpenHands). 1,759 words, ~3,763 tokens.

Download SKILL.mdSave it as .claude/skills/iterate/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
iterate
description
Iterate on a GitHub pull request — drive it through CI, code review, and QA until it is merge-ready. Poll verification layers with `gh` CLI, diagnose and fix CI failures, address review feedback, retry flaky checks, push fixes, and repeat. The agent is the orchestration loop.
triggers
/iterate, /verify, /babysit

/iterate — Drive a PR to Merge-Ready

Iterate on a pull request until it passes all verification layers. You push, poll, fix, and push again — the loop only ends when the PR is green or a blocker requires human help.

No scripts — you are the orchestration loop. Uses only standard gh CLI commands that work on any GitHub repo.

Requires: gh CLI authenticated with repo access, a PR branch. Windows PowerShell equivalents for Bash-only assignment, redirection, and quoting patterns in this skill are in references/windows.md.

Discover what the repo has

Not every repo has all three verification layers. Before entering the loop, check which ones exist. Only poll layers that are actually set up.

bash
gh workflow list --json name --jq '.[].name'
  • CI checks — almost every repo has these. If gh pr checks returns results, CI is present.
  • PR review bot — look for a workflow named like "PR Review" or "pr-review" in the output above, or check for .github/workflows/pr-review*.yml in the repo. If it's not there, the repo doesn't have automated PR review. Skip step 3 entirely.
  • QA bot — look for a workflow named like "QA" or "qa-changes". If it's not there, the repo doesn't have automated QA. Skip step 4 entirely.

A repo might have only CI. Or CI + review. Or all three. Your "all passed" condition is: every present layer is green. Don't block waiting for layers that don't exist.

The loop

  1. Push and ensure a draft PR exists.
  2. Poll each present verification layer.
  3. Decide: all passed? fix needed? wait?
  4. If fix needed — fix, refresh any .pr/ artifacts affected (see below), commit, push, re-request review from bots, go to 2.
  5. If waiting — sleep per polling cadence, go to 2.
  6. If all present layers passed on the current SHA — mark PR ready, done.

IMPORTANT: pushing a fix is NOT the end. After every fix+push you MUST re-request review from the review bot (if present) and go back to step 2. The loop only ends when the verifiers pass on your latest SHA. Addressing feedback and pushing a commit is just one iteration — the bot needs to review the new code too.

Do not stop to ask the user whether to continue polling; continue autonomously until a strict stop condition is met or the user interrupts.

Step 1 — Push and ensure PR exists (as draft)

Create the PR as a draft. This prevents repo automations (merge workflows, artifact cleanup, auto-merge) from triggering while you're still iterating. You mark it ready only after all verification layers pass.

bash
git push origin HEAD
gh pr create --fill --draft 2>/dev/null || true
gh pr view --json number,url,headRefOid,isDraft --jq '"\(.number) \(.url) \(.headRefOid) draft=\(.isDraft)"'

If the PR already exists and is not a draft, convert it:

bash
gh pr ready --undo

Step 2 — Poll CI checks

bash
gh pr checks --json name,state,bucket --jq '
  { passed:  [.[] | select(.bucket=="pass")]  | length,
    failed:  [.[] | select(.bucket=="fail")]  | length,
    pending: [.[] | select(.bucket=="pending")] | length }'
  • Zero failed, zero pending → CI green.
  • Any pending → wait and re-poll.
  • Any failed → diagnose (see "CI failure classification" below).

To inspect a failure:

bash
SHA=$(gh pr view --json headRefOid --jq .headRefOid)
gh run list --commit "$SHA" --status failure --json databaseId,name,conclusion \
  --jq '.[] | "\(.databaseId)\t\(.name)\t\(.conclusion)"'
gh run view <run-id> --log-failed

Step 3 — Poll PR review (if present)

Skip this step if the repo has no review bot.

bash
gh pr view --json reviews --jq '
  [.reviews[] | select(
    .authorAssociation == "OWNER" or
    .authorAssociation == "MEMBER" or
    .authorAssociation == "COLLABORATOR" or
    (.author.login | test("openhands|all-hands-bot"; "i"))
  )] | last | { state: .state, reviewer: .author.login, body: .body[0:300] }'
  • APPROVED → review passed.
  • CHANGES_REQUESTED → read the body and inline comments, fix code.
  • COMMENTED → may have actionable suggestions; read and decide.
  • No matching review yet → bot may still be running; wait and re-poll.

Inline review comments (when changes requested):

bash
gh api "repos/{owner}/{repo}/pulls/{number}/comments" \
  --jq '.[] | select(.user.login | test("openhands|all-hands-bot"; "i"))
        | { path: .path, line: .line, body: .body[0:200] }'

On a fresh iteration, existing pending review feedback should be checked immediately — not only comments that arrive after monitoring starts. Already-open review comments must not be missed.

Step 4 — Poll QA report (if present)

Skip this step if the repo has no QA bot.

QA reports are PR issue comments with a status line like Status: PASS.

bash
gh api "repos/{owner}/{repo}/issues/{number}/comments" --paginate \
  --jq '[.[] | select(
    (.user.login | test("openhands|all-hands-bot"; "i")) and
    (.body | test("Status:\\s*(PASS|FAIL|PARTIAL)"; "i"))
  )] | last | { author: .user.login, body: .body[0:500], url: .html_url }'
  • PASS → QA passed.
  • FAIL → read details, fix code.
  • PARTIAL → some passed, some failed; read details.
  • No QA comment yet → bot may still be running; wait and re-poll.

Step 5 — Decide and act

For each present layer, check its status. If a layer is not present in the repo, treat it as passing.

  • All present layers green on current SHA → done.
  • CI failed → fix code, or rerun if flaky (see below).
  • Review requested changes → read comments, fix, push.
  • QA failed/partial → read report, fix, push.
  • Anything still pending → sleep per polling cadence, re-poll.
  • PR closed/merged → stop.

Priority rule: when both review feedback and flaky CI failures are present, prioritize review feedback first. A new commit will retrigger CI, so avoid rerunning flaky checks on the old SHA when you're about to push a review fix.

After fixing, commit, push, AND re-request review:

bash
git add -A
git commit -m "fix: address <CI failure | review feedback | QA failure>"
git push origin HEAD

# Re-request review from the bot so it reviews the new SHA:
gh pr comment --body "Addressed feedback in $(git rev-parse --short HEAD). Ready for another look."
gh api -X POST "repos/{owner}/{repo}/pulls/{number}/requested_reviewers" \
  -f 'reviewers[]=all-hands-bot'

Then go back to step 2. You are not done until the bot reviews the new SHA and all present layers pass.

CI failure classification

Use gh commands to inspect failed runs before deciding to rerun:

bash
gh run view <run-id> --json jobs,name,workflowName,conclusion,status,url,headSha
gh run view <run-id> --log-failed

Branch-related (fix the code):

  • Compile/lint/typecheck failures in files you touched
  • Deterministic test failures in changed areas
  • Snapshot or static-analysis violations from your changes
  • Build config changes causing deterministic failures

Flaky / unrelated (rerun the jobs):

  • Network/DNS/registry timeouts
  • Runner provisioning or startup failures
  • GitHub Actions infrastructure errors
  • Non-deterministic failures in code you didn't touch
  • Cloud/service rate limits or transient API outages

If classification is ambiguous, perform one manual diagnosis attempt (inspect logs) before choosing rerun.

Rerun: gh run rerun <run-id> --failed

Retry budget: at most 3 reruns per SHA. After that, treat as real.

Read references/heuristics.md for a concise decision tree.

Review comment handling

The review polling in Step 3 surfaces feedback from trusted sources: human reviewers (OWNER/MEMBER/COLLABORATOR) and approved review bots (openhands, all-hands-bot, etc.). Ignore unrelated bot noise.

Review items come from:

  • PR issue comments
  • Inline review comments
  • Review submissions (COMMENT / APPROVED / CHANGES_REQUESTED)

When a comment is actionable and correct:

  1. Fix the code.
  2. Commit with chore: address PR review feedback (#<n>).
  3. Push and continue the loop.
  4. Reply to the review thread referencing the commit SHA.
  5. Resolve the thread.

When a comment is non-actionable, already addressed, or you disagree: reply briefly explaining why, then resolve the thread. Do not leave threads dangling without a response.

If a review thread is already resolved in GitHub, ignore it unless new unresolved follow-up appears.

Replying to and resolving review threads

Every inline review comment creates a thread. After addressing a comment (or deciding it's non-actionable), you must:

  1. Reply to the thread so the reviewer can see how you addressed it:

    bash
    gh api "repos/{owner}/{repo}/pulls/{number}/comments" \
      -F "body=Fixed — <describe what you changed>" \
      -F "in_reply_to=<comment_database_id>"

    Use -F (not -f) for in_reply_to so it is sent as a number.

  2. Resolve the thread via GraphQL:

    bash
    gh api graphql \
      -f query='mutation($id: ID!) {
        resolveReviewThread(input: { threadId: $id }) {
          thread { isResolved }
        }
      }' \
      -f id="<thread_node_id>"

To discover unresolved threads and their IDs:

bash
gh api graphql -f query='
query($owner: String!, $repo: String!, $pr: Int!) {
  repository(owner: $owner, name: $repo) {
    pullRequest(number: $pr) {
      reviewThreads(last: 100) {
        nodes {
          id
          isResolved
          path
          line
          comments(first: 1) {
            nodes { databaseId author { login } body }
          }
        }
      }
    }
  }
}' -f owner="{owner}" -f repo="{repo}" -F pr="{number}" \
  --jq '.data.repository.pullRequest.reviewThreads.nodes[]
        | select(.isResolved == false)'

Rules:

  • Reply to every thread, even nits. A brief "Done" or "Kept as-is because…" is fine.
  • Resolve threads you have addressed. Do not leave resolved-in-code threads showing as unresolved in the GitHub UI.
  • Before marking the PR ready, verify zero unresolved threads remain.
Show full SKILL.md (713 more words)Show less
Requesting re-review

If the PR is green but blocked on review approval and you've addressed all feedback, you can request another look — but only when the user explicitly asks, or after confirming with them (avoid spamming humans):

  1. Leave a brief PR comment summarizing what changed:

    bash
    gh pr comment <pr> --body "Addressed the requested changes in <sha>. Could you take another look?"

    Do NOT tag humans.

  2. Re-request reviewers via the GitHub API:

    bash
    gh api -X POST repos/{owner}/{repo}/pulls/{number}/requested_reviewers \
      -f reviewers[]=<reviewer>

Prefer requesting review only once per new head SHA. If the API returns an error indicating reviewers are already requested, treat it as non-fatal.

Polling cadence

  • CI pending or failing: every 30–60 seconds.
  • CI green, waiting for review/QA: start at 60s, back off exponentially (60s → 2m → 4m → 8m → 16m → 32m), cap at 1 hour.
  • Reset to 60s whenever anything changes (new SHA, check status, review comment, mergeability change).
  • If CI stops being green (new commit, rerun, regression): return to 30–60s.
  • After pushing a fix: re-poll immediately.
  • If any poll shows the PR is merged or closed: stop immediately.

Stop conditions

Stop only when:

  • All present verification layers passed on current SHA and PR is mergeable.
  • PR merged or closed (stop as soon as a poll confirms this).
  • Flaky retry budget exhausted (3 reruns per SHA).
  • Blocked on something requiring human input (infra outage, permissions, ambiguity that cannot be resolved safely).

Not a stop condition:

  • You pushed a fix. That's one iteration — keep going.
  • You addressed review comments. The bot still needs to review new code.
  • CI is green but review bot hasn't re-reviewed yet. Wait.
  • CI is still running/queued.
  • CI is green but mergeability is unknown/pending.
  • CI is green and mergeable, but waiting for possible new review comments per the green-state cadence.
  • PR is green but blocked on review approval (REVIEW_REQUIRED); continue polling and surface new review comments without asking for confirmation.

Keep .pr/ artifacts fresh

By convention, a PR may carry generated artifacts (diagrams, reports, generated docs, fixtures) in a .pr/ folder. These are derived from the code, so they go stale when you push fixes.

After each fix — and before marking the PR ready — check .pr/:

  1. If there's no .pr/ folder or it's empty, skip this entirely.
  2. For each artifact, work out how it was generated (a script, a documented command, a comment in the file, or the PR/commit history).
  3. If you can figure out how — and the code it derives from changed — regenerate it and commit the update, so the artifact matches the latest code.
  4. If you can't tell how it was generated, leave it alone. Don't guess.

The rule is simple: if you know how an artifact was made and the code moved on, keep it up to date; otherwise don't touch it.

When done — mark PR ready

Once all present verification layers pass on the current SHA:

  1. Verify all review threads are resolved (zero unresolved remaining).
  2. Ensure .pr/ artifacts are up to date with the latest code (see above).
  3. Convert the draft PR to ready for review:
bash
gh pr ready

Only do this at the very end, after the loop exits successfully.

Git safety

  • Work only on the PR head branch.
  • No destructive git commands.
  • Do not switch branches unless necessary to recover context.
  • Check for unrelated uncommitted changes before editing. If present, ask user.
  • After every fix, commit and push, then re-poll.
  • A push is not a terminal outcome; continue the monitoring loop.

Commit message defaults:

  • fix: CI failure on PR #<n>
  • chore: address PR review feedback (#<n>)

Output

Provide concise progress updates during monitoring:

  • During long unchanged periods, avoid emitting a full update on every poll; summarize only status changes plus occasional heartbeat updates.
  • Treat push confirmations, intermediate CI snapshots, and review-action updates as progress updates only; do not emit the final summary unless a strict stop condition is met.
  • When CI first transitions to all green for the current SHA, emit a one-time celebratory update. Preferred style: 🚀 CI is all green! 33/33 passed. Still watching for review.

Final summary should include:

  • Final PR SHA
  • CI status summary
  • Mergeability / conflict status
  • Fixes pushed
  • Flaky retry cycles used
  • Review threads resolved (count)
  • Remaining unresolved failures or review comments

References

  • Verification stack (layers, signals, retriggering): references/verification.md
  • CI/review heuristics and decision tree: references/heuristics.md

© OpenHands, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (references) in skills/iterate of OpenHands/extensions.

  • SKILL.md
  • .claude-plugin/plugin.json
  • .codex-plugin/plugin.json
  • .plugin/plugin.json
  • README.md
  • commands/babysit.md
  • commands/iterate.md
  • commands/verify.md
  • references/heuristics.md
  • references/verification.md
  • references/windows.md

Open the folder on GitHubat commit d008b81

Compare with similar skills

Iterate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Iterate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Iterate this skillOpenHands/extensions157—~3.8kAutomated safety check: PassMIT
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
GitHub PR Imagesbikeindex/bike_index308—~1.6kAutomated safety check: PassAGPL-3.0
Exposed Bug Fix WorkflowJetBrains/Exposed9.3k—~3.8kAutomated safety check: PassApache-2.0
Has Review Workopenshift-eng/ai-helpers120—~1.9kAutomated safety check: PassApache-2.0
Gh Address Commentstech-leads-club/agent-skills7k—~353Automated safety check: PassApache-2.0

Similar skills

  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • GitHub PR Images

    bikeindex/bike_index

    Embed a local image file into an existing GitHub PR — either in the PR body or as a comment.

    308 GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Exposed Bug Fix Workflow

    JetBrains/Exposed

    Official

    Takes a GitHub or YouTrack issue for the Exposed project through reproduction, a failing test, a fix, validation and a pull request.

    9.3k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Has Review Work

    openshift-eng/ai-helpers

    Decide whether a GitHub PR has unanswered authorized review comments or new required CI failures worth a follow-up agent.

    120 GitHub stars~1.9k tokensUpdated today
    Testing & QAAuto-check passed
  • Gh Address Comments

    tech-leads-club/agent-skills

    Address review and issue comments on the open GitHub PR for the current branch using gh CLI.

    7k GitHub stars~353 tokensUpdated 17 days ago
    DevelopmentAuto-check passed
  • GitHub Gh CLI

    huangruiteng/CS-Notes

    Inspect GitHub pull requests, issues, workflow runs, and API data with the gh CLI.

    4k GitHub stars~377 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from OpenHands/extensions

All 78 skills in this repo
  • Agent Readiness Report

    OpenHands/extensions

    Evaluate how well a codebase supports autonomous AI-assisted development.

    157 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Discord

    OpenHands/extensions

    Build and automate Discord integrations (bots, webhooks, slash commands, and REST API workflows).

    157 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • GitHub

    OpenHands/extensions

    Interact with GitHub repositories, pull requests, issues, and workflows using the GITHUBTOKEN environment variable and GitHub CLI.

    157 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • GitHub Issue To PR

    OpenHands/extensions

    Create an automation that implements GitHub issues when a configurable trigger label is applied.

    157 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • GitHub Repo Monitor

    OpenHands/extensions

    This skill should be used when the user asks to "monitor a GitHub repository", "watch GitHub for issues or PRs", "respond to @OpenHands mentions on GitHub", "set up an OpenHands GitHub integration"…

    157 GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • GitLab Issue To Mr

    OpenHands/extensions

    Create an automation that implements GitLab issues when a configurable trigger label is applied.

    157 GitHub stars~4.9k tokensUpdated today
    Auto-check passed

Works with

Questions about Iterate

What does Iterate do?

Iterate on a GitHub pull request — drive it through CI, code review, and QA until it is merge-ready. Iterate is an agent skill from OpenHands/extensions. Iterate on a GitHub pull request — drive it through CI, code review, and QA until it is merge-ready.

When should I use Iterate?

Iterate fits situations like: tasks that involve Failing and flaky tests; tasks that involve Pull requests.

How do I install Iterate in Claude Code?

Run `npx skills add OpenHands/extensions --skill iterate -a claude-code`. Or copy the skill folder (skills/iterate in OpenHands/extensions) into .claude/skills/iterate in your project. Claude Code loads it when a task matches its description.

How do I install Iterate in Codex?

Run `npx skills add OpenHands/extensions --skill iterate -a codex`. Or copy the skill folder (skills/iterate in OpenHands/extensions) into .agents/skills/iterate in your project. Codex loads it when a task matches its description.

Can I use Iterate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenHands/extensions --skill iterate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/iterate, .gemini/skills/iterate, .github/skills/iterate and .opencode/skills/iterate in your project.

What does Iterate need to run?

Going by SKILL.md and its folder, Iterate needs the command-line tools its instructions call (gh and git).

Does Iterate access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Iterate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Iterate use?

Iterate is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Iterate use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.7k tokens, read only when the agent opens those files.

What are the alternatives to Iterate?

Skills that share tags, products or a category with Iterate: PR Babysitter (openinterpreter/openinterpreter, 69k stars), GitHub PR Images (bikeindex/bike_index, 308 stars), Exposed Bug Fix Workflow (JetBrains/Exposed, 9.3k stars) and Has Review Work (openshift-eng/ai-helpers, 120 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Iterate?

OpenHands (a GitHub organization) maintains it in OpenHands/extensions, which has 157 GitHub stars. The repository holds 78 skills in this directory. The repository was last updated on October 6, 2026.

Source: OpenHands/extensions on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.