Claude Code にプロジェクトの知識を渡す

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

前回の記事で WordPress の開発環境が整いました。この記事では、Claude Code の開発をさらに効率化するためのツールを追加します。

MySQL クライアントを導入して Claude Code が DB 構造を参照できるようにし、Composer プロジェクトで vendor を置かずに開発する考え方を整理します。

MySQL クライアントのインストール

Claude Code に DB の構造を把握させたい場面があります。テーブル定義の確認、カラム名の参照、既存データの傾向を見てからコードを書く、といったケースです。そのために Ubuntu に MySQL クライアントだけをインストールします。サーバー(mysqld)は入れません。

apt の一時開放とインストール

記事6で設定した UFW のアウトバウンド制限により、HTTP(80/tcp)はブロックされています。apt を使うために一時的に開放します。

# 管理ユーザーで実行

# apt 用に HTTP を一時開放
sudo ufw allow out 80/tcp

# パッケージ情報を更新
sudo apt update

# MySQL クライアントのみインストール
sudo apt install mysql-client -y

# HTTP を閉じる
sudo ufw delete allow out 80/tcp

# 確認
mysql --version
mysql  Ver 8.0.xx-0ubuntu0.24.04.x for Linux on x86_64 ((Ubuntu))

mysql-client パッケージはクライアントツール(mysql コマンド)だけを含むメタパッケージです。サーバーデーモン(mysqld)はインストールされないため、ディスクもリソースも最小限で済みます。

DB 読み取り専用ユーザーの用意

Claude Code が接続する DB ユーザーは、SELECT のみ許可された読み取り専用ユーザーを使用してください。DB サーバー側で事前に作成しておく必要があります。

DB 接続情報の管理

DB の接続情報(ホスト・ポート・ユーザー・パスワード)は Git に含めたくない情報です。.local/ はメインPC 向けの設定ディレクトリでしたが、Ubuntu(Claude Code)向けの設定は .local-cc/ に分けて管理します。

ディレクトリ用途方向
.local/メインPC 向けの設定(rsync 接続情報など)—(メインPC 内で完結)
.local-cc/Ubuntu(Claude Code)向けの設定(DB 接続情報など)メインPC → Ubuntu(一方通行)

.local-cc/ ディレクトリの作成

メインPC 側で .local-cc/ ディレクトリを作成し、DB 接続情報を database.json として配置します。

{
  "host": "192.168.xxx.xxx",
  "port": 13306,
  "database": "sample_wp",
  "user": "cc_readonly",
  "password": "xxxxxxxx"
}

値はご自身の環境に合わせて書き換えてください。

.gitignore について

.local-cc/ はパスワードを含むため Git 管理から除外する必要がありますが、記事9で作成した .gitignore に既に含まれています。

rsync ルールの更新

.local-cc/ は push-to-ubuntu でメインPC から Ubuntu に送ります。sync-pull(Ubuntu → メインPC)には追加しません。一方通行です。

push-to-ubuntu.cmd の INCLUDE_RULES に以下を追加してください。

set INCLUDE_RULES=%INCLUDE_RULES% --include="/.local-cc/***"

DB 接続の確認

push-to-ubuntu で .local-cc/database.json を Ubuntu に送ったら、専用ユーザーから DB に接続できることを確認します。

# 専用ユーザーに切り替え
sudo su - cc-sample-wp

# DB に接続(ホスト・ポート・ユーザーは環境に合わせて変更)
mysql -h <DBサーバーIP> -P <ポート> -u <ユーザー名> -p <データベース名>

# 例:
# mysql -h 192.168.1.10 -P 13306 -u cc_readonly -p sample_wp

パスワードを入力して接続できたら、読み取りだけ可能なことを確認しておきます。

-- テーブル一覧の確認
SHOW TABLES;

-- 適当なテーブルの構造を確認
DESCRIBE wp_posts;

-- 書き込みが拒否されることを確認
INSERT INTO wp_posts (post_title) VALUES ('test');
-- → ERROR: INSERT command denied

SHOW TABLESDESCRIBE が成功し、INSERT が拒否されれば正常です。Claude Code はこの接続情報を使って DB 構造を参照し、それを踏まえたコードを生成できるようになります。

Composer プロジェクトでの考え方

WordPress 自体には Composer は不要ですが、案件によっては Composer でライブラリを管理するケースもあります。ここでは、この環境で Composer プロジェクトを扱う際の考え方を整理しておきます。

vendor は Ubuntu に置かない

Composer の vendor/ ディレクトリは Ubuntu に配置しません。理由は2つあります。

  • Ubuntu に実行環境がない — この環境では Ubuntu 側に PHP をインストールしていないため、composer install を実行できません。vendor は メインPC 側で管理します
  • コンテキストの浪費を防ぐ — vendor には大量のファイルが含まれます。Claude Code のコンテキストウィンドウを消費するだけで、カスタマイズには不要です

composer.json だけで十分

Claude Code にライブラリの情報を伝えるには、composer.json をプロジェクトルートに置くだけで十分です。Claude Code は composer.jsonrequire セクションを読むことで、どのライブラリがインストールされているか、どのバージョンを使っているかを把握できます。

実際のコードは vendor の中身を見なくても、ライブラリのクラス名や API を知識として持っています。composer.json で「このプロジェクトは monolog/monolog を使っている」と分かれば、適切なコードを生成できます。

現在の状態まとめ

ここまでで、開発ツールの追加設定が完了しました。

  • MySQL クライアントをインストール済み(サーバーは不要)
  • DB 読み取り専用ユーザーで接続確認済み
  • .local-cc/database.json に DB 接続情報を配置済み
  • push-to-ubuntu に .local-cc/ の同期ルールを追加済み

これで、Claude Code が DB 構造を参照しながらコードを生成できる環境が整いました。次の記事では、日々の開発サイクルの実際の流れを紹介します。