diff --git a/.yoi/tickets/00001KTTB479X/artifacts/.gitkeep b/.yoi/tickets/00001KTTB479X/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.yoi/tickets/00001KTTB479X/item.md b/.yoi/tickets/00001KTTB479X/item.md new file mode 100644 index 00000000..6a52655a --- /dev/null +++ b/.yoi/tickets/00001KTTB479X/item.md @@ -0,0 +1,77 @@ +--- +title: 'Orchestratorを専用worktreeで実行し実装worktreeをworkspace root配下に作る' +state: 'planning' +created_at: '2026-06-11T03:20:32Z' +updated_at: '2026-06-11T03:20:32Z' +assignee: null +--- + +## 背景 + +現在の filesystem Ticket backend では、`.yoi/tickets` が Git 管理ファイルとして workspace に存在する。このため、ユーザーが main workspace で未投入の Ticket draft や整理中の Ticket を作るだけで、Orchestrator からも見え、Git dirty state としても扱われる。Orchestrator とユーザーが同じ worktree / branch で同時に Ticket を触る運用は、Ticket queue、draft、project record、Git commit 対象が混ざりやすい。 + +Ticket backend をすぐに Git 外 store へ移行するのではなく、まず filesystem backend のまま運用分離する。Orchestrator は専用の orchestration worktree を `pwd` として実行し、active Ticket queue / orchestration state をその worktree 側で扱う。実装用 coder worktree は Orchestrator の `pwd` 相対ではなく、元 workspace root から `.worktree/` に sibling として作る。 + +これにより、main workspace の未投入 draft が Orchestrator に見える問題と、Orchestrator の Ticket churn が main workspace を汚す問題を減らす。 + +## 方針 + +想定する構成: + +```text +/ + main workspace / human workspace + .worktree/ + orchestration// # Orchestrator pwd + / # implementation coder worktrees +``` + +- Orchestrator は dedicated orchestration worktree で起動する。 +- Orchestrator が見る `.yoi/tickets` は orchestration branch/worktree 側のものを正とする。 +- ユーザーが main workspace で作る未投入 draft / local planning は、明示的に orchestration worktree へ渡すまで Orchestrator の queue ではない。 +- Coder / Reviewer 用 implementation worktree は orchestration worktree から子として作らず、original workspace root の `.worktree/` に sibling として作る。 +- Implementation branch の base は原則 main/target code branch とし、orchestration branch の Ticket churn を implementation branch に混ぜない。 +- Orchestrator prompt / workflow guidance では、`pwd` が orchestration worktree であることと、implementation worktree 作成時の root path を明示する。 + +## 要件 + +- Workspace Panel / role launcher / Orchestrator 起動経路で、Orchestrator の working directory を専用 orchestration worktree にできる設計を行う。 +- orchestration worktree の作成・再利用・命名・branch policy を定義する。 + - 例: `.worktree/orchestration/` または `.worktree/orchestrator-`。 + - branch: `orchestration/` など。 + - 既存 worktree がある場合の attach/reuse/fail policy を決める。 +- Orchestrator に渡す runtime context へ original workspace root を含める。 + - Orchestrator `pwd` は orchestration worktree。 + - implementation worktree root は original workspace root の `.worktree`。 +- `worktree-workflow` / `multi-agent-workflow` / Orchestrator routing guidance を更新し、implementation worktree を Orchestrator `pwd` 相対に作らないようにする。 +- Implementation worktree creation は sibling layout を使う。 + - `/.worktree/`。 + - orchestration branch から nested/descendant branch を切らない。 +- Orchestrator 専用 worktree の Ticket record churn を main workspace にいつ・何を publish するかは、この Ticket では最小方針を定義する。 + - 少なくとも active queue / in-progress coordination は main workspace に即時反映しない。 + - resolution / important decision / final report を publish するかどうかは後続または明示操作にできる。 +- UI / diagnostics で、現在 Panel/Orchestrator がどの workspace/worktree の Ticket backend を見ているか分かるようにする。 +- cleanup 方針を定義する。 + - orchestration worktree をいつ消せるか。 + - implementation worktree と branch cleanup との関係。 +- filesystem backend 前提の運用改善であり、Ticket store の Git 外 DB 化はこの Ticket では行わない。 + +## 受け入れ条件 + +- Orchestrator role を専用 orchestration worktree で起動する設計・実装方針が記録されている。 +- Orchestrator `pwd` が orchestration worktree であっても、implementation worktree は original workspace root の `.worktree/` に作る guidance になっている。 +- Orchestrator workflow / multi-agent workflow / worktree workflow の Git/worktree 指示が sibling layout と矛盾しない。 +- Orchestrator が main workspace の未投入 Ticket draft を暗黙に queue として扱わない運用境界が明文化されている。 +- implementation branch に orchestration branch の Ticket churn が混ざらないことが設計上説明されている。 +- Panel/launcher 側で Orchestrator の cwd / ticket backend root / original workspace root の扱いがテスト可能な形になっている。 +- 既存の coder/reviewer delegation、worktree cleanup、merge-ready dossier 運用が新 layout と矛盾しない。 +- targeted tests または workflow-level validation が追加・更新されている。 +- `target/debug/yoi ticket doctor` が通る。 + +## 非目標 + +- Ticket backend を SQLite/JSONL など Git 外 store に移行すること。 +- Git を使わない orchestration storage を新規設計すること。 +- Orchestrator が implementation branch を自動 merge / push すること。 +- main workspace の project record publication policy を完全に解くこと。 +- 既存 `.yoi/tickets` の履歴を大規模に移行・rewrite すること。 diff --git a/.yoi/tickets/00001KTTB479X/thread.md b/.yoi/tickets/00001KTTB479X/thread.md new file mode 100644 index 00000000..6059dfc0 --- /dev/null +++ b/.yoi/tickets/00001KTTB479X/thread.md @@ -0,0 +1,7 @@ + + +## 作成 + +LocalTicketBackend によって作成されました。 + +---