Blog

ブログ

AI関連

Claude Code のファイル構成の考え方

🧠 Claudeを「毎回説明しなくていい状態」にする

Claudeって便利だけど、基本的にセッションをまたいで記憶しない。

だから普通に使うと、毎回こういう説明が必要になる。

  • 自分は何をしている人なのか
  • どこに情報を保存しているのか
  • 普段どんなルールで作業しているのか

なので最初にやったのは、「毎回説明しなくていい仕組み」を作ることだった。

📄 CLAUDE.md を“自己紹介ファイル”にする

Claude Code には、毎回自動で読まれる ~/.claude/CLAUDE.md というファイルがある。

ここに「自分の前提情報」を書いておく。

例えば自分はこんなことを書いている。

書いている内容

  • Obsidian vault の場所
  • 記事について聞かれたら先に vault を検索するルール
  • 調査メモの保存先
  • 普段のディレクトリ構成

すると、毎回URLやパスを貼らなくても、Claude が先に探しにいってくれる。

これだけでかなり楽になる。

🗂️ 実際のファイル構成

今の構成はざっくりこんな感じ。

Claude Code グローバル設定(~/.claude/

~/.claude/
├── CLAUDE.md # 全セッション共通ルール
├── settings.json # permissions・hooks
├── .env # APIトークン類
├── commands/ # スラッシュコマンド
│ ├── search-vault.md
│ ├── update-daily-hours.md
│ ├── update-weekly-hours.md
│ ├── update-hours.md
│ ├── yt-summary.md
│ └── clip-summary.md
└── projects/.../memory/ # プロジェクト別メモリ

役割イメージ

  • CLAUDE.md
    • Claudeへの共通指示
    • 「まずvaultを検索する」などのルールを書く
  • commands/
    • よく使う処理をコマンド化
    • 毎回同じプロンプトを書かなくて済む
  • .env
    • APIキーを一元管理
    • スクリプト側で読み込む

Obsidian Vault(~/obsidian/

~/obsidian/
├── Clippings/ # Web記事の保存
├── research/ # Claudeの調査メモ
├── notes/ # アイデア・雑メモ
└── YYYY-MM-DD.md # デイリーノート

Obsidianは「知識の置き場」として使っている。

あとから検索できることを最優先にしているので、とにかくテキストを蓄積する。

作業プロジェクト

<project>/
├── CLAUDE.md
├── scripts/
├── reports/
├── config/
└── .venv/

プロジェクトごとに分けているもの

  • CLAUDE.md
    • その案件だけのルール
    • コーディング規約
    • 参照先
  • scripts/
    • Pythonの自動化スクリプト
  • reports/
    • Claudeが生成したレポート類
  • config/
    • Notion Database IDなどの設定

プロジェクト単位で閉じる情報は、できるだけここに寄せている。

🗂️ ObsidianとNotionは分けたほうが快適だった

最初は「全部Obsidianに寄せようかな」と思った。

でも実際やってみると、用途が違った。

Obsidianが得意なこと

  • テキストを貯める
  • 全文検索する
  • AIと連携する
  • 長文を書く

Notionが得意なこと

  • タスク管理
  • 期限管理
  • データベース管理
  • フィルタやソート

なので今はこう分けている。

  • 「知識」は Obsidian
  • 「管理」は Notion

無理に一元化しないほうが、結果的に運用しやすかった。

⚙️ よくやる作業は“コマンド化”する

AIを使っていて一番だるいのは、「毎回同じ手順をやること」。

なので、繰り返す作業は全部コマンドにした。

例えばこんな感じ

/update-daily-hours

Togglから昨日の稼働時間を取得して整形。

/search-vault ○○

Obsidian内の記事を検索。

/yt-summary URL

YouTube動画を要約。

こうすると、「手順」を覚えなくてよくなる。

覚えるのは“コマンド名”だけ。

これがかなり大きい。

🔐 APIキーは1箇所にまとめる

APIキーって、プロジェクトごとに .env を置き始めるとすぐ散らかる。

「あれ、どこに入れたっけ?」が発生する。

なので自分は ~/.claude/.env にまとめている。

スクリプト側は、起動時にそこを読みにいく。

こうしておくメリット

  • 管理場所が固定される
  • 設定ミスが減る
  • 使い回ししやすい

小さいことだけど、積み重なるとかなり効く。

💡 結局やっていることはシンプル

やっていることを一言でまとめると、

Claude に毎回説明しなくていい状態を作っているだけ。

そのためにやっているのがこの3つ。

  • CLAUDE.md に前提を書く
  • 繰り返し作業をコマンド化する
  • 情報をObsidianに蓄積する

これをやると、会話を重ねるほど Claude が“自分用の作業環境”に近づいていく。

参考