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 bam-bam-2/solo-skills --skill web-demo-videogit clone --depth 1 https://github.com/bam-bam-2/solo-skillsWrote 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/bam-bam-2/solo-skills/web-demo-video)<a href="https://agentmods.dev/skills/bam-bam-2/solo-skills/web-demo-video"><img src="https://agentmods.dev/badge/skills/bam-bam-2/solo-skills/web-demo-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/bam-bam-2/solo-skills/web-demo-video"><img src="https://agentmods.dev/badge/skills/bam-bam-2/solo-skills/web-demo-video.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00077 | $0.02582 |
| Opus 5 | $0.00039 | $0.01291 |
| Sonnet 5 | $0.00015 | $0.00516 |
| Haiku 4.5 | $0.00008 | $0.00258 |
Grade A, and why
web-demo-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 13d 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 — 147 lines — stays where its author put it; the contents beside it link to each section on GitHub.
웹 데모 영상 만들기
사용자의 웹 프로젝트(모자이크, 커뮤니티앱, 카공메이트 등) 소개 영상을 만들 때 쓰는 절차. 목업 이미지를 이어붙이는 게 아니라 실제 사이트를 실제로 조작한 화면을 찍는 게 핵심이다.
먼저 물어볼 것
영상은 어디 쓰느냐로 비율·길이가 갈린다. 만들기 전에 반드시 확인한다.
| 용도 | 비율 | 길이 |
|---|---|---|
| 스레드·릴스·쇼츠 | 9:16 (1080x1920) | 15~25초 |
| 블로그·유튜브 임베드·랜딩 | 16:9 (1920x1080) | 30~40초 |
| 인스타 피드·카톡 공유 | 1:1 (1080x1080) | ~20초 |
사용자는 시각 산출물의 형식에 구체적인 기대가 있다. 레퍼런스가 있으면 먼저 달라고 한다.
절차
1. 로컬 서버로 대상 사이트를 띄운다
cd <프로젝트> && python3 -m http.server 8899
무대(stage) 페이지와 대상 사이트는 반드시 같은 오리진이어야 한다.
포트가 다르면 iframe.contentDocument 접근이 막혀서 조작이 불가능하다.
→ 무대 파일을 프로젝트 폴더 안에 임시로 두고, 작업이 끝나면 반드시 빼낸다(안 그러면 다음 배포에 딸려 올라간다).
2. 무대 페이지를 만든다
assets/stage-template.html를 복사해서 고친다. 구조:
#stage— 출력 비율 그대로의 고정 크기 div (1:1이면 540x540, dpr 2로 캡처하면 1080x1080)#cap/#foot— 큰 자막(상단) / 보조 문구(하단)#win— 맥 브라우저 창 목업(신호등 3개 + URL) 안에<iframe>을transform: scale()로 축소해 넣음#cursor— 가짜 마우스 커서 SVG. 이게 있어야 조작 영상처럼 보인다#ring— 클릭·브러시 크기를 보여주는 하이라이트 원#end— 엔딩 카드(제품명 / 한줄 설명 / 셀링포인트 3개 / URL)window.__tick(frameIndex)— 프레임 번호 하나를 받아 그 시점의 화면 상태를 만드는 결정론적 함수
3. 타임라인을 결정론적으로 짠다
__tick(frame) 안에서 t = frame / FPS로 시간을 계산하고, 모든 상태를 t로부터 다시 계산한다.
실시간 setTimeout을 쓰면 캡처 속도와 어긋나서 망가진다.
- 1회성 동작(이미지 로드, 모드 전환)은
once(key, fn)으로 중복 실행을 막는다 - 드래그는
drag(t, 시작초, 끝초, ptFn)— 시작 프레임에mousedown, 매 프레임mousemove, 끝나면mouseup - 이벤트는 iframe의
W.MouseEvent로 만들어clientX/clientY(iframe 기준 좌표)로 dispatch한다.mousedown은 대상 요소에,mousemove/mouseup은 보통window에 붙어 있으니 확인하고 각각 맞는 타깃에 쏜다 - 좌표는 하드코딩하지 말고 요소의
getBoundingClientRect()또는 그려넣은 목업의 rect 비율로 계산한다. 창 크기를 바꿔도 안 깨진다 - iframe 안에서 영상에 불필요한 요소(헤더, SEO 본문, 푸터, 광고 배너, 상태줄)는
iframeload 시점에<style>주입으로 숨긴다
4. 프레임을 캡처한다
for (let i = from; i <= to; i++) {
await page.evaluate(f => __tick(f), i);
const buf = await page.screenshot({ clip: { x:0, y:0, width:540, height:540 } });
await fs.writeFile(`${DIR}/f${String(i).padStart(4,'0')}.png`, buf);
}
What ships with it
2 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.
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.
- 13d ago First seen · 147 lines · 77 tokens per session scan A afb3279fee80
web-demo-video is a skill published in the GitHub repository bam-bam-2/solo-skills (363 stars, last pushed 9d ago), licensed MIT. It adds 77 tokens to every session and 2,582 once invoked, about $0.0004 per session on Opus 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-08-30.
Other skills, from other repositories
gws-gmail
Gmail: Send, read, and manage email.
recipe-block-focus-time
Create recurring focus time blocks on Google Calendar to protect deep work hours.
recipe-create-vacation-responder
Enable a Gmail out-of-office auto-reply with a custom message and date range.
recipe-save-email-attachments
Find Gmail messages with attachments and save them to a Google Drive folder.
happiness-skill
A Chinese-language guide to happiness based on reducing unmet wants, focusing on the present, and treating happiness as a trainable skill.
post-build-flow
Handles workflow verification and setup after build-workflow succeeds, or when the message contains workflow-verification-follow-up or workflow-setup-required. Load after direct builds, when verificationReadiness requires action, or on orchestrator verify/setup follow-up turns.