adapting-formats
Resizes an existing image ad into the other shapes it has to run in — reads the ad first, then regenerates it at each ratio with…
Analyzes the ads competitors are running — the ones live now, the ones they have already stopped, and which have run longest. Watches the video ads and reads the image ads with a vision model, so every finding comes from the ad itself rather than its caption. Finds the patterns
Claude Code
$ npx -y skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads --agent claude-code
Codex
$ npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a codex -y
Cursor
$ npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a cursor -y
Gemini CLI
$ npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a gemini-cli -y
GitHub Copilot
$ npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a github-copilot -y
OpenCode
$ npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a opencode -y
Windsurf
$ npx skills add SupercmoHQ/superCMO-skills --skill researching-competitor-ads -a windsurf -y
name: researching-competitor-ads description: Analyzes the ads competitors are running — the ones live now, the ones they have already stopped, and which have run longest. Watches the video ads and reads the image ads with a vision model, so every finding comes from the ad itself rather than its caption. Finds the patterns across the set — what is holding, what was dropped, and what nobody runs. Research only — nothing is generated or recommended here. Use when the user wants competitor ads researched, an ad teardown, a competitive or category analysis, to see what ads a named brand is running, or to find what is working and what nobody has tried yet. license: Apache-2.0 metadata: version: "0.3.2" category: creative summary: "Analyzes what your competitors are advertising and shows you what is actually working — the ads that have run longest, the ones they quietly dropped, and what the winners have in common. A vision model watches the image and video ads that carry the signal — the long-runners, the ones just launched, the ones they dropped — the whole way through. So you learn how each one is built: the hook, the pacing, when the product lands, the proof and the offer. You also get the angles nobody in your category has taken."
Analyze what competitors are advertising, work out what is holding, and map what the category covers. **Research only — nothing is generated, posted or planned here.** Deciding what to make next is `planning-campaigns`' job.
Three ways to find out. Try them in order, and stop at the first one that works.
is absent or empty, move on.
website to learn what they sell in their own words, then `social_research` on `meta_ad_library` / `search_ads` using those words. Each ad names the advertiser who ran it. Show the user a plain list of those advertiser names with the number of ads each appeared on, most ads first — nothing else — and ask which are real competitors.
You need **a name** for each competitor, and a website where there is one: Step 3 uses the domain to prove the ads came from the right company. A competitor saved as "website unconfirmed" needs no question: Step 3 checks its page by what its ads sell, and takes its website from the ads.
Ask once, bundled into a single message, always with a free-text way out. Skip any of these the brief already answers.
| Ask | When | How | | --- | --- | --- | | **The country the ads run in** | The brief names no market and the user's own site implies none. | Offer the likely markets, and a way to type another. | | **How deep to go** | The brief doesn't say. | Offer the quick scan first and recommend it; say a detailed analysis watches many more ads per competitor, and costs accordingly. | | **What they want to learn** | Optional, and only where the brief says nothing at all about what the research is for. | **One open field, no options to choose from.** Ask what they want to come away knowing. |
**Take whatever the brief says about what they are after, in their own words, and don't ask again.** Carry those words through to the analysis, which closes by answering them.
Where nothing is given and nothing is answered, run it neutrally: a quick scan, the market the user's own site sells to, and a report that says no goal was set. Say in one sentence what you took, and keep going.
Every number is per competitor, so a run costs what it costs times the number of competitors. Step 4's script holds them and enforces them — pass it the depth and don't re-count.
| Depth | Ads kept, live / stopped | Ads watched, live / stopped | | --- | --- | --- | | Quick scan | 30 / 30 | 4 / 2 | | Detailed analysis | 60 / 60 | 20 / 20 |
Read `references/pulling-competitor-ads.md` and follow it. Pull the live set and the stopped set separately, and keep them apart.
Every pull is written to a response file, and the call returns its path in `saved.path`. All of a run's responses land in one directory — **note that directory**, it is Step 4's only input. Read `saved.cursor` for the next page. Don't take the ads apart yourself.
Run the script over the directory the responses were saved to:
python3 <skill-dir>/scripts/build_ledger.py <responses-dir> --depth <quick|detailed> --out <saved.output_dir>
`--depth` is what Step 2 settled. `--out` is `saved.output_dir`, the same on every response of the run — the folder the tool set aside for it. Run the script by its full path rather than moving into the skill directory. **Every file this run produces goes in that folder.**
**Read `ledger.md`.** It holds the counts and campaigns per competitor, the ads to watch with their media URLs, the copy every ad ran with — grouped so repeated wording shows as repeated — and the row behind every ad. Say in one line how many ads are in the ledger and how many are marked to watch, then carry on — don't stop for approval. The cap lines at the top of the file go into the analysis's coverage section verbatim.
Read `references/reading-one-ad.md` and follow it.
`ledger.md`'s **Watch these** section lists each ad's `ref` and its media URL, split into videos and stills. Send them in batches of at most ten — `video_analysis` for the videos, `image_analysis` for the stills. They are watched in parallel, so a batch takes about as long as its slowest ad.
**Write each teardown to `per-ad-teardowns.md` in the run's folder, as its batch comes back** — the `ref` as a heading, then the teardown verbatim. Never watch the same `ref` twice, and never watch an ad the ledger didn't mark.
Open-source skills that empower any AI agent (Claude, Cursor, Hermes, etc.) to generate end-to-end marketing campaigns - UGC videos, ad videos, product photography and more.
Resizes an existing image ad into the other shapes it has to run in — reads the ad first, then regenerates it at each ratio with…
Analyzes a brand from its own website — its colours and fonts, the logo and imagery it uses, how it sounds, who it sells to, the…
Audits the ads a company is running itself — what's live now, what it has already stopped, and which have run longest. Watches…
Normalizes a product into generation-ready facts — from an e-commerce URL (a clean description plus curated product images) or…
Clones an existing video ad — reads a supplied reference ad, keeps its structure, pacing, shots, camera and hook, and rebuilds it…
Makes a product ad video — a product showcase with no one on screen, or a story or lifestyle commercial where a presenter or…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…