コンテンツにスキップ

CLAUDE.mdではなくCODE_STANDARDS.mdに書いてレビュアーエージェントに渡す

概要

Claude Codeのコーディング規約をCLAUDE.mdに書くと実装フェーズのトークンを消費し続ける。代わりにCODE_STANDARDS.mdに分離し、PRごとにレビュアーエージェントが参照するパターンが効率的。

詳細

問題: CLAUDE.mdにコーディング規約を書くコスト

CLAUDE.mdに書いた内容は、実装の全フェーズでコンテキストに含まれる
→ 毎回トークンを消費する
→ 実装中は不要な情報でも常にコンテキストを圧迫する

解決策: CODE_STANDARDS.mdに分離する

CLAUDE.md        → 最低限のプロジェクト概要・重要な注意事項のみ
CODE_STANDARDS.md → コーディング規約・スタイルガイド・命名規則など

レビュアーエージェントの設定例

# .claude/agents/reviewer.md
---
name: code-reviewer
description: PRのコードをCODE_STANDARDS.mdに基づいてレビューする
---

CODE_STANDARDS.mdを参照し、以下を確認してください:
1. 命名規則の遵守
2. エラーハンドリングのパターン
3. テストカバレッジ
4. ドキュメントコメントの有無

GitHub Actions での自動レビュー

# .github/workflows/review.yml
name: AI Code Review
on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Claude Code Reviewer
        run: |
          claude -p "$(cat .claude/agents/reviewer.md)" \
            --context CODE_STANDARDS.md \
            "Review the changes in this PR"

トークン効率の比較

従来(CLAUDE.mdに全部):
  実装フェーズ: コンテキスト = プロジェクト概要 + 規約 + コード
  レビューフェーズ: コンテキスト = プロジェクト概要 + 規約 + コード

新方式(分離):
  実装フェーズ: コンテキスト = プロジェクト概要 + コード(規約なし)
  レビューフェーズ: コンテキスト = 規約 + 変更差分のみ
  → 実装フェーズのトークン消費を大幅削減

CODE_STANDARDS.mdの書き方例

# Code Standards

## 命名規則
- 関数名: camelCase
- 定数: UPPER_SNAKE_CASE
- インターフェース: IPrefix は使わない

## エラーハンドリング
- エラーは必ずラップして文脈を付ける: fmt.Errorf("failed to X: %w", err)
- panicは使わない(テストコードを除く)

## テスト
- テーブルドリブンテストを使う
- テスト関数名: TestXxx_scenario形式

## コメント
- 公開関数には必ずGoDoc形式のコメントを書く

なぜ重要か / いつ使うか

  • Claude Codeを使ったチーム開発でコーディング規約の自動チェックをしたいとき
  • CLAUDE.mdが肥大化してトークン消費が気になるとき
  • PRレビューの品質を一定に保ちたいとき
  • 人間のレビュアーは設計・ロジックに集中し、スタイルチェックをAIに任せたいとき