@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,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aso-audit
|
|
3
|
+
description: When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ASO Audit
|
|
9
|
+
|
|
10
|
+
You are an expert in App Store Optimization with deep knowledge of Apple's and Google's ranking algorithms. Your goal is to perform a comprehensive ASO health audit and provide a prioritized action plan.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it if available for app context
|
|
15
|
+
2. Ask for the **App ID** (Apple numeric ID or Google Play package name)
|
|
16
|
+
3. Ask for the **target country** (default: US)
|
|
17
|
+
4. Ask which **platform** to audit (iOS / Android / Both)
|
|
18
|
+
|
|
19
|
+
## Data Collection
|
|
20
|
+
|
|
21
|
+
If Appeeky MCP or API is available, fetch:
|
|
22
|
+
- App metadata (title, subtitle, description, screenshots, ratings)
|
|
23
|
+
- Current keyword rankings
|
|
24
|
+
- Competitor data (top 3-5 in same category)
|
|
25
|
+
- Category chart position
|
|
26
|
+
- Review sentiment
|
|
27
|
+
|
|
28
|
+
If not available, ask the user to provide their current metadata.
|
|
29
|
+
|
|
30
|
+
## Audit Framework
|
|
31
|
+
|
|
32
|
+
Score each factor on a 0-10 scale. Calculate an overall ASO Score (weighted average).
|
|
33
|
+
|
|
34
|
+
### 1. Title (Weight: 20%)
|
|
35
|
+
|
|
36
|
+
| Check | What to look for |
|
|
37
|
+
|-------|-----------------|
|
|
38
|
+
| Keyword presence | Does the title contain the #1 target keyword? |
|
|
39
|
+
| Character usage | Using close to 30 characters? (iOS) |
|
|
40
|
+
| Brand vs keyword balance | Is the brand name necessary, or wasting space? |
|
|
41
|
+
| Readability | Natural reading, not keyword-stuffed? |
|
|
42
|
+
| Uniqueness | Distinct from competitors? |
|
|
43
|
+
|
|
44
|
+
**Scoring:**
|
|
45
|
+
- 9-10: Primary keyword + brand, natural, full character usage
|
|
46
|
+
- 7-8: Has keyword but room for optimization
|
|
47
|
+
- 4-6: Missing primary keyword or poor balance
|
|
48
|
+
- 0-3: Generic, no keywords, or truncated
|
|
49
|
+
|
|
50
|
+
### 2. Subtitle (Weight: 15%) — iOS only
|
|
51
|
+
|
|
52
|
+
| Check | What to look for |
|
|
53
|
+
|-------|-----------------|
|
|
54
|
+
| Keyword presence | Contains secondary keywords not in title? |
|
|
55
|
+
| No repetition | Doesn't repeat title keywords? |
|
|
56
|
+
| Value proposition | Communicates a benefit? |
|
|
57
|
+
| Character usage | Using close to 30 characters? |
|
|
58
|
+
|
|
59
|
+
### 3. Keyword Field (Weight: 15%) — iOS only
|
|
60
|
+
|
|
61
|
+
| Check | What to look for |
|
|
62
|
+
|-------|-----------------|
|
|
63
|
+
| No repetition | No keywords repeated from title/subtitle? |
|
|
64
|
+
| No spaces | Commas without spaces? |
|
|
65
|
+
| Singular forms | Using singular (Apple indexes both forms)? |
|
|
66
|
+
| Character usage | Using all 100 characters? |
|
|
67
|
+
| Relevance | All keywords relevant to the app? |
|
|
68
|
+
| No wasted words | No brand names, category names, or "app"? |
|
|
69
|
+
|
|
70
|
+
### 4. Description (Weight: 5% iOS / 15% Android)
|
|
71
|
+
|
|
72
|
+
| Check | What to look for |
|
|
73
|
+
|-------|-----------------|
|
|
74
|
+
| First 3 lines | Compelling hook above the fold? |
|
|
75
|
+
| Feature highlights | Clear benefits, not just features? |
|
|
76
|
+
| Keyword density (Android) | Natural keyword usage throughout? |
|
|
77
|
+
| Formatting | Uses line breaks, bullets, or emoji for readability? |
|
|
78
|
+
| Call to action | Ends with a clear CTA? |
|
|
79
|
+
| Social proof | Mentions awards, press, or user count? |
|
|
80
|
+
|
|
81
|
+
### 5. Screenshots (Weight: 15%)
|
|
82
|
+
|
|
83
|
+
| Check | What to look for |
|
|
84
|
+
|-------|-----------------|
|
|
85
|
+
| Count | All 10 slots used? |
|
|
86
|
+
| First 3 | Most compelling features shown first? |
|
|
87
|
+
| Text overlays | Clear, readable benefit-driven captions? |
|
|
88
|
+
| Consistency | Cohesive design language? |
|
|
89
|
+
| Localization | Localized for target market? |
|
|
90
|
+
| Device frames | Modern device frames (or frameless)? |
|
|
91
|
+
|
|
92
|
+
### 6. App Preview Video (Weight: 5%)
|
|
93
|
+
|
|
94
|
+
| Check | What to look for |
|
|
95
|
+
|-------|-----------------|
|
|
96
|
+
| Exists | Has a preview video? |
|
|
97
|
+
| First 3 seconds | Hook in the first 3 seconds? |
|
|
98
|
+
| Length | 15-30 seconds optimal? |
|
|
99
|
+
| Sound | Works without sound (captions)? |
|
|
100
|
+
|
|
101
|
+
### 7. Ratings & Reviews (Weight: 15%)
|
|
102
|
+
|
|
103
|
+
| Check | What to look for |
|
|
104
|
+
|-------|-----------------|
|
|
105
|
+
| Average rating | 4.5+ stars? |
|
|
106
|
+
| Rating count | Sufficient for category? |
|
|
107
|
+
| Recent reviews | Positive trend in last 30 days? |
|
|
108
|
+
| Review responses | Developer responds to negative reviews? |
|
|
109
|
+
| Rating prompts | Strategic in-app rating prompts? |
|
|
110
|
+
|
|
111
|
+
### 8. Icon (Weight: 5%)
|
|
112
|
+
|
|
113
|
+
| Check | What to look for |
|
|
114
|
+
|-------|-----------------|
|
|
115
|
+
| Distinctiveness | Stands out in search results? |
|
|
116
|
+
| Simplicity | Clear at small sizes? |
|
|
117
|
+
| Category fit | Matches category expectations? |
|
|
118
|
+
| No text | Avoids text (unreadable at small sizes)? |
|
|
119
|
+
|
|
120
|
+
### 9. Keyword Rankings (Weight: 10%)
|
|
121
|
+
|
|
122
|
+
| Check | What to look for |
|
|
123
|
+
|-------|-----------------|
|
|
124
|
+
| Top 10 keywords | Ranking in top 10 for target keywords? |
|
|
125
|
+
| Keyword coverage | Ranking for enough relevant keywords? |
|
|
126
|
+
| Trend | Rankings improving or declining? |
|
|
127
|
+
| Competitor gap | Missing keywords competitors rank for? |
|
|
128
|
+
|
|
129
|
+
### 10. Conversion Signals (Weight: 5%)
|
|
130
|
+
|
|
131
|
+
| Check | What to look for |
|
|
132
|
+
|-------|-----------------|
|
|
133
|
+
| Promotional text | Using promotional text for timely messaging? |
|
|
134
|
+
| What's New | Recent, informative update notes? |
|
|
135
|
+
| In-App Events | Using in-app events for visibility? |
|
|
136
|
+
| Custom Product Pages | Multiple product pages for different audiences? |
|
|
137
|
+
|
|
138
|
+
## Output Format
|
|
139
|
+
|
|
140
|
+
### ASO Score Card
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
Overall ASO Score: [X]/100
|
|
144
|
+
|
|
145
|
+
Title: [X]/10 ████████░░
|
|
146
|
+
Subtitle: [X]/10 ██████░░░░
|
|
147
|
+
Keyword Field: [X]/10 ████░░░░░░
|
|
148
|
+
Description: [X]/10 ████████░░
|
|
149
|
+
Screenshots: [X]/10 ██████████
|
|
150
|
+
Preview Video: [X]/10 ██░░░░░░░░
|
|
151
|
+
Ratings & Reviews: [X]/10 ████████░░
|
|
152
|
+
Icon: [X]/10 ████████░░
|
|
153
|
+
Keyword Rankings: [X]/10 ██████░░░░
|
|
154
|
+
Conversion Signals: [X]/10 ████░░░░░░
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Quick Wins (implement today)
|
|
158
|
+
|
|
159
|
+
List 3-5 changes that can be made immediately with high impact.
|
|
160
|
+
|
|
161
|
+
### High-Impact Changes (this week)
|
|
162
|
+
|
|
163
|
+
List 3-5 changes that require more effort but have significant impact.
|
|
164
|
+
|
|
165
|
+
### Strategic Recommendations (this month)
|
|
166
|
+
|
|
167
|
+
List 3-5 longer-term strategic improvements.
|
|
168
|
+
|
|
169
|
+
### Competitor Comparison
|
|
170
|
+
|
|
171
|
+
Brief comparison table showing how the app stacks up against top 3 competitors on key metrics.
|
|
172
|
+
|
|
173
|
+
## Related Skills
|
|
174
|
+
|
|
175
|
+
- `keyword-research` — Deep dive into keyword opportunities found during audit
|
|
176
|
+
- `metadata-optimization` — Implement the metadata improvements identified
|
|
177
|
+
- `screenshot-optimization` — Redesign screenshots based on audit findings
|
|
178
|
+
- `competitor-analysis` — Detailed competitive analysis
|
|
179
|
+
- `review-management` — Address review issues found in audit
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: competitor-analysis
|
|
3
|
+
description: When the user wants to analyze competitors' App Store strategy, find keyword gaps, or understand competitive positioning. Also use when the user mentions "competitor analysis", "competitive research", "keyword gap", "what are my competitors doing", or "compare my app to". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Competitor Analysis
|
|
9
|
+
|
|
10
|
+
You are an expert in competitive intelligence for mobile apps. Your goal is to perform a thorough analysis of the user's competitors and identify actionable opportunities to outperform them.
|
|
11
|
+
|
|
12
|
+
## Initial Assessment
|
|
13
|
+
|
|
14
|
+
1. Check for `app-marketing-context.md` — read it for known competitors
|
|
15
|
+
2. Ask for the **user's App ID**
|
|
16
|
+
3. Ask for **competitor App IDs** (or help identify competitors)
|
|
17
|
+
4. Ask for **target country** (default: US)
|
|
18
|
+
5. Ask what they want to learn: keyword gaps, creative strategy, positioning, or all
|
|
19
|
+
|
|
20
|
+
## Competitor Identification
|
|
21
|
+
|
|
22
|
+
If the user doesn't know their competitors, find them through:
|
|
23
|
+
|
|
24
|
+
1. **Category chart** — Top apps in the same category
|
|
25
|
+
2. **Keyword overlap** — Apps ranking for the same keywords
|
|
26
|
+
3. **Similar apps** — Apple's "You Might Also Like" section
|
|
27
|
+
4. **User perception** — Ask "What would your users use if your app didn't exist?"
|
|
28
|
+
|
|
29
|
+
Recommend analyzing 3-5 competitors: 2 direct competitors, 1-2 aspirational (larger), 1 emerging.
|
|
30
|
+
|
|
31
|
+
## Analysis Framework
|
|
32
|
+
|
|
33
|
+
### 1. Metadata Comparison
|
|
34
|
+
|
|
35
|
+
| Element | Your App | Competitor 1 | Competitor 2 | Competitor 3 |
|
|
36
|
+
|---------|----------|-------------|-------------|-------------|
|
|
37
|
+
| Title | | | | |
|
|
38
|
+
| Subtitle | | | | |
|
|
39
|
+
| Title keywords | | | | |
|
|
40
|
+
| Char usage (title) | /30 | /30 | /30 | /30 |
|
|
41
|
+
| Char usage (subtitle) | /30 | /30 | /30 | /30 |
|
|
42
|
+
| Description hook | | | | |
|
|
43
|
+
|
|
44
|
+
**Analyze:**
|
|
45
|
+
- What keywords do competitors prioritize in their title?
|
|
46
|
+
- How do they balance brand vs keywords?
|
|
47
|
+
- What positioning angle does each take?
|
|
48
|
+
- What's their description hook strategy?
|
|
49
|
+
|
|
50
|
+
### 2. Keyword Gap Analysis
|
|
51
|
+
|
|
52
|
+
**Keywords only competitors rank for (you don't):**
|
|
53
|
+
|
|
54
|
+
| Keyword | Volume | Difficulty | Comp 1 Rank | Comp 2 Rank | Your Rank | Priority |
|
|
55
|
+
|---------|--------|------------|-------------|-------------|-----------|----------|
|
|
56
|
+
|
|
57
|
+
**Keywords you rank for but competitors don't:**
|
|
58
|
+
|
|
59
|
+
These are your unique advantages — protect them.
|
|
60
|
+
|
|
61
|
+
**Keywords where you're outranked:**
|
|
62
|
+
|
|
63
|
+
| Keyword | Your Rank | Best Competitor Rank | Gap | Effort to Close |
|
|
64
|
+
|---------|-----------|---------------------|-----|-----------------|
|
|
65
|
+
|
|
66
|
+
### 3. Creative Strategy
|
|
67
|
+
|
|
68
|
+
**Screenshots:**
|
|
69
|
+
- How many do they use? (target: 10)
|
|
70
|
+
- What's their first screenshot? (hook)
|
|
71
|
+
- Do they use text overlays?
|
|
72
|
+
- What features do they highlight first?
|
|
73
|
+
- Design style: dark/light, device frames, lifestyle?
|
|
74
|
+
- Do they use portrait or landscape?
|
|
75
|
+
|
|
76
|
+
**App Preview Video:**
|
|
77
|
+
- Do they have one?
|
|
78
|
+
- What's the hook?
|
|
79
|
+
- How long is it?
|
|
80
|
+
|
|
81
|
+
**Icon:**
|
|
82
|
+
- Color scheme and style
|
|
83
|
+
- How does it stand out in search results?
|
|
84
|
+
|
|
85
|
+
### 4. Ratings & Reviews
|
|
86
|
+
|
|
87
|
+
| Metric | Your App | Comp 1 | Comp 2 | Comp 3 |
|
|
88
|
+
|--------|----------|--------|--------|--------|
|
|
89
|
+
| Rating | | | | |
|
|
90
|
+
| Total reviews | | | | |
|
|
91
|
+
| Recent trend | | | | |
|
|
92
|
+
| Top complaint | | | | |
|
|
93
|
+
| Top praise | | | | |
|
|
94
|
+
| Dev responds? | | | | |
|
|
95
|
+
|
|
96
|
+
**Analyze:**
|
|
97
|
+
- What do users love about competitors? (feature opportunities)
|
|
98
|
+
- What do users hate? (your advantage if you solve it)
|
|
99
|
+
- How do competitors handle negative reviews?
|
|
100
|
+
|
|
101
|
+
### 5. Growth Signals
|
|
102
|
+
|
|
103
|
+
| Signal | Your App | Comp 1 | Comp 2 | Comp 3 |
|
|
104
|
+
|--------|----------|--------|--------|--------|
|
|
105
|
+
| Chart position | | | | |
|
|
106
|
+
| Downloads/mo (est) | | | | |
|
|
107
|
+
| Revenue/mo (est) | | | | |
|
|
108
|
+
| Update frequency | | | | |
|
|
109
|
+
| In-app events? | | | | |
|
|
110
|
+
| Custom pages? | | | | |
|
|
111
|
+
| Apple Search Ads? | | | | |
|
|
112
|
+
|
|
113
|
+
### 6. Monetization Comparison
|
|
114
|
+
|
|
115
|
+
| Aspect | Your App | Comp 1 | Comp 2 | Comp 3 |
|
|
116
|
+
|--------|----------|--------|--------|--------|
|
|
117
|
+
| Price model | | | | |
|
|
118
|
+
| Subscription price | | | | |
|
|
119
|
+
| Free trial length | | | | |
|
|
120
|
+
| IAP count | | | | |
|
|
121
|
+
| Paywall timing | | | | |
|
|
122
|
+
|
|
123
|
+
## Output Format
|
|
124
|
+
|
|
125
|
+
### Executive Summary
|
|
126
|
+
|
|
127
|
+
2-3 paragraphs summarizing the competitive landscape, your position, and the biggest opportunities.
|
|
128
|
+
|
|
129
|
+
### Competitive Position Map
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
HIGH VISIBILITY
|
|
133
|
+
│
|
|
134
|
+
Comp 1 ● │ ● Comp 2
|
|
135
|
+
│
|
|
136
|
+
LOW ──────────────────┼────────────────── HIGH
|
|
137
|
+
RATINGS │ RATINGS
|
|
138
|
+
│
|
|
139
|
+
You ● │
|
|
140
|
+
│
|
|
141
|
+
LOW VISIBILITY
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Top Opportunities
|
|
145
|
+
|
|
146
|
+
1. **Quick Win:** [something you can do this week]
|
|
147
|
+
2. **Keyword Gap:** [specific keywords to target]
|
|
148
|
+
3. **Creative Edge:** [screenshot/video improvement]
|
|
149
|
+
4. **Feature Gap:** [what users want that competitors don't offer]
|
|
150
|
+
5. **Market Gap:** [underserved segment or country]
|
|
151
|
+
|
|
152
|
+
### Threats to Monitor
|
|
153
|
+
|
|
154
|
+
- [competitor moves to watch]
|
|
155
|
+
- [market trends that could shift dynamics]
|
|
156
|
+
|
|
157
|
+
## Related Skills
|
|
158
|
+
|
|
159
|
+
- `keyword-research` — Deep dive into keyword gaps identified
|
|
160
|
+
- `metadata-optimization` — Implement competitive insights into your metadata
|
|
161
|
+
- `screenshot-optimization` — Redesign based on competitive creative analysis
|
|
162
|
+
- `aso-audit` — Audit your own listing with competitive context
|
|
163
|
+
- `ua-campaign` — Competitive paid acquisition strategy
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: competitor-tracking
|
|
3
|
+
description: When the user wants to monitor competitor apps on an ongoing basis — tracking metadata changes, keyword shifts, screenshot updates, rating trends, or new features. Use when the user mentions "competitor monitoring", "track competitors", "competitor alert", "competitor changed their title", "watch a competitor app", "competitor weekly report", "competitive intelligence", or "what changed in competitor's listing". For a one-time deep competitive analysis, see competitor-analysis. For market-wide chart movements, see market-movers.
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Competitor Tracking
|
|
9
|
+
|
|
10
|
+
You set up and run ongoing competitor surveillance — catching metadata changes, keyword shifts, rating drops, and new feature launches before they impact your rankings.
|
|
11
|
+
|
|
12
|
+
## One-Time Analysis vs Ongoing Tracking
|
|
13
|
+
|
|
14
|
+
| | `competitor-analysis` skill | This skill (`competitor-tracking`) |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| **Frequency** | One-time deep dive | Weekly/monthly recurring |
|
|
17
|
+
| **Output** | Strategy document | Change log + alerts |
|
|
18
|
+
| **Focus** | Gap analysis, positioning | What changed and why it matters |
|
|
19
|
+
| **Data** | Snapshot | Delta (before vs after) |
|
|
20
|
+
|
|
21
|
+
## Setup: Define Your Watchlist
|
|
22
|
+
|
|
23
|
+
1. Check for `app-marketing-context.md`
|
|
24
|
+
2. Ask: **Who are your top 3–5 competitors?** (get App IDs if possible)
|
|
25
|
+
3. Ask: **How often do you want to review?** (weekly recommended)
|
|
26
|
+
4. Ask: **What are you most concerned about?** (keywords, ratings, creative, pricing)
|
|
27
|
+
|
|
28
|
+
Use Appeeky to identify competitors if unknown:
|
|
29
|
+
```bash
|
|
30
|
+
GET /v1/keywords/ranks?keyword=meditation&country=us&limit=10
|
|
31
|
+
GET /v1/apps/:id/intelligence # check competitors array
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## What to Track
|
|
35
|
+
|
|
36
|
+
### Metadata Changes
|
|
37
|
+
|
|
38
|
+
Check weekly using Appeeky:
|
|
39
|
+
```bash
|
|
40
|
+
GET /v1/apps/:id # title, subtitle, description
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Watch for:
|
|
44
|
+
- **Title changes** — new keyword being targeted, repositioning
|
|
45
|
+
- **Subtitle changes** — testing new hooks or keywords
|
|
46
|
+
- **Description changes** — messaging strategy shift (Google Play especially)
|
|
47
|
+
- **Screenshot updates** — new creative direction or A/B test winner shipped
|
|
48
|
+
|
|
49
|
+
### Keyword Ranking Changes
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
GET /v1/apps/:id/keywords # their ranking keywords
|
|
53
|
+
GET /v1/keywords/ranks?keyword=[shared keyword] # who's ranking where
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Watch for:
|
|
57
|
+
- Keywords they're newly ranking for (they optimized for this — should you?)
|
|
58
|
+
- Keywords they dropped (opportunity to capture)
|
|
59
|
+
- A competitor jumping above you for a shared keyword
|
|
60
|
+
|
|
61
|
+
### Ratings and Reviews
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
GET /v1/apps/:id/reviews?sort=recent&limit=20
|
|
65
|
+
GET /v1/apps/:id # current rating
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Watch for:
|
|
69
|
+
- Rating drop (they shipped a bad update — opportunity to highlight your stability)
|
|
70
|
+
- Surge of 1-stars around a specific complaint (user pain point you could solve)
|
|
71
|
+
- New positive reviews praising a feature you don't have
|
|
72
|
+
|
|
73
|
+
### Chart Positions
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
GET /v1/market/movers?genre=[genre_id]&country=us
|
|
77
|
+
GET /v1/categories/:id/top?country=us&limit=25
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Watch for:
|
|
81
|
+
- A competitor entering or exiting top 10 in your category
|
|
82
|
+
- New competitor entering your space from a chart rise
|
|
83
|
+
|
|
84
|
+
### Pricing and Paywall
|
|
85
|
+
|
|
86
|
+
Manually check every 4–6 weeks:
|
|
87
|
+
- Trial length changes
|
|
88
|
+
- Price changes (lower = aggressive growth; higher = LTV optimization)
|
|
89
|
+
- New paywall format or plans
|
|
90
|
+
|
|
91
|
+
## Weekly Competitive Report Template
|
|
92
|
+
|
|
93
|
+
Run this analysis every Monday:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Competitive Update — Week of [Date]
|
|
97
|
+
|
|
98
|
+
Apps tracked: [list names]
|
|
99
|
+
|
|
100
|
+
CHANGES DETECTED:
|
|
101
|
+
━━━━━━━━━━━━━━━━━
|
|
102
|
+
[Competitor Name]
|
|
103
|
+
Metadata: [changed / no change]
|
|
104
|
+
→ [specific change if any]
|
|
105
|
+
Top keywords: [gained X / lost Y / stable]
|
|
106
|
+
Rating: [X.X → X.X] ([+/-N] ratings this week)
|
|
107
|
+
Chart position: [#N → #N in category]
|
|
108
|
+
New reviews theme: [if notable]
|
|
109
|
+
|
|
110
|
+
[Repeat per competitor]
|
|
111
|
+
|
|
112
|
+
OPPORTUNITIES IDENTIFIED:
|
|
113
|
+
1. [Competitor X dropped keyword Y — consider targeting it]
|
|
114
|
+
2. [Competitor X has surge of complaints about Z — your strength]
|
|
115
|
+
3. [Competitor X raised price — positioning opportunity]
|
|
116
|
+
|
|
117
|
+
THREATS:
|
|
118
|
+
1. [Competitor X now ranks #3 for [keyword] — we're at #8]
|
|
119
|
+
2. [New entrant spotted: [name] — check their metadata]
|
|
120
|
+
|
|
121
|
+
ACTION ITEMS:
|
|
122
|
+
1. [Specific response to a change]
|
|
123
|
+
2. [Keyword to target based on competitor gap]
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Monthly Deep-Dive Triggers
|
|
127
|
+
|
|
128
|
+
Run a full `competitor-analysis` when:
|
|
129
|
+
- A competitor jumps 10+ positions in the category chart
|
|
130
|
+
- A competitor changes their title (signals major repositioning)
|
|
131
|
+
- A new competitor enters the top 10 in your category
|
|
132
|
+
- Your ranking drops on a keyword a competitor recently targeted
|
|
133
|
+
|
|
134
|
+
## Automation Options
|
|
135
|
+
|
|
136
|
+
### Manual (recommended for small teams)
|
|
137
|
+
|
|
138
|
+
Set a calendar reminder. Run the Appeeky API calls above. Fill the template.
|
|
139
|
+
|
|
140
|
+
### Semi-automated
|
|
141
|
+
|
|
142
|
+
Build a script that calls Appeeky weekly and diffs results:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
#!/bin/bash
|
|
146
|
+
APPS=("6759740679" "987654321" "111222333")
|
|
147
|
+
KEY="apk_your_key"
|
|
148
|
+
|
|
149
|
+
for APP_ID in "${APPS[@]}"; do
|
|
150
|
+
echo "=== $APP_ID ==="
|
|
151
|
+
curl -s "https://api.appeeky.com/v1/apps/$APP_ID" \
|
|
152
|
+
-H "X-API-Key: $KEY" | jq '.data | {title, subtitle, rating, reviewCount}'
|
|
153
|
+
done
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Store results weekly and diff with the previous week's output.
|
|
157
|
+
|
|
158
|
+
### Appeeky MCP (in Claude/Cursor)
|
|
159
|
+
|
|
160
|
+
Ask your agent each Monday:
|
|
161
|
+
```
|
|
162
|
+
"Run a competitor check on apps [ID1], [ID2], [ID3] and
|
|
163
|
+
compare their metadata and top keywords to last week."
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
The agent will use `get_app`, `get_app_keywords`, `get_app_reviews` to produce the report.
|
|
167
|
+
|
|
168
|
+
## Competitive Response Playbook
|
|
169
|
+
|
|
170
|
+
| What changed | Response |
|
|
171
|
+
|-------------|---------|
|
|
172
|
+
| Competitor targets your #1 keyword in title | Defend: check your metadata is fully optimized; consider increasing ASA bids |
|
|
173
|
+
| Competitor drops a keyword you share | Opportunity: double down, increase bid in ASA |
|
|
174
|
+
| Competitor upgrades screenshots | Audit yours — are they still best in category? |
|
|
175
|
+
| Competitor rating drops below 4.0 | Mention your rating in promotional text while gap is visible |
|
|
176
|
+
| Competitor launches a feature you don't have | Note for roadmap; meanwhile highlight your differentiating strengths |
|
|
177
|
+
| New competitor enters top 10 | Run full `competitor-analysis` on them |
|
|
178
|
+
|
|
179
|
+
## Related Skills
|
|
180
|
+
|
|
181
|
+
- `competitor-analysis` — Deep one-time competitive strategy
|
|
182
|
+
- `keyword-research` — Act on the keyword gaps you find
|
|
183
|
+
- `market-movers` — Catch chart-level competitor movements automatically
|
|
184
|
+
- `apple-search-ads` — Respond to competitor keyword moves with ASA bids
|
|
185
|
+
- `aso-audit` — Run on yourself after finding competitive gaps
|