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 skills add playcanvas/create-playcanvas --skill verify-pixelsgit clone --depth 1 https://github.com/playcanvas/create-playcanvasWrote 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.
[](https://agentmods.dev/skills/playcanvas/create-playcanvas/verify-pixels)<a href="https://agentmods.dev/skills/playcanvas/create-playcanvas/verify-pixels"><img src="https://agentmods.dev/badge/skills/playcanvas/create-playcanvas/verify-pixels/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.
<a href="https://agentmods.dev/skills/playcanvas/create-playcanvas/verify-pixels"><img src="https://agentmods.dev/badge/skills/playcanvas/create-playcanvas/verify-pixels.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00029 | $0.00397 |
| Opus 5.5 | $0.00012 | $0.00159 |
| Sonnet 5.5 | $0.00006 | $0.00079 |
| Haiku 4.5 | $0.00003 | $0.00040 |
Grade A, and why
verify-pixels 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 23d 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- verify-pixels — 100% identical, 0 lines differ
What it actually says
Prove pixels unchanged
Choose the gate
- Byte-exact: the change keeps the same decoded data and the same shading math, so every pixel must match.
- Side-by-side review: the change alters sampled values, random order, precision, or where math runs. Report it as "not byte-gateable" and show old and new at each pose; do not invent thresholds.
Make frames deterministic
- Load every asset and match camera, canvas size, lighting, and animation time between builds. Seed incidental randomness.
- Drive animated shaders from one app-owned time value, not
Date.now()orperformance.now(). app.timeScale = 0makesdtzero, butupdatestill runs; anything counting frames or reading wall-clock time still advances.- Set
app.autoRender = false, thenapp.renderNextFrame = truebefore each frame to capture.
Capture and compare
- WebGL:
await (device as WebglGraphicsDevice).readPixelsAsync(x, y, w, h, pixels). WebGPU: render into aRenderTargetand read itscolorBufferwithTexture#read(). Avoid colour conversion and lossy encoding. - Capture the unmodified build twice first. The captures must match exactly, or the harness itself is noisy.
- Cover every touched surface in at least two poses, plus a mid-animation phase where relevant.
- Report the count, for example "0 of 65536 pixels differ", or the count and where the differences are. "Looks the same" is not a result.
Keep harness code out of the shipped bundle; attach it through inspect-runtime.
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.
- 23d ago Changed 1b02b1ce87e1
- 24d ago Changed · -34 lines · -20 tokens per session 1aff22710d7b
- 26d ago Changed · +20 lines · +3 tokens per session 0583c6ffc189
- 1mo ago First seen · 51 lines · 46 tokens per session scan A b59c7450d676
verify-pixels is a skill published in the GitHub repository playcanvas/create-playcanvas (61 stars, last pushed today), licensed MIT. It adds 29 tokens to every session and 397 once invoked, about $0.0001 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-08-30.
Other skills, from other repositories
regression-suite
Map test coverage to GDD critical paths, find fixed bugs lacking regression tests, flag drift from new features.
soak-test
Soak test protocol for extended play — what to observe and log for slow leaks, fatigue, late-appearing edge cases.
playtest-report
Structured playtest report template, or turn existing playtest notes into structured feedback.
team-polish
Orchestrate the polish team — performance-analyst, technical-artist, sound-designer, qa-tester — to optimize and harden a feature or area.
smoke-check
Critical-path smoke gate before QA hand-off — runs the automated suite. A failed check means the build is not QA-ready.
develop-web-game
Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with rendergametotext.