Figma 每日摘要
將「我今天在 Figma 改了什麼」轉換為一份簡短的實際編輯清單,透過比對檔案今日之前的最後存檔版本與最新存檔版本,逐頁進行差異分析。Figma 沒有每個使用者的操作日誌,因此這種差異比對是取得編輯層級細節的唯一方式。
輔助腳本:scripts/figma_resume.py(與此檔案位於同一目錄,標準 Python 函式庫,輸出 JSON 格式)。
設定檔存放在 ~/.config/figma-daily-resume/(包含 config.json 與 token)。
執行模式
- 無
config.json或無 Token → 設定模式。 - 使用者說「執行」、「摘要」、「今天」,或排程器觸發你 → 每日執行模式。
- 使用者說「重新設定」/「變更頁面/檔案」 → 重新執行相關的設定問題。
設定
依序一次問一個問題,直到目前問題解決後才繼續下一個。
1. Token
解釋如何取得 Token,然後讓使用者自行儲存:
- Figma → 帳號選單(左上角)→ 設定 → 安全性 → 個人存取權杖 → 產生新權杖。
- 命名為
daily-resume,有效期依使用者喜好,並授予唯讀範圍:file_content:read、file_metadata:read、file_versions:read、file_comments:read。 - 立即複製;Figma 只顯示一次。
- 儲存到只有使用者能看到的檔案。請使用者在自己的終端機中執行下列指令(使用編輯器可避免 Token 留在 shell 歷史記錄中):
mkdir -p ~/.config/figma-daily-resume && chmod 700 ~/.config/figma-daily-resume && touch ~/.config/figma-daily-resume/token && chmod 600 ~/.config/figma-daily-resume/token && open -e ~/.config/figma-daily-resume/token然後貼上 Token,儲存後關閉。
使用檔案而非環境變數,是因為排程執行時不會載入 ~/.zshrc。
絕對不要在聊天中要求 Token,也不要顯示或 cat 它。如果使用者還是貼上 Token,請直接說明,繼續進行,並建議在結束時撤銷並重新產生。
使用 python3 scripts/figma_resume.py whoami 驗證(會印出使用者名稱/Email,絕不會顯示 Token)。
2. 檔案
詢問 Figma 檔案網址(figma.com/design/<KEY>/...)。針對每個網址執行 figma_resume.py pages <url>,並記下檔案名稱。
3. 頁面
顯示每個檔案的頁面清單,並詢問使用者實際編輯的頁面。說明成本:一個大型頁面可能超過 100 MB,大約需要一分鐘進行差異比對,因此只選擇使用者真正編輯的頁面。一次最多詢問幾個頁面;如果頁面名稱明顯,建議先選主題/UI 頁面。
4. 輸出方式
僅終端機、Markdown 檔案(預設 ~/Documents/figma-resumes/YYYY-MM-DD.md),或 Notion 頁面(僅在已連線 Notion 工具時提供)。儲存選擇。
5. 排程
詢問每天幾點執行。排程必須在本機執行,因為 Token 和設定檔都在這台機器上,雲端服務無法存取。依下列順序選擇:
- Claude Desktop 排程任務(本機):請使用者建立一個每日任務,提示詞為
/figma-daily-resume run。如果你能從此處看到如何建立,請直接操作;如果不能,請提供確切的步驟和提示詞,避免猜測 UI。 - macOS launchd/cron 替代方案:執行
claude -p "/figma-daily-resume run --unattended"。 - 請勿使用 CronCreate:它僅限會話期間使用,且 7 天後到期。
排程應放在最後執行,這樣如果 Token 無效或頁面 ID 錯誤,可以在自動化之前就發現。然後執行一次實際執行(見下文),讓使用者在完成前看到結果。
config.json
{"files": [{"key": "YOUR_FILE_KEY", "name": "My App",
"pages": [{"id": "0:1", "name": "Light Theme"}]}],
"output": {"type": "file", "path": "~/Documents/figma-resumes"},
"schedule": "18:00"}
每日執行
- 先詢問目標(僅在
--unattended或無人回應時跳過):顯示已儲存的檔案/頁面,並詢問「與上次相同,還是要變更?」。接受新增/移除(如「也包含 Dashboard de cambios」、「今天跳過 Sakura」)。單次變更僅適用於今天,除非使用者要求儲存。 - 對於每個檔案,針對每個選定的頁面集合執行:
python3 scripts/figma_resume.py diff <key> --pages <ids>(加上--date可指定過去日期)。 將檔案在背景執行並稍後檢查,因為每個頁面大約需要一分鐘。同時執行comments <key>以取得今天撰寫或解決的留言。 - 讀取
status:no_versions_today:Figma 今天未儲存版本,因此回報該檔案「無已儲存變更」。儲存是週期性的(閒置時間或手動),最近編輯可能尚未儲存。no_baseline:該檔案沒有今日之前的版本,無從比對;請說明。ok:總結changes。
- 寫入摘要,然後傳送到設定的輸出方式。
撰寫摘要
依檔案 → 頁面 → 頂層框架(frame)分組。每個編輯一個項目符號,使用使用者自己的詞語,並採用資料中的確切字串。過濾雜訊;重點在於易於掃讀。
Figma 摘要, 2026-09-21
My App / Light Theme UI
Insights
• 輸入文字:"Brekdown by member" -> "Breakdown by member"
• 變更「Card bg」顏色:#ffffff -> #f5f5f5
• 新增框架「Empty state」(12 個節點)
留言:撰寫 2 則,解決 1 則
保持誠實的規則:
- 類型:
text= 輸入文字,fill/stroke= 變更顏色,renamed= 重新命名,resized= 調整大小,added/deleted= 新增/刪除(子樹根節點附帶節點計數,非每個子節點)。 - 多個相似編輯(如相同顏色在 40 個節點上更換):一個項目符號加上計數。
- 這是兩個儲存版本之間的淨差異。因為在儲存之間進行的編輯和還原動作是隱形的,所以請說「淨變更」一次。不要聲稱比這更高的精確度。
- 切勿編造意圖(如「改善層級結構」)。僅描述變更內容。
- 如果
editors包含其他人,請說明部分變更可能不是使用者的。 - 當天有儲存但無差異:「已儲存版本但在這些頁面上沒有可見差異」(編輯可能在其他頁面 — 建議擴大頁面範圍)。
失敗處理
- HTTP 401/403:Token 已過期、已撤銷或缺少權限範圍。將使用者導回設定步驟 1。
- 大型頁面超時:重試一次,然後回報哪個頁面失敗,而不是默默忽略。
- 切勿顯示 Token,也不要將其寫入
~/.config/figma-daily-resume/token以外的任何檔案。