| name | aso-pro-max |
|---|---|
| description | App Store Optimization (ASO) 端到端 — 从抓最新 ASO 知识、分析 App 功能、多语言市场调研、起草候选词、三层校验到写入 ASC 全链路。 触发场景: - 用户提到 ASO、应用商店优化、关键词策略、多语言扩展 - 审计 / 检查 / 优化 App Store 的 name / subtitle / keywords / description - 新增 ASC locale、扩展市场、修复跨字段重复 - 截图标题对齐 ASO 关键词(Apple 2025 截图索引算法) - 提到 asc CLI、ASC API、metadata pull/push、raw PATCH - 为新 App 从零做 ASO(端到端 6 阶段) 即使用户没明说 "ASO",凡涉及搜索可见性 / 关键词覆盖 / 多 locale 元数据,都用此 skill。 |
~/.claude/skills/aso-pro-max/
├── SKILL.md # 本文件(导航 + 决策树)
├── .env / .env.example # ASA 凭据(保留备用)
├── scripts/
│ ├── aso_audit.py # Stage 5 主审计(字符/跨字段/跨 locale/CJK 子串/音译陷阱)
│ ├── itunes_search_check.py # Stage 3+5 iTunes Search API 赛道验证
│ ├── google_signals.py # Stage 3+5 Google Trends + Suggest 补充信号
│ ├── asa_auth.py # 备用:未来 Apple Ads Platform API
│ └── preflight_check.sh # 开源/同步前安全自检
└── references/
├── stage1_industry_refresh.md # Stage 1: 抓最新 ASO 知识(季度)
├── stage2_app_analysis.md # Stage 2: 扫代码生成 context.html
├── stage3_locale_research.md # Stage 3: 并行多 Agent 调研各 locale
├── stage4_keyword_drafting.md # Stage 4: 基于 2+3 起草候选词
├── stage5_audit_validate.md # Stage 5: 三层校验 + 决策报告
├── stage6_write_execute.md # Stage 6: 写入计划 + 执行 + verify
├── locale_strategy.md # 通用:跨 locale 索引 / 音译陷阱 / 市场分级
├── asc_cli_recipes.md # 通用:asc CLI + raw PATCH 坑
├── screenshot_keyword_audit.md # 通用:截图标题对齐
├── asa_api_limitations.md # ⚠️ ASA API 调研负面结论
└── project_context_template.md # 项目 context 空白模板
┌──────────────────────────────────────────────────────────────────┐
│ Stage 1: 抓 ASO 行业最新知识(季度跑 1 次) │
│ 并行多 Agent 抓 Apple/AppTweak/Sensor Tower/论坛 │
│ → 更新 SKILL.md 黄金原则 / locale_strategy / asa_limitations │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ Stage 2: 分析 App 真实功能(每个 App 1 次) │
│ Explore Agent 扫 README / CLAUDE.md / Models / Services │
│ → {project}/.aso/context.html(HTML 格式,含依据 + 错位词族) │
│ ⚠️ 严禁读 Marketing/ASO_*.md 等历史 ASO 报告(污染源) │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ Stage 3: 多语言市场调研(每个 locale 首次 1 次) │
│ 并行 4 集群 Agent(EN 4 / CJK / 欧洲 / 新兴) │
│ 每集群跑 itunes_search_check.py 验证赛道 │
│ → {project}/.aso/locale/{LL}.html × 19 │
│ ⚠️ iTunes 限流时诚实标 "untested",不要凭直觉外推 │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ Stage 4: 起草候选词(每 locale 写入前 1 次) │
│ 独立 Agent 基于 Stage 2+3 起草 Name/Subtitle/Keywords │
│ ⚠️ 主 Claude 不参与判断、不参考现网(避免 LLM 风格漂移) │
│ → {project}/.aso/drafts/{date}_draft.html │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ Stage 5: 三层校验 + 对比决策(每次写入前必做) │
│ Layer 1 机械: aso_audit.py │
│ Layer 2 赛道: itunes_search_check.py │
│ Layer 3 功能: 人脑 + ASC Analytics │
│ + 对比现网(草案 vs ASC 当前状态) │
│ → {project}/.aso/reports/stage5_final.html │
└──────────────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────────────┐
│ Stage 6: 写入计划 + 执行 + verify(每次改动必做) │
│ 独立 Agent 读 Stage 5 决策 → 生成写入计划 JSON │
│ 主 Claude 机械执行 asc localizations update │
│ 写入后立刻复跑 aso_audit.py(必跑,不能跳!) │
│ 如有 ERROR 立即修复(实战教训:第一次写入常因保留 v2.1 Name │
│ 引入跨字段 ERROR) │
│ → {project}/.aso/reports/audit_postwrite.md │
└──────────────────────────────────────────────────────────────────┘
用户请求 / 触发场景 → 走哪个 Stage?
"看下/优化/审计 keywords" → Stage 5(含 Step 8 verify)
"为某 locale 起草新方案" → Stage 4 → 5 → 6
"新增 locale" → Stage 3 + 4 + 5 + 6
"接手新 App / App 上下文不熟" → Stage 2 → 后续按需
"做一份新的全 locale 深度调研" → Stage 3
"看看 ASO 最近有什么新动向" → Stage 1
"截图标题与 keywords 对齐" → 任务 C(screenshot_keyword_audit.md)
"端到端从零做" → Stage 2 → 3 → 4 → 5 → 6
- Name + Subtitle + Keywords 是统一索引池 — 跨字段绝不重复任何词(含同根词)
- 字符预算 = 钱 — Name 用满 ≥15(CJK 可豁免)、Subtitle 用满 ≥20、Keywords 用满 95-100
- 同语言多 locale 各自独立 100 字符 — en-US/GB/AU/CA 用 4 套不同词,绝不重复
- 音译陷阱:vintage / retro / romantic 在非英语 locale 搜索量极低
- 截图标题 2025 年起被索引 — 截图既是转化资产也是 ASO 资产
- 「赛道对口」≠「功能对口」 — iTunes Top 竞品在同一大类不代表 App 真能服务该搜索意图。失望→转化率低→Apple 算法降权。宁可空 keywords 字段也不堆功能错位词
- "端到端" 必须真清污染 — 主 Claude 自己的会话记忆是最大污染源。Stage 2-6 全程用独立 Agent 决策,主 Claude 仅做机械执行 + 数据传递;同时归档
Marketing/ASO_*.md、临时屏蔽memory/aso-strategy*.md才算真端到端
| 用户请求 | 任务 | 入口 reference |
|---|---|---|
| 审计现有 / 优化 keywords | 任务 A | stage5_audit_validate.md + stage6_write_execute.md |
| 扩展新 locale | 任务 B | stage3 + stage4 + stage5 + stage6 |
| 截图标题 ASO 对齐 | 任务 C | screenshot_keyword_audit.md |
| 深度多语言调研 | 任务 D | stage3_locale_research.md |
| 接手新 App | 任务 E | stage2_app_analysis.md |
| ASO 季度行业刷新 | 任务 F | stage1_industry_refresh.md |
| 端到端从零跑 | 任务 G | Stage 2-6 全套 |
| 字段 | 限制 | 用什么装 |
|---|---|---|
| Name | 30 codepoints | Brand + #1 关键词 |
| Subtitle | 30 codepoints | #2-#3 关键词 + 价值主张 |
| Keywords | 100 codepoints | 剩余所有词,逗号分隔(不加空格) |
| Promotional Text | 170 codepoints | 营销文案(不被索引) |
| Description | 4000 codepoints | SEO 长文,前 3 行最重要 |
skill 不存储任何项目数据。所有 App 特定的 context、调研、草案、audit 归档都放在项目自己的目录下:
{project_root}/.aso/
├── context.html # Stage 2 产出(HTML)
├── locale/{LL}.html # Stage 3 产出(每 locale 一份 HTML)
├── drafts/{date}_draft.html # Stage 4 产出(HTML)
├── drafts/{date}_writeplan.json # Stage 6 写入计划(JSON)
└── reports/
├── stage5_final.html # Stage 5 决策报告(HTML)
└── audit_*.md # 每次 audit 归档
新项目从零跑 Stage 2 时,Agent 自动按 project_context_template.md 生成 context.html。
# 安装
git clone https://github.com/AfeiFun/aso-pro-max ~/.claude/skills/aso-pro-max
pip3 install -r ~/.claude/skills/aso-pro-max/requirements.txt
brew install rudrankriyam/tap/asc
asc auth init
# 健康检查
python3 ~/.claude/skills/aso-pro-max/scripts/aso_audit.py \
--from-file ~/.claude/skills/aso-pro-max/examples/sample_snapshot.json
# 应输出 2 ERROR + 3 WARN(教学示例)
# 开源/同步前安全自检
bash ~/.claude/skills/aso-pro-max/scripts/preflight_check.sh
# 可选:ASA OAuth 准备(未来 Apple Ads Platform API)
mkdir -p ~/.config/aso-pro-max/.secrets
cp ~/.claude/skills/aso-pro-max/.env.example ~/.config/aso-pro-max/.env
openssl ecparam -genkey -name prime256v1 -noout \
-out ~/.config/aso-pro-max/.secrets/asa_private_key.pemPython 要求:≥ 3.10。
- 跨字段重复(Name/Subtitle/Keywords 共词)
- Keywords 字段未填满
- 同语言 locale 用相同 keywords
- 音译词填充非英语 locale
- description 多行字段直接 CLI 传参(必须 raw PATCH)
- 逗号后加空格(每次浪费 1 字符)
- 改完不复查(必须复跑 aso_audit.py verify — Stage 6 Step 8)
- 功能错位词(黄金原则 #6)— iTunes Top 赛道对了不代表 App 能服务该意图
- 用大热单字赌曝光 — face / dating / generator / avatar / ring / wed / duo 在 EN 都被巨头垄断
- 跳过 Stage 2 直接起草 — 不清楚 App 真实功能 → Stage 3 调研偏 → Stage 4 起草必错
- 同语言 locale 不协调起草 — 后期一定碰跨 locale 同根冲突(实战教训)
- "端到端" 没真清污染(黄金原则 #7)— Marketing 历史报告 + memory + 主 Claude 自己脑子里的旧经验都是污染源
- LLM 编"地域风情词" — 上一次实战中 en-AU/CA 用
boho/winter/cottage/maple等 iTunes 实测全错位。Stage 4 起草时若该词在 Stage 3 标untested,必须 Stage 5 实测后再决定 - 保留现网字段但写入新 keywords 时漏检跨字段冲突 — 实战教训:Stage 4 草案与现网 v2.1 字段做"并集合并"时,必须用 Snowball stem 全量自检