Communitygithub.com

idonafraid-create/GCW

將授權的正式網站還原為可部署、有證據驗證的本地專案,並提供路由、資源、WebGL 與視覺回歸測試工具。

GCW 是什麼?

GCW(Gao Copy Website) 是一個 AI 輔助技能,專為開發者設計,用於系統性地研究、複製或重建公開網站。該技能強調以真實來源與可觀察的執行時證據為基礎,避免依賴 AI 對外觀的猜測。支援五種模式:TEARDOWN(拆解分析)、FAITHFUL_CLONE(忠實複製)、CREATIVE_REBUILD(創意重建)、PRODUCTION_RECOVERY(正式環境還原),以及視覺靈感提取。適用於 Claude Code、Cursor、Codex 等支援技能檔案的 AI 代理平台。其工作流程包括:確認目標授權、搜尋官方原始碼、執行網站盤點(透過 Playwright)、選擇實作路徑、建立可運行的本地專案,並以真實瀏覽器進行螢幕截圖比對驗證。內建多種腳本(如 init_reconstruction.py、site_inventory.mjs、capture_compare.mjs)來自動化證據收集、路由檢測與視覺回歸測試。最終產出包含架構報告、設計基因、置換指南與比較報告,並要求完整記錄已知差距,絕不偽造未驗證的功能。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add idonafraid-create/GCW

在你喜歡的 AI 中提問

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

說明文件

GCW — Gao Copy Website

研究一個公開網站實際運作的方式,重現其中重要的部分,並在真實瀏覽器中驗證結果。優先採用真實原始碼與可觀察的執行時證據,而非看似合理的 AI 猜測。

謹記三個原則:

  1. 在實作之前先找到證據。
  2. 在重構之前先讓它執行。
  3. 在打磨之前先進行比對。

邊界

  • 僅在目標為使用者所有、已取得預期用途授權或獲得明確授權時才進行。僅在授權不明確時提問。
  • 將需驗證、僅限密碼及私人內容視為超出範圍,除非獲得明確授權。
  • 不得繞過存取控制,也不得復原、傳輸或提交憑證。
  • 在公開重複使用前,分別檢查程式碼、字型、圖片、模型與品牌的權利。
  • 將不確定的技術主張標記為 SOURCE、PARTIAL 或 GUESS。
  • 不得將已部署的套件呈現為原始創作原始碼。

1. 先選擇目標,再選擇工具

閱讀 references/clone-modes.md 並選擇一種主要模式:

  • TEARDOWN:了解真實的設計與實作,不承諾重建。
  • FAITHFUL_CLONE:盡可能忠實地重現可觀察的網站。
  • CREATIVE_REBUILD:保留選定的結構、節奏或互動想法,同時更換品牌與內容。
  • PRODUCTION_RECOVERY:在無法取得可維護原始碼時,復原已擁有的已部署網站。

記錄簡短的飛行前檢查:

- 目標:
- 網站類型:
- 原始碼可用性:
- 重複使用邊界:
- 高信心範圍:
- 近似或排除範圍:
- 建議路徑:

不要讓每個專案都承擔生產環境復原的成本。使用能支援所選目標的最輕量證據與驗證方式。

2. 首先尋找真實的實作

在爬取或重建之前:

  • 搜尋網站名稱、產品名稱、網域擁有者與部署 slug,尋找官方公開儲存庫。
  • 檢查原始碼映射、框架元資料與公開部署工件。
  • 驗證儲存庫與資產授權;公開可用不代表可以重新部署。
  • 保持原始碼、已部署工件與你可編輯的實作清晰分離。
  • 使用最終的規範 HTTP(S) URL。GCW 拒絕帶有憑證的 URL 以及會離開設定來源的重新導向。

當官方可重複使用原始碼存在時,從它開始。當不存在時,繼續進行執行時偵察,並說明哪些部分仍然未知。

3. 初始化專案記錄

閱讀工作區的 AGENTS.md。如果此機器尚未驗證,請在 GCW 儲存庫中執行 npm install、npm run install:browser 與 npm run check。

建立一個非破壞性的專案記錄:

python scripts/init_reconstruction.py <workspace> --url <canonical-url> --authorization <owned|licensed|authorized>

使用 .gcw/ 來存放清單、螢幕截圖、報告與已知缺口。請勿在未告知的情況下覆蓋現有證據。

4. 偵察網站並分類其表面

在 Node.js 與 Playwright 可用時執行盤點:

node scripts/site_inventory.mjs --url <canonical-url> --out <workspace>/.gcw/evidence/network/site-inventory.json

然後驗證自動化無法可靠推斷的項目:

  • 路由、頁面系列、深層連結與響應式斷點
  • DOM 根節點、固定覆蓋層與內部滾動容器
  • 懸停、點擊、拖曳、滾動、時間、縮放、主題與儲存狀態
  • Canvas、WebGL、WebGPU、工作執行緒、iframe、影片、音訊與延遲資源
  • 載入狀態與穩定應用程式狀態
  • 需要本地 fixure 的公開 API 與資料依賴

對於 Canvas/WebGL/WebGPU 的擁有權、著色器與渲染管線,使用 web-shader-extractor。當目標是保留排版、間距、色板、佈局、動態或視覺語言,而非位元組層級工件時,使用 design-dna。

5. 選擇實作路徑

根據證據與網站類型選擇路徑:

證據或網站類型預設路徑
官方可重複使用原始碼在其授權範圍內執行並調整原始碼
簡單靜態網站保留公開檔案與 URL 路徑,然後移除追蹤並更換內容
內容豐富的 React/Vue/Next 網站重建頁面模板,使用公開或本地的 fixure 資料
多頁行銷網站在建立共享模板前,先對應路由與頁面系列
互動豐富的網站先擷取狀態,再重現狀態轉換
WebGL/Canvas 網站在專案化之前,先復原其渲染/輸入/輸出模型
僅視覺靈感提取 Design DNA 並建立原創實作
遺失原始碼的正式網站閱讀 references/recovery-tiers.md 與 references/gates.md,然後建立一個經過驗證的回放預言機

不要封存或複製所選模式不需要的第三方工件。

6. 建立可運行的本地專案

  • 在編輯新專案時,保持穩定的參考或證據記錄。
  • 還原每個在範圍內的路由,而不只是首頁。
  • 在所選主機上保留導航與深層連結行為。
  • 使用明確的 fixure 或安全後備方案來取代不可用的伺服器行為。
  • 驗證正式環境建置和靜態預覽,而不只是開發伺服器。

在適用的情況下執行路由檢查:

python scripts/route_smoke.py --base-url <preview-url> --route / --route /example

7. 在真實瀏覽器中驗證

閱讀 references/qa-scenarios.md 與 references/tooling.md。

定義來源與候選情境,然後擷取匹配狀態:

node scripts/capture_compare.mjs --config <capture-scenarios.json> --output <results-dir>
python scripts/batch_image_diff.py <results-dir> --diff-dir <results-dir>/diff

匹配視窗尺寸、DPR、路由、游標、滾動、隨機種子、就緒狀態與時間階段。檢查螢幕截圖與差異影像;單一全域分數無法解釋互動或合成器失敗的原因。

不要透過調整顏色、偏移或動畫速度來隱藏缺失的配線。將階段敏感的區域與確定性故障分開處理。

8. 傳遞學習成果,而不只是克隆

僅輸出所選模式要求的文件:

  • TEARDOWN.md:真實實作、證據等級與可轉移技術
  • DESIGN_DNA.json:為創意重建而準備的設計系統、視覺語言與效果
  • REPLACE_GUIDE.md:文字、媒體、顏色、字型、模型與資料的置換位置
  • CLONE_REPORT.md:原始碼與本地版本的比較、取捨與已知缺口
  • 可運行的專案、建置指令與部署備註

對於進階資產案例(例如烘焙入 GLTF/GLB 幾何的內嵌文字),請閱讀 references/special-cases.md,而不是擴充主要工作流程。

9. 僅在需要時強化

對於維護中的專案或正式環境復原,安裝螢幕截圖回歸執行器:

python scripts/install_ci.py <project-root> --source-url <canonical-url>

對於一次性的拆解或學習練習,CI 是選用的。當安裝時,即使閾值失敗,它也必須上傳螢幕截圖、差異與報告。

10. 誠實地結案

  • 重新執行飛行前檢查中承諾的建置與 QA 情境。
  • 記錄已知缺口與下一個所需的證據;絕不發明成功的互動。
  • 在發布改編版本前,移除追蹤與原始品牌殘留。
  • 留下乾淨的 Git 檢查點;未經使用者授權絕不推送。
  • 區分原始想法、重複使用的授權資產、觀察到的行為與你自己的實作。

相關技能