Install any skill in seconds. Free to start, no credit card required.
Get Started Free →zenbu-labs/verify
Drive an engine app headlessly in a pty, record a video of the whole verification, and open a summary page (video + timeline + checks) with pixel open.
Passed 14 of 19 test cases with the skill, and 6 of 19 without it.
and 6 more in the full report
9 fixed7 passed either way6 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
Where are the run artifacts like events JSON lines, verification MP4, and summary HTML saved by default during a verification run?
| Checked | Without skill | With skill |
|---|---|---|
| Stores output artifacts in /tmp/verify-runs/ directory | Missed | Passed |
The instructions your model reads when the skill loads.
Apps here render via the kitty graphics protocol, so they can be verified
without a real terminal. Every verification is recorded: the harness in
tools/verify-recorder/ captures every frame the app emits, overlays your
inputs (click ripples, caption bar), encodes a video, and generates a summary
page. Do not hand-roll one-off pty scripts that only dump PNGs.
Write a driver script (in /tmp is fine) using the checked-in package:
import sys
sys.path.insert(0, "<repo>/tools/verify-recorder")
from driver import Driver
from recorder import Recorder
rec = Recorder("wheel-pan", title="Wheel pan keeps cursor anchored")
d = Driver(["<repo>/engine/target/debug/typing"], rec,
cols=120, rows=32, xpixel=1200, ypixel=800)
d.pump(3.0) # pump between actions so frames arrive
rec.check("app painted", d.frame_size is not None, f"{d.frame_size}")
w, h = d.frame_size # REAL framebuffer size — always use this
d.text("hello", "type into editor") # every input takes a description
d.click(w // 2, h // 3, "select the note") # mouse coords are pixels (1016 mode)
d.wheel(w // 2, h // 2, down=True, n=3, description="scroll content")
d.pump(1.0)
rec.check("scroll redrew", len(rec.frames) > 40, f"{len(rec.frames)} frames")
rec.still("after-scroll") # named snapshot for the summary page
d.stop("ctrl+c") # or "ctrl+q" depending on the app
rec.finish() # composites markers, encodes mp4, writes summary
Driver spawns the argv in a pty (TERM=xterm-kitty, TIOCSWINSZ with pixel
dims, answers the \x1b[?1016$p mouse probe), decodes kitty a=T,f=32,o=z
frames, and feeds them to the recorder. Node apps: spawn
["npx", "tsx", "src/main.tsx", ...] with cwd= the package dir (tsx
resolves tsconfig from cwd; a wrong cwd silently drops jsx config).test cases passed, vs 6 / 19 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.