yoi/.yoi/tickets/00001KTGFMW70/thread.md

12 KiB

Created

Created by LocalTicketBackend create.


Plan

Intake refinement: builtin Workflow / Knowledge resource implementation

この Ticket は新規作成せず、既存 Ticket 00001KTGFMW70 を実装可能な follow-up として更新する。関連する設計 Ticket 00001KTRKZ14C は closed で、workflow 側の builtin source / provenance / source priority / public-vs-dogfood split の判断を提供しているため、本 Ticket はその実装 follow-up として扱う。

Clarified scope

  • builtin Workflow resource と builtin Knowledge resource を runtime に同梱し、workspace に同名ファイルが無くても参照できるようにする。
  • workspace/project 側の同名 record は builtin を override できる。override / fallback は provenance とともに観測可能にする。
  • Workflow は resources/workflows/<slug>.md を builtin resource 置き場とする。これは 00001KTRKZ14C / docs/design/workflows-public-dogfood-split.md の決定に従う。
  • Knowledge は同じ resource boundary の発想で resources/knowledge/<slug>.md または既存の resource loader 構成に自然に収まる同等の明示的ディレクトリを使う。prompt fragment と混同しないこと。
  • resident / advertised workflow の集合は小さく保つ。core builtin は ticket-intake-workflowticket-orchestrator-routing、optional builtin は multi-agent-workflow、compatibility-only は ticket-preflight-workflow とする。Yoi repository dogfood workflow は public builtin semantics を同名で shadow しない。

Acceptance criteria

  • builtin Workflow / Knowledge resource が embedded runtime resources として package build 後にも読める。
  • workspace/project resources が builtin より優先され、同名 override 時も source/provenance が list/show/launch/context で確認できる。
  • source priority は workflow design document の判断を壊さない: explicit path/file selector がある場合は最優先、workspace/project、user source が既存または明示的に実装される場合は user、builtin、explicitly enabled plugin/skill source の順を基本にする。
  • Workflow launch context には、どの workflow text が使われたかを示す source/provenance が残る。
  • Knowledge context でも builtin 由来か workspace/user override 由来かを reviewer が追える。
  • resources/prompts に workflow/knowledge prose を混在させない。
  • tests は source priority、workspace override、missing workspace file fallback、package/resource availability の少なくとも主要経路を覆う。
  • runtime resource / packaging に触れるため、完了前に nix build .#yoi または同等の flake package build を通す。

Binding decisions / invariants

  • Prompt context に hidden injection しない。Workflow / Knowledge resource を LLM context に載せる場合は、既存の history / worker context 原則に従い、turn を跨いで根拠が消える形にしない。
  • Workflow prose、Knowledge records、Prompt fragments は別の resource boundary として扱う。
  • Builtin resource の存在は workspace files の authority を奪わない。workspace override は明示的かつ provenance-visible にする。
  • Dogfood workflow semantics を public builtin slug に隠して載せない。Yoi 固有 Git/worktree/cargo/nix/merge policy は workspace-local dogfood slug または launch context 側に残す。
  • Secret / credential / private prompt を builtin Knowledge として同梱しない。

Implementation latitude

  • WorkflowSource::Builtin そのもの、または同等の typed provenance を実装してよい。
  • Workflow と Knowledge で共有 resolver を作るか、各 crate に薄く分けるかは実装判断でよい。ただし source priority / provenance の振る舞いは揃える。
  • user-level resource directory が既存実装に無い場合、まず workspace override + builtin fallback を完成させ、user source は明示的な config/storage boundary が必要なら小さく実装するか、別 follow-up に切る判断を Orchestrator にエスカレーションしてよい。

Risk flags / reviewer focus

  • risk_flags: [runtime-resource, workflow-source, knowledge-source, provenance, prompt-context, packaging]
  • Reviewer は loader/resolver の優先順位、provenance 表示、prompt context 原則、resources/prompts との混同、Nix package resource inclusion を重点確認する。

Escalation conditions

  • Knowledge 側に source-qualified selector / user-level override の public API を新設する必要があり、既存 Memory/Knowledge schema や Profile/manifest authority を変える場合。
  • Workflow slug / selector syntax を変更し、既存 /workflow invocation や .yoi/ticket.config.toml の workflow selector に互換影響が出る場合。
  • Builtin resource inclusion が Nix packaging / install layout に影響し、compile-time embed 以外の配布方式が必要になる場合。

Readiness

  • readiness: implementation_ready
  • blocking open questions: none
  • related: 00001KTRKZ14C, docs/design/workflows-public-dogfood-split.md

Intake summary

既存 Ticket 00001KTGFMW70 を重複作成せず更新した。これは closed Ticket 00001KTRKZ14C の workflow source/provenance/design 判断を受けた実装 follow-up として扱う。scope は embedded builtin Workflow / Knowledge resources、workspace/project override、provenance-visible lookup/launch/context、tests、packaging validation。blocking open question はない。risk flags / reviewer focus は runtime-resource / workflow-source / knowledge-source / provenance / prompt-context / packaging。Orchestrator は implementation_ready として queue 後に routing できるが、Knowledge user-source public API や selector syntax 変更が必要になった場合は escalation。


State changed

Intake refinement により、要件・invariants・implementation latitude・risk flags・validation focus が揃ったため、Orchestrator が routing できる状態として ready にする。実装 side effect はまだ開始しない。


State changed

Ticket を workspace-panel が queued にしました。


State changed

Queue acceptance: relation query has no blockers, orchestration-plan query has no records, unrelated planning Ticket record was committed (cd831ec4), and the remaining dirty state is this Ticket's panel queue update. The Ticket is implementation_ready based on Intake refinement and closed design Ticket 00001KTRKZ14C. Standing merge-completion authorization is in effect after reviewer approval and safe-workspace checks. Implementation side effects may proceed after this recorded acceptance.


Plan

Routing decision: implementation_ready

Reason:

  • Ticket is queued, user/panel authorized routing, relation query has no blockers, and orchestration-plan query has no records.
  • Intake refinement marks the Ticket implementation-ready and ties it to closed design Ticket 00001KTRKZ14C.
  • Workspace dirty state was checked and unrelated planning Ticket record was committed before acceptance.

Evidence checked:

  • Ticket body/thread/artifacts and Intake refinement.
  • TicketRelationQuery: no blockers.
  • TicketOrchestrationPlanQuery: no records before this routing pass.
  • Workspace/worktree/branch state: main worktree only before acceptance.
  • Relevant design context: closed workflow split design (00001KTRKZ14C) selected resources/workflows/<slug>.md, builtin source/provenance, workspace override priority, resident core/optional policy, and dogfood/public split.

IntentPacket:

  • Intent: add first-pass builtin Workflow and Knowledge resources as embedded runtime resources with provenance-visible lookup and workspace override/fallback, without requiring broad migration of current role prompt guidance.
  • Binding decisions / invariants: keep workflow/knowledge/prompt resource boundaries separate; do not hide dogfood workflow semantics under public builtin slugs; workspace records must override builtin fallback; provenance must be visible; do not inject hidden cross-turn context; do not introduce secret/private builtin Knowledge; keep existing project .yoi/workflow and Knowledge support working.
  • Requirements / acceptance criteria: explicit source-qualified builtin slug lookup; workspace fallback/override behavior; source/provenance in workflow launch context and Knowledge context/lookup; bundled resources under resources/workflows and resources/knowledge or equivalent non-prompt directories; tests for builtin lookup, override precedence, missing fallback/diagnostics, and package resource availability; nix build .#yoi before completion.
  • Implementation latitude: if user-level resource directories need new public API, implement workspace+builtin first and record user-source as follow-up; shared resolver or thin domain-specific resolvers are both acceptable if behavior is aligned.
  • Escalate if selector syntax changes break existing workflow invocation or .yoi/ticket.config.toml, or if Knowledge schema/Profile authority changes become necessary.
  • Validation: focused resolver/role launch/Knowledge tests, cargo fmt --check, git diff --check, target/debug/yoi ticket doctor, and nix build .#yoi.

Implementation report

Implementation report

Branch/worktree: builtin-workflow-knowledge-resources / .worktree/builtin-workflow-knowledge-resources Commit:

  • 2418ad33 feat: add builtin workflow resources

Summary:

  • Added embedded builtin Workflow resources under resources/workflows for:
    • ticket-intake-workflow
    • ticket-orchestrator-routing
    • multi-agent-workflow
  • Added embedded builtin Knowledge resource resources/knowledge/workflow-resource-boundary.md used by builtin workflows.
  • Added WorkflowSource::Builtin and builtin Workflow registry loading.
  • Workspace .yoi/workflow/<slug>.md records override builtin workflows by slug; skill records remain lower-priority and produce existing shadow messages.
  • Workflow system messages now include Workflow source provenance (from builtin workflow, from workspace workflow, etc.).
  • Workflow-required Knowledge resolution now falls back from workspace .yoi/knowledge/<slug>.md to builtin Knowledge resources and includes Knowledge source provenance (from workspace / from builtin).
  • Workspace Knowledge overrides builtin Knowledge for the same required slug.
  • Added/updated tests for builtin registry fallback, workspace override precedence, builtin provenance, builtin required Knowledge fallback, workspace Knowledge override, and existing workflow invocation behavior.

Validation run in branch:

  • cargo fmt --check passed.
  • cargo test -p workflow --lib passed (34 passed).
  • cargo test -p pod workflow --lib passed (8 passed).
  • cargo check -p workflow -p pod passed.
  • git diff --check passed.
  • /home/hare/Projects/yoi/target/debug/yoi ticket doctor passed.
  • nix build .#yoi passed.

Notes:

  • This is a first-pass builtin resource implementation. It covers embedded builtin Workflow and Workflow-required Knowledge fallback/provenance. Broader KnowledgeQuery builtins and user-level workflow/knowledge resource directories remain follow-up boundaries if desired.