Contents
0%Hey!
I built a Claude Skill that turns a product URL into 5 finished UGC ads. Here's how it works.
What the Skill Produces
Zesty Paws Calming Bites jar
Actor reference
Zesty Paws Calming Bites jar
Actor referenceThat's two markdown files at work. No follow-up prompting from me, no manual work in Starpop.
What's a Claude Skill
A Claude Skill is a markdown file that teaches Claude how to do a specific job. You drop the file into Claude Desktop, and Claude knows when to fire it and what to do.
That's it. No installation, no SDK, no API. Drag the file in, ask for what you want.
Mine for Starpop ships as two skill files that work together. One writes the prompts, the other drives the browser.
Why Two Skills, Not One
I tried jamming the prompt-writing and the browser-driving into a single skill. It didn't work.
The two halves of the job have different shapes. Writing prompts is research, validation, and creative output. Driving Starpop is opening tabs, clicking buttons, and grabbing share links. Mashing them into one skill blurred Claude's behavior and made the agent skip the "approve the plan before I execute" gate.
Splitting them fixed both problems. Skill 1 ends with "approve all 5?", and Skill 2 only fires once the user says "go."
Skill 1: The Prompt Writer
Teaches Claude the Seedance 2.0 prompt grammar across 13 UGC formats. Triggers when the user drops a URL or asks for ads.
The flow is 4 steps.
Fetch the brand
Claude visits the URL, extracts brand name, products, tone, audience, and selling points. Anything it had to guess gets flagged with [assumed].
Validate with the user
The skill posts the brief and waits for confirmation before writing a single prompt. This is the most important step. Bad brief equals bad ad.
Pick formats
Lists the 13 UGC categories with 1-line descriptions. The user picks any combo.
Write the prompts
For each chosen format, the skill writes a Seedance 2.0 prompt following the grammar in its body. Then asks for explicit "go" before handing off.
Zesty Paws product
Actor reference
Zesty Paws product
Actor referenceSkill 2: The Workflow Agent
Takes over once the prompts are approved. Opens Starpop in Chrome, creates the project, uploads the assets, paste each prompt, clicks Generate, grabs the share links.
Two design choices in this skill matter more than the rest.
Text reads, not screenshots
The Claude in Chrome extension can read pages two ways: as text (cheap), or as a screenshot (expensive). Screenshots burn the chat context window in 8 to 10 page loads.
So the skill is hard-rule: prefer text reads, only screenshot when verifying generated video output. That single rule keeps the agent's session usable across 5 to 10 generations instead of dying after 2.
Live setup verification, not yes/no questions
Most agents ask the user to self-report their setup. "Is your account set up? Y/N." This skill doesn't. After confirming the extension is installed, it takes over the browser and verifies the rest live.
It opens a Starpop tab, reads the page, checks login, navigates to Brands, confirms a brand with at least one product exists, caches the product list. Three live checks, zero Q&A.
The user experience is "the agent ran a quick scan of my account" instead of "the agent asked me 5 setup questions."
How the Two Skills Hand Off
The handoff is text-based. Skill 1 ends with the same line every time:
Approve all 5? Once you say "go" I'll hand off to
starpop-workflow-agentto execute them in Starpop.
When the user says "go," Claude routes to Skill 2 because Skill 2's description matches "execute the plan" / "run the videos." That's it. Description equals routing.
3 Lessons From Shipping This
Skill descriptions are the routing layer
Claude reads the description to decide whether to fire your skill. List every phrase a user might say, every category, every entity. Vague descriptions don't fire. Overlapping descriptions fire together and confuse Claude.
Mine name every trigger phrase explicitly. "Drop a URL," "make me UGC ads," every category name. Verbose on purpose.
Force a validation gate
Claude wants to be helpful and will sprint past brief validation if you let it. Build in an explicit gate. The skill rule should literally read: "Do not write prompts until the user confirms."
Without that gate, the agent guesses on bad assumptions and your output suffers.
Hand off skills, don't merge them
A monolithic skill that does everything sounds clean but isn't. Claude routes on description match, and the more responsibilities one description carries, the more it misfires.
Split work into discrete skills with non-overlapping descriptions. Hand off via natural-language phrases. Let Claude's router compose them.
The Skill in Action, More Brands
Same two skill files, different products.
Olipop Strawberry Vanilla can
Olipop Strawberry Vanilla can
Zesty Paws product
Zesty Paws product
COMFRT burgundy hoodie
COMFRT burgundy hoodieThe agent picks formats per brand based on the extracted brief. Soda goes ASMR. Apparel goes lifestyle. Skincare goes morning UGC. The format-selection logic lives in Skill 1's body and adapts to whatever the research surfaces.
Next Steps
If you want to use the agent on your brand:
- Set up the Starpop Claude Agent. The setup page has the visual walkthrough plus direct downloads of both skill files (latest at the top).
- Try Starpop free for 7 days. Drop a brand URL and watch the agent run.
- Join the Discord. I post skill updates there first.
If you want the user-side tutorial, the companion post is How to Use Claude to Generate UGC Ads for Your E-commerce Brand.

