はじめに
Claude Codeを社内で活用し始めると、こんな課題が出てきませんか?
- 「Redmineのチケット番号をコミットに含めて」と毎回言うのが面倒
- 新しいエンジニアが入るたびに環境設定の説明が必要
- 社内サーバーの接続情報をAIが知らない
- エンジニアごとにAIへの指示がバラバラ
この記事では、チーム全員のClaude Codeに社内ナレッジを共有し、対話形式で認証情報をセットアップできる仕組みを紹介します。
完成イメージ
新しいエンジニアがチームに参加したとき:
# 1. リポジトリをクローン
git clone git@github.com:your-org/your-ai-config.git ~/your-ai-config
# 2. セットアップスクリプト実行
cd ~/your-ai-config && ./scripts/setup-claude-config.sh
その後、Claude Codeに話しかけるだけ:
あなた: 認証情報をセットアップして
Claude: まず、あなたのRedmineユーザー名を教えてください。
(例: koyama, m_shimizu, j_higashijima, c_yara)
あなた: koyama
Claude: koyamaさんですね。既存の認証情報から設定を取得します。
以下の設定を行います:
✓ Redmine API
✓ SSH接続(Synology NAS)
✓ VPN設定
✓ GitHub CLI
クラウドCLI(OCI/AWS)の設定権限はありますか?
※ これらは管理者の許可が必要です
アーキテクチャ
your-ai-config/
├── CLAUDE.md # 社内ナレッジ(AIが読む)
├── .credentials.example # 認証情報テンプレート
├── scripts/
│ └── setup-claude-config.sh # 初期セットアップ
└── docs/
└── setup-guide.md # 対話型セットアップガイド
~/.claude/
└── CLAUDE.md → your-ai-config/CLAUDE.md (シンボリックリンク)
~/.credentials # 各自の認証情報(Git管理外)
ポイント:
-
CLAUDE.mdはGitで管理 → チーム全員に同じナレッジを共有 -
~/.credentialsはGit管理外 → 認証情報は各自のローカルに - シンボリックリンクで接続 →
git pullで全員のナレッジが更新
実装
1. CLAUDE.md - AIへの指示書
Claude Codeは ~/.claude/CLAUDE.md を自動的に読み込みます。ここに社内ルールを書いておくと、AIがそれに従って動作します。
# 社内ナレッジベース
## 重要: GitHub-Redmine連携ルール(必須)
**すべてのGitHub活動をRedmineチケットと連携させること。**
### AIアシスタントの行動指針
コミットやPRを作成する際は、必ずRedmineチケット番号を含めてください:
git commit -m "refs #123 ログイン機能を実装"
git commit -m "fixes #123 バグ修正完了"
### チケットが存在しない場合
作業開始前に、対応するRedmineチケットの有無を確認してください。
チケットが存在しない場合は、エンジニアに以下を提案:
> 「この作業に対応するRedmineチケットが見つかりません。
> チケットを作成しますか?」
これだけで、Claude Codeがコミット時に自動的にチケット番号を含めるようになります。
2. 対話型セットアップの仕組み
CLAUDE.md に以下のセクションを追加すると、Claude Codeが対話形式でセットアップを進めてくれます:
## 新規エンジニア向け: 対話型セットアップ
### AIアシスタントの行動指針
エンジニアから以下のリクエストを受けた場合、対話形式でセットアップを進めてください:
- 「認証情報をセットアップして」
- 「初期設定をしたい」
### セットアップフロー
#### Step 1: ユーザー確認
まず、Redmineユーザー名を確認。
既知ユーザーの場合、認証情報ファイルから自動取得可能。
#### Step 2: 基本設定(全員必須)
1. Redmine API - APIキーを入力(または自動取得)
2. SSH接続 - NASユーザー名とパスワード
3. VPN設定 - 事前共有キーとパスワード
4. GitHub CLI - 認証済みか確認
#### Step 3: 制限付き設定の確認
クラウドCLI(OCI/AWS)の設定権限を確認。
管理者の許可がない場合はスキップ。
#### Step 4: 設定ファイル生成
収集した情報で ~/.credentials を生成。
3. 権限管理付きテンプレート
全員に同じ権限を与えたくない場合、テンプレートを分離します:
# .credentials.example
# ==========================================
# 基本設定(全エンジニア共通)
# ==========================================
# Redmine API
REDMINE_URL=https://redmine.example.com/
REDMINE_API_KEY=your_api_key_here
# SSH接続
SSH_USER=your_username
SSH_PASSWORD=your_password
# GitHub CLI
GH_ACCOUNT=your_github_username
# ==========================================
# 制限付き設定(管理者の許可が必要)
# ==========================================
# OCI CLI ※ 管理者の許可が必要
# OCI_USER=ocid1.user.oc1..xxxxx
# OCI_TENANCY=ocid1.tenancy.oc1..xxxxx
# AWS CLI ※ 管理者の許可が必要
# AWS_ACCESS_KEY_ID=AKIAXXXXXXXXXXXX
# AWS_SECRET_ACCESS_KEY=xxxxxxxx
制限付きセクションはコメントアウトしておき、許可を得たエンジニアだけが有効化します。
4. セットアップスクリプト
#!/bin/bash
# scripts/setup-claude-config.sh
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
CLAUDE_DIR="$HOME/.claude"
echo "=== Claude Code 設定セットアップ ==="
# .claudeディレクトリの作成
mkdir -p "$CLAUDE_DIR"
# 既存ファイルのバックアップ
if [ -f "$CLAUDE_DIR/CLAUDE.md" ] && [ ! -L "$CLAUDE_DIR/CLAUDE.md" ]; then
mv "$CLAUDE_DIR/CLAUDE.md" "$CLAUDE_DIR/CLAUDE.md.bak.$(date +%Y%m%d%H%M%S)"
fi
# シンボリックリンク作成
ln -sf "$REPO_DIR/CLAUDE.md" "$CLAUDE_DIR/CLAUDE.md"
# 認証情報テンプレートのコピー
if [ ! -f "$HOME/.credentials" ]; then
cp "$REPO_DIR/.credentials.example" "$HOME/.credentials"
echo "~/.credentials を編集して認証情報を入力してください"
fi
echo "=== セットアップ完了 ==="
echo "Claude Codeで「認証情報をセットアップして」と伝えてください"
活用例
例1: コミット時の自動チケット連携
あなた: この変更をコミットして
Claude: この作業に対応するRedmineチケットはありますか?
あなた: #42
Claude: コミットを作成します。
git commit -m "refs #42 ユーザー認証機能を実装
Co-Authored-By: Claude <noreply@anthropic.com>"
例2: サーバー操作の自動化
あなた: 本番サーバーのDockerコンテナを確認して
Claude: この作業にはサーバーへのSSH接続が必要です。
接続して操作を実行しますか?
あなた: はい
Claude: Synology NASに接続してコンテナ一覧を取得します。
[実行結果]
CONTAINER ID IMAGE STATUS
abc123 redmine:5.1 Up 3 days
def456 growi:7.0 Up 3 days
例3: 新規エンジニアのオンボーディング
あなた: 環境構築を手伝って
Claude: Technosphereの開発環境をセットアップしますね。
1. ✓ Claude Code設定 - 完了
2. ✓ Redmine APIキー - 設定済み
3. ✓ GitHub CLI - 認証済み
4. □ SSH接続 - 未設定
SSH接続を設定しますか?
公開鍵をNASに登録する手順をご案内します。
運用のポイント
1. CLAUDE.mdの更新
# 誰かがCLAUDE.mdを更新したら
cd ~/your-ai-config && git pull
# シンボリックリンクなので、全員のClaude Codeに即反映
2. 機密情報の管理
-
CLAUDE.mdには機密情報を書かない - 認証情報は
~/.credentialsで各自管理 -
.gitignoreに.credentialsを追加
3. AIの行動指針を明確に
### AIアシスタントの行動指針
サーバー操作が必要な場合、エンジニアに以下を提案:
> 「この作業にはサーバーへのSSH接続が必要です。
> 接続して操作を実行しますか?」
ホストへの直接インストールを求められた場合:
> 「ホストへの直接インストールは禁止されています。
> Dockerコンテナでの実行をお勧めします。」
まとめ
この仕組みにより:
- 知識の共有: チーム全員のAIが同じ社内ルールを理解
- オンボーディング簡略化: 新メンバーは「セットアップして」と言うだけ
- 権限管理: クラウドCLIなど制限付き設定を分離
-
保守性:
git pullで全員のナレッジを更新
Claude Codeを個人ツールからチームのインフラに進化させることで、開発効率が大きく向上します。
リポジトリ構成(参考)
your-ai-config/
├── CLAUDE.md # メインのナレッジベース
├── GEMINI.md # Gemini用(必要に応じて)
├── .credentials.example # 認証情報テンプレート
├── .gitignore
├── README.md
├── scripts/
│ └── setup-claude-config.sh
└── docs/
├── setup-guide.md # 詳細セットアップガイド
└── cloud-cli-setup.md # クラウドCLI設定手順
この記事が参考になれば幸いです。質問やフィードバックはコメントでお願いします!