| name | sync-notion |
| description | config.yamlで指定されたNotionページを取得し、ページごとのカスタムpromptに従ってvaultに書き出す |
| user-invocable | true |
| argument-hint | (引数なし) |
| allowed-tools | ["Read","Write","Edit","Bash","Grep","Glob","ToolSearch","mcp__claude_ai_Notion__notion-fetch","mcp__claude_ai_Notion__notion-get-comments","mcp__claude_ai_Notion__notion-search"] |
sync-notion
config.yaml の notion.watch_pages で指定された Notion ページを取得し、
ページごとに設定されたカスタム prompt に従って vault に書き出す。
Output
ページごとの prompt 指定による(inbox/notion/ や snapshot/ など)
Configuration
リポジトリルートの config.yaml から設定を読み取る。
notion:
watch_pages:
- url: "https://www.notion.so/xxxxx"
prompt: |
このページはスプリント計画の議事録です。
snapshot/{作成日}/notion-sprint-plan.md に要点をまとめて書き出してください。
- 決定事項を箇条書きで抽出
- アクションアイテムと担当者を明記
- url: "76ef9eff7d174ccca3a199c44bd83f98"
prompt: |
このDBの各ページはメモです。
inbox/notion/{slug}.md に構造化して書き出してください。
config フォーマット
| フィールド | 必須 | 説明 |
|---|
url | はい | Notion ページの URL または ID |
prompt | はい | ページ取得後に実行するカスタム指示 |
prompt 内で使える変数(スキルが自動で展開する):
{vault.path} — vault のパス
{page_title} — ページタイトル
{page_url} — ページの Notion URL
{page_id} — ページ ID
{created_date} — ページ作成日(YYYY-MM-DD)
{today} — 実行日(YYYY-MM-DD)
{slug} — ページタイトルから生成したスラッグ
Procedure
1. 設定の読み込み
config.yaml を読み、vault.path と notion.watch_pages を取得する。
date コマンドで現在日時を取得する。
2. 各ページの処理
notion.watch_pages の各エントリについて順に処理する:
a) Notion ページの取得
notion-fetch(id={url}, include_discussions=true) でページ内容を取得する。
必要に応じて notion-get-comments(page_id={ID}, include_all_blocks=true) でコメントも取得する。
url が DB / データソース(collection://...)の場合: notion-fetch はスキーマのみを返すため、対象ページは prompt の指示に従って特定する。DB 内の特定ページを絞り込むには notion-search(data_source_url={collection-url}, query=...) を使い、ヒットしたページを notion-fetch で個別取得する。最新の1件が欲しい場合はタイトルの日付や期間で判断する。
b) 変数の展開
prompt 内の変数を実際の値に置き換える。
c) prompt の実行
展開された prompt に従って、取得したページ内容を処理する。
prompt が指示する内容に従い:
- 指定されたパスにファイルを書き出す
- 指定されたフォーマットで整形する
- 指定されたフィルタリング・抽出を行う
3. vault へのコミット
全ページの処理完了後、scripts/commit-vault.sh を実行する。
bash scripts/commit-vault.sh
Rules
- prompt がファイルパスを指定していない場合のデフォルト:
inbox/notion/{slug}.md
- prompt の指示を最優先する。スキルのデフォルト動作より prompt が優先
- Notion ページの全文コピーはしない(prompt で明示的に指示されない限り)
- ページ末尾に Notion リンクを必ず記載する
- frontmatter は出力先に合わせる(snapshot なら
auto_generated: true、context なら false)
watch_pages が空配列 or url が空文字の場合はスキップする
ソース忠実性(最重要・記憶補完の禁止)
固有名詞・定義・一覧(行動指針/バリュー、グレード定義、制度名、メンバー名、数値など)は、
必ず fetch したソースに書かれている内容のみを転記する。
- 訓練知識・過去の記憶・古いキャッシュで補完しない。 「たしか〜だったはず」で埋めるのは禁止。
社内の定義は改定されている可能性が常にある(例: 行動指針は 2025-05-28 に旧バリューから刷新済み)。
- 正典テキストは要約・言い換えで改変しない。 行動指針・バリュー・定義・グレード定義など、
ソースが「正」となる確定テキストは、自分の言葉で要約せず原文どおり転記する。
(要約してよいのは議事録・進捗のような流動情報のみ。「○○とは何か」の定義文は原文を保つ)
- prompt が求める項目がそのページに載っていない場合は、勝手に埋めず以下のいずれかにする:
- その項目が正典として存在する別の Notion ページを fetchして取得する
(prompt にソース URL が指定されていればそれを使う)
- それも無ければ、その項目は省略するか「ソースに記載なし」と明記する
- 1ファイル内でソースが複数ページにまたがる場合は、各セクションに参照元リンクを付け、
どの情報がどのページ由来か追えるようにする。