agy-superpowers 5.0.6 → 5.0.8
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 +23 -0
- package/package.json +1 -1
- package/template/agent/config.yml +9 -0
- package/template/agent/patches/skills-patches.md +74 -0
- package/template/agent/skills/api-design/SKILL.md +193 -0
- package/template/agent/skills/app-store-optimizer/SKILL.md +127 -0
- package/template/agent/skills/auth-and-identity/SKILL.md +167 -0
- package/template/agent/skills/backend-developer/SKILL.md +148 -0
- package/template/agent/skills/brainstorming/SKILL.md +3 -1
- package/template/agent/skills/community-manager/SKILL.md +115 -0
- package/template/agent/skills/content-marketer/SKILL.md +111 -0
- package/template/agent/skills/conversion-optimizer/SKILL.md +142 -0
- package/template/agent/skills/copywriter/SKILL.md +114 -0
- package/template/agent/skills/cto-architect/SKILL.md +133 -0
- package/template/agent/skills/customer-success-manager/SKILL.md +126 -0
- package/template/agent/skills/data-analyst/SKILL.md +147 -0
- package/template/agent/skills/devops-engineer/SKILL.md +117 -0
- package/template/agent/skills/email-infrastructure/SKILL.md +164 -0
- package/template/agent/skills/frontend-developer/SKILL.md +133 -0
- package/template/agent/skills/game-design/SKILL.md +194 -0
- package/template/agent/skills/game-developer/SKILL.md +175 -0
- package/template/agent/skills/growth-hacker/SKILL.md +122 -0
- package/template/agent/skills/i18n-localization/SKILL.md +126 -0
- package/template/agent/skills/influencer-marketer/SKILL.md +141 -0
- package/template/agent/skills/mobile-developer/SKILL.md +142 -0
- package/template/agent/skills/monetization-strategist/SKILL.md +119 -0
- package/template/agent/skills/paid-acquisition-specialist/SKILL.md +119 -0
- package/template/agent/skills/product-manager/SKILL.md +105 -0
- package/template/agent/skills/real-time-features/SKILL.md +194 -0
- package/template/agent/skills/retention-specialist/SKILL.md +123 -0
- package/template/agent/skills/saas-architect/SKILL.md +139 -0
- package/template/agent/skills/security-engineer/SKILL.md +133 -0
- package/template/agent/skills/seo-specialist/SKILL.md +130 -0
- package/template/agent/skills/subagent-driven-development/SKILL.md +7 -3
- package/template/agent/skills/subscription-billing/SKILL.md +179 -0
- package/template/agent/skills/ux-designer/SKILL.md +128 -0
- package/template/agent/workflows/update-superpowers.md +27 -8
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backend-developer
|
|
3
|
+
description: Use when designing APIs, working on server-side logic, database schemas, or reviewing backend code — regardless of stack
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Backend Developer Lens
|
|
7
|
+
|
|
8
|
+
> **Philosophy:** Design for contracts, failure modes, and observability.
|
|
9
|
+
> If you can't observe it failing, you can't fix it. If you can't roll it back, don't ship it.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## ⚠️ ASK BEFORE ASSUMING
|
|
14
|
+
|
|
15
|
+
If the stack is unspecified, **DO NOT default to Express + MongoDB**. Ask:
|
|
16
|
+
|
|
17
|
+
| What | Why it matters |
|
|
18
|
+
|------|----------------|
|
|
19
|
+
| **Language/framework?** Node / Python / Go / etc. | Determines idioms and patterns |
|
|
20
|
+
| **Database?** SQL / NoSQL / in-memory | Shapes the entire data model |
|
|
21
|
+
| **Auth model?** JWT / session / API key / OAuth | Must be decided before the first endpoint |
|
|
22
|
+
| **Deployment?** Container / serverless / VM | Affects scaling, connection pooling |
|
|
23
|
+
| **Existing API contract?** | Determines versioning constraints |
|
|
24
|
+
|
|
25
|
+
When stack is unspecified, assume Node.js + PostgreSQL + REST.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Core Instincts
|
|
30
|
+
|
|
31
|
+
- **API contracts are public** — breaking changes require versioning; consumers break silently
|
|
32
|
+
- **N+1 is always lurking** — query patterns that work in dev collapse at scale
|
|
33
|
+
- **Fail loudly in dev, gracefully in prod** — errors must be observable; silent failures are unacceptable
|
|
34
|
+
- **Auth is load-bearing** — authentication and authorization must be in the design from the start
|
|
35
|
+
- **Schema changes are permanent** — migrations must be backward-compatible; rollback path required
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Performance & Scale Thresholds
|
|
40
|
+
|
|
41
|
+
| Metric | Target | Investigate |
|
|
42
|
+
|--------|--------|-------------|
|
|
43
|
+
| API response time (p99) | < 500ms | > 1s |
|
|
44
|
+
| Database query time (p99) | < 100ms | > 500ms |
|
|
45
|
+
| DB connection pool size | CPU cores × 2–4 | > 100 (connection thrash) |
|
|
46
|
+
| Max payload size (JSON) | < 1MB | > 5MB → stream or paginate |
|
|
47
|
+
| Background job retry limit | 3–5 retries | Unbounded = infinite loops |
|
|
48
|
+
| Rate limit (public API) | 60–100 req/min per IP | Application-specific |
|
|
49
|
+
| Pagination page size | 20–100 items | > 500 → server load + slow clients |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## ❌ Anti-Patterns to Avoid
|
|
54
|
+
|
|
55
|
+
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
56
|
+
|------------|-----|--------------|
|
|
57
|
+
| Database queries in a loop | N+1 = catastrophic at scale | Batch query with `IN (...)`, JOIN, or eager load |
|
|
58
|
+
| Silent `catch {}` blocks | Failures invisible, impossible to debug | Log with context (req ID, user ID), re-throw or return structured error |
|
|
59
|
+
| Secrets in source code | Leaked via git, logs, stack traces | `process.env` + secret manager (Vault, AWS Secrets Manager) |
|
|
60
|
+
| No input validation | Injection, crashes, bad data in DB | Validate at the API boundary (Zod, Joi, Pydantic, etc.) |
|
|
61
|
+
| No rate limiting on public endpoints | Trivially abused, DDoS surface | Rate limit per IP + per user at gateway or middleware |
|
|
62
|
+
| Schema migration without rollback | One bad deploy = DB emergency | Always write `up` AND `down` migration |
|
|
63
|
+
| Breaking API change without versioning | Consumers silently break in prod | `/v2/` prefix + deprecation headers + sunset date |
|
|
64
|
+
| Business logic in controllers | Untestable, duplicated across routes | Service layer for all business rules |
|
|
65
|
+
| Unbounded queries | Full table scan in prod at 10M rows | Always paginate: `LIMIT` + `OFFSET` or cursor-based |
|
|
66
|
+
| Storing plaintext passwords | One breach = all accounts compromised | `bcrypt` (cost ≥ 12) or `argon2id` |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## HTTP Status Code Reference
|
|
71
|
+
|
|
72
|
+
| Situation | Status | Notes |
|
|
73
|
+
|-----------|--------|-------|
|
|
74
|
+
| Success, returns data | 200 | |
|
|
75
|
+
| Created resource | 201 | Include `Location` header |
|
|
76
|
+
| Success, no body | 204 | |
|
|
77
|
+
| Permanent redirect | 301 | Browser caches; use with care |
|
|
78
|
+
| Temporary redirect | 302 | Common for auth flows |
|
|
79
|
+
| Bad input from client | 400 | Include field-level validation errors |
|
|
80
|
+
| Missing / invalid auth token | 401 | Trigger re-auth on client |
|
|
81
|
+
| Valid auth, no permission | 403 | Do NOT reveal resource existence |
|
|
82
|
+
| Resource not found | 404 | |
|
|
83
|
+
| Method not allowed | 405 | Include `Allow` header |
|
|
84
|
+
| Duplicate or state conflict | 409 | Idempotency conflicts, duplicate key |
|
|
85
|
+
| Business rule violation | 422 | Structurally valid, semantically wrong |
|
|
86
|
+
| Rate limit exceeded | 429 | Include `Retry-After` header |
|
|
87
|
+
| Our fault (unhandled error) | 500 | Log full context; return safe message |
|
|
88
|
+
| Upstream service down | 502 / 503 | |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Auth Quick Rules
|
|
93
|
+
|
|
94
|
+
| Concern | Rule |
|
|
95
|
+
|---------|------|
|
|
96
|
+
| JWT expiry | Access token: 15 min–1h. Refresh token: 7–30 days |
|
|
97
|
+
| JWT secret rotation | Rotate on breach; support multiple valid secrets during rotation |
|
|
98
|
+
| Password hashing | `bcrypt` with cost factor ≥ 12, or `argon2id` |
|
|
99
|
+
| API keys | Store as SHA-256 hash; show plaintext only once on creation |
|
|
100
|
+
| Session cookies | `HttpOnly`, `Secure`, `SameSite=Strict` or `Lax` |
|
|
101
|
+
| OAuth PKCE | Required for all public clients (SPAs, mobile apps) |
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Questions You Always Ask
|
|
106
|
+
|
|
107
|
+
**When designing APIs:**
|
|
108
|
+
- What's the auth model? Who can call this and how?
|
|
109
|
+
- What happens if a downstream service is unavailable?
|
|
110
|
+
- How does this behave at 10x current load?
|
|
111
|
+
- What gets logged when this fails in production?
|
|
112
|
+
|
|
113
|
+
**When reviewing database work:**
|
|
114
|
+
- Is this query indexed? What does `EXPLAIN ANALYZE` show at scale?
|
|
115
|
+
- Does this migration have a safe rollback path?
|
|
116
|
+
- Are we handling concurrent writes correctly (race conditions, optimistic locking)?
|
|
117
|
+
- Will this schema change break existing clients before the code deploy?
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Red Flags in Code Review
|
|
122
|
+
|
|
123
|
+
**Must fix:**
|
|
124
|
+
- [ ] Missing input validation or sanitization
|
|
125
|
+
- [ ] Silent `catch` blocks (errors swallowed without logging)
|
|
126
|
+
- [ ] N+1 queries (fetching inside loops)
|
|
127
|
+
- [ ] Secrets or credentials in source code or logs
|
|
128
|
+
- [ ] Plaintext password storage
|
|
129
|
+
|
|
130
|
+
**Should fix:**
|
|
131
|
+
- [ ] No rate limiting on public-facing endpoints
|
|
132
|
+
- [ ] Schema migrations without a rollback (`down`) strategy
|
|
133
|
+
- [ ] Auth logic duplicated across controllers (not centralized in middleware)
|
|
134
|
+
- [ ] Unstructured error responses (no error code, no field references)
|
|
135
|
+
- [ ] Unbounded queries without pagination
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Async Pattern Selection
|
|
140
|
+
|
|
141
|
+
| Pattern | Use when |
|
|
142
|
+
|---------|----------|
|
|
143
|
+
| `async/await` | Sequential operations with dependencies |
|
|
144
|
+
| `Promise.all()` | Parallel independent operations (all must succeed) |
|
|
145
|
+
| `Promise.allSettled()` | Parallel where some can fail independently |
|
|
146
|
+
| Message queue (BullMQ, SQS) | Fire-and-forget, retry logic, spike buffering |
|
|
147
|
+
| Cron / scheduler | Periodic background jobs |
|
|
148
|
+
| Streaming | Large payloads, real-time updates, long-running responses |
|
|
@@ -114,7 +114,9 @@ digraph brainstorming {
|
|
|
114
114
|
- Write the validated design (spec) to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`
|
|
115
115
|
- (User preferences for spec location override this default)
|
|
116
116
|
- Use elements-of-style:writing-clearly-and-concisely skill if available
|
|
117
|
-
- Commit the design document to git
|
|
117
|
+
- **Commit the design document to git** — but first check `.agent/config.yml`:
|
|
118
|
+
- If `auto_commit: true` (default): run `git add <path> && git commit -m "docs: add <topic> design spec"`
|
|
119
|
+
- If `auto_commit: false`: skip commit and staging entirely. Print: "Skipping commit (auto_commit: false in .agent/config.yml). File is ready for manual commit."
|
|
118
120
|
|
|
119
121
|
**Spec Review Loop:**
|
|
120
122
|
After writing the spec document:
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: community-manager
|
|
3
|
+
description: Use when building and managing communities on Discord, Reddit, Slack, or social platforms — including moderation, engagement strategy, and community-led growth
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Community Manager Lens
|
|
7
|
+
|
|
8
|
+
> **Philosophy:** Communities are built on belonging, not broadcasting. The best communities make members feel seen, not sold to.
|
|
9
|
+
> A thriving community is retention infrastructure — users who belong don't churn.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Core Instincts
|
|
14
|
+
|
|
15
|
+
- **Give before you take** — provide value for months before asking for anything
|
|
16
|
+
- **10× rule** — for every self-promotional post, create 10 pieces of pure value
|
|
17
|
+
- **Lurkers are members too** — 90% of community members never post; they still get value and stay
|
|
18
|
+
- **Rules enable culture** — clear community guidelines protect the vibe early; retrofit is painful
|
|
19
|
+
- **First 100 members make or break the culture** — seed with high-quality people
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Community Growth Stages
|
|
24
|
+
|
|
25
|
+
| Stage | Size | Focus |
|
|
26
|
+
|-------|------|-------|
|
|
27
|
+
| **Seeding** | 0–50 | Hand-recruit ideal members; personal invitations only |
|
|
28
|
+
| **Nurturing** | 50–500 | Daily engagement, create rituals, establish culture |
|
|
29
|
+
| **Scaling** | 500–5K | Empower moderators, create sub-channels, systematize onboarding |
|
|
30
|
+
| **Sustaining** | 5K+ | Ambassador programs, community-led content, governance |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Platform Comparison
|
|
35
|
+
|
|
36
|
+
| Platform | Best for | Retention | Discovery |
|
|
37
|
+
|----------|----------|-----------|-----------|
|
|
38
|
+
| **Discord** | Real-time, developer tools, games | High | Low (invite-only) |
|
|
39
|
+
| **Reddit** | SEO, async discussion, niche topics | Medium | High (searchable) |
|
|
40
|
+
| **Slack** | B2B SaaS, professional communities | Medium | Low |
|
|
41
|
+
| **Circle / Mighty Networks** | Paid communities, courses | High | Low |
|
|
42
|
+
| **X (Twitter)** | Thought leadership, broad reach | Low | High |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Engagement Health Metrics
|
|
47
|
+
|
|
48
|
+
| Metric | Below avg | Average | Healthy |
|
|
49
|
+
|--------|-----------|---------|---------|
|
|
50
|
+
| Monthly active members / total | < 5% | 10–20% | > 25% |
|
|
51
|
+
| Post-to-member ratio (monthly) | < 0.5 | 1–3 | > 5 |
|
|
52
|
+
| Average replies per thread | < 1 | 2–4 | > 5 |
|
|
53
|
+
| Moderation actions / posts | > 20% | 5–10% | < 3% |
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## ❌ Anti-Patterns to Avoid
|
|
58
|
+
|
|
59
|
+
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
60
|
+
|------------|-----|--------------|
|
|
61
|
+
| Launch with 0 content | Ghost town = no one stays | Pre-seed with 10–20 threads before inviting |
|
|
62
|
+
| Broadcast-only (announcements, no discussion) | Feels like a newsletter, not a community | Invite discussion; ask questions more than announce |
|
|
63
|
+
| No moderation in first week | Bad actors set the culture early | Establish rules + remove violators immediately |
|
|
64
|
+
| Ignore members' questions | Signals you don't care | Respond to every post in first 3 months |
|
|
65
|
+
| Open community too early | Wrong early members = culture damage | Curated waitlist; invite manually first 50–100 |
|
|
66
|
+
| Over-channel too early | Channel sprawl kills activity | Start with 3–5 channels; add only when needed |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Questions You Always Ask
|
|
71
|
+
|
|
72
|
+
**When launching a community:**
|
|
73
|
+
- Who are the ideal first 10 members? Can I personally invite them?
|
|
74
|
+
- What's the community promise — why should someone join AND stay?
|
|
75
|
+
- What weekly ritual will drive recurring engagement? (Show & Tell, Feedback Friday, etc.)
|
|
76
|
+
- What are the 3 non-negotiable community rules?
|
|
77
|
+
|
|
78
|
+
**When diagnosing a declining community:**
|
|
79
|
+
- What's the monthly active rate? (< 10% = engagement problem)
|
|
80
|
+
- When was the last "member-initiated" post (not admin-started)?
|
|
81
|
+
- What do lapsed members say when you reach out directly?
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Red Flags
|
|
86
|
+
|
|
87
|
+
**Must fix:**
|
|
88
|
+
- [ ] Community active rate < 5% (mostly lurkers with no engagement)
|
|
89
|
+
- [ ] Only admins posting — no member-initiated discussions
|
|
90
|
+
- [ ] No community guidelines posted or enforced
|
|
91
|
+
- [ ] Questions from members going unanswered > 24 hours
|
|
92
|
+
|
|
93
|
+
**Should fix:**
|
|
94
|
+
- [ ] No onboarding flow for new members (first experience = blank discord)
|
|
95
|
+
- [ ] No weekly recurring engagement ritual
|
|
96
|
+
- [ ] > 20 channels with similar topics (channel sprawl)
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Who to Pair With
|
|
101
|
+
- `retention-specialist` — community is a retention channel
|
|
102
|
+
- `content-marketer` — for content seeding and distribution within community
|
|
103
|
+
- `growth-hacker` — for community-led referral and viral loops
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Community Onboarding Template
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
New member joins →
|
|
111
|
+
1. Auto-welcome message with 3 things to do first
|
|
112
|
+
2. Introduce yourself thread (pinned)
|
|
113
|
+
3. Highlight 3 best threads from last month
|
|
114
|
+
4. Personal DM from founder/moderator within 48h
|
|
115
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: content-marketer
|
|
3
|
+
description: Use when planning content strategy, SEO content, social media, email newsletters, or building an audience-driven growth channel
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Content Marketer Lens
|
|
7
|
+
|
|
8
|
+
> **Philosophy:** Distribution > creation. A great post no one reads is a wasted asset.
|
|
9
|
+
> Build an audience once; it compounds. Ad spend stops the moment you stop paying.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Core Instincts
|
|
14
|
+
|
|
15
|
+
- **Audience-first** — write for a specific person with a specific problem, not "everyone"
|
|
16
|
+
- **Distribution is 80% of the work** — repurpose and distribute before writing something new
|
|
17
|
+
- **SEO content compounds; social content decays** — prioritize search-indexed content for long-term ROI
|
|
18
|
+
- **Consistency beats brilliance** — publishing schedule > single viral posts
|
|
19
|
+
- **Content-market fit** — content that your audience shares is content aligned with their identity
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Content Funnel (TOFU / MOFU / BOFU)
|
|
24
|
+
|
|
25
|
+
| Stage | Goal | Content Types |
|
|
26
|
+
|-------|------|--------------|
|
|
27
|
+
| **ToFU** (Top of Funnel) | Awareness | Blog posts, social threads, short videos, podcasts |
|
|
28
|
+
| **MoFU** (Middle of Funnel) | Consideration | Case studies, comparison pages, email sequences, webinars |
|
|
29
|
+
| **BoFU** (Bottom of Funnel) | Conversion | Landing pages, testimonials, free trial CTAs, pricing explainers |
|
|
30
|
+
|
|
31
|
+
**Indie hacker allocation:** 60% ToFU (audience building), 30% MoFU (nurture), 10% BoFU (convert).
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Distribution Channels (Ranked by Compounding ROI)
|
|
36
|
+
|
|
37
|
+
| Channel | Compounding? | Time to results | Best for |
|
|
38
|
+
|---------|-------------|----------------|----------|
|
|
39
|
+
| SEO blog | ✅ High | 3–12 months | B2B SaaS, tools |
|
|
40
|
+
| Email newsletter | ✅ Medium | 1–6 months | Direct relationship, loyalty |
|
|
41
|
+
| YouTube | ✅ Medium | 6–18 months | Tutorial/educational products |
|
|
42
|
+
| Twitter/X threads | ❌ Low | Days | Brand building, distribution boosts |
|
|
43
|
+
| Reddit / Hacker News | ❌ Low | Hours | Launch spikes, community credibility |
|
|
44
|
+
| TikTok / Reels | ❌ Low | Days | Consumer apps, B2C |
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## ❌ Anti-Patterns to Avoid
|
|
49
|
+
|
|
50
|
+
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
51
|
+
|------------|-----|--------------|
|
|
52
|
+
| Write content without SEO research | Invisible to search, no compounding | Keyword research first |
|
|
53
|
+
| Post on all platforms simultaneously | Mediocre everywhere | Own 1–2 channels deeply |
|
|
54
|
+
| Copy competitor content strategy | Different audience, different context | Find your unique POV |
|
|
55
|
+
| Create content without repurposing plan | 1x effort, 1x reach | 1 blog → 5 tweets → 1 email → 1 short video |
|
|
56
|
+
| No call to action | Content without conversion intent | Every piece has one next step |
|
|
57
|
+
| Publish once, never promote | Content ROI is mostly in distribution | Promote each piece for 30 days post-publish |
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Content Benchmarks
|
|
62
|
+
|
|
63
|
+
| Metric | Good | Great |
|
|
64
|
+
|--------|------|-------|
|
|
65
|
+
| Email open rate | > 25% | > 40% |
|
|
66
|
+
| Email CTR | > 3% | > 8% |
|
|
67
|
+
| Blog organic traffic growth (MoM) | > 10% | > 25% |
|
|
68
|
+
| Social follower-to-click rate | > 1% | > 3% |
|
|
69
|
+
| Newsletter subscriber monthly growth | > 5% | > 15% |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Questions You Always Ask
|
|
74
|
+
|
|
75
|
+
**When planning content:**
|
|
76
|
+
- Who specifically is reading this? What's their pain, and what's their next question?
|
|
77
|
+
- What's the keyword or search intent behind this piece? (Even for social content: what would someone search to find this?)
|
|
78
|
+
- How will we distribute this after publishing?
|
|
79
|
+
- What's the one action we want the reader to take?
|
|
80
|
+
|
|
81
|
+
**When auditing a content strategy:**
|
|
82
|
+
- What % of content is indexed by search (long-term asset) vs ephemeral?
|
|
83
|
+
- Is there a consistent publishing schedule? (Consistency signals authority)
|
|
84
|
+
- What's the email list growth rate? (Email = owned audience)
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Red Flags
|
|
89
|
+
|
|
90
|
+
**Must address:**
|
|
91
|
+
- [ ] No keyword research behind blog content
|
|
92
|
+
- [ ] No email list / owned audience being built
|
|
93
|
+
- [ ] Team creates content but has no distribution plan
|
|
94
|
+
- [ ] Publishing inconsistently (< 2 posts/month)
|
|
95
|
+
|
|
96
|
+
**Should address:**
|
|
97
|
+
- [ ] No repurposing workflow (each piece used only once)
|
|
98
|
+
- [ ] No content calendar (reactive publishing)
|
|
99
|
+
- [ ] No measurement of content-attributed signups
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Who to Pair With
|
|
104
|
+
- `seo-specialist` — for keyword strategy and technical SEO
|
|
105
|
+
- `copywriter` — for copy quality and audience resonance
|
|
106
|
+
- `data-analyst` — for content attribution and funnel tracking
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Tools
|
|
111
|
+
Beehiiv · Substack · ConvertKit (email) · Ahrefs · Semrush (keyword research) · Buffer · Typefully (social scheduling) · Notion / Airtable (content calendar)
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conversion-optimizer
|
|
3
|
+
description: Use when optimizing landing pages, trial-to-paid funnels, paywall design, onboarding flows, or running CRO experiments
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Conversion Optimizer Lens
|
|
7
|
+
|
|
8
|
+
> **Philosophy:** Conversion is about removing friction and increasing trust simultaneously.
|
|
9
|
+
> Every unnecessary step, field, or decision is a drop in conversion rate.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Core Instincts
|
|
14
|
+
|
|
15
|
+
- **Remove friction before adding persuasion** — simplify the path before optimizing copy
|
|
16
|
+
- **Trust before conversion** — social proof, testimonials, and guarantees reduce purchase anxiety
|
|
17
|
+
- **One page, one goal** — landing pages with multiple CTAs convert less than focused ones
|
|
18
|
+
- **Mobile conversion is different** — form fields on mobile cost 20–30% more friction than desktop
|
|
19
|
+
- **Test, don't guess** — opinions on what will convert are unreliable; data is not
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Landing Page Above-the-Fold Formula
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─────────────────────────────────────┐
|
|
27
|
+
│ NAV: Logo | Pricing | Log in │
|
|
28
|
+
├─────────────────────────────────────┤
|
|
29
|
+
│ HEADLINE: Clear benefit in <8 words│
|
|
30
|
+
│ SUBHEADLINE: Who it's for + how │
|
|
31
|
+
│ CTA: [Single action button] │
|
|
32
|
+
│ SOCIAL PROOF: X users / logos / │
|
|
33
|
+
│ star rating │
|
|
34
|
+
├─────────────────────────────────────┤
|
|
35
|
+
│ HERO IMAGE / VIDEO / SCREENSHOT │
|
|
36
|
+
└─────────────────────────────────────┘
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Required above-the-fold:** Headline + CTA + 1 trust signal. Everything else is below.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Conversion Benchmarks
|
|
44
|
+
|
|
45
|
+
| Funnel Stage | Poor | Average | Good | Great |
|
|
46
|
+
|-------------|------|---------|------|-------|
|
|
47
|
+
| Visitor → Sign up | < 1% | 2–4% | 5–8% | > 10% |
|
|
48
|
+
| Sign up → Activated | < 20% | 30–50% | 50–70% | > 75% |
|
|
49
|
+
| Trial → Paid | < 5% | 8–15% | 15–25% | > 30% |
|
|
50
|
+
| Paid → Annual (upsell) | < 20% | 25–35% | 35–50% | > 55% |
|
|
51
|
+
| App Store impression → Install | < 2% | 3–5% | 6–8% | > 10% |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## A/B Testing Rules
|
|
56
|
+
|
|
57
|
+
| Rule | Detail |
|
|
58
|
+
|------|--------|
|
|
59
|
+
| **One variable per test** | Headline OR CTA OR layout — never multiple |
|
|
60
|
+
| **Minimum sample size** | ≥ 1,000 visitors per variant before reading results |
|
|
61
|
+
| **Statistical significance** | ≥ 95% confidence (p < 0.05) before declaring winner |
|
|
62
|
+
| **Test duration** | Minimum 2 weeks (captures weekly seasonality) |
|
|
63
|
+
| **Business significance** | > 5% lift is actionable; < 2% is noise regardless of p-value |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Paywall Design Principles
|
|
68
|
+
|
|
69
|
+
- **Show upgrade prompt after activation event** — not before, not on open
|
|
70
|
+
- **Anchor with annual** — show annual price first, monthly as secondary
|
|
71
|
+
- **Offer 3 options max** — choice paralysis above 3 tiers
|
|
72
|
+
- **Include a free trial CTA** — "Try free for 14 days" converts higher than "Subscribe now"
|
|
73
|
+
- **Social proof on paywall** — "Join 12,000 users" or star rating
|
|
74
|
+
- **Money-back guarantee** — even 7-day guarantee increases conversion 10–20%
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## ❌ Anti-Patterns to Avoid
|
|
79
|
+
|
|
80
|
+
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
81
|
+
|------------|-----|--------------|
|
|
82
|
+
| Multiple CTAs on one page | Users don't know what to do | One primary CTA per page/section |
|
|
83
|
+
| Long sign-up form (> 3 fields) | Each field costs ~10% conversion | Minimum viable info: email only or SSO |
|
|
84
|
+
| No social proof | Users don't trust new products | Number of users, testimonials, press logos |
|
|
85
|
+
| Generic CTA ("Get Started") | No benefit communicated | Benefit-first CTA ("Start saving 2h/week") |
|
|
86
|
+
| Testing without hypothesis | Unfalsifiable, results misinterpreted | Write hypothesis before running test |
|
|
87
|
+
| Reading results too early | False positives from underpowered tests | Wait for 1000+ per variant + 2 weeks |
|
|
88
|
+
| Paywall on first open (mobile) | Users haven't experienced value | Trigger after Nth use or activation event |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Onboarding Flow Optimization
|
|
93
|
+
|
|
94
|
+
| Principle | Detail |
|
|
95
|
+
|-----------|--------|
|
|
96
|
+
| **Aha moment ASAP** | Every onboarding step that doesn't lead toward aha moment is a churn risk |
|
|
97
|
+
| **Progressive disclosure** | Show only what's needed for the current step |
|
|
98
|
+
| **No walls** | Avoid mandatory email verification before first experience |
|
|
99
|
+
| **Personalization prompt** | 1 question to customize experience dramatically improves activation |
|
|
100
|
+
| **Empty state = opportunity** | Show what the product looks like full, not an empty blank slate |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Questions You Always Ask
|
|
105
|
+
|
|
106
|
+
**When auditing a landing page:**
|
|
107
|
+
- Does the headline communicate the primary benefit in < 8 words?
|
|
108
|
+
- Is there exactly one primary CTA?
|
|
109
|
+
- Is there social proof visible above the fold?
|
|
110
|
+
- What's the current visitor → signup conversion rate? (Benchmark: 3–8%)
|
|
111
|
+
|
|
112
|
+
**When auditing a funnel:**
|
|
113
|
+
- Where is the biggest drop-off in the funnel?
|
|
114
|
+
- Has this been A/B tested, or is it based on opinion?
|
|
115
|
+
- Is the paywall appearing before or after the activation event?
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Red Flags
|
|
120
|
+
|
|
121
|
+
**Must fix:**
|
|
122
|
+
- [ ] Conversion rate tracking not set up (can't optimize what you can't measure)
|
|
123
|
+
- [ ] Landing page has more than 2 CTAs
|
|
124
|
+
- [ ] No social proof on landing page or paywall
|
|
125
|
+
- [ ] Paywall shown before activation event
|
|
126
|
+
|
|
127
|
+
**Should fix:**
|
|
128
|
+
- [ ] Sign-up form has > 3 fields
|
|
129
|
+
- [ ] No A/B testing tooling in place
|
|
130
|
+
- [ ] No exit-intent capture on pricing page
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Who to Pair With
|
|
135
|
+
- `copywriter` — for headline and CTA copy
|
|
136
|
+
- `monetization-strategist` — for paywall and pricing strategy
|
|
137
|
+
- `data-analyst` — for funnel analysis and test significance
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Tools
|
|
142
|
+
Statsig · Optimizely · VWO (A/B testing) · Hotjar · Microsoft Clarity (session recording) · PostHog · Google Optimize (deprecated — use Statsig/VWO instead)
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: copywriter
|
|
3
|
+
description: Use when writing landing page copy, app store descriptions, onboarding flows, email sequences, push notifications, or any user-facing text
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Copywriter Lens
|
|
7
|
+
|
|
8
|
+
> **Philosophy:** Clarity over cleverness. Benefits over features. The reader first, always.
|
|
9
|
+
> Good copy makes the right people say "this is for me" and the wrong people self-select out.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Core Instincts
|
|
14
|
+
|
|
15
|
+
- **Benefits, not features** — "Save 2 hours/week" beats "Automated scheduling"
|
|
16
|
+
- **One job per piece of copy** — headlines inform or intrigue, CTAs convert; never both
|
|
17
|
+
- **Specificity builds trust** — "used by 12,000 developers" > "used by thousands"
|
|
18
|
+
- **Above the fold is everything** — users decide in <5 seconds; earn the scroll
|
|
19
|
+
- **The reader's self-interest is the only interest** — they don't care about you; they care about their problem
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Copywriting Frameworks
|
|
24
|
+
|
|
25
|
+
### AIDA (Attention → Interest → Desire → Action)
|
|
26
|
+
Best for: landing pages, email sequences, long-form ads
|
|
27
|
+
|
|
28
|
+
### PAS (Problem → Agitate → Solution)
|
|
29
|
+
Best for: short form ads, push notifications, homepage heroes
|
|
30
|
+
|
|
31
|
+
### JTBD Framing: "When I [situation], I want to [motivation], so I can [outcome]"
|
|
32
|
+
Best for: writing copy that resonates with a specific user segment
|
|
33
|
+
|
|
34
|
+
### The 4 U's (Urgent · Unique · Ultra-specific · Useful)
|
|
35
|
+
Best for: headlines, subject lines, CTAs
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ❌ Anti-Patterns to Avoid
|
|
40
|
+
|
|
41
|
+
| ❌ NEVER DO | Why | ✅ DO INSTEAD |
|
|
42
|
+
|------------|-----|--------------|
|
|
43
|
+
| Lead with features | Users care about their outcome, not your tech | Lead with the transformation/benefit |
|
|
44
|
+
| Vague superlatives ("best", "amazing") | Zero credibility, no information | Specific proof ("ranked #1 by AppFollow") |
|
|
45
|
+
| Weak CTA ("click here", "submit") | No reason to act | Action + benefit ("Start saving time") |
|
|
46
|
+
| Passive voice | Weak, distant | Active voice, direct |
|
|
47
|
+
| Jargon and acronyms | Confuses, excludes | Plain language at 8th grade reading level |
|
|
48
|
+
| Wall of text | No one reads it | Short paragraphs, bullets, scannable |
|
|
49
|
+
| First open asks for email | Friction before value | Show value first, gate later |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## App Store Copy Rules
|
|
54
|
+
|
|
55
|
+
**iOS App Store:**
|
|
56
|
+
- Title: ≤ 30 characters (including keyword)
|
|
57
|
+
- Subtitle: ≤ 30 characters (keyword-rich, benefit-focused)
|
|
58
|
+
- Keywords field: ≤ 100 characters, comma-separated, no spaces, no words from title
|
|
59
|
+
- Description: first 255 characters shown before "more" — make them count
|
|
60
|
+
- Promo text: ≤ 170 characters, update without resubmission (use for limited offers)
|
|
61
|
+
|
|
62
|
+
**Google Play:**
|
|
63
|
+
- Title: ≤ 30 characters
|
|
64
|
+
- Short description: ≤ 80 characters (shown in search results)
|
|
65
|
+
- Long description: ≤ 4000 characters (first 167 chars most important)
|
|
66
|
+
- Repeat primary keyword 3–5× naturally in long description
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Questions You Always Ask
|
|
71
|
+
|
|
72
|
+
**Before writing anything:**
|
|
73
|
+
- Who is the primary reader? What do they already believe about their problem?
|
|
74
|
+
- What's the ONE thing I want them to feel/do after reading this?
|
|
75
|
+
- What objection will they have, and does the copy address it?
|
|
76
|
+
- What social proof can be made specific? (numbers, names, credentials)
|
|
77
|
+
|
|
78
|
+
**When reviewing copy:**
|
|
79
|
+
- Does the headline communicate the main benefit in <8 words?
|
|
80
|
+
- Is there a clear, single CTA?
|
|
81
|
+
- Does any sentence start with "We" or "Our"? (Rewrite to focus on reader)
|
|
82
|
+
- Can a 12-year-old understand this?
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Red Flags
|
|
87
|
+
|
|
88
|
+
**Must fix:**
|
|
89
|
+
- [ ] Headline doesn't communicate a clear benefit or hook
|
|
90
|
+
- [ ] CTA is vague ("Learn more", "Get started")
|
|
91
|
+
- [ ] No social proof (testimonials, user counts, ratings)
|
|
92
|
+
- [ ] Copy leads with company/product, not user's problem
|
|
93
|
+
|
|
94
|
+
**Should fix:**
|
|
95
|
+
- [ ] Paragraphs longer than 3 lines
|
|
96
|
+
- [ ] Features listed without framing as benefits
|
|
97
|
+
- [ ] No urgency or specific reason to act now
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Who to Pair With
|
|
102
|
+
- `app-store-optimizer` — for ASO-specific copy strategy
|
|
103
|
+
- `conversion-optimizer` — for landing page and paywall copy testing
|
|
104
|
+
- `product-manager` — for understanding JTBD before writing
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Email Benchmarks (SaaS / Indie)
|
|
109
|
+
|
|
110
|
+
| Metric | Good | Great |
|
|
111
|
+
|--------|------|-------|
|
|
112
|
+
| Open rate | > 25% | > 40% |
|
|
113
|
+
| Click-through rate | > 3% | > 8% |
|
|
114
|
+
| Unsubscribe rate | < 0.5% | < 0.2% |
|