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.
- package/README.md +165 -0
- package/dist/cli.js +366 -0
- package/dist/doctor.js +102 -0
- package/dist/setup.js +384 -0
- package/dist/src/cli.js +70 -0
- package/dist/src/doctor.js +40 -0
- package/dist/src/setup.js +86 -0
- package/logo.txt +9 -0
- package/package.json +80 -0
- package/scripts/postinstall.js +38 -0
- package/skills/ads/google-ads.md +53 -0
- package/skills/ads/meta-ads.md +45 -0
- package/skills/ads/video-ads.md +69 -0
- package/skills/analytics/analytics.md +32 -0
- package/skills/automation/autoresearch.md +59 -0
- package/skills/content/copywriting.md +86 -0
- package/skills/content/emails.md +55 -0
- package/skills/cro/cro.md +83 -0
- package/skills/product-marketing.md +53 -0
- package/skills/research/competitors.md +54 -0
- package/skills/research/customer-research.md +63 -0
- package/skills/strategy/go-to-market.md +57 -0
- package/templates/audit-google-ads.md +14 -0
- package/templates/autoresearch-plan.md +14 -0
- package/templates/go-to-market.md +10 -0
- package/templates/write-ad-copy.md +13 -0
|
@@ -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
|
+
```
|