krankie-audit
GitHub执行应用商店优化审计,包括元数据离线检查与基于krankie的竞品关键词排名差距分析,识别未覆盖的高价值关键词。
Trigger Scenarios
Install
npx skills add n0an/VivaDicta --skill krankie-audit -g -y
SKILL.md
Frontmatter
{
"name": "krankie-audit",
"description": "Run an ASO audit on canonical App Store metadata under `.\/metadata`, then a krankie-based competitor keyword-gap analysis (no Astro subscription). Krankie replacement for asc-aso-audit. Use after `asc metadata pull`."
}
ASO Audit (krankie)
Two-phase ASO audit. Phase 1 (offline metadata checks) is identical to asc-aso-audit and needs no network. Phase 2 replaces Astro's popularity/competitor analysis with krankie competitor rank-gap analysis.
What changes vs the Astro version: krankie gives rank position only - there is no popularity score, no difficulty score, and no keyword-suggestion engine. So Phase 2 finds gaps by competitor rank (keywords a competitor ranks well for that VivaDicta does not), not by popularity.
Preconditions
- Metadata pulled into canonical files:
asc metadata pull --app "6758147238" --version "X.Y.Z" --dir "./metadata". - For Phase 2: krankie tracking the app + competitors (the VPS at
lobster@openclawtailis already set up; seekrankie-rankings).
Phase 1: Offline Checks (unchanged)
Run the same offline checks as asc-aso-audit against ./metadata. Read .agents/skills/asc-aso-audit/references/aso_rules.md for the exact rules. Summary:
- Keyword waste - tokens in
subtitle/namethat also appear inkeywords(already indexed, wasted budget). - Underutilized fields - keywords < 90/100 chars, subtitle < 20/30 chars.
- Missing fields - empty
subtitle/keywords/description/whatsNew. - Bad separators - spaces after commas, semicolons, or pipes in
keywords. - Cross-locale gaps - non-primary locale
keywordsidentical toen-US(not localized). - Description keyword coverage - tracked keywords missing from the
description(conversion, not indexing).
Metadata paths: app-info metadata/app-info/{locale}.json (subtitle); version metadata/version/{latest}/{locale}.json (keywords, description, whatsNew). Primary locale en-US.
Phase 2: krankie Competitor Rank-Gap Analysis
Pull current rankings for VivaDicta + the 3 tracked competitors from the VPS (canonical history):
ssh lobster@openclawtail 'export PATH="$HOME/.bun/bin:$PATH"; krankie rankings --json'
Apps in the krankie DB:
- VivaDicta
6758147238(own) - Otter
1276437113, Wispr Flow6497229487, Whisper Transcription1668083311(competitors, US)
Steps
- Build a per-keyword rank table for US: VivaDicta rank vs each competitor's rank (
current_rank, null = not in top 200). - Surface gaps: keywords where a competitor ranks (especially top-50) and VivaDicta is unranked or much worse. These are the highest-value targets - a rival is capturing search traffic you are not.
- Rank gaps by competitor strength: sort by best competitor rank ascending (a keyword where Otter is #3 and we are unranked outranks one where a competitor is #150).
- Diff against metadata tokens: for each gap keyword, check whether its component tokens are present in
subtitle+name+keywordsof any locale. If the tokens are missing, that explains the gap and is an actionable add. If tokens are present but VivaDicta still doesn't rank, the issue is competition/authority, not coverage. - Cross-field combo note: remember keywords combine within a locale across title + subtitle + keywords. Flag combos enabled by adding a single token (e.g. adding
recorderwhenvoiceis already indexed enables "voice recorder").
Skip conditions
- VPS unreachable - run krankie locally on the MacBook (
krankie rankings --json), noting the local DB may be sparse; or skip Phase 2 with a note. - A keyword not tracked yet - add it:
krankie keyword add 6758147238 "<kw>" --store us(and for competitors to compare).
Output Format
### ASO Audit Report (krankie)
**App:** VivaDicta - Speech to Text | **Primary Locale:** en-US
**Metadata source:** metadata/version/X.Y.Z
#### Field Utilization
| Field | Value | Length | Limit | Usage |
...
#### Offline Checks
| # | Check | Severity | Field | Locale | Detail |
...
**Summary:** X errors, Y warnings across Z locales
#### Competitor Rank-Gap (krankie, US)
| Keyword | VivaDicta | Otter | Wispr Flow | Whisper Trans. | In metadata? | Action |
|---------|-----------|-------|------------|----------------|--------------|--------|
| voice typing | - | #2 | #1 | - | tokens present | competition, not coverage |
| dictation keyboard | #164 | - | #1 | - | partial | reinforce combo |
#### Recommendations
1. [Errors first]
2. [Keyword waste]
3. [Utilization]
4. [Highest gap opportunities by competitor strength]
Notes
- Phase 1 works with zero network access - the audit is useful even if the VPS/krankie is down.
- No popularity data: prioritize by competitor rank, not popularity. If you later resubscribe to Astro,
asc-aso-auditPhase 2 adds popularity + suggestions back. - After metadata changes, run
krankie-rankingsto measure impact (ranks settle over 1-2 weeks). - Related:
krankie-rankings(dated rankings report),asc-aso-audit(Astro-based original).
Version History
- c5601d4 Current 2026-07-25 08:15


