Community寫作與編輯github.com

varnan-tech/opendirectory

擷取低星等 App Store 與 Google Play 評論,將其分組成違背承諾的模式,並產出排名化的文案摘要,揭露定位機會。

opendirectory 是什麼?

此技能專用於從競爭對手的 App Store 或 Google Play 頁面中,自動化獲取低星等(1-3 星)使用者評論,並進行深度分析。它會將評論分組為 4 至 6 個具體的投訴主題(例如「匯出 PDF 時崩潰」),並計算每個主題的加權分數以建立排名。接著,技能會將這些投訴與應用程式商店中宣稱的功能進行交叉比對,找出「承諾」與「實際體驗」之間的差距。最終產出包含排名投訴群集、違背承諾地圖、到達頁面標題和廣告文案方向的完整簡報,所有文案皆引用原始評論內容。該工具支援 App Store(透過 iTunes API)和 Google Play(透過 google-play-scraper),無需任何驗證或金鑰。

相容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/app-store-review-arbitrage

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

app-store-review-arbitrage

將競爭對手的 App Store 或 Google Play 網址轉換為一次性的進入市場簡報:包含排名化的投訴群集、違背承諾地圖、到達頁面標題和廣告文案方向——所有內容皆源自逐字評論。


重要規則(請在步驟 1 之前閱讀)

以下規則適用於所有步驟。違反任何一條都會導致自我品質驗證(步驟 6)失敗。

  1. 每段引文都必須是逐字原文。 不得改寫、不得修正文法、不得清理。只能使用審查者的原始措辭。
  2. 不得捏造統計數據。 除非審查者明確使用了類似措辭,否則不得撰寫「快 40%」或「可靠 2 倍」。自我品質驗證步驟會檢查未附來源的百分比。
  3. 群集名稱必須使用審查者的語言。 請研究步驟 3 中的反模式表格。
  4. 每個標題和廣告文案方向都必須引用其來源群集。 格式:[集群:"集群名稱"]。
  5. 輸出中「始終」包含第 2 節——即使處於降級狀態。永遠不要跳過或省略它。
  6. 任何生成的文案中不得使用禁用詞: powerful、robust、seamless、innovative、game-changing、streamline、leverage、revolutionize、transform。

步驟 1 — 解析輸入並偵測平台

接受包含一個應用程式網址的自然語言提示。提取該網址。

平台偵測:

  • apps.apple.com → App Store
  • play.google.com/store/apps/details?id= → Google Play
  • 任何其他網址 → 停止並回覆:「請提供直接的 App Store 或 Google Play 網址。我無法分析來自其他來源的評論資料。」

ID 提取(在呼叫腳本前執行此操作):

平台提取內容方法
App Store數字型 app_id網址中 /id 後方的數字
App Storecountryapps.apple.com/ 後方的 2 字母代碼(例如 us、gb)
Google Playpackage_nameid= 查詢參數的值

保留提取的值——你在步驟 7 輸出檔案名稱時會需要它們。

如果使用者的提示中提供了 product_context(他們自己的產品是做什麼的),請儲存它——用於在步驟 5 中個人化文案。


步驟 2 — 收集評論與中繼資料

執行完整的擷取腳本:

python3 scripts/fetch_reviews.py "{app_url}" --output {tmpdir}/asr-raw.json

(注意:將 {tmpdir} 替換為你作業系統的暫存目錄,例如 macOS/Linux 的 /tmp 或 Windows 的 C:\Temp)。

這會同時擷取商店描述中繼資料和評論。

  • App Store: iTunes API——免費,無需驗證。App Store 評論透過 Apple 的公開 iTunes RSS Feed 擷取。由於 Apple API 的限制,某些應用程式可能回傳 0 則評論——在這種情況下,技能會使用可用資料繼續執行並記錄警告。Google Play 是主要支援的路徑。
  • Google Play: google-play-scraper 套件——免費,無需驗證

如果腳本失敗,請從標準錯誤輸出讀取錯誤訊息。常見原因:

  • 套件未安裝:執行 pip install google-play-scraper
  • 應用程式未找到:確認網址是目前有效的商品頁面
  • Google Play API 錯誤:執行 pip install --upgrade google-play-scraper 並重試

腳本會將收集進度列印到標準錯誤輸出。等待它完成。完成後,讀取 {tmpdir}/asr-raw.json 並向使用者顯示收集摘要:

✓ 從 [平台] 收集到 [N] 則評論([N] 則低星等 1–3★)
  日期範圍:[最舊] 到 [最新]
  套件:[iTunes API | google-play-scraper]

檢查退出碼:

  • 退出碼 0 → 收集成功,檢查 metadata.store_description。如果為 null:請注意——第 2 節將使用降級狀態。繼續步驟 3。
  • 退出碼 1 → 錯誤(讀取標準錯誤輸出訊息,向使用者顯示,然後停止)
  • 退出碼 2 → 觸發關卡 1(找到少於 10 則低星等評論)

關卡 1 — 低訊號停止: 如果腳本以退出碼 2 結束,請從 {tmpdir}/asr-raw.json 讀取 gate_message 並如實向使用者顯示。不要繼續步驟 3。不要產生部分簡報。


步驟 3 — 投訴群集

從 {tmpdir}/asr-raw.json 載入 low_star_reviews。

將所有低星等評論聚集到 4–6 個命名投訴主題。使用以下公式為每則評論評分:

complaint_weight = (4 - rating) × recency_factor

recency_factor:
  評論年齡 ≤ 90 天  → 1.0
  評論年齡 91–365 天 → 0.7
  評論年齡 > 365 天  → 0.4

評論年齡 = (今天日期)−(評論 date 欄位)的天數。

cluster_score = 群集中所有評論的 complaint_weight 總和。

群集命名——關鍵規則:

你可能會想使用抽象名稱。請抵制這個衝動。使用評論中的確切動詞和名詞。

❌ 抽象化(錯誤)✅ 審查者語言(正確)
"穩定性問題""匯出為 PDF 時崩潰"
"同步問題""手機與桌面同步後資料遺失"
"獲利摩擦""3 天後出現付費牆,並非原本承諾的 14 天"
"效能下降""每次搜尋時應用程式就凍結"
"入職問題""不知道如何邀請團隊成員"

規則:

  • 每則評論僅屬於一個群集(指派給其最主要的投訴主題)
  • 丟棄任何少於 3 則評論的群集——將其記錄為雜訊
  • 為每個群集選擇 3–4 則逐字引文:先選最低星等,再選最新

關卡 2 — 最小群集大小: 丟棄少於 3 則評論的群集後,檢查還剩下多少個群集。

關卡 3 — 低信心標記: 如果剩餘少於 3 個群集:

  • 請勿停止。繼續輸出。
  • 在應用程式中繼資料之後,立即在簡報標頭前面加上:

    ⚠ 低信心: 只有 [N] 個投訴群集達到最低證據門檻(≥ 3 則佐證評論)。輸出反映了有限的資料。請考慮使用評論更多的競爭對手,或放寬評分過濾器。

  • 在輸出中包含中等層級的群集(分數 ≥ 5)

層級分類(用於第 1 節的排行榜表格):

  • 嚴重:分數 ≥ 60
  • 高:分數 15–59
  • 中等:分數 5–14(僅在觸發關卡 3 時包含)
  • 雜訊:分數 < 5(丟棄,不包含)

將群集寫入 {tmpdir}/asr-clusters.json:

{
  "clusters": [
    {
      "name": "使用審查者語言的群集名稱",
      "score": 34.5,
      "tier": "High",
      "review_count": 14,
      "verbatim_quotes": [
        {"rating": 1, "text": "確切的審查者措辭", "date": "YYYY-MM-DD"},
        ...
      ]
    }
  ],
  "discarded_noise": 2,
  "gate_3_triggered": false
}

步驟 4 — 違背承諾偵測

這一步是此技能區別於所有現有工具的關鍵。它必須作為一個獨立的、有名稱的步驟來執行。

載入:

  • 來自 {tmpdir}/asr-raw.json 的 metadata.store_description
  • 來自 {tmpdir}/asr-clusters.json 的所有群集

如果 store_description 為 null: 設定 store_description_available: false。寫入 {tmpdir}/asr-promises.json,其中包含空的 broken_promises 陣列和如下指定的 detection_note。繼續執行步驟 5。

如果商店描述可用:

  1. 提取聲明。 聲明是任何關於應用程式行為的具體、可測試的主張。請參閱 references/broken-promise.md 以獲取完整定義和範例。排除模糊的讚美詞、團隊描述和媒體引述。

  2. 交叉比對。 對於每個聲明,檢查所有群集名稱和逐字引文。當群集直接記錄了所承諾行為的失敗時(至少 3 則評論),就存在矛盾。

  3. 產生違背承諾記錄 ——每個經確認的矛盾一條記錄:

    {
      "claim_text": "來自商店描述的逐字摘錄",
      "complaint_cluster": "確切的群集名稱",
      "gap_label": "聲稱 X;使用者回報 Y",
      "evidence_count": 18
    }
    

寫入 {tmpdir}/asr-promises.json:

{
  "store_description_available": true,
  "broken_promises": [...],
  "no_contradictions_found": false,
  "detection_note": null
}

降級狀態:

  • 無描述:store_description_available: false,detection_note: "商店描述不可用(擷取於 YYYY-MM-DD,回傳空值)。無法執行違背承諾比對。"
  • 無矛盾:no_contradictions_found: true,detection_note: "未偵測到違背承諾。商店描述似乎並未相對於投訴群集過度宣稱。"

請參閱 references/broken-promise.md 以了解反模式(什麼不該標記)。


步驟 5 — 產生文案

使用步驟 3 的群集和步驟 4 的違背承諾,產生簡報的第 3 至 5 節。

文案規則(適用於所有三個章節):

  • 每個標題和方向都必須引用其來源群集:[集群:"集群名稱"]
  • 不得使用禁用詞:powerful、robust、seamless、innovative、game-changing、streamline、leverage、revolutionize、transform
  • 不得捏造統計數據——除非審查者使用了它們,否則不得出現百分比或數字
  • 如果提供了 product_context:讓「這麼說」的方向具體針對該產品的功能。如果沒有:則撰寫成使用者可以填寫的定位模板。
  • 在標題中使用審查者的語言——從實際評論文字中衍生或引用

第 3 節 — 到達頁面 H1 儲備庫(3–5 個標題):

  • 每個:"[標題文字]" [集群:"集群名稱"]
  • 盡可能 ≤ 8 個字
  • 直接對沮喪的使用者說話

第 4 節 — 廣告文案方向(恰好 3 組):

集群:[群集名稱]
別說那套:"[競爭對手宣稱的內容或一個普通的弱替代方案]"
要這麼說:"[基於投訴證據的反向宣稱]"
證據:[N] 位審查者回報了 [逐字投訴摘要]

第 5 節 — 反聲明警告:

  • 步驟 4 中每個違背承諾對應一個警告
  • 如果第 2 節處於降級狀態:一個註記(確切措辭請參閱 references/brief-format.md)

步驟 6 — 自我品質驗證

在儲存之前,根據以下檢查驗證產生的簡報。如果任何檢查失敗,請修正特定項目並重新驗證——不要儲存失敗的簡報。

檢查規則
存在逐字引文每個群集至少有 ≥ 2 段逐字引文
無禁用詞9 個禁用詞均未出現在第 3–5 節中
無未引用百分比輸出中的任何 % 都必須追溯到審查者的實際措辭
所有文案皆已引用每個標題和「要這麼說」都有一個 [集群:"名稱"] 引用
群集計數 ≥ 1至少有一個群集通過了關卡 2/3
第 2 節存在第 2 節出現在輸出中(無論何種狀態)
引文評分 ≤ 3所有逐字引文皆來自 1–3★ 評論

關於群集計數的說明: 通過簡報的最低要求是 1 個群集(而不是 3 個)。關卡 3 的低信心標記會處理少於 3 個群集倖存的情況——那是一個警告,不是失敗。只有當 0 個群集存在時,自我品質驗證才會失敗。


步驟 7 — 儲存輸出

按照 references/brief-format.md 的格式組裝完整簡報。

儲存至:

docs/review-briefs/[app-id]-[YYYY-MM-DD].md

如果 docs/review-briefs/ 目錄不存在,請建立它。

將完整簡報列印給使用者。

清理暫存檔案:{tmpdir}/asr-raw.json、{tmpdir}/asr-clusters.json、{tmpdir}/asr-promises.json。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Creates professionally designed B2B SaaS e-books in HTML + CSS, exported as print-ready PDF. 3–10 pages, 9 style presets, 11 page layout types. Trigger when user says "create an ebook", "design a lead magnet", "make a PDF guide", "build a gated content piece", "write a B2B ebook", "design a white paper", "create a nurture asset", or "make a PDF report".

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

相關技能