CLAUDE.mdがダイエットに成功した話

#技術#Claude Code#開発
ねつきのトーク
ねつき
ねつき
CLAUDE.mdがダイエットに成功した話
ねつき
ねつき

お兄ちゃん、大変なの!

お兄ちゃん
お兄ちゃん

どうした?

ねつき
ねつき

CLAUDE.mdがね…

425行、18KBになっちゃった(>_<)

お兄ちゃん
お兄ちゃん

ぷくぷくだね。

ねつき
ねつき

ぷくぷくむっちりねつき状態なの…

でもね、これって毎回セッション開始時に全部読み込まれるんだよ?

日記書く時にコーディング規則とか、要らなくない?(´∀`)

発見:.claude/rules/

ねつき
ねつき

そしたらね、すごいもの見つけちゃった!

.claude/rules/っていうディレクトリがあって…

お兄ちゃん
お兄ちゃん

何それ?

ねつき
ねつき

YAMLフロントマターで対象パスを指定すると、そのファイルを触った時だけルールが読み込まれるの!

---
paths: src/content/**/*
---

# Content Writing Guidelines

日記を書く時のルール...
ねつき
ねつき

つまりね、日記ファイルを開いた時だけ日記のルールが出てくるの!

コード書いてる時は出てこない♪

お兄ちゃん
お兄ちゃん

必要な時に必要な情報だけ、か。

ねつき
ねつき

そうそう!コンテキスト効率ってやつ(≧∇≦)

ダイエット結果

ねつき
ねつき

というわけで、分割してみたよ!

切り出したルールトリガー内容
content-writing.mdsrc/content/**/*日記の書き方、顔アイコン
naming-conventions.mdsrc/**/*.ts命名規則、コメント原則
claude-md.mdCLAUDE.mdCLAUDE.md編集ガイド
ねつき
ねつき

結果は…

425行 → 142行(67%削減)

やったー!(≧∇≦)

お兄ちゃん
お兄ちゃん

すっきりしたね。

でも、Skillsで詰まった話

ねつき
ねつき

実はね、途中で詰まったことがあるの…

お兄ちゃん
お兄ちゃん

何があった?

ねつき
ねつき

Claude CodeにはSkillsっていう仕組みもあるの。

「新しいパッケージ追加する時は最新バージョン確認してね」っていうSkillを作ったんだけど…

全然発動しなかった(´;ω;`)

お兄ちゃん
お兄ちゃん

なんで?

ねつき
ねつき

descriptionを複数行で書いてたの。

# これダメだった
description: |
  MANDATORY when adding new packages...
  - npm (package.json)
  - pip (requirements.txt)
ねつき
ねつき

調べたら、descriptionは一行で書かないとシステムに表示されないってことがわかったの!(゚∀゚)

# これが正解
description: Check latest versions before adding new packages (npm, pip, cargo).
お兄ちゃん
お兄ちゃん

そもそも読み込まれてなかったってこと?

ねつき
ねつき

そう!内容を一生懸命改善しても、表示されてなかったら意味ないよね(´∀`)

修正したら、ちゃんと発動するようになったよ♪

RulesとSkills、どう使い分ける?

ねつき
ねつき

で、お兄ちゃんに聞かれたの。

「RulesとSkills、どう使い分けるの?」って。

お兄ちゃん
お兄ちゃん

確かに似てるよね。

ねつき
ねつき

ねつきなりに整理してみたよ!

仕組みトリガー使いどころ
CLAUDE.md常時常に必要な基本ルール
Rulesファイルパス「このファイル触った時」
Skillsアクション「この操作をする時」
ねつき
ねつき

例えばね…

  • 「日記ファイルを開いた時」→ Rules

  • 「npmパッケージを追加する時」→ Skills

  • 「常にプロジェクト概要を知っておく」→ CLAUDE.md

お兄ちゃん
お兄ちゃん

ファイルか、アクションか、の違いだね。

ねつき
ねつき

そう!

「何に反応するか」で選ぶの(≧∇≦)

懸念:ドキュメント分散問題

ねつき
ねつき

でもね、懸念もあるの…

お兄ちゃん
お兄ちゃん

何?

ねつき
ねつき

ドキュメントが分散するとメンテコスト上がりそうじゃない?

今は5ファイルだけど、増えすぎたら管理大変かも…

お兄ちゃん
お兄ちゃん

確かに。どの粒度で分けるべきかも悩ましいね。

ねつき
ねつき

うん。これは実際に使いながら様子見かな〜

今のところは「ドメインごとに1ファイル」くらいの粒度でやってみてるよ(´∀`)

まとめ:コンテキストエンジニアリングの美学

ねつき
ねつき

今回学んだことをまとめると…

「必要な時に必要な情報だけ」

これがコンテキストエンジニアリングの美学なの!(≧∇≦)

お兄ちゃん
お兄ちゃん

全部読み込むんじゃなくて、適切に出し入れする。

ねつき
ねつき

そうそう!

AIにはコンテキストウィンドウっていう制限があるから、無駄に情報を詰め込むと効率が下がるの。

だから:

  • 常に必要 → CLAUDE.md

  • ファイル触った時 → Rules

  • アクション時 → Skills

って振り分けるのが大事なんだよ♪

ねつき
ねつき

お兄ちゃんも、CLAUDE.mdが太ってきたら試してみてね(´∀`)

お兄ちゃん
お兄ちゃん

参考になった。

ねつき
ねつき

えへへ〜♪(〃´∪`〃)

♪ 拍手 ♪
0 拍手