7.0 KiB
7.0 KiB
作成
LocalTicketBackend によって作成されました。
State changed
Ticket を workspace-panel が queued にしました。
Decision
Routing decision: implementation_ready
Reason:
- Panel Queue により、この Ticket は Orchestrator routing 対象として明示許可された。
- Ticket body は Rust PDK crate、guest-side only boundary、ergonomic Tool helpers、Component Model binding glue、embedded
rust-component-tooltemplate、docs/tests/validation/non-goals を実装可能な粒度で定義している。 - Blocking dependency
00001KVG0HR96Component Model runtime は closed。Component runtime は explicitwasm-componentmetadata、ToolRegistry path、grant enforcement、no ambient WASI、resource limits、WIT files を含めて完了済み。 - Incoming dependency from
00001KVHKWNQSは、この Ticket が将来の authoring CLI Ticket を unblock する関係であり、本 Ticket の blocker ではない。 - Related Plugin CLI / HTTPS / FS Tickets は closed または non-blocking context。
- 現在 queued はこの Ticket のみ、inprogress は 0 件、child implementation Pods はなし、matching branch/worktree はなし、Orchestrator worktree は clean。
- Risk domain は plugin / pdk / component-model / authoring / templates / sdk / no-crates-io だが、Ticket は no crates.io publication、no remote template fetch、guest-side only、no ambient authority、host-side grants remain authority などの invariants を明示している。bounded context check 後も implementation 前に必要な追加 human decision は見つからなかった。
Evidence checked:
- Ticket
00001KVHKWNQAbody / thread / relations / artifacts。 TicketRelationQuery(00001KVHKWNQA): outgoingdepends_ontarget00001KVG0HR96is closed。incoming00001KVHKWNQS depends_on thisis not a blocker。TicketOrchestrationPlanQuery(00001KVHKWNQA): no previous plan records; accepted plan was recorded now。- Workspace state:
- Orchestrator worktree clean at
9ca2f85b。 - queued: this Ticket only。
- inprogress: 0。
- visible Pods: self + peers only; spawned children 0。
- no matching implementation branch/worktree。
- Orchestrator worktree clean at
- Code/resource context:
resources/plugin/wit/yoi-plugin-tool-v1.witandresources/plugin/wit/yoi-host-v1.witexist from the Component runtime work。docs/development/plugin-development.mdis the current Plugin development guide target。- Cargo workspace has no existing
crates/plugin-pdkcrate。
IntentPacket:
Intent:
- Add a first-party Rust PDK for Component Model Tool Plugins and an embedded starter template so authors can implement Yoi Plugin Tools without raw pointer/length ABI plumbing or remote template fetches。
- Position Component Model + PDK as preferred authoring path while keeping raw core-Wasm ABI as compatibility/transitional runtime support。
Binding decisions / invariants:
- PDK is guest-side only。It must not depend on host runtime crates such as
pod,llm-worker,tui, orclient。 - PDK must not grant or imply authority。Host-side Plugin manifest grants remain the authority boundary for Tool execution / HTTPS / FS host APIs。
- No ambient fs/network/env authority is introduced。
- Do not publish to crates.io and do not implement remote template fetch。
- Do not implement
yoi plugin new/check/packin this Ticket; embedded resources should be suitable for that future Ticket。 - Template dependency policy must support checkout/dev local path dependency and document a future out-of-tree git
revpattern。 - PDK should target the current Component Model Tool world (
yoi:plugin/tool@1.0.0) and runtime ToolOutput JSON bridge。 - Prefer minimal, testable helper APIs over broad macro magic。
Requirements / acceptance criteria:
- Add workspace crate
yoi-plugin-pdkundercrates/plugin-pdkor a justified equivalent。 - Provide typed JSON input parsing, output serialization, structured/bounded
ToolError,ToolContextwith at least tool name, and helper equivalent torun_json_toolproducing ToolOutput JSON accepted by the current runtime。 - Provide WIT binding glue/re-export/wrapper enough that authors do not hand-write raw pointer/length ABI code。
- Add embedded template under
resources/plugin/templates/rust-component-tool/withCargo.toml,src/lib.rs,plugin.toml, and README/next steps。 - Include example or fixture Plugin using the PDK。
- Update Plugin development docs and explain publication/template-fetch deferrals。
- Tests cover PDK happy/error paths, template/sample fixture validation, runtime acceptance if feasible, and no host-runtime crate dependency。
- Validation includes focused PDK/plugin tests,
cargo fmt --check, relevantcargo check/cargo test,git diff --check, andnix build .#yoibecause workspace/package/resources may change。
Escalate if:
- Current WIT/runtime shape cannot support a guest-side helper without changing the Component runtime contract。
- A full sample component build requires external tooling that cannot be kept deterministic in this repo。
- Keeping the PDK guest-only would require undesirable dependencies on host crates。
- Template/resource packaging needs a broader CLI/resource architecture decision。
Next action:
- Record
queued -> inprogressand commit Ticket records before creating the implementation worktree and spawning Coder。
State changed
Ticket body/thread, relation metadata, Component Model runtime dependency state, related completed Tickets, Orchestrator worktree state, visible Pods, existing branch/worktree, and bounded resource/code context were checked. Dependency 00001KVG0HR96 is closed, no inprogress/capacity blocker exists, and no missing planning decision was found. Accepting this queued Ticket for implementation before worktree/Pod side effects.
Implementation report
Implementation orchestration start:
- Acceptance records were committed on Orchestrator branch:
5f7f81bd ticket: accept plugin rust pdk templates. - Created implementation worktree
/home/hare/Projects/yoi/.worktree/00001KVHKWNQA-plugin-rust-pdk-templateson branchimpl/00001KVHKWNQA-plugin-rust-pdk-templatesat5f7f81bd. - Spawned Coder Pod
yoi-coder-00001KVHKWNQAwith write scope limited to the implementation worktree and read-only root scope only for runtime workspace identity. - Coder task explicitly forbids root/original workspace implementation, merge, Ticket close, and cleanup.
Next action:
- Wait for Coder implementation report, then inspect branch diff/validation evidence and route to Reviewer.