14 KiB
作成
LocalTicketBackend によって作成されました。
Intake summary
Ticket role launch の初回 user message を短縮し、情報所管を Instruction / Workflow / Submit / control-plane に分離する方針で合意済み。language と workspace_root/cwd は Instruction 側の環境情報、Git/worktree 操作対象として必要な path は Submit に重複記載可。workflow slug/profile selector は初回 user message に含めない。
State changed
要件・受け入れ条件・境界判断が揃ったため、Orchestrator routing 可能。実装はユーザーが panel で queue した後に開始する。
Decision
Routing decision: blocked_by_dependency_or_missing_authority
Reason:
- Workspace Panel Queue notification was received, but this Orchestrator backend still reads the Ticket as
ready, notqueued. - The root workspace has unsynced/uncommitted queue-related changes for this Ticket and is dirty, including
.yoi/tickets/00001KTVPS6K3/*andcrates/tui/src/multi_pod.rs. - Active in-progress work
00001KTWPE3KQis currently fixing the Panel Queue durable handoff/sync path and is in reviewer handoff; accepting this new Ticket before that path is reviewed/merged would require manual sync/queue recovery and could mix queue-side effects with unrelated dirty root changes.
Evidence checked:
- TicketShow
00001KTVPS6K3: Orchestrator backend state isready. - TicketRelationQuery: no relation blockers.
- TicketOrchestrationPlanQuery: no prior plan records before this routing note.
- Root/orchestrator git state: Orchestrator branch has local routing record changes; root workspace is dirty with this Ticket's
.yoifiles andcrates/tui/src/multi_pod.rs. - Visible Pods: active reviewer
yoi-reviewer-panel-queue-syncfor00001KTWPE3KQ.
Next action:
- Leave this Ticket unaccepted for implementation in this Orchestrator pass.
- Re-route after the Panel Queue durable handoff work is resolved and the root/orchestration Ticket state is synchronized cleanly, or after a human explicitly instructs manual recovery for the queued root-side changes.
Escalate if:
- The queued root-side changes should be manually committed/synced despite the current dirty workspace and active Queue-handoff fix.
State changed
Ticket を workspace-panel が queued にしました。
Decision
Routing decision: implementation_ready
Reason:
- Ticket body は Ticket role launch の first-run user message から role behavior / procedural guidance / control-plane metadata を外し、Submit に対象 Ticket / action instruction / per-launch context だけを残す方針を明確に記録している。
- Instruction / Workflow / Submit / control-plane の境界、Ticket config schema に instruction field を追加しないこと、launch context template 化を避けることが binding decision として記録済みである。
ready -> queuedは workspace-panel により再実行され、現在の Orchestrator backend でもqueuedとして読める。relation blocker はない。- 以前の blocker だった Panel Queue durable handoff work
00001KTWPE3KQは closed 済みで、現在の orchestration worktree は clean。残る不確実性は既存 prompt/profile/workflow resource とcrates/client/src/ticket_role.rs周辺の bounded implementation investigation に閉じている。
Evidence checked:
- Ticket body / thread / artifacts:
item.md、thread.md、既存 waiting-capacity note を確認。 - TicketRelationQuery: outgoing/incoming relation なし、blocker なし。
- TicketOrchestrationPlanQuery: 既存
waiting_capacity_noteと、今回の accepted planorch-plan-20260612-123134-2を確認。 - Related Ticket:
00001KTWPE3KQは closed 済みで、Queue handoff blocker は解消済み。 - Workspace state: Orchestrator worktree
orchestration/yoi-orchestratorは clean。 - Code/resource map:
crates/client/src/ticket_role.rs,resources/profiles/orchestrator.lua,resources/prompts/ticket_role/*.mdと関連 prompt/profile/workflow resource を確認。 - Durable context: prompt prose は resources/prompts へ集約し、Profile/Workflow が role behavior/procedure を所有する既存方針に一致する。
- Visible Pods: active child Pod なし。
IntentPacket:
Intent:
- Ticket role Pod launch の初回 user message を短縮し、model-visible な launch input を Submit-only の per-launch context に近づける。
- role behavior は builtin role Profile が選ぶ Instruction、procedural guidance は Workflow、control-plane metadata は launch plan/diagnostics/trace に分離する。
Binding decisions / invariants:
Profile selector、Workflow、Configured launch_prompt refなどの control-plane metadata は first-run user message に含めない。- role behavior / 恒常的環境情報 / language / workspace_root / cwd は Instruction/system 側の責務とする。ただし今回の Git/worktree 操作対象として必要な path は Submit に明示してよい。
- procedural guidance は Workflow 側に置く。
- Submit に残す情報は対象 Ticket、action instruction、今回の操作対象として必要な per-launch context に限定する。
- Ticket config に role-level
system_instruction/instructionfield を追加しない。 - launch context の過剰なテンプレート化は行わず、Rust 側の短い Submit 組み立てに留める。
- 新しい input を hidden context として差し込まず、必要な model-visible context は適切な Instruction/Workflow/committed user task/history 経由にする。
Requirements / acceptance criteria:
- Ticket role launch の first-run
Segment::Textが短くなり、対象 Ticket / action instruction / per-launch context だけを含む。 - role behavior は builtin role instruction prompt から供給される。
- procedural guidance は Workflow に残る、または Workflow に移されている。
- control-plane metadata は prompt text ではなく launch plan / diagnostics / trace に留まる。
- Ticket record language guidance は first-run user message ではなく Instruction 側の環境情報として扱われる。
- Orchestrator launch で必要な workspace/cwd/topology 情報は Pod 環境情報と per-operation Submit 情報に分離され、Git/worktree 操作対象として必要なものだけ Submit 内で明示される。
- 関連 unit tests が新しい出力方針を検証する。
nix build .#yoiが通る。
Implementation latitude:
- builtin role instruction prompt のファイル名・配置は既存 prompt resource conventions に合わせて選んでよい。
resources/prompts/ticket_roleの既存 fragment は、不要なら削除または縮小してよい。TicketRoleLaunchContext.user_instructionrename は、変更量が大きい場合は段階的移行でもよい。ただし model-visible label はUser/action instructionより正確な名前にする。- Workflow 側に移す文言は public builtin workflow と workspace dogfood workflow の責務差を保つ。
Escalate if:
- Instruction / Workflow / Submit の境界に収まらない新しい model-visible 情報が見つかる。
- Ticket role launch の dynamic data を Instruction minijinja context に入れる必要が出る。
- Ticket config schema に新しい instruction field を追加する必要が出る。
- Workflow invocation、workspace/user prompt override、Ticket role launch、Panel Intake / Orchestrator launch のいずれかを壊さないと実現できない。
Validation:
- Ticket role launch prompt 出力の unit tests。
- builtin role Profile が instruction prompt を解決できることの focused validation。
- relevant cargo tests。
cargo fmt --check。git diff --check。target/debug/yoi ticket doctorまたは built binary のyoi ticket doctor。nix build .#yoi。
Current code map:
- 主対象:
crates/client/src/ticket_role.rs。 - Profile/resource:
resources/profiles/{intake,orchestrator,coder,reviewer}.lua,resources/prompts/ticket_role/*.md, 必要なresources/workflows/*/.yoi/workflow/*。 - Prompt/system integration check:
crates/pod/src/prompt/system.rs。 - Implementation worktree では Orchestrator/main
.yoirecords、.yoi/memory、local/runtime/log/lock/secret-like.yoipaths を生成・編集しない。
Critical risks / reviewer focus:
- control-plane metadata が first-run user message に残っていないこと。
- role behavior / procedure が Submit に残留せず、Instruction / Workflow の適切な boundary に移っていること。
- Ticket record language guidance と workspace/cwd/topology 情報が hidden/ephemeral context injection になっていないこと。
- Dynamic Ticket data を system Instruction 側へ混ぜないこと。
- 既存 Ticket role launch、Panel Intake/Orchestrator launch、workflow invocation、prompt override の動作を壊していないこと。
Next action:
queued -> inprogressを記録してから、branchticket/shorten-ticket-role-launch-input/ worktree/home/hare/Projects/yoi/.worktree/shorten-ticket-role-launch-inputを作成し、sibling coder に narrow write scope で実装を委譲する。Reviewer は coder evidence 後に read-only で起動する。
State changed
Routing accepted for implementation. Ticket body/thread, relation blockers, orchestration plan, prior waiting-capacity note, closed Queue-handoff dependency, current Orchestrator workspace state, relevant prompt/profile/workflow code map, and visible Pods were rechecked. No unresolved blocker or missing planning decision remains. Implementation side effects will start only after this accepted queued -> inprogress transition is recorded, using accepted plan orch-plan-20260612-123134-2.
Plan
Implementation worktree created for multi-agent handoff.
- Ticket:
00001KTVPS6K3 - Branch:
ticket/shorten-ticket-role-launch-input - Worktree:
/home/hare/Projects/yoi/.worktree/shorten-ticket-role-launch-input - Base: Orchestrator workspace HEAD
ae66c447(orchestration/yoi-orchestrator), including the accepted routing record andqueued -> inprogresstransition. - Scope rule: implementation work happens only in this child worktree. Root/original workspace must not be read, written, validated, merged, cleaned, or used for git operations.
- Next: spawn sibling coder with narrow write scope to the implementation worktree. Reviewer will be started after coder evidence is available.
Implementation report
Coder spawn initial attempt failed before socket creation.
- Coder Pod name:
yoi-coder-role-launch-input - Error:
cwd is not readable under the configured scope: /home/hare/Projects/yoi - Recovery: retry with the same child worktree write scope plus minimal non-recursive read authority on the runtime workspace root required by spawn validation. The coder task still explicitly prohibits reading/writing/validating/merging/cleaning/running git in the root/original workspace and must operate from the child worktree only.
Plan
Coder delegated.
- Coder Pod:
yoi-coder-role-launch-input - Worktree:
/home/hare/Projects/yoi/.worktree/shorten-ticket-role-launch-input - Branch:
ticket/shorten-ticket-role-launch-input - Scope: write
/home/hare/Projects/yoi/.worktree/shorten-ticket-role-launch-input; read child worktree plus minimal non-recursive runtime-root read required by spawn validation. - Task: shorten Ticket role launch first-run Submit input, move/keep role behavior in builtin Profile instruction, keep procedural guidance in Workflow, keep control-plane metadata out of first-run user text, add focused tests, validate with relevant cargo tests and
nix build .#yoi. - Constraint: coder was instructed not to use root/original workspace for decision evidence or git/validation/cleanup, and not to create generated memory/local/runtime/log/lock/secret-like
.yoipaths.
Implementation report
Coder completed implementation.
Coder Pod:
yoi-coder-role-launch-input
Implementation branch/worktree:
- Branch:
ticket/shorten-ticket-role-launch-input - Worktree:
/home/hare/Projects/yoi/.worktree/shorten-ticket-role-launch-input - Commit:
949531a0 client: shorten ticket role launch input - Worktree status: clean
Changed surfaces:
crates/client/src/ticket_role.rscrates/manifest/src/profile.rscrates/pod/src/prompt/loader.rsresources/profiles/{intake,orchestrator,coder,reviewer}.luaresources/prompts/role/{intake,orchestrator,coder,reviewer}.md- removed obsolete
resources/prompts/ticket_role/*.md resources/workflows/{multi-agent-workflow,ticket-intake-workflow,ticket-orchestrator-routing}.md
Orchestrator-verified evidence from child worktree:
git status --short --branchclean onticket/shorten-ticket-role-launch-inputcargo test -p client ticket_role --lib: pass, 16 testscargo test -p manifest builtin_role_profiles_are_registered_and_resolve --lib: pass, 1 testcargo test -p pod builtin_ticket_role_instructions_resolve --lib: pass, 1 testcargo fmt --check: passgit diff --check orchestration/yoi-orchestrator...HEAD: pass./result/bin/yoi ticket doctor:doctor: oknix build .#yoi: pass
Next:
- Spawn read-only sibling reviewer against the recorded intent, binding decisions/invariants, acceptance criteria, commit
949531a0, diff, and validation evidence.