6.2 KiB
6.2 KiB
| title | state | created_at | updated_at | assignee | risk_flags | |||
|---|---|---|---|---|---|---|---|---|
| Ticket role launch inputを短縮し、role behaviorをInstruction/Workflowへ分離する | ready | 2026-06-11T16:03:28Z | 2026-06-12T09:11:30Z | null |
|
Background
Ticket role Pod launch 時の初回 user message に、role の振る舞いや手順説明が長く含まれている。これを整理し、model-visible な情報の所管を明確にする。
合意済みの分類:
- Instruction: role behavior、恒常的な環境情報、language、workspace_root / cwd など Pod の動作に必要な環境情報。
- Workflow: 手続き、手順、routing / implementation / review / close の flow。
- Submit: 対象 Ticket 指定、ユーザー入力または system-generated action instruction、今回の操作対象として明示する path / worktree / branch / validation / report expectations。
- Control-plane only: profile selector、workflow slug、launch_prompt ref、pod name など。原則として初回 user message には出さない。
関連する既存 Ticket:
00001KTRKZ14C: Project workflowsをpublic builtinとdogfood運用に分離する。closed。00001KTGFMW70: Builtin Workflow and Knowledge resources。closed。00001KTR6YVDB: LLM向けプロンプト直書きを廃止してresources/promptsへ集約する。closed。
Requirements
- Ticket role launch の generated first-run user message から、role behavior / procedural guidance / launch metadata の長文説明を削除する。
Profile selector、Workflow、Configured launch_prompt refのような control-plane metadata は、初回 user message に含めない。- role としての振る舞いは builtin role Profile が選ぶ
worker.instructionに移す。 - 手続き・手順は Workflow に置く。
- Submit に残す情報は、対象 Ticket id、ユーザー入力または launcher-generated action instruction、今回の操作対象として必要な per-launch context に限定する。
languageは Instruction の環境情報として扱う。workspace_root/cwdは Instruction/system 側の環境情報として扱う。ただし Git 操作や worktree 操作の対象として明示が必要な path は、重複しても Submit に書いてよい。resources/prompts/ticket_role/*.mdに残っている role-specific 長文 fragment を削除、縮小、または Instruction/Workflow 側へ移す。TicketRoleLaunchContext.user_instructionは実態に合わせ、必要ならaction_instruction/launch_instructionなどへ rename する。user-authored text と launcher-generated instruction が混ざっていることを表現できる名前にする。- 既存の workflow invocation、workspace/user prompt override、Ticket role launch、Panel Intake / Orchestrator launch の動作を壊さない。
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 は初回 user message ではなく Instruction 側の環境情報として扱われる。
- Orchestrator launch で必要な workspace/cwd/topology 情報は、Pod 環境情報と per-operation Submit 情報に分離され、Git/worktree 操作対象として必要なものは Submit 内で明示される。
- 関連する unit tests が新しい出力方針を検証している。
nix build .#yoiが通る。
Binding decisions / invariants
- Instruction: 振る舞い、恒常的な環境情報。
- Workflow: 手続き、手順。
- Submit: 対象チケットの指定、ユーザー入力または system-generated action instruction、今回の操作対象。
workflow slugとprofile selectorは初回 user message には不要。languageは Instruction 所管。workspace_root/cwdは Instruction/system 側に置く。ただし今回の Git/worktree 操作対象として必要な path は Submit に重複記載してよい。- Ticket config に role-level
system_instruction/instructionfield は追加しない。builtin role Profile がworker.instructionを選ぶ。 - launch context template 化は行わない。過剰なテンプレート化ではなく、Rust 側の短い Submit 組み立てに留める。
Implementation latitude
- builtin role instruction prompt のファイル名・配置は実装者が既存 prompt resource conventions に合わせて決めてよい。
resources/prompts/ticket_roleの既存 fragment は、不要なら削除してよい。user_instructionrename は、変更範囲が大きすぎる場合は別名追加や段階的移行でもよい。ただし model-visible label はUser/action instructionより正確な名前にする。- Workflow 側に移す文言は public builtin workflow と workspace dogfood workflow の責務差を保つ。
Readiness
- readiness: implementation_ready
- risk_flags: [prompt-context, workflow-boundary, role-launch]
Escalation conditions
- Instruction / Workflow / Submit の境界に収まらない新しい model-visible 情報が見つかった場合は、実装前に判断を戻す。
- Ticket role launch の dynamic data を Instruction minijinja context に入れたくなる場合は、処理対象データを system prompt に入れていないか確認して判断を戻す。
- Ticket config schema に新しい instruction field を追加したくなる場合は判断を戻す。
Validation
- Ticket role launch prompt 出力を検証する unit tests。
- builtin role Profile が instruction prompt を解決できることの検証。
- relevant cargo tests。
nix build .#yoi。
Related work
resources/prompts/ticket_role/*.mdresources/profiles/{intake,orchestrator,coder,reviewer}.luaresources/workflows/*.yoi/workflow/*crates/client/src/ticket_role.rscrates/pod/src/prompt/system.rs