Pulls numbered still frames from a recorded video through `canon demo frames`, reads each one with the Read tool, and reports one plain description per frame. Never judges the recording, since a frame read is evidence rather than a verdict. Use when asked to "check the recording", "read the demo frames", "see what the video shows", or right after `canon demo run` writes a video and nobody has opened it yet. Do NOT use to record the video, which is `record-screencast`, or to state whether the ...
Scanned 9/20/2026
Install to Claude Code
npx -y skills add erclx/canon --skill read-frames --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Read Frames?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/erclx-read-frames)More formats (shields.io, HTML) on the badges page.
---
name: read-frames
description: Pulls numbered still frames from a recorded video through `canon demo frames`, reads each one with the Read tool, and reports one plain description per frame. Never judges the recording, since a frame read is evidence rather than a verdict. Use when asked to "check the recording", "read the demo frames", "see what the video shows", or right after `canon demo run` writes a video and nobody has opened it yet. Do NOT use to record the video, which is `record-screencast`, or to state whether the recording looks correct or broken, which is out of scope for every surface in the toolkit today.
---
# Read frames
## Guards
- If no recording path is given, stop: `❌ No recording path. Pass the video canon demo run wrote.`
- Never write a pass-fail judgment, a "looks correct" line, or a "looks broken" line, anywhere in the report. A frame read is evidence a person weighs, not a verdict this skill hands them.
- Never drive the application. Everything this skill touches is the frame files the verb already wrote, and it opens no browser and clicks nothing.
- Never edit, trim, or otherwise modify the recording. The frames verb writes new files beside it, and this skill only reads what that writes.
## Step 1: extract frames
Run:
```bash
canon demo frames <video> --json
```
Branch on the record's `reason` rather than the exit code:
- `video-missing`: report that the path does not resolve and stop.
- `converter-missing`: report that ffmpeg is not installed and stop. `canon demo frames --help` names the install line.
- `extraction-failed`: report the record's `message` and stop.
- No `reason` key, meaning frames were written: continue to Step 2 with the record's `frames` array.
## Step 2: read every frame
Read each path in `frames`, in array order, with the Read tool. Do not skip any and do not sample a subset, since a gap in the sequence is a gap in what the report covers.
## Step 3: report
One numbered list entry per frame, each a plain description of what is on screen: the visible UI state, on-screen text, cursor position, and anything that changed from the entry before it. Skip a frame that is identical to its predecessor rather than repeating the same sentence.
```markdown
1. <plain description of frame 1>
2. <plain description of frame 2>
...
```
Close with the frame count and the source video path. Say nothing about whether the recording succeeded or looks right. That call belongs to whoever reads the report.
Say so plainly if `canon demo frames` is not available, rather than reading the video some other way. The verb ships with the CLI and this skill ships with the plugin, so a project carrying one and not the other is a real state.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!