Not in the top 1,000 by GitHub stars

Mort1d/motion-graphics-skills

Showreel-grade motion graphics from code, with an original soundtrack for every video. An Agent Skill for Claude Code, Codex, Cursor and other agents.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/motion-graphics/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

7f0c3714dc81 → 7f0c3714dc81

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 7f0c3714dc81

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 7f0c3714dc81bea52644a5287c6350345009e579

git clone --filter=blob:none --no-checkout https://github.com/Mort1d/motion-graphics-skills.git .hotskills/mort1d-motion-graphics-skills && git -C .hotskills/mort1d-motion-graphics-skills checkout --detach 7f0c3714dc81bea52644a5287c6350345009e579 # Copy each selected skill directory from .hotskills/mort1d-motion-graphics-skills into .claude/skills/<skill-name>/
78GitHub stars
11stars in 7 days
1skill in this repository
0commits in 30 days

Heat

5.6
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 6, 202678

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

motion-graphics

When your agent uses it

Creates showreel-grade motion graphics videos entirely from code — HTML scenes rendered frame by frame in headless Chrome with real motion blur, plus an original score composed for each video on the same beat grid. It directs the film itself from whatever the person gives — their words, a site, a GitHub repository, an app, screenshots, their own video clips and photos, or reference clips — and sets the pace and the energy of the music from them. Use for any promo, ad, launch video, explainer, reel, Shorts or TikTok, intro, kinetic type or logo animation for a business, product, app, site, bot, channel or person, even when all you have is a link or a name.

What it loads into context

Frontmatter

230 tokens

Always available to the agent

SKILL.md

8,986 tokens

When the skill is activated

Reference documents

48,491 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. What you deliver
  2. Workflow
  3. Quality bar
  4. Rules that protect the client
  5. Traps (each one cost a real project time)
  6. Reference files
  7. Commands

Scripts executed separately

  • assets/template/audio/score.mjs
  • assets/template/audio/synth/core.mjs
  • assets/template/audio/synth/drums.mjs
  • assets/template/audio/synth/fx.mjs
  • assets/template/audio/synth/index.mjs
  • assets/template/audio/synth/mix.mjs
  • assets/template/audio/synth/sample.mjs
  • assets/template/audio/synth/selftest.mjs
  • assets/template/audio/synth/theory.mjs
  • assets/template/audio/synth/tonal.mjs
  • assets/template/js/captions.mjs
  • assets/template/js/copy.mjs
  • assets/template/js/engine.js
  • assets/template/js/footage.data.mjs
  • assets/template/js/footage.mjs
  • assets/template/js/i18n.js
  • assets/template/js/kit.js
  • assets/template/js/lint.mjs
  • assets/template/js/main.js
  • assets/template/js/reel.js
  • assets/template/js/scenes/hook.js
  • assets/template/js/scenes/lockup.js
  • assets/template/js/scenes/post.js
  • assets/template/js/scenes/proof.js
  • assets/template/js/screen.js
  • assets/template/js/timeline.mjs
  • assets/template/tools/aac.mjs
  • assets/template/tools/audio-check.mjs
  • assets/template/tools/capture.mjs
  • assets/template/tools/cutdown.mjs
  • assets/template/tools/energy.mjs
  • assets/template/tools/export-timeline.mjs
  • assets/template/tools/footage.mjs
  • assets/template/tools/kit.mjs
  • assets/template/tools/plan-check.mjs
  • assets/template/tools/pops.mjs
  • assets/template/tools/qa.mjs
  • assets/template/tools/render.mjs
  • assets/template/tools/sound-print.mjs
  • scripts/lib/browser.mjs
  • scripts/lib/net.mjs
  • scripts/lib/page.mjs
  • scripts/new-project.mjs
  • scripts/palette.mjs
  • scripts/ref-sheet.mjs
  • scripts/site-kit.mjs
  • scripts/trace-logo.mjs
  • scripts/ui-shot.mjs

Files

  • ../../.claude-plugin/marketplace.jsonasset703 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • SKILL.mdcore35,302 bytes
  • assets/template/README.mddoc3,453 bytes
  • assets/template/REVIEW.mddoc749 bytes
  • assets/template/assets/fonts/JetBrainsMono-Bold.ttfasset112,092 bytes
  • assets/template/assets/fonts/JetBrainsMono-Regular.ttfasset112,172 bytes
  • assets/template/assets/fonts/Montserrat-Black.ttfasset275,192 bytes
  • assets/template/assets/fonts/Montserrat-BlackItalic.ttfasset279,380 bytes
  • assets/template/assets/fonts/Montserrat-Bold.ttfasset261,588 bytes
  • assets/template/assets/fonts/OFL.txtdoc4,613 bytes
  • assets/template/audio/score.mjsruns6,930 bytes
  • assets/template/audio/synth/core.mjsruns13,130 bytes
  • assets/template/audio/synth/drums.mjsruns12,362 bytes
  • assets/template/audio/synth/fx.mjsruns17,927 bytes
  • assets/template/audio/synth/index.mjsruns1,115 bytes
  • assets/template/audio/synth/mix.mjsruns21,780 bytes
  • assets/template/audio/synth/sample.mjsruns4,943 bytes
  • assets/template/audio/synth/selftest.mjsruns5,469 bytes
  • assets/template/audio/synth/theory.mjsruns7,383 bytes
  • assets/template/audio/synth/tonal.mjsruns26,572 bytes
  • assets/template/brief.mddoc567 bytes
  • assets/template/css/fonts.cssasset1,187 bytes
  • assets/template/css/style.cssasset3,879 bytes
  • assets/template/index.htmlasset300 bytes
  • assets/template/js/captions.mjsruns3,822 bytes
  • assets/template/js/copy.mjsruns1,198 bytes
  • assets/template/js/engine.jsruns13,389 bytes
  • assets/template/js/footage.data.mjsruns129 bytes
  • assets/template/js/footage.mjsruns3,477 bytes
  • assets/template/js/i18n.jsruns386 bytes
  • assets/template/js/kit.jsruns10,145 bytes
  • assets/template/js/lint.mjsruns1,946 bytes
  • assets/template/js/main.jsruns11,368 bytes
  • assets/template/js/reel.jsruns1,971 bytes
  • assets/template/js/scenes/hook.jsruns4,384 bytes
  • assets/template/js/scenes/lockup.jsruns5,605 bytes
  • assets/template/js/scenes/post.jsruns229 bytes
  • assets/template/js/scenes/proof.jsruns4,271 bytes
  • assets/template/js/screen.jsruns19,377 bytes
  • assets/template/js/timeline.mjsruns2,545 bytes
  • assets/template/tools/aac.mjsruns3,821 bytes
  • assets/template/tools/audio-check.mjsruns11,935 bytes
  • assets/template/tools/capture.mjsruns27,539 bytes
  • assets/template/tools/cutdown.mjsruns5,089 bytes
  • assets/template/tools/demo-print.jsonasset1,076 bytes
  • assets/template/tools/energy.mjsruns7,148 bytes
  • assets/template/tools/export-timeline.mjsruns2,056 bytes
  • assets/template/tools/footage.mjsruns17,819 bytes
  • assets/template/tools/kit.mjsruns4,895 bytes
  • assets/template/tools/plan-check.mjsruns11,232 bytes
  • assets/template/tools/pops.mjsruns3,360 bytes
  • assets/template/tools/qa.mjsruns15,971 bytes
  • assets/template/tools/render.mjsruns10,882 bytes
  • assets/template/tools/sound-print.mjsruns33,982 bytes
  • references/direction.mddoc14,745 bytes
  • references/footage.mddoc16,428 bytes
  • references/genre-cards.mddoc16,606 bytes
  • references/look-cards.mddoc9,765 bytes
  • references/pipeline.mddoc22,951 bytes
  • references/scene-cookbook.mddoc21,998 bytes
  • references/sound-design.mddoc25,749 bytes
  • references/story-and-motion.mddoc17,636 bytes
  • references/synth-api.mddoc10,757 bytes
  • references/wow-library.mddoc6,556 bytes
  • scripts/lib/browser.mjsruns8,677 bytes
  • scripts/lib/net.mjsruns18,100 bytes
  • scripts/lib/page.mjsruns2,832 bytes
  • scripts/new-project.mjsruns5,757 bytes
  • scripts/palette.mjsruns6,428 bytes
  • scripts/ref-sheet.mjsruns23,685 bytes
  • scripts/site-kit.mjsruns57,297 bytes
  • scripts/trace-logo.mjsruns10,760 bytes
  • scripts/ui-shot.mjsruns10,914 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • motion-graphics

Repository facts

License
No license detected
Created
Sep 28, 2026
Last pushed
Sep 30, 2026
Forks
6
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 31 notes
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-graphics/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 115 signals by file

.claude-plugin/marketplace.json

  • Network accessline 3
    "owner": {     "name": "Mort1d",     "url": "https://github.com/Mort1d"
  • Network accessline 4
    "name": "Mort1d",     "url": "https://github.com/Mort1d"   },
  • Network accessline 5
    "url": "https://github.com/Mort1d"

skills/motion-graphics/assets/template/assets/fonts/OFL.txt

  • Network accessline 1
    Montserrat-Bold.ttf, Montserrat-Black.ttf, Montserrat-BlackItalic.ttf: Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)
  • Network accessline 2
    Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)
  • Network accessline 4
    JetBrainsMono-Regular.ttf, JetBrainsMono-Bold.ttf: Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
  • Network accessline 5
    Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
  • Network accessline 7
    These Font Software are licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: https://openfontlicense.org
  • Network accessline 9
    https://openfontlicense.org

skills/motion-graphics/assets/template/audio/score.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/core.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/drums.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/fx.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/index.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/mix.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/sample.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/audio/synth/theory.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/audio/synth/tonal.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/captions.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/copy.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/engine.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/footage.data.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/footage.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/i18n.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/kit.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/lint.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/main.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/reel.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/scenes/hook.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/scenes/lockup.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/scenes/post.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/scenes/proof.js

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/js/screen.js

  • Executable scriptline 1
    Executable file
  • Network accessline 101
    float h1(float n) { return fract(sin(n * 12.9898 + u_seed * 78.233) * 43758.5453); } float h2(vec2 p) { return fract(sin(dot(p, vec2(127.1, 311.7)) + u_seed * 17.13) * 43758.5453); } vec3 fetch(vec2 p, vec2 dir) {
  • Network accessline 103
    vec3 fetch(vec2 p, vec2 dir) {
  • Network accessline 141
    dir += vec2(gl * 24.0 * u_glitch.x, 0.0);   if (u_vhs.x > 0.0) dir += vec2(6.0 * u_vhs.x, 0.0);   vec3 c = fetch(p, dir);
  • Network accessline 142
    if (u_vhs.x > 0.0) dir += vec2(6.0 * u_vhs.x, 0.0);   vec3 c = fetch(p, dir);   c = grade(c);
  • Network accessline 143
    vec3 c = fetch(p, dir);
  • Network accessline 288
    if (hit) { hit.used = this.tick; continue; }       jobs.push((async () => {         const res = await fetch(url);
  • Network accessline 289
    jobs.push((async () => {         const res = await fetch(url);         if (!res.ok) throw new Error(`[screen] cannot load ${url} — run tools/footage.mjs cut, or check the path`);
  • Network accessline 290
    const res = await fetch(url);

skills/motion-graphics/assets/template/js/timeline.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/tools/aac.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/audio-check.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/capture.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Dangerous shell operationline 17
    //   node tools/capture.mjs eval "<js expression>" [--times 3.5,4]   render those times, print the expression's value
  • Network accessline 110
    function serve() {   const srv = http.createServer((req, res) => {     const u = decodeURIComponent(new URL(req.url, 'http://x').pathname);
  • Network accessline 111
    const srv = http.createServer((req, res) => {     const u = decodeURIComponent(new URL(req.url, 'http://x').pathname);     const p = path.join(ROOT, u === '/' ? 'index.html' : u);
  • Network accessline 112
    const u = decodeURIComponent(new URL(req.url, 'http://x').pathname);
  • Network accessline 198
    const srv = await serve();   const { proc, port, prof } = await launch(label);   const base = `http://127.0.0.1:${port}`;
  • Network accessline 199
    const { proc, port, prof } = await launch(label);   const base = `http://127.0.0.1:${port}`;   const ver = await (await fetch(`${base}/json/version`)).json();
  • Network accessline 200
    const base = `http://127.0.0.1:${port}`;
  • Network accessline 201
    const ver = await (await fetch(`${base}/json/version`)).json();
  • Network accessline 203
    const tab = await (await fetch(`${base}/json/new?about:blank`, { method: 'PUT' })).json();
  • Network accessline 220
    await c.send('Emulation.setFocusEmulationEnabled', { enabled: true });   const url = `http://127.0.0.1:${srv.address().port}/${page}${query ? `?${query}` : ''}`;
  • Network accessline 221
    const url = `http://127.0.0.1:${srv.address().port}/${page}${query ? `?${query}` : ''}`;
  • Dangerous shell operationline 487
    console.log('usage: node tools/capture.mjs doctor | still <t...> | sheet <t0> <t1> <n> | review | verify | render --from A --to B | eval "<expr>" [--times ...]');

skills/motion-graphics/assets/template/tools/cutdown.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/energy.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/assets/template/tools/export-timeline.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/footage.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/kit.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/plan-check.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/pops.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/qa.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/render.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/assets/template/tools/sound-print.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/references/footage.md

  • Network accessline 234
    import { wordsOf, chunks, shift, at } from '../captions.mjs'; // build (it may be async): the clip's subtitles, moved to the film's time — the cut 'talk' plays at 1× from S.talk[0] const subs = await (await fetch('assets/footage/talk.srt'))
  • Network accessline 235
    // build (it may be async): the clip's subtitles, moved to the film's time — the cut 'talk' plays at 1× from S.talk[0] const subs = await (await fetch('assets/footage/talk.srt')).text(); const caps = shift(chunks(wordsOf(subs), { max: 2, up
  • Network accessline 236
    const subs = await (await fetch('assets/footage/talk.srt')).text();

skills/motion-graphics/references/pipeline.md

  • Dangerous shell operationline 74
    node tools/capture.mjs eval "document.querySelectorAll('.card').length" --times 5

skills/motion-graphics/scripts/lib/browser.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/scripts/lib/net.mjs

  • Executable scriptline 1
    Executable file
  • Network accessline 22
    if (accept) headers.Accept = accept;   if (referer) headers.Referer = referer;   return fetch(url, { headers, redirect: 'follow', signal: AbortSignal.timeout(timeout) });
  • Network accessline 23
    if (referer) headers.Referer = referer;   return fetch(url, { headers, redirect: 'follow', signal: AbortSignal.timeout(timeout) }); }
  • Network accessline 24
    return fetch(url, { headers, redirect: 'follow', signal: AbortSignal.timeout(timeout) });
  • Network accessline 118
    for (let hop = 0; ; hop++) { // follow redirects by hand, checking every address       if (!allowPrivate) await assertPublic(at);       r = await fetch(at, { headers: { 'User-Agent': UA, ...(referer ? { Referer: referer } : {}) }, redirect:
  • Network accessline 119
    if (!allowPrivate) await assertPublic(at);       r = await fetch(at, { headers: { 'User-Agent': UA, ...(referer ? { Referer: referer } : {}) }, redirect: 'manual', signal: ctl.signal });       if (r.status < 300 || r.status >= 400 || !r.hea
  • Network accessline 120
    r = await fetch(at, { headers: { 'User-Agent': UA, ...(referer ? { Referer: referer } : {}) }, redirect: 'manual', signal: ctl.signal });
  • Network accessline 215
    [Credential-related source omitted]
  • Network accessline 216
    [Credential-related source omitted]
  • Network accessline 217
    [Credential-related source omitted]
  • Network accessline 222
    if (thirdParty && !(found && hasMedia(found))) {     try {       const j = await getJson(`https://api.fxtwitter.com/status/${link.id}`);
  • Network accessline 223
    try {       const j = await getJson(`https://api.fxtwitter.com/status/${link.id}`);       if (j?.tweet) { const fx = { ...fromFx(j.tweet), via: 'FxEmbed API (api.fxtwitter.com)' }; if (!found || hasMedia(fx)) found = fx; } else tried.push(`
  • Network accessline 224
    const j = await getJson(`https://api.fxtwitter.com/status/${link.id}`);
  • Network accessline 234
    async function resolveTelegram(link) {   try {     const html = await getText(`https://t.me/${link.channel}/${link.post}?embed=1&mode=tme`);
  • Network accessline 235
    try {     const html = await getText(`https://t.me/${link.channel}/${link.post}?embed=1&mode=tme`);     const media = [
  • Network accessline 236
    const html = await getText(`https://t.me/${link.channel}/${link.post}?embed=1&mode=tme`);

skills/motion-graphics/scripts/lib/page.mjs

  • Executable scriptline 1
    Executable file

skills/motion-graphics/scripts/new-project.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/scripts/palette.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/scripts/ref-sheet.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/motion-graphics/scripts/site-kit.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 42
    process.exit(1); } const START = /^@\w+$/.test(pos[0]) ? `https://t.me/${pos[0].slice(1)}` : /^https?:\/\//i.test(pos[0]) ? pos[0] : `https://${pos[0]}`;
  • Network accessline 43
    } const START = /^@\w+$/.test(pos[0]) ? `https://t.me/${pos[0].slice(1)}` : /^https?:\/\//i.test(pos[0]) ? pos[0] : `https://${pos[0]}`; try { new URL(START); } catch { console.error(`site-kit: not a web address: ${pos[0]}`); process.exit(1
  • Network accessline 44
    const START = /^@\w+$/.test(pos[0]) ? `https://t.me/${pos[0].slice(1)}` : /^https?:\/\//i.test(pos[0]) ? pos[0] : `https://${pos[0]}`;
  • Network accessline 217
    if (ref && !clone.querySelector(`#${CSS.escape(id)}`)) {         let defs = clone.querySelector('defs');         if (!defs) { defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); clone.insertBefore(defs, clone.firstChild);
  • Network accessline 218
    let defs = clone.querySelector('defs');         if (!defs) { defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); clone.insertBefore(defs, clone.firstChild); }         defs.appendChild(ref.cloneNode(true));
  • Network accessline 219
    if (!defs) { defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs'); clone.insertBefore(defs, clone.firstChild); }
  • Network accessline 222
    });     const r = svg.getBoundingClientRect();     clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
  • Network accessline 223
    const r = svg.getBoundingClientRect();     clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');     if (!clone.getAttribute('viewBox')) { try { const b = svg.getBBox(); clone.setAttribute('viewBox', `${b.x} ${b.y} ${b.width} ${b.heigh
  • Network accessline 224
    clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
  • Network accessline 739
    const gf = async (spec) => {   if (gfDown) return null;   try { const r = await get(`https://fonts.googleapis.com/css2?family=${spec}`, { ua: 'site-kit', timeout: 15000 }); return r.ok ? r.text() : null; } catch (e) {
  • Network accessline 740
    if (gfDown) return null;   try { const r = await get(`https://fonts.googleapis.com/css2?family=${spec}`, { ua: 'site-kit', timeout: 15000 }); return r.ok ? r.text() : null; } catch (e) {     gfDown = true;
  • Network accessline 741
    try { const r = await get(`https://fonts.googleapis.com/css2?family=${spec}`, { ua: 'site-kit', timeout: 15000 }); return r.ok ? r.text() : null; } catch (e) {

skills/motion-graphics/scripts/trace-logo.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 168
    fs.mkdirSync(path.dirname(out), { recursive: true }); fs.writeFileSync(`${out}.json`, JSON.stringify({ source: path.basename(src), crop, mode, w, h, origin: [r2(bx0 + cx), r2(by0 + cy)], iou: r2(iou), shapes }, null, 1)); fs.writeFileSync(`
  • Network accessline 169
    fs.writeFileSync(`${out}.json`, JSON.stringify({ source: path.basename(src), crop, mode, w, h, origin: [r2(bx0 + cx), r2(by0 + cy)], iou: r2(iou), shapes }, null, 1)); fs.writeFileSync(`${out}.svg`, `<svg xmlns="http://www.w3.org/2000/svg" 
  • Network accessline 170
    fs.writeFileSync(`${out}.svg`, `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${w} ${h}" width="${w}" height="${h}">\n${shapes.map((s) => `  <path fill="currentColor" fill-rule="evenodd" d="${s.d}"/>`).join('\n')}\n</svg>\n`);

skills/motion-graphics/scripts/ui-shot.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 38
    process.exit(1); } if (!/^[a-z][\w+.-]*:\/\//i.test(url)) url = `https://${url}`;
  • Network accessline 39
    } if (!/^[a-z][\w+.-]*:\/\//i.test(url)) url = `https://${url}`; const OUT = path.resolve(flags.out || 'assets/ui');
  • Network accessline 40
    if (!/^[a-z][\w+.-]*:\/\//i.test(url)) url = `https://${url}`;
  • Dangerous shell operationline 142
    if (k === 'eval') { await page.evaluate(`(() => { ${v} ; return true; })()`); done.push(`eval ${v}`); await sleep(150); continue; }

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 5 facts
Signal confidence: 112 facts

and 62 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/motion-graphics/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/motion-graphics/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/motion-graphics/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/motion-graphics/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/motion-graphics/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.