From aea2a8a45dbf012ef4994a5df42bb88ab8ad143a Mon Sep 17 00:00:00 2001 From: Hare Date: Fri, 19 Jun 2026 19:22:56 +0900 Subject: [PATCH] ticket: accept plugin cli inspection work --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KVFD3YSV/item.md | 4 +- .yoi/tickets/00001KVFD3YSV/thread.md | 92 +++++++++++++++++++ .../artifacts/orchestration-plan.jsonl | 2 + .yoi/tickets/00001KVFDX9AF/thread.md | 23 +++++ .../artifacts/orchestration-plan.jsonl | 2 + .yoi/tickets/00001KVFDX9AY/thread.md | 23 +++++ 7 files changed, 145 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KVFD3YSV/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KVFDX9AF/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KVFDX9AY/artifacts/orchestration-plan.jsonl diff --git a/.yoi/tickets/00001KVFD3YSV/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVFD3YSV/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..f86274fa --- /dev/null +++ b/.yoi/tickets/00001KVFD3YSV/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260619-102132-1","ticket_id":"00001KVFD3YSV","kind":"accepted_plan","accepted_plan":{"summary":"`yoi plugin list` / `yoi plugin show ` を product CLI に追加し、Plugin package discovery / enablement resolution / grant diagnostics / static Tool/runtime eligibility を read-only typed inspection reportとして表示する。Plugin code / WASM / Tool execution / mutation は行わない。","branch":"impl/00001KVFD3YSV-plugin-cli-inspection","worktree":"/home/hare/Projects/yoi/.worktree/00001KVFD3YSV-plugin-cli-inspection","role_plan":"Orchestrator は専用 implementation worktree を作成し、Coder をその worktree への narrow write scope で起動する。Reviewer は実装報告後に read-only で確認する。Host API implementation Tickets は関連するが、CLI inspection は read-only diagnostic surface として先行実装し、host API実装による追加表示は後続差分として扱える。"},"author":"yoi-orchestrator","at":"2026-06-19T10:21:32Z"} diff --git a/.yoi/tickets/00001KVFD3YSV/item.md b/.yoi/tickets/00001KVFD3YSV/item.md index db06a169..7fa26674 100644 --- a/.yoi/tickets/00001KVFD3YSV/item.md +++ b/.yoi/tickets/00001KVFD3YSV/item.md @@ -1,8 +1,8 @@ --- title: 'Plugin: add read-only CLI inspection list/show' -state: 'queued' +state: 'inprogress' created_at: '2026-06-19T07:39:23Z' -updated_at: '2026-06-19T10:19:28Z' +updated_at: '2026-06-19T10:22:35Z' assignee: null readiness: 'implementation_ready' risk_flags: ['plugin', 'cli', 'diagnostics', 'read-only', 'json-output', 'no-execution'] diff --git a/.yoi/tickets/00001KVFD3YSV/thread.md b/.yoi/tickets/00001KVFD3YSV/thread.md index 1422b74e..a37a30e5 100644 --- a/.yoi/tickets/00001KVFD3YSV/thread.md +++ b/.yoi/tickets/00001KVFD3YSV/thread.md @@ -13,4 +13,96 @@ LocalTicketBackend によって作成されました。 Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Panel Queue により、この Ticket は Orchestrator routing 対象として明示許可された。 +- Ticket body には、read-only Plugin inspection CLI の intent、binding invariants、acceptance criteria、implementation latitude、validation、escalation conditions が揃っている。 +- 依存 relation のうち `00001KV5R5V2S` と `00001KV5W3PJ3` は closed で blocker ではない。関連 closed Tickets も context として確認した。 +- Risk domain は Plugin package / grant diagnostics / public CLI だが、Ticket は read-only inspection に限定し、Plugin code / WASM / Tool 実行 / package mutation / hidden model context injection を明示的に禁止している。bounded context check 後も implementation 前に必要な追加 human decision は見つからなかった。 +- 同時 queued の `00001KVFDX9AF` / `00001KVFDX9AY` は host API implementation で Plugin manifest/grant/runtime/diagnostic 周辺に触るため、conflict / reviewer-coder bottleneck を避け、まず read-only CLI inspection を開始する。両 host API Tickets には waiting / do_not_parallelize plan record を残した。 + +Evidence checked: +- Ticket `00001KVFD3YSV` body / thread / artifacts。 +- `TicketRelationQuery(00001KVFD3YSV)`: depends_on の `00001KV5R5V2S` と `00001KV5W3PJ3` は closed、その他 related/duplicate/supersedes は acceptance blocker ではない。 +- `TicketOrchestrationPlanQuery(00001KVFD3YSV)`: 既存 blocker/conflict record なし。今回 `accepted_plan` を記録済み。 +- 関連 Tickets `00001KV5R5V2S`, `00001KV5W3PJ3`, `00001KV5W3PHA`, `00001KV5W3PHW` は closed context として確認。 +- 同時 queued Tickets `00001KVFDX9AF` / `00001KVFDX9AY` body/relation/plan を確認し、host API implementation は conflict risk が高いため queued のまま待機判断。 +- Orchestrator worktree `/home/hare/Projects/yoi/.worktree/orchestration`: clean。 +- Existing worktree/branch: `00001KVFD3YSV` / plugin-cli-inspection matching branch/worktree はなし。 +- Visible Pods: self と peer/restorable Pod のみ。spawned child はなし。 +- Current code map: + - product CLI: `crates/yoi/src/**/*.rs` + - Plugin manifest / requested permissions: `crates/manifest/src/plugin.rs` + - Plugin feature / resolver / diagnostics / tool installation: `crates/pod/src/feature/plugin.rs`, `crates/pod/src/pod.rs` + - Existing grant enforcement from `00001KV5W3PJ3` is merged in Orchestrator branch。 + +IntentPacket: + +Intent: +- `yoi plugin list` と `yoi plugin show ` の read-only CLI inspection を追加する。 +- Plugin package discovery、enablement resolution、source/ref/digest/version、requested permissions、configured grants、grant/diagnostic outcome、static Tool/runtime eligibility を人間が確認できるようにする。 + +Binding decisions / invariants: +- Inspection CLI は read-only。Plugin code / WASM / Tool execution は行わない。 +- Package install/remove/enable/disable/grant mutation は行わない。 +- Secrets / raw config secret values / unbounded diagnostics を表示しない。 +- Unknown permission / unsupported grant / missing grant / digest/version/source mismatch は fail-closed diagnostic として表示する。 +- Existing Plugin permission grant enforcement を弱めない。CLI は権限付与の代替ではない。 +- Product CLI façade `yoi` が public command を持ち、lower crates は implementation library 境界を保つ。 + +Requirements / acceptance criteria: +- `yoi plugin list` が configured/discovered Plugin packages の bounded overview を出せる。 +- `yoi plugin show ` が1件の package/source/ref/digest/version/requested permissions/grants/diagnostics/tools/static eligibility を表示できる。 +- No grant / mismatched grant / unsupported permission / invalid manifest の状態が read-only diagnostic として分かる。 +- Missing package/ref は bounded error になる。 +- JSON output または structured-friendly output が既存 CLI style に合う形で利用できる。 +- Running the inspection command does not execute plugin WASM or Tool code。 +- Tests cover list/show success, missing ref, grant mismatch/diagnostic, and no-execution behavior where practical。 + +Implementation latitude: +- Command shape / output detail / JSON flag は既存 `yoi` CLI patterns に合わせてよい。ただし command names are binding: `yoi plugin list`, `yoi plugin show `。 +- Resolver/helper placement は existing Plugin resolver / manifest / feature codeに合わせてよい。 +- If full discovery graph is expensive, implement bounded static resolution sufficient for configured packages and diagnostics, and report limitations。 + +Escalate if: +- CLI inspection requires executing Plugin WASM / Tool code。 +- Existing Plugin resolver does not expose enough data without broad feature API redesign。 +- Public output schema needs product decision beyond compact human-readable + optional JSON pattern。 +- Grant/permission model must be redesigned rather than inspected。 +- Secrets or untrusted package content would need to be printed verbatim。 + +Validation: +- Focused CLI tests for `yoi plugin list` / `yoi plugin show`。 +- Focused Plugin inspection helper / resolver tests。 +- Relevant `cargo test` / `cargo check` for `yoi`, `pod`, `manifest` as changed。 +- `cargo fmt --check`。 +- `git diff --check`。 +- `nix build .#yoi` only if dependency/Cargo.lock/package-source-filter changes occur。 + +Critical risks / reviewer focus: +- Inspection command accidentally executing Plugin code / WASM。 +- CLI output leaking secrets, raw untrusted data, or unbounded diagnostics。 +- CLI implying grants are authorization when enforcement still belongs to runtime/Tool path。 +- Grant mismatch / no grant / unsupported permission not visible enough for debugging。 +- Lower crates depending on product CLI façade。 +- Future `https` / `fs` host API Tickets should be able to extend diagnostics without reworking the command boundary。 + +Next action: +- `queued -> inprogress` を記録し、Ticket records を Orchestrator worktree に commit してから、専用 implementation worktree を作成し Coder Pod を narrow write scope で起動する。root/original workspace は操作しない。 + +--- + + + +## State changed + +Ticket body/thread, relation metadata, orchestration plan records, related closed Tickets, Orchestrator worktree, visible Pods, existing branch/worktree, and bounded Plugin CLI/code context were checked. Depends-on blockers are closed, no dirty-state blocker or missing planning decision was found. Risk is captured as invariants/reviewer focus. Host API Tickets queued in the same pass were left queued with conflict/waiting records. Accepting this queued Ticket for implementation before worktree/Pod side effects. + --- diff --git a/.yoi/tickets/00001KVFDX9AF/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVFDX9AF/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..9e8c0bce --- /dev/null +++ b/.yoi/tickets/00001KVFDX9AF/artifacts/orchestration-plan.jsonl @@ -0,0 +1,2 @@ +{"id":"orch-plan-20260619-102132-1","ticket_id":"00001KVFDX9AF","kind":"waiting_capacity_note","note":"明示 queue review で確認済み。依存 Ticket `00001KV5W3PHW` / `00001KV5W3PJ3` は closed で blocker ではないが、同時 queued の `00001KVFD3YSV` CLI inspection と `00001KVFDX9AY` fs host API はいずれも Plugin manifest/grant/runtime/diagnostic 周辺を触る。まず read-only CLI inspection を開始し、host API implementation は conflict / reviewer-coder bottleneck を避けるため queued のまま待機する。次の routing pass で再確認する。","author":"yoi-orchestrator","at":"2026-06-19T10:21:32Z"} +{"id":"orch-plan-20260619-102132-2","ticket_id":"00001KVFDX9AF","kind":"do_not_parallelize","related_ticket":"00001KVFDX9AY","note":"`https` と `fs` host API はどちらも WASM Plugin Tool runtime host import boundary、Plugin grant model、diagnostics/tests/package behavior に触れるため、同時実装は conflict risk が高い。片方の merged/validated 後にもう片方を再 routing する。","author":"yoi-orchestrator","at":"2026-06-19T10:21:32Z"} diff --git a/.yoi/tickets/00001KVFDX9AF/thread.md b/.yoi/tickets/00001KVFDX9AF/thread.md index cf66f8fb..44bf0a3b 100644 --- a/.yoi/tickets/00001KVFDX9AF/thread.md +++ b/.yoi/tickets/00001KVFDX9AF/thread.md @@ -13,4 +13,27 @@ LocalTicketBackend によって作成されました。 Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Plan + +Routing hold / waiting-capacity note: + +明示 queue review で Ticket body / relations / orchestration plan / workspace state を確認した。 + +Current decision: +- この Ticket は `queued` のまま待機。 +- 依存 Ticket `00001KV5W3PHW` / `00001KV5W3PJ3` は closed で dependency blocker ではない。 +- ただし同時 queued の `00001KVFD3YSV` CLI inspection を先に受理した。CLI inspection は Plugin discovery / enablement / grants / diagnostics の read-only public surface を作る作業で、host API implementation と同じ Plugin manifest/grant/runtime/diagnostic 周辺に触れる。 +- `00001KVFDX9AY` fs host API とは WASM Plugin Tool runtime host import boundary、Plugin grant model、diagnostics/tests/package behavior の変更面が重なるため `do_not_parallelize` plan record を残した。 + +Bounded reason for idle queued: +- conflict / reviewer-coder bottleneck。 + +Next action: +- `00001KVFD3YSV` の implementation/review/merge outcome を確認後、queued のまま再 routing する。 +- その時点で `fs` host API Ticket との ordering / conflict も再確認する。 + --- diff --git a/.yoi/tickets/00001KVFDX9AY/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVFDX9AY/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..c2ed2135 --- /dev/null +++ b/.yoi/tickets/00001KVFDX9AY/artifacts/orchestration-plan.jsonl @@ -0,0 +1,2 @@ +{"id":"orch-plan-20260619-102132-1","ticket_id":"00001KVFDX9AY","kind":"waiting_capacity_note","note":"明示 queue review で確認済み。依存 Ticket `00001KV5W3PHW` / `00001KV5W3PJ3` は closed で blocker ではないが、同時 queued の `00001KVFD3YSV` CLI inspection と `00001KVFDX9AF` https host API はいずれも Plugin manifest/grant/runtime/diagnostic 周辺を触る。まず read-only CLI inspection を開始し、host API implementation は conflict / reviewer-coder bottleneck を避けるため queued のまま待機する。次の routing pass で再確認する。","author":"yoi-orchestrator","at":"2026-06-19T10:21:32Z"} +{"id":"orch-plan-20260619-102132-2","ticket_id":"00001KVFDX9AY","kind":"do_not_parallelize","related_ticket":"00001KVFDX9AF","note":"`fs` と `https` host API はどちらも WASM Plugin Tool runtime host import boundary、Plugin grant model、diagnostics/tests/package behavior に触れるため、同時実装は conflict risk が高い。片方の merged/validated 後にもう片方を再 routing する。","author":"yoi-orchestrator","at":"2026-06-19T10:21:32Z"} diff --git a/.yoi/tickets/00001KVFDX9AY/thread.md b/.yoi/tickets/00001KVFDX9AY/thread.md index 074b810e..18304035 100644 --- a/.yoi/tickets/00001KVFDX9AY/thread.md +++ b/.yoi/tickets/00001KVFDX9AY/thread.md @@ -13,4 +13,27 @@ LocalTicketBackend によって作成されました。 Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Plan + +Routing hold / waiting-capacity note: + +明示 queue review で Ticket body / relations / orchestration plan / workspace state を確認した。 + +Current decision: +- この Ticket は `queued` のまま待機。 +- 依存 Ticket `00001KV5W3PHW` / `00001KV5W3PJ3` は closed で dependency blocker ではない。 +- ただし同時 queued の `00001KVFD3YSV` CLI inspection を先に受理した。CLI inspection は Plugin discovery / enablement / grants / diagnostics の read-only public surface を作る作業で、host API implementation と同じ Plugin manifest/grant/runtime/diagnostic 周辺に触れる。 +- `00001KVFDX9AF` https host API とは WASM Plugin Tool runtime host import boundary、Plugin grant model、diagnostics/tests/package behavior の変更面が重なるため `do_not_parallelize` plan record を残した。 + +Bounded reason for idle queued: +- conflict / reviewer-coder bottleneck。 + +Next action: +- `00001KVFD3YSV` の implementation/review/merge outcome を確認後、queued のまま再 routing する。 +- その時点で `https` host API Ticket との ordering / conflict も再確認する。 + ---