背景
新しいClaudeのモデル「Fable」が無料で使えるキャンペーン期間だったので、この機会に日頃使っているAI環境(Claude Code周り)の総点検をFableにやってもらいました。
普段は「動いているからヨシ」で流してしまう設定ファイルやプラグイン、メモリ機能の中身を、まとめて棚卸ししてもらう試みです。結果から言うと、想像よりずっと穴が多かったです。
見つかった問題
Fableに設定ファイル・プラグイン・ログ運用をひととおり調べてもらったところ、こんな問題が出てきました。
- プラグインの二重インストール:同じ用途のプラグインが新旧2バージョン両方有効になっていて、セッション開始のたびに約53KBの知識グラフが毎回注入されていました。しかもプロンプト中の「AI」という単語に反応して、無関係なスキルを「必ず実行せよ」と誤発動するフックまで動いていました。
- 設定ファイルに認証シークレットが平文残留:過去のデバッグコマンドが許可リストにそのまま保存されていて、その中にOAuthクライアントのシークレットが含まれていました。これが一番の重大案件でした。
- 許可リストの肥大化:一回きりのデバッグコマンドが積もり積もって150件超に。
- ルールとメモリ機能の矛盾:「AIのメモリ機能は使わず、必ずファイルに記録する」と自分で決めたルールがあるのに、メモリには10件が蓄積されて毎セッション自動ロードされていました。しかも中身には、完了済みの計画や存在しないパスへの参照など、古くなった情報が混ざっていました。
- MCPの重複と脆い構成:ローカルに立てたMCPサーバーと公式コネクタが機能重複。しかもローカル側はnpxのキャッシュパスを直接参照していて、キャッシュ掃除で壊れる構成でした。
- 自分ルールの実行漏れ:「作業ログは記録したらcommit・push」というルールに対して、未コミットが3件残っていました。
どれも単体では小さな話ですが、「AIに毎日仕事を任せる基盤」がこの状態だったと思うと、定期点検の必要性を痛感しました。
Fableまかせで改善
改善作業もほぼFableまかせで進みました。2日間に分けて実施した内容です。
- 二重プラグインを両方削除(プラグインの反映にはCLIの完全再起動が必要、という発見もありました。
/clearでは消えません) - 許可リストを150件超から39件に削減、シークレットを含む行も削除
- メモリ10件を仕分けして、残す価値のあるものはナレッジ用のファイルに移送、古いものは廃棄。メモリ機能自体は空に
- MCPをclaude.aiの公式コネクタに一本化して、壊れやすいローカル構成を廃止
- 未コミットのログをまとめてcommit・push
- ついでにREADMEの古い記述(前に使っていたエディタ前提のまま)を現状に合わせて全面改訂
- セッション終了処理(記録→commit→push)を1コマンドでやってくれるカスタムスキルも作成
面白かったのは、セッションをまたいだ「効果確認」までAIが自分でやったことです。再起動後の新しいセッションで「誤発動していたフックが消えているか」「設定が想定どおりか」を確認して、記録に残してくれました。
人間にしかできなかったこと
一方で、全部おまかせとはいきませんでした。
漏洩していたOAuthクライアントの無効化は、クラウドのコンソールにブラウザでログインして操作する必要があり、これは私が手動でやるしかありません。AIは「どのアカウントで・どのURLを開いて・何をするか」の手順書を残作業リストとして用意してくれるので、人間は消化するだけです。
認証・権限まわりの「最後のひと押し」は人間の仕事として残る、というのが今回の実感です。逆に言えば、そこ以外の調査・判断・修正・記録・検証はほぼ任せられました。
まとめ
- AI環境も放っておくとゴミが溜まる。半年で「シークレット平文残留」「プラグイン二重化」レベルの穴が普通に開く
- 点検も改善も記録もAIまかせでいける。ただし認証が必要な操作だけは人間が手を動かす
- 「無料で使えるうちに重めのタスクを」という動機で始めましたが、これは定期イベントにする価値がありそうです