OCR Review To Approval Loop logo

OCR Review To Approval Loop

Community
spencermarx
OCR Review-to-Approval Loop

Drive a PR to an approved code review by looping OCR's multi-agent review and address steps. Runs /ocr:review then /ocr:address repeatedly until the review verdict is APPROVE, then one final /ocr:address for leftover suggestions, posting every review and every address round to the GitHub PR as comments. Use when the user asks to 'review and address in a loop', 'iterate review until approved', 'auto review-and-fix this PR', 'loop /ocr:review and /ocr:address', or to take a changeset all the way to a clean APPROVE with the default reviewer team. Wraps the /ocr:review (.ocr/commands/review.md) and /ocr:address (.ocr/commands/address.md) skills; needs a feature branch with an open GitHub PR and the gh CLI for posting.

Overview

Publisherspencermarx
Repositoryopen-code-review
Skill nameOCR Review-to-Approval Loop
Stars
380
Forks
36
Bundled files
1
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by spencermarx on GitHub. Read the source before you install it.

Installation

Install the OCR Review To Approval Loop AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/spencermarx/open-code-review/tree/main/.claude/skills/ocr-review-loop
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/spencermarx/open-code-review.git /tmp/open-code-review
mkdir -p .claude/skills
cp -r /tmp/open-code-review/.claude/skills/ocr-review-loop .claude/skills/spencermarx-ocr-review-to-approval-loop
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable OCR Review To Approval Loop in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads OCR Review To Approval Loop on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so OCR Review To Approval Loop is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

OCR Review-to-Approval Loop

What This Skill Does

Orchestrates an autonomous review → address → re-review loop on a pull request, using OCR's existing multi-agent review pipeline, until the review reaches an APPROVE verdict — then runs one final address pass for leftover suggestions. Every review and every address round is posted to the GitHub PR as a comment, producing a transparent, reviewable audit trail.

It is a thin orchestrator over two skills it does not reimplement:

  • /ocr:review → .ocr/commands/review.md (the 8-phase multi-agent review that emits a verdict)
  • /ocr:address → .ocr/commands/address.md (corroborate feedback against code, then implement)

When to Use

  • "Review and address in a loop until it's approved."
  • "Iterate /ocr:review and /ocr:address on this PR."
  • "Auto review-and-fix PR #N to a clean approval."

When NOT to Use (use the underlying skills directly)

  • A single review with no auto-fixing → /ocr:review.
  • Addressing one existing review's feedback → /ocr:address.
  • There is no PR / not on a feature branch (this skill commits and posts).

Prerequisites

  • On a non-default git branch with an open GitHub PR (the loop commits + pushes each round).
  • gh CLI installed and authenticated (for posting; skip with --no-post).
  • OCR set up in the repo (.ocr/ exists, ocr CLI available). Run /ocr:doctor if unsure.
  • A green-ish working tree: any uncommitted changes will become part of what is reviewed.

Arguments

/ocr-review-loop [pr] [--team <spec>] [--max-rounds N] [--no-final-suggestions] [--no-post]
  • pr (optional): PR number. Default: the open PR for the current branch.
  • --team <spec> (optional): reviewer team override (reviewer-id:count,...), forwarded to /ocr:review. Default: the project's default team (ocr team resolve).
  • --max-rounds N (optional): safety cap on review rounds. Default: 5. The loop never runs forever.
  • --no-final-suggestions (optional): stop at APPROVE; skip the final suggestions pass.
  • --no-post (optional): run locally; do not post to GitHub. Present the trail in-chat instead.

The Loop (core algorithm)

Execute this inline, to completion, in the conversation. Do not schedule across turns or background the work. Drive each review's phases 4→7 within one turn (OCR's "don't strand the pipeline" rule). See reference/loop-mechanics.md for the exact CLI/session details and the GitHub comment templates.

0. Preconditions. Resolve the PR and branch; refuse to run on the default branch. Confirm gh (unless --no-post) and OCR setup. Resolve the reviewer team (default unless --team).

1. Review-address loop. Starting at round = 1, while the verdict is not APPROVE and round <= max-rounds:

  1. Review — invoke /ocr:review (default team, or --team). It runs the full pipeline and finalizes rounds/round-{round}/final.md + round-meta.json with a verdict.
  2. Post the review to the PR, headed OCR review — Round {round}. (skip if --no-post)
  3. Gate on the verdict (read it from round-meta.json / final.md):
    • APPROVE → exit the loop (proceed to step 2 below).
    • NEEDS DISCUSSION → STOP the loop. This is a human gate — surface the clarifying questions to the user and await direction. Do not fabricate a fix.
    • REQUEST CHANGES → continue.
  4. Address — invoke /ocr:address on rounds/round-{round}/final.md. Corroborate every item against the actual code; implement the blockers and should-fixes (these clear the gate); decline incorrect feedback with evidence; you MAY defer pure suggestions to the final pass. Verify (typecheck + lint + tests) until green, then commit (atomic, conventional) and push.
  5. Post the address round to the PR: what was addressed, declined (with reasoning), and deferred. (skip if --no-post)
  6. round += 1; loop.

2. Final suggestions pass (only after APPROVE, unless --no-final-suggestions): invoke /ocr:address once more to clear remaining suggestions, verify, commit, push, and post a final address comment that includes a loop-summary table (round → verdict → outcome).

3. Stop conditions. If round exceeds max-rounds without APPROVE, stop and report the outstanding blockers — never loop indefinitely. If APPROVE was reached on round 1, skip the loop body and go straight to the final suggestions pass.


Guardrails (critical — do not skip)

  • Bounded. Honor --max-rounds (default 5). If not approved by then, stop and surface why.
  • NEEDS DISCUSSION is a human gate. Pause and ask; never invent a resolution for genuine ambiguity.
  • Corroborate, don't obey. Per .ocr/commands/address.md: verify each finding against the code; implement valid items; decline wrong feedback with evidence. Don't gold-plate — fix only what the review actually raised.
  • Never push red. Run the project's typecheck + lint + tests before every commit; fix failures before pushing.
  • Branch safety. Refuse to run on the default branch; this skill commits and pushes.
  • Faithful reporting. Report verdicts and outcomes honestly. If a blocker genuinely can't be fixed (needs a product/architecture decision), stop and say so rather than forcing APPROVE.
  • New round, same session. Each iteration is a new OCR review round in the same session (a closed session starts round-{n+1}), reusing discovered-standards.md / context.md.

Reference

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the OCR Review To Approval Loop AI skill do?

Drive a PR to an approved code review by looping OCR's multi-agent review and address steps. Runs /ocr:review then /ocr:address repeatedly until the review verdict is APPROVE, then one final /ocr:address for leftover suggestions, posting every review and every address round to the GitHub PR as comments. Use when the user asks to 'review and address in a loop', 'iterate review until approved', 'auto review-and-fix this PR', 'loop /ocr:review and /ocr:address', or to take a changeset all the way to a clean APPROVE with the default reviewer team. Wraps the /ocr:review (.ocr/commands/review.md)...

Why use OCR Review To Approval Loop on TypingMind?

Because you install it once and use it with any model. OCR Review To Approval Loop is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install OCR Review To Approval Loop in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/spencermarx/open-code-review/tree/main/.claude/skills/ocr-review-loop. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use OCR Review To Approval Loop?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with OCR Review To Approval Loop?

As many as you like. As long as a model supports skills, you can use OCR Review To Approval Loop with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the OCR Review To Approval Loop AI skill free?

Yes. It is published on GitHub by spencermarx under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇