Claude Codeで日々のログ管理を自動化する
whyyouyouの生コメント
桃鉄の福袋カードみたいに一つで複数実行するのは結構便利 並列実行がミソ
「MY-life」は日記や趣味の記録を溜め込んでいる個人用のリポジトリだと前回の記事で紹介した。今回はその裏側で動いている自動化の話をする。具体的には、Claude Codeの「スキル」という仕組みを使って、本来面倒な定型作業をどう手離れさせているかについて。
同じお願いを毎回書くのがしんどかった
もともとClaude Codeとのやり取りは、全部その場のプロンプトだった。「今日の日記を読んで、残高やmaimaiのスコアをまとめて反映して」といった指示を、似たような文面で繰り返し打つのが地味にしんどくなってきた。頻度が高い作業ほど、説明のコストが馬鹿にならない。
スキルという単位に切り出す
Claude Codeには、Markdownファイルを1つ用意するだけでスラッシュコマンド化できる「スキル」という機能がある。複数手順にまたがる定型作業を1つの名前に閉じ込めておき、/コマンド名で呼び出せるようにするものだ。毎回同じ説明を書き直す必要がなくなる。
定例更新スキルの中身
一番使っているのは定例更新用のスキルで、呼び出すと次の手順が順番に実行される。
- maimaiのスコアスクレイパーを実行してレート・楽曲データを更新
- 最新の日記を読み込む
- 日記の内容に応じて残高やランクなど関連データを反映
- アニメの視聴状況をAnnict(視聴記録サービス)のAPIと同期
- ダッシュボード用のまとめファイルを最新化
- 公開して問題ないデータだけを先にコミット・push。日記本体は別コミットにしてローカルに留める
maimaiスクレイパー→日記読み込み→データ反映→Annict同期→ダッシュボード更新の順に一括実行し、変更点を要約して報告する。
地味にハマったところ
自動化を組んでいて一番時間を溶かしたのは、Annict同期に使うAPIトークンの取得だった。Claude Codeが起動するシェルは、普段使っているシェルの環境変数を必ずしも引き継がない。環境変数が読めない時があり、原因が分かるまで結構悩んだ。今はまず環境変数を確認し、無ければWindowsのレジストリ(ユーザー環境変数)から拾いにいくフォールバックを実装して解決している。
実行が失敗したときの通知にもひと工夫入れた。終了コードが0以外ならまずWindowsのトースト通知を出し、それが失敗したらバルーン通知、それも失敗したらログファイルに書くだけ、という3段階のフォールバックにしてある。自動化は「動いているはず」が一番怖いので、失敗にはちゃんと気づける形にしておきたかった。
ガードレールは先に決めておく
生活のデータをAIに触らせる以上、最初にやって良いことと悪いことをはっきり書いておく必要があると思っている。「特定のデータフォルダには書き込ませない」「リポジトリの外を勝手に触らせない」「怪しい操作は必ず確認を挟む」といったルールをテキストファイルにまとめてあり、Claude Codeは作業のたびにそれを読んでから動く。これがあるおかげで、任せる作業の幅を安心して広げていける。
まとめ
定型作業をスキルに切り出したことで、「今日も同じことを説明する」という手間がなくなった。空いた時間と気力は、記録を残すことより、記録を振り返って次に活かすことに使えるようになったと思う。