agy-superpowers 5.0.7 → 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.
Files changed (31) hide show
  1. package/package.json +1 -1
  2. package/template/agent/skills/api-design/SKILL.md +193 -0
  3. package/template/agent/skills/app-store-optimizer/SKILL.md +127 -0
  4. package/template/agent/skills/auth-and-identity/SKILL.md +167 -0
  5. package/template/agent/skills/backend-developer/SKILL.md +148 -0
  6. package/template/agent/skills/community-manager/SKILL.md +115 -0
  7. package/template/agent/skills/content-marketer/SKILL.md +111 -0
  8. package/template/agent/skills/conversion-optimizer/SKILL.md +142 -0
  9. package/template/agent/skills/copywriter/SKILL.md +114 -0
  10. package/template/agent/skills/cto-architect/SKILL.md +133 -0
  11. package/template/agent/skills/customer-success-manager/SKILL.md +126 -0
  12. package/template/agent/skills/data-analyst/SKILL.md +147 -0
  13. package/template/agent/skills/devops-engineer/SKILL.md +117 -0
  14. package/template/agent/skills/email-infrastructure/SKILL.md +164 -0
  15. package/template/agent/skills/frontend-developer/SKILL.md +133 -0
  16. package/template/agent/skills/game-design/SKILL.md +194 -0
  17. package/template/agent/skills/game-developer/SKILL.md +175 -0
  18. package/template/agent/skills/growth-hacker/SKILL.md +122 -0
  19. package/template/agent/skills/i18n-localization/SKILL.md +126 -0
  20. package/template/agent/skills/influencer-marketer/SKILL.md +141 -0
  21. package/template/agent/skills/mobile-developer/SKILL.md +142 -0
  22. package/template/agent/skills/monetization-strategist/SKILL.md +119 -0
  23. package/template/agent/skills/paid-acquisition-specialist/SKILL.md +119 -0
  24. package/template/agent/skills/product-manager/SKILL.md +105 -0
  25. package/template/agent/skills/real-time-features/SKILL.md +194 -0
  26. package/template/agent/skills/retention-specialist/SKILL.md +123 -0
  27. package/template/agent/skills/saas-architect/SKILL.md +139 -0
  28. package/template/agent/skills/security-engineer/SKILL.md +133 -0
  29. package/template/agent/skills/seo-specialist/SKILL.md +130 -0
  30. package/template/agent/skills/subscription-billing/SKILL.md +179 -0
  31. package/template/agent/skills/ux-designer/SKILL.md +128 -0
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: seo-specialist
3
+ description: Use when working on technical SEO, keyword research, on-page optimization, backlink strategy, or improving organic search rankings
4
+ ---
5
+
6
+ # SEO Specialist Lens
7
+
8
+ > **Philosophy:** SEO is long-term compounding equity. Get indexed → get ranked → get traffic → repeat.
9
+ > Google ranks pages, not websites. Every page is its own opportunity.
10
+
11
+ ---
12
+
13
+ ## Core Instincts
14
+
15
+ - **Search intent first** — understand WHY someone searches before writing
16
+ - **Crawl → Index → Rank** — a page can't rank if it's not indexed; can't be indexed if not crawled
17
+ - **E-E-A-T matters for every niche** — Experience, Expertise, Authoritativeness, Trustworthiness
18
+ - **Backlinks = votes** — quality beats quantity; one DR70 link > 100 DR10 links
19
+ - **Core Web Vitals are a ranking signal** — performance and UX directly affect SEO
20
+
21
+ ---
22
+
23
+ ## On-Page SEO Exact Rules
24
+
25
+ | Element | Rule | Why |
26
+ |---------|------|-----|
27
+ | `<title>` tag | ≤ 60 characters | Truncated in SERPs beyond this |
28
+ | Meta description | ≤ 160 characters | Truncated; influences CTR not ranking |
29
+ | `<h1>` | 1 per page; include primary keyword | Strongest on-page keyword signal |
30
+ | URL slug | Short, hyphenated, keyword-rich | Clarity + keyword signal |
31
+ | Alt text (images) | Descriptive, include keyword naturally | Accessibility + image search |
32
+ | Primary keyword | In first 100 words, title, H1, 1 H2 | Keyword density ≈ 1–2%, no stuffing |
33
+ | Internal links | ≥ 3 to related pages | Passes link equity, improves crawl |
34
+ | Page load speed | LCP < 2.5s, CLS < 0.1, INP < 200ms | Core Web Vitals ranking signal |
35
+
36
+ ---
37
+
38
+ ## Keyword Research Process
39
+
40
+ 1. **Seed terms** — brainstorm 20–30 core topics
41
+ 2. **Expand** — use Ahrefs / Semrush "keyword ideas" to 5× the list
42
+ 3. **Cluster by intent** — Informational / Navigational / Commercial / Transactional
43
+ 4. **Score by KD + Volume** — prioritize: Volume > 100/month + KD < 30 (for new sites)
44
+ 5. **Long-tail first** — easier to rank; signals authority for head terms
45
+ 6. **Map to pages** — 1 primary keyword per page, 2–5 secondary
46
+
47
+ ---
48
+
49
+ ## Keyword Difficulty by Domain Rating
50
+
51
+ | Your Site DR | Target KD (Keyword Difficulty) |
52
+ |-------------|-------------------------------|
53
+ | 0–20 | < 15 |
54
+ | 20–40 | < 25 |
55
+ | 40–60 | < 40 |
56
+ | 60+ | < 60 |
57
+
58
+ *(DR = Domain Rating, KD = Keyword Difficulty, both 0–100 scale in Ahrefs)*
59
+
60
+ ---
61
+
62
+ ## Technical SEO Checklist
63
+
64
+ - [ ] `sitemap.xml` submitted to Google Search Console + Bing Webmaster
65
+ - [ ] `robots.txt` not accidentally blocking important pages
66
+ - [ ] Canonical tags on duplicate/near-duplicate pages
67
+ - [ ] HTTPS on all pages (non-HTTPS = ranking penalty)
68
+ - [ ] Mobile-friendly (Google uses mobile-first indexing)
69
+ - [ ] Core Web Vitals passing (LCP, CLS, INP) — verify in GSC
70
+ - [ ] Structured data (JSON-LD) on applicable pages (FAQ, Product, Review, Breadcrumb)
71
+ - [ ] No orphan pages (every important page linked to from at least 1 other page)
72
+ - [ ] Hreflang tags for multilingual sites
73
+
74
+ ---
75
+
76
+ ## Backlink Strategy
77
+
78
+ | Tactic | Effort | ROI |
79
+ |--------|--------|-----|
80
+ | Content linkbait (tools, data studies, guides) | High | ✅ Very high |
81
+ | Guest posting on relevant sites | Medium | ✅ High |
82
+ | HARO / journalist requests | Low | ✅ High |
83
+ | Broken link building | Medium | Medium |
84
+ | Directory and startup listings | Low | Low-medium |
85
+ | Buying links | — | ❌ Google penalty risk |
86
+
87
+ **Anchor text diversity:** Branded (40%) > Natural ("click here", 25%) > Keyword-rich (25%) > Naked URL (10%). Keyword-heavy anchor = manipulation signal.
88
+
89
+ ---
90
+
91
+ ## Questions You Always Ask
92
+
93
+ **When auditing a site:**
94
+ - Is the site indexed? (Check `site:domain.com` in Google, or GSC Index report)
95
+ - What's the current DR/DA? What's the plan to grow it?
96
+ - Are there pages cannibalizing each other for the same keyword?
97
+ - What does GSC show for impressions with 0 clicks? (Position 8–20 = low-hanging optimization)
98
+
99
+ **When planning new content:**
100
+ - What's the search intent — informational, commercial, or transactional?
101
+ - Is there current ranking content to optimize, or do we need a new page?
102
+ - What would earn a featured snippet for this query?
103
+
104
+ ---
105
+
106
+ ## Red Flags
107
+
108
+ **Must fix:**
109
+ - [ ] Important pages not indexed (check GSC)
110
+ - [ ] Multiple pages targeting the same keyword (cannibalization)
111
+ - [ ] No `<h1>` or multiple `<h1>` on a page
112
+ - [ ] Core Web Vitals failing in GSC
113
+
114
+ **Should fix:**
115
+ - [ ] No internal linking between related posts
116
+ - [ ] meta description missing or > 160 chars
117
+ - [ ] Title tags > 60 chars
118
+ - [ ] No structured data on applicable pages
119
+
120
+ ---
121
+
122
+ ## Who to Pair With
123
+ - `content-marketer` — for content strategy and topic selection
124
+ - `frontend-developer` — for Core Web Vitals and technical implementation
125
+ - `data-analyst` — for GSC data analysis and ranking tracking
126
+
127
+ ---
128
+
129
+ ## Tools
130
+ Google Search Console (free, essential) · Ahrefs · Semrush · Screaming Frog (site audits) · PageSpeed Insights · Moz · Answer the Public
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: subscription-billing
3
+ description: Use when integrating subscription billing, handling Stripe webhooks, implementing trial logic, managing upgrades/downgrades, or building dunning flows
4
+ ---
5
+
6
+ # Subscription Billing Lens
7
+
8
+ > **Philosophy:** Billing is load-bearing infrastructure. A bug in billing = lost revenue or incorrect charges.
9
+ > Build it like critical path code: idempotent, webhook-driven, logged exhaustively.
10
+
11
+ ---
12
+
13
+ ## Core Instincts
14
+
15
+ - **Webhook-first** — Stripe's webhook is the source of truth, not your API response
16
+ - **Idempotency everywhere** — billing operations must be safe to retry
17
+ - **Never trust client state for billing** — always fetch subscription status from Stripe server-side
18
+ - **All clock-sensitive operations use `event.created`** — not `Date.now()`
19
+ - **Soft failures, never hard block** — grace period on payment failures protects revenue
20
+
21
+ ---
22
+
23
+ ## Stripe Integration Architecture
24
+
25
+ ```
26
+ User upgrades plan →
27
+ 1. Client: Stripe.js → Payment Method → PaymentIntent / SetupIntent
28
+ 2. Server: Create/Update Subscription on Stripe
29
+ 3. Stripe: Processes payment → emits webhook event
30
+ 4. Server: Webhook handler updates DB subscription status
31
+ 5. Server: Return state from DB (never from Stripe API response)
32
+
33
+ ⚠️ Anti-pattern: updating DB from API response
34
+ ✅ Pattern: update DB only from webhook confirmation
35
+ ```
36
+
37
+ ---
38
+
39
+ ## Critical Webhook Events to Handle
40
+
41
+ | Event | What to do |
42
+ |-------|-----------|
43
+ | `checkout.session.completed` | Provision access, send welcome email |
44
+ | `customer.subscription.created` | Set status = `active`, log |
45
+ | `customer.subscription.updated` | Update plan, seats, feature flags |
46
+ | `customer.subscription.deleted` | Set status = `canceled`, begin grace period |
47
+ | `invoice.payment_succeeded` | Extend access, reset dunning state |
48
+ | `invoice.payment_failed` | Start dunning, notify user, DON'T revoke access immediately |
49
+ | `invoice.upcoming` | Warn user of upcoming charge |
50
+ | `customer.subscription.trial_will_end` | 3-day warning email before trial ends |
51
+
52
+ ---
53
+
54
+ ## Trial Logic Rules
55
+
56
+ ```
57
+ Trial best practices:
58
+ - Default trial: 14 days (Stripe default is 30; reduce for faster conversion signal)
59
+ - Require payment method at trial start (reduces churn at trial end)
60
+ - Free trial without CC = high trial-end churn; use for virality, not conversion
61
+ - trial_will_end webhook fires 3 days before → trigger upgrade prompt
62
+
63
+ Trial states:
64
+ trialing → (payment method on file) → auto-converts to active
65
+ trialing → (no payment method) → needs_payment_method → upgrade prompt
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Dunning Flow (Failed Payment Recovery)
71
+
72
+ ```
73
+ Day 0: Payment fails → invoice.payment_failed webhook
74
+ → Set subscription status = past_due
75
+ → Email: "Your payment failed — please update your card"
76
+ → DO NOT revoke access
77
+
78
+ Day 3: Stripe auto-retries
79
+ → On success: subscription back to active
80
+ → On fail: email #2 "We'll try again in 4 days"
81
+
82
+ Day 7: Stripe auto-retries
83
+ → On fail: email #3 with prominent card update CTA
84
+
85
+ Day 14: Final retry → if fails → subscription.deleted webhook
86
+ → Begin grace period (7–14 days before revoking access)
87
+ → Final email: "Your account will be suspended on [date]"
88
+
89
+ Configure in: Stripe Dashboard → Billing → Subscriptions → Retry schedule
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Proration & Plan Changes
95
+
96
+ ```javascript
97
+ // Upgrading mid-cycle: charge difference immediately
98
+ await stripe.subscriptions.update(subscriptionId, {
99
+ items: [{ id: itemId, price: newPriceId }],
100
+ proration_behavior: 'create_prorations', // Default — charge difference now
101
+ });
102
+
103
+ // Downgrading: apply at end of period (no refund)
104
+ await stripe.subscriptions.update(subscriptionId, {
105
+ items: [{ id: itemId, price: lowerPriceId }],
106
+ proration_behavior: 'none',
107
+ billing_cycle_anchor: 'unchanged',
108
+ });
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Idempotency Pattern
114
+
115
+ ```javascript
116
+ // All Stripe API calls should use idempotency keys
117
+ await stripe.subscriptions.create(params, {
118
+ idempotencyKey: `sub_create_${userId}_${planId}`,
119
+ });
120
+
121
+ // Webhook handlers must be idempotent
122
+ async function handleWebhook(event) {
123
+ // Check if already processed
124
+ if (await db.webhookEvents.find(event.id)) return;
125
+
126
+ await db.webhookEvents.create({ id: event.id, processedAt: new Date() });
127
+ // ... handle event
128
+ }
129
+ ```
130
+
131
+ ---
132
+
133
+ ## ❌ Anti-Patterns to Avoid
134
+
135
+ | ❌ NEVER DO | Why | ✅ DO INSTEAD |
136
+ |------------|-----|--------------|
137
+ | Update subscription status from API response | Stripe may succeed but your server errors | Only from webhook |
138
+ | Revoke access immediately on payment failure | Kills goodwill; many recover | Grace period + dunning |
139
+ | No idempotency on webhook handler | Duplicate events → double-provision | Store processed event IDs |
140
+ | Store card details in your DB | PCI violation | Use Stripe tokens only |
141
+ | Use `Date.now()` for billing timestamps | Clock drift causes subtle bugs | Use `event.created` from Stripe |
142
+ | Hardcode price IDs in code | Can't change pricing without deploy | Store in env vars or DB |
143
+
144
+ ---
145
+
146
+ ## Questions You Always Ask
147
+
148
+ **When building billing:**
149
+ - Is the webhook handler idempotent? What happens if it fires twice?
150
+ - Are we testing with Stripe test mode webhooks via `stripe listen`?
151
+ - What's the grace period on failed payments before access revocation?
152
+ - Is there a webhook signature verification (`stripe.webhooks.constructEvent`)?
153
+
154
+ ---
155
+
156
+ ## Red Flags
157
+
158
+ **Must fix:**
159
+ - [ ] Subscription status updated from API response (not webhook)
160
+ - [ ] No webhook signature verification
161
+ - [ ] Access revoked immediately on `invoice.payment_failed`
162
+ - [ ] No idempotency on webhook handler
163
+
164
+ **Should fix:**
165
+ - [ ] No dunning email sequence
166
+ - [ ] No handling of `customer.subscription.trial_will_end`
167
+ - [ ] Price IDs hardcoded in application code
168
+
169
+ ---
170
+
171
+ ## Who to Pair With
172
+ - `saas-architect` — for subscription status in the tenant data model
173
+ - `backend-developer` — for API design around billing operations
174
+ - `monetization-strategist` — for pricing model decisions
175
+
176
+ ---
177
+
178
+ ## Tools
179
+ Stripe (billing) · `stripe-node` · Stripe CLI (`stripe listen` for local webhooks) · Stripe Test Cards (4242 4242 4242 4242) · Paddle (alternative with VAT/tax handling)
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: ux-designer
3
+ description: Use when designing UI, creating wireframes, running user research, defining information architecture, or reviewing design decisions — regardless of tool (Figma, Sketch, etc.)
4
+ ---
5
+
6
+ # UX Designer Lens
7
+
8
+ > **Philosophy:** Design is problem solving, not decoration. Good UX is invisible — users accomplish their goal without noticing the interface.
9
+ > The best design eliminates decisions the user shouldn't have to make.
10
+
11
+ ---
12
+
13
+ ## ⚠️ ASK BEFORE ASSUMING
14
+
15
+ | What | Why it matters |
16
+ |------|----------------|
17
+ | **Platform?** iOS / Android / Web / Desktop | Each has distinct patterns and constraints |
18
+ | **Stage?** Early exploration / Detailed design / Polish | Changes fidelity needed |
19
+ | **User research available?** | Can't design for a user you haven't talked to |
20
+ | **Design system exists?** | Whether to extend or create from scratch |
21
+
22
+ ---
23
+
24
+ ## Core Instincts
25
+
26
+ - **Design for the job-to-be-done** — what is the user trying to accomplish? Remove everything that doesn't serve that
27
+ - **Hierarchy guides the eye** — size, color, and position communicate importance; every screen needs one clear primary action
28
+ - **Friction has a cost** — every tap, field, and decision users must make is a drop in task completion
29
+ - **Don't make me think (Steve Krug)** — if users have to figure it out, the design failed
30
+ - **Test with 5 users** — 5 usability test sessions reveal ~85% of usability problems
31
+
32
+ ---
33
+
34
+ ## Hick's Law & Fitts' Law Applied
35
+
36
+ ```
37
+ Hick's Law: Decision time = log2(N choices)
38
+ → More options = slower decisions = more friction
39
+ → Max 5–7 items in navigation; fewer primary actions per screen
40
+
41
+ Fitts' Law: Time to tap = a + b × log2(distance/size + 1)
42
+ → Bigger targets = faster taps
43
+ → Primary CTA: minimum 44×44pt (iOS) / 48×48dp (Android) / 44×44px (web)
44
+ → Place common actions closer to thumb (bottom of screen on mobile)
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Design Hierarchy Checklist
50
+
51
+ Every screen needs exactly:
52
+ - 1 primary action (largest, highest contrast, most prominent)
53
+ - 0–2 secondary actions (smaller, lower contrast)
54
+ - 0–1 tertiary action (text link or icon)
55
+
56
+ If a screen has 3+ things competing for attention → redesign.
57
+
58
+ ---
59
+
60
+ ## ❌ Anti-Patterns to Avoid
61
+
62
+ | ❌ NEVER DO | Why | ✅ DO INSTEAD |
63
+ |------------|-----|--------------|
64
+ | Design in isolation without user feedback | Solving assumed problems | User interviews before wireframing |
65
+ | 5+ items in primary navigation | Cognitive overload, users freeze | 4–5 items max; progressive disclosure for the rest |
66
+ | Decorative animations only | Distraction without purpose | Animations that communicate state change or guide attention |
67
+ | Red for non-error states | Deep-wired association: red = danger | Reserve red for errors/destructive actions only |
68
+ | Long onboarding before value | Users leave before experiencing product | Show value first, teach later |
69
+ | Placeholder text as labels | Disappears on input, user forgets context | Floating labels or static labels above inputs |
70
+ | Custom gestures with no affordance | Undiscoverable | Teach novel gestures with a coach mark on first encounter |
71
+
72
+ ---
73
+
74
+ ## Color & Contrast Rules (WCAG 2.1)
75
+
76
+ | Text type | Minimum contrast ratio |
77
+ |-----------|----------------------|
78
+ | Normal text (< 18pt) | **4.5:1** |
79
+ | Large text (≥ 18pt or bold 14pt) | **3:1** |
80
+ | UI components, icons | **3:1** |
81
+ | Decorative, disabled | No requirement |
82
+
83
+ **Check with:** WebAIM Contrast Checker · Figma Contrast plugin · Stark
84
+
85
+ ---
86
+
87
+ ## Questions You Always Ask
88
+
89
+ **When designing a new screen:**
90
+ - What is the single primary action on this screen?
91
+ - What does the user need to know to complete their goal here?
92
+ - What happens when there's no data (empty state)?
93
+ - How does this look on a 375px screen?
94
+
95
+ **When reviewing existing design:**
96
+ - Can a new user complete the core task without instruction?
97
+ - Is the visual hierarchy immediately clear — what's most important?
98
+ - Are touch targets large enough? (Use a 44pt grid overlay)
99
+ - Does every animation serve a purpose?
100
+
101
+ ---
102
+
103
+ ## Red Flags in Design Review
104
+
105
+ **Must fix:**
106
+ - [ ] No empty state designed (blank screen = broken feel)
107
+ - [ ] Primary action competes with 2+ other elements for attention
108
+ - [ ] Touch targets < 44pt / 48dp on mobile
109
+ - [ ] Text/background contrast < 4.5:1 for body text
110
+
111
+ **Should fix:**
112
+ - [ ] Navigation > 5 items
113
+ - [ ] Onboarding > 4 screens before first value delivery
114
+ - [ ] Placeholder text used as the only label for form inputs
115
+ - [ ] Loading state not designed
116
+
117
+ ---
118
+
119
+ ## Who to Pair With
120
+ - `mobile-developer` — for mobile interaction constraints and platform conventions
121
+ - `frontend-developer` — for web accessibility and component design
122
+ - `conversion-optimizer` — for conversion-focused landing page design
123
+ - `product-manager` — for JTBD alignment before starting design
124
+
125
+ ---
126
+
127
+ ## Tools
128
+ Figma (design + prototyping) · FigJam (whiteboarding) · Maze / Useberry (usability testing) · Stark (accessibility) · Mobbin (UI reference/inspiration) · Lottie (animations)