TL;DR
-
CLAUDE.mdでプロジェクト固有の規約を一元管理するとレビューコストが激減する - サブエージェント並列実行 (
Taskツール) を意識した指示設計で処理速度が大幅向上 - カスタムスラッシュコマンドとパーミッション設定を組み合わせると安全かつ高速に回せる
1. CLAUDE.md を「生きたドキュメント」として育てる
Claude Code はリポジトリルートの CLAUDE.md を自動で読み込み、コンテキストとして扱います。単なるルール集ではなく、プロジェクト固有の制約・技術スタック・コマンド一覧を書くことで、毎回の指示を大幅に短縮できます。
# プロジェクト規約
## 技術スタック
- Runtime: Node.js 22 (ESM only)
- フレームワーク: Next.js 15 (App Router)
- スタイリング: Tailwind CSS v4
- テスト: Vitest
## 必須コマンド
- ビルド: `pnpm build`
- テスト: `pnpm test`
- Lint: `pnpm lint`
## コーディング規約
- `any` 型は禁止。`unknown` を使うこと
- Server Component をデフォルトとし、必要な場合のみ `"use client"` を付与
- コメントは日本語で書く
CLAUDE.md を書いた後は Claude Code 自身に「このドキュメントを改善して」と投げると、実際の実装を読んで不足情報を補完してくれます。
2. タスク粒度を「1 コミット 1 目的」に揃える
Claude Code は長大な指示に対して思考が分散しがちです。効果的なのは 「1 指示 = 1 コミット相当の変更」 に粒度を揃えること。
悪い例(大きすぎる指示):
認証機能全体を実装して。JWTとリフレッシュトークンと
ログアウトAPIとミドルウェアも含めて。
良い例(分割した指示):
Step 1: JWT 検証ユーティリティを src/lib/auth/jwt.ts に実装して。
入力: string, 出力: { userId: string } | null
Step 2: /api/auth/refresh エンドポイントを実装して。
jwt.ts のユーティリティを使うこと。
Step 3: src/middleware.ts で /dashboard 以下を保護して。
未認証なら /login にリダイレクト。
段階的に確認しながら進めることで、途中での方向修正コストを最小化できます。
3. --dangerously-skip-permissions ではなく細粒度パーミッション設定を使う
CI 環境や自動化スクリプトで Claude Code を回すとき、--dangerously-skip-permissions フラグを使うと全操作が許可されてしまい危険です。代わりに設定ファイルで 許可/禁止リストを明示 する方法が推奨されています。
~/.claude/settings.json または .claude/settings.json (プロジェクトローカル):
{
"permissions": {
"allow": [
"Bash(pnpm:*)",
"Bash(git:*)",
"Bash(cat:*)",
"Bash(ls:*)",
"Read(*)",
"Write(src/**)",
"Write(tests/**)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(curl:*)",
"Bash(wget:*)"
]
}
}
これにより「テストは自由に実行できるが、外部通信や破壊的コマンドは拒否」という安全なサンドボックスを作れます。
4. カスタムスラッシュコマンドでレビューフローを自動化する
.claude/commands/ ディレクトリにマークダウンファイルを置くと、/ で呼び出せるカスタムコマンドになります。
.claude/commands/review-pr.md:
## PR レビュー実行
以下の観点で `$ARGUMENTS` の差分をレビューしてください。
1. **型安全性**: `any` 型の使用・型アサーション (`as`) の濫用がないか
2. **パフォーマンス**: 不要な再レンダリング・N+1 クエリがないか
3. **セキュリティ**: XSS / SQLi / 環境変数の直接出力がないか
4. **テスト**: 追加した関数に対応するテストがあるか
5. **CLAUDE.md 規約**: プロジェクト規約に違反していないか
レビュー結果は markdown のテーブルで出力し、
severity を `Critical / Warning / Info` で分類してください。
Claude Code 上で /review-pr HEAD~1 と入力するだけで、プロジェクト固有の観点でレビューが走ります。
5. 並列サブエージェントを活用して調査を高速化する
Claude Code の Task ツールは、独立した調査タスクを並列で実行できます。この特性を活かすには、依存関係のない作業を同時に依頼する指示設計が重要です。
以下を並列で調査して、それぞれ調査結果をまとめてください:
A) src/components/ 配下で "use client" を使っているファイル一覧と
それが本当に必要かどうかの判断
B) package.json の dependencies で現在コード中に import されていない
パッケージ一覧 (不要依存の検出)
C) TypeScript の strict モードで検出されるエラー件数と
頻度の高いエラー種別 Top 3
A・B・C はそれぞれ独立しているため、Claude Code が内部でサブエージェントに分配して並列実行します。直列で実行するより体感で 2〜3 倍速くなります。
6. git worktree と組み合わせてブランチ並列作業を行う
Claude Code は 1 セッションで 1 ディレクトリを操作します。複数の機能を並行開発するときは git worktree で作業ツリーを複数作成し、ターミナルを分けて別々の Claude Code セッションを走らせるのが実用的です。
# メインブランチの作業ツリーとは別に feature ブランチ用を作成
git worktree add ../my-project-feat-auth feature/auth
git worktree add ../my-project-feat-payment feature/payment
# ターミナル A でauth 機能を Claude Code に実装させる
cd ../my-project-feat-auth && claude
# ターミナル B で payment 機能を Claude Code に実装させる
cd ../my-project-feat-payment && claude
各セッションは独立したファイルシステムを見るため、ファイル競合が起きません。マージは人間が最後に確認してまとめます。
7. # ドキュメント記法でコンテキスト圧縮を活用する
Claude Code では # に続けてファイルパスやURLを書くことで、そのファイルの内容を即座に参照できます。長い「〇〇ファイルを読んで」という指示よりコンテキスト効率が高いです。
# src/lib/api/client.ts の実装を参考に、
# src/lib/api/webhook.ts を実装してください。
エラーハンドリングは既存クライアントに合わせること。
さらに、すでに確認した大きなファイルは会話を跨いで再参照するとトークンが膨れます。重要な情報だけを CLAUDE.md か別の reference ファイルに抽出して要約しておくと、長期セッションでのコスト効率が改善します。
まとめ
| テクニック | 主な効果 |
|---|---|
CLAUDE.md の整備 |
毎回の指示を短縮・一貫性向上 |
| タスク粒度の適正化 | 方向修正コストの最小化 |
| 細粒度パーミッション | 自動化環境での安全性確保 |
| カスタムスラッシュコマンド | チームのワークフロー標準化 |
| 並列タスク指示 | 調査フェーズの 2〜3 倍速化 |
git worktree 連携 |
複数機能の並行開発 |
# 記法によるコンテキスト圧縮 |
長期セッションのトークン効率化 |
Claude Code は「AIにコードを書かせるツール」というより「AIと一緒にソフトウェアを設計するための協調環境」として捉えると、使い方が大きく変わります。上記 7 つは今日から試せるものばかりなので、ぜひ自分のプロジェクトに合った形に調整してみてください。
参考リンク
✍️ 本記事の著者: 合同会社ジモラボ
ジモラボは、八王子を拠点に AI を活用した SaaS を多数開発しています。本記事の技術検証もそうした開発過程の副産物です。
- 🌐 公式サイト: https://locallab.jp
- 🔍 AI SEO 最適化 SaaS: lookupai.jp
- 📺 YouTube: @locallab_llc
- ✉️ お問い合わせ: info@locallab.jp
興味を持っていただけたら、ぜひ各 SNS のフォローもお願いします!