Claude Code

Claude Codeのチーム設定共有|属人化を資産に変えよう

本記事にはプロモーション(広告)が含まる場合があります。

「Claude Codeの設定をチームで共有するにはどうすればいいの?」
「メンバーごとに使い方がバラバラなのを揃えたい!」

Claude Codeを個人で使い込むほど、CLAUDE.mdやSkillsが自分の環境にだけ育っていきます。
その状態でチームに広げようとすると、同じものを全員が作り直すことになるんですよね。

結論から言うと、リポジトリに置いて共有できるものと、プラグインにしないと配れないものの線引きが先でした。
この記事では共有の手順から、配ったものが形骸化しないための運用までをまとめています。

この記事でわかること

  • リポジトリで共有できるものと、できないもの
  • CLAUDE.mdやSkillsをチームに配る手順
  • プラグインにする判断基準と配布のやり方
  • 共有した設定が形骸化する原因
著者について

🧑‍💻

Web Director|Engineer

ITエンジニア歴15年超。設計・実装・運用まで一気通貫でこなすエンジニア。最近はAIエージェント開発・今後のキャリアを軸に発信中。

AIエージェント開発
フルスタックエンジニア
インフラ構築・運用

Claude Codeのチーム設定共有で何が変わるか

Claude Codeのチーム設定を共有すると、いちばん変わるのは出力の揃い方です。

ここでは、共有する前と後で何が違うのかを見ていきます。

設定を共有する前と後の違い

  • 属人化した設定が生んでいる差
  • 共有できるものと、できないものの線引き

属人化した設定が生んでいる差

同じチームなのに、Aさんの出力だけレビューがすんなり通る。

こういうことが起きるとき、たいていはプロンプトの上手さではなくCLAUDE.mdに書いてある前提の差でした。

命名規則、テストの書き方、コミットメッセージの形式。この辺りが書かれているかどうかで、出てくるコードが変わります。本人の腕前ではなく、渡している前提の量が違うだけなんですよね。

設定を共有する前と後の違い

逆に言えば、そこを揃えるだけで全員の初速が上がるということです。私が関わったチームでは、CLAUDE.mdをリポジトリに置いた翌週から、レビューで指摘する内容が明らかに減りました。

オンボーディングの短縮にも効きました。新メンバーが最初の1週間で聞いてくる質問の多くは、CLAUDE.mdに書いてあれば本人が自分で解決できる種類のものだからです。

読めばわかる形になっているので、口頭で伝えていた暗黙のルールが減っていきます。
教える側の負担が下がるぶん、レビューのような本来見るべきところに時間を回せますよ。

共有できるものと、できないものの線引き

ここを先に押さえておかないと、置いたのに効かないという事故が起きます。

リポジトリの .claude/ に置けば全部共有できる、というわけではありませんでした。

置くもの 共有のしやすさ
CLAUDE.md コミットするだけで全員に届く
Skills・サブエージェント 同じリポジトリなら届く
権限ルール(allow) フォルダを信頼するまで効かない
フック 起動したディレクトリの設定しか読まれない
複数リポジトリへの横断配布 プラグインにしないと配れない

とくに引っかかるのが、--add-dir で足したディレクトリの扱いです。

ファイルは読めるようになりますが、そこの .claude/ にある設定の大半は読み込まれません

SkillsとサブエージェントとCLAUDE.mdは例外的に読まれますが、フックやその他の設定は対象外でした。
「隣のリポジトリを足したのにルールが効かない」の正体は、たいていこれです。

Claude Codeの設定をリポジトリで共有する手順

まずは1つのリポジトリの中で共有するところから始めます。

プラグインを作らなくても、ここまでで十分に効果が出ますよ。

リポジトリ内で設定を共有する手順

  • CLAUDE.mdをコミットする
  • settings.jsonを共有用と個人用に分ける
  • Skillsとサブエージェントを置く

【ステップ1】CLAUDE.mdをコミットする

いちばん手軽で、いちばん効きます。

プロジェクトルートに CLAUDE.md を置いてコミットするだけで、全員のセッションで自動的に読み込まれます。

プロジェクトルート/
├── CLAUDE.md          ← コミットする(全員に届く)
└── .claude/
    └── settings.json  ← コミットする(チーム共通の設定)

CLAUDE.mdに書くと効くもの

  • ビルド・テスト・起動のコマンド
  • 命名規則とディレクトリの役割
  • 触ってはいけない場所
  • コミットメッセージの書式

まだ書いていないなら、/init を実行すると下書きを作ってくれます。

そこから不要な部分を削るほうが、ゼロから書くより早いです。

気をつけたいのは分量で、公式ドキュメントでは200行以下に保つことが推奨されています
書き方の詳細はClaude Code CLAUDE.mdの書き方にまとめました。

【ステップ2】settings.jsonを共有用と個人用に分ける

設定ファイルは2つに分かれます。

この使い分けを最初に決めておくと、あとで揉めません。

ファイル コミット 書く内容
.claude/settings.json する チーム共通のルール・禁止事項
.claude/settings.local.json しない 個人の調整・手元だけの許可
~/.claude/settings.json 対象外 全プロジェクト共通の好み

共有側には、禁止事項と全員に守ってほしい設定を書きます。

{
  "permissions": {
    "deny": [
      "Read(//**/.env)",
      "Bash(git push origin main)"
    ],
    "allow": [
      "Bash(npm run test *)",
      "Bash(npm run lint *)"
    ]
  }
}

信頼するまで効かないルールがある

プロジェクトの allow ルールと additionalDirectories は、そのフォルダを信頼するまで適用されません。権限を「与える」設定だからです。逆に denyask は制限しかしないので、信頼の有無に関係なく最初から効きます。

個人用のほうは .gitignore に入れておきましょう。

初回起動時に信頼を確認するダイアログが出るので、そこで承認してもらう必要があります。
リポジトリが勝手に権限を広げられないようになっている、と考えると納得しやすいですね。

【ステップ3】Skillsとサブエージェントを置く

手順が長いものは、CLAUDE.mdではなくSkillsに置きます。

呼ばれたときだけ読み込まれるので、普段のコンテキストを圧迫しません。

.claude/
├── skills/
│   └── deploy-check/
│       └── SKILL.md
└── agents/
    └── reviewer.md

チームで置いておくと便利なもの

  • デプロイ前のチェック手順(Skill)
  • リリースノートの書式(Skill)
  • コードレビュー専用のサブエージェント
  • 調査だけを担当するサブエージェント

この2つをコミットしておけば、pullした人はすぐ同じものを使えます。誰かが改善したSkillも、次のpullで全員に届く形になりますよね。

作り方はClaude Code Skillsの使い方Claude Codeのカスタムエージェントの作り方にまとめてあります。

数が増えてきたら、CLAUDE.mdにSkillの一覧を書いておくのがおすすめです。
存在を知らないまま同じものを作ってしまう、という無駄が減りますよ。

Claude Codeのプラグインでチームに配る方法

リポジトリが1つなら、ここまでの共有で足ります。

2つ目のリポジトリで同じものが欲しくなったら、プラグイン化の出番です。

プラグインで配るまでの流れ

  • プラグインにする判断基準
  • プラグインの最小構成
  • 社内マーケットプレイスから配る

プラグインにする判断基準

判断はシンプルで、置き場所が2つ以上に増えたらプラグインです。

1リポジトリなら .claude/ のままで困りません。

ところが2つ目でコピーした瞬間から、片方だけ直された状態が始まります。

やり方 向いている場面
スタンドアロン(.claude/ 1つのリポジトリ専用・実験中
プラグイン 複数リポジトリ・チーム配布・バージョン管理
設定共有を進める3つの段階

プラグインにすると、スキル名に接頭辞が付きます。

/deploy-check ではなく /my-plugin:deploy-check という呼び方になるわけですね。

少し長くなりますが、これは他のプラグインと名前がぶつからないための仕組みです。
短い名前で呼びたいものだけ .claude/ に残す、という併用もできます。

プラグインの最小構成

プラグインといっても、必要なのはマニフェスト1枚だけでした。

既存の .claude/ からの移行も、フォルダをまるごとコピーするだけで済みます。commands/agents/skills/ はそのままの形で持っていけるので、書き直しは発生しません。

my-plugin/
├── .claude-plugin/
│   └── plugin.json    ← これだけが .claude-plugin/ の中
├── skills/
├── agents/
└── hooks/
    └── hooks.json

よくある間違い

skills/agents/.claude-plugin/ の中に入れてしまう構成ミスが多いです。.claude-plugin/ に入るのは plugin.json だけで、ほかはすべてプラグインのルート直下に置きます。

マニフェストの中身も、これくらいで足りました。

{
  "name": "my-team-tools",
  "description": "チーム共通のレビュー・デプロイ手順",
  "version": "1.0.0"
}

手元で試すときは claude --plugin-dir ./my-plugin で読み込めます。

インストールしなくても動くので、形になるまではこれで回すのが早いです。
フックを移す場合は、settings.jsonhooks をそのまま hooks/hooks.json に移すだけでした。

社内マーケットプレイスから配る

配布には、マーケットプレイスというカタログを1つ作ります。

実体は .claude-plugin/marketplace.json を置いたGitリポジトリです。

社外に出したくないなら、プライベートリポジトリのままで問題ありません。

/plugin marketplace add your-org/claude-plugins
/plugin install my-team-tools@your-org

インストール時に選ぶスコープ

  • User:自分の全プロジェクトで使う
  • Project:このリポジトリの全員で使う
  • Local:このリポジトリで自分だけ使う

GitLabや自ホストのGitでも、URLを渡せば同じように追加できます。インストール後に /reload-plugins を実行すると、再起動せずに反映されました。

移行が終わったら、元の .claude/ 側のファイルは削除しておいてください。サブエージェントは同じ名前だとプロジェクト側の定義が優先されるため、消さないとプラグイン版が使われません。

プラグインの入れ方そのものはClaude Codeプラグインの入れ方で手順を追っています。
初めての人には、こちらを先に読んでもらうとつまずきが減りますよ。

Claude Codeのチーム設定を全員へ行き渡らせる

配る仕組みを作っても、入れてもらえなければ意味がありません。

ここでは、全員の手元に届かせるための設定を見ていきます。

全員に届かせる2つの方法

  • リポジトリ側からインストールを案内する
  • 管理設定で外せないものを配る

リポジトリ側からインストールを案内する

リポジトリの .claude/settings.json にマーケットプレイスを書いておけます。

{
  "extraKnownMarketplaces": {
    "my-team-tools": {
      "source": {
        "source": "github",
        "repo": "your-org/claude-plugins"
      }
    }
  }
}

これを置くと、メンバーがそのフォルダを信頼したタイミングでインストールを促してくれます。

勝手に入るわけではない

ここを勘違いしやすいのですが、設定を置いただけではプラグインは読み込まれません。メンバーがインストールを済ませるまでは「プラグインがインストールされていない」と表示され、実行すべきコマンドが案内されるだけです。導入時はこの一手間をアナウンスしておいてください。

逆に言えば、勝手に他人のマシンでコードが動き出すことはないという安心感もあります。

プラグインは自分の権限で任意のコードを動かせる存在なので、この慎重さは妥当ですね。

導入時にアナウンスすること 忘れると起きること
インストールコマンドの実行 プラグインが読み込まれない
フォルダの信頼ダイアログの承認 共有したallowルールが効かない
/reload-plugins の実行 再起動するまで反映されない

導入のハードルを下げたいなら、READMEにコマンドを1行貼っておくのが手っ取り早いです。
コピペ1回で終わるなら、たいていの人はやってくれますよ。

オンボーディングの手順書に組み込んでしまうのも有効でした。新メンバーが環境を作る流れの中に入れておけば、あとから声をかけて回る必要がなくなります。

管理設定で外せないものを配る

禁止事項のように、個人の判断で外されると困るものもあります。

その場合は、ユーザー設定では上書きできない管理設定として配布するのが確実でした。

MDMで配る形が一般的で、Team・Enterpriseプランならサーバー経由の配信も選べます。

管理設定で配ると強いもの

  • 資格情報の読み取り禁止
  • 確認を飛ばすモードの無効化
  • 組織で承認したプラグインの強制有効化
  • 追加できるマーケットプレイスの制限

ここまでやるかどうかは、扱っているコードの機密度しだいです。数人のチームなら、共有のsettings.jsonとREADMEで十分に回ります。

目安としては、「誰が入れたか把握できなくなったら仕組みに切り替える」くらいでちょうどよかったです。顔が見える範囲なら声をかければ済みますが、部署をまたいだ時点でそれは無理になります。

逆に人数が増えるほど、「全員がちゃんと入れてくれている」という前提は崩れていきました。
信頼ではなく仕組みで担保する段階が、どこかで来ると思っておくといいです。

Claude Codeのチーム設定共有でつまずく点

最後に、共有を始めたあとに起きやすい失敗をまとめます。

どれも「配ったのに効いていない」という形で表れます。

共有した設定が形骸化する原因

  • CLAUDE.mdが誰も読まないサイズに育つ
  • 個人の設定と混ざって効かなくなる
  • 更新が誰にも届かない

CLAUDE.mdが誰も読まないサイズに育つ

共有を始めると、みんなが良かれと思って書き足していきます。

気づけば500行を超えて、肝心のルールが埋もれた状態になっていました。

読まれないだけならまだしも、毎回のセッションでコンテキストを食い続けます。

肥大化を防ぐ運用

  • 特定の作業でしか使わない手順はSkillsへ移す
  • 過去の不具合の顛末はドキュメント側へ移す
  • 月に一度、行数を見て棚卸しする

残すのは「どの作業でも必ず守ってほしいこと」だけです。

この基準を最初にチームで合意しておくと、追記のたびに迷わなくなります。

私は「この行が読まれなくて事故になるか」で判断しています。
ならないものは、たいていCLAUDE.mdの外に出せました。

個人の設定と混ざって効かなくなる

共有したはずのルールが、なぜか人によって効いていない。

この場合、個人の設定側で打ち消されている可能性があります。

権限まわりではどのレベルであれ拒否されたものは、ほかで許可し直せません

効いていないときに確認する順番

  • /permissions でルールの出どころを確かめる
  • /memory でどのCLAUDE.mdが読まれたか確かめる
  • フォルダの信頼ダイアログを承認しているか確かめる

この3つで、だいたいの原因は特定できます。

とくに信頼ダイアログは、断ったまま忘れているケースが多いです。

「No, continue without these permissions」を選ぶと、共有側のallowルールは無視されたまま作業が続きます。
本人も気づいていないので、聞いて回るしかない厄介なやつですね。

更新が誰にも届かない

最後は、いちばん静かに進む失敗です。

プラグインを更新しても、各自が入れ直さなければ古いまま動き続けます。

Claude Codeには自動更新の仕組みがありますが、サードパーティや自作のマーケットプレイスは既定でオフでした。

更新を届かせるための手

  • /plugin のMarketplacesタブで自動更新を有効にする
  • 管理設定側で自動更新を既定オンにして配る
  • 更新のたびに一言アナウンスする

管理者が配る設定に自動更新のフラグを入れておけば、各自の操作なしで有効になります。

そこまでやらない規模なら、素直に声をかけるのがいちばん確実です。

共有の仕組みは、作って終わりではありません。
配ったものが本当に使われているかを、たまに見に行くところまでが運用でした。

Claude Codeのチーム設定共有に関するよくある質問

ここでは、チームで共有を始めるときによく出る疑問に答えていきます。

Q:CLAUDE.mdはリポジトリにコミットして大丈夫ですか?

A:問題ありません。むしろコミットしないと共有になりません。プロジェクトルートに置けば、pullしたメンバー全員のセッションで自動的に読み込まれます。

個人的なメモを書きたい場合は CLAUDE.local.md を使い、こちらは .gitignore に入れておきます。認証情報のような秘密は、どちらにも書かないでください。

Q:プラグインにしないと共有できませんか?

A:1つのリポジトリで完結するなら、.claude/ に置いてコミットするだけで十分です。プラグインが必要になるのは、複数のリポジトリで同じものを使いたくなったときです。

目安としては、置き場所が2つ以上になったタイミングですね。コピーが始まると、片方だけ直された状態が必ず生まれます。

Q:設定を置いたのにメンバーの環境で効きません。なぜですか?

A:まず信頼ダイアログを承認しているか確認してください。プロジェクトの allow ルールは、フォルダを信頼するまで適用されません。

フックの場合は別の原因もあります。フックは起動したディレクトリの .claude/ からしか読まれないため、--add-dir で足したリポジトリのフックは動きません。

Q:プラグインを社外に公開せず、社内だけで配れますか?

A:配れます。マーケットプレイスの実体はGitリポジトリなので、プライベートリポジトリに置けば社内限定になりました。

GitHub以外でも、GitLabや自ホストのGitサーバーをURLで指定できます。アクセス権を持つメンバーだけがインストールできる形ですね。

まとめ

Claude Codeのチーム設定共有は、CLAUDE.mdをコミットするところから始まります。

1リポジトリなら .claude/ のままで十分で、置き場所が2つ以上に増えたらプラグインに切り出す。この順番が無理のない進め方でした。

今日からできること

  • 手元のCLAUDE.mdから、チームに配れる部分を抜き出す
  • settings.jsonsettings.local.json の役割を決める
  • よく使うSkillを1つ、リポジトリに置いてみる

配って終わりにしないことだけ、気をつけてください。誰も読まないCLAUDE.mdは、ないのと同じです。

まずは自分の環境で育った設定を眺めて、「これ、他の人も欲しいのでは」と思うものを1つ選んでみてください。
そこから始めると、共有の輪は自然に広がっていきます。

Claude Codeのような道具を使いこなす力は、生成AIを業務にどう組み込むかという視点とセットで伸びます。講座として学ぶ選択肢を知っておきたい方には、キカガクの「生成AIビジネス実践コース」の料金と学べる内容が参考になります。