Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Campaign concept and copy brief generator for paid advertising. Reads brand-profile.json and optional audit results to produce structured campaign concepts, messaging pillars, and copy briefs. Outputs campaign-brief.md. Run after /ads dna and before /ads generate. Triggers on: "create campaign", "campaign brief", "ad concepts", "write ad copy", "campaign strategy", "ad messaging", "creative brief", "generate concepts"
.claude/skills/miosa-osa-ads-create/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -11% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -11% | 0% |
> Generates structured campaign concepts and platform-specific copy from your brand > profile and optional audit data. Outputs campaign-brief.md for use by /ads generate.
bash/ads create /ads create --platforms meta google /ads create --objective leads
| Flag | Type | Default | Description | |------|------|---------|-------------| | --platforms | string] | all | Platforms to target | | --objective | string | — | Campaign objective (sales, leads, awareness) |
Look for brand-profile.json in the current directory.
/ads dna <url> first or describe brand manually.Look for ADS-AUDIT-REPORT.md or any *-audit-results.md in the current directory.
/ads audit for weakness-targeted concepts."Ask (combine into one message — omit any already provided via flags):
Agents must run sequentially — copy-writer reads the file that creative-strategist writes, so running them in parallel creates a race condition on campaign-brief.md.
Step 4a — Spawn creative-strategist: Creates campaign-brief.md and writes the strategic sections: ## Brand DNA Summary, ## Campaign Concepts, ## Image Generation Briefs, ## Next Steps.
Step 4b — Spawn copy-writer: After creative-strategist completes, spawn copy-writer. It reads the existing campaign-brief.md and appends the ## Copy Deck section with platform-specific headlines, primary text, and CTAs.
Confirm campaign-brief.md exists and is complete. Present summary to user.
The following section headings are a parsing contract — agents downstream depend on these exact heading names.
markdown# Campaign Brief — [brand_name] **Generated:** [date] **Website:** [website_url] **Platforms:** [comma-separated list] **Objective:** [objective] **Concepts:** [N] ## Brand DNA Summary [3-sentence synthesis of brand-profile.json: voice, visual identity, target audience] ## Audit Context [If audit data found: top 3 weaknesses being addressed] [If no audit data: "No audit data — run /ads audit for weakness-targeted concepts"] ## Campaign Concepts ### Concept 1: [Name] **Hypothesis:** [why this will work — 1 sentence] **Primary Message:** [core message — 1 sentence] **Tone:** [voice reading from brand-profile.json] **Visual Direction:** [2-3 sentences describing imagery] **Target Platforms:** [platforms and rationale] **CTA:** [call to action text] **Addresses:** [audit finding or "general brand awareness"] ### Concept 2: [Name] [same structure] ## Copy Deck [appended by copy-writer agent — headlines, primary text, CTAs per concept per platform] ## Image Generation Briefs ### Brief 1: [Concept Name] — [Platform] **Prompt:** [exact generation prompt] **Dimensions:** [WxH] **Safe zone notes:** [constraint or "None"] ## Next Steps 1. Review all concepts and select which to move forward with 2. Run `/ads generate` to produce images from the briefs above 3. Adjust CTAs and offers in the copy deck for your specific promotion 4. Upload final assets to your ad platform managers
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 37,501 | 11,278 | -70% | 1 | 1 | 0% | 4,028 | 2,986 | -26% | 0 | 0 | — |
case-02 | fail→fail | 25,208 | 10,430 | -59% | 1 | 1 | 0% | 3,581 | 2,641 | -26% | 0 | 0 | — |
case-03 | fail→fail | 27,678 | 7,506 | -73% | 1 | 1 | 0% | 3,699 | 2,341 | -37% | 0 | 0 | — |
case-04 | fail→pass | 15,426 | 5,556 | -64% | 1 | 1 | 0% | 2,145 | 1,914 | -11% | 0 | 0 | — |
case-05 | fail→pass | 10,219 | 6,099 | -40% | 1 | 1 | 0% | 1,596 | 1,905 | +19% | 0 | 0 | — |
case-06 | fail→pass | 12,273 | 4,827 | -61% | 1 | 1 | 0% | 1,820 | 1,846 | +1% | 0 | 0 | — |
case-07 | fail→fail | 8,318 | 2,856 | -66% | 1 | 1 | 0% | 1,220 | 1,409 | +15% | 0 | 0 | — |
case-08 | fail→fail | 11,554 | 5,049 | -56% | 1 | 1 | 0% | 1,529 | 1,468 | -4% | 0 | 0 | — |
case-09 | pass→pass | 17,606 | 9,999 | -43% | 1 | 1 | 0% | 2,544 | 2,530 | -1% | 0 | 0 | — |
case-10 | pass→pass | 12,339 | 8,891 | -28% | 1 | 1 | 0% | 2,009 | 2,397 | +19% | 0 | 0 | — |
case-15 | fail→pass | 11,627 | 2,635 | -77% | 1 | 1 | 0% | 1,945 | 1,594 | -18% | 0 | 0 | — |
case-11 | fail→pass | 12,721 | 5,304 | -58% | 1 | 1 | 0% | 2,032 | 1,812 | -11% | 0 | 0 | — |
case-12 | pass→fail | 8,326 | 1,660 | -80% | 1 | 1 | 0% | 1,335 | 1,365 | +2% | 0 | 0 | — |
case-13 | fail→fail | 13,063 | 2,901 | -78% | 1 | 1 | 0% | 1,489 | 1,535 | +3% | 0 | 0 | — |
case-14 | pass→pass | 9,533 | 11,123 | +17% | 1 | 1 | 0% | 1,544 | 2,764 | +79% | 0 | 0 | — |
case-16 | pass→pass | 12,644 | 4,061 | -68% | 1 | 1 | 0% | 2,140 | 1,793 | -16% | 0 | 0 | — |
case-17 | fail→pass | 9,800 | 2,460 | -75% | 1 | 1 | 0% | 1,412 | 1,416 | +0% | 0 | 0 | — |
case-18 | fail→pass | 12,954 | 3,447 | -73% | 1 | 1 | 0% | 1,899 | 1,603 | -16% | 0 | 0 | — |
case-19 | fail→pass | 8,401 | 2,555 | -70% | 1 | 1 | 0% | 1,394 | 1,442 | +3% | 0 | 0 | — |
case-20 | fail→pass | 4,956 | 9,688 | +95% | 1 | 1 | 0% | 684 | 2,823 | +313% | 0 | 0 | — |
case-21 | fail→fail | 12,465 | 6,961 | -44% | 1 | 1 | 0% | 2,276 | 2,140 | -6% | 0 | 0 | — |
case-22 | pass→pass | 5,303 | 11,284 | +113% | 1 | 1 | 0% | 747 | 2,475 | +231% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.