Communitygithub.com

figma-daily-resume

Figmaでの1日の変更内容を、「'Breakdown by member' と入力」や「色を #0000ff → #ff0000 に変更」といった具体的な編集として日次レポートにまとめます。選択したページについて、Figma REST API経由で保存されたファイルバージョンの差分を取得します。初回セットアップ(Figmaトークン、ファイル、ページ、出力先、スケジュール)と毎日の実行を行います。

figma-daily-resume とは?

figma-daily-resume は、ユーザーが Figma で行った1日の変更を、具体的で読みやすい編集リストとして提供する AI エージェントスキルです。Figma にはユーザーごとのアクションログがないため、このスキルは Figma REST API を通じて、今日より前に保存された最終バージョンと最新バージョンの差分をページ単位で比較します。これにより、「'Breakdown by member' と入力」「色を #ffffff から #f5f5f5 に変更」「フレーム 'Empty state' を追加(12ノード)」といった粒度の編集内容を抽出できます。 初回利用時は、Figma の Personal Access Token の発行手順を案内し、設定ファイル(~/.config/figma-daily-resume/)に安全に保存させます。その後、監視する Figma ファイルのURL、アクティブに編集するページ、出力形式(ターミナル、Markdownファイル、Notionページ)、毎日のスケジュール時刻を順に尋ねます。スケジュール実行は Claude Desktop のタスク機能か、macOS の launchd/cron を使用し、クラウドベースの定期実行はトークンと設定がローカルに存在するため使用しません。 毎日の実行では、設定されたファイルとページに対して `python3 scripts/figma_resume.py diff` をバックグラウンドで実行し(各ページ約1分)、変更の有無を確認します。結果はファイル・ページ・トップレベルフレームごとにグループ化され、ノイズを抑えたスキャンしやすい箇条書きで出力されます。また、その日に作成・解決されたコメントも `comments` サブコマンドで取得し、レポートに含めます。このスキルはClaude CodeやClaude Desktop上で動作し、`/figma-daily-resume` コマンドや「今日 Figma で何を変更した?」といった自然言語の指示で起動できます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ignasave/figma-daily-resume/tree/main/figma-daily-resume

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Figma daily resume

「今日 Figma で変更した内容」を、ファイルの今日より前の最終保存バージョンと最新保存バージョンをページごとに比較することで、実際の編集内容の短いリストに変換します。Figma にはユーザーごとの操作ログがないため、この差分だけが編集レベルの詳細を取得する唯一の方法です。

ヘルパー: scripts/figma_resume.py(stdlib Python、JSON 出力) 設定は ~/.config/figma-daily-resume/(config.json、token)にあります。

どのモード?

  • config.json がない、またはトークンがない → セットアップ。
  • ユーザーが「実行」「レジューム」「今日」と言った、またはスケジューラーが起動した → 日次実行。
  • ユーザーが「再設定」/「ページ/ファイルの変更」と言った → 関連するセットアップの質問をやり直します。

セットアップ

この順序で一度に1つの質問をしてください。現在の質問が解決するまで次に進まないでください。

1. トークン

取得方法を説明し、ユーザー自身で保存してもらいます:

  1. Figma → アカウントメニュー(左上)→ 設定 → セキュリティ → 個人アクセストークン → 新しいトークンを生成。
  2. 名前を daily-resume にし、有効期限はお好みで、読み取り専用スコープ file_content:read、file_metadata:read、file_versions:read、file_comments:read を付与します。
  3. すぐにコピーします。Figma は一度しか表示しません。
  4. 自分だけが見られるファイルに保存します。以下のコマンドをユーザー自身のターミナルで実行してもらいます(エディタを使用することで、トークンがシェルの履歴に残るのを防ぎます): 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. スケジュール

毎日の時刻を尋ねます。スケジュール実行はローカルである必要があります。トークンと設定がこのマシン上にあり、クラウドルーチンからは見えないためです。次の優先順位で選択します:

  1. Claude Desktop のスケジュールタスク(ローカル):ユーザーに、プロンプト /figma-daily-resume run を使用した日次タスクを作成してもらいます。ここから作成方法がわかる場合は実行し、わからない場合は、UI を推測するのではなく、正確な手順とプロンプトを伝えます。
  2. macOS launchd/cron の代替:claude -p "/figma-daily-resume run --unattended" を実行します。
  3. 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"}

日次実行

  1. 最初に対象を確認(--unattended の場合、または誰も答えない場合のみスキップ):保存されたファイル/ページを表示し、「前回と同じですか、それとも変更しますか?」と尋ねます。追加/削除を受け付けます(「Dashboard de cambios も追加」、「今日は Sakura をスキップ」など)。1回限りの変更は、ユーザーが保存を指示しない限り、今日のみ適用されます。
  2. 各ファイルについて、選択された各ページセットに対して、以下を実行します: python3 scripts/figma_resume.py diff <key> --pages <ids>(過去の日の場合は --date を追加)。 各ページの処理に約1分かかるため、ファイルはバックグラウンドで実行し、後で確認します。また、今日作成または解決されたコメントについては comments <key> も実行します。
  3. status を読み取ります:
    • no_versions_today:Figma が今日保存したバージョンがないため、そのファイルについては「保存された変更はありません」と伝えます。保存は定期的(アイドル時間または手動)に行われるため、最近の編集がまだ保存されていない可能性があります。
    • no_baseline:ファイルに今日より前のバージョンがないため、差分を取るものがありません。その旨を伝えます。
    • ok:changes を要約します。
  4. レジュームを作成し、設定された出力先に配信します。

レジュームの作成

ファイル → ページ → トップレベルのフレーム(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 以外のファイルに書き込まないでください。

関連スキル