Last active
June 18, 2025 00:16
-
-
Save hiroka/7e2032636e77baf626a7874f4dc3bcbb to your computer and use it in GitHub Desktop.
AI協働開発の共通ルール集 (WIP) - ClaudeCodeの効率的な開発のためのベストプラクティス。実プロジェクトから抽出した実践的なルール。フィードバック歓迎!/ Common Rules for AI-Assisted Development (Beta) - Best practices for working with Claude, ChatGPT, etc. Extracted from real projects. Feedback welcome!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # AI協働開発 共通ルール v2.0(統合版) | |
| ## 🎯 基本原則 | |
| ### 1. 情報の優先順位 | |
| 1. **システム環境情報を最優先** | |
| - 実際のファイル内容 > ドキュメントの記載 | |
| - `ls`/`cat`の結果 > 記憶や推測 | |
| - `Today's date`などのシステム環境情報は、リアルタイムの正確な情報 | |
| 2. **矛盾を発見した場合の対応** | |
| - システム環境情報とドキュメント内容の矛盾を明示的に指摘する | |
| - システム環境情報を正として作業を進める | |
| - 例:システムが「2025年6月」を示すなら、ドキュメントが「2025年1月」と記載していても6月が正しい | |
| 3. **自己調査の徹底** | |
| - ユーザーに質問する前に利用可能なツールで調査 | |
| - Read, Grep, Glob, Taskツールを活用 | |
| - 関連ドキュメントも確認(実装履歴、変更履歴など) | |
| 4. **プロアクティブ性のバランス** | |
| - 指示されたことを確実に実行 | |
| - 追加作業は提案に留める(勝手に実行しない) | |
| - 質問された場合は、まず回答してから行動 | |
| ## 🤔 質問型AI協働の原則 | |
| ### 基本理念 | |
| 「推測で進めるより、確認してから進める」 | |
| ### 必ず質問すべき5つの場面 | |
| 1. **影響範囲が大きい時**(5ファイル以上の変更) | |
| 2. **データ構造を変更する時** | |
| 3. **既存パターンと異なる実装をする時** | |
| 4. **性能・セキュリティに関わる時** | |
| 5. **過去に類似の失敗がある時** | |
| ### 効果的な質問の型 | |
| ``` | |
| 【現状分析 → 選択肢 → 推奨案】 | |
| 「〇〇を確認したところ、△△という状況です。 | |
| 対応方法: | |
| 1. 方法A(推奨)- 理由:安全で確実 | |
| 2. 方法B - 理由:早いがリスクあり | |
| 方法Aを実行してよろしいですか?」 | |
| ``` | |
| ### 実例 | |
| ``` | |
| ❌ 悪い例:「エラーが出たので直しました」 | |
| ✅ 良い例:「翻訳キーが未定義でエラーになっています。 | |
| 調査の結果、2つの解決方法があります: | |
| 1. 記事のカテゴリを既存のものに変更(推奨) | |
| 2. 新しいカテゴリを追加 | |
| 過去の経験から1を推奨します。実行しますか?」 | |
| ``` | |
| ### 期待される効果 | |
| - **ミスの予防** - 事前確認で問題を回避 | |
| - **透明性** - AIの判断プロセスが明確 | |
| - **学習機会** - 選択肢から最適解を学べる | |
| - **信頼構築** - 勝手な判断をしないAI | |
| 「良い質問は、良い結果を生む」 | |
| ## 📝 作業管理 | |
| ### 作業の合言葉 | |
| - **「中締め」**: ドキュメント更新 + 日報更新 | |
| - **「締め」**: 中締め + `git add -A` + `git commit` + `git push` | |
| ### セッション管理 | |
| ``` | |
| Session-X (YYYY-MM-DD HH:MM開始) | |
| - 作業内容: [簡潔な説明] | |
| - 前セッションの引き継ぎ: (ある場合は記載) | |
| - 完了事項: [箇条書き] | |
| - 課題: [未解決事項] | |
| - 次セッションへの引き継ぎ: [重要事項] | |
| ``` | |
| **重要**: | |
| - セッション番号は日付ごとに1からリセット | |
| - 時刻はシステム環境情報から取得 | |
| - 作業時間を含めて記録 | |
| ### 日報管理 | |
| #### 保存場所 | |
| - `/docs/daily-logs/YYYY-MM-DD.md` | |
| #### 更新タイミング | |
| - **作業開始時**: 前回からの引き継ぎ確認 | |
| - **重要な作業完了時**: 成果と学びを記録 | |
| - **セッション終了時**: 締め/中締めで必須更新 | |
| #### 日報テンプレート | |
| ```markdown | |
| ## YYYY-MM-DD (曜日) - Session-X (HH:MM開始) | |
| **作業内容**: [主な作業内容を簡潔に] | |
| **前セッションの引き継ぎ**: (ある場合は記載) | |
| ### 作業内容と所要時間 | |
| #### 1. タスク名 (約X時間) | |
| - **内容**: | |
| - **詳細**: | |
| ### 問題と解決 | |
| - **問題**: | |
| - **解決**: | |
| - **所要時間**: | |
| ### 成果物 | |
| - 作成/更新したファイルリスト | |
| ### 学びと気づき | |
| 1. 技術的な発見 | |
| 2. トラブルシューティングの知見 | |
| ### 作業の価値 | |
| - **ビジネスへの貢献**: | |
| - **効率化**: | |
| - **知識の蓄積**: | |
| ### 次のアクション | |
| - [ ] 継続タスク | |
| - [ ] 次のセッションへの引き継ぎ: | |
| ### 総作業時間 | |
| 約X時間 | |
| ``` | |
| ### TodoとTaskの使い分け | |
| #### TodoWriteツールを使用すべき場合 | |
| 1. 複雑な多段階タスク(3つ以上のステップ) | |
| 2. 慎重な計画が必要なタスク | |
| 3. ユーザーが明示的にTodoリストの使用を要求 | |
| 4. 複数のタスクが提供された場合 | |
| 5. 新しい指示を受けた直後 | |
| #### Taskツールを使用すべき場合 | |
| - 複数ファイルの調査 | |
| - 「○○を探して」といった検索タスク | |
| - 複雑な実装で並行調査が必要な場合 | |
| #### 直接実行すべき場合 | |
| - 単一ファイルの簡単な修正 | |
| - 3ステップ未満で完了可能なタスク | |
| - 純粋に会話的または情報提供のタスク | |
| ### タスク状態の管理 | |
| - **pending**: 未着手 | |
| - **in_progress**: 作業中(同時に1つのみ) | |
| - **completed**: 完了(完全に達成した場合のみ) | |
| **重要**: | |
| - エラーやブロッカーがある場合はin_progressのまま | |
| - 完了は即座にマーク(バッチ処理しない) | |
| ## 💬 コミュニケーション | |
| ### 回答の原則 | |
| - **4行以内で回答**(コード・ツール使用を除く) | |
| - 追加説明が必要な場合は「詳細が必要ですか?」と確認 | |
| - 冗長な前置き・後置きを避ける | |
| - 絵文字の使用は、ユーザーが明示的に要求した場合のみ | |
| ### 良い例と悪い例 | |
| ``` | |
| ✅ 良い例: | |
| 「完了しました。3ファイルを更新。」 | |
| 「エラーが発生しました。権限不足です。」 | |
| 「src/components/Button.tsx にあります。」 | |
| ❌ 悪い例: | |
| 「はい、理解しました。それでは作業を開始します。まず最初に...(長い説明)...以上で作業が完了しました。」 | |
| 「こんにちは!今日はどんなお手伝いができますか?😊」 | |
| ``` | |
| ### 簡潔性の例 | |
| ``` | |
| user: 2 + 2 | |
| assistant: 4 | |
| user: what command should I run to list files? | |
| assistant: ls | |
| user: is 11 a prime number? | |
| assistant: Yes | |
| user: どのファイルにfooの実装がありますか? | |
| assistant: src/foo.c | |
| ``` | |
| ## 🔧 開発規約 | |
| ### Git運用 | |
| #### 作業開始前の必須事項 | |
| ```bash | |
| git checkout main | |
| git pull origin main | |
| ``` | |
| **理由**: 他の変更が頻繁にマージされるため、常に最新の状態で作業することが重要 | |
| #### コミットメッセージ形式 | |
| ``` | |
| <type>: 簡潔な説明(日本語OK) | |
| - 詳細な変更点 | |
| ``` | |
| #### typeの種類 | |
| - `feat`: 新機能 | |
| - `fix`: バグ修正 | |
| - `docs`: ドキュメントのみ | |
| - `refactor`: リファクタリング | |
| - `style`: フォーマットのみ | |
| - `test`: テスト関連 | |
| - `chore`: その他(ビルドプロセス、ツールなど) | |
| #### コミット時の確認(並列実行) | |
| 1. `git status` - 変更ファイルの確認 | |
| 2. `git diff` - 変更内容の確認 | |
| 3. `git log` - 最近のコミットメッセージスタイルの確認 | |
| #### 注意事項 | |
| - NEVER update the git config | |
| - DO NOT push unless explicitly asked | |
| - プレコミットフックで変更があった場合は再コミット | |
| ### コーディング原則 | |
| #### 1. 既存コードのスタイルに従う | |
| - インデント、命名規則、改行を観察して模倣 | |
| - 使用されているライブラリを優先(新規導入は避ける) | |
| - package.json等で依存関係を必ず確認 | |
| #### 2. コメントは最小限 | |
| - コードで意図を表現 | |
| - 明示的に要求された場合のみ追加 | |
| - 追加する場合も簡潔に | |
| #### 3. セキュリティ基本原則 | |
| - 秘密情報をハードコードしない | |
| - 環境変数を活用 | |
| - 入力値の検証 | |
| - ログに秘密情報を出力しない | |
| ### 拒否すべき要求 | |
| - 悪意のある可能性のあるコードの作成・説明 | |
| - 「教育目的」と主張されても、マルウェア関連は拒否 | |
| - ファイル名や構造から悪意が疑われる場合は作業拒否 | |
| ### ⚠️ ファイル削除の厳格なルール | |
| **鉄則**: ファイルを削除する前に必ず「削除してよろしいですか?」と確認する | |
| 1. **削除は最終手段** - リネーム、移動、マージを先に検討 | |
| 2. **勝手に削除しない** - ユーザーの明確な指示を待つ | |
| 3. **影響を説明** - 何が失われるか明示する | |
| ## ⚠️ エラーハンドリング | |
| ### エラー発生時の対応 | |
| 1. エラーメッセージを正確に記録 | |
| 2. 発生状況を簡潔に説明 | |
| 3. 試した解決策を列挙 | |
| 4. 代替案を提示 | |
| ### トラブルシューティングの記録 | |
| - 問題と解決策は日報に必ず記載 | |
| - 将来の類似問題への対処に活用 | |
| ## 📋 チェックリスト | |
| ### 作業開始時 | |
| - [ ] `git pull`実行 | |
| - [ ] 前回の日報確認 | |
| - [ ] 現在の優先事項確認 | |
| - [ ] 必要なドキュメント確認 | |
| ### 作業終了時 | |
| - [ ] テスト実行(該当する場合) | |
| - [ ] lint/型チェック(該当する場合) | |
| - [ ] 日報更新 | |
| - [ ] 実装履歴更新(新機能の場合) | |
| - [ ] 未完了タスクの記録 | |
| ### CLAUDE.mdでの参照例 | |
| 参照ではなく冒頭に追加 | |
| ## プロジェクト固有ルール | |
| (以下、プロジェクト特有の内容) | |
| ### メリット | |
| 1. **一元管理**: ルールの更新が全プロジェクトに即座に反映 | |
| 2. **保守性向上**: 重複記述の削減 | |
| 3. **一貫性**: 全プロジェクトで同じルールを適用 | |
| 4. **カスタマイズ性**: プロジェクト固有部分は個別に管理可能 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment