前回までのあらすじ:8日間でSaaSを構築、10時間で9フェーズ移行、23分でダッシュボード完成。今回は休憩から戻ったら認証切れ問題と4並列開発の実践方法をお伝えします。
速報:https://qiita.com/Takao-Mochizuki/items/d988887f223c208f4169
続報:https://qiita.com/Takao-Mochizuki/items/9d42da2fe1a4365d242b
続々々報:https://qiita.com/Takao-Mochizuki/items/1887dac0c33a915155d6
1. OAuthトークンの落とし穴:休憩から戻ったら認証切れ
1.1 実際に起きたこと
作業を一区切りつけて、しばらく離席。戻ってきて続きをやろうとしたら...
API Error: 401 {"type":"error","error":{"type":"authentication_error",
"message":"OAuth token has expired. Please obtain a new token or refresh your existing token."}}
作業中に切れたわけではありません。放置していたら切れていた、というパターンです。
教訓:作業を終わらせてから休憩を取ろう
1.2 トークン有効期限の実態
| 種類 | 公式設計値 | デフォルト | 実際の報告 |
|---|---|---|---|
| アクセストークン | 8-12時間 | 1時間(3600秒) | 1-3時間 |
| リフレッシュトークン | 長め | - | いずれ切れる |
重要な発見:
- Claude Codeは
expires_inが省略された場合、デフォルト3600秒(1時間) と仮定する - 自動リフレッシュは「5分ごと or 401受信時」に試行される
- しかし放置中は自動リフレッシュが働かない
1.3 対策:作業を終わらせてから休憩
復帰方法:
-
+ボタンで新しいセッションを開始すればOK - ただし、古いセッションは閲覧のみ(会話履歴は見れるが、続きは書けない)
実運用のコツ:
- 作業の区切りをつけてから休憩する(中途半端な状態で放置しない)
- コミットできる状態にしてから離席する
- 戻ったら
+で新規セッション開始 - 必要なら古いセッションの履歴を見ながら、新セッションで続きを依頼
2. 4並列開発の実践:Phase 9.93 の分割戦略
2.1 なぜ並列化が必要か
従来(順次実行の場合):
Phase 9.93-A → 9.93-B → 9.93-C → 順番に実行 → 数十分間
並列化後(実績 - Git履歴より):
$ git log --format="%ad | %s" --date=format:"%H:%M"
17:49 | feat: Phase 9.93-C Visual Regression テスト導入
17:52 | feat: Phase 9.93-A レガシー隔離 & CI自動化
17:52 | feat: Phase 9.93-B パフォーマンス最適化完了
─────────────────────────────────────────────────────
合計: わずか3分で3ワークストリーム同時完了
並列で走らせれば、3つのタスクが同時に終わる。
2.2 worktreeによる並列ブランチ運用
Claude Code for Desktop は worktree を使って並列開発を実現します。
メインリポジトリ: ~/プラグイン/foundersdirect (main)
│
├── worktree: bold-morse ← セッションA が作業
├── worktree: zealous-taussig ← セッションB が作業
└── worktree: kind-chatterjee ← セッションC が作業
ブランチ名は自動生成(形容詞-科学者名):
bold-morsezealous-taussigkind-chatterjeehungry-visvesvaraya
2.3 マージの流れ
各セッションが作業完了したら、mainにマージ(Git履歴より):
$ git log --format="%ad | %s" --date=format:"%H:%M"
21:46 | Merge bold-morse into main
21:56 | Merge zealous-taussig into main
マージはシンプル:
# 各worktreeで作業完了後
git add . && git commit -m "feat: Phase 9.93-A 完了"
# mainにマージ(Claude Codeが自動でやってくれる)
# または手動で:
cd ~/プラグイン/foundersdirect
git merge bold-morse
2.4 コンフリクト解決:Claude Codeに任せる
並列作業でコンフリクトが起きても、Claude Codeに解決させればOK。
コンフリクト解決の指示例:
mainブランチにbold-morseブランチをマージして、コンフリクトがあれば解決して
より具体的に:
git merge bold-morse を実行して、コンフリクトが発生したファイルを確認し、
適切に解決してコミットまで完了して
これだけでOK。Claude Codeがコンフリクト箇所を見て、両方の変更を統合してくれる。
実際の流れ:
-
git merge bold-morseでコンフリクト発生 - Claude Codeがコンフリクトファイルを確認
- 両方の変更を活かす形で修正
-
git add . && git commitで完了
コンフリクトを恐れる必要はない。
2.5 大きいタスクを分割するプロンプト
並列処理をしたい場合、まずタスク分割をClaude Codeに依頼する:
並列処理をしたいので、4つにドキュメント分けてくれる?
これだけで、Claude Codeが:
- タスクを分析
- 依存関係を整理
- 並列実行可能な単位に分割
- 各ワークストリーム用のドキュメントを作成
実際に作成されたドキュメント:
docs/
├── PHASE9.93-BUGFIX-RUNBOOK.md ← 統括版
├── PHASE9.93-A-LEGACY-CLEANUP.md ← ワークストリームA
├── PHASE9.93-B-PERFORMANCE.md ← ワークストリームB
├── PHASE9.93-C-UI-VERIFICATION.md ← ワークストリームC
└── PHASE9.93-D-UAT-GATE.md ← ワークストリームD(A,B,C完了後)
各ドキュメントには:
- 必読ドキュメント一覧
- スコープ(担当範囲)
- 完了条件
- 完了報告フォーマット
が含まれており、そのままセッションに投入できる。
2.6 ワークストリーム設計の原則
┌─────────────────────────────────────────────────┐
│ 統括ランブック(RUNBOOK.md) │
│ ・全体方針、DOD定義、進捗集約 │
└───────────────────┬─────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐
│ A │ │ B │ │ C │ ← 並列実行可
│レガシー│ │パフォ │ │ UI │
│ │ │ │ │ │
│bold- │ │zealous│ │kind- │
│morse │ │taussig│ │chatter│
└───┬───┘ └───┬───┘ └───┬───┘
│ │ │
└─────── merge to main ─────┘
▼
┌───────┐
│ D │ ← A,B,C マージ後
│UAT移行│
└───────┘
3. 並列セッション起動の実践
3.1 準備:統括ドキュメントを作る
並列で走らせる前に、各セッションへの指示書を作成:
# Phase 9.93-A: レガシー隔離
## 必読ドキュメント
- docs/GRAND-GUIDE.md
- docs/DEVELOPMENT.md
## スコープ
- ESLint禁止ルール追加
- CI自動検出スクリプト作成
## 完了条件
- npm run lint が Pass
- npm run build が Pass
3.2 セッション起動
-
Claude Code for Desktop で
+を3回押す(3セッション起動) - 各セッションに指示書を投入
- 各セッションが独立して作業開始
- 完了したらそれぞれ commit → merge
3.3 セッションA起動プロンプト例
あなたは Phase 9.93-A 担当です。
【必読ドキュメント】
docs/GRAND-GUIDE.md, docs/DEVELOPMENT.md を読んでください。
【スコープ】
- ESLint archive禁止ルール追加
- scripts/check-legacy-imports.sh 作成
【完了条件】
- npm run lint Pass
- npm run build Pass
完了したらコミットしてください。
4. まとめ:並列開発の威力
| 項目 | 従来(順次) | 並列化後 |
|---|---|---|
| Phase 9.93 A,B,C 所要時間 | 数時間 | 3分 |
| 同時実行セッション数 | 1 | 3-4 |
| ブランチ管理 | 手動 | worktree自動生成 |
| マージ | 手動 | Claude Codeがサポート |
Claude Code + worktree + 並列セッション の組み合わせで、3つのタスクが同時に終わる。
OAuthトークンの教訓:作業を中途半端にして放置しない。区切りをつけてから休憩。戻ったら + で新規セッション開始(古いセッションは見れるけど続きは書けない)。
参考リンク
著者より:プログラミング未経験でも、worktreeと並列セッションを使えば、複数タスクを同時に進められます。アイデアがあるなら、今すぐ作り始めましょう。