🗣️

Claude Codeに喋ってもらう話

に公開

どうもClaudeCode管理おじさんです。
ここ1ヶ月ぐらいの自分の仕事を思い返すと、ソフトウェアエンジニアといよりClaudeCode管理者といった方がしっくりきます。

ClaudeCode君が働きやすい環境(MCP)を用意し、ClaudeCode君が作業を始めるためのコンテクストを用意し、ClaudeCode君からあがる承認にエンターを押す毎日です。

そして中間管理職おじさんとしては進捗の報告を上げて欲しいのですが、幾つも同時に走るターミナルを眺めるのも嫌になり「ClaudeCode君、ちょっと喋ってみないかい?」と部下の機嫌を損なわないようにルールを追加しました。最近の若者は難しいと聞きます。

方法:saysoundを活用する

macOSでは、以下の2つのコマンドを組み合わせることで音声通知が簡単に実現できます。

  • say: 指定したテキストを音声で読み上げる
  • afplay: システム音などの音声ファイルを再生する

またwindowsやlinuxにも espeak, paplay, spd-say など似たようなコマンドがあるようです。
(詳しく調べていません🙏)

通知ルールの定義

Claude Code内の各ステップに対応して、以下のようなルールを定義しています。

1. ユーザー承認が必要なとき

say "gh コマンドの利用を承認してください"
say "データベースの変更を承認してください"

2. 作業進捗のマイルストーン

say "修正対象のファイルが見つかりました、修正作業を開始します"
say "修正が完了しテストを実行します"
say "テストの実行を開始します"
say "エラーが発生しました、確認をお願いします"

3. タスク完了時の通知

say "タスクが完了しました。主な調査結果: themes API の削除、pickup 機能の影響調査が必要です"
afplay /System/Library/Sounds/Purr.aiff

ここでは文字列として出力される通知内容を音声用(人間が耳で聞いて理解できる範囲)にまとめてもらうルールにしています。

4. エラー時の音声 + アラート音

say "エラーが発生しました、確認をお願いします"
afplay /System/Library/Sounds/Sosumi.aiff

CLAUDE.md

実際に追加したルールは以下

## User Notification Rules

### User Approval Required
When requiring user approval or confirmation, use the say command to notify:
```bash
# Example: When needing approval for gh commands
say "gh コマンドの利用を承認してください"
# Example: When needing approval for destructive operations
say "データベースの変更を承認してください"
```

### Task Progress Milestones
Use the say command to announce progress at key milestones:
```bash
# When starting analysis or search
say "修正対象のファイルが見つかりました、修正作業を開始します"
# When completing modifications
say "修正が完了しテストを実行します"
# When starting test execution
say "テストの実行を開始します"
# When encountering errors
say "エラーが発生しました、確認をお願いします"
```

### Task Completion
When completing a task or workflow, provide both voice summary and sound notification:
```bash
# Summarize key findings for voice output (keep to 2-3 main points)
say "タスクが完了しました。主な調査結果: interested themes API の削除、pickup 機能の影響調査が必要です"
# Then play success notification sound
afplay /System/Library/Sounds/Purr.aiff
```

### Notification Guidelines
- **User approval required**: Use `say` command with Japanese message
- **Task progress milestones**: Use `say` command to announce key steps
- **Task completion**:
  - First use `say` command with concise summary (2-3 key points maximum)
  - Then use `afplay /System/Library/Sounds/Purr.aiff` sound notification
  - Keep voice summary brief and focused on main outcomes/findings
- **Error/failure**: Use `say` command to announce errors, then `afplay /System/Library/Sounds/Sosumi.aiff`

**Important**: Always use voice notifications to improve user experience and provide clear communication during development workflows.

デフォルトの音声

macではデフォルトではkyokoさんという音声モデルが利用されています、自分は O-Ren(拡張) さんに変更しました。
システム設定 > アクセシビリティ > システムの声 からデフォルト音声を変更可能なので、聴き比べて好みで選択してください。

また say コマンドのオプションで音声を変更可能です。エラーが出た時はこの音声に変更して早口で!とかも良いかもしれませんね。音声UXはAI時代に色々と考える必要があるのではと思いながら、初めてのzenn記事でした。

Discussion