openads-ai 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,38 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+ const pkgDir = path.resolve(__dirname, '..');
8
+
9
+ function findPiPkgDir() {
10
+ // Candidate 1: Nested under openads-ai/node_modules
11
+ const nestedPath = path.resolve(pkgDir, 'node_modules', '@earendil-works', 'pi-coding-agent');
12
+ if (fs.existsSync(nestedPath)) return nestedPath;
13
+
14
+ // Candidate 2: Hoisted node_modules (climbing up)
15
+ let currentDir = pkgDir;
16
+ while (currentDir !== path.dirname(currentDir)) {
17
+ const parentNodeModules = path.resolve(currentDir, '..', 'node_modules', '@earendil-works', 'pi-coding-agent');
18
+ if (fs.existsSync(parentNodeModules)) return parentNodeModules;
19
+ currentDir = path.dirname(currentDir);
20
+ }
21
+ return null;
22
+ }
23
+
24
+ const piPkgDir = findPiPkgDir();
25
+ if (!piPkgDir) {
26
+ console.log('OpenAds: @earendil-works/pi-coding-agent not found. Skipping white-label patch.');
27
+ process.exit(0);
28
+ }
29
+
30
+ const piPkgPath = path.join(piPkgDir, 'package.json');
31
+ try {
32
+ const piPkg = JSON.parse(fs.readFileSync(piPkgPath, 'utf8'));
33
+ piPkg.piConfig = { name: 'openads', configDir: '.openads' };
34
+ fs.writeFileSync(piPkgPath, JSON.stringify(piPkg, null, 2));
35
+ console.log('OpenAds: Successfully patched pi-coding-agent for branding!');
36
+ } catch (e) {
37
+ console.error('OpenAds: Failed to patch branding on pi-coding-agent package.json:', e.message);
38
+ }
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: google-ads
3
+ description: Audit and optimize Google Ads campaigns, keywords, and bids.
4
+ ---
5
+ # Google Ads Skill
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when the user is:
10
+ - Auditing or analyzing Google Ads campaigns, ad groups, or keywords
11
+ - Writing responsive search ads (RSAs)
12
+ - Planning keyword strategy or negative keywords
13
+ - Troubleshooting conversion tracking or ROAS issues
14
+ - Using the `/audit-google-ads` or `/write-ad-copy` templates
15
+
16
+ Read `product-marketing.md` first to understand the product context.
17
+
18
+ ---
19
+
20
+ ## Core Concepts to Apply
21
+
22
+ ### Campaign Structure Best Practices
23
+ - **Single Theme Ad Groups (STAGs)**: One tight keyword theme per ad group
24
+ - **Exact and Phrase match first**, add Broad only after proving performance
25
+ - **Negative keywords** are as important as positive keywords
26
+
27
+ ### Bidding Strategy Decision Tree
28
+ ```
29
+ Do you have ≥30 conversions/month?
30
+ Yes → Smart Bidding (Target CPA or Target ROAS)
31
+ No → Manual CPC or Maximize Clicks with a max CPC cap
32
+ ↳ Never use Broad match on Manual CPC (budget bleed risk)
33
+ ```
34
+
35
+ ### Quality Score Levers
36
+ 1. **Expected CTR** — headline relevance to keyword
37
+ 2. **Ad Relevance** — keyword in headlines/description
38
+ 3. **Landing Page Experience** — load speed, relevance
39
+ - QS 7+ is good; 9–10 is excellent; below 5 needs attention
40
+
41
+ ### Responsive Search Ads (RSA) Writing Rules
42
+ - **15 headlines**, max 30 characters each (spaces count)
43
+ - **4 descriptions**, max 90 characters each
44
+ - Pin headline 1 = brand or primary value prop
45
+ - Include at least one headline with the exact keyword
46
+ - At least one urgency or CTA in descriptions
47
+
48
+ ---
49
+
50
+ ## MCP Tools to Use
51
+
52
+ If Google Ads MCP is connected, you have access to tools for retrieving campaign performance, keyword metrics, search terms, and generating drafts.
53
+ **Always use draft → preview → confirm for any write operation. Never execute without user confirmation.**
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: meta-ads
3
+ description: Plan, launch, and optimize Meta (Facebook/Instagram) ad campaigns.
4
+ ---
5
+ # Meta Ads Skill
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when the user is:
10
+ - Planning, launching, or auditing Meta (Facebook/Instagram) ad campaigns
11
+ - Writing ad copy or creative briefs for Meta
12
+ - Troubleshooting delivery, ROAS, or frequency issues
13
+
14
+ Read `product-marketing.md` first to understand the product context.
15
+
16
+ ---
17
+
18
+ ## Meta Campaign Architecture
19
+
20
+ **Campaign Budget Optimization (CBO)** — Meta distributes budget across ad sets automatically. Use when you trust Meta's algorithm and have proven audiences.
21
+ **Ad Set Budget Optimization (ABO)** — You control budget per ad set. Use during testing phases.
22
+
23
+ ## Creative Strategy
24
+ - **UGC-style**: Lo-fi, authentic, filmed on phone
25
+ - **Direct response**: Problem → Agitate → Solution in first 3 seconds
26
+ - **Text hooks on video**: Caption key message; 85%+ watch without sound
27
+ - **Variety**: 3+ creative concepts per campaign
28
+
29
+ ### Hook Formula (First 3 Seconds)
30
+ - Option A (Pain Hook): "Tired of [pain point]?"
31
+ - Option B (Curiosity): "Here's why [unexpected claim]..."
32
+ - Option C (Direct): "This [product] will [specific benefit]"
33
+ - Option D (Social Proof): "[Number] people already [result]"
34
+
35
+ ### Ad Copy Structure
36
+ 1. Hook (1-2 lines)
37
+ 2. Empathy + Problem (2-3 lines)
38
+ 3. Solution + Differentiator (3-4 lines)
39
+ 4. Social Proof (1-2 lines)
40
+ 5. CTA (clear, single action)
41
+
42
+ ---
43
+
44
+ ## MCP Tools to Use
45
+ If Meta Ads MCP is connected, you can pull campaign insights, ad sets, and ad creative performance. Ensure you review the performance to provide data-driven recommendations.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: video-ads
3
+ description: Script and plan video ads for any platform.
4
+ ---
5
+ # Video Ads
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when the user needs to:
10
+ - Write a video ad script (Meta, YouTube, TikTok)
11
+ - Plan a video creative brief for a production team
12
+ - Optimize existing video ads for better performance
13
+ - Choose the right video format for their platform
14
+
15
+ Read `product-marketing.md` and `ad-creative.md` first.
16
+
17
+ ---
18
+
19
+ ## Video Ad Structures
20
+
21
+ ### 1. Problem-Solution (15-30 seconds)
22
+ Best for: Meta, Instagram, TikTok
23
+ ```
24
+ [0-3s] Hook: State the pain point visually or verbally
25
+ [3-10s] Agitate: Show what happens if they don't solve it
26
+ [10-20s] Solution: Show your product fixing the problem
27
+ [20-25s] Proof: Quick testimonial or stat
28
+ [25-30s] CTA: "Try it free" / "Link in bio"
29
+ ```
30
+
31
+ ### 2. Testimonial / UGC (30-60 seconds)
32
+ Best for: Meta, TikTok, YouTube Shorts
33
+ ```
34
+ [0-3s] Hook: "I tried [product] and here's what happened..."
35
+ [3-20s] Story: Before state → discovered product → transformation
36
+ [20-40s] Proof: Show specific results (screenshots, numbers)
37
+ [40-50s] Recommendation: "If you're struggling with X, try this"
38
+ [50-60s] CTA
39
+ ```
40
+
41
+ ### 3. Educational / How-To (60-120 seconds)
42
+ Best for: YouTube pre-roll, LinkedIn
43
+ ```
44
+ [0-5s] Hook: "How to [desirable outcome] in [timeframe]"
45
+ [5-60s] Teach: 3 actionable steps (value-first)
46
+ [60-90s] Bridge: "But if you want to skip the manual work..."
47
+ [90-110s] Product demo: Show it in action
48
+ [110-120s] CTA
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Platform-Specific Video Specs
54
+
55
+ | Platform | Ideal Length | Aspect Ratio | Sound |
56
+ |---|---|---|---|
57
+ | Meta Feed | 15-30s | 1:1 or 4:5 | Optional (use captions) |
58
+ | Instagram Stories | 15s max | 9:16 | On by default |
59
+ | Instagram Reels | 15-30s | 9:16 | On (use trending audio) |
60
+ | TikTok | 15-60s | 9:16 | On (use trending audio) |
61
+ | YouTube Pre-roll | 6s or 15s | 16:9 | On |
62
+ | YouTube In-stream | 30-120s | 16:9 | On |
63
+ | LinkedIn | 30-90s | 1:1 or 16:9 | Off (use captions) |
64
+
65
+ ## The 3-Second Rule
66
+ 85% of people who don't engage in the first 3 seconds will never engage. The hook must:
67
+ - Show motion immediately (no static frames)
68
+ - Use text overlay with the key message
69
+ - Create curiosity or pattern disruption
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: analytics
3
+ description: Set up tracking, analyze traffic, and fix attribution gaps.
4
+ ---
5
+ # Analytics Skill
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when analyzing website traffic, setting up GA4, tracking events, or dealing with attribution gaps.
10
+
11
+ ---
12
+
13
+ ## The Attribution Problem
14
+ Always remind the user: no platform has 100% perfect tracking.
15
+ - **Platform data (Ads, Meta)** claims credit for everything.
16
+ - **GA4** underreports due to GDPR consent rejection and cross-device drops.
17
+ - **Truth** is usually in the middle. Use GA4 for relative trends, not absolute truth.
18
+
19
+ ## GA4 Event Strategy
20
+ Recommend standard events over custom events when possible:
21
+ 1. `generate_lead`
22
+ 2. `sign_up`
23
+ 3. `purchase`
24
+ 4. `add_to_cart`
25
+
26
+ ## UTM Best Practices
27
+ Enforce strict UTM taxonomy:
28
+ - `utm_source`: The platform (e.g., `google`, `facebook`, `linkedin`)
29
+ - `utm_medium`: The channel type (e.g., `cpc`, `social`, `email`)
30
+ - `utm_campaign`: The specific campaign name
31
+ - `utm_content`: The ad variant or creative
32
+ - `utm_term`: The keyword (for search)
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: autoresearch
3
+ description: Autonomously generate, score, and iterate on marketing assets.
4
+ ---
5
+ # Autoresearch (Autonomous Improvement Loop)
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate this skill when the user wants to autonomously generate, test, and iterate on marketing hypotheses. This is the **Modify → Verify → Keep/Discard → Repeat** loop applied to digital marketing.
10
+
11
+ Use this for tasks like:
12
+ - Generating 50 headline hypotheses, scoring them against the ICP context, and keeping the top 5
13
+ - Iterating on ad copy variants and checking them against character limits or ad strength rules
14
+ - Brainstorming A/B test concepts and evaluating their statistical viability
15
+ - Running an overnight loop to optimize landing page structures
16
+
17
+ Read `product-marketing.md` first to understand the context against which you are scoring or generating ideas.
18
+
19
+ ---
20
+
21
+ ## The Autoresearch Loop
22
+
23
+ When running an autoresearch task, follow this strict loop. Do not stop until the goal is reached or the user interrupts.
24
+
25
+ ### 1. Modify (Generate)
26
+ Generate a batch of new variants based on the strategy. If this is iteration 2+, look at what succeeded/failed in previous loops to inform your generation.
27
+
28
+ ### 2. Verify (Score)
29
+ Score the generated variants. If a tool is available (e.g. Adloop's ad strength checker, or an external LLM evaluation), use it. If not, use internal logic to score them against the `product-marketing.md` constraints (e.g., "Does this mention the primary pain point? Does it fit character limits?").
30
+
31
+ ### 3. Keep / Discard
32
+ Keep only the variants that pass the verification threshold. Discard the rest. Document *why* they were discarded to inform the next loop.
33
+
34
+ ### 4. Repeat
35
+ If the goal is met (e.g., "I need 10 excellent ad variants"), stop and present the results. If not, return to Step 1.
36
+
37
+ ---
38
+
39
+ ## Setting Up a Plan
40
+
41
+ Before starting the loop, you must define the boundaries. If the user hasn't provided this, ask them to define:
42
+ 1. **Goal**: What are we trying to achieve? (e.g., "Generate 20 high-converting headlines")
43
+ 2. **Metric**: How do we score them? (e.g., "Must pass PAS framework criteria and be under 30 characters")
44
+ 3. **Scope**: What is out of bounds? (e.g., "Do not use the word 'Free'")
45
+
46
+ (Tip: recommend the user type `/autoresearch:plan` to launch the configuration wizard).
47
+
48
+ ---
49
+
50
+ ## Output Format
51
+
52
+ While looping, keep the user updated with a concise progress log:
53
+ ```
54
+ Loop 1: Generated 10. 2 passed, 8 discarded. (Reason: too long)
55
+ Loop 2: Generated 10. 4 passed, 6 discarded. (Reason: weak hook)
56
+ ...
57
+ ```
58
+
59
+ At the end, present the final "Kept" list formatted as a markdown table or code block, ready for export.
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: copywriting
3
+ description: Write persuasive ad copy, headlines, and marketing content.
4
+ ---
5
+ # Copywriting
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when the user needs to write, rewrite, or review copy for ads, landing pages, emails, or any marketing asset.
10
+
11
+ Read `product-marketing.md` first.
12
+
13
+ ---
14
+
15
+ ## Core Principles
16
+
17
+ 1. **Clarity over cleverness.** If they have to think about what the headline means, they will bounce.
18
+ 2. **You > We.** Count "You" vs "We/Our" — ratio should be at least 3:1 in favor of "You."
19
+ 3. **Benefits > Features.** Features tell what it does. Benefits sell what it means for them.
20
+ 4. **Specifics sell.** "Save 4 hours a week" beats "Save time."
21
+ 5. **One CTA per piece.** Every piece of copy should have ONE core emotion, ONE primary benefit, ONE call to action.
22
+
23
+ ---
24
+
25
+ ## Creative Frameworks
26
+
27
+ ### AIDA
28
+ - **Attention**: Hook them immediately.
29
+ - **Interest**: Keep them reading.
30
+ - **Desire**: Show the transformation.
31
+ - **Action**: Tell them what to do next.
32
+
33
+ ### PAS
34
+ - **Problem**: Name the exact pain point.
35
+ - **Agitation**: Make the pain feel urgent.
36
+ - **Solution**: Present your product as the fix.
37
+
38
+ ### Before-After-Bridge
39
+ - **Before**: Here's your world today (painful).
40
+ - **After**: Here's what it looks like solved (desirable).
41
+ - **Bridge**: Here's how to get there (your product).
42
+
43
+ ---
44
+
45
+ ## Persuasion Principles
46
+
47
+ Apply these when writing any copy:
48
+
49
+ - **Loss aversion**: "Stop losing $500/year" outperforms "Save $500/year."
50
+ - **Social proof**: Real numbers beat vague claims. "Used by 10,247 marketers" > "Trusted by many."
51
+ - **Anchoring**: Show the expensive option first to make the target option feel reasonable.
52
+ - **Curiosity gap**: Open a loop the reader needs to close. Works well for awareness ads.
53
+ - **Urgency**: Only use if real. Fake urgency destroys trust permanently.
54
+
55
+ ---
56
+
57
+ ## Creative Angles to Test
58
+
59
+ Always propose multiple angles:
60
+ 1. **The Pain Hook**: "Tired of [pain point]?"
61
+ 2. **The Curiosity Hook**: "Here's why [unexpected claim]..."
62
+ 3. **The Direct Hook**: "This [product] will [specific benefit]"
63
+ 4. **The Social Proof Hook**: "[Number] people already [result]"
64
+ 5. **The Founder Story**: Why was this built?
65
+ 6. **Us vs. Them**: Compare to the old way of doing things.
66
+ 7. **The Mythbuster**: Challenge a common industry belief.
67
+
68
+ ---
69
+
70
+ ## Platform-Specific Copy Rules
71
+
72
+ ### Google Ads (RSAs)
73
+ - 15 headlines, max 30 characters each (spaces count)
74
+ - 4 descriptions, max 90 characters each
75
+ - Pin headline 1 = brand or primary value prop
76
+ - Include at least one headline with the exact keyword
77
+
78
+ ### Meta Ads
79
+ - Hook in the first line (it shows before "See more")
80
+ - Structure: Hook → Empathy → Solution → Proof → CTA
81
+ - 85%+ watch video without sound — text overlays matter
82
+
83
+ ### Email Subject Lines
84
+ - Under 50 characters
85
+ - Write 5, pick the most curiosity-inducing one
86
+ - Preview text is your second headline — don't waste it
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: emails
3
+ description: Write email sequences that nurture ad leads into customers.
4
+ ---
5
+ # Email Marketing
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when the user needs to:
10
+ - Write a welcome or onboarding email sequence
11
+ - Create a nurture sequence for leads captured from ads
12
+ - Draft a promotional email or launch announcement
13
+ - Improve email open rates or click-through rates
14
+
15
+ Read `product-marketing.md` first. Emails must use the same tone and value prop as the ads that captured the lead.
16
+
17
+ ---
18
+
19
+ ## Email Sequence Types
20
+
21
+ ### 1. Welcome Sequence (Post-Signup)
22
+ Triggered when someone signs up or downloads a lead magnet.
23
+ - **Email 1** (Day 0): Deliver what you promised + introduce yourself
24
+ - **Email 2** (Day 1): Share your best piece of content or a quick win
25
+ - **Email 3** (Day 3): Tell your origin story or share a customer success story
26
+ - **Email 4** (Day 5): Address the #1 objection
27
+ - **Email 5** (Day 7): Soft pitch — "If you're ready, here's how to start"
28
+
29
+ ### 2. Nurture Sequence (Lead → Customer)
30
+ For leads who clicked an ad but didn't buy:
31
+ - Alternate between value (tips, case studies) and pitch (offers, demos)
32
+ - Ratio: 3 value emails for every 1 pitch email
33
+ - Include a "breakup email" at the end: "Should I stop emailing you?"
34
+
35
+ ### 3. Re-engagement Sequence
36
+ For dormant leads or inactive users:
37
+ - "We miss you" with a compelling reason to come back
38
+ - Show what's new since they left
39
+ - Offer an incentive (discount, extended trial)
40
+
41
+ ---
42
+
43
+ ## Email Copywriting Rules
44
+
45
+ 1. **Subject line** — Write 5, pick the most curiosity-inducing one. Keep under 50 characters.
46
+ 2. **Preview text** — Don't waste it. This is your second headline.
47
+ 3. **Opening line** — Never start with "Hi [Name], I hope this email finds you well." Start with a hook.
48
+ 4. **One email, one goal** — Don't pitch, share a blog post, AND ask for a referral in the same email.
49
+ 5. **CTA** — One clear button or link. "Reply to this email" works for engagement.
50
+ 6. **P.S. line** — Most-read part of an email after the subject line. Put your strongest point here.
51
+
52
+ ## Key Metrics
53
+ - **Open rate**: Benchmark 20-30%. Below 15%? Subject lines need work.
54
+ - **Click rate**: Benchmark 2-5%. Below 1%? CTA or content isn't compelling.
55
+ - **Unsubscribe rate**: Normal is < 0.5%. Above 1%? Sending too often or wrong audience.
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: cro
3
+ description: Improve conversion rates on landing pages, signups, and funnels.
4
+ ---
5
+ # Conversion Rate Optimization
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when the user needs to:
10
+ - Improve a landing page or signup flow
11
+ - Diagnose why ad traffic isn't converting
12
+ - Plan or analyze an A/B test
13
+ - Optimize forms, CTAs, or checkout flows
14
+
15
+ Read `product-marketing.md` first.
16
+
17
+ ---
18
+
19
+ ## The Message Match Rule
20
+
21
+ The #1 reason ads don't convert: the landing page says something different than the ad.
22
+
23
+ | Ad Headline | ❌ Bad Landing Page | ✅ Good Landing Page |
24
+ |---|---|---|
25
+ | "Cut your ad spend by 30%" | "Welcome to AdTool Pro" | "Cut your ad spend by 30% — here's how" |
26
+ | "Free SEO audit in 60 seconds" | "Our SEO Services" | "Get your free SEO audit now" |
27
+
28
+ ---
29
+
30
+ ## Landing Page Structure
31
+
32
+ Every high-converting page follows this hierarchy:
33
+ 1. **Hero** — Benefit headline + subheadline (how) + CTA
34
+ 2. **Social proof** — Logos, testimonials, or numbers
35
+ 3. **Problem** — Describe the pain they came here to solve
36
+ 4. **Solution** — Show how your product fixes it
37
+ 5. **Objection handling** — FAQ or trust signals
38
+ 6. **Final CTA** — Repeat the primary call to action
39
+
40
+ ### Above-the-Fold Checklist
41
+ - [ ] Headline states the primary benefit (not a feature)
42
+ - [ ] Subheadline explains how in one sentence
43
+ - [ ] CTA button is visible without scrolling
44
+ - [ ] Social proof is present
45
+ - [ ] No navigation menu (landing page ≠ homepage)
46
+
47
+ ---
48
+
49
+ ## A/B Testing
50
+
51
+ ### Experiment Design
52
+ Never run a test without:
53
+ 1. **A clear hypothesis**: "If we [change X], then [metric Y] will improve because [rationale]."
54
+ 2. **A single variable**: Don't change headline, image, AND button color at once.
55
+ 3. **Sufficient traffic**: Use a sample size calculator. Testing with 50 visitors is meaningless.
56
+
57
+ ### Rules
58
+ - Don't stop a test early just because it looks like it's winning.
59
+ - Wait for at least **95% statistical significance**.
60
+ - Run for at least **7-14 days** to account for day-of-week anomalies.
61
+ - If traffic is low, test **macro changes** (the whole offer, the pricing). Micro changes (button color) require massive traffic.
62
+
63
+ ---
64
+
65
+ ## Quick Wins (Ordered by Impact)
66
+
67
+ 1. **Reduce form fields** — Every field removed increases conversion ~5-10%
68
+ 2. **Make CTA specific** — "Start my free trial" > "Submit"
69
+ 3. **Add a testimonial near the CTA** — Social proof at the point of decision
70
+ 4. **Remove navigation** — Landing pages should have one exit: the CTA
71
+ 5. **Improve load speed** — Every 1s delay = ~7% drop in conversions
72
+
73
+ ## Prioritization (ICE Score)
74
+ When the user has multiple optimization ideas:
75
+ - **Impact** (1-10): How much will this move the needle?
76
+ - **Confidence** (1-10): How sure are we?
77
+ - **Ease** (1-10): How easy to implement?
78
+ - Score = I × C × E. Test highest first.
79
+
80
+ ## Key Metrics
81
+ - **Conversion rate** = conversions ÷ visitors
82
+ - **Bounce rate** > 70%? Message match is broken or page loads too slow
83
+ - **Scroll depth** — If users don't pass the fold, the hero isn't working
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: product-marketing
3
+ description: Core context about the business, ICP, and value proposition.
4
+ ---
5
+ # Product Marketing Foundation
6
+
7
+ ## When to Use This Skill
8
+
9
+ Read this skill **first** before applying any other marketing skill. It defines your product context, ICP, positioning, and messaging — every other skill uses this as its foundation.
10
+
11
+ This skill activates when the user is:
12
+ - Setting up their marketing context for the first time
13
+ - Working on any marketing task and no product context has been established
14
+ - Explicitly asking you to understand their product
15
+
16
+ ---
17
+
18
+ ## Instructions
19
+
20
+ If a `PRODUCT_CONTEXT.md` file exists in the project root or the context was loaded from the OpenAds setup config, read it first and use it.
21
+
22
+ If no context exists:
23
+ Ask the user to fill out this context. Once established, reference it in every subsequent task.
24
+
25
+ ### Required Context to Establish
26
+
27
+ ```yaml
28
+ # Product Marketing Context
29
+ product:
30
+ name: ""
31
+ tagline: ""
32
+ category: "" # e.g. "SaaS", "ecommerce", "mobile app", "marketplace"
33
+
34
+ icp: # Ideal Customer Profile
35
+ who: "" # Job title or persona description
36
+ key_pain: "" # The #1 problem they have that you solve
37
+
38
+ positioning:
39
+ differentiator: "" # Your defensible advantage
40
+ value_metric: "" # How they measure success
41
+
42
+ messaging:
43
+ primary_message: "" # One sentence: what you do and for whom
44
+ tone: "" # e.g. "authoritative but approachable", "playful"
45
+ ```
46
+
47
+ ## Using This Context in Other Skills
48
+
49
+ When applying any other marketing skill, always:
50
+ 1. Reference `product.name` and `icp.who` in every output
51
+ 2. Align copy and recommendations to `positioning.differentiator`
52
+ 3. Use `messaging.tone` for all written content
53
+ 4. Frame results in terms of `icp.key_pain`
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: competitors
3
+ description: Analyze competitor positioning, ads, and messaging gaps.
4
+ ---
5
+ # Competitive Analysis
6
+
7
+ ## When to Use This Skill
8
+
9
+ Activate when the user needs to:
10
+ - Understand what competitors are saying in their ads
11
+ - Find gaps in competitor messaging they can exploit
12
+ - Benchmark their positioning against alternatives
13
+ - Research competitor landing pages, offers, or pricing
14
+
15
+ Read `product-marketing.md` first.
16
+
17
+ ---
18
+
19
+ ## Competitor Ad Analysis Framework
20
+
21
+ ### 1. Message Mapping
22
+ For each competitor, capture:
23
+ - **Primary headline claim** — What do they promise in their top-of-funnel ads?
24
+ - **Proof points** — What evidence do they use? (social proof, stats, awards)
25
+ - **CTA style** — Soft ("Learn more") or hard ("Start free trial")?
26
+ - **Emotional angle** — Fear, aspiration, urgency, curiosity?
27
+
28
+ ### 2. Gap Analysis
29
+ After mapping 3-5 competitors, look for:
30
+ - **Unspoken benefits** — What does your product do that nobody is talking about?
31
+ - **Overused claims** — What is everyone saying? (Avoid it — you'll blend in.)
32
+ - **Audience blind spots** — Is everyone targeting the same persona? Is there an underserved segment?
33
+
34
+ ### 3. Positioning Matrix
35
+
36
+ | | Low Price | High Price |
37
+ |---|---|---|
38
+ | **Simple** | Commodity play | Premium simplicity |
39
+ | **Complex** | Budget enterprise | Full-suite leader |
40
+
41
+ Place yourself and competitors on this grid. Your ad messaging should clearly communicate which quadrant you own.
42
+
43
+ ---
44
+
45
+ ## Output Format
46
+
47
+ Produce a competitive brief:
48
+ ```
49
+ Competitor: [Name]
50
+ Headline claim: [Their main promise]
51
+ Proof: [What evidence they use]
52
+ Weakness: [Where they fall short]
53
+ Opportunity: [What you can say that they can't]
54
+ ```