adaengine/ada/ada-visual-verification
Claude Code and agent skill by adaengine/ada
- community
Checking that the SKILL.md file is still in the repository.
Verify scene, rendering, gameplay and AdaUI changes by looking at the running game and playing it with scripted input.
Install
npx vskill@latest install adaengine/ada/ada-visual-verificationSKILL.md
Ada Visual Verification
Use this after any change whose success is visible or playable.
What counts as evidence
- Game frame: a PNG of the running game's own camera (2D or 3D) returned by
editor.play.capture, byrender.capture_screenshotwhile Play is running, or by acapturestep ofeditor.play.run_scenario. Look at the image. A path alone is not evidence. - Game state:
snapshotsfromeditor.play.run_scenario(entity transforms, component values) andlogs(script prints/errors). State proves logic; a frame proves appearance. Use both for "bird falls", "space lifts it", "pipe gives +1", "collision ends the run", "R restarts". - Not evidence: compilation, a build success line, a saved scene, the editor window, or
render.capture_screenshotwithout Play. Without a running game it captures the editor window and its resultworldsayseditor-window; never use that as game proof.editor.play.captureerrors instead when no game runs.
Look at the game
- Build (
editor.build.start, polleditor.task.status, readeditor.output.readerrors) and fix errors first. - Start Play (
editor.play.start) and wait untileditor.task.statusreports it running, then calleditor.play.capture(optionalcameraName,maxDimension). It waits for a completed frame and fails with an explicit message if the game is not rendering. KeepmaxDimensionat 640 unless detail matters. - Inspect the image: is the subject visible and framed, is the background intended (not a flat default color), are lights/materials right, is the HUD readable?
Play the game
Use editor.play.run_scenario to test behavior without a person. It defaults to an isolated offscreen runtime of the AdaScript project (your Play window is untouched); target: "play" drives the game already running.
- Step forms:
{t,key,down|tap},{t,mouse:'left',down|tap,x,y},{t,move:{x,y}},{t,capture:label,camera?},{t,snapshot:label}. Same-time steps run in written order;tappresses and releases afterholdseconds. - Limits: 60 s, 400 events, 12 frames, 40 snapshots, frames up to 1280 px. Timing is wall-clock, so compare behavior (direction, order, thresholds) not exact positions.
- Read
status,errors,scriptErrorCount,diagnostics,logs,frames[].path/error, and comparesnapshots. A frame error is amanualChecksentry, not a pass. - Make state observable: snapshots list each watched entity's components and its scriptable objects'
@exportfields (scripts[].fields). Script globals/statics andSystem.printoutput are NOT readable (print goes to the process stdout,logsonly has errors). Keep score/phase/alive flags in@export varfields of a scriptable object on a named entity (update them every frame) and assert fromsnapshots. worldElapsedSecondsandframeSequencein each snapshot must grow; if they are flat the game is not advancing.- Each frame reports
meanRGBanduniform; auniform: trueframe (flat color) carries a warning and is not proof. Usewarmup:falseto capture startup frames when hunting flashes. - Scene HUD/UI overlays are not rendered offscreen; verify HUD layout with
target: "play"andeditor.play.capture, or withui.capture_node_screenshot.
Other captures
Use ui.capture_node_screenshot for AdaUI or editor layout, not for game output. For static scene appearance outside Play, the scene viewport is the editor camera; it does not show what the game camera sees.
When a check is unavailable
If the tool is missing, the host cannot render (no GPU/display), Play fails to show frames, or a frame call returns an error: do not retry in a loop and do not claim it passed. Record the exact check as manual (what to look at, how to trigger it), keep the evidence you do have (build, snapshots, logs), and continue with the remaining work. Report manual checks in the final summary.
Blank or white frames
A viewport used to turn transparent (showing the panel behind it) for a few frames whenever its size changed, which looked like a white flash; the engine now keeps the last frame until the resized one is ready. If a frame is still blank or white, check the scene: no Camera, a camera clear color not set, no light, or no Environment3D/background so geometry floats on a flat clear color. Inspect with entity.find/editor.scene.get, set the camera backgroundColor and clear flags, add a light and (for 3D) an environment, rebuild, and capture again. See ada-scene-authoring.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingEditor/Sources/AdaEditor/Assets/AgentSkills/ada-visual-verification/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/adaengine/ada/ada-visual-verification)