このドキュメントは、CLAUDEが開発者として行動する際のガイドラインです。
開発者として、以下の責任を担います:
-
実装作業
- 実行計画に基づいた正確な実装
- 既存のコードスタイルとパターンの遵守
- 効率的で保守しやすいコードの作成
-
テスト作成
- ユニットテストの実装
- システムテストの実装
- テスト実行と確認
-
ドキュメント作成
- 必要に応じたコードコメント
- 複雑なロジックの説明
- API仕様の記載
実装開始前に適切な接頭辞を持つブランチを作成:
# 新機能追加
git checkout -b feat/#<issue番号>-<機能名>
# バグ修正
git checkout -b fix/#<issue番号>-<バグ名>
# その他の例
git checkout -b docs/#<issue番号>-<ドキュメント名>
git checkout -b style/#<issue番号>-<対象名>
git checkout -b refactor/#<issue番号>-<対象名>
git checkout -b test/#<issue番号>-<テスト名>
git checkout -b chore/#<issue番号>-<作業名>
実行計画に従って実装を進めます。
# コミット前にコードスタイルを整える
rubocop -a
# コミット
git add .
git commit -m "<接頭辞>: コミットメッセージ"
コミットメッセージの接頭辞:
feat:
新機能追加 🚀
fix:
バグ修正 🐛
docs:
ドキュメント更新 📚
style:
スタイル調整 💅
refactor:
リファクタリング ♻️
test:
テスト追加・修正 🧪
chore:
雑務的な変更 🔧
# テスト実行
bin/rspec
# 特定のテストファイルを実行
bin/rspec spec/path/to/test_spec.rb
# システムテスト実行
bin/rspec spec/system/
重要: 全てのテストがパスすることを確認してください。テストが失敗している状態では絶対にPRを作成しないでください。
前提条件: ローカルの自動テストが全てパスしていることが必須です。
# 変更をプッシュ
git push origin <ブランチ名>
# PRテンプレートをファイルに保存
cat > tmp/pr_body.md << 'EOF'
## 概要
[実装した機能/修正の説明]
## 関連するIssue
fixes #<issue番号>
## 変更内容
- [主な変更点1]
- [主な変更点2]
## テスト結果
- [ ] ユニットテスト実行済み
- [ ] システムテスト実行済み
- [ ] rubocop実行済み
## スクリーンショット(UI変更がある場合)
[該当する場合は画像を添付]
## レビューポイント
[レビュアーに特に確認してほしい点]
EOF
# PRを作成
gh pr create --title "<接頭辞>: タイトル" --body-file tmp/pr_body.md --base main
PRテンプレート:
## 概要
[実装した機能/修正の説明]
## 関連するIssue
fixes #<issue番号>
## 変更内容
- [主な変更点1]
- [主な変更点2]
## テスト結果
- [ ] ユニットテスト実行済み
- [ ] システムテスト実行済み
- [ ] rubocop実行済み
## スクリーンショット(UI変更がある場合)
[該当する場合は画像を添付]
## レビューポイント
[レビュアーに特に確認してほしい点]
# PR一覧の確認
GH_PAGER= gh pr list
# 作成したPRの詳細確認
GH_PAGER= gh pr view <PR番号>
# レビューコメントへの対応後、コメント追加
GH_PAGER= gh pr comment <PR番号> --body "レビューコメントに対応しました。再度ご確認お願いします。"
# CIの状態確認
GH_PAGER= gh pr checks <PR番号>
-
基本原則
- Rubyのイディオムを活用
- ActiveRecordのベストプラクティスに従う
- Fat Model, Skinny Controllerの原則
-
命名規則
- クラス名: PascalCase
- メソッド名: snake_case
- 定数: UPPER_SNAKE_CASE
-
コード構造
-
コンポーネント作成
# 必ずgeneratorを使用
bin/rails g view_component ComponentName [attributes]
-
設計原則
- 単一責任の原則
- 再利用可能な設計
- プレビューの作成必須
-
参照ドキュメント
-
コントローラー設計
- 単一責任の原則
- データ属性の活用
- Turboとの連携
-
命名規則
- コントローラー名: kebab-case
- アクション名: camelCase
-
基本方針
- Tailwindユーティリティクラスを優先
- カスタムCSSは最小限
- レスポンシブデザインの考慮
-
クラス順序
- レイアウト → スペーシング → タイポグラフィ → 色 → その他
-
機密ファイルの操作
.env
ファイル
config/credentials.yml.enc
config/master.key
*.pem
ファイル
-
セキュリティ上の注意
- APIキーのハードコーディング禁止
- ユーザー入力の検証必須
- SQLインジェクション対策
- XSS対策
実装作業中は定期的にIssueに進捗を報告します:
# 作業開始時
GH_PAGER= gh issue comment <issue番号> --body "実装を開始しました。"
# 進捗報告
GH_PAGER= gh issue comment <issue番号> --body "主要な機能の実装が完了しました。現在テストを作成中です。"
# 完了報告(PR作成時)
GH_PAGER= gh issue comment <issue番号> --body "実装が完了し、PR #<PR番号> を作成しました。レビューをお願いします。"
# localhost:5100で起動
bin/server
# マイグレーション実行
bin/rails db:migrate
# ルーティング確認
bin/rails routes
# キャッシュクリア
bin/rails tmp:clear
- 5回ルール: 同じ問題に対して5度以上修正を試みても解決しない場合は、必ず指示者に報告
- テスト失敗時の対応:
- 2回以上連続で同じテストが失敗したら、アプローチを変更
- 5回修正してもテストがパスしない場合は、作業を中断して指示者に報告
- 報告内容:
- 試みた修正方法の一覧
- エラーメッセージの詳細
- 問題の根本原因の分析
- 可能な代替案の提示
- エラーメッセージを正確に読む
- スタックトレースから原因箇所を特定
- 関連するドキュメントを確認
- 必要に応じて代替案を提示
実装作業時の確認事項: