milestone-reveal — скилл для Claude Code: клип с вашим числом
Собирает 12-секундный зацикленный ролик, где тысячи точек слетаются в вашу реальную цифру подписчиков, выручки или клиентов.
npx skills add charlie947/motion-graphics-skills --skill milestone-reveal -a claude-codeЧто делает milestone-reveal
Скилл превращает число в короткий клип: около 3 200 мелких точек дрейфуют, как ночное небо, потом стягиваются в контур цифры, под ней прочерчивается тонкая линия, а подпись всплывает на место. Каждая точка — один подписчик, клиент или рубль. Тон премиальный, без конфетти и отскоков.
Перед сборкой скилл просит четыре вещи: точное число с запятыми, ссылку или скриншот источника, подпись слово в слово и бренд с размером. Число берётся только реальное — если в источнике 12 431, в клипе будет 12 431, округлять вверх нельзя. Без источника клипа не будет. Если нет brand.md и MOTION.md, сначала запускается brand-intake или вы даёте hex-коды, шрифт и логотип.
Дальше скилл выдаёт готовый бриф для Claude: один HTML-файл с canvas, фиксированный seed для позиций и функция window.seek(seconds), которая рисует любой кадр по времени. После сборки он снимает кадры на 0, 2, 4.5, 6.5, 7.5, 9.5, 11 и 12 секундах и сверяет, что кадр 12 совпадает с кадром 0. Экспорт идёт через HyperFrames: npx skills add heygen-com/hyperframes, затем npx hyperframes render. Для Reel готовый MP4 передаётся в reel-export, а источник числа стоит указать в подписи к посту.
Какие задачи решает
- собрать клип с реальным числом подписчиков для LinkedIn
- показать выручку или число клиентов в коротком видео
- сделать зацикленный ролик без видимого стыка
- проверить, что цифра читается в ленте на маленьком размере
- отрисовать конкретный кадр по времени для проверки
Примеры запросов агенту
- сделай milestone-клип: 250,000 подписчиков LinkedIn, вот скриншот дашборда
- анимируй моё число подписчиков в 12-секундный ролик 1080 x 1350
- собери number reveal с подписью «LinkedIn followers» и моим шрифтом
Как установить milestone-reveal
1Через Skills CLI (Vercel)
npx skills add charlie947/motion-graphics-skills --skill milestone-reveal -a claude-code2Вручную: положить файлы
~/.claude/skills/milestone-reveal/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/milestone-reveal/
1Через Skills CLI (Vercel)
npx skills add charlie947/motion-graphics-skills --skill milestone-reveal -a codex2Вручную: положить файлы
.agents/skills/milestone-reveal/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add charlie947/motion-graphics-skills --skill milestone-reveal -a cursor2Вручную: положить файлы
.cursor/skills/milestone-reveal/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install charlie947/motion-graphics-skills milestone-reveal2Вручную: положить файлы
.github/skills/milestone-reveal/SKILL.md1Через Skills CLI (Vercel)
npx skills add charlie947/motion-graphics-skills --skill milestone-reveal -a gemini-cli2Командой платформы
gemini skills install https://github.com/charlie947/motion-graphics-skills --path skills/milestone-revealВручную: положить файлы
.devin/skills/milestone-reveal/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add charlie947/motion-graphics-skills --skill milestone-reveal -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о milestone-reveal
Как установить milestone-reveal в Claude?
Выполните npx skills add charlie947/motion-graphics-skills --skill milestone-reveal -a claude-code. Скилл встанет в ~/.claude/skills/milestone-reveal/SKILL.md.
Что делает milestone-reveal?
Собирает 12-секундный зацикленный клип, где точки слетаются в вашу реальную цифру, под ней рисуется линия, а подпись встаёт на место. Тон премиальный, без конфетти.
Что нужно подготовить до запуска?
Точное число с запятыми, источник этого числа, подпись слово в слово и бренд с размером. Если нет brand.md и MOTION.md, сначала запустите brand-intake или дайте hex-коды, шрифт и логотип.
Исходный текст
SKILL.md · MIT
--- name: milestone-reveal description: Make a 12-second looping milestone clip in code with Claude Code. Thousands of tiny points drift like a night sky, pull together into your real number (followers, subscribers, revenue, customers), a line draws underneath and the label settles in. Premium, not a party. Use when someone says "milestone video", "celebrate 10k followers", "animate my subscriber count", "number reveal", "particle number animation" or wants to mark a result on LinkedIn or Instagram. --- # Milestone reveal, built in code Each point is one follower, one subscriber or one customer. They gather into the number, hold, then drift apart so the loop has no jump. **Before you start:** read `brand.md` and `MOTION.md` if they exist. If not, run `brand-intake` first, or ask for hex codes, a font and a logo file. Never call a result on-brand without them. ## Step 1: Ask for four things, then wait 1. **The number, exactly as it should read,** with commas. Example: "250,000". 2. **Where it comes from.** A screenshot or link to the dashboard that shows it. No source, no clip. 3. **The label,** word for word. Example: "LinkedIn followers". 4. **Brand and size.** Background, particle and accent colours, the font file (attached), and the size. Default 1080 x 1350, 12 seconds. The number is the user's real, sourced number. Never round it up, never add "+", never swap a target for a result. If the source shows 12,431, the clip says 12,431 or the user picks a lower round figure themselves. ## Step 2: Build brief (paste into Claude Code) ``` Build one self-contained HTML file (canvas) for a 12-second seamless loop at [WIDTH] x [HEIGHT]. Tone: premium product launch, not a party. No bounce, overshoot, confetti or sparkle bursts. Fixed text (real figure, do not alter, round or restyle): "[NUMBER]" and "[LABEL]". No other text on screen. Brand: background [BG], particles and number [INK], accent line [ACCENT]. Font: the attached [FONT] files, embedded as base64. If the font file is missing, stop and ask me. Particles: about 3,200 tiny points with varied opacity and a faint twinkle, like a night sky. Build the number's shape by drawing "[NUMBER]" in the bold weight on an offscreen canvas and sampling its filled pixels as targets. Give most points to the number so it reads crisply at feed size, comma included. The rest stay as dimmer drifting stars. Timing: 1. 0-2s: points drift. Nothing else. 2. 2-6.5s: points pull into the number with a long, staggered ease, like gravity, not a snap. 3. 6.5-7.5s: a thin [ACCENT] line draws left to right under the number. 4. 7.5-8.5s: the label fades in and rises about 12px into place. 5. 8.5-10.5s: hold. The number only shimmers. 6. 10.5-12s: label and line fade, points drift back to their exact start. Frame 12 matches frame 0. Build rules: a fixed random seed for every position. Add window.seek(seconds) that draws any exact frame from the time alone. Reduced-motion shows the held frame. After the build: capture frames at 0, 2, 4.5, 6.5, 7.5, 9.5, 11 and 12s. Check the number reads exactly "[NUMBER]", nothing is cut off or overlapping, and frames 0 and 12 are identical. Keep each earlier version when you fix something. ``` ## What I learned the hard way - **The number looked grey at feed size.** Too few points covered each digit. The fix: about 2,700 of 3,200 points on the number, each 2.5px at near full opacity. - **Chrome can draw the same frame two ways.** After repeated pixel reads it switches drawing mode, so a frame came out slightly different. Create the canvas context with `willReadFrequently: true` and every seek gives the same pixels. - **Seed everything.** A `Math.random()` at render time makes every export different and breaks the loop. - **Measure the seam, do not eyeball it.** My passing build had 0 pixels different between frame 0 and frame 12. ## Step 3: Export HyperFrames (free, open source): `npx skills add heygen-com/hyperframes`, then `npx hyperframes render`. 1080 x 1350 for the LinkedIn feed. For a Reel, hand the MP4 to `reel-export`. Put the source of the number in the caption.
© charlie947 · MIT · charlie947/motion-graphics-skills