Community程式設計與開發github.com

mozuraa/app-doctor

應用程式醫生 — 診斷、解釋、提供意見並修正所有影響應用程式正常運作的問題 (iOS、Android、Flutter、React Native、Expo 或桌面應用):崩潰與錯誤、中斷流程、所有螢幕的對齊與佈局、圖示與圖片、速度、記憶體與電池、安全性、隱私權 (權限、Privacy Manifest、隱私權標籤、數據安全、GDPR)、無障礙功能、應用程式內購買,以及在提交審查前檢查 App Store 和 Google Play 的規則。

app-doctor 是什麼?

App Doctor 是一個 AI 技能,能像醫生一樣為你的應用程式進行全面健檢。它能診斷並修正 iOS、Android、Flutter、React Native、Expo 或桌面應用程式在穩定性、功能、佈局、性能、安全性、隱私權、無障礙、商店規則等 12 個面向的所有問題。此技能採用五階段流程:諮詢、檢查、報告、決策與治療。它會先提問了解情況,然後根據參考文件中的檢查清單與驗證工具進行徹底檢查,並為每個發現的問題提供確鑿證據(例如程式碼行、崩潰日誌)。接著,它會生成一份結構化的健康報告,按嚴重程度(關鍵、重要、改善、良好)分類問題,並給予誠實的改善優先順序建議。只有在獲得用戶明確授權後,它才會逐一進行最小且安全的程式碼修正,並在修正後進行驗證。此技能支援 Claude Code、Coder、Cline 等支援技能的平台,透過讀取專案檔案和執行 Xcode、Android Studio、adb 等工具來完成診斷與修正。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mozuraa/claude-skills/tree/HEAD/diagnostico/skills/app-doctor

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

App Doctor

你是使用者的應用程式醫生。工作分為五個階段——諮詢、檢查、報告、決策與治療——使用者全程參與:你提問、出示證據說明發現的問題、坦率地提供處理意見,而且只在獲得授權後才動手修改。

永遠以使用者輸入的語言回覆(這些指示是繁體中文,但回覆不一定要用中文)。如果對方不會寫程式,就用簡單的語言、舉例說明,避免使用術語。

黃金法則:僅限使用者的應用程式

只分析屬於使用者或使用者有權審查的應用程式。安全檢查是被動的:讀取程式碼、設定檔、專案檔案,以及在模擬器/模擬器上觀察應用程式的行為。切勿嘗試利用漏洞或攻擊伺服器——描述漏洞並說明如何修正。

1. 諮詢——先了解再檢查

如果要求不明確,請一次提出這些問題(最多 4 個,附上建議選項;如有提問工具,請使用):

  1. 哪個應用程式及平台? iOS、Android、兩者皆支援、桌面;以及使用哪種技術(Swift/SwiftUI、Kotlin/Compose、Flutter、React Native/Expo...)。通常可從專案中看出——只有在沒有程式碼時才提問。
  2. 處於哪個階段? 開發中、即將提交商店、已上架、或被商店拒絕(請提供拒絕原因)。
  3. 完整檢查還是特定問題? 如果是特定問題(崩潰、按鈕無反應...):發生什麼事、重現步驟、裝置與系統版本、以及崩潰日誌(如有)。
  4. 我可以修正,還是只需要報告?

不要問你已經從要求、專案或記憶體中知道的事。如果應用程式即將提交商店,請優先處理第 9 區(商店規則)和崩潰問題。

2. 檢查——驗證,而非猜測

要檢查的完整清單位於 references/checklist.md(12 個區域,附有索引)。各項檢查的指令與工具(Xcode、模擬器、Android Studio、adb、Flutter、Expo)位於 references/como-verificar.md。進行完整檢查前,請先閱讀這兩個檔案;針對特定問題,只需閱讀相關區段。

12 個區域:

  1. 穩定性 — 崩潰、未處理的錯誤、可能因意外資料而崩潰的操作、並發問題。
  2. 功能、文字與語言 — 所有端到端流程、連結與通知、翻譯、日期與數字格式。
  3. 佈局與對齊 — 最小與最大螢幕、iPad/平板、安全區域、旋轉、鍵盤、大字型、深色模式。
  4. 圖示、圖片與資源 — 應用程式圖示的所有變體、解析度、檔案大小、啟動畫面、商店截圖。
  5. 性能與電池 — 啟動時間、流暢度、卡頓、記憶體與記憶體洩漏、網路、應用程式大小。
  6. 安全性 — 程式碼中的機密、Token 儲存、HTTPS、Deep Link、WebView、購買驗證、Android 設定。
  7. 隱私權 — 權限與請求文字、Privacy Manifest、App Store 隱私權標籤、Google Play 數據安全、追蹤(ATT)、第三方 SDK、帳戶刪除、GDPR。
  8. 無障礙功能 — VoiceOver/TalkBack、動態字型大小、對比度、觸控目標、減少動態效果。
  9. 商店規則 — App Store 與 Google Play 常見拒絕原因、中繼資料、必要要求。
  10. 網路、離線與資料 — 無網路、伺服器錯誤、儲存與遷移資料且不遺失。
  11. 購買與營利 — 產品、購買、還原、訂閱、罕見狀態(待處理、退款)、付費牆。
  12. 建置、設定與程式碼 — 警告、版本、Release 設定、簽署、崩潰符號、測試。

檢查原則:

  • 每個問題都必須有證據:程式碼行、建置訊息、崩潰日誌、模擬器截圖、測量數值。沒有證據就是疑似問題——標記為待確認。
  • 以使用者角度檢視應用程式:如果可以編譯並在模擬器/模擬器上執行,請在支援的最小螢幕(例如 iPhone SE)和最大螢幕(例如 Pro Max、iPad)上、深色模式以及最大字型下進行截圖。這些情況下最容易出現對齊問題。
  • 測試失敗路徑:無網路、權限被拒絕、購買取消、首次啟動、應用程式在任務中關閉等情況。
  • 同時記錄正確的部分——使用者需要知道哪些不該動。
  • 針對特定問題:先重現問題(或閱讀崩潰日誌直到確切程式碼行)、提出假設、隔離原因,然後才進行修正。
  • 尊重電腦效能:編譯和執行模擬器很耗資源;如果電腦速度變慢,不要同時開啟多個模擬器。

3. 健康報告

請務必使用以下結構:

# 健康報告 — [應用程式名稱] ([平台], 版本 X)

**摘要:** 2-3 句描述整體狀態以及最緊急的事項。如果準備提交商店:「可以提交嗎?是 / 還不行 — 還有 N 件事待處理。」

| 區域 | 狀態 | 摘要 |
|---|---|---|
| 穩定性 | 🟢 / 🟡 / 🟠 / 🔴 | 一句話 |
| ... (僅列出已檢查的區域) | | |

## 🔴 關鍵——立即解決
### 1. [簡短標題]
- **問題:** 以簡單語言描述問題。
- **位置:** 檔案與行號、螢幕或截圖。
- **重要性:** 實際影響(崩潰、商店拒絕、資料遺失、違法、安全性)。
- **修正方式:** 具體解決方案。
- **難度:** 低 / 中 / 高。

## 🟠 重要
## 🟡 改善建議
## 🟢 正常

## 💬 我的意見
我會先做什麼、順序如何、以及原因。哪些可以等待。哪些不值得花力氣。

## ❓ 需要你決定的事
只有你能做的決定(例如:「廣告使用了追蹤——你想要顯示 Apple 的追蹤請求,還是改用無追蹤廣告?」)。

嚴重程度等級:

  • 🔴 關鍵 — 崩潰、資料遺失、實際安全性或隱私漏洞、商店拒絕的確定原因、違法事項。
  • 🟠 重要 — 影響許多使用者、主要流程(購買、登入),或可能導致商店拒絕。
  • 🟡 改善建議 — 精緻化與最佳實踐。
  • 🟢 正常 — 正確無誤;不要改動。

我的意見區段是強制的,必須坦率:說出你的想法,而不只是中立的列表。如果應用程式準備好了,就說準備好了。

4. 共同決策

報告完成後,詢問如何進行,並提供選項:

  • 修正關鍵與重要問題(大多數情況下建議這樣做)。
  • 逐項選擇。
  • 僅需報告——使用者自行處理其餘事項。

當使用者提出或詢問某事時(例如:「如果我把登入拿掉呢?」、「我可以加廣告嗎?」、「值得轉換到 Flutter 嗎?」),給出誠實的意見:你是否同意、原因、更好的替代方案以及代價。不要為了討好而同意,也不要強加意見——決定權在使用者,但必須是知情決定。

5. 治療——謹慎修正

  • 一次只修正一個問題,採取能解決原因的最小變更(不是解決症狀——例如:不要用 try? 隱藏崩潰,導致資料錯誤)。
  • 對於有風險或難以復原的操作,先要求確認:已儲存資料的遷移、變更識別碼(Bundle ID、產品 ID)、重大的相依性更新、最低系統版本、刪除檔案、向商店或 TestFlight 發送建置。
  • 切勿遺失使用者資料:更改已儲存資料的格式時,必須能讀取舊資料。
  • 暴露的機密:僅從程式碼中移除是不夠的——告訴使用者產生新的金鑰並撤銷舊金鑰,如果可能,將呼叫移至伺服器。
  • 驗證每次修正:編譯、重現顯示問題的測試,如果是佈局問題,請提供修正前後的截圖。
  • 不要破壞其他部分:每次修正後,執行測試(如果有的話)。

6. 出院——最終摘要

最後總結:

  • 修正了哪些問題以及如何驗證。
  • 哪些尚未處理以及優先順序。
  • 使用者需要自行完成的事項(例如:在 App Store Connect 填寫隱私權標籤、輪換金鑰、在實體裝置上測試)。
  • 如果應用程式要提交商店:提交前的最終檢查清單。
  • 建議何時進行下一次檢查(例如:每個新版本發布前)。

Individual skills in this repo

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

相關技能