- #64: ブランチ戦略(ブランチは切る、ワークツリーは不要) - #68: マルチマシン分断(単一マシン前提、CAS で衝突検出) - #69: ロック外ファイル(attach_context で事前通知) - #70: merge 変更検知(post-commit hook + 通知) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
0588d41799
commit
fc6be84853
1 changed files with 38 additions and 0 deletions
38
docs/dtp/EDGE-CASES-DESIGN.md
Normal file
38
docs/dtp/EDGE-CASES-DESIGN.md
Normal file
|
|
@ -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 で警告(ブロックはしない)
|
||||
Loading…
Add table
Add a link
Reference in a new issue