8.3 KiB
8.3 KiB
| title | state | created_at | updated_at | assignee |
|---|---|---|---|---|
| Project workflowsをpublic builtinとdogfood運用に分離する | ready | 2026-06-10T11:16:30Z | 2026-06-10T11:18:55Z | null |
背景
現在の workflow は workspace-local な .yoi/workflow/*.md として管理されている。対象は以下。
ticket-intake-workflow.mdticket-orchestrator-routing.mdticket-preflight-workflow.mdmulti-agent-workflow.mdworktree-workflow.md
これらには Yoi の public builtin workflow として有用な Ticket / Pod orchestration 原則が含まれている一方、この repository の dogfooding 運用に強く結合した Git / worktree / branch / commit / merge / cargo / nix / .yoi sparse checkout などの具体手順も混ざっている。
そのまま builtin 化すると、公開用の標準 workflow が Yoi 開発 repository 固有の運用をユーザー project に押し付けることになる。builtin 化の前に、public default として提供する汎用 workflow と、この repository での dogfooding workflow を明確に分離する必要がある。
現状分析
- Workflow loader は主に
<workspace>/.yoi/workflow/<slug>.mdを読む。 WorkflowSourceには現在WorkspaceWorkflowとSkill { dir }があり、Builtinsource はない。- Pod 起動時に workspace workflows を読み、その後 manifest の
[skills] directories由来のSKILL.mdを registry に merge している。 - resident workflow advertisement は workflow metadata に基づくため、builtin 化した workflow は model context への露出範囲も設計する必要がある。
- 現在の
.yoi/ticket.config.tomlは project-local workflow slug を role に紐づけている。- Intake:
ticket-intake-workflow - Orchestrator:
ticket-orchestrator-routing - Coder/Reviewer:
multi-agent-workflow
- Intake:
問題意識
ticket-intake-workflow.mdは builtin 化しやすいが、古いAction required/Attention required語彙や Yoi dogfooding 寄りの表現を整理する必要がある。ticket-orchestrator-routing.mdは builtin 化候補だが、Git/worktree/branch など実装隔離 mechanism への具体言及を薄め、workspace state / active workspaces / isolation mechanism といった抽象表現へ寄せる必要がある。ticket-preflight-workflow.mdは内容としては planning / requirements sync に近く、public-facing slug と既存互換名の扱いを決める必要がある。multi-agent-workflow.mdは Yoi dogfooding 色が強く、yoi を yoi で開発する、worktree + branch + commit + merge + cargo/nix/yoi doctor などが濃い。そのまま public builtin にしない。worktree-workflow.mdは Git worktree 専用であり、optional な Git workflow としてはあり得るが、default resident workflow にするべきではない。- LLM-facing workflow 文言は prompt の一種なので、builtin workflow の resource placement は
resources/prompts集約方針と整合させる必要がある。
要件
- 現行 project workflows を audit し、public builtin に抽出する内容と dogfood/project-local に残す内容を分離する。
- public builtin workflow に入れるべき抽象原則を整理する。
- Ticket は durable orchestration record。
- Task は session-local progress tracking。
- Objective は中期 goal / decision context。
- Intake は scheduler ではない。
- Ticket 作成前に user agreement を取る。
- broad effort を umbrella/progress-container Ticket にしない。
- binding decisions / invariants と implementation latitude を分ける。
- risk flags は automatic stop gate ではない。
queued -> inprogressは side effect 前の explicit acceptance。- notification は proof ではない。
- coder/reviewer は sibling として扱う。
- reviewer は intent / invariant / acceptance criteria に照らして判断する。
- merge-ready dossier / handoff report の考え方。
- secrets/private context を records に残さない。
- prompt context / authority boundary に触れる変更は escalation。
- public builtin workflow から、この repository 固有の dogfooding 手順を外す。
yoi を yoi で開発する前提。.worktree/<task-name>固定。git worktree add/ sparse checkout 除外リスト。- branch naming / commit / merge / cleanup の細部。
TODO.md/docs/report/.yoi/memory固有運用。cargo fmt --check/cargo check --workspace/cargo test/nix build/yoi ticket doctorの固定 validation。
- dogfood workflow はこの repository 用の project-local workflow として残す。
- public builtin と同じ slug で override するか、
yoi-dogfood-*のような明示 slug に分けるかを判断し、理由を記録する。
- public builtin と同じ slug で override するか、
- builtin workflow source model を設計する。
WorkflowSource::Builtinまたは同等の provenance を追加する方針を決める。- builtin workflow の synthetic path / source label / diagnostics 表示を決める。
- workflow source priority / override semantics を決める。
- workspace
.yoi/workflow/<slug>.mdが builtin を override できること。 - skill workflows と builtin workflows の優先順位を明示すること。
- workspace
- resident advertisement の分類を決める。
- core builtin resident workflow と optional builtin workflow を分ける。
- Git/worktree workflow を default resident にするかどうかを明示する。
- builtin workflow resource placement を決める。
- LLM-facing text 集約方針に従い、
resources/prompts/workflows/など prompt resource 配下に置く案を検討する。 - workflow crate の record/source model と矛盾させない。
- LLM-facing text 集約方針に従い、
.yoi/ticket.config.tomlの workflow selector を、分離後の slug / source model に合わせて更新する。- stale な
Action required/Attention requiredworkflow 文言を削除・置換する。
推奨する分解案
Public builtin core workflows
ticket-intake-workflowticket-orchestrator-routingticket-planning-syncまたは既存互換のticket-preflight-workflow
Public builtin optional workflows
multi-agent-review-workflowgit-worktree-isolation-workflow
optional workflows は builtin resource として提供しても、default resident advertisement には含めない、または profile/feature で明示有効化する。
Project dogfood workflows
yoi-dogfood-multi-agent-workflowyoi-dogfood-worktree-workflow
この repository の concrete Git/worktree/cargo/nix/Ticket doctor 運用は dogfood workflow 側に残す。
受け入れ条件
- 現行
.yoi/workflow/*.mdの内容が、public builtin 候補と dogfood/project-local 残置対象に分類されている。 - public builtin にそのまま入れてはいけない Git/worktree/Yoi-repo-specific 文言が audit され、移動先または削除理由が記録されている。
WorkflowSource::Builtinなど builtin workflow source/provenance の設計が記録されている。- source priority が明文化されている。
- workspace override が builtin より優先されること。
- skill workflow と builtin workflow の優先順位。
- resident advertisement の core/optional 方針が決まっている。
- builtin workflow resource を
resources/prompts配下に置くか、別 resource tree に置くかの判断と理由が記録されている。 - public builtin workflow の slug と dogfood workflow の slug 方針が決まっている。
.yoi/ticket.config.tomlをどう移行するかが記録されている。Action required/Attention requiredのような廃止済み Ticket frontmatter 語彙が workflow から取り除かれる計画になっている。- 後続実装 Ticket に分割できる粒度まで設計が落ちている。
target/debug/yoi ticket doctorが通る。
非目標
- この Ticket 単体で builtin workflow loader を実装すること。
- この Ticket 単体ですべての workflow content を書き換えて移行完了すること。
- Git/worktree workflow を public default resident workflow として無条件に有効化すること。
- Yoi dogfooding 固有の運用を捨てること。
- workflow 文言を Rust code に直書きすること。