claude routinesの活用
今年の4月にリリースされたらしい claude routinesを利用していますか?
結構今更感ありますがこの機能の面白さに気づいたので、どういう事をしているのかを共有するために書く
ルーティンで作業を自動化する - Claude Code Docs
やっていること
やっていることは大きく分けると4種類に分けられる
- レポート生成
- 課題調査
- 改善提案評価
- 定期自動改善提案
レポート生成
定期的に調査結果などからレポートをclaude artifactに生成させている
実際にやっているものだと、自分のチームが管理しているリポジトリのbaseブランチにマージされたprを調査し、概要をまとめたレポートを生成させている。これのおかげで毎朝前日の変更をさっと俯瞰できる
課題調査
skillなどベストプラクティスは日々更新されていくので、週1回リポジトリ等からベストプラクティスに沿って改善点が無いかを調査し、改善点があれば改善案のissueを作成させている。
後述する定期自動改善と違い案として出される数も多くないので、やる・やらないの判断を自前でやるためprではなくissueをゴールとしている。
改善提案評価
仕事で依存ライブラリの更新管理などでrenovateを利用していて、今のチームでは毎週renovateのprの中からいくつかのprにアサインされ、その週の間にマージを目指すという運用をしている。その時に影響範囲の確認などをclaudeにざっくり調査させていたが、claudeへの依頼をルーティンにより自動で行われるようになり手作業で依頼する必要がなくなった。
定期自動改善
ここが1番やっていることが多い。全てprを作る所までを目標に動いている。
1. 課題調査で作ったissueを元に定期的にprを作成する
issueに受け入れ条件を含めるように作っているので、それを元に自動でprを1日2回作るというもの。 自動でどんどんprが作られていくので、それより前にissueを確認するように習慣が付き始めた。
2. bundle sizeの最適化提案
next.jsを利用しているプロジェクトで bundle size analyzer を利用しているのですが、リリース優先になることが多く後回しされることがちょこちょこあったため、初期のダウンロードされるサイズを減らす提案PRを平日に1日1つ自動で作ってもらっている。
これは今のところnext.jsのdynamicを設定していくことしかしていないので今後に期待。
3. reactのレンダリングパフォーマンス改善
reactのレンダリングパフォーマンスベストプラクティスを元に改善のprを平日に1つ作るもの。
4. アーキテクチャ適用改善
今のチームではclean architectureを採用していてコードが日々追加されているんですが、初期に書かれたコードはmvcを少し拡張した形で書かれていてdiなどを利用していない。そのためそれを平日に1日1つ現行のルールに合わせて少しずつ改善のprを作ってもらっている。
リポジトリに書いているrulesがしっかりしていたおかげなのか、雑に作った割には精度が出ている。
5. rulesの改善提案
改善提案に書いたものに近いが、pull requestに書かれたレビューコメントを元に .claude/rules の改善提案prを作成する。このルーティンはある程度の範囲からルールを考えたほうが良いという判断のもと週1で動かしている。
実行はopus5で行っていて、ルールを追加するかどうかの判断自体を任せている。そのため考えて判断する作業がある分ここはコストより能力を優先した。適切なモデルの選択 でも、複雑な推論やニュアンスの理解が必要なタスクは機能優先で選ぶという方針になっている。
追加しなかったものに関しては「なぜ追加しなかったのか」をルーティンのログに出してもらうことで今後判定基準を言語化したいと思っていたが、現状で割と納得できる感じになっている。
気になった所
今のところ便利ではあるが、いくつか改善して欲しい所が無いわけでもなくて
- ユーザーに許可を取るプロンプトが出て止まっている時がある
- artifact更新していい?というのを毎日許可していた
- これは
allow: ["artifact"]で解決できたっぽい
- これは
- 通知は出してくれるけど気づかない時が
- artifact更新していい?というのを毎日許可していた
- on the webの制約で地味にできないものがある
- 実行してみて駄目なんだと気づく
- subagentはユーザーが明示的に指示してないと起動できない・・?
- レート制限
- claude codeと共通なので5時間制限目一杯使っている人はいつ実行するかなどを意識しないといけない
- uiでいい感じに毎時
x時とy時みたいな指定ができない- cron式では書けるがお馴染みのjstだと⋯を考える必要がある
- claudeのアプリから直接ルーティンを確認できない
- 通知からやwebブラウザでclaudeを確認する必要がある
まとめ
ルーティン機能が出た当初はあまり用途が思いつかずピンと来てなかったが、webでも private marketplaceが読み込めたり することを知り、今ではプライベートで利用しているclaudeでも活用している 1
Footnotes
-
$20プランなのでtoken消費抑えてどうやるかというのが楽しい ↩