This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
このセクションには、プロジェクトで使用するパッケージマネージャーとビルドシステムを記載してください。
例:
# 依存関係のインストール
<package-manager> install
# 開発用依存関係のインストール
<package-manager> install --dev
# 特定のグループをインストール
<package-manager> install --group <group-name>このセクションには、テストの実行方法を記載してください。
例:
# すべてのテストを実行
<test-command>
# 特定のテストファイルを実行
<test-command> tests/path/to/test_file.py
# 詳細出力付きで実行
<test-command> -vこのセクションには、コード品質ツールの使用方法を記載してください。
例:
# Linterの実行
<linter> check .
# フォーマッターの実行
<formatter> format .
# 型チェックの実行
<type-checker> .
# コミット前の完全チェック(推奨)
<linter> check . && <formatter> format . && <type-checker> .設定は pyproject.toml または各ツールの設定ファイルに記載してください。
このセクションには、型安全性に関する要件を記載してください。
推奨事項:
- すべての関数、メソッド、変数に型アノテーションを付与
- 静的型チェックをコミット前に実行
Any型の使用を避け、具体的な型を使用- 型エラーは無視せず、必ず解決
このセクションには、プロジェクトで遵守すべき開発原則を記載してください。
テスト駆動開発を推奨します:
実装フロー:
- ユニットテストを先に作成
- テストをユーザーに承認してもらう
- テストが失敗する(Redフェーズ)ことを確認
- 実装してテストを通す(Greenフェーズ)
- リファクタリング
テスト構成:
- 機能毎にテストファイルを作成
- 1機能 = 1テストファイルの対応
- テストファイル名は対象機能を明確に反映(例:
test_calculator.py←calculator.py)
実装とドキュメントの整合性を保ちます:
必須要件:
- 実装前に仕様を確認
- 仕様が曖昧な場合は実装を停止し、明確化を要求
- ドキュメント変更時はユーザー承認を取得
- 仕様更新完了後に実装着手
コード品質基準への完全準拠を推奨します:
品質チェック:
- コミット前に品質ツールを実行(リンター、フォーマッター、型チェッカー)
- すべてのエラーを解消してからコミット
- 時間制約を理由とした品質妥協は避ける
データの正確性とトレーサビリティを保証します:
禁止事項:
- マジックナンバーや固定文字列の直接埋め込み
- 環境依存値の埋め込み
- 認証情報・APIキーのコード内保存
- データ取得失敗時の自動デフォルト値割り当て
- 推測に基づく値の生成
推奨事項:
- すべての固定値は名前付き定数として定義
- 設定値は専用の設定モジュールで一元管理
- 環境固有値は環境変数または設定ファイルで管理
- エラーは明示的に処理(例外を発生させる)
例:
# ❌ 悪い例
timeout = 30 # ハードコード
if not data:
data = "default" # 暗黙的フォールバック
# ✅ 良い例
TIMEOUT_SECONDS = int(os.environ["API_TIMEOUT"])
if not data:
raise ValueError("Required data is missing")コードの重複を避けます:
実装前チェック:
- 既存の実装を検索・確認(Glob, Grepツールの活用)
- 類似機能の存在を確認
- 再利用可能なコンポーネントを特定
重複回避:
- 3回以上の繰り返しパターンは関数化・モジュール化
- 同一ロジックは共通化
- 設定駆動アプローチを検討
重複検出時:
- 作業を停止
- 既存実装の拡張可能性を評価
- リファクタリング計画を立案
既存コードの直接修正を優先します:
基本方針:
- V2、V3などのバージョン付きクラス作成は避ける
- 既存クラスを直接修正
- 後方互換性よりも設計の正しさを優先
リファクタリング前チェック:
- 影響範囲を特定(依存関係の分析)
- テストカバレッジを確認
- ドキュメントの更新計画を立案
このセクションには、プロジェクトのコーディング規約を記載してください。
推奨事項:
- 命名規則: クラスはPascalCase、関数/変数はsnake_case、定数はUPPER_SNAKE_CASE
- 型ヒント: 型アノテーションを積極的に使用
- Docstrings: 標準的なフォーマット(例: Google-style)を使用
- 行の長さ: プロジェクトで統一された最大文字数を設定
- インポート: ツールによる自動ソート(stdlib → サードパーティ → ローカル)
このセクションには、ドキュメンテーション標準を記載してください。
推奨事項:
- 公開関数、クラス、モジュールには包括的なdocstringを記載
- 標準的なフォーマット(例: Google-style)を採用
- Docstringは型アノテーションと一致させる
- 複雑な関数には使用例を含める
このセクションには、テスト戦略を記載してください。
推奨事項:
- 単体テスト: 高速、外部依存なし(モックを使用)
- 統合テスト: 中速、外部サービスをモック
- E2Eテスト: 実際の外部サービスを使用、適切にマーク
- テストマーカー: テストの種類や依存関係を示すマーカーを使用
ドキュメンテーションシステムを使用する場合、このセクションに設定を記載してください。
詳細なガイドラインは @.claude/docs.md を参照。
例:
- すべてのドキュメント:
docs/*.md - ドキュメント設定:
docs/conf.py(Sphinxの場合) - ビルドシステム:
docs/Makefile(Sphinxの場合)
このセクションには、プロジェクトで使用する主要な技術を記載してください。
例:
- ランタイム: Python X.X.X
- パッケージマネージャー:
- テスト: >= X.X.X
- Linting: >= X.X.X
- 型チェック: >= X.X.X
- ドキュメント: >= X.X.X(オプション)