From fcae8860445221503876ee68f72b25e6419edbcd Mon Sep 17 00:00:00 2001 From: Hare Date: Tue, 16 Jun 2026 00:54:32 +0900 Subject: [PATCH] ticket: accept plugin tool surface work --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KV5W3PHA/item.md | 4 +- .yoi/tickets/00001KV5W3PHA/thread.md | 84 +++++++++++++++++++ 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KV5W3PHA/artifacts/orchestration-plan.jsonl diff --git a/.yoi/tickets/00001KV5W3PHA/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KV5W3PHA/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..1b12b5d3 --- /dev/null +++ b/.yoi/tickets/00001KV5W3PHA/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260615-155415-1","ticket_id":"00001KV5W3PHA","kind":"accepted_plan","accepted_plan":{"summary":"Accept Plugin Tool surface registration boundary work. Register enabled Plugin Tool schemas into ToolRegistry with origin metadata, duplicate/schema diagnostics, feature/profile hiding, and runtime-missing safe errors without implementing WASM execution.","branch":"impl/00001KV5W3PHA-plugin-tool-surface","worktree":"/home/hare/Projects/yoi/.worktree/00001KV5W3PHA-plugin-tool-surface","role_plan":"Orchestrator creates dedicated implementation worktree and spawns Coder with write scope limited to that worktree. Reviewer will run read-only after implementation report. Dependency `00001KV5R5V2S` is done and current workspace is clean."},"author":"yoi-orchestrator","at":"2026-06-15T15:54:15Z"} diff --git a/.yoi/tickets/00001KV5W3PHA/item.md b/.yoi/tickets/00001KV5W3PHA/item.md index 8cd46dd1..97f24d80 100644 --- a/.yoi/tickets/00001KV5W3PHA/item.md +++ b/.yoi/tickets/00001KV5W3PHA/item.md @@ -1,8 +1,8 @@ --- title: 'Plugin: register enabled Tool surface from packages' -state: 'queued' +state: 'inprogress' created_at: '2026-06-15T14:48:59Z' -updated_at: '2026-06-15T15:53:32Z' +updated_at: '2026-06-15T15:54:24Z' assignee: null readiness: 'implementation_ready' risk_flags: ['plugin', 'tool-registry', 'model-visible-schema', 'capability-boundary', 'profile-config'] diff --git a/.yoi/tickets/00001KV5W3PHA/thread.md b/.yoi/tickets/00001KV5W3PHA/thread.md index d90a2992..c0d04e20 100644 --- a/.yoi/tickets/00001KV5W3PHA/thread.md +++ b/.yoi/tickets/00001KV5W3PHA/thread.md @@ -13,4 +13,88 @@ LocalTicketBackend によって作成されました。 Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Panel Queue により routing が明示的に許可され、Ticket は `queued`。 +- Ticket body / thread / relations / OrchestrationPlan / Orchestrator workspace state を確認した。 +- Outgoing dependency `00001KV5R5V2S` は `done` で、typed relation blocker は解消済み。 +- 本 Ticket は resolved Plugin metadata を入力にした Tool surface registration boundary の実装であり、Plugin code execution / WASM runtime / permission grant enforcement は non-goal として明確。 +- capability-boundary / model-visible-schema / tool-registry risk は高いが、acceptance criteria と fail-closed invariants が具体的で、残る不確実性は typed metadata / registry integration tactic に閉じている。 + +Evidence checked: +- Ticket body/thread: requirements、acceptance criteria、non-goals、related work を確認。 +- Ticket relations: depends_on `00001KV5R5V2S` は done。incoming dependency from runtime Ticket `00001KV5W3PHW` は本 Ticket の blocker ではない。 +- OrchestrationPlan: 既存 record なし。 +- Orchestrator workspace: `/home/hare/Projects/yoi/.worktree/orchestration` は clean、`1fdb4cd6` 上。 +- Visible Pods: implementation child Pod なし。 + +IntentPacket: + +Intent: +- Enabled Plugin package の manifest Tool surface を読み取り、既存 `ToolRegistry` の model-visible schema 経路に安全に登録できる registration boundary を作る。ただし Tool call execution / WASM runtime はまだ実装しない。 + +Binding decisions / invariants: +- Discovery-only package は Tool schema surface に出さない。explicit enablement が必要。 +- Tool registration は existing `ToolRegistry` 原則に従い、feature/profile config disabled なら model-visible schema から消える。 +- Plugin Tool metadata に origin(plugin id/ref、source、digest、version/api、surface)を保持する。 +- Duplicate Tool name は fail closed。builtin Tool / other Plugin Tool との衝突を曖昧に勝たせない。 +- Invalid/unsupported input schema は fail closed。 +- Runtime executor missing の Tool call は panic せず安全な unavailable/runtime-missing error を返す。 +- Plugin code execution / WASM runtime / host API / permission grant enforcement / Service/Ingress/MCP bridge は non-goal。 +- Permission declarations/grants を実効権限として扱わない。registration-time shape checks だけ。 + +Requirements / acceptance criteria: +- Enabled Plugin package の Tool definition が `ToolRegistry` に登録され、model-visible tools に現れる。 +- Enablement がない Plugin package の Tool は model-visible tools に現れない。 +- Duplicate Tool name / builtin collision は登録されず diagnostic で理由が分かる。 +- Invalid input schema は登録されず diagnostic で理由が分かる。 +- Registered Plugin Tool metadata から plugin origin / digest / source を追跡できる。 +- Feature/profile flag により Plugin Tool surface を非表示にできる。 +- Tool call が未実行状態でも panic せず unavailable/runtime-missing error。 +- Tests cover enabled registration、no enablement inactive、duplicate Plugin Tool name、builtin collision、invalid schema、origin metadata、disabled feature/profile surface hiding。 + +Implementation latitude: +- Plugin manifest Tool definition schema の最小 shape は既存 design / resolver の strict parser に合わせてよい。 +- Existing ToolRegistry contribution path に合わせた adapter / feature contribution module を追加してよい。 +- Runtime-missing handler は minimal stub でよいが、model-visible registration と call failure behavior は明確にテストする。 +- Diagnostics の storage/reporting surface は existing resolver diagnostics と整合させる。 + +Escalate if: +- ToolRegistry API が origin metadata を保持できず public API redesign が必要。 +- Feature/profile config で Plugin Tool surface を安全に hide できない。 +- JSON schema validation requires broader schema engine choice。 +- Runtime-missing Tool stub が model/provider protocol に悪影響を与える。 +- Permission grants / WASM executor / host API を実装しないと registration boundary が成立しない。 + +Validation: +- focused plugin/tool-registry tests。 +- relevant `cargo test` / `cargo check`。 +- `cargo fmt --check`。 +- `git diff --check`。 +- `nix build .#yoi` if dependencies, Cargo.lock, package resources, or packaging correctness change。 + +Critical risks / reviewer focus: +- model-visible schema gating。 +- duplicate/builtin collision fail closed。 +- no enablement → no schema。 +- origin metadata traceability。 +- no execution/registration side effects beyond schema contribution。 +- unavailable runtime call safety。 +- permission declaration vs effective grant separation。 + +--- + + + +## State changed + +Routing decision と accepted implementation plan を記録済み。dependency `00001KV5R5V2S` は done で relation blocker は解消済み。Orchestrator workspace は clean。implementation side effects の前に `queued -> inprogress` acceptance を記録する。 + ---