Figma daily resume
「今日 Figma で変更した内容」を、ファイルの今日より前の最終保存バージョンと最新保存バージョンをページごとに比較することで、実際の編集内容の短いリストに変換します。Figma にはユーザーごとの操作ログがないため、この差分だけが編集レベルの詳細を取得する唯一の方法です。
ヘルパー: scripts/figma_resume.py(stdlib Python、JSON 出力)
設定は ~/.config/figma-daily-resume/(config.json、token)にあります。
どのモード?
config.jsonがない、またはトークンがない → セットアップ。- ユーザーが「実行」「レジューム」「今日」と言った、またはスケジューラーが起動した → 日次実行。
- ユーザーが「再設定」/「ページ/ファイルの変更」と言った → 関連するセットアップの質問をやり直します。
セットアップ
この順序で一度に1つの質問をしてください。現在の質問が解決するまで次に進まないでください。
1. トークン
取得方法を説明し、ユーザー自身で保存してもらいます:
- Figma → アカウントメニュー(左上)→ 設定 → セキュリティ → 個人アクセストークン → 新しいトークンを生成。
- 名前を
daily-resumeにし、有効期限はお好みで、読み取り専用スコープfile_content:read、file_metadata:read、file_versions:read、file_comments:readを付与します。 - すぐにコピーします。Figma は一度しか表示しません。
- 自分だけが見られるファイルに保存します。以下のコマンドをユーザー自身のターミナルで実行してもらいます(エディタを使用することで、トークンがシェルの履歴に残るのを防ぎます):
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その後、トークンを貼り付け、保存して閉じます。
スケジュール実行では ~/.zshrc が読み込まれないため、環境変数ではなくファイルを使用します。
チャットでトークンを尋ねたり、エコーや cat 表示したりしないでください。ユーザーが誤って貼り付けた場合は、その旨を率直に伝え、続行し、最後にトークンを失効させて再生成することを推奨します。
python3 scripts/figma_resume.py whoami(ハンドル/メールアドレスを表示、トークンは表示しない)で確認します。
2. ファイル
Figma ファイルの URL(figma.com/design/<KEY>/...)を尋ねます。それぞれについて
figma_resume.py pages <url> を実行し、ファイル名を確認します。
3. ページ
各ファイルのページ一覧を表示し、アクティブに編集しているページを尋ねます。コストを説明します: 大きなページは 100 MB 以上になる可能性があり、差分の取得に約1分かかるため、実際に作業するページのみを選ぶよう促します。一度に多くても数ページ程度を尋ね、名前から明らかな場合はテーマ/UI ページを最初に提案します。
4. 出力
端末のみ、Markdown ファイル(デフォルト ~/Documents/figma-resumes/YYYY-MM-DD.md)、または Notion ページ(Notion ツールが接続されている場合のみ提供)。選択内容を保存します。
5. スケジュール
毎日の時刻を尋ねます。スケジュール実行はローカルである必要があります。トークンと設定がこのマシン上にあり、クラウドルーチンからは見えないためです。次の優先順位で選択します:
- Claude Desktop のスケジュールタスク(ローカル):ユーザーに、プロンプト
/figma-daily-resume runを使用した日次タスクを作成してもらいます。ここから作成方法がわかる場合は実行し、わからない場合は、UI を推測するのではなく、正確な手順とプロンプトを伝えます。 - macOS launchd/cron の代替:
claude -p "/figma-daily-resume run --unattended"を実行します。 - CronCreate は使用しないでください。セッション限定で、7日後に期限切れになります。
スケジュールは最後に行います。これにより、トークンが壊れていたり、ページ ID が間違っていたりする場合でも、自動化する前に問題が見つかります。その後、実際の実行を1回行い(下記参照)、ユーザーが終了前に結果を確認できるようにします。
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 をスキップ」など)。1回限りの変更は、ユーザーが保存を指示しない限り、今日のみ適用されます。 - 各ファイルについて、選択された各ページセットに対して、以下を実行します:
python3 scripts/figma_resume.py diff <key> --pages <ids>(過去の日の場合は--dateを追加)。 各ページの処理に約1分かかるため、ファイルはバックグラウンドで実行し、後で確認します。また、今日作成または解決されたコメントについてはcomments <key>も実行します。 statusを読み取ります:no_versions_today:Figma が今日保存したバージョンがないため、そのファイルについては「保存された変更はありません」と伝えます。保存は定期的(アイドル時間または手動)に行われるため、最近の編集がまだ保存されていない可能性があります。no_baseline:ファイルに今日より前のバージョンがないため、差分を取るものがありません。その旨を伝えます。ok:changesを要約します。
- レジュームを作成し、設定された出力先に配信します。
レジュームの作成
ファイル → ページ → トップレベルのフレーム(frame)でグループ化します。編集ごとに1つの箇条書きを、ユーザー自身の言葉で、データの正確な文字列を使用して記述します。ノイズを排除します。要点はスキャンしやすくすることです。
Figma resume, 2026-09-21
My App / Light Theme UI
Insights
• typed: "Brekdown by member" -> "Breakdown by member"
• changed color on "Card bg": #ffffff -> #f5f5f5
• added Frame "Empty state" (12 nodes)
Comments: wrote 2, resolved 1
正確さを保つルール:
- 種類:
text= 入力、fill/stroke= 色変更、renamed、resized、added/deleted(子ノード数を含むサブツリールート。すべての子ノードではありません)。 - 多くの類似した編集(40ノードに同じ色を適用):1つの箇条書きに件数を含めます。
- これは2つの保存バージョン間の正味の差分です。保存の間に作成され元に戻された編集は見えないため、「正味の変更」と一度言います。それ以上の精度を主張しないでください。
- 意図をでっち上げないでください(「階層を改善」)。変更されたものだけを説明します。
editorsに他のユーザーが含まれている場合は、変更の一部がユーザー自身のものではない可能性があることに言及します。- 保存がある日の差分が空の場合:「これらのページには保存されたバージョンはあるが、目に見える違いはありません」(編集が別のページにある可能性があります。ページを拡張することを提案します)。
失敗処理
- HTTP 401/403:トークンの期限切れ、失効、またはスコープ不足。ユーザーをセットアップステップ1に戻します。
- 巨大なページでのタイムアウト:1回再試行し、それでも失敗した場合は、そのページを黙って落とさずに、どのページが失敗したかを報告します。
- トークンを決して表示せず、また
~/.config/figma-daily-resume/token以外のファイルに書き込まないでください。