以前「Obsidianを使い始めて半年が経過した」という下書きを作って放置していたのだが、その間にVaultの自動化がどんどんエスカレートしていき、気づいたら当初書こうとしていた内容とは全く別の話になっていたのでこのタイミングで書き直す。
自分のObsidian Vaultをかなりアップデートしたのでその記録。
前提:自分のObsidian Vaultの構成
自分はObsidianのVaultをまるごとGitHubのPrivateリポジトリで管理している。日報(DailyNote)、週報、月報、ナレッジノート、タスク管理、会議メモなど全部入り。
DailyNoteには日記だけではなく、タスク、業務委託先の稼働記録、行動記録(Google Calendar連携)、ヘルスデータ、つぶやきなどを集約していて、1日の全てがここに集まる設計にしている。
GitHubリポジトリにしている恩恵として、GitHub Actionsでワークフローを回してノートの自動生成や各種データの同期をやっている。加えて最近はClaude Codeのスキル(スラッシュコマンド)を自作して、ターミナルからVaultの操作ができるようにしている。
また、スマホからObsidianアプリを使うのは厳しい(Gitを使っていると特に)(加えてAndroidだとCloneしたリポジトリ開くとアプリがクラッシュする、何故か)ので、GitHub Issueに書き込むことでGitHub Actionsのワークフローで各種操作が行えるようにしてPC環境ではObsidianアプリ、その他はGitHub Issueからという集約を行った。
GitHubにClaude Code Botも入れているので、IssueからClaudeに「このタスク明日にリスケしておいて」という指示でアップデートも可能になった。
繰り返しタスクの自動管理
今回のアップデートで一番デカかったのがこれ。
自分はObsidian Tasksプラグインを使ってタスク管理をしているのだが、繰り返しタスク(毎週火曜にやるやつとか、毎月15日のやつとか)をGitHub Issue側からも完了操作できるようにした。
タスクに繰り返しパターン(「毎日」「毎週火・金」「毎月第2木曜」など)を書いておくと、Issue上でチェックを入れた瞬間にGitHub Actionsが走って、次の実行日を計算して新しいタスクを自動生成してくれる。
Obsidian上でチェックを入れた場合はTasksプラグインが同じことをやってくれるのだが、問題はスマホから操作するときで、ObsidianのモバイルアプリよりGitHub Issueにコメントを打つ方が圧倒的に手軽だった。スマホからIssueにコメントするだけでタスクの追加・完了ができるのは想像以上に便利で、これのおかげでタスクの取りこぼしが体感で減った。
ここで地味に効いているのがiOSショートカットとの連携で、ショートカットからDaily Issueにコメントを投稿するようにしている。タスク登録もつぶやきの記録もショートカットからIssueに書き込めば、あとはGitHub Actionsのワークフローが発火してObsidianのノートに反映してくれる。iPhoneのホーム画面からワンタップでタスク追加、みたいなことができるようになった。
未設定タスクの可視化
前はタスクを追加するときに予定日と締切日を自動で当日に入れていたのだが、これをやめた。
理由は単純で、適当な日付が入っているよりも「未設定」であることが明示されていた方が後から見返したときに正しい判断ができるから。自動で今日の日付を入れてしまうと、本当にその日にやるべきタスクなのか、ただ登録しただけなのかが区別できなくなっていた。
代わりにDailyNoteとDaily Issue上に「日付が未設定のタスク」を一覧表示するセクションを設けた。未設定のタスクが目に入るので、朝の段階で「これ今日やるか」「これは来週でいいか」を判断して日付を入れるフローになった。
地味な変更だが運用上の効果は大きかった。
ヘルスデータの拡張
元々DailyNoteには体調の主観評価、歩数、睡眠時間あたりを記録していたが、ここに心拍数、体温、入眠時間、起床時間を追加した。
記録方法はタスクと同じでGitHub Issueにコメントするだけ。ここでもiOSショートカットが活躍していて、iOSのヘルスケアからその日の歩数や心拍数を取得してDaily Issueに自動投稿するショートカットを組んでいる。しかもこれはオートメーションで毎晩自動発火するようにしているので、何もしなくてもその日のヘルスデータが勝手にDailyNoteに入る。
週次・月次のノートにも集計セクションを追加して、Dataviewプラグインで平均値や推移を自動計算するようにした。入眠時間の平均計算は少しハマりポイントがあって、深夜1時に寝た日と23時に寝た日を素朴に平均すると昼の12時になってしまう。深夜帯の時刻を補正して計算する処理を入れることで正しい平均が出るようにした。
月次レポートにもヘルスデータの分析を組み込んでいて、「睡眠時間が短い日は心拍数が高い傾向にある」みたいな相関が見えるようになった。自分の体をデータで把握できるのは思った以上に面白い。
朝のタスク・予定通知
毎朝Discordへ今日のタスクとGoogle Calendarの予定を通知するワークフローを作った。
期限切れ・今日締切・今日予定のタスクと、カレンダーから取得した今日の予定が一覧で飛んでくる。
これは最初AI使って生成しようかと思ったが、毎朝のものなのでコストがもったいない。普通にスクリプトを書いてGitHub Actions上で完結させている。朝起きてDiscordを開くだけで今日やるべきことが把握できるので、出社前のバタバタした時間でも取りこぼしが減った。
ちなみに夜にも未入力のヘルスデータや期限が近いタスクの通知を飛ばしている。朝と夜で挟み撃ちにすることでだいぶ生活が回るようになった。
根っこにある考え方
自分はしっかり言語化してノートとしてまとめるのが正直苦手で、元々Twitterで脳みその中身を短文で垂れ流すタイプの人間だった。長文で整理された文章を書こうとすると途端に手が止まる。
だったら日常の頭の中をとにかくハードル低く記録できる仕組みを作って、しっかりまとめたいときはそれらの断片をベースにAIと壁打ちしながらやればいい、という発想でこの環境を整えている。
DailyNoteのつぶやきセクションがまさにそれで、スマホからIssueにぽんと一言書くだけで記録される。140文字以内の脳内ダンプをひたすら溜めておいて、週次や月次のタイミングでClaude Codeに「今週のつぶやきまとめて」と投げると、散らかった断片から自分でも気づいていなかった傾向とか関心の変化を拾ってくれる。
つまりインプットのハードルを限界まで下げて、アウトプットの整理はAIに手伝ってもらう。自分みたいに「記録はしたいけどまとめるのはダルい」というタイプにはこの構成がかなりハマっている。
ちなみにこのPostも、Claude Codeとやりとりして色々構築したりそれらについてつぶやいた結果から下書きを作ってもらって手直しして画像を入れただけであるのはナイショ。でもそんくらいのハードルでこのくらいのPostのノートを作れるくらいには整った。
振り返り
2ヶ月くらいでGitHub Actionsのワークフローが20個近くになり、Claude Codeのスキルも10個くらい生えた。正直やりすぎた感はある。
ただ、毎日使うものを自分好みに自動化していくのは純粋に楽しいし、実際にタスクの取りこぼしやヘルスデータの記録漏れが減ったのは事実で、生活の質が上がった実感がある。
Obsidian + GitHub Actions + Claude Code の組み合わせは、ノートアプリの域を超えて完全にライフログ基盤になっている。この3つの掛け算がうまくハマると「全部自動でやってくれ」が結構な範囲で実現できるので、似たようなことをやりたい人にはおすすめしたい。
まあ、自動化の仕組みを作ること自体が目的化しているのは否めないが、それはそれで楽しいのでヨシ。