Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add eph5xx/surfskills.surf --skill surf-skill-videogit clone --depth 1 https://github.com/eph5xx/surfskills.surfWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/eph5xx/surfskills.surf/surf-skill-video)<a href="https://agentmods.dev/skills/eph5xx/surfskills.surf/surf-skill-video"><img src="https://agentmods.dev/badge/skills/eph5xx/surfskills.surf/surf-skill-video/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/eph5xx/surfskills.surf/surf-skill-video"><img src="https://agentmods.dev/badge/skills/eph5xx/surfskills.surf/surf-skill-video.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00065 | $0.01584 |
| Opus 5.5 | $0.00026 | $0.00634 |
| Sonnet 5.5 | $0.00013 | $0.00317 |
| Haiku 4.5 | $0.00006 | $0.00158 |
Grade A, and why
surf-skill-video scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Step 5: Video
Turn the run's real result into one 11-second preview video and its cover still. It runs at the same time as Card.
- Reads:
pick.json,plan.json,run.json,hosts.json,skill/SKILL.md,inputs/,result/, and Run's copy inreview/. - Writes:
video/(the video, the cover, the storyboard, the review and the work files), and lastvideo.json(video.schema.json).
You are the video operator: one agent, one card. Scripts do the work, including both AI turns. You read only what the scripts print.
Run the scripts from this skill's folder.
What to do
- Capture (code). Run
node scripts/video-capture.mjs <card>. It turns the result into stills and real text invideo/work/media/: a web page gets its first screen, slices down the page, the whole page, the phone view and its text; text gets before and after; images get up to six pictures. - Storyboard (code + AI). Run
node scripts/video-storyboard.mjs <card>. An AI looks at the captures and plans the result part: the takeaway, a starting pattern, one to three shots with captions, and the cover moment. It writesvideo/storyboard.json. - Build (code + AI). Run
node scripts/video-build.mjs <card>in the background (it takes about 15 minutes, longer than most tool calls wait), and wait for it to finish. In one try, an author AI writes the result part, code checks it, HyperFrames renders a draft (kept asvideo/work/try/draft.mp4), and a reviewer AI scores it. If nothing failed and no score is 1, it renders the final video, shrinks it, takes the cover and writesvideo.json.
Stop at the first script that doesn't print ok, and reply with its last line (see Reply).
How a video is made reliable
One video per card, with no human pick, so every part that can go wrong is checked before anyone sees it:
- A fixed frame. Code draws the opening command, its caption and the end card with the skill's name the same way every time (frame.html). The AI makes only the 6-second result part, so each video is custom where it matters and the brand stays steady.
- A plan first. The storyboard decides what to show before anything is built, from the real captures and style.md.
- Strict code checks (build-rules.md). Before rendering: safe markup only (no scripts, URLs or outside files), animation through the frame's timeline only, captions of at most 7 words, quotes copied exactly from the real result. In the page: every text at least 56 px and inside the safe area, nothing empty. On the draft: 11 s, silent, no black or blank frames, a seamless loop.
- A separate reviewer as a gate (review.md). It scores value, readability, looks and honesty from stills at full size and at the size of a site tile, and lists fixes as notes. A score of 1 on anything stops the step; any other scores, the draft is used as is.
- One try, no retries. Like every other step, Video stops at the first problem: an AI that doesn't answer, a failed code check, a failed render or a score of 1. Nothing is asked twice. The owner watches the kept draft and decides.
What ships with it
22 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- assets/storyboard.schema.json 1.7 KB
- assets/video-author.schema.json 950 B
- assets/video-review.schema.json 1.7 KB
- assets/video.schema.json 720 B
- assets/video/fonts/Bricolage-600.ttf 80 KB
- assets/video/fonts/Bricolage-700.ttf 80 KB
- assets/video/fonts/JetBrainsMono.ttf 183 KB
- assets/video/fonts/OFL.txt 4.7 KB
- assets/video/fonts/Onest-500.ttf 58 KB
- assets/video/fonts/Onest-600.ttf 58 KB
- assets/video/frame.html 5.3 KB
- references/build-rules.md 4.4 KB
- references/review.md 3.9 KB
- references/style.md 5.6 KB
- scripts/shared/agy.mjs 9.4 KB runs code
- scripts/shared/chrome.mjs 5.3 KB runs code
- scripts/shared/core.mjs 7.0 KB runs code
- scripts/video-build.mjs 16 KB runs code
- scripts/video-capture.mjs 7.7 KB runs code
- scripts/video-check.mjs 23 KB runs code
- scripts/video-lib.mjs 6.2 KB runs code
- scripts/video-storyboard.mjs 3.6 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago Changed 754389a2938d
- 5d ago First seen · 68 lines · 65 tokens per session scan A 659b0b00826b
surf-skill-video is a skill published in the GitHub repository eph5xx/surfskills.surf (2 stars, last pushed 4d ago), licensed MIT. It adds 65 tokens to every session and 1,584 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-31.
Other skills, from other repositories
google-drive
Interact with Google Drive - search files, find folders, list contents, download files, upload files, create folders, move, copy, rename, and trash files. Use when user asks to: search Google Drive, find a file/folder, list Drive contents, download or upload files, create folders, move files, or organize Drive…
imagen
Generate images using Google Gemini's image generation capabilities. Use this skill when the user needs to create, generate, or produce images for any purpose including UI mockups, icons, illustrations, diagrams, concept art, placeholder images, or visual representations.
playwright-cli
Automates browser interactions for testing and validating your own web applications using playwright-cli. Use when you need terminal-first browser control for navigation, form filling, screenshots, tracing, bound browser sessions, debugging, or generating Playwright test code. Only use against applications you own or…
manus
Delegate complex, long-running tasks to Manus AI agent for autonomous execution. Use when user says 'use manus', 'delegate to manus', 'send to manus', 'have manus do', 'ask manus', 'check manus sessions', or when tasks require deep web research, market analysis, product comparisons, stock analysis, competitive…
playwright-frontend
For frontend engineers authoring UI — how to make components reliably locatable by tests and AI agents. Covers the official Playwright locator priority, semantic/accessible markup first, and how to add valid, unique, stable data-testid attributes (naming convention, uniqueness in lists, stability rules) for React…
idea-forge
Run any raw idea through a multi-stage R&D pipeline that interprets, expands, scores, and converts it into an actionable engineering plan. Always trigger immediately when the user's message starts with "idea". Also trigger on "ideaforge", "analyze this idea", "expand this concept", "assess this invention", "explore…