ads-audit
Full multi-platform paid advertising audit with parallel subagent delegation. Analyzes Google Ads, Meta Ads, LinkedIn Ads, TikTok…
Generate on-brand YouTube thumbnails for Ben van Sprundel using Higgsfield in one shot. Use when the user says create a thumbnail, make a YT thumbnail, thumbnail for video, generate ben thumbnail, variation of last thumbnail, or shares a video concept and asks for a thumbnail.
Claude Code
$ npx -y skills add naveedharri/benai-skills --skill youtube-thumbnail-generate --agent claude-code
Codex
$ npx skills add naveedharri/benai-skills --skill youtube-thumbnail-generate -a codex -y
Cursor
$ npx skills add naveedharri/benai-skills --skill youtube-thumbnail-generate -a cursor -y
Gemini CLI
$ npx skills add naveedharri/benai-skills --skill youtube-thumbnail-generate -a gemini-cli -y
GitHub Copilot
$ npx skills add naveedharri/benai-skills --skill youtube-thumbnail-generate -a github-copilot -y
OpenCode
$ npx skills add naveedharri/benai-skills --skill youtube-thumbnail-generate -a opencode -y
Windsurf
$ npx skills add naveedharri/benai-skills --skill youtube-thumbnail-generate -a windsurf -y
name: youtube-thumbnail-generate description: > Generate on-brand YouTube thumbnails for Ben van Sprundel using Higgsfield in one shot. Use when the user says create a thumbnail, make a YT thumbnail, thumbnail for video, generate ben thumbnail, variation of last thumbnail, or shares a video concept and asks for a thumbnail. Auto-infers mode from the inputs (variation, new-with-ben, ben-plus-other, no-face), defaults to 3 variants, and asks at most one question. Uses reference images as the identity anchor (a current photo of Ben from refs/, plus optional past thumbnails or style anchors). No Soul training is required. Reads the locked style spec at Context/youtube-thumbnail-style.md if present. Real logos are never rendered. The thumbnail fills its frame edge-to-edge; the user composites the actual logo on top in post. disable-model-invocation: true
One-shot thumbnail generation. Takes a concept (plus optional reference image and count), infers everything else, ships 3 variants and a manifest.
Two things, ideally both in the user's first message:
1. **Concept** — what the thumbnail should show. A sentence or phrase. ("Claude Code Skills, why it changes everything for solo founders") 2. **Reference image(s)** (optional but recommended, may be multiple) — a past thumbnail, a photo of Ben, a second subject, a style anchor, a real logo PNG, or any combination. Determines the mode AND ALL of them must be passed into the generation. Never silently drop a user-supplied reference; if they gave you one, it has to end up in `medias[]`. If they gave you a LIST, read EVERY image in the list, then pass every relevant one to `medias[]` (don't pre-select just one). Also: every reference image MUST be visually read (via the `Read` tool on the file path) before the prompt is built, so the prompt captures each reference's actual style, texture, palette, composition, and recurring motifs rather than relying only on the style spec defaults.
**If the user mentions a reference image but does not provide a path or attachment, ASK for the path BEFORE doing anything else.** Examples that require asking: "use my previous thumbnail as a ref" (which file?), "include the Anthropic logo" (where is the PNG?), "match this style" (which image?). Ask in one short line: *"Got it — what's the file path for the reference image?"* Do not guess, do not proceed, do not generate without seeing the path.
Optional third: **variant count**. Defaults to 3. Max 4.
If the concept is missing or genuinely unclear, ask ONE combined question:
> "What should the thumbnail show, and how many variations do you want? (default 3)"
Do not split into multiple questions. Do not ask about mode, model, or palette; all of that is inferred or read from the style spec.
Every `new-with-ben` thumbnail uses a reference photo of Ben as the identity anchor, passed as `medias[0]`. The photo lives at `Projects/youtube/thumbnails/refs/ben_reference_{YYYY-QQ}.jpg`.
If the user did NOT attach a photo of Ben and there is no `ben_reference_*.jpg` in `refs/`, ask once for a photo. Without it, `new-with-ben` cannot produce a faithful Ben rendering.
If multiple `ben_reference_*.jpg` files exist, pick the most recent (highest `YYYY-QQ` suffix). Note which one was used in the manifest.
| User attached | Concept hints | Mode | Model | Reference flow | |---|---|---|---|---| | 16:9 image that looks like a past thumbnail | "vary this", "tweak this", "redo with X" | `variation` | `nano_banana_2` | past thumbnail as `medias[0]` | | A portrait of Ben | Ben centered in the concept | `new-with-ben` | `nano_banana_2` | user-supplied photo as `medias[0]` | | Two images (Ben + something) | "Ben plus X" | `ben-plus-other` | `nano_banana_2` (multi-ref) | Ben as `medias[0]`, second subject as `medias[1]` | | No image | Object or abstract concept, no Ben | `no-face` | `nano_banana_2` (or `gpt_image_2` if concept centers on rendered text) | optional style anchor as `medias[0]` | | No image | Concept mentions Ben | `new-with-ben` | `nano_banana_2` | most recent `ben_reference_*.jpg` from `refs/` as `medias[0]`. If none, ask. |
`nano_banana_2` is the default model for every mode. Switch to `gpt_image_2` only when text rendering is the hero element of a no-face thumbnail.
Read `Context/youtube-thumbnail-style.md` if it exists. Pull:
If the spec is missing or has `[FILL]` blocks: don't refuse. Fall back to the locked Ben AI thumbnail visual language (see `references/visual-language.md` for the full catalog). Built-in defaults:
Surface a one-line note at the end (not before generati
Full multi-platform paid advertising audit with parallel subagent delegation. Analyzes Google Ads, Meta Ads, LinkedIn Ads, TikTok…
Budget allocation and bidding strategy review across all ad platforms. Evaluates spend distribution, bidding strategy…
Competitor ad intelligence analysis across Google, Meta, LinkedIn, TikTok, and Microsoft. Analyzes competitor ad copy, creative…
Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms. Detects creative…
Google Ads deep analysis covering Search, Performance Max, Display, YouTube, and Demand Gen campaigns. Evaluates 74 checks across…
Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust…
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…