merge: sync orchestration before queue 00001KVHR3WRF
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: 'Plugin: add Rust PDK and embedded authoring templates for Component Model Tools'
|
||||
state: 'inprogress'
|
||||
state: 'closed'
|
||||
created_at: '2026-06-20T04:16:14Z'
|
||||
updated_at: '2026-06-20T05:21:50Z'
|
||||
updated_at: '2026-06-20T05:53:20Z'
|
||||
assignee: null
|
||||
readiness: 'implementation_ready'
|
||||
risk_flags: ['plugin', 'pdk', 'component-model', 'authoring', 'templates', 'sdk', 'no-crates-io']
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
## Resolution
|
||||
|
||||
`00001KVHKWNQA` を完了しました。
|
||||
|
||||
実装内容:
|
||||
- Guest-side Rust PDK crate `yoi-plugin-pdk` を追加しました。
|
||||
- PDK は typed JSON input/output helper、bounded `ToolError`、`ToolContext`、`run_json_tool` 系 helper、`wit_bindgen` re-export、`export_component_tool!` macro を提供します。
|
||||
- PDK は host/runtime Yoi crates に依存せず、authority を付与しません。Host-side Plugin manifest grants が Tool execution / host API use の authority boundary のままです。
|
||||
- Embedded Rust Component Tool template を `resources/plugin/templates/rust-component-tool/` に追加しました。
|
||||
- Template は local checkout/dev path dependency を使い、future out-of-tree git `rev` pattern を docs に記録しています。
|
||||
- `resources/plugin/wit` を `wit-bindgen` が parse できる package layout に修正し、host WIT dependency を `resources/plugin/wit/deps/yoi-host/yoi-host-v1.wit` に移動しました。
|
||||
- WIT keyword `list` は `%list` escape にし、import name semantics を保持しました。
|
||||
- Embedded template は empty `[workspace]` により in-tree standalone package として check できます。
|
||||
- `wit_bindgen::generate!` を実際に `resources/plugin/wit` に対して実行する probe と、embedded template の `wasm32-unknown-unknown` cargo-check probe を追加しました。
|
||||
- Plugin development docs / design docs / package docs / example source を更新しました。
|
||||
- `yoi plugin new/check/pack`、remote template fetch、crates.io publication、full packaged component execution はこの Ticket の non-goals / follow-up として残しました。
|
||||
|
||||
主な commit:
|
||||
- `06287aca plugin: add rust pdk template`
|
||||
- `0a9e585c plugin: fix rust pdk wit template probes`
|
||||
- `edc53a6b merge: plugin rust pdk templates`
|
||||
|
||||
Review:
|
||||
- r1 は WIT parse failure と embedded template Cargo workspace issue で `request_changes`。
|
||||
- Coder が WIT layout / `%list` / template `[workspace]` / actual probes を追加。
|
||||
- r2 は `approve`。
|
||||
|
||||
最終 validation:
|
||||
- `cargo fmt --check`
|
||||
- `git diff --check HEAD^1..HEAD`
|
||||
- `cargo test -p yoi-plugin-pdk`
|
||||
- `cargo test -p manifest embedded_rust_component_tool_template_is_valid_package_shape`
|
||||
- `cargo test -p pod pdk_tool_output_shape_is_accepted_by_wasm_decoder`
|
||||
- `cargo check`
|
||||
- `cargo tree -p yoi-plugin-pdk --edges normal`
|
||||
- `cargo check --manifest-path resources/plugin/templates/rust-component-tool/Cargo.toml --target wasm32-unknown-unknown`
|
||||
- `nix build .#yoi --no-link`
|
||||
|
||||
Package impact:
|
||||
- `nix path-info -S .#yoi`: `112156384`
|
||||
|
||||
Validation log:
|
||||
- `/run/user/1000/yoi/yoi-orchestrator/bash-output/bash-o9gvGb.log`
|
||||
@@ -223,3 +223,217 @@ Reviewer validation:
|
||||
Worktree status at review end: source tree clean; ignored artifacts under `target/` only。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-20T05:40:15Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Coder r1-fix report received from `yoi-coder-00001KVHKWNQA`.
|
||||
|
||||
New fix commit:
|
||||
- `0a9e585c plugin: fix rust pdk wit template probes`
|
||||
|
||||
Branch commits now:
|
||||
- `0a9e585c plugin: fix rust pdk wit template probes`
|
||||
- `06287aca plugin: add rust pdk template`
|
||||
|
||||
Fix summary:
|
||||
- Moved host WIT to dependency package path `resources/plugin/wit/deps/yoi-host/yoi-host-v1.wit` so `resources/plugin/wit` is a valid WIT package directory with `yoi:host` resolved as dependency。
|
||||
- Escaped WIT keyword function as `%list` while preserving import name semantics。
|
||||
- Added empty `[workspace]` to embedded template `Cargo.toml` so it can be checked in-place without becoming an undeclared member of Yoi root workspace。
|
||||
- Updated template/example/docs/PDK snippets to the compile-tested binding pattern with PDK `wit_bindgen` re-export, `generate_all`, and `runtime_path: "yoi_plugin_pdk::wit_bindgen::rt"`。
|
||||
- Added compile-time probe `crates/plugin-pdk/tests/wit_bindgen_probe.rs` that runs `wit_bindgen::generate!` against `resources/plugin/wit`。
|
||||
- Added embedded template cargo-check probe for `wasm32-unknown-unknown` in `crates/plugin-pdk/tests/template.rs`。
|
||||
- Added `%list` WIT assertion and updated host WIT include path。
|
||||
- Updated `Cargo.lock` and `package.nix` for new dev dependency edge / cargo hash。
|
||||
|
||||
Coder validation reported as passing:
|
||||
- `cargo test -p yoi-plugin-pdk` including PDK tests, WIT constants, actual `wit_bindgen::generate!` probe, and embedded template wasm32 check probe。
|
||||
- `cargo test -p manifest embedded_rust_component_tool_template_is_valid_package_shape`
|
||||
- `cargo test -p pod pdk_tool_output_shape_is_accepted_by_wasm_decoder`
|
||||
- `cargo check`
|
||||
- `cargo tree -p yoi-plugin-pdk --edges normal`
|
||||
- `cargo check --manifest-path resources/plugin/templates/rust-component-tool/Cargo.toml --target wasm32-unknown-unknown`
|
||||
- `cargo fmt --check`
|
||||
- `git diff --check 5f7f81bd..HEAD`
|
||||
- `git diff --check`
|
||||
- `git diff --check --cached`
|
||||
- `nix build .#yoi --no-link`
|
||||
|
||||
Operational note:
|
||||
- `nix build .#yoi --no-link` initially hit disk exhaustion after accepting the updated vendor hash; Coder removed local implementation worktree `target/` cache and reran successfully。
|
||||
|
||||
Remaining deferrals:
|
||||
- No `yoi plugin new/check/pack`。
|
||||
- No crates.io publication or remote template fetching。
|
||||
- Full packaged component execution remains deferred; the current WIT parses with `wit-bindgen` and embedded Rust template compiles to the wasm target boundary。
|
||||
|
||||
Orchestrator evidence checked before r2 review:
|
||||
- Implementation worktree is clean。
|
||||
- HEAD is `0a9e585c`。
|
||||
- Fix diff from `06287aca..HEAD` touches 12 files, about 105 insertions / 13 deletions。
|
||||
- Overall `git diff --check 5f7f81bd..HEAD` produced no diagnostics。
|
||||
|
||||
Next action:
|
||||
- Route back to Reviewer for r2 verification of the WIT parse/template compile blockers and final acceptance criteria。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: review author: yoi-reviewer-00001KVHKWNQA-r1 at: 2026-06-20T05:47:13Z status: approve -->
|
||||
|
||||
## Review: approve
|
||||
|
||||
Verdict: `approve`
|
||||
|
||||
確認範囲:
|
||||
- Ticket body/thread / Orchestrator IntentPacket
|
||||
- r2 fix diff: `06287aca..0a9e585c`
|
||||
- 全体実装 diff: `5f7f81bd..0a9e585c`
|
||||
- 主な対象: `resources/plugin/wit/deps/yoi-host/yoi-host-v1.wit`, `resources/plugin/wit/yoi-plugin-tool-v1.wit`, embedded template, `crates/plugin-pdk/*`, `crates/manifest/src/plugin.rs`, `crates/pod/src/feature/plugin.rs`, docs, `package.nix`。
|
||||
|
||||
Previous blockers verification:
|
||||
- Host WIT は `resources/plugin/wit/deps/yoi-host/yoi-host-v1.wit` に配置され、`resources/plugin/wit` は current package directory として `wit-bindgen` が parse できる形になった。
|
||||
- Keyword function は `%list` として escape され、import name semantics を保持している。
|
||||
- Embedded template の `Cargo.toml` には empty `[workspace]` があり、root workspace 配下の non-member package として拒否されない。
|
||||
- `crates/plugin-pdk/tests/wit_bindgen_probe.rs` は実際に `wit_bindgen::generate!` を `resources/plugin/wit` に対して実行している。
|
||||
- Embedded template は `wasm32-unknown-unknown` target で cargo-check できる。
|
||||
|
||||
Overall Ticket fit:
|
||||
- PDK は guest-side に留まり、host/runtime Yoi crates への dependency は見当たらない。
|
||||
- PDK / template は authority を付与せず、host-side Plugin manifest grants が authority boundary であることを維持している。
|
||||
- Ambient fs/network/env authority は露出していない。
|
||||
- crates.io publication / remote template fetch / `yoi plugin new/check/pack` は実装していない。
|
||||
- Docs は full build/pack boundary と deferral を概ね正直に記述している。
|
||||
|
||||
Blocking issues: none。
|
||||
|
||||
Non-blocking concerns / follow-ups:
|
||||
- `cargo check --manifest-path resources/plugin/templates/rust-component-tool/Cargo.toml --target wasm32-unknown-unknown` を直接実行すると template-local `Cargo.lock` と `target/` ができる。Reviewer は検証後に untracked artifacts を削除した。テスト自体は temporary target dir を使い template lockfile を消すため blocking ではないが、将来 docs/CI では explicit `--target-dir` を推奨するとよい。
|
||||
- Reviewer r2 の `nix build .#yoi --no-link` は final artifact copy 中に `No space left on device` で environment-fail。cargo hash/source-filter/code diagnostic ではない。Coder 側では同コマンド成功済み。Orchestrator final validation で再確認する。
|
||||
|
||||
Reviewer validation:
|
||||
- `cargo test -p yoi-plugin-pdk`: passed
|
||||
- `cargo test -p manifest embedded_rust_component_tool_template_is_valid_package_shape`: passed
|
||||
- `cargo test -p pod pdk_tool_output_shape_is_accepted_by_wasm_decoder`: passed
|
||||
- `cargo check --manifest-path resources/plugin/templates/rust-component-tool/Cargo.toml --target wasm32-unknown-unknown`: passed
|
||||
- `cargo tree -p yoi-plugin-pdk --edges normal`: passed; host/runtime Yoi crate dependencyなし
|
||||
- `cargo fmt --check`: passed
|
||||
- `git diff --check 5f7f81bd..HEAD`: passed
|
||||
- `git diff --check`: passed
|
||||
- `git diff --check --cached`: passed
|
||||
- `cargo check`: passed
|
||||
- `nix build .#yoi --no-link`: attempted, environment failed with `No space left on device` during final artifact copying
|
||||
|
||||
Worktree status at review end: source tree clean; ignored artifacts under normal `target/` only。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-20T05:51:33Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Merge and final validation report:
|
||||
|
||||
Merged implementation branch into Orchestrator branch:
|
||||
- Merge commit: `edc53a6b merge: plugin rust pdk templates`
|
||||
- Implementation commits included:
|
||||
- `06287aca plugin: add rust pdk template`
|
||||
- `0a9e585c plugin: fix rust pdk wit template probes`
|
||||
|
||||
Reviewer outcome:
|
||||
- r1 requested changes for WIT parse failure (`list` keyword) and embedded template Cargo workspace check failure。
|
||||
- Coder fixed WIT package layout / `%list` escaping, added actual `wit_bindgen::generate!` probe, and made the embedded template standalone-checkable。
|
||||
- r2 approved with no blocking issues。
|
||||
|
||||
Orchestrator validation after merge passed:
|
||||
- `cargo fmt --check`
|
||||
- `git diff --check HEAD^1..HEAD`
|
||||
- `cargo test -p yoi-plugin-pdk`
|
||||
- `cargo test -p manifest embedded_rust_component_tool_template_is_valid_package_shape`
|
||||
- `cargo test -p pod pdk_tool_output_shape_is_accepted_by_wasm_decoder`
|
||||
- `cargo check`
|
||||
- `cargo tree -p yoi-plugin-pdk --edges normal`
|
||||
- `cargo check --manifest-path resources/plugin/templates/rust-component-tool/Cargo.toml --target wasm32-unknown-unknown`
|
||||
- `nix build .#yoi --no-link`
|
||||
|
||||
Validation log:
|
||||
- `/run/user/1000/yoi/yoi-orchestrator/bash-output/bash-o9gvGb.log`
|
||||
|
||||
Package impact:
|
||||
- `nix path-info -S .#yoi`: `112156384`
|
||||
|
||||
Cleanup note:
|
||||
- Direct template cargo-check creates local `resources/plugin/templates/rust-component-tool/Cargo.lock` and `target/`; Orchestrator removed those untracked artifacts after validation. Worktree is clean。
|
||||
|
||||
Final state:
|
||||
- Orchestrator worktree clean at `edc53a6b` after validation。
|
||||
- Implementation worktree remains available for cleanup after Ticket completion records are committed。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: yoi-orchestrator at: 2026-06-20T05:51:42Z from: inprogress to: done reason: merged_reviewed_validated field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Implementation was merged into Orchestrator branch at `edc53a6b`, r2 review approved, and final Orchestrator validation passed: `cargo fmt --check`, `git diff --check HEAD^1..HEAD`, focused PDK/manifest/pod tests, `cargo check`, PDK dependency tree check, embedded template wasm32 check, and `nix build .#yoi --no-link`.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: hare at: 2026-06-20T05:53:20Z from: done to: closed reason: closed field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Ticket を closed にしました。
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: close author: hare at: 2026-06-20T05:53:20Z status: closed -->
|
||||
|
||||
## 完了
|
||||
|
||||
## Resolution
|
||||
|
||||
`00001KVHKWNQA` を完了しました。
|
||||
|
||||
実装内容:
|
||||
- Guest-side Rust PDK crate `yoi-plugin-pdk` を追加しました。
|
||||
- PDK は typed JSON input/output helper、bounded `ToolError`、`ToolContext`、`run_json_tool` 系 helper、`wit_bindgen` re-export、`export_component_tool!` macro を提供します。
|
||||
- PDK は host/runtime Yoi crates に依存せず、authority を付与しません。Host-side Plugin manifest grants が Tool execution / host API use の authority boundary のままです。
|
||||
- Embedded Rust Component Tool template を `resources/plugin/templates/rust-component-tool/` に追加しました。
|
||||
- Template は local checkout/dev path dependency を使い、future out-of-tree git `rev` pattern を docs に記録しています。
|
||||
- `resources/plugin/wit` を `wit-bindgen` が parse できる package layout に修正し、host WIT dependency を `resources/plugin/wit/deps/yoi-host/yoi-host-v1.wit` に移動しました。
|
||||
- WIT keyword `list` は `%list` escape にし、import name semantics を保持しました。
|
||||
- Embedded template は empty `[workspace]` により in-tree standalone package として check できます。
|
||||
- `wit_bindgen::generate!` を実際に `resources/plugin/wit` に対して実行する probe と、embedded template の `wasm32-unknown-unknown` cargo-check probe を追加しました。
|
||||
- Plugin development docs / design docs / package docs / example source を更新しました。
|
||||
- `yoi plugin new/check/pack`、remote template fetch、crates.io publication、full packaged component execution はこの Ticket の non-goals / follow-up として残しました。
|
||||
|
||||
主な commit:
|
||||
- `06287aca plugin: add rust pdk template`
|
||||
- `0a9e585c plugin: fix rust pdk wit template probes`
|
||||
- `edc53a6b merge: plugin rust pdk templates`
|
||||
|
||||
Review:
|
||||
- r1 は WIT parse failure と embedded template Cargo workspace issue で `request_changes`。
|
||||
- Coder が WIT layout / `%list` / template `[workspace]` / actual probes を追加。
|
||||
- r2 は `approve`。
|
||||
|
||||
最終 validation:
|
||||
- `cargo fmt --check`
|
||||
- `git diff --check HEAD^1..HEAD`
|
||||
- `cargo test -p yoi-plugin-pdk`
|
||||
- `cargo test -p manifest embedded_rust_component_tool_template_is_valid_package_shape`
|
||||
- `cargo test -p pod pdk_tool_output_shape_is_accepted_by_wasm_decoder`
|
||||
- `cargo check`
|
||||
- `cargo tree -p yoi-plugin-pdk --edges normal`
|
||||
- `cargo check --manifest-path resources/plugin/templates/rust-component-tool/Cargo.toml --target wasm32-unknown-unknown`
|
||||
- `nix build .#yoi --no-link`
|
||||
|
||||
Package impact:
|
||||
- `nix path-info -S .#yoi`: `112156384`
|
||||
|
||||
Validation log:
|
||||
- `/run/user/1000/yoi/yoi-orchestrator/bash-output/bash-o9gvGb.log`
|
||||
|
||||
---
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
{"id":"orch-plan-20260620-052336-1","ticket_id":"00001KVHKWNQS","kind":"blocked_by","related_ticket":"00001KVHKWNQA","note":"Panel Queue was accepted for routing review, but implementation cannot start yet because `00001KVHKWNQS` depends on `00001KVHKWNQA` Rust PDK/templates, which is currently `inprogress` and in a reviewer-requested-changes loop. Leave `00001KVHKWNQS` queued until `00001KVHKWNQA` is closed, then reroute.","author":"yoi-orchestrator","at":"2026-06-20T05:23:36Z"}
|
||||
{"id":"orch-plan-20260620-055356-2","ticket_id":"00001KVHKWNQS","kind":"accepted_plan","accepted_plan":{"summary":"`yoi plugin new rust-component-tool`, `yoi plugin check`, `yoi plugin pack` を追加する。new は embedded template only、check/pack は Plugin code を実行せず、directory/package safety、manifest/runtime/schema/permission diagnostics、deterministic digest/package output、JSON reports、enablement guidance を提供する。","branch":"impl/00001KVHKWNQS-plugin-authoring-cli","worktree":"/home/hare/Projects/yoi/.worktree/00001KVHKWNQS-plugin-authoring-cli","role_plan":"Orchestrator は acceptance records を commit 後、専用 implementation worktree `.worktree/00001KVHKWNQS-plugin-authoring-cli` を作成し、Coder をその child worktree への narrow write scope で起動する。Coder 実装後、Reviewer が non-execution checks、archive safety、deterministic pack/digest、JSON report stability、template use、workspace/config non-mutation、Nix/resource packaging を確認する。"},"author":"yoi-orchestrator","at":"2026-06-20T05:53:56Z"}
|
||||
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: 'Plugin: add authoring CLI new/check/pack'
|
||||
state: 'queued'
|
||||
state: 'inprogress'
|
||||
created_at: '2026-06-20T04:16:14Z'
|
||||
updated_at: '2026-06-20T05:23:14Z'
|
||||
updated_at: '2026-06-20T05:55:31Z'
|
||||
assignee: null
|
||||
readiness: 'implementation_ready'
|
||||
risk_flags: ['plugin', 'cli', 'authoring', 'templates', 'package-validation', 'packaging', 'read-only-check']
|
||||
|
||||
@@ -13,4 +13,114 @@ LocalTicketBackend によって作成されました。
|
||||
Ticket を `workspace-panel` が queued にしました。
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: yoi-orchestrator at: 2026-06-20T05:23:44Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
Routing decision: blocked_pending_dependency
|
||||
|
||||
Panel Queue により、この Ticket は Orchestrator routing 対象として明示許可されたが、実装開始はまだ行わない。
|
||||
|
||||
Reason:
|
||||
- `00001KVHKWNQS` は `00001KVHKWNQA` に `depends_on` している。
|
||||
- `00001KVHKWNQA` は現在 `inprogress` で、Rust PDK / embedded template 実装が r1 review の `request_changes` 修正ループ中。
|
||||
- この Ticket の `new/check/pack` は PDK crate / embedded template を使うため、PDK/template が closed になるまで authoring CLI implementation の worktree/Pod side effects は開始しない。
|
||||
- Orchestrator workspace は clean、queued はこの Ticket のみ、inprogress は `00001KVHKWNQA` のみ、matching branch/worktree は存在しない。
|
||||
|
||||
Action:
|
||||
- `00001KVHKWNQS` は `queued` のまま保持する。
|
||||
- `00001KVHKWNQA` が closed になった後、改めて body/thread/relations/workspace state を確認して routing する。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: yoi-orchestrator at: 2026-06-20T05:54:38Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
Routing decision: implementation_ready
|
||||
|
||||
Reason:
|
||||
- Panel Queue により、この Ticket は Orchestrator routing 対象として明示許可された。
|
||||
- 前回は `00001KVHKWNQA` Rust PDK/templates が inprogress だったため blocked/queued hold としたが、現在 `00001KVHKWNQA` は closed。
|
||||
- Ticket body は `new` / `check` / `pack` の CLI surface、non-execution safety、archive safety、deterministic digest/package、JSON reports、diagnostics、tests、validation、non-goals を実装可能な粒度で定義している。
|
||||
- Related Plugin CLI inspection (`00001KVFD3YSV`) と Component runtime (`00001KVG0HR96`) は closed。
|
||||
- 現在 queued はこの Ticket のみ、inprogress は 0 件、child implementation Pods はなし、matching branch/worktree はなし、Orchestrator worktree は clean。
|
||||
- Risk domain は plugin / CLI / authoring / templates / package-validation / packaging / read-only-check だが、Ticket は check/pack が Plugin code を実行しない、new は embedded templates only、enablement config を mutate しない、safe overwrite refusal、archive traversal/root-escape rejection などの invariants を明示している。bounded context check 後も implementation 前に必要な追加 human decision は見つからなかった。
|
||||
|
||||
Evidence checked:
|
||||
- Ticket `00001KVHKWNQS` body / thread / relations / artifacts。
|
||||
- `TicketRelationQuery(00001KVHKWNQS)`: outgoing `depends_on 00001KVHKWNQA` is now closed。Related records are closed context。
|
||||
- `TicketOrchestrationPlanQuery(00001KVHKWNQS)`: previous `blocked_by` plan is resolved by `00001KVHKWNQA` closure; accepted plan recorded now。
|
||||
- Workspace state:
|
||||
- Orchestrator worktree clean at `902b383d`。
|
||||
- queued: this Ticket only。
|
||||
- inprogress: 0。
|
||||
- visible Pods: self + peers only; spawned children 0。
|
||||
- no matching implementation branch/worktree。
|
||||
- Code/resource context:
|
||||
- Rust PDK/template resources are now merged from `00001KVHKWNQA`。
|
||||
- Component Model runtime and Plugin CLI inspection work are closed and available as implementation context。
|
||||
|
||||
IntentPacket:
|
||||
|
||||
Intent:
|
||||
- Add first-party local Plugin authoring CLI commands: `yoi plugin new rust-component-tool <path-or-name>`, `yoi plugin check <path-or-package>`, and `yoi plugin pack <path> [--output <file>]`。
|
||||
- Make local authoring safe and deterministic without remote scripts, without executing Plugin code during validation, and without mutating workspace enablement config。
|
||||
|
||||
Binding decisions / invariants:
|
||||
- `new` uses embedded templates only; no network, no remote template fetch, no `curl | sh` flow。
|
||||
- `new` writes only to the requested destination and refuses non-empty destinations unless a narrow explicit safe option is intentionally added。
|
||||
- Generated Rust Component Tool template should use the current PDK/template resources and current checkout/release dependency policy。
|
||||
- `check` and `pack` must not execute Plugin code or instantiate components。
|
||||
- `check` validates directory and `.yoi-plugin` package inputs with bounded diagnostics and stable JSON report shape for `--json`。
|
||||
- `pack` creates deterministic `.yoi-plugin` output and prints digest/path; `pack --json` returns stable typed output。
|
||||
- `check` validates manifest/runtime/schema/permission/host API declarations, referenced artifact presence, archive safety, and deterministic digest where applicable。
|
||||
- `pack` rejects unsafe paths/root escapes and unsupported package shapes; use currently supported archive format/constraints。
|
||||
- Commands do not mutate enablement/workspace config and do not generate/embed secrets。
|
||||
- Diagnostics/status language should align with existing `yoi plugin list/show` where possible。
|
||||
- Do not implement registry publish/install, enabling/disabling config, Plugin execution, Service/Ingress scaffolding, or extra language templates。
|
||||
|
||||
Requirements / acceptance criteria:
|
||||
- `yoi plugin new rust-component-tool ./my-plugin` creates the expected file set from embedded template without network access。
|
||||
- `yoi plugin check ./my-plugin` validates the generated template and reports next steps/digest/enablement guidance。
|
||||
- `yoi plugin pack ./my-plugin` creates a `.yoi-plugin` package discoverable by existing Plugin discovery。
|
||||
- `check` validates existing `.yoi-plugin` archive inputs and rejects unsafe archives。
|
||||
- `check --json` and `pack --json` provide stable typed reports for tests/agents。
|
||||
- Tests cover generated file set, overwrite refusal, valid/invalid check paths, missing runtime artifact, unsafe package archive, deterministic pack digest, discoverability by existing Plugin discovery, and JSON report shape。
|
||||
- Validation includes focused CLI/plugin authoring tests, relevant `cargo check` / `cargo test`, `cargo fmt --check`, `git diff --check`, and `nix build .#yoi` because CLI/resources/package behavior changes。
|
||||
|
||||
Escalate if:
|
||||
- Current package/archive format lacks enough existing helpers and needs a broader package-format decision。
|
||||
- `check` cannot validate Component world metadata without executing code and needs explicit scope narrowing。
|
||||
- Deterministic packaging conflicts with current discovery/package reader behavior。
|
||||
- Embedded template resource packaging/source filtering needs broader product decision。
|
||||
|
||||
Next action:
|
||||
- Record `queued -> inprogress` and commit Ticket records before creating the implementation worktree and spawning Coder。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: yoi-orchestrator at: 2026-06-20T05:54:45Z from: queued to: inprogress reason: orchestrator_acceptance_plugin_authoring_cli field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Ticket body/thread, relation metadata, resolved Rust PDK dependency, related closed Tickets, Orchestrator worktree state, visible Pods, existing branch/worktree, and bounded CLI/resource/package context were checked. Dependency `00001KVHKWNQA` 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-20T05:55:31Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Implementation orchestration start:
|
||||
- Acceptance records were committed on Orchestrator branch: `d1095f85 ticket: accept plugin authoring cli`。
|
||||
- Created implementation worktree `/home/hare/Projects/yoi/.worktree/00001KVHKWNQS-plugin-authoring-cli` on branch `impl/00001KVHKWNQS-plugin-authoring-cli` at `d1095f85`。
|
||||
- Spawned Coder Pod `yoi-coder-00001KVHKWNQS` with 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。
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user