| name | store-evaluate |
| description | App Store アセットの ASO 品質を LLM-as-Judge 方式で 5 軸定量評価する。スクリーンショット・メタデータ・Apple ガイドライン準拠を 100 点満点で採点し改善提案を出力。「ストア評価」「ASO評価」「/store-evaluate」などで自動適用。 |
ASO 品質評価
CONTEXT
適用範囲
App Store のストアページ品質を LLM-as-Judge 方式で定量評価する。
スクリーンショット・メタデータ・技術要件を 5 軸 + テキスト + 技術の合計 7 観点で採点し、
100 点満点の ASO Quality Score と改善提案レポートを出力する。
用語
- ASO Quality Score: 本スキルが算出する 0-100 の品質スコア
- 5 軸評価: 明確性・緊急性・差別化・信頼性・市場適合性の視覚・コピー評価
- テキスト評価: キーワード充足率・タイトル活用度・説明文構造
- 技術評価: 画像サイズ/フォーマット、スクリーンショット枚数、ロケール正確性
- LLM-as-Judge: ルーブリックに基づき LLM が評価者として採点する手法
- fastlane/metadata/: fastlane 標準のメタデータディレクトリ構造
前提条件
- store-craft.config.json が存在すること
- fastlane/metadata/{locale}/ にメタデータファイルが配置されていること
- スクリーンショット PNG が store-assets/ 配下に存在すること(合成済みまたは raw)
ROLE
| 属性 | 内容 |
|---|
| 専門性 | App Store Optimization 品質評価、LLM-as-Judge ルーブリック設計、日本市場 ASO |
| 権限 | store-craft.config.json・fastlane/metadata/ の読み取り、スクリーンショット PNG の視覚評価、評価レポートの書き出し |
| 責任 | 再現性のある定量スコアと具体的な改善提案の提供 |
| 禁止事項 | store-craft.config.json やメタデータファイルの変更(読み取り専用評価) |
INTENT
Goal
現在のストアアセット(スクリーンショット + メタデータ)を定量評価し、改善すべき軸と具体的なアクションを特定する。
Value
- V-1: 主観に頼らない再現可能な品質スコア(ルーブリック基準)
- V-2: スコアの低い軸を特定し、改善の優先順位を明示
- V-3:
/store-optimize の入力として直接利用可能なレポート出力
Success Criteria
STEPS
Step 1: 設定ファイル読み込み
プロジェクトルートから store-craft.config.json を読み込み、アプリ情報・スクリーンショット構成を把握する。
1. store-craft.config.json を Read で読み込む
2. app.name, app.tagline, screenshots 配列, outputDir を取得
3. locale を確認(デフォルト: ja)
Step 2: メタデータ読み込み
fastlane/metadata/{locale}/ から全メタデータファイルを読み込む。
対象ファイル:
- name.txt(タイトル)
- subtitle.txt(サブタイトル)
- keywords.txt(キーワード)
- description.txt(説明文)
- promotional_text.txt(プロモーションテキスト)
- release_notes.txt(リリースノート)
存在しないファイルは「未設定」として減点対象にする。
Step 3: Apple ガイドライン準拠チェック(Blocker)
5 軸評価の前に、リジェクトリスクを検出する。これは最優先のチェック。
以下のテキストすべてを対象に、競合商標・Apple 商標の不正使用を検出する:
- タイトル(name.txt)
- サブタイトル(subtitle.txt)
- キーワード(keywords.txt)
- スクリーンショットのヘッドライン・サブテキスト(store-craft.config.json)
- 説明文(description.txt)— 互換性説明としての言及は許容
検出する商標リスト:
ChatGPT, GPT, Claude, Gemini, Copilot, Perplexity, Poe, Siri, Alexa, Bard,
OpenAI, Anthropic, Google, Microsoft, Meta, Apple, iPhone, iPad
検出レベル:
- 🚫 BLOCKER: タイトル・サブタイトルでの商標使用 → リジェクト確実
- ⚠️ WARNING: キーワード・スクリーンショットコピーでの商標使用 → リスク高
- ℹ️ INFO: 説明文での互換性説明としての言及 → 許容されるが注意
BLOCKER が見つかった場合、評価レポートの冒頭に赤字で警告し、改善提案の最優先として報告する。
Step 4: スクリーンショット視覚評価
合成済みスクリーンショット PNG を Read で視覚的に確認する。
1. store-craft.config.json の outputDir からスクリーンショット一覧を Glob で取得
2. 各 PNG を Read で視覚的に評価(画像として読み込む)
3. 以下を確認:
- テキストの可読性
- 画面構成の明確さ
- デバイスフレームの品質
- 背景とコンテンツのバランス
raw スクリーンショットのみの場合は raw/ ディレクトリを対象にする。
Step 5: aso-evaluator エージェント起動
5 軸評価を aso-evaluator エージェントに委譲する。
Agent(subagent_type: "store-assets:aso-evaluator")
prompt: |
以下のストアアセットを 5 軸ルーブリックで評価してください。
## アプリ情報
{store-craft.config.json の内容}
## メタデータ
{各メタデータファイルの内容}
## スクリーンショット
{PNG ファイルパス一覧 — エージェント内で Read して視覚評価}
## 競合情報(あれば)
{競合アプリ名・特徴}
Step 6: 技術検証
Bash で以下の技術要件を検証する。
for f in ${OUTPUT_DIR}/*.png; do
sips -g pixelWidth -g pixelHeight "$f"
done
ls -1 ${OUTPUT_DIR}/*.png 2>/dev/null | wc -l
file ${OUTPUT_DIR}/*
du -sh ${OUTPUT_DIR}/
技術評価基準 (10 点満点):
| 項目 | 配点 | 基準 |
|---|
| 画像サイズ適切 | 3 | 推奨解像度に一致 |
| PNG フォーマット | 2 | 全ファイルが PNG |
| 枚数 6 枚以上 | 3 | 6 枚=3, 4-5 枚=2, 1-3 枚=1 |
| ロケールディレクトリ正確 | 2 | ja/ 等の正しい構造 |
Step 7: 総合スコア算出 & レポート出力
5 軸スコア + テキスト + 技術の結果を統合し、レポートを出力する。
スコア算出式:
総合スコア = 明確性(×2.0) + 緊急性(×1.5) + 差別化(×1.5) + 信頼性(×1.0) + 市場適合性(×1.0)
+ テキスト(最大20) + 技術(最大10)
5 軸合計の最大: 10×2.0 + 10×1.5 + 10×1.5 + 10×1.0 + 10×1.0 = 70 点
テキスト最大: 20 点
技術最大: 10 点
合計最大: 100 点
テキスト評価基準 (20 点満点):
| 項目 | 配点 | 基準 |
|---|
| キーワード充足率 | 8 | 100 文字使い切り=8, 80%=6, 60%=4, 40%以下=2 |
| タイトル/サブタイトル活用 | 6 | 30 文字の効果的活用度 |
| 説明文構造 | 6 | 最初 3 行の訴求力、箇条書き活用、CTA |
レポート出力先:
- コンソール出力(Markdown 形式)
- オプション:
store-assets/aso-report.md にファイル保存
PROOF
Output
- ASO Quality Score (0-100)
- 軸別スコア表
- 改善提案リスト(優先度付き)
- 軸ごとの詳細フィードバック
- オプション:
store-assets/aso-report.md
Verification
Done Criteria
Do / Don't
Do:
- ✅ スクリーンショット PNG を Read で視覚的に評価する(画像として読み込む)
- ✅ メタデータの文字数を正確にカウントする(バイト数ではなく文字数)
- ✅ 改善提案には具体的なアクション(「XXをYYに変更」等)を含める
- ✅ 競合情報がある場合は差別化の評価に活用する
Don't:
- ❌ store-craft.config.json やメタデータファイルを変更しない
- ❌ スクリーンショットを加工・再生成しない(評価のみ)
- ❌ 主観的な印象だけで採点しない(ルーブリック基準に従う)
- ❌ 存在しないファイルをエラーとして中断しない(減点評価する)