review-fix-loop
Skill1 starsChanged 24 days agoApache-2.0View on GitHub
Review and fix local changes with Codex and Claude reviewers until clean, capped, or judged complete. Use before every pull request, for complex or risky changes before handoff, or when the user asks for a review-fix loop or local review.
10 other projects use a version of this.
Adopted by
Most recently taken up by
- atomgunlk/skillstheir own version, first seen Nov 8, 2026
- Data-Wise/rforgetheir own version, first seen Nov 1, 2026
- sreejithraman/SreeStacktheir own version, first seen Oct 27, 2026
- letern1ty/claude-skillstheir own version, first seen Oct 25, 2026
- amrtawfik160/bb-orchestration-skillstheir own version, first seen Oct 13, 2026
- loganware05/captains-compass-cursortheir own version, first seen Oct 12, 2026
Other versions10 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 10
- spacedriveapp/spacebot★ 2.4ksame name
- Data-Wise/rforge★ 2same name
- loganware05/captains-compass-cursor★ 2same name
- miketromba/skills★ 2same name
- ViaxCo/skills★ 2same name
- amrtawfik160/bb-orchestration-skills★ 1same name
- sreejithraman/SreeStack★ 1same name
- atomgunlk/skills★ 0same name
- doublepi123/skills★ 0same name
- letern1ty/claude-skills★ 0same 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 repository25 other files it gives its agents.
- AGENTS.mdAGENTS.md
- add-testSkill
- audit-fixissuesSkill
- autoresearchSkill
- benchmark-optimizeSkill
- circleci-job-resultsSkill
- citation-verifierSkill
- cli-designSkill
- codebase-auditSkill
- code-cleanupSkill
- deep-code-cleanupSkill
- doc-updateSkill
- emendSkill
- fix-issueSkill
- git-github-workflowSkill
- goal-modeSkill
- inspect-datasetSkill
- manage-pr-lifecycleSkill
- medcognetics-brandSkill
- notify-wakeSkill
- repo-maintenanceSkill
- standardize-ciSkill
- token-file-authSkill
- whats-nextSkill
- yeetSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 9 are distinctive, and 11 are very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use isolated, read-only reviewers from two model families, Codex and Claude, to inspect a pinned Git scope.
- Very specific: line 14
Before you create a pull request, run this loop on the branch changes.
- Distinctive: line 15
Before you push material changes to an open pull request, run the loop again on judgment.
- Very specific: line 20
Call get_goal before inspecting the repository.
- Distinctive: line 23
When a goal is already active, retain it and run the loop under that goal.
- Very specific: line 24
If goal tools are unavailable, report that Goal Mode is inactive.
- Very specific: line 25
Stop before repository inspection and identify the equivalent Goal Mode control or /goal action.
- Very specific: line 26
If create_goal reports that an unfinished goal already exists, call get_goal again and retain that goal.
- Very specific: line 53
When the cap stops a round with findings and more rounds have material value, raise the cap with the extend command.
- Very specific: line 54
When the user supplies max-iterations or an exact round count, pass that value with --cap-source user.
- Distinctive: line 73
Run this command once per logical review iteration:
- Very specific: line 85
Do not replace the Codex reviewer with codex exec review while that command starts a review request without forwarding --output-schema.
- Distinctive: line 119
Run focused formatting, linting, type checking, and tests for the changed area.
- Distinctive: line 121
After addressing the round, run another review round, or stop early as described below.
- Very specific: line 126
When a round returns clean, verify the repository's required gates for that state.
- Very specific: line 131
If this workflow created the goal and no required work remains, call update_goal with status=complete.
- Distinctive: line 137
only P2 or P3 findings about style or preference remain.
- Very specific: line 152
Use status=blocked only after the same blocker recurs for at least three consecutive goal turns.
- Distinctive: line 155
Do not stage, commit, push, publish, or fetch while using this skill.
- Distinctive: line 162
When the loop stops with open findings, post one top-level comment on the pull request.
“Common” is measured: kept by at least 6 in 10 of the 8 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
Review Fix Loop
Use isolated, read-only reviewers from two model families, Codex and Claude, to inspect a pinned Git scope. Verify and fix each valid finding in the main task, then ask new reviewers to inspect the updated scope.
Decide When to Invoke
This skill is the required review for every pull request. Do not use a GitHub @codex review trigger in its place. Request a GitHub Codex review only when the user explicitly asks for it.
- Before you create a pull request, run this loop on the branch changes. Pass
scope=sessionand setbase=<ref>to the pull request target branch, so that the review includes committed and uncommitted changes. Complete at least one round, also for small or documentation-only changes. - Before you push material changes to an open pull request, run the loop again on judgment. Behavior, interface, security, schema, or substantial patch changes qualify. Target-only merges, formatting, and narrow finding fixes do not.
- Without a pull request, invoke the loop when the user asks for it, or before handoff when the change has sufficient complexity or risk. For example: concurrency, trust boundaries, data integrity, I/O error paths, nontrivial numerics, large refactors, or released or medical device software.
Enter Goal Mode
Call get_goal before inspecting the repository. Track whether this workflow creates the goal.
- When no goal is active, call
create_goalbefore initializing the loop. Build the objective from the requestedscope, optionalbase, and any user-fixedmax-iterationsvalue. Without a user-fixed cap, state that you select the cap after goal creation and can raise it. Require a clean review, or a justified early stop, with unchanged passing repository gates, preserve unrelated changes, and include the configured stop conditions. Forscope=auto, describe the runner-selected pinned scope rather than inspecting Git before creating the goal. - When a goal is already active, retain it and run the loop under that goal. Do not replace an existing goal.
- If goal tools are unavailable, report that Goal Mode is inactive.
Stop before repository inspection and identify the equivalent Goal Mode control or
/goalaction. - If
create_goalreports that an unfinished goal already exists, callget_goalagain and retain that goal. Stop on other goal configuration failures.
Goal activation does not expand the current sandbox, approval policy, or repository permissions. Do not set a goal token budget unless the user explicitly supplied one.
Parse Inputs
Accept these user-facing inputs:
scope=auto: Default. Selectuncommittedwhen staged, unstaged, or untracked changes exist at loop initialization. Otherwise selectsession.scope=uncommitted: Review only staged, unstaged, and untracked changes. A clean working tree completes without falling back to session scope.scope=session: Review the current branch relative to a base. Also review current uncommitted changes when the working tree is dirty.base=<ref>: Override session base selection. It has no effect on uncommitted scope.max-iterations=<N>: A user-fixed positive integer cap. Without this input, you select the cap. See Select the Review Depth.reviewers=both: Default. Use the Codex and Claude reviewers.reviewers=codexuses only the same-family reviewer.codex-model=<model>andclaude-model=<model>: Override a reviewer model for this loop.
Initialize once. The runner pins the selected scope for the rest of the loop. Do not switch scope after fixes change working-tree state.
For session scope, the runner resolves the first existing ref in this order without fetching: origin/main, origin/master, main, master. It records that ref and the merge-base SHA. If none exists, stop and request base=<ref>.
Session scope approximates the current Codex task with all branch changes since the merge base. It can include changes that existed before this task began.
Select the Review Depth
You decide how many rounds to run. Do not ask the user for a round count or for permission to continue. The minimum is one completed round.
- Select the initial cap from the size and risk of the change. Use
2for a small, low-risk change,3to5for typical changes, and more for high-risk or released device software. - When the cap stops a round with findings and more rounds have material value, raise the cap with the
extendcommand. Stop when you judge that more rounds have no material value. See Stop Early on Judgment. - When the user supplies
max-iterationsor an exact round count, pass that value with--cap-source user. Do not extend a user-fixed cap. Apply other user review instructions, such as a focus area, without fixing the cap.
Initialize the Loop
Set SKILL_DIR to this skill's directory. Run:
uv run --no-project python "$SKILL_DIR/scripts/run_review.py" init \
--repo "$PWD" \
--host codex \
--scope auto \
--max-iterations <N> \
--cap-source agent--host codex identifies the same-family reviewer. Set <N> to the cap that you selected, or to the user's value with --cap-source user. For a pull request review, pass --scope session and set --base to the verified pull request target branch. Otherwise pass --base <ref> only when the user supplied it. Pass --reviewers <value>, --codex-model <model>, or --claude-model <model> only when the user supplied that value. Read the returned JSON and retain state_file, cap_source, selected_scope, base_ref, merge_base, active_reviewers, and fallback. The state and reviewer artifacts are private temporary files unless --state-root is supplied for testing.
Run One Review Round
Run this command once per logical review iteration:
uv run --no-project python "$SKILL_DIR/scripts/run_review.py" review \
--state-file <state_file>The runner runs every active reviewer concurrently. Each reviewer is ephemeral, read-only, and bound to the schema in references/review-result.schema.json. All reviewers get the same scope-specific prompt.
- Codex:
codex execwith the model from the user's Codex configuration, unlesscodex-modeloverrides it, and high reasoning effort. It uses a read-only sandbox, no approvals, JSON events, and--output-schema. - Claude: headless
claude -pwith modelopus, unlessclaude-modeloverrides it, and high effort. It has only read-only tools (Read,Grep,Glob, and read-onlygitcommands),dontAskpermissions, no session persistence, and--json-schema.
Do not replace the Codex reviewer with codex exec review while that command starts a review request without forwarding --output-schema. Native review targets and positional prompts are also mutually exclusive.
For session scope, every round includes the base review. A dirty working tree adds an uncommitted review. Each active reviewer runs each target. The runner merges all passes, deduplicates by normalized file path, line range, and title, and records sources such as codex:base and claude:uncommitted. Each finding's reviewers field lists every family that reported it or an overlapping range in the same file. Agreement between families can help you set the order of work. It does not replace verification.
To raise an agent-selected cap, run:
uv run --no-project python "$SKILL_DIR/scripts/run_review.py" extend \
--state-file <state_file> \
--max-iterations <M><M> must be greater than the current cap. The runner refuses to extend a user-fixed cap.
Fall Back to the Same Family
The loop continues with the Codex reviewer when the Claude reviewer is not available:
- At initialization, a missing
claudeCLI removes the Claude reviewer. - During a round, a Claude reviewer failure removes the Claude reviewer for the rest of the loop. This includes authentication, unavailable-model, configuration, and malformed-output failures, and a second transient failure. The round still counts when all Codex passes return valid output.
- A Codex reviewer failure stops the loop, and the round does not count.
The runner records each removal in fallback with the round and the reason. It never substitutes a different model in the same family. Report a loop with a non-empty fallback as a single-family review from that point. Do not call it a cross-family review.
A nested reviewer CLI needs network access and write access to its configuration directory. If a reviewer fails because the sandbox blocks that access, request escalation for the runner command first. Use the fallback only when escalation is unavailable or denied. Do not weaken the reviewer's read-only controls.
Verify and Fix Findings
For each returned finding:
- Inspect the cited code and relevant diff. Confirm the behavior independently instead of treating reviewer output as authoritative.
- Reject false positives with a concrete reason. Do not edit code only to silence a finding.
- For a confirmed bug, add and run the smallest regression test that reproduces it. Verify the test fails before changing production code when a practical automated test exists.
- Implement the smallest safe fix. Preserve unrelated user changes.
- Run focused formatting, linting, type checking, and tests for the changed area.
After addressing the round, run another review round, or stop early as described below. Ask only when a necessary API, dependency, or behavior change exceeds the scope already authorized.
Confirm a Clean Result
When a round returns clean, verify the repository's required gates for that state.
Reuse passing results when no relevant input has changed. Prefer project-defined Make targets.
Any edit after the clean review, including an edit made by a formatter or validation fix, invalidates that result. Run another review round before declaring the scope clean. If no edit occurs and all required checks pass, the goal is complete.
If this workflow created the goal and no required work remains, call update_goal with status=complete. When the workflow reused a broader existing goal, leave it active unless that complete objective is also achieved. Never mark an unfinished goal complete merely to exit the loop.
Stop Early on Judgment
You can stop before a clean round when the remaining findings show diminishing returns, for example:
- only P2 or P3 findings about style or preference remain.
- reviewers raise findings again that you rejected with a concrete reason.
- the findings ask for scope or behavior changes outside the task.
Do not stop early while a verified P0 or P1 finding is still open. An early stop is not a clean review. Run the repository gates, then report stopped_early with the reason and every open finding with its disposition. A justified early stop with passing gates completes a goal that this workflow created.
Handle Stops and Failures
findings: Fix verified findings in the main task, validate them, and continue.clean: Run the full project gates. Review again after any subsequent edit.limit_reached: For an agent-selected cap, extend the cap and continue, or stop. For a user-fixed cap, stop. Do not make another fix that cannot receive a confirming review.- Reviewer failure: The runner retries one clearly transient process failure without consuming an iteration. A Claude failure after that falls back to the Codex reviewer. A Codex failure stops the loop.
- Codex configuration, authentication, unavailable-model, and malformed-output failures: Stop on the first failure. Do not change models or weaken the read-only controls.
An iteration limit or first failure does not establish a terminal goal state.
Use status=blocked only after the same blocker recurs for at least three consecutive goal turns.
Meaningful progress must require user input or an external state change. Otherwise leave the goal active.
Do not stage, commit, push, publish, or fetch while using this skill. Repository edits needed to fix verified findings are allowed in the main task.
Record the Review on the Pull Request
This skill does not write to GitHub. The workflow that creates or updates the pull request uses the result of this skill:
- Write the number of completed rounds, the active reviewers, any fallback, the final state (
clean,stopped_early, orlimit_reached), and the reviewed head SHA in the## Reviewsection of the pull request body. When the loop reviewed uncommitted changes, use the SHA of the commit that contains them. Count the rounds of all loops for the pull request. - When the loop stops with open findings, post one top-level comment on the pull request. For each open finding, give the priority, the file and line range, the title, and the disposition: deferred, rejected with a reason, or out of scope.
Report the Result
At handoff, report:
- selected scope.
- selected base ref and merge-base SHA for session scope.
- active reviewers and each
fallbackentry with its reason. - completed logical iterations, the cap, and the cap source.
- whether the workflow created or reused the goal and its final state.
- whether a clean review was confirmed, or the reason for an early stop.
- last findings or their verified dispositions.
- focused and full validation commands with pass, fail, or not-run state.
- any blocker that needs user direction.
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.

