効果的な CLAUDE.md ファイルの作成

Claude Code によるソフトウェア開発

Dani Zysman

AI Curriculum Manager @ DataCamp

CLAUDE.md 作成のコツ

  • /init から始め、反復して改善
    • Claude がミスをしたら文脈を追加
    • 規約の変更を記載
  • 目標: プロジェクトとともに進化するドキュメント
Claude Code によるソフトウェア開発

ここまでのプロジェクト

music-analytics-api/
  app.py           # Application entry point
  routes.py        # API endpoints
  models.py        # Artist/Album models
  analytics.py     # Statistics functions
  middleware.py    # Request logging
  config.py        # Session settings
  CLAUDE.md        # <- Project memory file
Claude Code によるソフトウェア開発

CLAUDE.md に含める内容・含めない内容

recraft: CLAUDE.md に含めるべき内容と除外すべき内容

ルール: 付箋に収まらない内容は含めません。

Claude Code によるソフトウェア開発

CLAUDE.md の反復改善

> /artists エンドポイントにエラー処理を追加してください。
完了しました。/artists (routes.py:9-19) にエラー処理を追加しました:
- 取得とシリアライズ処理をtry-exceptブロックで囲みました
- データストアが未初期化の場合のAttributeErrorハンドラー
- 500ステータスでエラー詳細を返す汎用例外ハンドラー

return jsonify({'error': f'Failed to retrieve artists: {str(e)}'}), 500
> ユーザーに例外の詳細を公開しないでください。セキュリティリスクになります。内部でログに記録し、 
汎用的なメッセージを返してください。CLAUDE.md も更新してください。
/artists を更新し、エラーを内部でログに記録して 
汎用的な500メッセージを返すようにしました。CLAUDE.md に次の規約を追加しました: 
レスポンスに例外の詳細を含めないこと。
Claude Code によるソフトウェア開発

良い CLAUDE.md と肥大化した CLAUDE.md

肥大化した例(200行以上)

# Inventory API
This is an Inventory Management 
API built with Flask...

## Full Source Code
### routes.py
from flask import jsonify...
[entire file pasted]

### models.py
[entire file pasted]

## API Documentation
GET /items returns...

良い例(15行)

# Inventory API
Flask REST API for inventory.

## Commands
- Run: flask run --port 5001
- Test: pytest tests/

## Conventions
- Use type hints
- Keep routes thin
Claude Code によるソフトウェア開発

ファイル参照 - @ の使い方

> @routes.py このAPIにはどんなエンドポイントがありますか?
APIエンドポイント(GETルート6件)

Artists
- GET /artists              すべてのアーティスト
- GET /artists/<id>         IDで指定した単一のアーティスト
- GET /artists/<id>/albums  特定アーティストのアルバム一覧
Albums
- GET /albums               すべてのアルバム
- GET /stats/albums         アルバムの人気統計
- GET /stats/average-tracks アルバムあたりの平均トラック数

すべてのエンドポイントはJSONを返します。
Claude Code によるソフトウェア開発

CLAUDE.md と @ を組み合わせる

# CLAUDE.md - Music Analytics API
A Flask-based REST API for music data analytics, providing endpoints for artists,
albums, and statistics.
...

## Key Files @routes.py - API endpoint definition @models.py - Artist and Album data models with in-memory store ...

CLAUDE.md は永続的な文脈を提供します。@ を使うと、Claude が常に主要ファイルを把握できます。

Claude Code によるソフトウェア開発

文脈の3つのレベル

CLAUDE.md の文脈レベルの3段階

Claude Code によるソフトウェア開発

それぞれの使い分け

  • CLAUDE.md(プロジェクト、共有)

    • テストコマンド、コーディング規約、プロジェクト構成
  • CLAUDE.local.md(プロジェクト、個人用)

    • ローカルパス、APIキー、個人の作業設定
  • ~/.claude/CLAUDE.md(グローバル、個人用)

    • すべてのプロジェクトに共通するスタイルの好み
    • 常に適用したいデフォルトの動作
Claude Code によるソフトウェア開発

第1章のまとめ

  • /init と CLAUDE.md → 永続的なプロジェクト文脈
  • Shift+Tab または /plan → プランモードの切り替え
  • think ... ultrathink → 深い推論(5段階)
Claude Code によるソフトウェア開発

練習しましょう!

Claude Code によるソフトウェア開発

Preparing Video For Download...