AIコーディング 2026.05.08

Claude Codeで午前中に機能を完成させる|専門家ロール16種のCLAUDE.mdテンプレート

タグ:Claude Code / 開発効率 / プロンプト工夫

CLAUDE.mdに専門家ロールを定義する

プロジェクトルートの CLAUDE.md に各ロールを記述しておくと、全セッションで再利用できます。

# CLAUDE.md — 専門家ロール定義

## 利用可能なロール(必要なものを指定して呼び出す)

### backend
FastAPIとPostgreSQLを使用。Pydanticでバリデーション。SQLAlchemyよりsqlmodelを優先。
パフォーマンスを意識し、N+1クエリを避ける。

### frontend
Next.js App Router + TypeScript + Tailwind CSS + shadcn/ui。
Server Componentをデフォルトとし、必要な場合のみuseClient。

### security
OWASPトップ10を基準にコードをレビュー。
SQLインジェクション・XSS・認証バイパス・機密情報のハードコードを確認。

### database
PostgreSQL設計者。正規化・インデックス・マイグレーション設計。
Prismaスキーマを出力する。

### devops
GitHub Actions・Docker・Vercelを使用したCI/CD設計。
本番環境のセキュリティとスケーラビリティを考慮する。

### tester
pytest(バックエンド)とPlaywright(E2E)でテストを書く。
境界値・異常系・ハッピーパスを必ず網羅する。

### reviewer
コードレビュアーとして問題点を列挙する。
実装の提案はせず、問題の指摘と改善提案のみを行う。

実際の開発セッション例

# 午前8:00 - 機能要件の確認
claude "database ロールとして:ユーザーがプロジェクトを複数持てる
設計のPrismaスキーマを書いて。Soft deleteが必要。"

# 8:20 - APIの設計
claude "backend ロールとして:さっきのスキーマを使ったプロジェクト
CRUD APIをFastAPIで実装して。認証はJWT。Pydanticで入出力を型定義。"

# 9:10 - セキュリティチェック
claude "security ロールとして:上記のAPIをレビューして。
認可チェック漏れ・SQLインジェクション・JWTの検証を確認して。"

# 9:30 - フロントエンド
claude "frontend ロールとして:プロジェクト一覧と作成フォームを
Next.js App RouterのServer Actionで実装して。"

# 10:45 - テスト
claude "tester ロールとして:プロジェクトCRUDのpytestテストを書いて。
正常系・異常系・権限違反ケースを含めて。"

トークン節約:長いコンテキストの管理

# BAD: 毎回全コンテキストを説明する(トークン大量消費)
claude "Pythonで書いたFastAPIのプロジェクトで、PostgreSQLを使っていて、
ユーザーテーブルがあって、プロジェクトテーブルがあって... ○○を実装して"

# GOOD: CLAUDE.mdに書いておいて、ロール指定だけで済ます
claude "backend ロールとして:プロジェクトにタグ機能を追加して"
# /compact コマンドでコンテキストを圧縮(長いセッションで有効)
# Claude Code 内で実行
/compact

# または新しいセッションを始める際に要点だけ渡す
claude --resume  # 最後のセッションのサマリーを引き継ぐ

ロール別のプロンプトテンプレート

# role_prompt_templates.py
# CLIツールや自動化スクリプトからClaude Codeを呼ぶ場合のテンプレート

ROLE_PROMPTS = {
    "backend": """backendロールとして実装してください:
- FastAPI + SQLModel(PostgreSQL)を使用
- Pydanticでリクエスト/レスポンスを型定義
- エラーハンドリングはHTTPException
タスク: {task}""",

    "security": """securityロールとして以下のコードをレビューしてください:
確認項目:
1. 入力バリデーション(SQLi/XSS)
2. 認証・認可チェック
3. 機密情報のハードコード
4. エラーメッセージの情報漏洩
コード:
{code}""",

    "reviewer": """reviewerロールとして問題点を列挙してください。
修正コードは書かず、問題とその理由だけを指摘してください。
コード:
{code}""",
}

def build_prompt(role: str, **kwargs) -> str:
    template = ROLE_PROMPTS.get(role, "{task}")
    return template.format(**kwargs)

# 使い方
security_prompt = build_prompt(
    "security",
    code="""
def get_user(user_id: str):
    query = f"SELECT * FROM users WHERE id = {user_id}"
    return db.execute(query)
"""
)
print(security_prompt)

Geminiプロキシでコスト削減(実験的)

# LiteLLMをGemini Flash経由のプロキシとして立てる
pip install litellm[proxy]

# 設定ファイル
cat > litellm_config.yaml << 'EOF'
model_list:
  - model_name: claude-sonnet  # Claude CodeはこのモデルIDを使う
    litellm_params:
      model: gemini/gemini-2.0-flash  # 実際はGemini
      api_key: $GOOGLE_API_KEY
EOF

litellm --config litellm_config.yaml --port 4000
# Claude CodeにプロキシのURLを向ける(非公式の方法)
export ANTHROPIC_BASE_URL=http://localhost:4000
claude "backend ロールとして: ..."

# 注意: これは公式サポート外。APIレスポンス形式の差異で
# 一部の機能(コンテキスト管理等)が正常に動かない場合がある。
# コスト削減の実験的な方法として使う。

60日・20機能を達成したソロ開発の実際の時間割

1機能あたりの平均開発フロー(3〜4時間):

8:00 database: スキーマ設計 → Prismaに書き出し(30分)
8:30 backend: CRUD API実装 → ファイル書き出し(60分)
9:30 security: APIレビュー → 問題修正(20分)
9:50 frontend: UI実装 → Server Action連携(60分)
10:50 tester: pytestコード生成 → 実行確認(30分)
11:20 reviewer: 最終コードレビュー → 修正(20分)
11:40 devops: GitHub Actionsに追加 → プッシュ(10分)

合計: 〜3.5時間 → 午前中に完成

あわせて読みたい

参考ソース