Communitygithub.com

bitomule/Koubou

使用 HTML/CSS 範本搭配真實裝置框架,為 App Store 產生專業、本地化的螢幕截圖,適用於 iPhone、iPad、Mac 和 Watch。

Koubou 是什麼?

Koubou 是一款強大的 App Store 螢幕截圖產生器,它允許開發者和設計師使用 HTML/CSS 範本,結合超過 100 種真實裝置框架(如 iPhone、iPad、Mac、Watch)來創建專業、像素完美的截圖。其核心優勢在於能透過 xcstrings 支援在地化,並嚴格遵循 Apple 官方尺寸規範,確保輸出示意圖在任何裝置上都能呈現最佳效果。此技能主要為 Claude Code 等 AI 代理設計,透過定義清晰的規則層級(硬性限制、強烈預設、風格偏好)來引導創作過程,優先確保文字可讀性、縮圖清晰度及真實畫布感知。使用流程分為三個階段:首先自動檢查並安裝 `kou` 工具;接著透過自動分析專案中的 Assets.xcassets、設計標記及現有截圖,來理解應用程式的視覺語言,並進行簡短的風格訪談;最後根據設計指南和 YAML 配置生成 HTML 範本、產生圖片並進行嚴格的渲染後品質檢查。此工具強調創意方向而非僵化模板,並透過強大的迭代規則來確保最終截圖集既具一致性又富有變化。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bitomule/Koubou/tree/HEAD/skills/koubou

在你喜歡的 AI 中提問

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

說明文件

Koubou:App Store 截圖產生器

使用 HTML/CSS 範本搭配 100 多種真實裝置框架、xcstrings 在地化及像素完美的 Apple 尺寸,產生專業的 App Store 截圖。

截圖是廣告,不是文件。每張幻燈片都在銷售一種感受、結果或痛點解決方案。

此技能中,使用者指示始終優先於預設值。

預設情況下創意方向是開放的。 使用此技能中的規則來強制要求影響力、可讀性和可感知畫布的縮放,而不是讓每組截圖看起來都一樣。

規則層級

依照此順序處理此技能中的指南:

  1. 硬性限制 — 可讀性、縮放、縮圖清晰度、真實的產品行銷以及真實的畫布感知
  2. 強烈預設 — 多樣性、不對稱性、重疊、節奏感,以及避免通用佈局
  3. 風格偏好 — 反平庸啟發法和風格預設值,當有更強烈的想法能明顯改善作品時,可以打破這些預設值

如果打破預設值能產生更好的截圖集,就刻意打破它,並在產生前向自己解釋其中的取捨。

參考檔案(按需閱讀,非預先閱讀):

  • setup.md — 安裝與 HTML 執行環境設定
  • design-guide.md — 設計原則、文案規則、CSS 規則、HTML 範本範例
  • style-intake.md — 如何在提問前檢查應用程式的真實視覺語言
  • style-interview.md — 簡短、高訊號的風格問題與對話模式
  • yaml-reference.md — YAML 配置格式、在地化、素材、裝置、尺寸
  • capabilities-reference.md — 完整的 koubou 功能(內容模式、強調、縮放、漸層)

階段 1:設定(靜默、自動)

首先檢查 kou 是否可用。如果 kou 已能正常運作,請勿重新安裝或觸碰 Python 套件管理。

首選順序:

kou --version 2>/dev/null

如果 kou --version 成功:

  • 將 koubou 視為已安裝
  • 不要執行 pip、pip3 或 playwright install
  • 不要嘗試主動「升級」或「修復」使用者的環境
  • 務必在每次產生前執行 kou setup-html,因為此技能僅限 HTML,且該命令設計為可安全重複執行

如果 kou --version 失敗,請閱讀 setup.md 並遵循對環境影響最小的路徑。

對於 HTML 渲染支援:

  • 始終使用 kou setup-html
  • 不要因為 HTML 在之前的執行中有效就跳過此步驟
  • 不要直接執行 playwright install chromium

僅在設定失敗時通知使用者。切勿修改正常運作的安裝。

階段 2:閱讀應用程式,然後提問

不要從通用的風格問卷開始。首先檢查應用程式的真實視覺語言,然後只詢問仍然遺失或不明確的部分。

在詢問風格問題之前,請先閱讀 style-intake.md。按此順序進行。

2.1 風格探索(在風格問題前為必做)

首先檢查本地專案原始碼。在使用者提出視覺方向之前自動進行搜尋。

優先考慮這些來源:

  1. Assets.xcassets、應用程式圖示、插圖、標誌、顏色素材
  2. 現有的截圖和行銷資料夾:
    • .maestro/
    • screenshots/
    • AppStore/
    • fastlane/screenshots/
    • marketing/
  3. 產品文件和定位:
    • README*
    • CLAUDE.md
    • 發佈計劃、著陸頁文案、docs 資料夾
  4. 設計標記和使用者介面程式碼:
    • CSS 變數
    • SwiftUI 顏色、漸層、材質、排版選擇
    • 網頁主題檔案和共享設計常數
  5. 如果存在,先前的 App Store 成品:
    • 先前的範本
    • 舊的截圖活動
    • 在地化的行銷素材

提取並摘要至少這些訊號:

  • 主色和強調色
  • 整體對比度:深色、淺色、混合、柔和、鮮豔
  • 介面密度:寬敞、平衡、密集
  • 形狀語言:銳利、柔和、圓潤、以卡片為主、扁平
  • 圖示和插圖風格
  • 如果可以觀察到的排版方向
  • 文案語氣:冷靜、技術性、俏皮、高級、溫暖、緊迫
  • 應用程式感覺是冷靜、技術性、溫暖、充滿活力、精緻、俏皮等

如果應用程式風格明確:

  • 用平實的語言向使用者摘要檢測到的訊號
  • 確認你將從該方向建構,而不是從通用範本語言重新開始

如果訊號微弱、缺失或矛盾:

  • 說出你發現了什麼
  • 針對不確定之處提出有重點的後續問題,而不是提出廣泛的設計問卷

2.2 意圖訪談(簡短、高訊號)

閱讀 style-interview.md,只問最低限度的問題。保持對話性質。不要一次拋出所有問題。

在仍然需要時的必問風格問題:

  1. 這個活動應傳達什麼感覺:高級、俏皮、編輯風格、實用、技術性、溫暖等?
  2. 是否有應影響方向的 App Store 參考資料、品牌或截圖集?
  3. 視覺上禁止哪些元素:強烈的漸層、玻璃擬態、僅深色模式、卡片網格、過於俏皮的風格等?
  4. 應用程式中哪些視覺特質必須在截圖中仍然可辨識?

僅在仍未解決時才問的選答題:

  1. 偏好的排版方向或字體個性
  2. 淺色、深色或混合偏好
  3. 密度偏好:更多留白或更多資訊
  4. 各張幻燈片之間應該感覺高度一致還是明顯不同

2.3 產品資訊(仍為必填)

在風格探索開始後,自然地收集其餘的生產輸入:

  1. 應用程式:名稱、功能描述(一句話)、主要價值主張
  2. 截圖:應用程式截圖在哪裡?首先自動搜尋:
    • 如果找到,顯示你找到的內容並確認
    • 如果未找到,詢問使用者如何產生它們
    • 優先選擇能清晰顯示應用程式 UI 的乾淨模擬器截圖。如果使用者可以選擇,優先選擇最近的 6.1 吋 iPhone 截圖作為原始素材
  3. 要強調的功能:按優先順序列出的功能/優點(建議 3-5 個)。每張幻燈片 = 1 個功能
  4. 主要素材:應用程式圖示或其他品牌素材。在詢問前自動搜尋
  5. 幻燈片數量:需要多少張截圖(建議從 3-5 張開始,Apple 最多允許 10 張)

僅在相關時才問的選填項:

  1. 裝置:預設為 iPhone 16 Pro - Black Titanium - Portrait。僅在 iPad/Mac/其他裝置有意義時才詢問
  2. 在地化:僅當專案已有 xcstrings 或多語言支援時
  3. 額外素材:浮動 UI 元素、徽章、輔助插圖
  4. 額外限制:要求的聲明、禁止的風格或行銷限制

2.4 風格決定(在撰寫 HTML 前為必做)

在起草範本之前,明確決定並內部鎖定以下六項:

  • 偵測到的品牌訊號
  • 選擇的活動風格
  • 文案語氣
  • 背景系統
  • 裝置構圖節奏
  • 各幻燈片的變化計劃

每個項目都必須由以下任一者證明其合理性:

  • 來自風格探索的應用程式證據,或者
  • 來自訪談的直接使用者回饋

如果你無法證明其中任何一項的合理性,請在設計之前繼續提出重點問題。

衍生項目(除非受阻,否則不要詢問)

  • 來自品牌色和 UI 情緒的背景漸層或紋理
  • 佈局分佈(主打 → 功能頂部 → 功能底部 → 交替)
  • 來自功能和價值主張的標題文案
  • 來自應用程式實際調色板的次要色板
  • 來自 project.device + project.output_size 的 kou inspect-frame 的畫布類別
  • 應用程式名稱是否應出現。預設:省略它,除非它能以可讀的尺寸增加真正的品牌價值
  • 應用程式圖示是否應出現。預設:謹慎使用它,僅在主打或結尾幻燈片上,不要作為一個微小的裝飾性標記

原則:如果本地已有可用的上下文,請在使用前先使用它。風格問題應在檢查之後而非之前提出。

階段 3:產生

在產生範本前閱讀 design-guide.md。在撰寫配置前閱讀 yaml-reference.md。

  1. 建立工作目錄(例如 AppStore/ 或對專案有意義的任何位置)

  2. 執行 kou setup-html

  3. 從 YAML 讀取 project.device 和 project.output_size

  4. 執行 kou inspect-frame "<device>" --output-size <size> --output json 並在撰寫 CSS 前使用該幾何數據

  5. 在觸碰佈局前,先起草敘事弧線以及每張幻燈片的 2-3 個標題/副標題選項。首先挑選最強的一個。文案品質優先於 CSS

  6. 將風格決定轉化為活動簡報:

    • 這個截圖集應該給人什麼感覺
    • 允許使用哪些主題
    • 禁止使用哪些主題
    • 前 5 張幻燈片應展現多少變化
  7. 建立 templates/ 資料夾並放入 HTML 範本 — 至少 3 種不同的佈局,且前 3 張幻燈片不得重複相同的構圖原型

  8. 在每個 HTML 範本中,在撰寫任何 CSS 之前,為以下元素添加 data-kou-id 和 data-kou-role:

    • 主標題:data-kou-id="headline" data-kou-role="headline"
    • 輔助文案:data-kou-id="subtitle" data-kou-role="supporting"
    • 主要裝置圖像:data-kou-id="device" data-kou-role="device"
    • 功能標題/副標題(結尾/功能幻燈片):data-kou-id="feature-N-title" data-kou-role="feature-title"、data-kou-id="feature-N-sub" data-kou-role="feature-sub"

    如果沒有這些,佈局側車的 elements 陣列將會是空的,導致渲染後的品質檢查無法進行。請參閱 design-guide.md 中的範本範例以了解正確的註解模式。

  9. 使用 koubou 配置建立 config.yaml(閱讀 yaml-reference.md 了解格式)

  10. 使用能適應畫布和文案長度的 CSS:有意識地使用 vw 或 clamp(),偏好 CSS Grid、重疊和絕對定位圖層,並在真實畫布上驗證最終的計算文字大小

  11. 在撰寫 HTML 之前:為每張幻燈片規劃文字/裝置區域(每個區域佔畫布的多少百分比)。在區域清晰之前不要開始撰寫 CSS

  12. 執行:kou generate config.yaml --output json

  13. 對於每個產生的 HTML 截圖,從 JSON 結果中讀取 layout_path,並在決定佈局可接受之前檢查側車

  14. 渲染後品質保證(必做 — 不要跳過):

    • 視覺檢查每個產生的幻燈片
    • 開啟 layout_path 引用的每個 *.layout.json 側車
    • 根據 design-guide.md 中的拒絕檢查清單進行檢查
    • 檢查渲染後的截圖集是否仍然反映你發現的應用程式風格,而不是通用的 App Store 預設值
    • 僅將佈局 JSON 用於客觀幾何數據:位置、佔用空間、比例和數學重疊
    • 如果需要被測量的 HTML 幻燈片的 elements 是空的,則將其視為遺失或損壞的註解,並修復範本
    • 驗證:沒有表情符號圖示、沒有相同的卡片網格、沒有未置中的裝置、沒有低於最小尺寸的文字、沒有意外的裝置裁切(主打幻燈片上必須可見裝置頂部/瀏海;螢幕內容必須可讀)
    • 應用標誌交換測試:這些幻燈片對競爭對手來說也適用嗎?
    • 如果任何幻燈片失敗,請在展示給使用者之前修復並重新產生
  15. 開啟輸出資料夾:open <output_dir>

  16. 詢問使用者是否需要調整 — 迭代特定幻燈片,而無需重新產生所有內容

迭代規則

  • 當使用者要求更改特定幻燈片時,僅修改該範本和配置條目
  • 當使用者要求全局風格更改(顏色、字體、情緒、密度、粗細)時,更新所有範本
  • 更改後重新執行 kou generate config.yaml --output json,以使新的 layout_path 值和側車保持同步
  • 如果使用者在編輯時想要即時預覽,請使用 kou live config.yaml
  • 如果幻燈片感覺很小,首先增加比例或切換佈局。不要用額外的漸層或標籤來隱藏問題
  • 如果文案導致文字過小,請重寫文案或選擇更合適的佈局;切勿因為「文字必須適合」而接受一張平庸的幻燈片
  • 保持高度多樣性:目標是活動的一致性,而不是佈局的重複
  • 如果輸出仍然違反設計規則或拒絕檢查清單,請不要在第一次成功渲染後就停止
  • 如果使用者要求改變情緒,請在品質限制內重新詮釋整個截圖集,而不是為先前的預設值辯護
  • 如果截圖和佈局 JSON 不一致,則相信渲染後的截圖以體現品味,並調查註解或渲染時序,而不是從過時的幾何數據強制執行佈局決策

硬性規則

硬性限制

  • 切勿使用表情符號作為圖示 — 使用 CSS 形狀(強調條、點)或僅使用文字
  • 切勿使用禁止的文案短語 — 例如「革命性的」、「無縫的」、「解鎖」、「顛覆性的」等
  • 應用標誌交換測試 — 如果競爭對手的名稱適合,則表示該截圖集過於通用
  • 每個 HTML 範本必須有 data-kou-id 註解 — 至少要有:headline、subtitle 和 device。如果產生後佈局側車中的 elements 為空,則表示註解遺失 — 在品質檢查通過前修復範本。請勿向使用者展示未經註解的幻燈片

縮放

  • 在較高的 iPhone 直向模式(iPhone6_9、iPhone6_7)上,主打標題必須 >=10vw,側邊佈局標題 >=10vw,副標題 >=4.5vw
  • 僅在計算後的大小在目標畫布上仍高於最小值時,才使用 vw 或 clamp()
  • 在對比或結尾幻燈片上,內容群組必須佔據畫布高度的 60% 以上

強烈預設

  • 不要在連續的幻燈片上使用相同的直立、居中手機構圖
  • 不要在標題和裝置之間留下大的空白區域(> 畫布高度的 15%)
  • 避免在居中裝置上組合使用 rotate() + translate(),除非在渲染後視覺中心仍然感覺有設計意圖
  • 當幻燈片需要重疊、邊緣突破裁切或分層構圖時,不要使用簡單的居中 flex 列
  • 在撰寫 CSS 前規劃文字/裝置區域(請參閱 design-guide.md 中的裝置-文字區域規劃)
  • 如果你使用卡片網格,除非嚴格的網格確實服務於概念,否則請錯開、強調或簡化它們

內容

  • 預設情況下,不要添加微小的頂部標籤、類別標籤或應用程式名稱頁首
  • 除非清晰可讀,否則不要將應用程式名稱渲染為小型裝飾性文字

相關技能