「おはよう」と打つだけで、今日やるべきことが全部出てくる。「おつかれ」と打つだけで、作業ログが自動保存される。そんな仕組みを作ったら、毎朝の「さて、どこまでやったっけ」がまるごと消えた。
毎朝5分、無駄に消えていた
PiloTubeの開発を進めるなかで、地味にしんどかったのが「セッションの立ち上げ」だった。
Claude Codeを開くたびに、自分でコンテキストを渡さないといけない。「今どのブランチにいるか」「昨日どこで詰まったか」「今日何を片付けるつもりか」。これを毎回テキストで打ち込むか、メモを見返して貼り付けるか。どちらにせよ、作業に入るまでに5分くらいかかっていた。
終わりも同じ。「今日やったこと」「残タスク」「次回の取っかかり」を手動でどこかに書き残さないと、翌朝また同じところから始めることになる。面倒だからサボる→翌朝また迷子になる、という悪循環を何度繰り返したか。
一人でやっているから、この手の「引き継ぎ」を自分から自分へやり続けないといけない。それが地味にきつかった。
気づきは「フック」という機能の存在
ある日、Claude Codeのドキュメントを読み直していたら、フック(Hooks)機能の説明が目に入った。
簡単に言うと、「特定のタイミングで自動的にスクリプトを実行できる仕組み」だ。セッション開始時・終了時・コマンド実行前後など、いくつかのタイミングに処理を差し込める。
「これ、まさに自分が欲しかったやつじゃないか」と思った。
セッション開始時に「現在のブランチ」「最後のコミットメッセージ」「TODOファイルの中身」を自動で読み込んで渡せば、毎朝のコンテキスト貼り付け作業がゼロになる。終了時に作業ログを自動保存すれば、手動の「今日やったこと」メモも不要になる。
頭のなかで絵が描けた瞬間、すぐに実装に入った。
壁は「何をどう渡すか」の設計
フック自体の仕組みはシンプルだった。設定ファイルに「このタイミングでこのスクリプトを動かせ」と書くだけ。技術的な難易度は高くない。
詰まったのは「何を渡すか」の設計だった。
情報を渡しすぎると、Claude Codeのコンテキストウィンドウ(AIが一度に処理できる情報量の上限)を圧迫する。渡さなさすぎると、結局手動で補足することになる。「最低限これがあれば動ける」という情報の取捨選択が、思ったより難しかった。
最初に作ったスクリプトは、gitのログを直近30件出力していた。多すぎた。次に5件にしたら今度は少なすぎて、昨日の作業が拾えないことがあった。最終的に「直近のコミット3件+最後のコミットからの差分ファイル一覧+TODOファイルの先頭20行」という組み合わせに落ち着いた。
終了フックも同様。最初は「全ファイルの変更差分をそのまま保存」しようとしたら、ファイルが肥大化して逆に読みにくくなった。「変更したファイル名+自由記述欄(AIが要約を生成)」という形式にして、ようやくちょうどいいサイズ感になった。
実際にやったこと
構成はこんな感じ。
1. セッション開始フック
#!/bin/bash
echo "=== PiloTube 作業コンテキスト ==="
echo "## ブランチ"
git branch --show-current
echo "## 直近のコミット(3件)"
git log --oneline -3
echo "## 変更中のファイル"
git diff --name-only HEAD
echo "## TODO"
head -20 TODO.md 2>/dev/null || echo "(TODOファイルなし)"
これをセッション開始時に自動実行するよう、Claude Codeの設定ファイル(~/.claude/settings.json の hooks セクション)に登録する。
2. セッション終了フック
#!/bin/bash
DATE=$(date +%Y-%m-%d)
LOG_FILE="logs/session_${DATE}.md"
echo "## ${DATE} セッションログ" >> $LOG_FILE
echo "### 変更ファイル" >> $LOG_FILE
git diff --name-only HEAD >> $LOG_FILE
echo "### コミット" >> $LOG_FILE
git log --oneline --since="12 hours ago" >> $LOG_FILE
これで、logs/ ディレクトリに日付ごとのセッションログが自動生成される。
3. 「おはよう」「おつかれ」のエイリアス
ここが一番気に入っている部分。.claude/commands/ に おはよう.md と おつかれ.md というカスタムコマンドを作った。
おはよう を打つと、上記の開始フックが走って今日の状況が全部出てくる。おつかれ を打つと、終了フックが走ってログが保存され、「今日の作業サマリー」をAIが自動生成して返してくれる。
日本語コマンドが動くのを初めて確認したとき、なんか変なテンションになった。「おはよう」に「おはようございます、今日のPiloTubeの状況をお伝えします」と返ってくるのが、地味にいい。
結果:朝の5分が消えた
導入して2週間。体感としてはかなり変わった。
朝、Claude Codeを開いて「おはよう」と打てば、10秒以内に「今日どこから始めるか」が見えている。昨日どこで止まったか、どのファイルを触っていたか、TODOに何が残っているか。全部出てくる。
夜、「おつかれ」と打てば、今日やったことがログに残る。翌朝の自分への引き継ぎが、自動で完成している。
地味だけど、これが積み重なると結構でかい。毎朝5分×週5日×4週=月に100分。それが丸ごと消えた計算になる。時間より「迷子になるストレス」がなくなった方が、精神的にはずっとでかい。
一人開発者への教訓
フック機能を使ってみて、改めて思ったことがある。
定型作業の自動化は、「面倒だから後回し」にしやすいからこそ、先にやるべきだ。
自分の場合、「毎朝のコンテキスト貼り付けが面倒」と感じながら半年くらい放置していた。「そのうち仕組み化しよう」と思いながら、毎朝5分を垂れ流していた。
実際に作るのにかかった時間は、スクリプトの試行錯誤を含めても2〜3時間。半年分の「毎朝5分」と比べたら、とっくに元が取れている。
一人でやっているからこそ、こういう「自分から自分への引き継ぎ」コストは意識的に削らないといけない。チームがあれば誰かが補ってくれるけど、一人だと全部自分に返ってくる。
Claude Codeのフック機能は、まだあまり使われていない印象がある。でも使い方次第で、毎日の定型コストをかなり削れる。「繰り返しやっていること」があるなら、一度フックで自動化できないか考えてみる価値は十分ある。
次は、フックと組み合わせてTODO管理をもう少し賢くしたい。「おはよう」を打ったとき、今日の優先タスクをAIが自動で提案してくれる仕組みを検討中。
チャプター生成AI
URL貼るだけ。AIがチャプターを自動生成。
YouTubeのURLをコピーして貼る
「生成する」を押す
概要欄にコピペして完了
月3回まで無料 · クレジットカード不要