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 gabrielmoreira/agent-skills-mirror --skill video2dspritegit clone --depth 1 https://github.com/gabrielmoreira/agent-skills-mirrorWrote 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/gabrielmoreira/agent-skills-mirror/video2dsprite)<a href="https://agentmods.dev/skills/gabrielmoreira/agent-skills-mirror/video2dsprite"><img src="https://agentmods.dev/badge/skills/gabrielmoreira/agent-skills-mirror/video2dsprite/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/gabrielmoreira/agent-skills-mirror/video2dsprite"><img src="https://agentmods.dev/badge/skills/gabrielmoreira/agent-skills-mirror/video2dsprite.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.00215 | $0.03982 |
| Opus 5.5 | $0.00086 | $0.01593 |
| Sonnet 5.5 | $0.00043 | $0.00796 |
| Haiku 4.5 | $0.00021 | $0.00398 |
Grade A, and why
video2dsprite 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 18d 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.
This is a copy
100% identical to video2dsprite — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 109 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Video to 2D Animation
An approved still sets identity and geometry, a video model supplies motion, and deterministic tools prepare it for the engine. Video is not promised to be smaller, seamless or cheaper than sheets.
Use when
- Animating a character or creature: every action comes from one approved master still, one clip per action.
- Fluid motion from an accepted master: idle breathing, walks, runs, attacks, casts, hair, capes, creatures.
- A supplied clip must become transparent, registered, looped frames and engine video.
Do not use when
- FX, icon or prop sheets: generate2dsprite.
- Water, fire or mist inside a still scene plate: generate2dmap. Only an API or CLI call: generate2dmedia.
- Code-drawn animation the user asked for: codeart2d.
Capability check (once per session)
Run python "<skill-dir>/../generate2dmedia/scripts/forge_doctor.py" --host-tools <tools> --save <output>/doctor.json, where <tools> lists the media tools in your own tool list (image_gen, image_edit, image_to_video) or none. Its ROUTES block shows which API keys are configured (yes or no), the local readiness and the resolved order. If encoding.stdout fails, set PYTHONUTF8=1. python "<skill-dir>/scripts/video2dsprite.py" doctor checks ffmpeg (5.1+, VP9 alpha round trip).
Art source
The master still comes from generate2dsprite (image generation, approved by the user) or from the user. Motion is image-to-video, one clip per action from that master; record the route as art_source and name it in your reply:
- API, when a key is configured: xAI Grok Imagine Video (
XAI_API_KEY), BytePlus Seedance (ARK_API_KEY) or fal.ai (FAL_KEY: Kling v3, Veo 3.1, Luma Ray 3.2, MiniMax H3, Wan 3.0, Vidu Q3, LTX) (route-media.md). The configured key is the owner's consent, so there is no per-call question.--last-frame <still>pins idle and attack clips to end on their first pose. - Local: your own image-to-video tool (Grok's native
image_to_video) when you have one, otherwise the user's Grok CLI in ACP mode (it cannot pin a last frame; the result sayslastFrameUsed). - A clip the user supplies (no account needed).
- codeart2d only when the user explicitly asks for code-drawn animation, or when
route_media.pyprintsno-route(exit 3); otherwise prepare the job and prompt, explain the gap, and never invent a successful generation.
What ships with it
29 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.
- agents/openai.yaml 495 B
- references/animation-review.md 11 KB
- references/finishing.md 19 KB
- references/matte.md 11 KB
- references/motion-prompts.md 15 KB
- references/packed-alpha-runtime.js 2.8 KB runs code
- references/pipeline.md 17 KB
- references/prompt-rules.md 9.1 KB
- references/runtime/forge-runtime.mjs 38 KB runs code
- references/runtime/packed-alpha-webgl.mjs 21 KB runs code
- references/schemas/common.schema.json 13 KB
- references/schemas/video.schema.json 48 KB
- references/sprite-set.md 20 KB
- scripts/animation_review.py 31 KB runs code
- scripts/colour_lock.py 25 KB runs code
- scripts/engine_export.py 108 KB runs code
- scripts/finish_frames.py 116 KB runs code
- scripts/forge_av.py 47 KB runs code
- scripts/forge_core.py 78 KB runs code
- scripts/forge_matte.py 72 KB runs code
- scripts/forge_palette.py 70 KB runs code
- scripts/forge_schema.py 26 KB runs code
- scripts/gait_loop.py 104 KB runs code
- scripts/prepare_i2v_input.py 46 KB runs code
- scripts/register_clip.py 103 KB runs code
- scripts/retime.py 46 KB runs code
- scripts/sprite_set.py 176 KB runs code
- scripts/validate_animation.py 40 KB runs code
- scripts/video2dsprite.py 97 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.
- 18d ago Changed · -97 lines · +91 tokens per session 5c14c84df107
- 1mo ago First seen · 206 lines · 124 tokens per session scan A d6d5a642dc10
video2dsprite is a skill published in the GitHub repository gabrielmoreira/agent-skills-mirror (19 stars, last pushed yesterday), licensed MIT. It adds 215 tokens to every session and 3,982 once invoked, about $0.0009 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to video2dsprite, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
playtest-report
Structured playtest report template, or turn existing playtest notes into structured feedback.
godot-signals-groups
Build event-driven, decoupled Godot 4.7 gameplay with signals and node groups: declare and emit custom signals, connect with Callables (incl. bind/one-shot), and broadcast to many nodes via groups and callgroup. Use when wiring node communication in a Godot project, replacing tight references with signals…
motion
Reconstruct a skeleton from calibrated mesh projections and sequential VLM joint annotations, then fit joints and skin weights. Generate motion from joint-position trajectories, rhythm and contact constraints through IK; refine bone orientation against the action, then export, retarget and validate on the target mesh.
unity-addressables
Manage Addressables groups, entries, profiles and content builds (com.unity.addressables, reflection-based).
threejs-exposure-color-grading
Build a measured exposure and grading path in Three.js. Use for a 64x36 encoded luminance meter, asynchronous readback, weighted log-average exposure, asymmetric adaptation, single tone-map ownership, and a generated 32-cube post-tone-map LUT.
unity-manual-component
Manually add, configure, reorder, and copy components on GameObjects using Unity Editor UI. For one-off Inspector workflows that do not need REST automation.