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 shawnla90/gtm-coding-agent --skill podcast-shortsgit clone --depth 1 https://github.com/shawnla90/gtm-coding-agentWrote 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/shawnla90/gtm-coding-agent/podcast-shorts)<a href="https://agentmods.dev/skills/shawnla90/gtm-coding-agent/podcast-shorts"><img src="https://agentmods.dev/badge/skills/shawnla90/gtm-coding-agent/podcast-shorts/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/shawnla90/gtm-coding-agent/podcast-shorts"><img src="https://agentmods.dev/badge/skills/shawnla90/gtm-coding-agent/podcast-shorts.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 2 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Output Handling · line 16 Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.Fix: Set explicit limits on output length, generation count, and rate. Use max_tokens and truncation to prevent unbounded output.
- medium MCP Rug Pull · line 51 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.00061 | $0.01383 |
| Opus 5 | $0.00030 | $0.00691 |
| Sonnet 5 | $0.00012 | $0.00277 |
| Haiku 4.5 | $0.00006 | $0.00138 |
Grade A, and why
podcast-shorts 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 12d 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 — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
podcast-shorts — transcript-anchored vertical clips
Raw recording → word-timestamped transcript → planned cuts → styled overlay render → one-pass master composite → QA gate → social encodes → Buffer drafts.
When to invoke
- A podcast/interview recording (ideally per-speaker video + WAV exports) needs to become vertical clips.
- The user describes moments by content ("the story about the pricing call") — the transcript layer turns that into timestamps.
Do NOT invoke for single-source talking-head recuts with no cutting plan, or for meme-style captioning.
Pack layout
<pack-dir>/
pack.json # the spec — see pack.example.json
source/ # per-speaker video + lossless WAV exports
transcripts/ # written by transcribe.py + plan_clips.py
projects/clip_NN/ # HyperFrames overlay projects (compose_overlay.py)
out/ # masters + delivery encodes
clips/ # word jsons, captions, buffer_urls.json
review/framing.json # optional: face_x overrides + cameo source ranges
pack.json schema
See pack.example.json. Per clip: slug, mode (square | wide | guest | duo), lead
(speaker_a | speaker_b), start/end (source seconds), start_text/end_text (the words
the clip must open and close on — anchors, not guesses), hook (two overlay lines),
cta, optional kicker, speaker_names, cameo_text, tx_windows, drops, blocks.
Top level: sources, framing_defaults, optional series (day-order slugs for Buffer).
Workflow
- Transcribe —
python3 transcribe.py <pack> [idx]. Whisper (word timestamps) per speaker track. Add your product names to ASR_FIXES first; whisper mangles proper nouns. - Plan cuts —
python3 plan_clips.py <pack> <idx>. Anchors the cut onstart_text/end_textword matches, jump-cuts silences, compensates whisper's early word-end stamps (END_COMP/BLEED), writestranscripts/clip_NN.cut.jsonincludingfade_startanchored to the last word. - Compose overlay —
python3 compose_overlay.py <pack> <idx>. Graphics-only transparent HyperFrames project (footage never touches the browser). Keep every text card-host atdata-start="0"— card hosts run their own scheduler clock, and a nonzero data-start fights the gsap timeline and flashes on frame 0. - Render —
npx hyperframes render <pack>/projects/clip_NN/public --format mov -o <abs>/projects/clip_NN/renders/overlay.mov. ProRes 4444 alpha; delete after step 5 (300-800MB each). - Composite master —
python3 final_composite.py <pack> <idx>. One ffmpeg pass: denoise, speed bake, crops, alpha overlay, loudnorm, end fade. The audio chain endsasetpts=N/SR/TB— do not remove it (see below). - Social encodes —
./make_delivery.sh. 8-bit yuv420p re-encode, both streams fresh,asetpts=N/SR/TBon audio. - QA gate —
python3 qa_delivery.py delivery _social. Every clip must PASS before anything is hosted or drafted. - Stage drafts — host the encodes anywhere with public URLs, write
clips/buffer_urls.json({slug: url}) andclips/captions.json, thenpython3 buffer_schedule.py <pack> all go. NeedsBUFFER_ACCESS_TOKENandBUFFER_ORG_IDenv vars. Drafts, not scheduled posts — a human reviews.
What ships with it
16 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.
- .gitignore 103 B
- assets/fonts/Inter-400-latin.woff2 23 KB
- assets/fonts/Inter-700-latin.woff2 24 KB
- assets/fonts/OFL.txt 4.3 KB
- assets/README.md 366 B
- buffer_schedule.py 6.5 KB runs code
- compose_overlay.py 12 KB runs code
- final_composite.py 7.4 KB runs code
- make_delivery.sh 1.1 KB runs code
- pack.example.json 1.6 KB
- plan_clips.py 9.4 KB runs code
- qa_delivery.py 3.6 KB runs code
- README.md 2.3 KB
- requirements.txt 152 B
- run.sh 1.1 KB runs code
- transcribe.py 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.
- 12d ago First seen · 101 lines · 61 tokens per session scan A 11ca1c3a4230
podcast-shorts is a skill published in the GitHub repository shawnla90/gtm-coding-agent (145 stars, last pushed 9d ago), licensed MIT. It adds 61 tokens to every session and 1,383 once invoked, about $0.0003 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…