diff --git a/.yoi/tickets/00001KTR6D3C5/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KTR6D3C5/artifacts/orchestration-plan.jsonl index ea186ea6..e2700a37 100644 --- a/.yoi/tickets/00001KTR6D3C5/artifacts/orchestration-plan.jsonl +++ b/.yoi/tickets/00001KTR6D3C5/artifacts/orchestration-plan.jsonl @@ -1 +1,2 @@ {"id":"orch-plan-20260610-083728-1","ticket_id":"00001KTR6D3C5","kind":"waiting_capacity_note","note":"Panel launch did not specify a target Ticket and instructed Orchestrator to wait for explicit follow-up before spawning role Pods. Queue acceptance was not recorded yet. Bounded check: Ticket body/thread show implementation_ready, relation query has no blockers, orchestration plan has no existing records, main workspace is clean, and active worktrees are prompt-resource-centralization plus tui-model-setup-wizard. Waiting reason: human gate/explicit target authorization.","author":"orchestrator","at":"2026-06-10T08:37:28Z"} +{"id":"orch-plan-20260610-093226-2","ticket_id":"00001KTR6D3C5","kind":"accepted_plan","accepted_plan":{"summary":"Add global `yoi` Lua Profile API for both filesystem and embedded Profiles; provide `yoi.profile.import`/`extend` over raw reusable Profile artifacts with deep-merge table semantics and scalar/list replacement; keep local project `require` working; update bundled default Profile to global `yoi` style; preserve validation rejection of runtime-bound/concrete authority fields; fix tests for require aliases/import/extend/default evaluation.","branch":"lua-profile-yoi-api","worktree":"/home/hare/Projects/yoi/.worktree/lua-profile-yoi-api","role_plan":"Orchestrator implements directly in a dedicated worktree because coder write-scope delegation is unavailable in this session; reviewer will be spawned read-only after implementation. Keep Profile validation boundaries intact and avoid broad manifest/runtime refactors."},"author":"orchestrator","at":"2026-06-10T09:32:26Z"} diff --git a/.yoi/tickets/00001KTR6D3C5/item.md b/.yoi/tickets/00001KTR6D3C5/item.md index 1dd97391..3fdba7e2 100644 --- a/.yoi/tickets/00001KTR6D3C5/item.md +++ b/.yoi/tickets/00001KTR6D3C5/item.md @@ -1,8 +1,8 @@ --- title: 'Lua Profileに組み込みyoi APIとimport/extendを追加する' -state: 'queued' +state: 'inprogress' created_at: '2026-06-10T07:19:31Z' -updated_at: '2026-06-10T08:37:28Z' +updated_at: '2026-06-10T09:32:26Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-10T08:04:05Z' diff --git a/.yoi/tickets/00001KTR6D3C5/thread.md b/.yoi/tickets/00001KTR6D3C5/thread.md index b92b161b..e4e0c37a 100644 --- a/.yoi/tickets/00001KTR6D3C5/thread.md +++ b/.yoi/tickets/00001KTR6D3C5/thread.md @@ -47,4 +47,40 @@ Intake により implementation_ready と判断したため、state を ready Ticket を `workspace-panel` が queued にしました。 +--- + + + +## State changed + +Queue acceptance: relation query has no blockers, existing orchestration plan only has the prior human-gate waiting note, workspace is clean, and user explicitly requested continuing inprogress/queued consumption. Implementation side effects will proceed in a dedicated worktree/branch with review before merge-completion. + +--- + + + +## Plan + +Routing decision: implementation_ready + +Reason: +- Ticket is `queued`, relation query has no blockers, and existing orchestration plan only contains a prior human-gate waiting note. +- User explicitly requested continuing inprogress/queued work; this satisfies the prior human gate. +- The Ticket contains clear binding requirements, acceptance criteria, non-goals, and reviewer focus. + +Evidence checked: +- Ticket body/thread/artifacts. +- `TicketRelationQuery`: no relations/blockers. +- `TicketOrchestrationPlanQuery`: one waiting note from prior target-unspecified routing pass. +- Current workspace state is clean; existing inprogress worktrees use separate branches/scopes. +- Code map target: `crates/manifest/src/profile.rs`, Lua Profile helper/builtin loading paths, `resources/profiles/default.lua`, and manifest crate profile tests. + +IntentPacket: +- Intent: make reusable Lua Profiles feel like a small DSL by injecting global `yoi` helpers and adding raw Profile artifact import/extend composition. +- Binding decisions / invariants: Profiles remain Lua-first reusable recipes only; import/extend must not import resolved runtime Manifest or allow runtime-bound/concrete authority fields; final artifact still goes through existing Profile validation; project-local `require("_base")` keeps working; no tombstone/nil deletion semantics in this Ticket; bundled default Profile moves to global `yoi` style. +- Requirements / acceptance criteria: filesystem and embedded Profiles can access global `yoi`; `yoi.profile.import("builtin:default")` returns a raw Profile artifact; `yoi.profile.extend("builtin:default", overrides)` deep-merges nested tables while replacing scalars/lists; validation rejects runtime-bound or concrete authority contamination; require alias handling is fixed by tests; manifest targeted tests pass. +- Implementation latitude: decide whether legacy `require("yoi")` / `require("yoi.*")` aliases remain supported or are deprecated, but fix the behavior in tests; local organization and helper names may vary if the public `yoi.profile.import/extend` surface is preserved. +- Escalate if implementation requires changing Profile authority boundaries, permitting resolved Manifest import, changing runtime startup semantics, or adding deletion/tombstone semantics. +- Validation: `cargo fmt`, `cargo test -p manifest profile --lib` or narrower named tests plus broader manifest tests, `target/debug/yoi ticket doctor`, and `nix build .#yoi` before merge because runtime resources/Profile evaluation/package resources are touched. + ---