slop-cop
A visual-design referee. Given one or more image assets plus a decision context, produce strict per-asset verdicts (SHIP, FIX, or KILL) and, when multiple candidates compete for one slot, a ranked recommendation with placement reasoning.
The goal: stop hallucinated text, melted hands, off-brand vibes, layout overflow, misleading chart/copy mismatches, and obvious AI artifacts from reaching production.
When to invoke
- User has 1–N images and a decision to make ("which works best for hero?", "is this safe to ship?", "does this fit my brand?").
- User wants a second opinion on a visual choice before deploy.
- User asks to audit a landing page or compare AI-generated variants.
- User explicitly says "slop check" / "is this AI slop?"
- User asks whether a marketing creative, email preview, dashboard mock, chart, graph, or KPI visual is truthful/presentable.
Inputs the skill needs
Before analysis, confirm or infer:
- Image paths — 1 or more local file paths or URLs.
- Decision context — what slot/role is this for? Examples:
"hero banner at 1200x600", "square avatar 1024x1024", "mobile card at 4:5", "is this safe to ship anywhere?". - Target render size / aspect ratio — if relevant.
- Brand palette / style — hex colors and a one-line style descriptor when available.
- Mode — single-asset audit (
SHIP/FIX/KILL) or comparative pick (rank + recommend one).
If the user does not provide brand context, proceed without brand-fit scoring and note it in the verdict. Do not ask for brand context if the primary question is about layout, artifacts, or semantic correctness.
Workflow
1. Inspect the actual image first
Before trusting a vision model, open or render the image yourself using the available image/file preview path (read on image files in OpenClaw, screenshot preview, or equivalent). Look for obvious human-visible defects:
- Text outside boxes/buttons/cards.
- Text clipped by crop/canvas/card boundaries.
- Overlapping cards/squircles/buttons/graphs.
- Elements visually sitting on top of unrelated elements.
- Giant accidental whitespace or broken screenshot framing.
- CTA text not contained inside the CTA shape.
- Misaligned dashboard/chart/card layers.
If you can see a defect in the rendered image, the vision model is not allowed to overrule it.
2. Run the vision pass
For each image, call the OpenClaw image tool with the strict checklist prompt in references/vision-prompt-template.md. Pass one image per call when possible. Use multi-image calls only for explicit side-by-side comparison once each has been individually vetted.
The prompt forces the vision model to enumerate findings against a fixed checklist instead of writing vibes-based prose.
3. Score against the full checklist
The mandatory checklist lives in references/checklist.md. Every asset must be scored on:
- Hallucination scan — gibberish text, misspellings, extra/melted fingers, broken anatomy, duplicated objects, watermarks, AI signatures, lighting contradictions.
- Layout containment — all text must stay inside its intended button/card/squircle/container; no overlaps; no clipping; no accidental giant whitespace.
- Semantic consistency — visible claims must match visible evidence. If copy says a metric is trending down, the chart line must visually trend down. If copy says growth, the graph/KPI/direction must support growth. If button says an action, surrounding context must not imply a different action. If a dashboard card labels CPL/ROAS/booked calls, the visual trend and numbers must not contradict the label.
- Legibility at target size — can any text on the asset be read at its actual render size?
- Responsive safety — will the focal subject survive cropping to 16:9, 4:5, 1:1, and 9:16? Identify the focal point in pixel/percent terms.
- Cross-browser / format — transparency needs (PNG/WEBP vs JPG), color profile concerns (sRGB vs P3), iOS Safari quirks.
- Brand fit — if palette/style provided, check coherence; flag major mismatches.
- Format / size sanity — actual dimensions, file size for web, aspect-ratio fit for the target slot.
4. Assign a verdict per asset
Use exactly one verdict word per asset, plus a one-sentence reason. No hedging, no "looks okay but...".
| Verdict | Meaning |
|---|
| --------- | --------- |
SHIP | Clean. Deploy as-is. |
FIX | Salvageable with a specific edit (crop, recolor, regenerate text region, swap to different aspect, change copy/chart). State the fix. |
KILL | Do not use. Hallucination, broken layout, misleading semantics, off-brand, or wrong-tool-for-the-job. |
Hard kill triggers (any one = automatic KILL):
- Visible hallucinated/gibberish text on a graphic shipping to prod.
- Extra/missing/melted fingers on a human or human-adjacent character.
- Visible watermark or AI-tool signature.
- Major brand-palette violation (when palette provided) that cannot be fixed by recolor.
- Text visibly overflowing outside its intended box/button/card/squircle.
- Cards/buttons/graphs visibly overlapping unrelated content.
- Copy contradicts the visible chart/data/graph direction. Example: copy says "Cost per lead trending down" while the plotted line trends sideways or upward.
- A dashboard/KPI mock communicates a false or internally inconsistent story.
See references/anti-patterns.md and references/semantic-consistency.md for the full kill list and examples.
5. Comparative mode (multiple candidates, one slot)
When the user is choosing between assets for a single slot:
- Verdict each candidate individually first.
- Drop all
KILL verdicts from the running. - Rank remaining
SHIP and FIX candidates by: semantic truth > layout containment > brand match > focal-point survival > legibility > polish. - Recommend one. Name the file path, the slot, and one-sentence placement reasoning.
- If every candidate is
KILL or FIX, recommend regeneration with a brief brief.
6. Output format
Return a structured response:
## Verdicts
- <filename> — VERDICT — one-sentence reason
## Defects caught
- Concrete visual/layout/semantic defects. Be specific: "CTA copy extends past the green rounded rectangle", "chart line slopes slightly upward while label says CPL trending down".
## Anti-patterns flagged
- Optional CSS/HTML/format gotchas.
## Recommendation
- Which file to use or what to fix/regenerate.
## Deploy notes
- Concrete file paths, target dimensions, format conversions, and any CSS/HTML lines that should change. Do not deploy unless asked.
Keep it tight. No filler.
Failure modes
- Vision tool unavailable / errors out — Use direct rendered-image inspection plus metadata. Mark the verdict
BEST-EFFORT only if no visual inspection is possible. If rendered-image inspection is possible, give a normal verdict. - Vision model misses obvious defects — Trust the human-visible image, not the vision model. Call out that the vision pass missed the issue.
- No brand context provided — Proceed; note "no brand check performed." Do not downgrade semantic/layout defects just because brand context is missing.
- Asset is a wordmark/logo — Skip hallucination scan for stylized typography (intentional design ≠ gibberish), but still check legibility, format, layout containment, semantic consistency, and brand-palette match.