Communitygithub.com

CrziDev/claude-skills

當使用者輸入 /generate-frame,或提供圖片/螢幕截圖資料夾以放入瀏覽器視窗模擬框架中,或想要從螢幕截圖建立作品集/展示封面圖片時使用。

claude-skills 是什麼?

這個技能將現有的螢幕截圖轉換為帶有瀏覽器視窗模擬框架的 PNG 圖片,適用於作品集展示、README 或簡報。它依賴於 frame-kit 工具進行所有渲染,支援多種解析度(標準、高、最大)和圖片調整模式(自動、包含、覆蓋)。主要功能包括:定位並執行 frame-kit、根據選項批次處理圖片、為資料夾輸入選擇互補的封面圖片(後景和前景),以及驗證輸出圖片是否正確。該技能會先檢查環境中是否有 frame-kit(透過環境變數、PATH、使用者目錄搜尋或使用者提供),必要時自動安裝相依套件。處理後,它會驗證每個輸出的 PNG 是否有效且尺寸正確,檢查是否有空白、裁切錯誤或樣式不匹配的問題,並僅重新處理有問題的檔案。最終報告會列出框架化的資料夾、失敗或重做的檔案,以及封面配對的選擇理由。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CrziDev/claude-skills/tree/HEAD/generate-frame

在你喜歡的 AI 中提問

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

說明文件

產生框架

將現有的螢幕截圖轉換為帶有框架的 PNG 圖片,使用 frame-kit 進行所有渲染。此技能會定位該工具、執行它、檢查結果並挑選封面。若要先為專案的頁面截圖,請使用 generate-project-frames。

1. 定位並檢查 frame-kit

將該資料夾稱為 <frame-kit>。使用第一個符合條件的:

  1. $FRAME_KIT_DIR
  2. frame-kit 命令所在路徑 (readlink -f "$(command -v frame-kit)",其資料夾)
  3. 在 ~/projects ~/code ~/dev ~ 中搜尋,深度 ≤ 4,跳過 node_modules(多個相符則詢問)
  4. 詢問使用者;若他們沒有,建議 git clone https://github.com/CrziDev/frame-kit

然後:

  • 缺少 node_modules → 在 <frame-kit> 中執行 npm install。
  • 執行 node <frame-kit>/cli.mjs --help,僅從其列出的選項建立命令。如果缺少 --resolution 或 --fit,表示安裝版本過舊:省略它們,並告知使用者 git pull。
  • 出現「Chromium not found」→ 在 <frame-kit> 中執行 npx playwright install chromium,或設定 CHROME_PATH。

請勿將路徑寫入任何技能檔案中。

2. 框架化

node <frame-kit>/cli.mjs single <image|folder> --out <framed dir> [options]

  • --out:始終傳入。預設為 <input dir>/framed/,這會巢狀在原始資料夾內。保持框架化圖片與原始檔案分離。
  • --url "<host>/{name}":網址列文字;{name} = 檔案名稱(不含其 NN- 前綴)。已知應用程式的真實主機和路徑時使用,否則省略。
  • --style paper:收據、發票、列印輸出。資料夾執行使用一種樣式,因此僅針對那些檔案分別以 --style paper 和相同的 --out 重新執行。
  • --resolution standard|high|max:預設 max (3840×2400)。README 和快速預覽使用 standard (1920×1200),網頁和簡報使用 high (2560×1600)。較大的輸出可獲得更清晰的框架和文字,而非螢幕截圖的更多細節。每批使用一種解析度。
  • --fit auto|contain|cover:預設 auto(整張螢幕截圖;非常長的頁面從頂部裁切)。僅在修正不良裁切時變更。

退出碼 1 表示某些檔案失敗;其他檔案仍會寫入,失敗項目會列在標準錯誤輸出中。修正原因(無法讀取或損壞的圖片、不支援的類型、超過 50 MB)並僅重新執行那些檔案。如果每個檔案都失敗,請懷疑 Chromium 問題。

3. 封面(僅限資料夾輸入)

檢視圖片,然後挑選兩張互補的圖片:

  • 後景:產品概覽(儀表板、分析、首頁),橫向,縮圖尺寸可讀。
  • 前景:顯示應用程式功能的畫面,包含真實內容,與後景不同的佈局。
  • 絕不:登入頁面、空白狀態、錯誤頁面、非常長的整頁截圖、收據,或相同的畫面兩次。

node <frame-kit>/cli.mjs cover <back> <front> --back-url "…" --front-url "…" --out <framed dir>/00-cover.png(相同的 --resolution)。傳入原始螢幕截圖,而非框架化的。只有一張值得顯示的圖片,或使用者想要標題?使用 headline(請參閱 --help)。

4. 驗證並報告

  1. node <this skill>/scripts/verify-frames.mjs <input> <framed dir> --resolution <preset> 檢查每個輸入是否都有尺寸正確的有效 PNG,加上封面。它不判斷外觀。
  2. 閱讀每個輸出的 PNG(以及封面)。尋找空白或部分載入的螢幕截圖、裁切掉的內容、小到無法閱讀的文字、錯誤的樣式(收據出現在瀏覽器視窗中)、錯誤的網址列。僅重新執行受影響的檔案並調整選項,然後重新驗證。如果您無法檢視圖片,請說明。
  3. 報告:框架化的資料夾、失敗或重做的檔案、封面配對,以及一句話說明兩者為何互補。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能