1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【続々報】Claude Code for Desktopが神すぎる件 - OAuthトークンの落とし穴と4並列開発術

Last updated at Posted at 2025-11-25

前回までのあらすじ: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-morse
  • zealous-taussig
  • kind-chatterjee
  • hungry-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がコンフリクト箇所を見て、両方の変更を統合してくれる。

実際の流れ

  1. git merge bold-morse でコンフリクト発生
  2. Claude Codeがコンフリクトファイルを確認
  3. 両方の変更を活かす形で修正
  4. git add . && git commit で完了

コンフリクトを恐れる必要はない

2.5 大きいタスクを分割するプロンプト

並列処理をしたい場合、まずタスク分割をClaude Codeに依頼する:

並列処理をしたいので、4つにドキュメント分けてくれる?

これだけで、Claude Codeが:

  1. タスクを分析
  2. 依存関係を整理
  3. 並列実行可能な単位に分割
  4. 各ワークストリーム用のドキュメントを作成

実際に作成されたドキュメント

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 セッション起動

  1. Claude Code for Desktop で + を3回押す(3セッション起動)
  2. 各セッションに指示書を投入
  3. 各セッションが独立して作業開始
  4. 完了したらそれぞれ 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と並列セッションを使えば、複数タスクを同時に進められます。アイデアがあるなら、今すぐ作り始めましょう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?