Coach - 自己改善型学習システム
Coach を使用すると、Claude は摩擦から学習し、時間の経過とともに改善できます。ユーザーの訂正、繰り返しの指示、ツールの失敗、トーンの悪化などの学習機会を検出し、実用的な改善候補を抽出し、明示的なユーザー承認を必要とする変更を提案します。
基本原則: サイレント書き込みは行いません。すべての改善には /coach approve によるユーザー承認が必要です。
アクティベーショントリガー
以下の場合にアクティブ化: ユーザーの訂正 (「いいえ」「やめて」「しないで」)、繰り返しの指示、ツール/コマンドの失敗、トーンの悪化 (ALL CAPS、「!!!」)、スキルの補足 (「あとも覚えておいて…」)、非推奨ツールの警告、明示的な /coach コマンド、またはセッション終了。
シグナルカテゴリ (優先順位)
- COMMAND_FAILURE (最高) - 非ゼロ終了コード、stderr パターン
- USER_CORRECTION (高) - 明示的な訂正表現
- SKILL_SUPPLEMENT (高) - スキルへの追加ガイダンス
- VERSION_ISSUE (中高) - 非推奨/古い警告
- REPETITION (中) - 意味的に類似した指示の繰り返し
- TONE_ESCALATION (低) - フラストレーションの兆候
候補タイプ
| タイプ | 説明 | 例 |
|---|---|---|
rule | 安定した制約 | 「生成されたファイルを編集しない」 |
checklist | ワークフローステップ | 「コード変更後にテストを実行する」 |
snippet | 再利用可能なコマンド | 「事前チェックスクリプト」 |
skill | スキル更新の提案 | 「Y スキルに X ガイダンスを追加」 |
antipattern | 避けるべきこと | 「ツールが存在すると想定しない」 |
ワークフロー概要
- 検出 — フックがイベントをキャプチャ →
~/.claude-coach/events.sqlite - 生成 — シグナルを提案に集約 (フィンガープリントで重複排除)
- スコープ — パス/言語に基づいてプロジェクト vs グローバル
- レビュー —
/coach reviewで承認/却下/編集 - 適用 — 承認されたルール → CLAUDE.md
- 振り返り —
/coach retroで手動作業をスキルギャップにマッピングし、ソースリポジトリに PR を発行
ファイルの場所
~/.claude-coach/
├── events.sqlite # 生の摩擦イベント
├── candidates.json # 保留中の提案
└── ledger.sqlite # リポジトリ間のフィンガープリント
~/.claude/ または <repo>/.claude/
├── CLAUDE.md # ルールの保存先
├── checklists/ # ワークフローチェックリスト
└── snippets/ # 再利用可能なコマンド
スクリプト
${CLAUDE_PLUGIN_ROOT}/scripts/ から実行:
| スクリプト | 目的 |
|---|---|
init_coach.py | Coach システムを初期化 |
detect_signals.py | 摩擦のパターン検出 |
aggregate.py | シグナルを候補に変換 |
skill_analyzer.py | スキルを分析し、古いツールをスキャン |
apply.py | 承認された提案を適用 |
プロアクティブコマンド
/coach scan— 古い CLI ツールと依存関係をチェック/coach retro— セッションの振り返り:手動作業を分析し、ソースでスキルを改善するための PR を作成
詳細なアーキテクチャ、スキーマ、パターンについては、references/ ディレクトリを参照してください。