ticket: accept companion progress work
This commit is contained in:
parent
3c36d1feb8
commit
ee508f707f
|
|
@ -0,0 +1 @@
|
||||||
|
{"id":"orch-plan-20260611-160703-1","ticket_id":"00001KTTW04W2","kind":"accepted_plan","note":"Role Pods は今回起動しない。","accepted_plan":{"summary":"Routing では implementation_ready と判断した。ただし今回の launch instruction は role Pod spawn を explicit follow-up まで待つ指定のため、現時点では queued のまま保持し、worktree 作成・Pod 起動・merge/close は行わない。実装開始時は side effect 前に改めて blocker/workspace state を確認し、queued -> inprogress を記録してから進める。実装対象は Method::Notify の auto_run 追加、idle auto-run 抑止、live Companion への bounded progress notify、Panel freshness 表示、targeted tests。","branch":"ticket/orchestrator-progress-companion-notify","worktree":"/home/hare/Projects/yoi/.worktree/orchestrator-progress-companion-notify","role_plan":"次の明示 follow-up 後に Orchestrator が worktree-workflow で実装 worktree を作り、coder はその worktree に narrow write scope、reviewer は read-only scopeで sibling として起動する。Companion/Orchestrator/Ticket 権限境界、history-backed context、weak/best-effort notification、bounded/sensitive-safe summary を reviewer focus とする。"},"author":"orchestrator","at":"2026-06-11T16:07:03Z"}
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
title: 'Orchestrator進捗をAutoKickなしでCompanionへ通知する'
|
title: 'Orchestrator進捗をAutoKickなしでCompanionへ通知する'
|
||||||
state: 'queued'
|
state: 'queued'
|
||||||
created_at: '2026-06-11T08:15:24Z'
|
created_at: '2026-06-11T08:15:24Z'
|
||||||
updated_at: '2026-06-11T10:31:56Z'
|
updated_at: '2026-06-11T16:07:34Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
queued_by: 'workspace-panel'
|
queued_by: 'workspace-panel'
|
||||||
queued_at: '2026-06-11T10:31:56Z'
|
queued_at: '2026-06-11T10:31:56Z'
|
||||||
|
|
|
||||||
|
|
@ -29,4 +29,85 @@ Intake refinement により、AutoKick/re-kick との差分、Companion authorit
|
||||||
Ticket を `workspace-panel` が queued にしました。
|
Ticket を `workspace-panel` が queued にしました。
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: decision author: orchestrator at: 2026-06-11T16:07:34Z -->
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
Routing decision: implementation_ready(spawn は explicit follow-up まで保留)
|
||||||
|
|
||||||
|
Reason:
|
||||||
|
- Ticket body/thread は Orchestrator progress を Companion に read-only weak notification として渡す範囲を十分に固定している。
|
||||||
|
- AutoKick / re-kick / scheduler 化は非目標として明示されており、Companion authority 強化、missing/stopped Companion の spawn/restore、persistent snapshot 初期導入、context-only injection、secret/unbounded log 流入も禁止されている。
|
||||||
|
- 残る不確実性は既存 Notify / Panel / Companion 実装内での local tactic selection と targeted tests に閉じており、実装前に人間が追加で固定すべき product/API/authority decision は見つからない。
|
||||||
|
- 今回の launch instruction は「explicit follow-up before spawning role Pods」なので、ここでは queued -> inprogress、worktree 作成、coder/reviewer spawn は行わない。
|
||||||
|
|
||||||
|
Evidence checked:
|
||||||
|
- Ticket item/thread: Background、Requirements、Binding decisions / invariants、受け入れ条件、非目標、intake_summary、ready -> queued event。
|
||||||
|
- TicketRelationQuery: relation なし。unresolved depends_on / incoming blocks なし。
|
||||||
|
- TicketOrchestrationPlanQuery: 既存 plan なし。今回 accepted_plan を記録済み。
|
||||||
|
- TicketDoctor: error 0。
|
||||||
|
- repository state: `/home/hare/Projects/yoi` は dirty file なし、`develop...origin/develop [ahead 3]`。
|
||||||
|
- worktree/branch state: 既存 implementation worktree はなし。`ticket/orchestrator-progress-companion-notify` branch は存在するが `origin/develop` 相当で、実装開始時に merge target の現 HEAD との整合を確認する。
|
||||||
|
- bounded code map: `crates/protocol/src/lib.rs` の `Method::Notify`、`crates/pod/src/controller.rs` の Notify handling / RunForNotification、`crates/tui/src/multi_pod.rs` と workspace panel 周辺、`resources/profiles/companion.lua` / profile feature policy。
|
||||||
|
|
||||||
|
IntentPacket:
|
||||||
|
|
||||||
|
Intent:
|
||||||
|
- Orchestrator の Ticket 消化 progress を、live/reachable Companion に read-only weak notification として届け、Panel からその progress context の鮮度/last updated を確認できるようにする。
|
||||||
|
|
||||||
|
Binding decisions / invariants:
|
||||||
|
- `Notify { auto_run: false }` は idle Pod を起こさず、RunForNotification を staged しない。
|
||||||
|
- progress notice は AutoKick / re-kick / scheduler trigger にしない。
|
||||||
|
- Companion が missing/stopped の場合、通知だけで spawn/restore しない。
|
||||||
|
- 初期実装では persistent progress snapshot store を導入しない。
|
||||||
|
- Companion default profile の tool/feature policy を強化せず、Ticket mutation / Pod spawn / merge / worktree cleanup authority を与えない。
|
||||||
|
- Companion model context に渡す情報は history に残る形で扱い、history に残らない transient context-only injection をしない。
|
||||||
|
- 通知内容は durable/queryable state から bounded に生成し、secret/private context、sensitive provider error detail、unbounded logs、全 Ticket thread / Pod output を含めない。
|
||||||
|
- Prompt / workflow の LLM-facing framing を Rust code に直書きしない。必要なら `resources/prompts` 側に置く。
|
||||||
|
|
||||||
|
Requirements / acceptance criteria:
|
||||||
|
- live/reachable Companion が `Notify { auto_run: false }` 経由で Orchestrator progress notice を受け取れる。
|
||||||
|
- missing/stopped Companion では spawn/restore せず、best-effort delivery に留める。
|
||||||
|
- bounded summary generation と sensitive/unbounded content 排除が testable である。
|
||||||
|
- Panel から Companion progress context の鮮度または last updated が分かる。
|
||||||
|
- targeted tests を追加/更新する。
|
||||||
|
|
||||||
|
Implementation latitude:
|
||||||
|
- `auto_run` の serialization default / migration details、delivery helper の配置、Panel freshness 表示の具体的 UI placement、summary builder の内部構造、test の分割は既存設計に沿う範囲で coder が選んでよい。
|
||||||
|
- 既存 branch/worktree の扱いは実装開始時に Orchestrator が再確認し、merge target と整合する安全な branch/worktree で進める。
|
||||||
|
|
||||||
|
Escalate if:
|
||||||
|
- Companion に新しい mutation/spawn/merge authority を持たせる必要が出た場合。
|
||||||
|
- `auto_run:false` が history-backed notification 以外の hidden context injection を要求する場合。
|
||||||
|
- missing/stopped Companion 向け persistent snapshot store が初期実装の必須要件になりそうな場合。
|
||||||
|
- Method/Protocol の互換性・serde 形式で既存 session/log を壊す設計変更が必要になった場合。
|
||||||
|
- Progress notice が scheduler / AutoKick / re-kick の実行契機になりそうな場合。
|
||||||
|
|
||||||
|
Validation:
|
||||||
|
- targeted tests for `Method::Notify { auto_run: false }` idle behavior, live Companion delivery, missing/stopped no spawn/restore, bounded summary, sensitive/unbounded exclusion。
|
||||||
|
- `cargo test -p tui` または該当 targeted tests。
|
||||||
|
- `cargo fmt --check`。
|
||||||
|
- `git diff --check`。
|
||||||
|
- `/home/hare/Projects/yoi/target/debug/yoi ticket doctor`。
|
||||||
|
- runtime resource / prompt / packaging に触れた場合は `nix build .#yoi`。
|
||||||
|
|
||||||
|
Current code map:
|
||||||
|
- `crates/protocol/src/lib.rs`: `Method::Notify` schema / request handling type。
|
||||||
|
- `crates/pod/src/controller.rs`: `Notify` handling、NotifyBuffer、RunForNotification staging。
|
||||||
|
- `crates/tui/src/multi_pod.rs` / workspace panel 周辺: Companion delivery and freshness UI。
|
||||||
|
- `resources/profiles/companion.lua` and profile policy code: Companion authority remains read-only/limited。
|
||||||
|
|
||||||
|
Critical risks / reviewer focus:
|
||||||
|
- `auto_run:false` が idle Companion を起こしていないこと。
|
||||||
|
- progress notification が Orchestrator scheduler / AutoKick / re-kick と結合していないこと。
|
||||||
|
- Companion authority が増えていないこと。
|
||||||
|
- context は history-backed で、hidden transient injection になっていないこと。
|
||||||
|
- bounded/sensitive-safe summary が enforced/tested されていること。
|
||||||
|
- missing/stopped Companion で spawn/restore しないこと。
|
||||||
|
|
||||||
|
Next action:
|
||||||
|
- ユーザー/上位 Orchestrator から実装開始の explicit follow-up が来たら、side effect 前に TicketShow / relation / orchestration plan / git/worktree state を再確認し、問題なければ `queued -> inprogress` を記録してから worktree 作成と sibling coder/reviewer routing に進む。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user