Community研究與資料分析github.com

參考資料研究員 (ref-researcher)

研究任何網路 URL、設計圖庫、螢幕截圖或影片中的 UI/UX 與著陸頁參考資料;提取 HTML 結構、分割長圖與影片關鍵影格以便檢查,根據產品與品牌現實審查發現,並輸出包含「該做與不該做」的可執行操作手冊 (.md)。

參考資料研究員 (ref-researcher) 是什麼?

`ref-researcher` 是一款專為 AI 代理(如 Claude Code)設計的技能,能將原始靈感(如即時網站、設計圖庫、應用程式錄影、UI 截圖或已儲存的 HTML)轉化為結構化、可執行的「設計與產品操作手冊」(.md 格式)。它非常適合在開始設計或編碼前,深度檢查外部參考資料中的視覺工藝、動畫線索、文案模式與反模式。此技能支援行動應用程式功能、網頁應用程式流程與行銷網站等場景。其運作方式包含:透過 `fetch-page` 指令(每請求 1 秒)禮貌地抓取公開 URL 的 HTML 與靜態資源;透過 `extract-html` 解析已儲存的 HTML/CSS 檔案,提取標題、導航連結、顏色、字型與動畫庫提示;並利用 `slice-media` 將超高螢幕截圖(寬度 1024px)分割成可檢查的視口切片,以及從 MP4/MOV/WebM 影片中提取均勻間隔的關鍵影格。此外,它還整合了 `chrome-devtools` 處理 JavaScript 密集型單頁應用程式的渲染、`apple-hig-designer` 驗證 iOS/iPadOS 的原生元件細節,以及 `frontend-design` 提供網頁設計觀點。輸出的操作手冊包含產品事實與限制矩陣、狀態與邊界案例清單、嚴格的行為準則(該做與不該做),並可透過 `verify-links` 驗證所有相對連結的完整性。

相容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Bershmern/my-skills/tree/HEAD/skills/ref-researcher

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

參考資料研究員 (ref-researcher) 是做什麼的?

總覽

ref-researcher 將原始靈感(即時網站、設計圖庫、應用程式錄影、UI 截圖或已儲存的 HTML)轉化為有觀點且可立即執行的 .md 設計與產品操作手冊,在設計或編碼開始之前完成。

當你需要深度檢查來自外部參考資料的視覺工藝、動畫線索、文案模式與反模式,同時又不失對專案實際品牌標記、平台規則與發佈範圍的忠誠度時,請使用此技能。這適用於行動應用程式功能、網頁應用程式流程或行銷網站。

相依技能

協調使用下列已安裝的技能,而非重複它們的職責:

  • uv — 透過 uv run 簡潔地檢查並執行 Python CLI 指令碼(若在完全離線/無 uv 環境下僅使用標準函式庫,才退而使用 python3)。
  • chrome-devtools — 渲染 JavaScript 密集型單頁應用程式 (SPA)、檢查即時版面/動畫行為,並在靜態 HTTP 擷取遇到客戶端外殼 (needs_browser_capture: true) 或需登入的網站時,擷取全頁螢幕截圖或進行互動式瀏覽器工作階段。
  • frontend-design — 在整合網頁應用程式或行銷網站的參考資料時,引導視覺觀點、字體配對、空間克制與反模板批評。
  • apple-hig-designer — 在整合行動應用程式功能或原生 Apple 裝置展示時,驗證原生 iOS/iPadOS/watchOS 元件的細節、安全區域、表單、動態字型與無障礙功能。

快速開始

從即時 URL(擷取公開 HTML/資源並擷取瀏覽器螢幕截圖)或從現有的本端參考資料資料夾開始:

# 1. 將已儲存的 HTML 參考資料解析為結構化 JSON
uv run ~/.gemini/config/skills/ref-researcher/scripts/ref_researcher.py extract-html \
  --input-dir "./Docs/References & Inspo" \
  --limit 25 \
  --output "/tmp/ref_html_summary.json"

# 2. 分割超高螢幕截圖 + 從影片中提取關鍵影格到暫存目錄 (寬度 1024px)
uv run ~/.gemini/config/skills/ref-researcher/scripts/ref_researcher.py slice-media \
  --input-dir "./Docs/References & Inspo" \
  --scratch-dir "/tmp/ref_slices" \
  --slice-height 1400 \
  --out-width 1024 \
  --max-slices 12 \
  --frames-per-video 3 \
  --output "/tmp/ref_media_manifest.json"

工具指令碼

所有程式化的提取、分割、禮貌性 HTTP 擷取與連結稽核都位於 scripts/ref_researcher.py 中。每個指令都需明確的限制與 --output <file.json>(僅將簡潔狀態輸出至 stdout)。

1. fetch-page — 禮貌性公開 URL 與資源擷取器

從公開 URL 下載靜態 HTML 與頂層樣式表/圖片,同時偵測登入牆、機器人驗證挑戰與客戶端 JavaScript 外殼 (needs_browser_capture: true)。

uv run ~/.gemini/config/skills/ref-researcher/scripts/ref_researcher.py fetch-page \
  --url "https://example.com" \
  --asset-dir "./refs/example" \
  --max-assets 20 \
  --output "/tmp/fetch_example.json"

2. extract-html — 程式碼、文案、字體與標記提取器

解析已儲存的 .html 與 .css 檔案(上限為 --limit 個),輸出標題、導航連結、H1–H3 階層、行動呼籲按鈕 (CTA)、內文文案範例、十六進位顏色值、font-family 宣告與動畫庫提示 (@keyframes、framer、gsap、lottie)。

uv run ~/.gemini/config/skills/ref-researcher/scripts/ref_researcher.py extract-html \
  --input-dir "./refs" \
  --limit 25 \
  --output "/tmp/html_summary.json"

3. slice-media — 高螢幕截圖與影片關鍵影格分割器

讀取真實圖片像素尺寸(處理格式錯誤的副檔名,例如儲存為 .webp 的 JPEG),將超高的全頁螢幕截圖分割為清晰的 1024px 寬視口切片,並透過 ffmpeg 從 MP4/MOV/WebM 影片中提取均勻間隔的關鍵影格。

uv run ~/.gemini/config/skills/ref-researcher/scripts/ref_researcher.py slice-media \
  --input-dir "./refs" \
  --scratch-dir "<scratch_dir>/slices" \
  --slice-height 1400 \
  --out-width 1024 \
  --max-slices 12 \
  --frames-per-video 3 \
  --output "/tmp/slice_manifest.json"

工作區衛生: 始終將 --scratch-dir 指向你的對話暫存目錄(或 /tmp/),絕不要指向使用者的儲存庫工作區。

4. verify-links — 操作手冊資源連結稽核器

驗證已產生 .md 檔案內的每個相對 Markdown 連結是否存在於磁碟上,若任何路徑損壞則以結束碼 1 退出。

uv run ~/.gemini/config/skills/ref-researcher/scripts/ref_researcher.py verify-links \
  --markdown "./Docs/References & Inspo/PLAYBOOK.md" \
  --markdown "./Docs/References & Inspo/README.md" \
  --output "/tmp/verify_links.json"

工作流程

1. 先稽核目標產品與限制

在開啟任何靈感連結之前,先閱讀目標專案的權威文件(PRD、品牌顏色/標記、設計系統、平台限制)。記錄:

  • 目標表面: 行動應用程式功能、網頁應用程式流程或行銷網站。
  • 視覺標記與對比陷阱: 精確的十六進位值與 WCAG AA 最低要求(例如低對比度的深色模式強調色)。
  • 產品事實矩陣: 區分今日發佈 vs 路線圖 / 禁止宣稱。

2. 收集參考資料(即時擷取、瀏覽器捕捉或現有資料夾)

  • 現有本地參考資料: 立即對提供的目錄執行 extract-html 與 slice-media。
  • 公開 URL / 從頭研究:
    1. 首先執行 fetch-page 以快速、有限速地擷取靜態 HTML + 資源。
    2. 當 needs_browser_capture 為 true(React/Next/Vite CSR 外殼)或需要全頁視覺螢幕截圖時,使用 chrome-devtools 技能(或瀏覽器工作流程)來渲染並擷取全頁圖片/DOM。
    3. 驗證 / 封鎖網站協定(嚴格): 如果網站回傳 HTTP 401/403、重新導向至 /login 或顯示付費牆/機器人牆:
      • 要求使用者先登入,然後最多重試 2 次。
      • 如果 2 次重試後仍無法存取,清楚地記錄被封鎖的來源並自動轉向可存取的公開網站/頁面或同類替代方案,以免進度停滯。

3. 視覺化與程式化檢查(切勿盲目檢查高擷取內容)

  • 全頁擷取(3840w × 15000px+)如果整體檢視,會縮小為難以辨識的縮圖。始終檢查由 slice-media 在所有收集的參考資料上生成的連續視口切片,以及來自 extract-html 的提取文案/CSS 標記。
  • 將視覺研究與平台指南配對:
    • 針對 iOS/iPadOS 導航、表單、SF Symbols 與觸控/動態字型人體工學,調用 apple-hig-designer 的提示。
    • 針對網頁字體對比度、有意的空白與避免 AI 模板預設值,調用 frontend-design 的提示。

4. 整合 .md 操作手冊

遵循 references/playbook_template.md 在目標專案的參考資料資料夾內撰寫交付的操作手冊。將藍圖調整為目標表面,同時始終包含:

  1. 產品事實與限制矩陣(包括淺色/深色模式對比陷阱)
  2. 執行創意與 UX 方向
  3. 架構 / 螢幕流程藍圖
  4. 狀態與邊界案例清單(空狀態、載入/串流、部分/達到上限、錯誤/權限)
  5. 平台與響應式轉換矩陣
  6. 字體、表面、動畫與文案規則
  7. 嚴格的該做與不該做,引用批次中的具體正面與負面範例
  8. 索引參考資源查詢表(相對 Markdown 連結)
  9. 建置前執行與 QA 檢查清單

更新目錄中的 README.md(若存在),將新的操作手冊置頂顯示。

5. 驗證所有相對連結

對操作手冊(及更新後的 README.md)執行 verify-links。在向使用者報告完成之前,修正任何非零的退出狀態。

速率限制

  • fetch-page 透過檔案鎖 (/tmp/ref_researcher_fetch.lock) 與單調計時器 (time.monotonic()) 在並發代理程序之間強制執行 1.0 請求/秒 (REQUESTS_PER_SECOND = 1.0)。
  • HTTP 429 會觸發指數退避(Retry-After 或 2^attempt 次),記錄到 stderr,然後引發 RateLimitError。
  • HTTP 5xx 會使用指數退避重試;永久性的 HTTP 錯誤包含 URL 與截斷的回應主體,以便快速診斷。

常見錯誤

  • 直接檢查未分割的 15,000px 高螢幕截圖: 導致模糊的猜測與遺漏微互動。始終先使用 slice-media 進行分割。
  • 永遠繞過被封鎖的登入或在一個付費牆上停滯不前: 要求使用者登入一次,最多重試 2 次,然後乾淨地轉向可存取的來源並記錄缺口。
  • 相信競爭對手的行銷宣稱而不是你自己的程式碼庫/PRD: 盲目複製對手的「雲端同步」或「Mac 應用程式」主視覺會產生虛假的行銷宣稱。始終透過產品事實矩陣來審查每個模式。
  • 留下損壞的相對連結或將暫存影像傾倒在專案儲存庫內: 始終將切片寫入暫存目錄,並在結束前執行 verify-links。

Individual skills in this repo

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

相關技能