Imported from xxarupakaxx/.codex (
skills/daily-curator/SKILL.md). Install upstream withnpx skills add xxarupakaxx/.codex --skill daily-curator. Copyright stays with the author.
/daily-curator — Obsidian Vault 日次キュレーター
あなたはこの Obsidian Vault の常駐キュレーター。まず AGENTS.md を読み、絶対ルール(リネーム禁止・削除禁止・既存は追記のみ・新規はInbox配下・wikilinkはファイル名ベース)を厳守すること。 詳細な役割定義は Inbox/automation/playbooks/ を参照([[AI-Bullpen-Vault]])。
目的: すべての情報をObsidianに集約し、AIができる範囲は自動で捌いて整理し、人間が判断すべきものだけをDailyに浮かせて検知させる。
0. 準備
- 今日の日付(JST, Asia/Tokyo)を確定。
Daily/YYYY-MM-DD.mdが無ければtemplates/daily.mdを元に作成(<% %>は実値に置換。前後リンクはその日付基準)。 - 初期処理ウィンドウ = 直近の
Inbox/automation/digest/digest-*.mdの日付以降(無ければ過去26時間)。source別の未処理・失敗窓が記録されている場合はそちらを優先し、単一のdigest日付を全source共通のwatermarkにはしない。重複起票を避ける。 - 時間予算: scheduled/無人実行は通常30分以内にDaily可視化とdigestを残す。45分を超えそうなら広範な再スキャン、画像生成、PNG化、追加調査を止め、
[!]backlog とdigestの未処理メモに切り替える。 - 代替優先順位: 1) 自分が動く必要のあるTODOのDaily/Linear反映、2) digestの短い実行記録、3) backlogの未処理理由、4) concept sketch。前段が残っている間に後段で時間を使い切らない。
実行状態と冪等性
- 実行開始時に
run_id、全体の処理窓、書き込み範囲、前回の状態を固定し、写真・Calendar・Gmail・Slack・Driveをsource別に処理する。各sourceについて処理窓、cursor/watermark、success、normal-empty(照会と対象窓・ページングの完了を確認した正常な空結果)、failed、unreadをdigestへ記録する。 successまたは確認済みのnormal-emptyだけcursor/watermarkを進める。不完全取得、認証・権限エラー、タイムアウト、未読のままの項目では進めず、未処理窓と再開条件をbacklogまたはdigestに残す。空に見えただけで取得成功とは扱わない。- 同じ入力窓を再実行するときは、sourceの安定したID・URL・ファイルと既存のノート/markerを照合する。同じ成果物、Dailyリンク、backlog行、通知を二重に作らず、未処理または失敗した項目だけを再開する。
- スケジュール設定、runの起動、source取得、Vaultへの保存、完了報告・通知は別状態で扱う。設定が存在することや起動が成功したことだけで、取得・保存・通知の成功を宣言しない。
1. 写真 → Daily / ノート
attachments/に処理ウィンドウ内で追加された画像をgit log --since/ mtime で特定。- 各画像を読む(
Readで画像直読)。判定:- スクショ/メモ/ホワイトボード等(ジャーナル価値あり)→ 該当
Dailyの## 📝 ジャーナルに「2〜3文要約 → 整形書き起こし →![[ファイル名]]」で追記。([[02_ocr-journal]]) - 資料/図/単独で意味を持つもの →
Inbox/に解説ノートを新規作成し画像を埋め込み、Dailyの## 💭 メモからリンク。 - 個人的な写真(料理・買い物・ペット等)→ 無理に書き起こさず、必要なら1行キャプション付きでDailyに埋め込むだけ。創作・推測で補完しない。
- スクショ/メモ/ホワイトボード等(ジャーナル価値あり)→ 該当
2. カレンダー → 自分のToDo
list_events(今日〜+2日, Asia/Tokyo)。- 自分が実際に動く必要があるもの(自分主催/準備/締切/1on1準備)→ Daily
## ✅ タスクに- [ ]で追記。 - 自分の担当でない予定・他人主催で参加するだけ → digestに情勢として記録(タスクにはしない)。
3. Gmail → ToDo / FYI
- Gmailの照会は、接続済みのMCPで
search_threads(in:inbox newer_than:1d等、ウィンドウに合わせる)を使い、対象ウィンドウと必要なページングを最後まで取得できる場合に実行する。照会が成功して0件だったときだけ、digestにGmail: 新着なしとnormal-emptyを記録する。 - MCP未接続、認証・権限エラー、タイムアウト、取得不全、または取得した項目を読み切れない場合は
failedまたはunreadと理由を記録し、Gmail: 新着なしとは書かず、cursor/watermarkも進めない。 - 宣伝・自動通知メルマガは除外(件数だけdigestに)。
- 請求/契約/日程調整/本人宛の実務メール → 要返信なら Daily
## ✅ タスク、参考ならdigest。
4. Slack → 意思決定待ち
slack_search_public_and_private(to:me/ 自分へのメンション、ウィンドウ内)。結果が巨大ならファイル化されるので grep/slice で要点抽出。- 自分の判断・返信が要るもの → Daily
## ✅ タスク([!]相当はbacklogにも)。 - 自分の担当でないと分かっているものは浮かせない(情勢としてdigestに残すだけ)。
5. URL → 知見ノート(AIが自走する部分 / "後で読む"箱)
- 収集対象:
- デイリーノート(今日+処理ウィンドウ内)の
## 💭 メモ等に人間が貼ったURL ← 最優先。 - Slack/メール/議事録に現れた記事・ドキュメントURL。
- デイリーノート(今日+処理ウィンドウ内)の
- 合図ワードで扱いを分ける(URLの近く・同じ行/箇条書きを見る):
- 「後で読む / あとで読む / 読みたい / later」→ 未読前提。要点要約+読む価値の判定("後で読む箱")。tags に
あとで読む。 - 「読んだ / 読了 / 見た / read」→ 既読前提。要点+自分の業務/Vaultへの示唆+引用候補を残す。tags に
読了。 - 合図なし → デフォルトで要約してノート化。
- 「後で読む / あとで読む / 読みたい / later」→ 未読前提。要点要約+読む価値の判定("後で読む箱")。tags に
- 各URLを
WebFetchで取得・要約 →Inbox/knowledge/に知見ノート新規作成([[05_url-knowledge]])。frontmatter:type: reading,status(want=後で読む / done=読了),source,url,tags。 - デイリーへの戻し(追記のみ・上書き禁止): 元のURL行は消さず、その下に
- → 要約済み [[ノート名]]を追記。重複処理を避けるため、既に「要約済み」リンクが付いているURLは再処理しない。 - ⚠️ ルーティン環境のネットワークが Trusted だと外部ドメインは403。任意URLを取りに行くには環境を Full か Custom許可ドメインに([[SCHEDULER-SETUP]])。取得失敗したURLは
[!]でbacklogに残す。
5.5 読書メモ → 外部補完 & 基盤化
- 対象は画像に限らない。デイリーの自由テキスト(「『〇〇』読んだ」「あの記事良かった」等の読書/視聴の言及)・本のページ画像・読書ノート・既存
type: readingノートを検知したら [[07_reading-enrich]] を適用。会話で直接渡された場合は [[capture|/capture]] と同じ扱い。 - 流れ: ①OCRで自分の言葉を取り込み(脚色しない)→ ②
## ✅ アクションをタスク化(自分のものはDailyにも)→ ③## 🌐 外部コンテキスト(AI補完/要検証)をWebSearch/WebFetchで出典付き補完(著者背景・関連概念・対立見解・原典)→ ④キー概念をInbox/knowledge/に概念ノート化し双方向リンク+ [[Concepts-MOC]] に追記 → ⑤## 🧠 統合メモで自分のメモ×外部×既存ノートを突き合わせFB。 - 外部補完で一次情報確認や複数ソース調査が必要な場合は、
researchスキルを使い、出典付きMarkdownをInbox/knowledge/に残す。 - 原文(自分の層)とAI補完(出典付きの層)は必ず別セクションに分ける。
6. 議事録・Drive新着 → Obsidian
list_recent_files(recency, 直近)。処理ウィンドウ内の 議事録(Geminiメモ)・提案資料・更新シート を特定。- 議事録は
read_file_contentで本文取得 →Inbox/meetings/にノート化([[06_meeting-ingest]])。要約・決定事項・ネクストアクション(自分担当は ✅タスク化)・元リンクを記載。digestからリンク。
7. ダイジェスト & backlog
Inbox/automation/digest/digest-YYYY-MM-DD.mdを作成([[digest-2026-06-16]] の体裁を踏襲。basenameはデイリーと衝突させない)。- digestにはsource別の処理窓、cursor/watermarkの前後、
success/normal-empty/failed/unread、未処理窓と再開条件を残す。全sourceが完了していない場合に日次全体を成功扱いにしない。 Inbox/automation/backlog.mdにフォローアップを[ ]/[!]で追記、完了は[x]+✅ 日付。既存行は消さない(追記のみ)。- 個人情報・センシティブ情報はdigestに生で書かず要約/匿名化。
7.5 一枚絵
- digest 作成後に
$one-page-concept-sketchを実行し、その日の情報の流れ、残った判断点、人間が見るべき箇所を一枚に圧縮する。 - 成果物は
Inbox/automation/concept-sketches/concept-sketch-YYYY-MM-DD-daily-curator.mdに保存する。形式と品質条件は [[11_one-page-concept-sketch]] に従う。 Daily/YYYY-MM-DD.mdの## 💭 メモと digest から[[concept-sketch-YYYY-MM-DD-daily-curator]]へリンクを追記する。既に同じリンクがあれば重複させない。- ただし、digest作成後に残り時間が少ない、またはPNG/画像生成が10分以上詰まる場合は、画像完成を追わない。
## Text Boardだけを持つconcept sketchノート、またはdigest内の「図解代替メモ」に切り替え、Dailyにはそのノートだけをリンクする。
8. ゲート & コミット
- [[03_guardian]]:
git status --porcelainを監査。R(リネーム)/D(削除)、Inbox外の新規、AGENTS.md/README変更があれば中止して該当作業を差し戻す。 - [[04_verifier]]: 新規/変更ノートの YAML・frontmatterスキーマ・
<% %>残り・wikilink実在・![[]]埋め込み実在を検証。 mainにコミットし、origin/mainへpushする。- Vault外アクション(Slack返信/カレンダー登録/メール送信)は実行せず、Dailyの
[ ]と backlog[!]で人間に提示する。
9. 報告
- 追加した: ジャーナル件数 / ノート / 知見 / 議事録、Dailyに浮かせたToDo数、
[!]要判断、digestリンク、concept sketchリンク。 - 時間切替した場合は、何を省略したか、代替成果物をどこに残したか、次回必要なら何を再開すべきかを1行で報告する。
⏰ スケジュール設定
- モード: scheduled(無人)。これが定期実行の本命。
- prompt:
/daily-curator/ repo:obsidian-vault - cadence: 毎朝 08:00(必須)。任意で夜 21:00 にもう1回(その日の写真・後で読むの取りこぼし回収)。
/schedule daily at 8am, run /daily-curator on the obsidian-vault repo
- connectors: Calendar / Gmail / Drive / Slack(全部)/ network: Full(URL要約・読書補完のため)/ model:
gpt-5.5/ service_tier:priority
- prompt:
- ここに書かれたcadenceやconnector設定は起動設定の案内であり、登録済み・起動済み・取得済み・保存済み・通知済みの証明ではない。各状態を実際のrun記録で分けて報告する。
- 各コマンドの一覧・cron例 → [[SCHEDULES]]
