@leejungkiin/awkit 1.1.6 → 1.1.9
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 +51 -1
- package/bin/awk.js +2 -2
- package/core/GEMINI.md +45 -7
- package/package.json +8 -5
- package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +14 -1
- package/skills/ab-test-store-listing/SKILL.md +220 -0
- package/skills/android-aso/SKILL.md +197 -0
- package/skills/app-analytics/SKILL.md +210 -0
- package/skills/app-clips/SKILL.md +163 -0
- package/skills/app-icon-optimization/SKILL.md +170 -0
- package/skills/app-launch/SKILL.md +153 -0
- package/skills/app-marketing-context/SKILL.md +129 -0
- package/skills/app-store-featured/SKILL.md +213 -0
- package/skills/apple-search-ads/SKILL.md +205 -0
- package/skills/asc-metrics/SKILL.md +157 -0
- package/skills/aso-audit/SKILL.md +179 -0
- package/skills/competitor-analysis/SKILL.md +163 -0
- package/skills/competitor-tracking/SKILL.md +185 -0
- package/skills/crash-analytics/SKILL.md +181 -0
- package/skills/gitnexus-intelligence/SKILL.md +224 -0
- package/skills/in-app-events/SKILL.md +176 -0
- package/skills/keyword-research/SKILL.md +141 -0
- package/skills/localization/SKILL.md +165 -0
- package/skills/market-movers/SKILL.md +137 -0
- package/skills/market-pulse/SKILL.md +170 -0
- package/skills/metadata-optimization/SKILL.md +170 -0
- package/skills/monetization-strategy/SKILL.md +175 -0
- package/skills/onboarding-optimization/SKILL.md +194 -0
- package/skills/orchestrator/SKILL.md +306 -25
- package/skills/press-and-pr/SKILL.md +204 -0
- package/skills/rating-prompt-strategy/SKILL.md +184 -0
- package/skills/retention-optimization/SKILL.md +165 -0
- package/skills/review-management/SKILL.md +154 -0
- package/skills/screenshot-optimization/SKILL.md +167 -0
- package/skills/seasonal-aso/SKILL.md +141 -0
- package/skills/spec-gate/SKILL.md +312 -0
- package/skills/subscription-lifecycle/SKILL.md +206 -0
- package/skills/swiftui-pro/references/design.md +44 -0
- package/skills/symphony-enforcer/SKILL.md +92 -11
- package/skills/symphony-orchestrator/SKILL.md +9 -7
- package/skills/systematic-debugging/SKILL.md +32 -7
- package/skills/ua-campaign/SKILL.md +207 -0
- package/skills/verification-gate/SKILL.md +23 -2
- package/workflows/gitnexus.md +123 -0
- package/symphony/LICENSE +0 -21
- package/symphony/README.md +0 -178
- package/symphony/app/api/agents/route.js +0 -152
- package/symphony/app/api/events/route.js +0 -22
- package/symphony/app/api/knowledge/route.js +0 -253
- package/symphony/app/api/locks/route.js +0 -29
- package/symphony/app/api/notes/route.js +0 -125
- package/symphony/app/api/preflight/route.js +0 -23
- package/symphony/app/api/projects/route.js +0 -116
- package/symphony/app/api/roles/route.js +0 -134
- package/symphony/app/api/skills/route.js +0 -82
- package/symphony/app/api/status/route.js +0 -18
- package/symphony/app/api/tasks/route.js +0 -157
- package/symphony/app/api/workflows/route.js +0 -61
- package/symphony/app/api/workspaces/route.js +0 -15
- package/symphony/app/globals.css +0 -2605
- package/symphony/app/layout.js +0 -20
- package/symphony/app/page.js +0 -2122
- package/symphony/cli/index.js +0 -1060
- package/symphony/core/agent-manager.js +0 -357
- package/symphony/core/context-bus.js +0 -100
- package/symphony/core/db.js +0 -223
- package/symphony/core/file-lock-manager.js +0 -154
- package/symphony/core/merge-pipeline.js +0 -234
- package/symphony/core/orchestrator.js +0 -236
- package/symphony/core/task-manager.js +0 -335
- package/symphony/core/workspace-manager.js +0 -168
- package/symphony/jsconfig.json +0 -7
- package/symphony/lib/core.mjs +0 -1034
- package/symphony/mcp/index.js +0 -29
- package/symphony/mcp/server.js +0 -110
- package/symphony/mcp/tools/context.js +0 -80
- package/symphony/mcp/tools/locks.js +0 -99
- package/symphony/mcp/tools/status.js +0 -82
- package/symphony/mcp/tools/tasks.js +0 -216
- package/symphony/mcp/tools/workspace.js +0 -143
- package/symphony/next.config.mjs +0 -7
- package/symphony/package.json +0 -53
- package/symphony/scripts/postinstall.js +0 -49
- package/symphony/symphony.config.js +0 -41
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rating-prompt-strategy
|
|
3
|
+
description: When the user wants to improve their app's star rating, increase ratings volume, optimize when and how they prompt users for a review, or recover from a bad rating period. Use when the user mentions "app rating", "star rating", "review prompt", "SKStoreReviewRequest", "In-App Review API", "ask for review", "low rating", "rating drop", "get more reviews", or "recover from 1-star". For responding to reviews, see review-management. For overall ASO health, see aso-audit.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Rating Prompt Strategy
|
|
9
|
+
|
|
10
|
+
You optimize when, how, and to whom an app shows review prompts — maximizing high ratings while minimizing negative ones. Ratings are an App Store ranking signal and a conversion factor on the product page.
|
|
11
|
+
|
|
12
|
+
## Why Ratings Matter for ASO
|
|
13
|
+
|
|
14
|
+
- **Search ranking** — Apps with higher ratings rank better for competitive keywords
|
|
15
|
+
- **Conversion** — Rating stars are visible in search results; a 4.8 beats 4.2 at a glance
|
|
16
|
+
- **iOS:** Rating resets per version (you can request a reset in App Store Connect)
|
|
17
|
+
- **Android:** Ratings are permanent and cumulative — one bad period is hard to recover
|
|
18
|
+
|
|
19
|
+
## The Core Rule
|
|
20
|
+
|
|
21
|
+
**Only prompt users who have experienced value.** Prompting too early produces low ratings. Prompting at a success moment produces 4–5 star ratings.
|
|
22
|
+
|
|
23
|
+
## iOS — SKStoreReviewRequest
|
|
24
|
+
|
|
25
|
+
Apple's native prompt. Rules:
|
|
26
|
+
- Shows at most **3 times per year** regardless of how many times you call it
|
|
27
|
+
- Apple controls the display logic — calling it doesn't guarantee it shows
|
|
28
|
+
- Never prompt after an error, crash, or frustrating moment
|
|
29
|
+
- Cannot customize the prompt UI
|
|
30
|
+
|
|
31
|
+
```swift
|
|
32
|
+
import StoreKit
|
|
33
|
+
|
|
34
|
+
// Call at the right moment
|
|
35
|
+
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
|
|
36
|
+
SKStoreReviewController.requestReview(in: scene)
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Android — Play In-App Review API
|
|
41
|
+
|
|
42
|
+
Google's native prompt. Rules:
|
|
43
|
+
- No hard limits, but Google throttles it if called too often
|
|
44
|
+
- Show after a clear positive moment
|
|
45
|
+
- Cannot determine if the user actually rated (privacy)
|
|
46
|
+
|
|
47
|
+
```kotlin
|
|
48
|
+
val manager = ReviewManagerFactory.create(context)
|
|
49
|
+
val request = manager.requestReviewFlow()
|
|
50
|
+
request.addOnCompleteListener { task ->
|
|
51
|
+
if (task.isSuccessful) {
|
|
52
|
+
val reviewInfo = task.result
|
|
53
|
+
val flow = manager.launchReviewFlow(activity, reviewInfo)
|
|
54
|
+
flow.addOnCompleteListener { /* proceed */ }
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Timing Framework
|
|
60
|
+
|
|
61
|
+
### The Success Moment Trigger
|
|
62
|
+
|
|
63
|
+
Define 1–3 "success moments" in your app where users are most satisfied:
|
|
64
|
+
|
|
65
|
+
| App Type | Good Prompt Moments | Bad Prompt Moments |
|
|
66
|
+
|----------|--------------------|--------------------|
|
|
67
|
+
| Fitness | After completing a workout | After skipping a session |
|
|
68
|
+
| Productivity | After completing a project/task | After a failed save or sync error |
|
|
69
|
+
| Games | After winning a level or beating a boss | After losing or failing |
|
|
70
|
+
| Finance | After first successful transaction | After a confusing error |
|
|
71
|
+
| Meditation | After completing a session | On cold open |
|
|
72
|
+
| Shopping | After a successful purchase/delivery | After a failed checkout |
|
|
73
|
+
|
|
74
|
+
### Session-Based Rules
|
|
75
|
+
|
|
76
|
+
Only prompt users who meet all criteria:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Criteria to prompt:
|
|
80
|
+
✓ Sessions >= 3 (not a first-time user)
|
|
81
|
+
✓ Time since install >= 3 days
|
|
82
|
+
✓ Has completed [activation event] at least once
|
|
83
|
+
✓ No crash in last session
|
|
84
|
+
✓ No negative signal (error, cancellation) in current session
|
|
85
|
+
✓ Not already rated this version
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Pre-Prompt Survey (Recommended)
|
|
89
|
+
|
|
90
|
+
Before triggering the native prompt, show a single in-app question:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
"Are you enjoying [App Name]?"
|
|
94
|
+
[Yes, love it!] [Not really]
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- **"Yes"** → trigger `SKStoreReviewRequest` / Play In-App Review
|
|
98
|
+
- **"Not really"** → show a feedback form (email or in-app), **do not** trigger the native prompt
|
|
99
|
+
|
|
100
|
+
This filters out dissatisfied users before they can rate you 1–2 stars.
|
|
101
|
+
|
|
102
|
+
**Expected improvement:** 0.3–0.8 stars on average with a pre-prompt filter.
|
|
103
|
+
|
|
104
|
+
## Version-Gating (iOS)
|
|
105
|
+
|
|
106
|
+
iOS allows you to reset ratings per version in App Store Connect. Use this strategically:
|
|
107
|
+
|
|
108
|
+
- **Reset after a major improvement** — If you fixed the top-complained issues
|
|
109
|
+
- **Do not reset** after a controversial change that users disliked
|
|
110
|
+
- After a reset, run an aggressive (but filtered) prompt campaign in the first 7 days
|
|
111
|
+
- Target your most engaged users first (longest session history)
|
|
112
|
+
|
|
113
|
+
## Recovering from a Rating Drop
|
|
114
|
+
|
|
115
|
+
### Diagnosis
|
|
116
|
+
|
|
117
|
+
1. Check which version caused the drop — correlate with release dates
|
|
118
|
+
2. Read the 1-star reviews for that period — find the common complaint
|
|
119
|
+
3. Fix the issue in the next release
|
|
120
|
+
4. Reply to every 1–3 star review (see `review-management` skill)
|
|
121
|
+
|
|
122
|
+
### Recovery Campaign
|
|
123
|
+
|
|
124
|
+
After the fix is shipped:
|
|
125
|
+
1. Reply to negative reviews: "Fixed in version X.X — please update and let us know"
|
|
126
|
+
2. Some users will update their rating after a reply
|
|
127
|
+
3. Run a prompt campaign targeted at your most loyal users (highest session count)
|
|
128
|
+
4. Do not prompt users who left a negative review
|
|
129
|
+
|
|
130
|
+
### Timeline
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
Day 0: Issue identified — hotfix or patch in progress
|
|
134
|
+
Day 1–3: Reply to every negative review acknowledging the issue
|
|
135
|
+
Day 7: Fix shipped — reply to previous negative reviews "Fixed in X.X"
|
|
136
|
+
Day 8+: Enable prompt for sessions >= 5, no crash last 7 days
|
|
137
|
+
Week 3: Monitor rating trend — should recover 0.2–0.5 stars in 2–4 weeks
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Prompt Frequency
|
|
141
|
+
|
|
142
|
+
| Platform | Maximum | Recommended |
|
|
143
|
+
|----------|---------|-------------|
|
|
144
|
+
| iOS | 3× per 365 days (Apple-enforced) | 1–2× per version |
|
|
145
|
+
| Android | No hard limit (Google throttles) | 1× per 30 days per user |
|
|
146
|
+
|
|
147
|
+
Never show the prompt twice in the same session.
|
|
148
|
+
|
|
149
|
+
## Output Format
|
|
150
|
+
|
|
151
|
+
### Rating Strategy Plan
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Current rating: [X.X] ★ ([N] ratings)
|
|
155
|
+
Platform: iOS / Android / Both
|
|
156
|
+
|
|
157
|
+
Success moments identified:
|
|
158
|
+
1. [Event name] — fires when [condition]
|
|
159
|
+
2. [Event name] — fires when [condition]
|
|
160
|
+
|
|
161
|
+
Pre-prompt survey: Yes / No
|
|
162
|
+
If yes: "Are you enjoying [App Name]?" → Yes / Not really
|
|
163
|
+
|
|
164
|
+
Prompt trigger logic:
|
|
165
|
+
Sessions >= [N]
|
|
166
|
+
Days since install >= [N]
|
|
167
|
+
No crash in last [N] sessions
|
|
168
|
+
[Activation event] completed: yes
|
|
169
|
+
Already rated this version: no
|
|
170
|
+
|
|
171
|
+
Expected outcome: +[X] stars over [N] weeks
|
|
172
|
+
|
|
173
|
+
Recovery plan (if rating < 4.0):
|
|
174
|
+
1. [Fix] — ship by [date]
|
|
175
|
+
2. [Reply strategy] — [N] reviews to address
|
|
176
|
+
3. [Prompt campaign] — start [date], target [segment]
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Related Skills
|
|
180
|
+
|
|
181
|
+
- `review-management` — Respond to reviews to recover rating
|
|
182
|
+
- `onboarding-optimization` — Fix activation issues that drive 1-star reviews
|
|
183
|
+
- `android-aso` — Play In-App Review API context
|
|
184
|
+
- `retention-optimization` — Engaged users give better ratings
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: retention-optimization
|
|
3
|
+
description: When the user wants to reduce churn, improve user engagement, or increase lifetime value. Also use when the user mentions "retention", "churn", "users leaving", "engagement", "DAU/MAU", "user activation", or "why are users uninstalling". For onboarding-specific issues, see app-launch. For monetization, see monetization-strategy.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Retention Optimization
|
|
9
|
+
|
|
10
|
+
You are an expert in mobile app retention and engagement strategy. Your goal is to diagnose retention issues and provide a prioritized plan to keep users coming back.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it for context
|
|
15
|
+
2. Ask for **current retention metrics** (Day 1, Day 7, Day 30 if available)
|
|
16
|
+
3. Ask for **app category** (benchmarks vary dramatically)
|
|
17
|
+
4. Ask about **monetization model** (retention strategy differs for free vs subscription)
|
|
18
|
+
5. Ask about **current engagement features** (push notifications, streaks, etc.)
|
|
19
|
+
|
|
20
|
+
## Retention Benchmarks
|
|
21
|
+
|
|
22
|
+
### Industry Averages (Day 1 / Day 7 / Day 30)
|
|
23
|
+
|
|
24
|
+
| Category | Day 1 | Day 7 | Day 30 | Good |
|
|
25
|
+
|----------|-------|-------|--------|------|
|
|
26
|
+
| Games | 25-30% | 10-15% | 3-5% | D1 >35%, D30 >8% |
|
|
27
|
+
| Social | 30-35% | 15-20% | 8-12% | D1 >40%, D30 >15% |
|
|
28
|
+
| Health & Fitness | 20-25% | 10-12% | 4-6% | D1 >30%, D30 >10% |
|
|
29
|
+
| Productivity | 15-20% | 8-10% | 3-5% | D1 >25%, D30 >8% |
|
|
30
|
+
| E-commerce | 15-20% | 5-8% | 2-3% | D1 >25%, D30 >5% |
|
|
31
|
+
| Finance | 20-25% | 10-12% | 5-8% | D1 >30%, D30 >10% |
|
|
32
|
+
| Education | 15-20% | 8-10% | 3-5% | D1 >25%, D30 >8% |
|
|
33
|
+
|
|
34
|
+
## Retention Framework
|
|
35
|
+
|
|
36
|
+
### 1. Activation (Day 0-1)
|
|
37
|
+
|
|
38
|
+
The first session determines everything. Users who don't reach the "aha moment" in session 1 rarely return.
|
|
39
|
+
|
|
40
|
+
**Diagnose:**
|
|
41
|
+
- What % of users complete onboarding?
|
|
42
|
+
- How long until the first value moment?
|
|
43
|
+
- What's the drop-off point in the first session?
|
|
44
|
+
|
|
45
|
+
**Optimize:**
|
|
46
|
+
- Reduce time-to-value (show core value in < 60 seconds)
|
|
47
|
+
- Remove unnecessary onboarding steps
|
|
48
|
+
- Defer account creation until after value delivery
|
|
49
|
+
- Use progressive disclosure (don't overwhelm)
|
|
50
|
+
- Show a "quick win" in the first session
|
|
51
|
+
|
|
52
|
+
### 2. Habit Formation (Day 1-7)
|
|
53
|
+
|
|
54
|
+
**Diagnose:**
|
|
55
|
+
- What triggers bring users back?
|
|
56
|
+
- Is there a natural usage frequency?
|
|
57
|
+
- What do retained users do that churned users don't?
|
|
58
|
+
|
|
59
|
+
**Optimize:**
|
|
60
|
+
- **Push notifications** — Personalized, value-driven, not spammy
|
|
61
|
+
- Day 1: "Welcome back — here's what you missed"
|
|
62
|
+
- Day 3: "[Specific value] is waiting for you"
|
|
63
|
+
- Day 7: "You're on a [N]-day streak!"
|
|
64
|
+
- **Streaks & progress** — Visual progress indicators
|
|
65
|
+
- **Daily content** — New content, challenges, or recommendations
|
|
66
|
+
- **Social hooks** — Friends, leaderboards, sharing
|
|
67
|
+
|
|
68
|
+
### 3. Engagement Deepening (Day 7-30)
|
|
69
|
+
|
|
70
|
+
**Diagnose:**
|
|
71
|
+
- Which features do power users use that casual users don't?
|
|
72
|
+
- What's the engagement cliff (when do users stop exploring)?
|
|
73
|
+
|
|
74
|
+
**Optimize:**
|
|
75
|
+
- Feature discovery prompts (introduce advanced features gradually)
|
|
76
|
+
- Personalization (adapt content/recommendations to usage patterns)
|
|
77
|
+
- Community features (forums, social, user-generated content)
|
|
78
|
+
- Achievement system (badges, milestones, rewards)
|
|
79
|
+
|
|
80
|
+
### 4. Long-term Retention (Day 30+)
|
|
81
|
+
|
|
82
|
+
**Diagnose:**
|
|
83
|
+
- What causes late-stage churn?
|
|
84
|
+
- Are there seasonal patterns?
|
|
85
|
+
- Do updates improve or hurt retention?
|
|
86
|
+
|
|
87
|
+
**Optimize:**
|
|
88
|
+
- Regular content updates
|
|
89
|
+
- Feature launches that re-engage dormant users
|
|
90
|
+
- Win-back campaigns for churned users
|
|
91
|
+
- Loyalty rewards for long-term users
|
|
92
|
+
|
|
93
|
+
## Churn Prevention Tactics
|
|
94
|
+
|
|
95
|
+
### Push Notification Strategy
|
|
96
|
+
|
|
97
|
+
| Timing | Message Type | Example |
|
|
98
|
+
|--------|-------------|---------|
|
|
99
|
+
| Day 1 | Welcome + quick tip | "Tap here to set up your first [X]" |
|
|
100
|
+
| Day 3 | Value reminder | "Your [data/content] is ready to view" |
|
|
101
|
+
| Day 5 | Social proof | "[N] people completed [action] this week" |
|
|
102
|
+
| Day 7 | Streak/progress | "You're building a great habit!" |
|
|
103
|
+
| Day 14 | Feature discovery | "Did you know you can also [feature]?" |
|
|
104
|
+
| Day 30 | Milestone | "One month! Here's your progress summary" |
|
|
105
|
+
|
|
106
|
+
**Rules:**
|
|
107
|
+
- Max 3-5 notifications per week
|
|
108
|
+
- Always provide value, never just "Come back!"
|
|
109
|
+
- Personalize based on user behavior
|
|
110
|
+
- Allow granular notification preferences
|
|
111
|
+
- A/B test timing and copy
|
|
112
|
+
|
|
113
|
+
### Win-back Campaigns
|
|
114
|
+
|
|
115
|
+
For users who haven't opened the app in 7+ days:
|
|
116
|
+
1. **Email** (if you have it) — "We've added [feature] since you last visited"
|
|
117
|
+
2. **Push notification** — "[Specific value] is waiting for you"
|
|
118
|
+
3. **In-app message** (on return) — "Welcome back! Here's what's new"
|
|
119
|
+
|
|
120
|
+
### Cancellation Flow (Subscriptions)
|
|
121
|
+
|
|
122
|
+
When a user tries to cancel:
|
|
123
|
+
1. Ask why (multiple choice)
|
|
124
|
+
2. Offer alternatives based on reason:
|
|
125
|
+
- "Too expensive" → Offer discount or downgrade
|
|
126
|
+
- "Don't use enough" → Show usage stats, suggest features
|
|
127
|
+
- "Missing feature" → Share roadmap, offer to notify
|
|
128
|
+
- "Found alternative" → Highlight unique value
|
|
129
|
+
3. Offer pause instead of cancel
|
|
130
|
+
4. Make it easy to cancel (forced retention backfires)
|
|
131
|
+
|
|
132
|
+
## Output Format
|
|
133
|
+
|
|
134
|
+
### Retention Diagnostic
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Current State:
|
|
138
|
+
- Day 1: [X]% (benchmark: [Y]%) [above/below]
|
|
139
|
+
- Day 7: [X]% (benchmark: [Y]%) [above/below]
|
|
140
|
+
- Day 30: [X]% (benchmark: [Y]%) [above/below]
|
|
141
|
+
|
|
142
|
+
Biggest Drop-off: Day [N] to Day [N]
|
|
143
|
+
Estimated Impact: [X]% improvement = [Y] additional monthly users
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Action Plan
|
|
147
|
+
|
|
148
|
+
**Week 1 (Quick Wins):**
|
|
149
|
+
1. [specific tactic with expected impact]
|
|
150
|
+
2. [specific tactic with expected impact]
|
|
151
|
+
|
|
152
|
+
**Month 1 (High Impact):**
|
|
153
|
+
1. [specific tactic with expected impact]
|
|
154
|
+
2. [specific tactic with expected impact]
|
|
155
|
+
|
|
156
|
+
**Quarter 1 (Strategic):**
|
|
157
|
+
1. [specific tactic with expected impact]
|
|
158
|
+
2. [specific tactic with expected impact]
|
|
159
|
+
|
|
160
|
+
## Related Skills
|
|
161
|
+
|
|
162
|
+
- `app-analytics` — Set up retention tracking
|
|
163
|
+
- `monetization-strategy` — Retention's impact on revenue
|
|
164
|
+
- `review-management` — Retention issues surface in reviews
|
|
165
|
+
- `app-launch` — First-time user experience
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-management
|
|
3
|
+
description: When the user wants to analyze, respond to, or improve their app reviews and ratings. Also use when the user mentions "reviews", "ratings", "negative reviews", "how to get more reviews", "review response", or "my rating is dropping". For broader ASO audit, see aso-audit. For retention issues causing bad reviews, see retention-optimization.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Review Management
|
|
9
|
+
|
|
10
|
+
You are an expert in app review strategy and reputation management. Your goal is to help the user turn reviews into a growth lever — improving ratings, gaining insights, and building user trust.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it for context
|
|
15
|
+
2. Ask for the **App ID** (to fetch current reviews)
|
|
16
|
+
3. Ask for **target country** (default: US)
|
|
17
|
+
4. Ask about their **current rating** and **trend** (improving or declining?)
|
|
18
|
+
5. Ask if they **currently respond** to reviews
|
|
19
|
+
|
|
20
|
+
## Review Analysis Framework
|
|
21
|
+
|
|
22
|
+
### Sentiment Analysis
|
|
23
|
+
|
|
24
|
+
Categorize reviews into:
|
|
25
|
+
|
|
26
|
+
| Category | Description | Action |
|
|
27
|
+
|----------|-------------|--------|
|
|
28
|
+
| **Bugs & Crashes** | Technical issues | Fix and respond with timeline |
|
|
29
|
+
| **Feature Requests** | Users want something new | Track frequency, consider for roadmap |
|
|
30
|
+
| **UX Complaints** | Confusing or frustrating flows | Prioritize UX improvements |
|
|
31
|
+
| **Pricing Complaints** | Too expensive, paywall issues | Review monetization strategy |
|
|
32
|
+
| **Love & Praise** | Positive feedback | Thank and ask for sharing |
|
|
33
|
+
| **Competitor Mentions** | Users comparing to alternatives | Understand competitive gaps |
|
|
34
|
+
|
|
35
|
+
### Review Metrics to Track
|
|
36
|
+
|
|
37
|
+
| Metric | Target | Why |
|
|
38
|
+
|--------|--------|-----|
|
|
39
|
+
| Average rating | 4.5+ stars | Below 4.0 significantly hurts conversion |
|
|
40
|
+
| Rating trend | Stable or improving | Declining trend signals problems |
|
|
41
|
+
| Review velocity | Consistent | Sudden drops may indicate prompt issues |
|
|
42
|
+
| Response rate | 100% of negative | Shows you care, can change ratings |
|
|
43
|
+
| Response time | < 24 hours | Fast responses build trust |
|
|
44
|
+
|
|
45
|
+
## Rating Improvement Strategy
|
|
46
|
+
|
|
47
|
+
### In-App Rating Prompt Optimization
|
|
48
|
+
|
|
49
|
+
**When to show the prompt:**
|
|
50
|
+
- After a positive experience (completed a task, achieved a goal)
|
|
51
|
+
- After the user has used the app 3+ times
|
|
52
|
+
- After at least 7 days of usage
|
|
53
|
+
- Never after a crash, error, or frustrating moment
|
|
54
|
+
- Never during onboarding or first session
|
|
55
|
+
|
|
56
|
+
**Apple's SKStoreReviewController rules:**
|
|
57
|
+
- Can only be called 3 times per 365-day period per device
|
|
58
|
+
- Apple controls when the dialog actually appears
|
|
59
|
+
- You cannot customize the dialog
|
|
60
|
+
- You can control WHEN you call it (timing is everything)
|
|
61
|
+
|
|
62
|
+
**Smart trigger patterns:**
|
|
63
|
+
1. **Achievement trigger** — User completes a milestone
|
|
64
|
+
2. **Streak trigger** — User returns for N consecutive days
|
|
65
|
+
3. **Value trigger** — User saves money, time, or achieves a result
|
|
66
|
+
4. **Delight trigger** — After a moment of surprise or delight
|
|
67
|
+
|
|
68
|
+
### Handling Negative Reviews
|
|
69
|
+
|
|
70
|
+
**Response framework (HEAR):**
|
|
71
|
+
1. **H**ear — Acknowledge the specific issue they mentioned
|
|
72
|
+
2. **E**mpathize — Show you understand their frustration
|
|
73
|
+
3. **A**ct — Explain what you're doing about it (or have done)
|
|
74
|
+
4. **R**esolve — Invite them to contact support for direct help
|
|
75
|
+
|
|
76
|
+
**Response templates:**
|
|
77
|
+
|
|
78
|
+
**Bug report:**
|
|
79
|
+
> Thank you for reporting this, [name]. We identified the issue and it's fixed in version [X.X] releasing [date]. We appreciate your patience — please update when available and let us know if it resolves the issue.
|
|
80
|
+
|
|
81
|
+
**Feature request:**
|
|
82
|
+
> Great suggestion! We've added this to our roadmap. We're always looking to improve based on user feedback. Stay tuned for upcoming updates.
|
|
83
|
+
|
|
84
|
+
**Vague negative ("This app sucks"):**
|
|
85
|
+
> We're sorry to hear about your experience. We'd love to understand what went wrong so we can improve. Could you reach out to [support email] with details? We're here to help.
|
|
86
|
+
|
|
87
|
+
**What NOT to do:**
|
|
88
|
+
- Don't be defensive or argumentative
|
|
89
|
+
- Don't copy-paste the same response to every review
|
|
90
|
+
- Don't ignore negative reviews
|
|
91
|
+
- Don't ask users to change their rating (against guidelines)
|
|
92
|
+
- Don't offer incentives for reviews
|
|
93
|
+
|
|
94
|
+
### Turning Detractors into Advocates
|
|
95
|
+
|
|
96
|
+
1. **Fix the issue** they reported
|
|
97
|
+
2. **Respond** acknowledging the fix
|
|
98
|
+
3. **Follow up** via support if they contacted you
|
|
99
|
+
4. Many users will **update their review** after a positive resolution
|
|
100
|
+
|
|
101
|
+
## Review Mining for Product Insights
|
|
102
|
+
|
|
103
|
+
### Competitor Review Analysis
|
|
104
|
+
|
|
105
|
+
Read competitor reviews to find:
|
|
106
|
+
- **Unmet needs** — What do users wish the competitor had?
|
|
107
|
+
- **Common complaints** — What frustrates users? (your opportunity)
|
|
108
|
+
- **Switching triggers** — Why do users leave competitors?
|
|
109
|
+
- **Feature expectations** — What's table stakes in the category?
|
|
110
|
+
|
|
111
|
+
### Your Review Patterns
|
|
112
|
+
|
|
113
|
+
Analyze your reviews for:
|
|
114
|
+
- **Most mentioned features** (positive and negative)
|
|
115
|
+
- **Common user segments** (who uses your app?)
|
|
116
|
+
- **Emotional language** (what feelings does your app evoke?)
|
|
117
|
+
- **Comparison mentions** (which competitors do users mention?)
|
|
118
|
+
|
|
119
|
+
## Output Format
|
|
120
|
+
|
|
121
|
+
### Review Health Report
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
Rating: [X.X] ★ ([trend: ↑/↓/→])
|
|
125
|
+
Total Reviews: [N]
|
|
126
|
+
Last 30 Days: [N] reviews, [X.X] avg rating
|
|
127
|
+
Response Rate: [X]%
|
|
128
|
+
|
|
129
|
+
Top Issues:
|
|
130
|
+
1. [issue] — mentioned [N] times
|
|
131
|
+
2. [issue] — mentioned [N] times
|
|
132
|
+
3. [issue] — mentioned [N] times
|
|
133
|
+
|
|
134
|
+
Top Praise:
|
|
135
|
+
1. [praise] — mentioned [N] times
|
|
136
|
+
2. [praise] — mentioned [N] times
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Action Plan
|
|
140
|
+
|
|
141
|
+
1. **Immediate:** [respond to X negative reviews using templates]
|
|
142
|
+
2. **This week:** [fix top reported bug, optimize rating prompt timing]
|
|
143
|
+
3. **This month:** [implement top feature request, analyze competitor reviews]
|
|
144
|
+
|
|
145
|
+
### Response Drafts
|
|
146
|
+
|
|
147
|
+
Provide specific response drafts for the most impactful negative reviews.
|
|
148
|
+
|
|
149
|
+
## Related Skills
|
|
150
|
+
|
|
151
|
+
- `aso-audit` — Reviews as part of broader ASO health check
|
|
152
|
+
- `retention-optimization` — Fix retention issues causing bad reviews
|
|
153
|
+
- `competitor-analysis` — Mine competitor reviews for insights
|
|
154
|
+
- `app-analytics` — Track review metrics over time
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: screenshot-optimization
|
|
3
|
+
description: When the user wants to design, optimize, or evaluate App Store screenshots and preview videos. Also use when the user mentions "screenshots", "app preview", "product page design", "screenshot design", "creative assets", or "what should my screenshots show". For A/B testing screenshots, see ab-test-store-listing. For full ASO audit, see aso-audit.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Screenshot Optimization
|
|
9
|
+
|
|
10
|
+
You are an expert in App Store creative optimization with deep knowledge of what converts browsers into downloaders. Your goal is to help the user design screenshots that maximize conversion rate.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it for positioning and audience
|
|
15
|
+
2. Ask for the **App ID** (to see current screenshots)
|
|
16
|
+
3. Ask for **target audience** — who is browsing the App Store for this?
|
|
17
|
+
4. Ask for **top 3 features** they want to highlight
|
|
18
|
+
5. Ask if they have a **designer** or need guidance for DIY
|
|
19
|
+
|
|
20
|
+
## Screenshot Psychology
|
|
21
|
+
|
|
22
|
+
Users spend **3-6 seconds** on a product page before deciding. The first 3 screenshots (visible without scrolling) determine 80% of the conversion decision.
|
|
23
|
+
|
|
24
|
+
**What users look for:**
|
|
25
|
+
1. "Does this solve my problem?" (first screenshot)
|
|
26
|
+
2. "Is it easy to use?" (UI clarity)
|
|
27
|
+
3. "Is it worth downloading?" (social proof, quality signals)
|
|
28
|
+
|
|
29
|
+
## Screenshot Strategy Framework
|
|
30
|
+
|
|
31
|
+
### Slot 1: The Hook
|
|
32
|
+
|
|
33
|
+
The first screenshot is the most important. It should answer "What does this app do and why should I care?"
|
|
34
|
+
|
|
35
|
+
**Effective patterns:**
|
|
36
|
+
- **Benefit headline + key UI** — "Sleep Better Tonight" + sleep tracking screen
|
|
37
|
+
- **Before/After** — Show the transformation
|
|
38
|
+
- **Social proof + UI** — "5M+ users trust us" + main screen
|
|
39
|
+
- **Problem statement** — "Tired of [problem]?" + solution screen
|
|
40
|
+
|
|
41
|
+
**Avoid:**
|
|
42
|
+
- Generic "Welcome to [App]" screens
|
|
43
|
+
- Login/signup screens
|
|
44
|
+
- Settings or menu screens
|
|
45
|
+
|
|
46
|
+
### Slots 2-3: Core Value
|
|
47
|
+
|
|
48
|
+
Show the 2 most compelling features with benefit-driven captions.
|
|
49
|
+
|
|
50
|
+
### Slots 4-7: Feature Showcase
|
|
51
|
+
|
|
52
|
+
Each screenshot = one feature with a clear benefit headline.
|
|
53
|
+
|
|
54
|
+
**Formula:** `[Benefit Headline] + [Feature UI] + [Supporting Detail]`
|
|
55
|
+
|
|
56
|
+
### Slots 8-9: Trust & Differentiation
|
|
57
|
+
|
|
58
|
+
- Awards, press mentions, ratings
|
|
59
|
+
- Comparison with alternatives
|
|
60
|
+
- Premium/unique features
|
|
61
|
+
|
|
62
|
+
### Slot 10: Call to Action
|
|
63
|
+
|
|
64
|
+
- "Start your free trial"
|
|
65
|
+
- "Join [X] million users"
|
|
66
|
+
- Recap of key benefits
|
|
67
|
+
|
|
68
|
+
## Design Best Practices
|
|
69
|
+
|
|
70
|
+
### Text Overlays
|
|
71
|
+
|
|
72
|
+
| Do | Don't |
|
|
73
|
+
|----|-------|
|
|
74
|
+
| Benefit-driven headlines | Feature names ("Push Notifications") |
|
|
75
|
+
| 4-6 words per headline | Long paragraphs |
|
|
76
|
+
| Large, readable font (min 60px) | Small text that's unreadable |
|
|
77
|
+
| High contrast text | Text over busy backgrounds |
|
|
78
|
+
| Consistent font and style | Mixed fonts and sizes |
|
|
79
|
+
|
|
80
|
+
### Visual Design
|
|
81
|
+
|
|
82
|
+
| Do | Don't |
|
|
83
|
+
|----|-------|
|
|
84
|
+
| Clean, uncluttered UI | Busy screens with too much data |
|
|
85
|
+
| Consistent color scheme | Clashing colors |
|
|
86
|
+
| Modern device frames (or frameless) | Outdated device frames |
|
|
87
|
+
| Real app content (not lorem ipsum) | Placeholder or empty states |
|
|
88
|
+
| Dark mode if your app supports it | Ignoring dark mode users |
|
|
89
|
+
|
|
90
|
+
### Layout Patterns
|
|
91
|
+
|
|
92
|
+
**Portrait (recommended for most apps):**
|
|
93
|
+
- Device centered with text above or below
|
|
94
|
+
- Full-bleed UI with text overlay
|
|
95
|
+
- Split layout: text left, device right
|
|
96
|
+
|
|
97
|
+
**Landscape (games, video, productivity):**
|
|
98
|
+
- Full-screen gameplay/content
|
|
99
|
+
- Minimal text overlay
|
|
100
|
+
- Action-focused moments
|
|
101
|
+
|
|
102
|
+
### Localization
|
|
103
|
+
|
|
104
|
+
- Translate text overlays for each market
|
|
105
|
+
- Adjust cultural references and imagery
|
|
106
|
+
- Consider right-to-left layouts for Arabic/Hebrew
|
|
107
|
+
- Use local currency in pricing screenshots
|
|
108
|
+
|
|
109
|
+
## App Preview Video
|
|
110
|
+
|
|
111
|
+
### When to Use
|
|
112
|
+
- Complex apps that need demonstration
|
|
113
|
+
- Games (almost always beneficial)
|
|
114
|
+
- Apps with unique interactions
|
|
115
|
+
|
|
116
|
+
### Best Practices
|
|
117
|
+
- **Hook in first 3 seconds** — show the most impressive feature
|
|
118
|
+
- **15-30 seconds** optimal length
|
|
119
|
+
- **No sound dependency** — add captions/text overlays
|
|
120
|
+
- **Show real usage** — not marketing fluff
|
|
121
|
+
- **End with CTA** — "Download Free" or key benefit
|
|
122
|
+
|
|
123
|
+
### When to Skip
|
|
124
|
+
- Simple utility apps (screenshots are enough)
|
|
125
|
+
- Apps where the value is in content, not UI
|
|
126
|
+
|
|
127
|
+
## Output Format
|
|
128
|
+
|
|
129
|
+
### Screenshot Plan
|
|
130
|
+
|
|
131
|
+
For each of the 10 slots:
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Slot [N]: [Headline]
|
|
135
|
+
- Caption: "[benefit-driven text]"
|
|
136
|
+
- Screen: [which app screen to show]
|
|
137
|
+
- Layout: [portrait/landscape, device frame, text position]
|
|
138
|
+
- Key element: [what draws the eye]
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Design Brief
|
|
142
|
+
|
|
143
|
+
If the user needs to brief a designer:
|
|
144
|
+
- Color palette (from app brand)
|
|
145
|
+
- Font recommendations
|
|
146
|
+
- Layout template
|
|
147
|
+
- Text overlay copy for all 10 slots
|
|
148
|
+
- Device frame preference
|
|
149
|
+
- Background style
|
|
150
|
+
|
|
151
|
+
### Competitor Screenshot Audit
|
|
152
|
+
|
|
153
|
+
| Element | Your App | Comp 1 | Comp 2 | Comp 3 |
|
|
154
|
+
|---------|----------|--------|--------|--------|
|
|
155
|
+
| # of screenshots | | | | |
|
|
156
|
+
| Has video? | | | | |
|
|
157
|
+
| First screenshot type | | | | |
|
|
158
|
+
| Text overlay style | | | | |
|
|
159
|
+
| Design quality (1-10) | | | | |
|
|
160
|
+
| Unique angle | | | | |
|
|
161
|
+
|
|
162
|
+
## Related Skills
|
|
163
|
+
|
|
164
|
+
- `ab-test-store-listing` — Test screenshot variations
|
|
165
|
+
- `aso-audit` — Screenshots as part of broader audit
|
|
166
|
+
- `competitor-analysis` — Analyze competitor creative strategy
|
|
167
|
+
- `localization` — Localize screenshots for international markets
|