開発メモ
Claude Codeの.claude設定をユーザーレベルとプロジェクトレベルに分離する
結論
Claude Codeの.claudeディレクトリは以下のように分離して管理するのがよい。
| レベル | 場所 | 内容 |
|---|---|---|
| ユーザーレベル | ~/.claude/ | 全プロジェクト共通のスキル・コマンド |
| プロジェクトレベル | {project}/.claude/ | そのプロジェクト固有のスキル・コマンド |
VSCodeのマルチルートワークスペースを使えば両方を同じエクスプローラーで編集できる。
問題:ジャンクションで共有すると固有コマンドが混在する
当初mdx-playgroundの.claudeをジャンクション(シンボリックリンク)でtax-assistantに共有していた。
mdx-playground/.claude/ ← 本体
tax-assistant/.claude/ ← ジャンクション(リンク)
この構成の問題点:
/import-receiptsや/validate-receiptsのようなtax-assistant固有のコマンドがmdx-playground側にも登録されるhonda-sakubunのような共通スキルとプロジェクト固有のものが混在する- どのプロジェクトからも全てのコマンドが見えてしまう
解決策:ユーザーレベルとプロジェクトレベルに分離
推奨構成
~/.claude/ # ユーザーレベル(別途git管理)
├── commands/
│ └── md-make.md # 全プロジェクト共通
├── skills/
│ ├── honda-sakubun/ # 全プロジェクト共通
│ └── agent-memory/ # 全プロジェクト共通
└── settings.json
tax-assistant/.claude/ # プロジェクト固有
├── commands/
│ ├── import-receipts.md # このプロジェクト専用
│ └── validate-receipts.md
├── skills/
│ └── tax-strategy/ # このプロジェクト専用
└── settings.local.json
ユーザーレベルのgit管理
~/.claudeも独立したgitリポジトリとして管理できる。
cd ~/.claude
git init
git remote add origin [email protected]:username/dotclaude.git
VSCodeで両方を表示する
.code-workspaceファイルを作成すればユーザーレベルとプロジェクトレベル両方をエクスプローラーに表示できる。
{
"folders": [
{ "path": "." },
{ "path": "C:/Users/numbe/.claude", "name": "User .claude" }
]
}
これにより:
- プロジェクト内でユーザーレベルの設定も編集できる
- 編集履歴がプロジェクト内で確認できる(コミットは
~/.claudeリポジトリに行う) - ディレクトリ名は同じ
.claudeだが「User .claude」と表示名を変えられる
分離の判断基準
| 種類 | 配置先 | 例 |
|---|---|---|
| 全プロジェクトで使う | ユーザーレベル | honda-sakubun, md-make, agent-memory |
| 特定プロジェクトでしか使わない | プロジェクトレベル | import-receipts, validate-receipts |
| 技術スタック固有 | プロジェクトレベル | nuxt-content用スキル等 |
具体的な分類一覧
Commands(コマンド)
| User | mdx-playground | tax-assistant |
|---|---|---|
| md-make.md | new-article.md | import-receipts.md |
| book-to-skill.md | update-frontmatter.md | validate-receipts.md |
| review-book-to-skill.md | ||
| refactor.md | ||
| rename-pdf.md |
Skills(スキル)
| User | mdx-playground | tax-assistant |
|---|---|---|
| agent-memory/ | data-generation/ | (今後追加) |
| content-management/ | deployment/ | |
| honda-sakubun/ | qa-verification/ | |
| summarization-technique/ | testing/ | |
| drawio/ | vue-pages/ | |
| solo-ceo-tax-optimization/ | ||
| tax-strategy-for-sme/ |
Agents(エージェント)
| User | mdx-playground | tax-assistant |
|---|---|---|
| file-editor.md |
Rules(ルール)
| User | mdx-playground | tax-assistant |
|---|---|---|
| windows.md | architecture.md | (今後追加) |
| issue-tracking.md |
その他
| User | mdx-playground | tax-assistant |
|---|---|---|
| settings.json | settings.local.json | settings.local.json |
| issues/ | issues/ |
まとめ
- ジャンクションによる共有は固有コマンドの混在を招く
- ユーザーレベル(
~/.claude)とプロジェクトレベルに分離するのが正解 - VSCodeのマルチルートワークスペースで両方を同時に編集できる
- ユーザーレベルも独立したgitリポジトリで管理可能