Fixed-view visual benchmark

SkillMedia

Use when a visual needs repeatable fixed-view rendering and independent rubric scoring. Not for free-form visual review or subjective critique.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Fixed-view visual benchmark skill

What this skill tells your AI

The instructions your AI receives, as published by outlinedriven/odin-claude-plugin in plugins/odin-design/skills/fixed-view-visual-benchmark/SKILL.md and read by ahel’s review.

Contract

FieldBound contract
TriggerA visual needs repeatable fixed-view rendering and independent rubric scoring.
AuthorityHuman-gated: asks for capture consent before rendering; otherwise reversible local: writes only named local artifacts; rollback is undo. No remote mutation.
Side effectFixed-view visual benchmark: renders and scores the fixed view against the frozen rubric.
DoneThe saved render clears the frozen rubric threshold.
StopStalled; render blocked; budget exhausted. Bound: fixed view rig, rubric threshold, render budget.

Inputs

  • Fixed view rig (required): camera position and orientation, scene definition, render settings (resolution, samples, lighting, post-processing). All parameters that affect the rendered output must be named and frozen.
  • Frozen rubric threshold (required): the minimum aggregate score that defines a passing render, plus the rubric dimensions and their weights.
  • Render budget (required): the maximum render attempts or time allowed, declared before work begins.

Procedure

  1. Bind the fixed view rig, rubric threshold, and render budget. Freeze all three before any mutation. Done when: the rig, threshold, and budget are named and frozen.
  2. Capture consent. Ask for and record explicit human consent before rendering. Done when: consent is recorded.
  3. Render the fixed view through a specified rendering interface with reproducibility controls. The interface must accept the frozen rig parameters and produce a deterministic output: same camera, same scene, same settings, same result. Record the interface name, version, and the exact parameter set used. If the interface is non-deterministic (stochastic sampling, temporal effects), declare the seed or averaging strategy that makes repeated renders comparable. Done when: a render is produced from the frozen rig with the interface and parameters recorded.
  4. Score the render against the frozen rubric independently. The rubric defines scoring dimensions (for example: composition, lighting accuracy, material fidelity, geometric correctness), each with a weight summing to 1.0 and a 0–10 scale per dimension. The aggregate score is the weighted sum. Score each dimension against the rubric criteria, not against the previous render. Record per-dimension scores, the aggregate, and the threshold. Done when: the rubric score is recorded with per-dimension breakdown.
  5. Stop at success (aggregate score clears the threshold), any non-success terminal, or the bound. Done when: a terminal class is reached and named.
  6. Persist the run record to .outline/loops/fixed-view-visual-benchmark/<run_id>/ when durable. Emit receipt.json before return. Done when: the receipt is written with the saved render path, per-dimension scores, aggregate, threshold, and terminal class.

Failure and recovery

  • Stagnation: repeated renders do not improve the score. Terminal stalled; report the score plateau and the renders attempted.
  • Render blocked: the rig cannot produce a render through the specified interface. Terminal blocked; report the blocking condition.
  • Budget exhausted: the render budget is spent before the threshold is cleared. Terminal capped; report the best score achieved. Budget exhaustion is never success unless it is the predeclared success predicate.
  • Non-deterministic output without declared seed: if repeated renders with the same parameters produce different scores and no seed or averaging strategy was declared, the renders are not comparable. Declare the strategy before scoring; do not compare incomparable renders.
  • Partial result: emit the best render and score obtained; never present a sub-threshold render as clearing the rubric.

Output

A terminal classification (success, capped, stalled, or blocked) plus the saved render, its per-dimension rubric scores, aggregate score, threshold, and the run receipt.

Signals

GitHub stars
35
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
fixed-view-visual-benchmark
Source
github.com/outlinedriven/odin-claude-plugin