reviewloop
Skill2 starsChanged 9 months agoMITView on GitHub
Run the autonomous review loop to address PR comments, fix issues, and push changes iteratively until all comments are resolved.
- Commits and pushes
We split this skill into the rules it gives an agent
10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Before starting the review cycle, ensure all changes are committed, pushed, and a PR exists.
- Distinctive: line 21
Verify you are NOT on the default branch.
- Distinctive: line 22
If there are uncommitted changes (staged or unstaged), commit them with a descriptive message.
- Very specific: line 24
Check if a PR exists for the current branch (gh pr view).
- Very specific: line 28
Run .claude/skills/reviewloop/scripts/review-wait.sh to poll for CI completion.
- Very specific: line 37
Run .claude/skills/reviewloop/scripts/review-comments.sh to fetch comments into .reviews/prComments.md
- Very specific: line 48
Run .claude/skills/reviewloop/scripts/review-comments.sh again to verify no unresolved comments remain
- Distinctive: line 49
Run your project's linting and type-checking commands to ensure code quality
- Distinctive: line 50
Commit and push changes
- Very specific: line 56
Exit condition: When .claude/skills/reviewloop/scripts/review-comments.sh shows no comments, provide a summary with:
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Autonomous Review Loop
CRITICAL: Never merge a PR unless the user explicitly asks you to.
This is an automated review loop. Follow these steps:
1. Prepare branch and PR
Before starting the review cycle, ensure all changes are committed, pushed, and a PR exists.
- Verify you are NOT on the default branch. If on the default branch, inform the user and stop.
- If there are uncommitted changes (staged or unstaged), commit them with a descriptive message. Skip if the working directory is clean.
- Push commits to the remote. If no upstream tracking branch exists, push with the
-uflag. Skip if already up-to-date. - Check if a PR exists for the current branch (
gh pr view). If none exists, create one withgh pr create --fill.
2. Wait for CI to complete
Run .claude/skills/reviewloop/scripts/review-wait.sh to poll for CI completion.
- Waits 10s for CI to start (in case called right after push)
- Polls every 15s until CI completes
- Times out after 10 minutes (configurable with
--timeout=SECONDS) - Exits immediately if no CI is in progress, early exits if CI fails.
3. Fetch and address comments
- Run
.claude/skills/reviewloop/scripts/review-comments.shto fetch comments into.reviews/prComments.md - Classify every comment as Address, Dismiss, or Needs user input:
- Dismiss without asking if: factually wrong, misunderstanding, doesn't apply, already handled, or trivial nitpick conflicting with project conventions.
- Needs user input for real decisions: scope questions, design trade-offs, unclear priority. When in doubt, ask.
- ASK BACK the user for decisions if needed before implementing fixes. Also present all "Needs user input" comments batched to the user at this point.
- Address valid issues
- For inline threads: resolve via the
gh api graphqlmutation shown in the file (whether addressed or rejected) - For general review comments: react with thumbs-up via the mutation shown in the file to mark as processed (even if no action was needed)
4. Verify and commit
- Run
.claude/skills/reviewloop/scripts/review-comments.shagain to verify no unresolved comments remain - Run your project's linting and type-checking commands to ensure code quality
- Commit and push changes
5. Loop
Go back to step 2 - wait for the next review triggered by the push.
Exit condition: When .claude/skills/reviewloop/scripts/review-comments.sh shows no comments, provide a summary with:
- PR link: The full clickable URL of the PR (from step 1 or via
gh pr view --json url -q '.url') - Overall PR summary: A brief high-level summary of what the PR accomplishes overall
- Review loop changes: A summary of what was specifically changed during the review loop to address reviewer comments. If no changes were made during the review loop, state that no changes were needed.
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- ankitvgupta/exo★ 496same name
- ankitvgupta/mail-app★ 496same name
- mrdulasolutions/AOS-Mail★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- CLAUDE.mdCLAUDE.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

