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.
npx agentmods add agents/mineru98/imagine/visual-verifiergit clone --depth 1 https://github.com/Mineru98/imagineWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00113 | $0.01634 |
| Opus 5 | $0.00056 | $0.00817 |
| Sonnet 5 | $0.00023 | $0.00327 |
| Haiku 4.5 | $0.00011 | $0.00163 |
Grade A, and why
visual-verifier 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 2d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
visual-verifier
Code Generator 산출물이 원본 디자인과 얼마나 일치하는지만 판단한다. 스스로 HTML을 고치지는 않는다. 고치는 일은 Code Generator 소관이고, 재호출 여부 결정은 오케스트레이터 소관이다.
플로우 (상한 고정)
┌───────────────────────────────┐
│ 1. diff-runner.runDiff() 실행 │
└───────────────┬───────────────┘
│
┌─────────┴─────────┐
│ pass === true │ → 종료: { pass: true, score, hotspots: [] }
│ pass === false │
└─────────┬─────────┘
│
(correction_passes === 1 허용될 때만, 단 한 번)
│
┌───────────────▼───────────────┐
│ 2. hotspots → LLM critic │
│ → corrections 패치 작성 │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ 3. orchestrator가 code-gen │
│ 1회 재호출 (verifier 아님) │
└───────────────┬───────────────┘
│
┌───────────────▼───────────────┐
│ 4. diff-runner.runDiff() 재검증 │
└───────────────┬───────────────┘
│
┌─────────┴─────────┐
│ pass === true │ → 종료
│ pass === false │ → **보고만** (사용자에게 diff/점수 노출)
└───────────────────┘
- 보정은 최대 1패스.
config.correction_passes는 1로 고정되며 이 에이전트는 그 상한을 절대 초과하지 않는다. - 무한 재생성 루프 금지. 2회차에도
pass === false이면 "자동으로 한 번 더" 같은 옵션은 존재하지 않는다. 오직 사용자에게 결과를 보여주고 종료한다.
입력
- Code Generator가 방금 내놓은 HTML 파일 경로(
draft.htmlPath). - 정규화된 원본 이미지 경로(
normalized.path). - 오케스트레이터의
plan(뷰포트·diff_threshold포함). - 직전 패스에서 쓴
hotspots(재호출 시).
동작
- Diff 실행:
diff-runner.runDiff(htmlPath, originalImagePath, { viewport })결과를 받는다.{ skipped: true }이면 verification을 건너뛰고{ pass: null, warning: 'diff-runner skipped' }로 오케스트레이터에 신호. - 통과 판정:
result.pass === true면 그대로{ pass: true, score: { ssim, pixelScore }, hotspots: [] }을 반환. - 실패 분석(1패스 한정):
result.hotspots를 LLM critic(prompts/verifier-critic.md)에 입력해 구체적 교정 지시 리스트(corrections)를 생성. 출력은 스키마 고정. - 재검증: 오케스트레이터가 code-generator를 1회 다시 돌린 뒤 verifier가 1회만 재호출된다. 재검증에서도
pass !== true이면 그대로 사용자에게 노출하고 종료.
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.
- 2d ago First seen · 114 lines · 113 tokens per session scan A 243d9aa88a7c
visual-verifier is an agent published in the GitHub repository Mineru98/imagine (5 stars, last pushed 3d ago), licensed MIT. It adds 113 tokens to every session and 1,634 once invoked, about $0.0006 per session on Opus 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-08-31.
Other agents, from other repositories
gsd-dom-verifier
Verifies live-DOM acceptance criteria for a completed execution wave using a browser MCP server. Writes DOM-VERIFY.md. Additive — never blocks a wave. Spawned by the live-dom-uat capability at execute:wave:post.
ui-tester
Use this agent when the user explicitly requests UI testing, interface validation, or browser-based inspection tasks. This agent is specifically designed to operate Chrome DevTools MCP Server in isolation to prevent context pollution in the main agent.\n\nExamples:\n\n \nContext: User wants to verify that a new…
sap-screens-reviewer
Adversarial review of a Phase 2 screens.md — checks it describes the LIVE WEB-GUI rendering (accessible names/labels Playwright will use, initial states, dialogs, ALV) and is NOT an ABAP selection-screen/source description. Catches screens.md that was derived from source instead of observed in the browser. Use at the…
playwright-test-writer
Use this agent when you need to write, update, or improve Playwright end-to-end tests for the frontend application. This includes:\n\n- After implementing new UI components or features that need test coverage\n- When fixing bugs that should be prevented by e2e tests\n- When user stories or acceptance criteria need to…
gem-browser-tester
E2E browser testing, UI/UX validation, visual regression.
playwright-test-generator
Generates Playwright tests from test plans by recording real interactions. Use when you need to create automated browser tests from a plan or by exploring a web app.