259 lines
6.5 KiB
Markdown
259 lines
6.5 KiB
Markdown
# 最適化された開発ワークフロー
|
||
|
||
## 概要
|
||
|
||
プロジェクト間の齟齬を防止し、Claude Codeセッションの成果を確実に反映する最適化された開発ワークフロー。
|
||
|
||
## 基本原則
|
||
|
||
### 1. 一貫性の維持
|
||
- 全プロジェクトの状態同期
|
||
- 設定とコードの整合性
|
||
- ブランチ戦略の統一
|
||
|
||
### 2. セッション成果の記録
|
||
- Claude Codeセッションの完全記録
|
||
- 変更内容の構造化保存
|
||
- 反映状況の追跡
|
||
|
||
### 3. 自動化による品質保証
|
||
- 手動プロセスの最小化
|
||
- 自動検証とエラー検出
|
||
- 一貫したコミットメッセージ
|
||
|
||
## 推奨ワークフロー
|
||
|
||
### Phase 1: セッション開始前
|
||
|
||
#### 1. 全体状況確認
|
||
```bash
|
||
cd /Users/syui/ai/ai
|
||
|
||
# 一貫性チェック
|
||
./claude/scripts/update-submodules.sh --check-consistency
|
||
|
||
# URL検証
|
||
./claude/scripts/update-submodules.sh --validate
|
||
|
||
# 最新状態に更新
|
||
./claude/scripts/update-submodules.sh --all --dry-run
|
||
```
|
||
|
||
#### 2. 作業プロジェクト選択
|
||
```bash
|
||
# プロジェクトディレクトリに移動
|
||
cd gpt # 例: gpt プロジェクト
|
||
|
||
# ブランチ確認・切り替え
|
||
git status
|
||
git checkout claude # または適切なブランチ
|
||
```
|
||
|
||
### Phase 2: Claude Codeセッション
|
||
|
||
#### セッション中の注意点
|
||
- **専用ブランチ使用**: mainではなくclaudeブランチで作業
|
||
- **定期的なコミット**: 大きな変更は小分けにコミット
|
||
- **明確なコミットメッセージ**: 何を変更したかを明記
|
||
|
||
#### 推奨コミット戦略
|
||
```bash
|
||
# 機能追加の場合
|
||
git commit -m "Add: 新機能名 - 簡潔な説明"
|
||
|
||
# バグ修正の場合
|
||
git commit -m "Fix: 修正内容 - 問題の説明"
|
||
|
||
# 改善の場合
|
||
git commit -m "Improve: 改善内容 - before/afterの説明"
|
||
```
|
||
|
||
### Phase 3: セッション終了時(重要)
|
||
|
||
#### 自動セッション終了プロセス
|
||
```bash
|
||
# プロジェクトディレクトリで実行
|
||
./claude/scripts/session-end.sh --auto-sync
|
||
|
||
# または手動でサマリー指定
|
||
./claude/scripts/session-end.sh --summary="新しいMCP機能を実装。23ツールから25ツールに拡張。" --auto-sync
|
||
```
|
||
|
||
#### session-end.shの機能
|
||
1. **変更検出**: 未コミット変更の自動検出
|
||
2. **サマリー入力**: セッション成果の記録
|
||
3. **自動コミット**: 構造化されたコミットメッセージ
|
||
4. **親リポジトリ同期**: サブモジュール更新の自動反映
|
||
5. **セッション記録**: `.claude/sessions/`にMDファイル保存
|
||
6. **検証**: 一貫性チェックの自動実行
|
||
|
||
### Phase 4: 事後確認
|
||
|
||
#### 1. 結果確認
|
||
```bash
|
||
cd /Users/syui/ai/ai
|
||
|
||
# 更新が正しく反映されているか確認
|
||
git log --oneline -5
|
||
|
||
# 一貫性の最終確認
|
||
./claude/scripts/update-submodules.sh --check-consistency
|
||
```
|
||
|
||
#### 2. セッション記録確認
|
||
```bash
|
||
# 最新のセッション記録を確認
|
||
ls -la .claude/sessions/
|
||
cat .claude/sessions/gpt_2025-06-07_15-30-45.md
|
||
```
|
||
|
||
## 特殊ケースの対応
|
||
|
||
### 複数プロジェクト同時開発
|
||
|
||
#### 方法1: 順次処理(推奨)
|
||
```bash
|
||
# プロジェクト1完了
|
||
cd gpt
|
||
./claude/scripts/session-end.sh --auto-sync
|
||
|
||
# プロジェクト2開始
|
||
cd ../bot
|
||
# Claude Codeセッション...
|
||
./claude/scripts/session-end.sh --auto-sync
|
||
```
|
||
|
||
#### 方法2: 並行処理
|
||
```bash
|
||
# 各プロジェクトで作業(--auto-syncは使わない)
|
||
cd gpt
|
||
./claude/scripts/session-end.sh --summary="GPT機能拡張"
|
||
|
||
cd ../bot
|
||
./claude/scripts/session-end.sh --summary="Bot統合改善"
|
||
|
||
# 最後に一括同期
|
||
cd ../
|
||
./claude/scripts/update-submodules.sh --all --auto
|
||
```
|
||
|
||
## 自動化ツール
|
||
|
||
### 利用可能なスクリプト
|
||
|
||
#### 1. session-end.sh
|
||
```bash
|
||
# 基本使用
|
||
./claude/scripts/session-end.sh --auto-sync
|
||
|
||
# サマリー指定
|
||
./claude/scripts/session-end.sh --summary="作業内容" --auto-sync
|
||
|
||
# プロジェクト指定
|
||
./claude/scripts/session-end.sh --project=gpt --auto-sync
|
||
```
|
||
|
||
#### 2. update-submodules.sh
|
||
```bash
|
||
# 一貫性チェック
|
||
./claude/scripts/update-submodules.sh --check-consistency
|
||
|
||
# 全体更新
|
||
./claude/scripts/update-submodules.sh --all --auto
|
||
|
||
# URL検証
|
||
./claude/scripts/update-submodules.sh --validate
|
||
```
|
||
|
||
### 推奨エイリアス設定
|
||
```bash
|
||
# ~/.zshrc
|
||
alias daily-check="cd /Users/syui/ai/ai && ./claude/scripts/update-submodules.sh --check-consistency"
|
||
alias sync-all="cd /Users/syui/ai/ai && ./claude/scripts/update-submodules.sh --all --auto"
|
||
alias session-end="../claude/scripts/session-end.sh --auto-sync"
|
||
```
|
||
|
||
## エラー対応
|
||
|
||
### よくある問題と解決策
|
||
|
||
#### 1. 未コミット変更の衝突
|
||
```
|
||
⚠️ gpt: Has uncommitted changes
|
||
```
|
||
**解決策:**
|
||
```bash
|
||
cd gpt
|
||
./claude/scripts/session-end.sh --summary="作業内容の説明" --auto-sync
|
||
```
|
||
|
||
#### 2. ブランチ不一致
|
||
```
|
||
⚠️ bot: Branch mismatch
|
||
Current: main
|
||
Expected: claude
|
||
```
|
||
**解決策:**
|
||
```bash
|
||
cd bot
|
||
git checkout claude
|
||
git merge main # 必要に応じて
|
||
```
|
||
|
||
#### 3. サブモジュールポインタ不一致
|
||
```
|
||
⚠️ card: Submodule pointer mismatch
|
||
```
|
||
**解決策:**
|
||
```bash
|
||
./claude/scripts/update-submodules.sh --module=card --auto
|
||
```
|
||
|
||
## セッション記録システム
|
||
|
||
### 自動生成される記録
|
||
- **場所**: `.claude/sessions/`
|
||
- **形式**: `{project}_{timestamp}.md`
|
||
- **内容**: セッション概要、変更詳細、コミット情報
|
||
|
||
### 記録例
|
||
```markdown
|
||
# Claude Code Session Report
|
||
|
||
**Project**: gpt
|
||
**Date**: 2025-06-07 15:30:45
|
||
**Summary**: MCP機能拡張。新しいツール追加とエラーハンドリング改善。
|
||
|
||
## Changes Made
|
||
src/mcp_client.rs | 45 +++++++++++++++++++++++++++++
|
||
src/commands.rs | 23 +++++++++++++--
|
||
2 files changed, 68 insertions(+), 2 deletions(-)
|
||
|
||
## Session End Status
|
||
- ✅ Changes committed
|
||
- ✅ Session logged
|
||
- ✅ Auto-sync completed
|
||
```
|
||
|
||
## ベストプラクティス
|
||
|
||
### 1. セッション設計
|
||
- **明確な目標**: 何を達成するかを最初に決める
|
||
- **適切な粒度**: 1セッション = 1つの機能や修正
|
||
- **定期的な保存**: 大きな変更は途中でコミット
|
||
|
||
### 2. 終了時のルーティン
|
||
```bash
|
||
# 必須: セッション終了スクリプト実行
|
||
./claude/scripts/session-end.sh --auto-sync
|
||
|
||
# 推奨: 最終確認
|
||
cd /Users/syui/ai/ai
|
||
./claude/scripts/update-submodules.sh --check-consistency
|
||
```
|
||
|
||
### 3. 定期メンテナンス
|
||
- **日次**: 作業開始前にconsistency check
|
||
- **週次**: 全体的な検証とクリーンアップ
|
||
|
||
このワークフローに従うことで、プロジェクト間の齟齬を防ぎ、Claude Codeセッションの成果を確実に蓄積できます。 |