loop-gauntlet

loop-gauntlet is a skill for Claude Code from sideshowroberto/vfx-agent-toolkit. It costs 67 tokens per session (6,538 once invoked), scanned A, original, MIT.

Runs a build-until-it-matches loop in a DCC - an agent rebuilds a scene from reference images, scoring renders against a human-authored rubric until a stop rule fires. Use for 'iterate until it matches', Blender set rebuilds from refs, or writing or judging such a loop prompt.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: reads .claude/ paths; mentions subagents; mentions Claude Code.

Install with agentmods
npx agentmods add skills/sideshowroberto/vfx-agent-toolkit/loop-gauntlet
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add sideshowroberto/vfx-agent-toolkit --skill loop-gauntlet
Clone the repo
git clone --depth 1 https://github.com/sideshowroberto/vfx-agent-toolkit

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for loop-gauntlet

README.md
[![agentmods](https://agentmods.dev/badge/skills/sideshowroberto/vfx-agent-toolkit/loop-gauntlet/github.svg)](https://agentmods.dev/skills/sideshowroberto/vfx-agent-toolkit/loop-gauntlet)
Your own site
<a href="https://agentmods.dev/skills/sideshowroberto/vfx-agent-toolkit/loop-gauntlet"><img src="https://agentmods.dev/badge/skills/sideshowroberto/vfx-agent-toolkit/loop-gauntlet/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for loop-gauntlet

Your own site · 80×15
<a href="https://agentmods.dev/skills/sideshowroberto/vfx-agent-toolkit/loop-gauntlet"><img src="https://agentmods.dev/badge/skills/sideshowroberto/vfx-agent-toolkit/loop-gauntlet.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 67 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,538 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin unknown No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00067 $0.06538
Opus 5.5 $0.00027 $0.02615
Sonnet 5.5 $0.00013 $0.01308
Haiku 4.5 $0.00007 $0.00654

Measured today against content hash 344ff4ba3251, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

loop-gauntlet scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

The scan reads SKILL.md. This mod also ships 8 executable files (scripts/compare_views.py, scripts/gauntlet_prompt.py, scripts/log_iteration.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/vfx-core/skills/loop-gauntlet/SKILL.md · 464 lines

How it starts

The opening of the file, as written. The whole thing — 464 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Loop Gauntlet

Version: 1.6.1 | Created: 2026-09-09 | Last updated: 2026-10-10 | Status: public-safe (no studio paths; the run evidence lives in the workspace session log) Version history: reference/version_history.md.

A gauntlet loop is a builder that keeps going until an authored quality bar says stop. The pattern comes from the "builder plus fresh-eyes critic" idea and from this workspace's fine-tune lane C, whose first lesson is the whole skill in one line: the checks are authored by the human before the loop starts; the builder never invents its own. A builder that writes its own rubric grades itself against whatever it happened to do.

First run (2026-09-09, GPT-6 Astra in Codex driving a live Blender 5.1 through MCP, six matched views of a three-zone museum environment): seven reviewed iterations, 42 loop renders plus six finals, visible progress every iteration, and an honest stop under the stall rule with the target NOT met. The lessons from that run are folded in below and in reference/first_run_lessons.md.

The contract - five things the human authors before the loop

  1. Reference set. Clean plates only: remove people (Magnific edit, see magnific-local-upload), copy to one folder, and SETTLE DISAGREEMENTS between references before the loop. Two refs that disagree on an object count or a hero prop shape cannot both be matched by one scene; the first run lost a view to exactly that. Curate a lead-supplied set by allowlist. A plan drawing or a generated "orthographic" elevation is a MEASURING reference, never a view: a dimension table with one human-stated anchor, bands classified as geometry or projection (reference/contract_authoring.md 1-3).
  2. Matched views. One camera per reference, named CAM_<view>. A tile inside a contact sheet is a view too: give the crop box in the spec so the comparison uses the tile, not the sheet. Lighting feasibility pre-check: for each view, list the key lit surfaces the reference shows and confirm the planned key light can reach them (normal dot light direction), or record in the spec that the view will be scored with that limitation. Two views of the same curved corridor from opposite ends cannot both show a sunlit wall from one sun; catching this before the loop starts (not after several lighting-only iterations) turned out to require moving a camera, not tweaking the light. Trace each lit EVENT (patch, streak, beam, glow) through the real openings: a painted concept can need one light per event. Also check (reference/contract_authoring.md 4-6, 8): a reference whose aspect differs from render_size caps that view (readback flag ref_aspect_mismatch); the human states the up axis and units (scene block); solve a repeated-element hero view before building.
  3. Rubric. Fixed criteria scored 1 to 5 per view, a pass score, and a priority order for fixes (composition > scale > inventory > lighting > materials > detail). Materials are never polished while geometry is wrong. Every element needs an instrument that can fail (Rubric instruments).
  4. Evidence rule. An iteration counts only when every render file has been read back (path, bytes, mtime, pixels) and the comparison image has been LOOKED AT. compare_views.py also flags a suspect-blank render; a blank frame is a valid PNG of plausible size (operating rule 8).
  5. Stop rules. Target met (all views, all criteria >= pass for N consecutive iterations), max iterations, or STALLED. Stalled means neither the global minimum nor the total score improved for K iterations - the dual rule exists because a minimum-only rule froze the first run while four of six views were still improving. min_iterations is the floor below which a stall cannot fire: with composition fixed first, a builder plateaus on structure early, and one round-2 run stalled at iteration 5 before the materials tier had a single iteration of its own. Size max_iterations against the runner's remaining budget: estimate cost per iteration by subject class (roughly 30k tokens for a prop, 75k for an environment), record both numbers, require finals by the halfway iteration, keep a RESUME.md (reference/contract_authoring.md 10).

Read the full file on GitHub · 464 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today First seen · 464 lines · 67 tokens per session scan A 344ff4ba3251

Subscribe to this mod's changes

loop-gauntlet is a skill published in the GitHub repository sideshowroberto/vfx-agent-toolkit (16 stars, last pushed 22d ago), licensed MIT. It adds 67 tokens to every session and 6,538 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-02.

Related

Other skills, from other repositories

comfyui-civitai

A ComfyUI integration for searching, inspecting, and downloading models from CivitAI, a website that hosts community-created AI models and model versions.

IvanYangYangXi/artclaw_bridge · 67 tokens

flux-txt2img

Build Flux txt2img workflows with Flux.1 Dev (SRPO), Flux 2 Klein 9B, Turbo LoRAs, FluxGuidance, and DualCLIPLoader patterns.

artokun/comfyui-mcp · 44 tokens

prompt-engineering

ComfyUI prompt engineering knowledge covering CLIP text encoding syntax, weight modifiers, model-specific prompting strategies, and best practices.

artokun/comfyui-mcp · 28 tokens

civitai

Discover Civitai models with the BUILT-IN downloadmodel action:"searchcivitai" and install/generate them locally. Find a checkpoint/LoRA/embedding on Civitai, download it into ComfyUI, and use its trigger words. Optionally pair the official Civitai MCP for community features (images browsing, posting, collections).

artokun/comfyui-mcp · 76 tokens

scenario-model-training

Use when generated assets must keep a consistent style, character, or product look and references stop scaling, or when a user asks to train a custom model through the Scenario MCP, fine-tune a LoRA, clone a voice, curate a training dataset, choose a base model, set epochs and sample prompts, estimate training cost…

scenario-labs/skills · 105 tokens

scenario-model-comparison

Use when comparing Scenario models on the same brief through MCP: a bake-off with shared prompts and inputs, cost, generation time and quality measured side by side, choosing a default model, testing a new release against the incumbent, or finding which model handles a style, edit, or reference image best. Keywords…

scenario-labs/skills · 88 tokens