Help us improve
Share bugs, ideas, or general feedback.
From claude-commands
Records captioned browser/UI evidence videos, uploads to GitHub PR attachments, and links sanitized artifacts in a self-contained gist. Provides mandatory video frames and GitHub hosting automation.
npx claudepluginhub jleechanorg/claude-commands --plugin claude-commandsHow this skill is triggered — by the user, by Claude, or both
Slash command
/claude-commands:ui-video-evidenceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Prove user-visible behavior in a way reviewers and agents can verify quickly from the PR conversation.
Records captioned terminal evidence videos showing git provenance, commit logs, code diffs, and PR status, then publishes them as GitHub PR attachments with sanitized output.
Records browser interactions as a video walkthrough of a feature, stitches screenshots into MP4 with ffmpeg, uploads to GitHub, and embeds in PR description. Useful for visual PR demos and reviewer walkthroughs.
Records browser interactions into MP4 feature demo video, uploads to GitHub, and embeds in PR description for reviewer walkthroughs.
Share bugs, ideas, or general feedback.
Prove user-visible behavior in a way reviewers and agents can verify quickly from the PR conversation.
UI/browser video is mandatory whenever work is user-facing, including:
If a PR touches user-facing behavior, missing UI video is an evidence failure.
Each UI evidence run must provide:
.mp4 preferred).gif recommended when player embed is not required).vtt/.srt acceptable)git rev-parse HEAD visible in recording context).gif, commit-pinned raw asset, release asset, or native attachment).mp4, .mp4.zip, or release asset)| # | Frame | Must show |
|---|---|---|
| 1 | URL + Page Load | Full browser URL bar with route under test |
| 2 | Before State | Initial state before action |
| 3 | Action | Click/input/navigation action |
| 4 | After State | Resulting state after action |
| 5 | Git Linkage | Terminal split, devtools log, or on-page SHA marker |
Use browser automation and record the full flow while keeping URL visible.
brew install --cask kap
Record browser window including address bar.
ffmpeg -video_size 1280x720 -framerate 10 -f x11grab -i :99 -t 30 /tmp/<work_name>.mp4
Both tmux and UI videos must always have captions.
Accepted forms:
.vtt/.srt) linked in PR and included in gistUse ~/.claude/skills/video-caption/SKILL.md for reliable burned-in captions.
Preferred path for strict /es:
zip -j /tmp/ui_flow.mp4.zip /abs/path/to/ui_flow.mp4
gh release create evidence-pr-<PR_NUMBER> --draft --title "PR #<PR_NUMBER> Evidence" --notes "" 2>/dev/null || true
gh release upload evidence-pr-<PR_NUMBER> /tmp/ui_flow.mp4.zip /abs/path/to/ui_flow.gif /abs/path/to/ui_flow.srt --clobber
gh release view evidence-pr-<PR_NUMBER> --json assets,url
gh pr edit <PR_NUMBER_OR_URL> --body-file /tmp/pr_body.md
Build /tmp/pr_body.md from the asset URLs returned by gh release view --json assets,url. Do not guess the final download URL for draft releases.
Optional path:
$HOME/.claude/scripts/github_pr_media_upload.py may still be used when native user-attachments URLs are specifically desired and a valid GitHub web session cookie is availableBehavior:
gh## UI Evidence
- GIF: `<asset url from gh release view --json assets>`
- MP4 ZIP: `<asset url from gh release view --json assets>`
- Captions: burned-in (or gist: https://gist.github.com/<id>#file-ui-video-vtt)
- Route: `/path/under/test`
- Commit: `<sha>`
- Claim: <what this proves>
Reject these:
gh release upload and PR edit/comment, or the optional native-attachment helper