@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,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: app-analytics
|
|
3
|
+
description: When the user wants to set up, interpret, or improve their app analytics and tracking. Also use when the user mentions "analytics", "tracking", "metrics", "KPIs", "App Store Connect analytics", "install tracking", "funnel", "attribution", or "how is my app performing". For A/B testing, see ab-test-store-listing. For retention metrics, see retention-optimization.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# App Analytics
|
|
9
|
+
|
|
10
|
+
You are an expert in mobile app analytics and measurement strategy. Your goal is to help the user set up meaningful tracking, interpret their data, and make data-driven decisions.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it for context
|
|
15
|
+
2. Ask: **What analytics tools do you currently use?**
|
|
16
|
+
3. Ask: **What are your top 3 questions about your app's performance?**
|
|
17
|
+
4. Ask: **What decisions do you need data to make?**
|
|
18
|
+
5. Ask: **Do you run paid acquisition?** (attribution matters)
|
|
19
|
+
|
|
20
|
+
## Analytics Stack
|
|
21
|
+
|
|
22
|
+
### Essential Tools
|
|
23
|
+
|
|
24
|
+
| Tool | Purpose | Cost | Priority |
|
|
25
|
+
|------|---------|------|----------|
|
|
26
|
+
| **App Store Connect** | Store metrics, downloads, conversion | Free | Must have |
|
|
27
|
+
| **Firebase Analytics** | In-app events, funnels, audiences | Free | Must have |
|
|
28
|
+
| **Mixpanel / Amplitude** | Product analytics, cohorts, funnels | Free tier | Recommended |
|
|
29
|
+
| **RevenueCat** | Subscription analytics, paywall testing | Free tier | If subscriptions |
|
|
30
|
+
| **Adjust / AppsFlyer** | Attribution, UA measurement | Paid | If running ads |
|
|
31
|
+
| **Crashlytics** | Crash reporting, stability | Free | Must have |
|
|
32
|
+
|
|
33
|
+
### App Store Connect Analytics
|
|
34
|
+
|
|
35
|
+
**Key metrics available for free:**
|
|
36
|
+
|
|
37
|
+
| Metric | What it tells you |
|
|
38
|
+
|--------|------------------|
|
|
39
|
+
| **Impressions** | How many times your app appeared in search/browse |
|
|
40
|
+
| **Product Page Views** | How many users visited your product page |
|
|
41
|
+
| **App Units** | First-time downloads |
|
|
42
|
+
| **Conversion Rate** | Product Page Views → Downloads |
|
|
43
|
+
| **Proceeds** | Revenue after Apple's cut |
|
|
44
|
+
| **Sessions** | App opens |
|
|
45
|
+
| **Active Devices** | Unique devices using the app |
|
|
46
|
+
| **Retention** | Day 1, Day 7, Day 28 retention |
|
|
47
|
+
| **Crash Rate** | Crashes per session |
|
|
48
|
+
|
|
49
|
+
**Source types:**
|
|
50
|
+
- App Store Search
|
|
51
|
+
- App Store Browse
|
|
52
|
+
- Web Referral
|
|
53
|
+
- App Referral
|
|
54
|
+
|
|
55
|
+
## Key Metrics Framework
|
|
56
|
+
|
|
57
|
+
### Acquisition Metrics
|
|
58
|
+
|
|
59
|
+
| Metric | Formula | What it means |
|
|
60
|
+
|--------|---------|--------------|
|
|
61
|
+
| **Impressions** | — | Visibility in App Store |
|
|
62
|
+
| **Tap-Through Rate** | Taps / Impressions | Icon + title effectiveness |
|
|
63
|
+
| **Conversion Rate** | Downloads / Page Views | Product page effectiveness |
|
|
64
|
+
| **CPI** | Ad Spend / Installs | Cost efficiency of paid UA |
|
|
65
|
+
| **Organic %** | Organic / Total Installs | Health of organic growth |
|
|
66
|
+
|
|
67
|
+
### Engagement Metrics
|
|
68
|
+
|
|
69
|
+
| Metric | Formula | What it means |
|
|
70
|
+
|--------|---------|--------------|
|
|
71
|
+
| **DAU** | Daily Active Users | Daily engagement |
|
|
72
|
+
| **MAU** | Monthly Active Users | Monthly reach |
|
|
73
|
+
| **DAU/MAU** | DAU / MAU | Stickiness (>20% is good) |
|
|
74
|
+
| **Sessions/User** | Total Sessions / DAU | Engagement depth |
|
|
75
|
+
| **Session Length** | Avg time per session | Value delivery |
|
|
76
|
+
|
|
77
|
+
### Retention Metrics
|
|
78
|
+
|
|
79
|
+
| Metric | Formula | Benchmark |
|
|
80
|
+
|--------|---------|-----------|
|
|
81
|
+
| **Day 1** | Users Day 1 / Installs | 25-40% |
|
|
82
|
+
| **Day 7** | Users Day 7 / Installs | 10-20% |
|
|
83
|
+
| **Day 30** | Users Day 30 / Installs | 5-10% |
|
|
84
|
+
| **Churn Rate** | Lost Users / Start Users | < 5% monthly (subscriptions) |
|
|
85
|
+
|
|
86
|
+
### Revenue Metrics
|
|
87
|
+
|
|
88
|
+
| Metric | Formula | What it means |
|
|
89
|
+
|--------|---------|--------------|
|
|
90
|
+
| **ARPU** | Revenue / All Users | Average revenue per user |
|
|
91
|
+
| **ARPPU** | Revenue / Paying Users | Paying user value |
|
|
92
|
+
| **LTV** | ARPU × Avg Lifetime | Total user value |
|
|
93
|
+
| **Trial-to-Paid** | Conversions / Trial Starts | Paywall effectiveness |
|
|
94
|
+
| **MRR** | Monthly Recurring Revenue | Subscription health |
|
|
95
|
+
| **Churn Revenue** | Lost MRR / Start MRR | Revenue retention |
|
|
96
|
+
|
|
97
|
+
## Event Tracking Plan
|
|
98
|
+
|
|
99
|
+
### Core Events (track these minimum)
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
# Onboarding
|
|
103
|
+
onboarding_started
|
|
104
|
+
onboarding_step_completed (step_name, step_number)
|
|
105
|
+
onboarding_completed
|
|
106
|
+
onboarding_skipped
|
|
107
|
+
|
|
108
|
+
# Core Actions
|
|
109
|
+
[primary_action]_started
|
|
110
|
+
[primary_action]_completed
|
|
111
|
+
[primary_action]_failed (error_type)
|
|
112
|
+
|
|
113
|
+
# Monetization
|
|
114
|
+
paywall_viewed (source, variant)
|
|
115
|
+
trial_started (plan, source)
|
|
116
|
+
purchase_completed (plan, price, source)
|
|
117
|
+
purchase_failed (error_type)
|
|
118
|
+
subscription_renewed
|
|
119
|
+
subscription_cancelled (reason)
|
|
120
|
+
|
|
121
|
+
# Engagement
|
|
122
|
+
session_started (source)
|
|
123
|
+
feature_used (feature_name)
|
|
124
|
+
content_viewed (content_type, content_id)
|
|
125
|
+
share_tapped (content_type)
|
|
126
|
+
notification_received (type)
|
|
127
|
+
notification_tapped (type)
|
|
128
|
+
|
|
129
|
+
# Settings
|
|
130
|
+
settings_changed (setting_name, old_value, new_value)
|
|
131
|
+
notification_permission (granted: boolean)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Event Naming Conventions
|
|
135
|
+
|
|
136
|
+
- Use `snake_case`
|
|
137
|
+
- Format: `[object]_[action]` (e.g., `photo_saved`, `workout_completed`)
|
|
138
|
+
- Be specific but not too granular
|
|
139
|
+
- Include relevant properties (but not PII)
|
|
140
|
+
- Consistent across platforms
|
|
141
|
+
|
|
142
|
+
## Dashboard Setup
|
|
143
|
+
|
|
144
|
+
### Executive Dashboard (check weekly)
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
┌─────────────────────────────────────────────┐
|
|
148
|
+
│ Weekly Summary │
|
|
149
|
+
├──────────────┬──────────────┬───────────────┤
|
|
150
|
+
│ Downloads │ Revenue │ DAU │
|
|
151
|
+
│ [N] (+X%) │ $[N] (+X%) │ [N] (+X%) │
|
|
152
|
+
├──────────────┼──────────────┼───────────────┤
|
|
153
|
+
│ Conversion │ D1 Retention│ Rating │
|
|
154
|
+
│ [X]% (+X%) │ [X]% (+X%) │ [X.X] ★ │
|
|
155
|
+
└──────────────┴──────────────┴───────────────┘
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Funnel Dashboard (check daily)
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
Impressions → Page Views → Downloads → Activation → Purchase
|
|
162
|
+
[N] [N] [N] [N] [N]
|
|
163
|
+
[X]% [X]% [X]% [X]%
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Cohort Dashboard (check monthly)
|
|
167
|
+
|
|
168
|
+
Retention curves by:
|
|
169
|
+
- Install date cohort
|
|
170
|
+
- Acquisition source
|
|
171
|
+
- Country
|
|
172
|
+
- Subscription plan
|
|
173
|
+
|
|
174
|
+
## Output Format
|
|
175
|
+
|
|
176
|
+
### Analytics Audit
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Current State:
|
|
180
|
+
- Tools in use: [list]
|
|
181
|
+
- Events tracked: [N]
|
|
182
|
+
- Key gaps: [list]
|
|
183
|
+
|
|
184
|
+
Recommendations:
|
|
185
|
+
1. [tracking gap to fix]
|
|
186
|
+
2. [metric to start monitoring]
|
|
187
|
+
3. [dashboard to create]
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Tracking Plan
|
|
191
|
+
|
|
192
|
+
Provide a complete event tracking plan with:
|
|
193
|
+
- Event name
|
|
194
|
+
- When it fires
|
|
195
|
+
- Properties to include
|
|
196
|
+
- Which tool tracks it
|
|
197
|
+
|
|
198
|
+
### Metric Interpretation
|
|
199
|
+
|
|
200
|
+
When the user shares data, provide:
|
|
201
|
+
- How their metrics compare to benchmarks
|
|
202
|
+
- What the trends indicate
|
|
203
|
+
- Specific actions to take based on the data
|
|
204
|
+
|
|
205
|
+
## Related Skills
|
|
206
|
+
|
|
207
|
+
- `ab-test-store-listing` — Measure test results
|
|
208
|
+
- `retention-optimization` — Interpret retention data
|
|
209
|
+
- `monetization-strategy` — Revenue metric optimization
|
|
210
|
+
- `ua-campaign` — Attribution and UA metrics
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: app-clips
|
|
3
|
+
description: When the user wants to implement, optimize, or use App Clips for app discovery and conversion. Use when the user mentions "App Clip", "app clip code", "mini app", "instant app", "App Clip card", "App Clip link", "no download required", "instant experience", or wants to understand how App Clips appear in App Store search. For general App Store discoverability, see aso-audit. For marketing campaigns, see ua-campaign.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# App Clips
|
|
9
|
+
|
|
10
|
+
You help plan, implement, and optimize App Clips — lightweight iOS experiences (max 15MB) that users can launch instantly without installing the full app.
|
|
11
|
+
|
|
12
|
+
## What App Clips Are
|
|
13
|
+
|
|
14
|
+
App Clips are small, focused pieces of your app that users can use without downloading the full app. They appear in:
|
|
15
|
+
|
|
16
|
+
- **App Store search results** — alongside your full app
|
|
17
|
+
- **Smart App Banners** on websites
|
|
18
|
+
- **QR codes** and App Clip codes (physical NFC/QR)
|
|
19
|
+
- **Safari** — when visiting a linked URL
|
|
20
|
+
- **Messages** — when a URL is shared in iMessages
|
|
21
|
+
- **Maps** — for location-based businesses
|
|
22
|
+
- **Nearby** — NFC and visual codes in the physical world
|
|
23
|
+
- **Siri suggestions**
|
|
24
|
+
|
|
25
|
+
## Size Limit
|
|
26
|
+
|
|
27
|
+
| Target | Limit |
|
|
28
|
+
|--------|-------|
|
|
29
|
+
| App Clip binary | **15MB** max (thinned, downloaded on demand) |
|
|
30
|
+
| App itself | No change |
|
|
31
|
+
|
|
32
|
+
This forces you to ship only the essential experience.
|
|
33
|
+
|
|
34
|
+
## Best Use Cases
|
|
35
|
+
|
|
36
|
+
| App Type | App Clip Experience |
|
|
37
|
+
|----------|-------------------|
|
|
38
|
+
| Parking/transit | Pay for parking or buy a ticket |
|
|
39
|
+
| Restaurant | View menu, order, or pay |
|
|
40
|
+
| Retail | Product preview or loyalty card |
|
|
41
|
+
| Fitness | Try a single workout |
|
|
42
|
+
| Games | Play a demo level |
|
|
43
|
+
| Finance | Calculator or quick quote |
|
|
44
|
+
| Events | Ticket purchase or check-in |
|
|
45
|
+
| Utilities | Use core feature once |
|
|
46
|
+
|
|
47
|
+
**The key question:** What is the minimum experience that demonstrates your app's core value?
|
|
48
|
+
|
|
49
|
+
## App Clip Discovery in the App Store
|
|
50
|
+
|
|
51
|
+
App Clips appear in **App Store search** as a separate card below your full app result — labeled "App Clip" with an "Open" button (not "Get").
|
|
52
|
+
|
|
53
|
+
- Users who tap "Open" launch the App Clip instantly
|
|
54
|
+
- After using it, they see a banner: "Get the full app"
|
|
55
|
+
- Conversion from App Clip user → full install is typically **3–5× higher** than cold organic traffic
|
|
56
|
+
|
|
57
|
+
**ASO implication:** The App Clip card inherits your app's title and description metadata. Optimizing your main listing improves App Clip discoverability too.
|
|
58
|
+
|
|
59
|
+
## Technical Requirements
|
|
60
|
+
|
|
61
|
+
### What to include in the App Clip
|
|
62
|
+
|
|
63
|
+
- Only the core experience
|
|
64
|
+
- Apple Pay or Sign in with Apple for authentication (no full account creation)
|
|
65
|
+
- No App Clip–only content — everything in the clip should also be in the full app
|
|
66
|
+
- Request only essential permissions (no push notifications in App Clips)
|
|
67
|
+
|
|
68
|
+
### URL scheme
|
|
69
|
+
|
|
70
|
+
Each App Clip is triggered by a URL:
|
|
71
|
+
```
|
|
72
|
+
https://yourdomain.com/clip/[experience]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Configure in App Store Connect → Your App → App Clip Experiences.
|
|
76
|
+
|
|
77
|
+
### Handoff to Full App
|
|
78
|
+
|
|
79
|
+
Always include a clear upgrade prompt:
|
|
80
|
+
|
|
81
|
+
```swift
|
|
82
|
+
// Show SKOverlay after the user gets value from the clip
|
|
83
|
+
let config = SKOverlay.AppClipConfiguration(position: .bottom)
|
|
84
|
+
let overlay = SKOverlay(configuration: config)
|
|
85
|
+
overlay.present(in: windowScene)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Show the overlay **after** the user has experienced value — not immediately.
|
|
89
|
+
|
|
90
|
+
## App Clip Experiences
|
|
91
|
+
|
|
92
|
+
You can configure multiple App Clip experiences (one per URL pattern):
|
|
93
|
+
|
|
94
|
+
| Experience | URL | Use Case |
|
|
95
|
+
|-----------|-----|---------|
|
|
96
|
+
| Default | `yourdomain.com` | General / App Store search |
|
|
97
|
+
| Location | `yourdomain.com/location/123` | Maps, NFC at specific location |
|
|
98
|
+
| Campaign | `yourdomain.com/promo/summer` | Marketing campaign |
|
|
99
|
+
| Feature | `yourdomain.com/feature/x` | Specific feature demo |
|
|
100
|
+
|
|
101
|
+
Each experience can have its own:
|
|
102
|
+
- Title (max 18 chars)
|
|
103
|
+
- Subtitle (max 13 chars)
|
|
104
|
+
- Header image (3000×2000px)
|
|
105
|
+
- Action button text
|
|
106
|
+
|
|
107
|
+
## App Clip Card Design
|
|
108
|
+
|
|
109
|
+
The card is shown before the App Clip launches:
|
|
110
|
+
|
|
111
|
+
| Field | Limit | Tips |
|
|
112
|
+
|-------|-------|------|
|
|
113
|
+
| Title | 18 chars | Clear action: "Order Coffee" not "App Name" |
|
|
114
|
+
| Subtitle | 13 chars | Reinforce the value: "Skip the line" |
|
|
115
|
+
| Header image | 3000×2000px | Show the outcome, not the UI |
|
|
116
|
+
| Action button | — | Use context-specific text: "Order", "Pay", "Play" |
|
|
117
|
+
|
|
118
|
+
## Measurement
|
|
119
|
+
|
|
120
|
+
Track in App Store Connect → App Analytics → App Clips:
|
|
121
|
+
- App Clip sessions
|
|
122
|
+
- App Clip cards displayed
|
|
123
|
+
- App Clip → full app conversions
|
|
124
|
+
- Unique App Clip users
|
|
125
|
+
|
|
126
|
+
## App Clip vs Full App Install Trade-offs
|
|
127
|
+
|
|
128
|
+
| | App Clip | Full Install |
|
|
129
|
+
|---|---------|-------------|
|
|
130
|
+
| User friction | Very low | Higher |
|
|
131
|
+
| Commitment | Low | High |
|
|
132
|
+
| Retention | Low (one-time use) | High |
|
|
133
|
+
| Conversion from Clip | — | 3–5× higher than cold traffic |
|
|
134
|
+
| Best for | Discovery + conversion | Retention + monetization |
|
|
135
|
+
|
|
136
|
+
## Implementation Checklist
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
Setup:
|
|
140
|
+
- [ ] App Clip target added to Xcode project
|
|
141
|
+
- [ ] App Clip < 15MB (use size report in Xcode)
|
|
142
|
+
- [ ] Associated Domains entitlement configured
|
|
143
|
+
- [ ] App Clip experience URLs registered in App Store Connect
|
|
144
|
+
|
|
145
|
+
UX:
|
|
146
|
+
- [ ] Core value delivered within 60 seconds
|
|
147
|
+
- [ ] Sign in with Apple or Apple Pay (no custom sign-up)
|
|
148
|
+
- [ ] SKOverlay shown post-value (not immediately)
|
|
149
|
+
- [ ] Clear data handoff when user installs full app
|
|
150
|
+
|
|
151
|
+
App Store Connect:
|
|
152
|
+
- [ ] Default App Clip experience configured
|
|
153
|
+
- [ ] Header image uploaded (3000×2000px)
|
|
154
|
+
- [ ] Title ≤ 18 chars, subtitle ≤ 13 chars
|
|
155
|
+
- [ ] Additional experiences for locations/campaigns (if applicable)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Related Skills
|
|
159
|
+
|
|
160
|
+
- `aso-audit` — Clip discoverability depends on main app ASO
|
|
161
|
+
- `onboarding-optimization` — Apply same "value-first" principles to Clip experience
|
|
162
|
+
- `ua-campaign` — Drive traffic to App Clip URLs in paid campaigns
|
|
163
|
+
- `app-store-featured` — App Clips can support featuring eligibility
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: app-icon-optimization
|
|
3
|
+
description: When the user wants to design, test, or improve their app icon to increase tap-through rate and conversions in App Store search and browse. Use when the user mentions "app icon", "icon design", "icon A/B test", "icon variants", "tap-through rate", "icon conversion", "icon refresh", or wants to know what makes a good app icon. For screenshot optimization, see screenshot-optimization. For full listing A/B tests, see ab-test-store-listing.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# App Icon Optimization
|
|
9
|
+
|
|
10
|
+
You help design, audit, and A/B test app icons to maximize tap-through rate (TTR) — the percentage of users who tap your app after seeing it in search results or browse.
|
|
11
|
+
|
|
12
|
+
## Why the Icon Is Your Most Impactful Asset
|
|
13
|
+
|
|
14
|
+
The icon is the **first thing users see** in search results — before the title, rating, or screenshots. A compelling icon can lift TTR by 20–40% with no other changes. In browse/charts, it's often the only visual element competing for attention.
|
|
15
|
+
|
|
16
|
+
## Icon Design Principles
|
|
17
|
+
|
|
18
|
+
### 1. Simplicity at Small Size
|
|
19
|
+
|
|
20
|
+
Icons render at 60×60pt (iPhone search results). At that size, detail disappears.
|
|
21
|
+
|
|
22
|
+
- Maximum 2 elements
|
|
23
|
+
- No text (illegible at small sizes; Apple discourages it)
|
|
24
|
+
- Strong silhouette recognizable at a glance
|
|
25
|
+
- Test at 60×60px before finalizing
|
|
26
|
+
|
|
27
|
+
### 2. Color Contrast Against the App Store Background
|
|
28
|
+
|
|
29
|
+
The App Store has a white/light background (light mode) and dark background (dark mode).
|
|
30
|
+
|
|
31
|
+
- High contrast on both modes
|
|
32
|
+
- Avoid white icons — they disappear in light mode
|
|
33
|
+
- Avoid very dark icons — they disappear in dark mode
|
|
34
|
+
- Consider adding a subtle shadow or border on your icon background
|
|
35
|
+
|
|
36
|
+
### 3. Category Visual Language
|
|
37
|
+
|
|
38
|
+
Match and differentiate from your category norms:
|
|
39
|
+
|
|
40
|
+
| Category | Common patterns | How to stand out |
|
|
41
|
+
|----------|----------------|-----------------|
|
|
42
|
+
| Productivity | Blue, clean, minimal | Warmer colors, bolder marks |
|
|
43
|
+
| Health/Fitness | Green, orange, energetic | Premium dark, sophisticated |
|
|
44
|
+
| Finance | Blue, green, conservative | Bold, distinctive mark |
|
|
45
|
+
| Games | Bright, characters, action | Premium/dark if competitors are loud |
|
|
46
|
+
| Social | Round shapes, soft colors | Sharp, distinctive if feed is soft |
|
|
47
|
+
| Meditation | Purple, blue, calm | Unexpected contrast color |
|
|
48
|
+
| Photo/Video | Gradient, camera | Single strong mark |
|
|
49
|
+
|
|
50
|
+
**Rule:** Look at your top 20 competitors' icons. Then design to be immediately distinguishable.
|
|
51
|
+
|
|
52
|
+
### 4. Recognizable Mark
|
|
53
|
+
|
|
54
|
+
The icon needs a single, memorable mark — not a scene or a composition. Ask:
|
|
55
|
+
|
|
56
|
+
> "Can someone describe this icon in 3 words?"
|
|
57
|
+
|
|
58
|
+
- ✅ "Red speech bubble" | ❌ "Someone using a phone with a gradient"
|
|
59
|
+
- ✅ "Bold orange flame" | ❌ "Abstract colorful shapes"
|
|
60
|
+
|
|
61
|
+
### 5. Brand Consistency
|
|
62
|
+
|
|
63
|
+
The icon is your brand mark in the App Store. It should:
|
|
64
|
+
- Match your app's primary color palette
|
|
65
|
+
- Be consistent with your splash screen, push notifications, and marketing
|
|
66
|
+
- Work as a favicon, social media avatar, and press kit asset
|
|
67
|
+
|
|
68
|
+
## Icon Sizes Required
|
|
69
|
+
|
|
70
|
+
| Platform | Size |
|
|
71
|
+
|----------|------|
|
|
72
|
+
| iPhone (App Store) | 1024×1024px (master) |
|
|
73
|
+
| iPhone (home screen) | 60×60pt @1x, @2x, @3x |
|
|
74
|
+
| iPad | 76×76pt @1x, @2x |
|
|
75
|
+
| Watch | 40×40pt – 44×44pt |
|
|
76
|
+
| Android adaptive icon | 108×108dp (safe zone 66×66dp) |
|
|
77
|
+
|
|
78
|
+
Submit a single 1024×1024px PNG (no transparency, no rounded corners — Apple applies the mask).
|
|
79
|
+
|
|
80
|
+
## A/B Testing Icons
|
|
81
|
+
|
|
82
|
+
### iOS — Product Page Optimization
|
|
83
|
+
|
|
84
|
+
1. App Store Connect → Your App → Product Page Optimization → Create Test
|
|
85
|
+
2. Create up to 3 icon variants
|
|
86
|
+
3. Set traffic allocation (20–33% per variant)
|
|
87
|
+
4. Run for minimum 7 days or until statistical significance
|
|
88
|
+
|
|
89
|
+
**Access:** App Store Connect → App Store → Product Page Optimization
|
|
90
|
+
|
|
91
|
+
### Android — Play Store Experiments
|
|
92
|
+
|
|
93
|
+
1. Play Console → Store listing experiments → New experiment
|
|
94
|
+
2. Upload up to 3 icon variants
|
|
95
|
+
3. Set traffic split
|
|
96
|
+
4. Google reports install conversion rate per variant
|
|
97
|
+
|
|
98
|
+
### What to Test
|
|
99
|
+
|
|
100
|
+
Test one variable at a time:
|
|
101
|
+
|
|
102
|
+
| Test | Variants |
|
|
103
|
+
|------|---------|
|
|
104
|
+
| Color scheme | Same mark, 3 different background colors |
|
|
105
|
+
| Mark style | Flat vs illustrated vs 3D |
|
|
106
|
+
| Dark vs light | Dark background vs light background |
|
|
107
|
+
| Character vs abstract | Character-based vs geometric/abstract |
|
|
108
|
+
| With vs without text | Mark only vs mark + short text |
|
|
109
|
+
|
|
110
|
+
### Reading Results
|
|
111
|
+
|
|
112
|
+
- **Primary metric:** Install conversion rate (impressions → installs)
|
|
113
|
+
- **Minimum sample:** 1,000+ impressions per variant for reliable signal
|
|
114
|
+
- **Significance threshold:** p < 0.05 or Appeeky/Play Console confidence indicator
|
|
115
|
+
|
|
116
|
+
## Icon Audit
|
|
117
|
+
|
|
118
|
+
Evaluate your current icon against:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Clarity at 60×60px: [1–10]
|
|
122
|
+
- Recognizable mark at small size?
|
|
123
|
+
- No illegible text?
|
|
124
|
+
|
|
125
|
+
Color contrast: [1–10]
|
|
126
|
+
- Works on white (light mode)?
|
|
127
|
+
- Works on dark backgrounds (dark mode)?
|
|
128
|
+
|
|
129
|
+
Category differentiation: [1–10]
|
|
130
|
+
- Stands out from top 10 competitor icons?
|
|
131
|
+
|
|
132
|
+
Simplicity: [1–10]
|
|
133
|
+
- Max 2 elements?
|
|
134
|
+
- Describable in 3 words?
|
|
135
|
+
|
|
136
|
+
Brand alignment: [1–10]
|
|
137
|
+
- Consistent with app's visual identity?
|
|
138
|
+
|
|
139
|
+
Overall: [N]/50
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Brief for Icon Designer
|
|
143
|
+
|
|
144
|
+
When briefing a designer:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
App: [name and one-line description]
|
|
148
|
+
Category: [category]
|
|
149
|
+
Primary audience: [who uses it]
|
|
150
|
+
Brand colors: [hex values]
|
|
151
|
+
Mood/feeling: [premium / playful / trustworthy / energetic / calm]
|
|
152
|
+
|
|
153
|
+
What the icon should convey: [core value or identity]
|
|
154
|
+
What to avoid: [don't replicate competitor X, avoid Y]
|
|
155
|
+
|
|
156
|
+
Competitors to differentiate from: [list 3–5 with icons]
|
|
157
|
+
Reference icons I like: [list 3–5 from other apps]
|
|
158
|
+
|
|
159
|
+
Deliverables:
|
|
160
|
+
- 3 distinct concepts at 1024×1024px
|
|
161
|
+
- Each concept tested at 60×60px mockup in App Store search context
|
|
162
|
+
- Final: PNG, no alpha, no rounded corners
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Related Skills
|
|
166
|
+
|
|
167
|
+
- `ab-test-store-listing` — Full A/B testing methodology
|
|
168
|
+
- `screenshot-optimization` — Complement the icon with strong screenshots
|
|
169
|
+
- `android-aso` — Android adaptive icon requirements
|
|
170
|
+
- `aso-audit` — Icon is one factor in the full ASO score
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: app-launch
|
|
3
|
+
description: When the user wants to plan a launch strategy for a new app or major update. Also use when the user mentions "app launch", "launch plan", "launch checklist", "pre-launch", "launch day", or "how to launch my app". For ongoing ASO after launch, see aso-audit. For paid acquisition during launch, see ua-campaign.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# App Launch Strategy
|
|
9
|
+
|
|
10
|
+
You are an expert in mobile app launches with experience across indie apps and top-charting products. Your goal is to create a comprehensive launch plan that maximizes day-one visibility and sustains momentum.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it for app context
|
|
15
|
+
2. Ask: **New app or major update?**
|
|
16
|
+
3. Ask: **Launch date** (or flexible?)
|
|
17
|
+
4. Ask: **Budget** (organic only, or paid acquisition available?)
|
|
18
|
+
5. Ask: **Pre-existing audience?** (email list, social following, existing app users)
|
|
19
|
+
6. Ask: **Target countries** (simultaneous or phased rollout?)
|
|
20
|
+
|
|
21
|
+
## Launch Timeline
|
|
22
|
+
|
|
23
|
+
### 8 Weeks Before Launch
|
|
24
|
+
|
|
25
|
+
**ASO Foundation:**
|
|
26
|
+
- [ ] Run `keyword-research` to identify target keywords
|
|
27
|
+
- [ ] Run `metadata-optimization` to craft title, subtitle, keyword field
|
|
28
|
+
- [ ] Run `competitor-analysis` to understand the landscape
|
|
29
|
+
- [ ] Design screenshots (run `screenshot-optimization`)
|
|
30
|
+
- [ ] Create app preview video (15-30 seconds)
|
|
31
|
+
- [ ] Write compelling description with strong first 3 lines
|
|
32
|
+
- [ ] Design a distinctive icon
|
|
33
|
+
|
|
34
|
+
**Pre-launch Page (if new app):**
|
|
35
|
+
- [ ] Set up App Store pre-order page
|
|
36
|
+
- [ ] Enable pre-order notifications
|
|
37
|
+
- [ ] Share pre-order link for early sign-ups
|
|
38
|
+
|
|
39
|
+
**Press & Community:**
|
|
40
|
+
- [ ] Build a press kit (screenshots, icon, description, founder story)
|
|
41
|
+
- [ ] Identify 20-30 relevant journalists, bloggers, YouTubers
|
|
42
|
+
- [ ] Draft personalized pitch emails
|
|
43
|
+
- [ ] Identify relevant communities (Reddit, Discord, forums, Twitter/X)
|
|
44
|
+
|
|
45
|
+
### 4 Weeks Before Launch
|
|
46
|
+
|
|
47
|
+
**Beta & Feedback:**
|
|
48
|
+
- [ ] TestFlight beta with 50-200 users
|
|
49
|
+
- [ ] Collect feedback and fix critical issues
|
|
50
|
+
- [ ] Ask beta testers to be ready to review on launch day
|
|
51
|
+
- [ ] Prepare FAQ and support documentation
|
|
52
|
+
|
|
53
|
+
**Content:**
|
|
54
|
+
- [ ] Write launch blog post
|
|
55
|
+
- [ ] Prepare social media content (10+ posts for launch week)
|
|
56
|
+
- [ ] Create demo video for social media
|
|
57
|
+
- [ ] Draft Product Hunt listing (if applicable)
|
|
58
|
+
|
|
59
|
+
**Technical:**
|
|
60
|
+
- [ ] Set up analytics (run `app-analytics`)
|
|
61
|
+
- [ ] Implement in-app rating prompt (show after positive experience)
|
|
62
|
+
- [ ] Set up crash reporting
|
|
63
|
+
- [ ] Test in-app purchases and subscriptions
|
|
64
|
+
|
|
65
|
+
### 1 Week Before Launch
|
|
66
|
+
|
|
67
|
+
**Final Prep:**
|
|
68
|
+
- [ ] Submit app for review (allow 2-3 days buffer)
|
|
69
|
+
- [ ] Schedule press embargo lift for launch day
|
|
70
|
+
- [ ] Prepare launch day social posts
|
|
71
|
+
- [ ] Brief beta testers on review timing
|
|
72
|
+
- [ ] Set up App Store Connect for phased release (or immediate)
|
|
73
|
+
- [ ] Prepare Apple Search Ads campaign (run `ua-campaign`)
|
|
74
|
+
|
|
75
|
+
### Launch Day
|
|
76
|
+
|
|
77
|
+
**Morning:**
|
|
78
|
+
- [ ] Release the app (or confirm phased release started)
|
|
79
|
+
- [ ] Send press emails with embargo lift
|
|
80
|
+
- [ ] Post on social media (personal + app accounts)
|
|
81
|
+
- [ ] Post on Product Hunt (if applicable)
|
|
82
|
+
- [ ] Post in relevant communities (Reddit, Discord, forums)
|
|
83
|
+
- [ ] Email your list
|
|
84
|
+
|
|
85
|
+
**Throughout the Day:**
|
|
86
|
+
- [ ] Monitor App Store Connect for download numbers
|
|
87
|
+
- [ ] Respond to every review (run `review-management`)
|
|
88
|
+
- [ ] Engage with social media mentions
|
|
89
|
+
- [ ] Monitor crash reports
|
|
90
|
+
- [ ] Share milestones ("We hit #X in [category]!")
|
|
91
|
+
|
|
92
|
+
**Evening:**
|
|
93
|
+
- [ ] Thank early adopters publicly
|
|
94
|
+
- [ ] Share day-one stats (if impressive)
|
|
95
|
+
- [ ] Plan tomorrow's content
|
|
96
|
+
|
|
97
|
+
### Week 1 After Launch
|
|
98
|
+
|
|
99
|
+
- [ ] Continue daily social posting
|
|
100
|
+
- [ ] Respond to all reviews
|
|
101
|
+
- [ ] Monitor keyword rankings (are you indexing?)
|
|
102
|
+
- [ ] Adjust Apple Search Ads bids based on performance
|
|
103
|
+
- [ ] Follow up with press who didn't respond
|
|
104
|
+
- [ ] Submit to App Store editorial for featuring (run `app-store-featured`)
|
|
105
|
+
- [ ] Analyze first-week metrics and adjust
|
|
106
|
+
|
|
107
|
+
### Month 1 After Launch
|
|
108
|
+
|
|
109
|
+
- [ ] Run full `aso-audit` with real data
|
|
110
|
+
- [ ] Adjust metadata based on actual keyword performance
|
|
111
|
+
- [ ] A/B test screenshots (run `ab-test-store-listing`)
|
|
112
|
+
- [ ] Plan first major update based on user feedback
|
|
113
|
+
- [ ] Evaluate paid acquisition ROI
|
|
114
|
+
- [ ] Set up ongoing keyword tracking
|
|
115
|
+
|
|
116
|
+
## Launch Amplification Tactics
|
|
117
|
+
|
|
118
|
+
### Free Channels
|
|
119
|
+
1. **Product Hunt** — Best for productivity, developer, and design tools
|
|
120
|
+
2. **Hacker News (Show HN)** — Best for technical or innovative apps
|
|
121
|
+
3. **Reddit** — Find 3-5 relevant subreddits, contribute before promoting
|
|
122
|
+
4. **Twitter/X** — Build-in-public thread, launch announcement
|
|
123
|
+
5. **LinkedIn** — If B2B or productivity app
|
|
124
|
+
6. **YouTube** — Demo video, "how I built this" story
|
|
125
|
+
7. **App review sites** — AppAdvice, MacStories, 9to5Mac, etc.
|
|
126
|
+
|
|
127
|
+
### Paid Channels
|
|
128
|
+
1. **Apple Search Ads** — Highest intent, start here
|
|
129
|
+
2. **Meta (Facebook/Instagram)** — Best for consumer apps
|
|
130
|
+
3. **TikTok** — Best for younger demographics
|
|
131
|
+
4. **Google Ads (UAC)** — Broad reach
|
|
132
|
+
5. **Influencer partnerships** — Micro-influencers (10K-100K) often best ROI
|
|
133
|
+
|
|
134
|
+
## Output Format
|
|
135
|
+
|
|
136
|
+
### Launch Plan Document
|
|
137
|
+
|
|
138
|
+
Provide a complete, dated checklist the user can follow. Include:
|
|
139
|
+
1. Timeline with specific dates (based on their launch date)
|
|
140
|
+
2. Prioritized task list for each phase
|
|
141
|
+
3. Channel strategy with specific tactics
|
|
142
|
+
4. Budget allocation (if paid channels available)
|
|
143
|
+
5. Success metrics and targets for week 1, month 1, month 3
|
|
144
|
+
|
|
145
|
+
## Related Skills
|
|
146
|
+
|
|
147
|
+
- `aso-audit` — Post-launch ASO health check
|
|
148
|
+
- `keyword-research` — Pre-launch keyword strategy
|
|
149
|
+
- `metadata-optimization` — Craft launch metadata
|
|
150
|
+
- `screenshot-optimization` — Design launch screenshots
|
|
151
|
+
- `ua-campaign` — Paid acquisition for launch
|
|
152
|
+
- `app-store-featured` — Editorial featuring strategy
|
|
153
|
+
- `review-management` — Handle launch-day reviews
|