こんにちは。株式会社リンクネット ソリューション事業部の高橋です。
弊社では一部の案件でClaude Codeを用いたvibeコーディングを試験的に行っております。 その中で、効果的だった設定や利用方法をご紹介します。
プロジェクトルートに配置する設定ファイルで、Claude Codeが自動的に読み込みます。
# スラッシュコマンドでCLAUDE.mdを作成する
/init# CLAUDE.md
## プロジェクト概要
[プロジェクトの説明]
## 開発環境のセットアップ
[セットアップ手順]
## 一般的な開発コマンド
[よく使うコマンド一覧]
## プロジェクトアーキテクチャ
[技術スタック、ディレクトリ構造]
## コード品質と規約
[コーディング規約、Linter設定]
## 重要な注意事項
[プロジェクト固有のルール]| セクション | 内容 |
|---|---|
| 技術スタック | フレームワーク、言語、バージョン |
| ディレクトリ構造 | 主要ディレクトリの役割 |
| 命名規則 | ファイル名、変数名、クラス名の規約 |
| コーディング規約 | PHP/TypeScriptの規約 |
| テスト方針 | テストフレームワーク、実行方法 |
| 禁止事項 | やってはいけない操作(例:直接コミット禁止) |
Serena MCPは、LLMをIDE並みの機能を持つコーディングエージェントに変える強力なツールキットです。 シンボルレベルでのコード理解、セマンティックな編集、プロジェクト固有のメモリ機能を提供します。
主な機能:
.serena/memories/ にメモリファイルを保存し、セッション間でコンテキストを維持Serenaは uv(Pythonパッケージマネージャー)で管理されています。
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Homebrew (macOS)
brew install uvインストール確認:
uv --version# プロジェクトディレクトリで実行
claude mcp add serena -- uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context ide-assistant --project $(pwd)Serenaを初めて使用する際は、Onboardingを実行してプロジェクトを理解させます。
依頼例:
Serenaのオンボーディングを開始してくださいまたは英語で:
Start Serena onboardingOnboardingで行われること:
.serena/memories/ にメモリファイル(.md)を生成.serena/project.yml に設定ファイルを生成注意: Onboardingは多くのファイルを読み込むため、トークンを消費します。 トークン制限に注意してください。
Onboarding後、以下のディレクトリ構造が作成されます:
.serena/
├── memories/ # メモリファイル(Markdown形式)
│ ├── architecture.md # アーキテクチャ情報
│ ├── technologies.md # 使用技術
│ ├── conventions.md # コーディング規約
│ └── ... # その他のメモリ
├── cache/ # インデックスキャッシュ
│ └── typescript/
│ └── document_symbols_cache_*.pkl
└── project.yml # プロジェクト設定メモリの確認:
Serenaのメモリを表示してくださいメモリの更新:
このプロジェクトでは認証にLaravel Breezeを使用していることをメモリに追加してくださいメモリの削除:
古いメモリを削除してくださいセッション間での活用: 新しい会話を開始した際に:
メモリを読み込んで、前回の作業を続けてくださいシンボル検索を高速化するため、インデックスを作成します。
依頼例:
プロジェクトのインデックスを作成してくださいインデックスは .serena/cache/ に保存され、次回以降の検索が高速化されます。
| ツール | 説明 |
|---|---|
find_symbol |
コードベース内のシンボルを検索 |
find_referencing_symbols |
シンボルの参照箇所を検索 |
get_symbol_documentation |
シンボルのドキュメントを取得 |
insert_after_symbol |
シンボルの後にコードを挿入 |
delete_lines |
行範囲を削除 |
create_text_file |
ファイルを作成/上書き |
execute_shell_command |
シェルコマンドを実行 |
read_memory |
メモリを読み込み |
write_memory |
メモリを書き込み |
delete_memory |
メモリを削除 |
.serena/project.yml で安全設定を行えます:
# 読み取り専用モードで開始(推奨)
read_only: true
# プロジェクト名
project_name: my-project
# 除外するツール
excluded_tools:
- execute_shell_command # シェルコマンド実行を無効化Serena起動時、ブラウザでダッシュボードが表示されます:
http://localhost:24282/dashboard/index.htmlダッシュボードでは以下が確認できます:
Serenaのキャッシュとメモリはリポジトリに含めないことを推奨:
# Serena MCP
.serena/※ チームで共有したい場合は、.serena/memories/ のみコミットする選択肢もあります。
Laravel開発に特化したMCPサーバーで、以下の機能を提供します。
| ツール | 説明 |
|---|---|
search-docs |
バージョン固有のドキュメント検索 |
tinker |
PHPコードの実行・デバッグ |
database-query |
データベースクエリの実行 |
browser-logs |
ブラウザログの読み取り |
list-artisan-commands |
Artisanコマンド一覧表示 |
get-absolute-url |
正確なURL生成 |
依頼例:
Inertia.js v2の遅延プロパティについてドキュメントを検索して説明してください# エラーログを確認してClaude Codeに解析を依頼
cat storage/logs/laravel.log | tail -100依頼例:
このエラーログを解析して、問題点と修正案を提示してください:
[エラーログを貼り付け]| コマンド | 説明 |
|---|---|
/init |
新規プロジェクトのCLAUDE.mdを自動生成 |
/compact |
長い会話を要約してコンテキストを節約 |
/review |
コードレビューを依頼 |
/clear |
会話履歴をクリア |
複雑な機能追加時は、まず計画を立てさせてから実装に進むことで、手戻りを防ぎ効率的に開発できます。
依頼例:
週次発注機能に承認ワークフローを追加したい。
まず実装計画を立てて、必要なファイル一覧を示してください。✅ 具体的で明確
「PurchaseOrderControllerのindex()メソッドで、
仕入先でフィルタリングできる機能を追加してください。
既存のコードスタイルに従ってください。」
✅ コンテキストを提供
「現在、週次発注機能を開発中です。
前回はモデルを作成しました。
今回はコントローラーとビューを作成してください。」
✅ 段階的に依頼
「まず設計を確認させてください。
その後、実装に進みます。」❌ 曖昧すぎる
「いい感じにしてください」
❌ 一度に多すぎる
「全機能を一度に実装してください」
❌ コンテキストなし
「バグを直して」