diff --git a/.yoi/tickets/00001KTZY8HK2/artifacts/review-2026-06-14-approve.md b/.yoi/tickets/00001KTZY8HK2/artifacts/review-2026-06-14-approve.md new file mode 100644 index 00000000..df7ddbf7 --- /dev/null +++ b/.yoi/tickets/00001KTZY8HK2/artifacts/review-2026-06-14-approve.md @@ -0,0 +1,21 @@ +承認します。 + +Evidence: +- `crates/manifest/src/profile.rs` の Lua API は `yoi.profile.import(...)` を残し、`yoi.profile.extend(...)` は常にエラーにする互換診断スタブに変更されている。旧 `deep_merge_profile_json` と hidden deep-merge composition は削除されており、診断文も `yoi.profile.import(...)` と explicit Lua assignment への移行を示している。 +- Builtin role profiles (`resources/profiles/{companion,intake,orchestrator,coder,reviewer}.lua`) は `yoi.profile.import("builtin:default")` 後に Lua の明示代入で必要フィールドだけを上書きしている。feature policy は各 role で全 key を明示し、worker instruction は table mutation で default reasoning 等を保持している。 +- scope/delegation は既存 role の明示値を移植しており、profile composition の変更に留まっている。launch policy / authority semantics は別 Ticket `00001KV11DHGZ` の範囲として残され、今回の diff では拡張されていない。 +- Tests cover import + explicit assignment, object replacement instead of deep merge, removed extend diagnostic, and builtin role resolution/policy (`profile::tests`). +- Resource embedding/packaging risk is low: changed files are existing `resources/profiles/*.lua` loaded through the existing include table; `cargo build -p yoi` passed. + +Validation performed: +- `git diff f709fc10..HEAD` inspected. +- `cargo fmt --check` passed. +- `git diff --check f709fc10..HEAD` passed. +- `cargo test -p manifest profile::tests:: -- --nocapture` passed. +- `cargo build -p yoi` passed. + +Not rerun: +- `nix build .#yoi` was not rerun in this reviewer scope because it would write outside the permitted `target/`/Ticket-record areas unless using broader Nix/store/result-link authority. Coder reported it was run; cargo build validated resource embedding on this branch. + +Risks / notes: +- Existing callers of `yoi.profile.extend` now fail intentionally; this is the requested break. The retained stub is a diagnostic compatibility trap, not a merge API. diff --git a/.yoi/tickets/00001KTZY8HK2/item.md b/.yoi/tickets/00001KTZY8HK2/item.md index cb7f8d70..17f83f82 100644 --- a/.yoi/tickets/00001KTZY8HK2/item.md +++ b/.yoi/tickets/00001KTZY8HK2/item.md @@ -2,7 +2,7 @@ title: 'Profile extend API を廃止して import + Lua 代入に寄せる' state: 'inprogress' created_at: '2026-06-13T07:31:09Z' -updated_at: '2026-06-14T06:24:18Z' +updated_at: '2026-06-14T06:29:17Z' assignee: null readiness: 'implementation_ready' risk_flags: ['profiles', 'lua-api', 'builtin-resources', 'migration'] diff --git a/.yoi/tickets/00001KTZY8HK2/thread.md b/.yoi/tickets/00001KTZY8HK2/thread.md index 679ea554..18928a9a 100644 --- a/.yoi/tickets/00001KTZY8HK2/thread.md +++ b/.yoi/tickets/00001KTZY8HK2/thread.md @@ -107,4 +107,33 @@ Risks/notes: - Scope/delegation authority semantics were not expanded; this change only preserves existing builtin profile scope/delegation declarations while changing composition style. +--- + + + +## Review: approve + +承認します。 + +Evidence: +- `crates/manifest/src/profile.rs` の Lua API は `yoi.profile.import(...)` を残し、`yoi.profile.extend(...)` は常にエラーにする互換診断スタブに変更されている。旧 `deep_merge_profile_json` と hidden deep-merge composition は削除されており、診断文も `yoi.profile.import(...)` と explicit Lua assignment への移行を示している。 +- Builtin role profiles (`resources/profiles/{companion,intake,orchestrator,coder,reviewer}.lua`) は `yoi.profile.import("builtin:default")` 後に Lua の明示代入で必要フィールドだけを上書きしている。feature policy は各 role で全 key を明示し、worker instruction は table mutation で default reasoning 等を保持している。 +- scope/delegation は既存 role の明示値を移植しており、profile composition の変更に留まっている。launch policy / authority semantics は別 Ticket `00001KV11DHGZ` の範囲として残され、今回の diff では拡張されていない。 +- Tests cover import + explicit assignment, object replacement instead of deep merge, removed extend diagnostic, and builtin role resolution/policy (`profile::tests`). +- Resource embedding/packaging risk is low: changed files are existing `resources/profiles/*.lua` loaded through the existing include table; `cargo build -p yoi` passed. + +Validation performed: +- `git diff f709fc10..HEAD` inspected. +- `cargo fmt --check` passed. +- `git diff --check f709fc10..HEAD` passed. +- `cargo test -p manifest profile::tests:: -- --nocapture` passed. +- `cargo build -p yoi` passed. + +Not rerun: +- `nix build .#yoi` was not rerun in this reviewer scope because it would write outside the permitted `target/`/Ticket-record areas unless using broader Nix/store/result-link authority. Coder reported it was run; cargo build validated resource embedding on this branch. + +Risks / notes: +- Existing callers of `yoi.profile.extend` now fail intentionally; this is the requested break. The retained stub is a diagnostic compatibility trap, not a merge API. + + ---