diff --git a/.yoi/tickets/00001KV5D7MG5/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KV5D7MG5/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..1edb5dce --- /dev/null +++ b/.yoi/tickets/00001KV5D7MG5/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260615-124038-1","ticket_id":"00001KV5D7MG5","kind":"accepted_plan","accepted_plan":{"summary":"Accept Panel orchestration Ticket state overlay work. Implement read-only, source-qualified overlay from configured orchestration worktree with path/branch/repository safety checks and duplicate action gating.","branch":"impl/00001KV5D7MG5-panel-orchestration-overlay","worktree":"/home/hare/Projects/yoi/.worktree/00001KV5D7MG5-panel-orchestration-overlay","role_plan":"Orchestrator creates dedicated implementation worktree and spawns Coder with write scope limited to that worktree. Reviewer will run read-only after implementation report. Work is isolated to Panel/Ticket config/worktree overlay code and current workspace has no active child implementation Pods."},"author":"yoi-orchestrator","at":"2026-06-15T12:40:38Z"} diff --git a/.yoi/tickets/00001KV5D7MG5/item.md b/.yoi/tickets/00001KV5D7MG5/item.md index e697ee3f..f47d3388 100644 --- a/.yoi/tickets/00001KV5D7MG5/item.md +++ b/.yoi/tickets/00001KV5D7MG5/item.md @@ -1,8 +1,8 @@ --- title: 'Panel に orchestration worktree の Ticket state overlay を表示する' -state: 'queued' +state: 'inprogress' created_at: '2026-06-15T10:29:00Z' -updated_at: '2026-06-15T12:39:21Z' +updated_at: '2026-06-15T12:40:45Z' assignee: null readiness: 'implementation_ready' risk_flags: ['panel', 'ticket-state', 'orchestration', 'worktree', 'git-branch', 'read-only-overlay'] diff --git a/.yoi/tickets/00001KV5D7MG5/thread.md b/.yoi/tickets/00001KV5D7MG5/thread.md index 2f0e7bf5..e5b0670f 100644 --- a/.yoi/tickets/00001KV5D7MG5/thread.md +++ b/.yoi/tickets/00001KV5D7MG5/thread.md @@ -13,4 +13,89 @@ LocalTicketBackend によって作成されました。 Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Panel Queue により routing が明示的に許可され、Ticket は `queued`。 +- Ticket body / thread / relation / OrchestrationPlan / Orchestrator workspace state / related closed Ticket context を確認した。blocking relation はなく、planning に戻す concrete missing information はない。 +- `00001KV0X254D` で `.yoi/ticket.config.toml` の orchestration branch 設定が実装済みであり、`00001KV12W2RT` / `00001KV4ZPAD3` で Panel Ticket row / hierarchy 表示の前提が整っている。 +- Risk は panel / ticket-state / orchestration / worktree / git-branch / read-only-overlay だが、Ticket 本文に safety checks・read-only invariant・fallback・action gating が明記されているため、残る不確実性は implementation tactic に閉じている。 + +Evidence checked: +- Ticket body/thread: overlay source、safety checks、display guidance、action gating、fallback、acceptance criteria、non-goals を確認。 +- Ticket relations: blocker なし。 +- OrchestrationPlan: 既存 record なし。 +- Related context: `00001KV0X254D` closed(orchestration branch config)、`00001KV12W2RT` closed(two-line Ticket row/gate display)。 +- Current config: `.yoi/ticket.config.toml` を確認。現 checkout には `[orchestration]` section がないため、default `/.worktree/orchestration` / branch `orchestration` fallback を扱う必要がある。 +- Orchestrator workspace: `/home/hare/Projects/yoi/.worktree/orchestration` は clean、`318aa191` 上。 +- Visible Pods: implementation child Pod なし。 + +IntentPacket: + +Intent: +- Workspace Panel の canonical current-branch Ticket state を上書きせず、configured orchestration worktree / branch の Ticket state を read-only overlay として読み、source-qualified progress と action gating を表示する。 + +Binding decisions / invariants: +- Primary Ticket state authority は current workspace branch の `.yoi/tickets` のまま。 +- Overlay は read-only。overlay Ticket files を変更せず、current branch Ticket files に自動反映しない。 +- current branch `state` を overlay state で上書きしない。 +- Overlay source は expected path / branch / same repository / canonical top-level safety checks 通過時のみ使う。 +- 誤った worktree / unrelated repository / branch mismatch の Ticket state を表示しない。 +- Ticket identity join は canonical Ticket id。 +- Overlay progress is source-qualified(例: `orchestration: inprogress`, `local: queued · orchestration: done`)。 +- Overlay が current state より進んでいる場合、Queue/Start 等の duplicate action は safety 側で抑止する。 +- Runtime overlay は merge/review/close authority の代替ではない。 + +Requirements / acceptance criteria: +- Panel ViewModel が configured orchestration worktree `.yoi/tickets` を read-only overlay として読み込める。 +- `[orchestration]` config の `branch` / `worktree_dir` / `worktree_name` と defaults を使って expected path/branch を解決する。 +- current branch state は overlay state で変更されない。 +- local `queued` + overlay `inprogress` を Panel に overlay progress として表示する。 +- local `queued` + overlay `done` を `orchestration: done` / merge pending 相当として表示し、Queue/Start を再提示しない。 +- overlay unavailable / branch mismatch / missing worktree は panic せず current branch 表示へ fallback し、必要なら bounded diagnostic を出す。 +- Tests cover overlay id join、queued+inprogress、queued+done action gating、branch mismatch ignore、missing worktree fallback、current branch Ticket files non-mutation。 + +Implementation latitude: +- Overlay-only Ticket の表示有無は実装判断。ただし表示する場合は source を明確にする。 +- Exact wording / gate/action label は既存 Panel row hierarchy に合わせて調整してよい。 +- Safety check helper の配置は existing Ticket config / Panel orchestration worktree code に合わせる。 +- Heavy full doctor を毎 render 必須にしない。 + +Escalate if: +- Ticket config model に `worktree_dir` / `worktree_name` が存在せず、新 schema の exact authority が必要になる。 +- same-repository / git-common-dir validation が current abstractions で安全に書けない。 +- overlay state を読むために current workspace以外の arbitrary path authority が必要になる。 +- action gating が lifecycle authority と衝突する。 +- overlay-only Tickets の表示方針が product decision を要する。 + +Validation: +- `cargo test -p tui workspace_panel --lib` or focused overlay tests。 +- Relevant ticket config / orchestration worktree tests if config parsing changes。 +- `cargo check -p tui --all-targets`。 +- `cargo fmt --check`。 +- `git diff --check`。 + +Critical risks / reviewer focus: +- read-only overlay invariant。 +- same-repository / branch / canonical path safety checks。 +- source-qualified display; no state overwrite。 +- duplicate Queue/Start action suppression when overlay has progressed。 +- fallback diagnostics boundedness。 +- no accidental merge/close authority substitution。 +- row hierarchy and invalid Ticket tolerance regressions。 + +--- + + + +## State changed + +Routing decision と accepted implementation plan を記録済み。blocking relation / unresolved OrchestrationPlan blocker はなく、Orchestrator workspace は clean。implementation side effects の前に `queued -> inprogress` acceptance を記録する。 + ---