BeClaude

looper

New
111GitHub TrendingGeneralby ksimback

Scaffold a well-designed agent loop with best-practice coaching and a cross-model review council. Use when the user wants to design, build, or set up an agent loop, iterative agent workflow, self-review loop, LLM-as-judge loop, multi-model council, reviewer/judge gate, or /goal-style looping process. Guide goal refinement, typed verification criteria, reviewer and judge selection, privacy boundaries, termination guards, no-progress stops, and lightweight observability, then emit a RUN_IN_SESSION.md handoff prompt plus portable loop.yaml, loop.resolved.json, LOOP.md, and run-loop.py.

First seen 6/19/2026

Summary

Looper scaffolds a well-designed agent loop with best-practice coaching and a cross-model review council.

  • It helps you design, build, and set up iterative agent workflows with goal refinement, typed verification, reviewer/judge roles, privacy boundaries, termination guards, and lightweight observability.

Overview

Looper

Use Looper as a loop design coach and scaffolder. During design, interview, critique, validate, and write files. After emission, offer to run the loop in the current session using RUN_IN_SESSION.md; keep run-loop.py as the advanced external runner.

Workflow

  1. Resolve the target path from the /looper argument. If no target is given,

use ./looper-output. If the target contains an existing loop.yaml, treat the task as an edit/resume instead of a fresh scaffold.

  1. Load the relevant rubric only when entering that stage:

- Goal stage: references/goal-rubric.md. - Verification stage: references/verification-rubric.md. - Council stage: references/council-rubric.md. - Control stage: references/control-rubric.md. - Model detection or privacy details: references/model-detection.md.

  1. Interview in seven stages: goal, verification, host model, council,

gates/control, confirmation flow preview, emit/run option. In the control stage, cover execution boundary, isolation, no-progress signals, state, and run logging.

  1. Critique each stage before accepting it. Prefer concrete alternatives over

vague warnings. Push weak goals toward outcome, scope, context, and done state. Push weak verification toward programmatic checks first, then judge rubrics, then human signoff.

  1. Keep reviewer and judge roles distinct. A reviewer writes notes. A judge

returns a structured verdict. revise_until_clean must name a judge member or human as verdict_source.

  1. Require multiple termination guards: max_iterations, a revision cap on

each gate, a no-progress stop, and either a budget cap or an explicit human stop point.

  1. Before any cross-vendor council member is selected, state what context will

leave the user's machine, which CLI receives it, which redaction globs apply, and that both execution paths require first-send consent.

  1. Show an ASCII flow preview of the planned loop and ask for confirmation

before final emission. Optimize for Claude Code CLI readability.

  1. Emit these files into the target:

- loop.yaml - loop.resolved.json - LOOP.md - RUN_IN_SESSION.md - run-loop.py - loop-workspace/ - README.md

  1. After writing loop.yaml, run:

python3 ${CLAUDE_SKILL_DIR}/scripts/looper.py compile <target>/loop.yaml --out <target>/loop.resolved.json --render <target>/LOOP.md --session-prompt <target>/RUN_IN_SESSION.md If python3 is not available, try python.

  1. Ask whether the user wants to run the loop now in this session. If yes,

follow RUN_IN_SESSION.md directly as the active task. If no, explain that the same file is the easy restart path and run-loop.py is available for advanced external execution.

File Rules

  • Write argv arrays, never shell command strings, for all model and check

invocations.

  • Do not write API keys, access tokens, passwords, or CLI auth material into

loop.yaml, loop.resolved.json, or model registries.

  • Default redaction globs are .env, .env.*, secrets/**, and **/*.key.
  • Keep loop.yaml human-readable and commented where useful. The emitted

runner reads only loop.resolved.json.

  • Keep RUN_IN_SESSION.md as the default/easy execution handoff. It is meant

for the current LLM session or a future pasted prompt.

  • Copy templates/run-loop.py exactly unless the user explicitly asks to edit

the external runner contract.

Helper Scripts

  • Detect model CLIs:

python3 ${CLAUDE_SKILL_DIR}/scripts/looper.py detect-models --write

  • Register a custom CLI:

python3 ${CLAUDE_SKILL_DIR}/scripts/looper.py register-model <id> --invoke <cmd> [args...]

  • Compile and render:

python3 ${CLAUDE_SKILL_DIR}/scripts/looper.py compile <target>/loop.yaml --out <target>/loop.resolved.json --render <target>/LOOP.md --session-prompt <target>/RUN_IN_SESSION.md

  • Render only the in-session handoff:

python3 ${CLAUDE_SKILL_DIR}/scripts/looper.py session-prompt <target>/loop.resolved.json --out <target>/RUN_IN_SESSION.md

Confirmation Flow Preview

Use this shape and customize labels:

text
+--------------------------------+
| 1. Goal + context              |
| read sources                   |
+--------------------------------+
               |
               v
+--------------------------------+
| 2. Draft plan.md               |
| state -> state.json            |
+--------------------------------+
               |
               v
+--------------------------------+
| 3. Plan gate                   |
| verdict: reviewer-1            |
+--------------------------------+
               | needs work -> revise <= 3 -> step 2
               | pass
               v
+--------------------------------+
| 4. Write delivery-N.md         |
| log -> run-log.md              |
+--------------------------------+
               |
               v
+--------------------------------+
| 5. Delivery gate               |
| verdict: reviewer-1            |
+--------------------------------+
               | needs work -> revise <= 3 -> step 4
               | pass
               v
+--------------------------------+
| 6. Final output                |
| all gates clean                |
+--------------------------------+

Stops: pass gates | max 12 iterations | no progress x2 | budget 30m, $5.0

Emit Checklist

  • The goal has a clear outcome, scope boundary, context sources, and done state.
  • Verification criteria are typed as programmatic, judge, or human.
  • At least one criterion is not purely vibe-based unless the user explicitly

accepts that risk.

  • Each revise_until_clean gate has a valid verdict_source.
  • Every external invocation is an argv array with a timeout.
  • Cross-vendor egress is scoped, redacted, and consent-gated.
  • loop_control has iteration, revision, no-progress, and wall-clock or budget

caps.

  • Execution boundary and isolation are explicit, even when the choice is the

current workspace.

  • Observability names a run-log.md and state.json path.
  • loop.resolved.json, LOOP.md, and RUN_IN_SESSION.md compile

successfully before handoff.

Install & Usage

1
Create the skills directory
mkdir -p .claude/skills
2
Download the skill file

Add the configuration to .claude/skills/looper.md

3
Invoke in Claude Code
/looper

Use Cases

Designing an agent loop that iteratively improves code based on test results and linting feedback.
Setting up a multi-model review council where different LLMs critique and judge outputs before finalizing.
Creating a self-review loop for content generation with automated rubric-based verification.
Building a goal-refinement loop that breaks down a high-level objective into sub-tasks with done states.
Implementing a no-progress stop mechanism for an agent that retries tasks with escalating strategies.
Scaffolding a portable agent loop with configuration files and a Python runner for external execution.

Usage Examples

1

/looper design an agent loop that writes unit tests, runs them, and iterates until all pass

2

/looper ./my-project --goal 'Generate a blog post with review by a judge'

3

Set up a multi-model council loop with GPT-4 as reviewer and Claude as judge for code review

View source on GitHub
code-reviewdesignagent

Security Audits

LicenseUnknownSourceWarnRepositoryPass

Frequently Asked Questions

What is looper?

Looper scaffolds a well-designed agent loop with best-practice coaching and a cross-model review council. It helps you design, build, and set up iterative agent workflows with goal refinement, typed verification, reviewer/judge roles, privacy boundaries, termination guards, and lightweight observability.

How to install looper?

To install looper: create the skills directory (mkdir -p .claude/skills), then add the config to .claude/skills/looper.md. Finally, /looper in Claude Code.

What is looper best for?

looper is a other categorized under General. It is designed for: code-review, design, agent. Created by ksimback.

What can I use looper for?

looper is useful for: Designing an agent loop that iteratively improves code based on test results and linting feedback.; Setting up a multi-model review council where different LLMs critique and judge outputs before finalizing.; Creating a self-review loop for content generation with automated rubric-based verification.; Building a goal-refinement loop that breaks down a high-level objective into sub-tasks with done states.; Implementing a no-progress stop mechanism for an agent that retries tasks with escalating strategies.; Scaffolding a portable agent loop with configuration files and a Python runner for external execution..