From fc6be84853a589644af5b308117ced8e8cd9294a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=20=E9=A7=BF=E7=94=AB=20=28Shunsuke=20Hayashi=29?= Date: Fri, 10 Apr 2026 07:44:58 +0900 Subject: [PATCH] =?UTF-8?q?[=E6=96=87=E6=9B=B8]=20=E3=82=A8=E3=83=83?= =?UTF-8?q?=E3=82=B8=E3=82=B1=E3=83=BC=E3=82=B9=E8=A8=AD=E8=A8=88=E6=B1=BA?= =?UTF-8?q?=E5=AE=9A=E6=9B=B8=20(#64,=20#68,=20#69,=20#70)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - #64: ブランチ戦略(ブランチは切る、ワークツリーは不要) - #68: マルチマシン分断(単一マシン前提、CAS で衝突検出) - #69: ロック外ファイル(attach_context で事前通知) - #70: merge 変更検知(post-commit hook + 通知) Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/dtp/EDGE-CASES-DESIGN.md | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/dtp/EDGE-CASES-DESIGN.md diff --git a/docs/dtp/EDGE-CASES-DESIGN.md b/docs/dtp/EDGE-CASES-DESIGN.md new file mode 100644 index 0000000..1347a8d --- /dev/null +++ b/docs/dtp/EDGE-CASES-DESIGN.md @@ -0,0 +1,38 @@ +# エッジケース設計決定書 + +## #64: 並列 Codex のブランチ戦略 + +**決定**: ブランチを切る。ワークツリーは作らない。 + +- `miyabi gate assign` 時にエージェントが feature ブランチを作成 +- ファイルロックで排他制御されるため、同じファイルの同時編集は CLI レベルで拒否 +- ワークツリーのフルコピーは不要(Polaris のロック機構が論理的分離を提供) +- merge は PR 経由。main への直接コミットは pre-commit hook で拒否 + +## #68: マルチマシン分断時の二重ロック + +**決定**: 現時点は単一マシン運用を前提。マルチマシンは段階的に対応。 + +- flock + CAS version check は同一マシン内で原子的に動作する(#67 で確認済み) +- マルチマシンの場合: `miyabi gate assign` 前に `git pull` を推奨 +- tasks.json の CAS version が衝突を検出するため、分岐しても片方がエラーになる +- 将来: GitHub API を lock authority にする or Redis 共有 lock store + +## #69: assign 後にロック外ファイルが変更必要になった場合 + +**決定**: attach_context でエージェントに影響範囲を事前通知。追加ロックは手動。 + +- attach_context (#58) が assign 時に自動実行される +- impact の depth1 シンボルがアタッチメントに含まれる +- エージェントは「他にどのファイルが影響を受けるか」を事前に把握できる +- 追加ファイルが必要になったら `miyabi gate assign` を再実行してロック拡張 +- 将来: `--auto-lock-deps` で GNI depth=1 ファイルを自動ロック + +## #70: 並列ブランチの merge による想定外の変更検知 + +**決定**: post-commit hook で GNI reindex + 通知。自動ブロックはしない。 + +- merge 後に gate-notify.sh が後続タスクの dispatchable を表示 +- 将来: `npx gitnexus analyze` を merge 後に自動実行 +- 他 implementing タスクの affected_files との交差チェック +- 交差があれば VOICEBOX + Telegram で警告(ブロックはしない)