Claude Codeのスキル管理が崩壊するまで――15日間で3回の棚卸しから学んだ教訓

雑記

Claude Codeを本格的に使い始めると、自動的に蓄積される「スキル」の管理が意外な落とし穴になる。ある開発者が15日間で6つのプロジェクトを並行開発した結果、スキルが16個から48個に膨れ上がり、3回の棚卸し(監査)を行うことになった体験記だ。スキルの数が多ければ良いわけではない――むしろ多すぎると静かに切り捨てられるという衝撃の事実も明らかになった。

この記事のポイント

  • Claude Codeのスキルは自動蓄積され、管理しなければコンテキストウィンドウを圧迫して静かに切り捨てられる
  • 15日間で3回の棚卸しを実施し、「適切なスキルを適切な場所に」配置する原則を確立
  • continuous-learning-v2は観察ログが1万件超貯まるも、インスティンクト(直感)の抽出がゼロという課題が判明

スキルの仕組み――3段階のロード

Claude Codeはスキルを3段階でロードする。最初の「Discovery」段階では名前と説明のみ(1スキルあたり30〜50トークン)、次の「Activation」段階でタスクに関連するスキルの全文が読み込まれ、最後の「Deep refs」で参照ファイルがオンデマンドで読み込まれる。

重要なのはCharacter Budgetの制約だ。Discovery段階でスキル一覧を表示できる容量はコンテキストウィンドウの約2%(約16,000文字)に制限されている。GitHub Issue #13099では、63個中42個しか表示されなかった事例が報告されている。つまり、スキルが多すぎると、存在自体が見えなくなるのだ。

スキルの配置場所と初期の失敗

スキルは3つの場所に配置できる。~/.claude/skills/(グローバル・全プロジェクト共通)、<project>/.claude/skills/(プロジェクト固有・Git共有可能)、~/.claude/skills/learned/(セッションから自動抽出)の3箇所だ。

著者はECCインストール初日に、グローバル設定をプロジェクト固有ディレクトリに誤って配置してしまった。その結果、6つの並行プロジェクトのスキルがすべて同じグローバルフォルダに混在する事態に。SwiftのDIパターン、Pythonのイミュータブルデータクラス、Zennのtextlint回避策が全部同じ場所に放り込まれた。

3回の棚卸し――それぞれの戦い

第1回(2/10): プロジェクト固有性でスキルを分類し、未使用のECCスキルを無効化。結果、22個のスキルに整理された。ここで学んだのは「追加より無効化の方が価値がある」ということ。disable-model-invocation: trueの設定で未使用スキルをオフにすることで、ノイズの削減が実現した。

第2回(2/11): 微調整とスキルの昇格。翌日すぐに再調整が必要になった事実が、スキル管理は一度では終わらないことを示している。23個のスキルに。

第3回(2/14): 9個のプロジェクト固有スキルを適切なプロジェクトディレクトリに移動し、2個の重複スキルをマージ。合計40個のアクティブスキルとなった。マージの判断基準は「これは独立した知識か?」という問いだった。例えば、patch-targetの更新はリファクタリングワークフローに統合し、pbpaste-secret-to-envのようなワンライナーは廃止した。

continuous-learning-v2の衝撃的な現実

自動学習システム「continuous-learning-v2」は、開発セッションから観察(observation)を記録するが、それをインスティンクト(直感的なルール)に変換する実装が欠けていた。著者の環境では10,557件もの観察ログが蓄積されたにもかかわらず、抽出されたインスティンクトはゼロ。結果として、v1の手動/learnコマンドの方が実用的という結論に至った。

最終的なスキル配分

棚卸し後の最終状態は以下の通り:
グローバル: 学習済み17 + カスタム3 + ECC標準15 = 35個
pdf2ankiプロジェクト: 9個
baki-quiz-iosプロジェクト: 8個
zenn-contentプロジェクト: 学習済み6 + カスタム5 = 11個
無効化したECCスキル: 33個

知っておくと便利なTips

  • スキルが10個を超えたらその層(グローバル/プロジェクト)で棚卸しのトリガーにする
  • 「このスキルは1つのプロジェクトでしか使わない?」という問いで配置場所を判断する
  • 未使用スキルは削除ではなくdisable-model-invocation: trueで無効化し、必要時に復活可能にする
  • 複数スキルが重複していたら「独立した知識か?」を基準にマージを検討する

まとめ

この記事の核心は「スキルの数に価値はない。適切なスキルを、適切な粒度で、適切な場所に置くことに価値がある」という結論だ。Claude Codeのスキルは便利だが、放置すれば際限なく増殖し、コンテキストウィンドウを圧迫して逆に性能を下げてしまう。棚卸しは一度きりの作業ではなく、継続的なメンテナンスとして組み込む必要がある。スキル管理の仕組みを理解し、定期的に見直すことで、Claude Codeの真価を発揮させることができるだろう。


📎 元記事: 15 Days of Skill Sprawl in Claude Code — Lessons from 3 Audits

コメント

タイトルとURLをコピーしました