# Proof Videos

Annotate PR screenshots and videos with arrows, guides, captions and zoom.

- Repository: https://github.com/openclaw/openclaw (393636 stars)
- Category: Media
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add openclaw/openclaw --skill proof-video -g -a claude-code -y`
Codex: `npx skills add openclaw/openclaw --skill proof-video -g -a codex -y`
Cursor: `npx skills add openclaw/openclaw --skill proof-video -g -a cursor -y`
Gemini CLI: `npx skills add openclaw/openclaw --skill proof-video -g -a gemini-cli -y`

## Description

Capture and annotate PR screenshots and videos with measured arrows, outlines, alignment guides, spacing brackets, captions, zoom, and speed cues.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Proof video

Use this developer skill for captioned Control UI recordings and native captures.
Captions are burned into an MP4; they are visual narration, not synthesized audio.
Keep the raw video as evidence, attach the polished MP4, and never commit media or
`.artifacts/` output. Inspect the entire capture for unrelated or private content
before publishing under the PR's existing authorization.

## Point out the claim

Choose marks that demonstrate the change. Use arrows to locate a control, outlines
to identify a region, alignment guides to compare edges or centers, and spacing
brackets to measure gaps. Measurements come from `locator.boundingBox()` after the
asserted layout settles; the renderer calculates the labels. Keep the reference
element first and use the same viewport, crop, scale, and edge before and after.
Keep marks sparse and labels in empty space. Preserve the raw capture.

For screenshot markup or timed video marks, read [annotations](references/annotations.md).
Both paths use the same SVG geometry renderer. Annotations are composited before
zoom, while narration stays fixed in the viewport. Re-measure and replace marks
after scrolling or layout changes; a cue describes a stationary capture, not a
live element tracker. Clear marks during movement when they would become stale.

## Standalone recording

From the repository root, save this script as `.artifacts/proof-video/record.mts`
(create the parent directory first), then run
`node --import tsx .artifacts/proof-video/record.mts`. It starts an isolated mocked
Control UI, records five captions, a real toolbar zoom, fast-forwarded startup, and an eight-second pause
at 4× speed. Every invocation allocates a fresh evidence directory.

The rest: https://github.com/openclaw/openclaw/blob/HEAD/.agents/skills/proof-video/SKILL.md
