From e57e410c4d94d56dce7599a73da6068c34897460 Mon Sep 17 00:00:00 2001 From: Hare Date: Sun, 7 Jun 2026 12:58:44 +0900 Subject: [PATCH] ticket: review ticket config and feature work --- .../item.md | 2 +- .../thread.md | 32 +++++++++++++++ .../item.md | 2 +- .../thread.md | 39 +++++++++++++++++++ 4 files changed, 73 insertions(+), 2 deletions(-) diff --git a/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/item.md b/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/item.md index 6848d698..4ec98bb4 100644 --- a/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/item.md +++ b/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/item.md @@ -8,7 +8,7 @@ priority: P1 labels: [ticket, config, init, profiles, panel] workflow_state: ready created_at: 2026-06-07T03:14:39Z -updated_at: 2026-06-07T03:44:16Z +updated_at: 2026-06-07T03:58:12Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/thread.md b/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/thread.md index b41e02ea..878cc33a 100644 --- a/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/thread.md +++ b/.yoi/tickets/open/20260607-031439-ticket-init-role-profile-scaffold/thread.md @@ -94,3 +94,35 @@ Scope: The child should commit implementation work in the child worktree and report diff/tests. Merge, review, Ticket closure, and cleanup remain with the parent/human workflow. --- + + + +## Implementation report + +## Implementation report + +Coder Pod `ticket-init-scaffold-coder-20260607` completed implementation in `.worktree/ticket-init-role-profile-scaffold`. + +Commit: +- `f265098 ticket: add ticket config init scaffold` + +Reported summary: +- Added narrow `yoi ticket init`. +- It creates `.yoi/ticket.config.toml` only when missing and ensures `.yoi/tickets` exists. +- Existing `.yoi/ticket.config.toml` is not overwritten and fails with an actionable diagnostic. +- Added reusable `ticket_config_scaffold()` in `crates/ticket/src/config.rs`. +- Generated config includes backend provider/root plus fixed roles intake/orchestrator/coder/reviewer/investigator. +- Each generated role uses explicit `profile = "builtin:default"` and explicit default `workflow`. +- Added tests for config shape, CLI init/no-overwrite behavior, CLI help, and launch planning for Intake/Orchestrator from the scaffold. + +Reported validation: +- `cargo test -p ticket config --lib` +- `cargo test -p client ticket_role --lib` +- `cargo test -p yoi ticket` +- `cargo fmt --check` +- `git diff --check` +- `nix build .#yoi` + +External review will be delegated before merge. + +--- diff --git a/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/item.md b/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/item.md index 62f4a66d..3857a98f 100644 --- a/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/item.md +++ b/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/item.md @@ -8,7 +8,7 @@ priority: P1 labels: [ticket, pod-feature, tools, orchestration, workflow] workflow_state: ready created_at: 2026-06-07T03:35:36Z -updated_at: 2026-06-07T03:48:50Z +updated_at: 2026-06-07T03:58:12Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/thread.md b/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/thread.md index fa4a4579..78706518 100644 --- a/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/thread.md +++ b/.yoi/tickets/open/20260607-033536-ticket-lifecycle-pod-feature/thread.md @@ -92,3 +92,42 @@ Parallel note: The child should commit implementation work in the child worktree and report diff/tests. Merge, review, Ticket closure, and cleanup remain with the parent/human workflow. --- + + + +## Implementation report + +## Implementation report + +Coder Pod `ticket-lifecycle-feature-coder-20260607` completed implementation in `.worktree/ticket-lifecycle-pod-feature`. + +Commit: +- `3d662bc pod: split ticket feature access levels` + +Reported summary: +- Added `TicketFeatureAccess::{ReadOnly, Lifecycle}` for `builtin:ticket`. +- Preserved default full lifecycle behavior for `ticket_tools_feature(...)`. +- Added `ticket_tools_feature_with_access(...)` and constructors/accessors for explicit access selection. +- Feature descriptors declare only tools allowed by the configured access level. +- Feature installation registers only the configured subset. +- Added Ticket tool name partitions: + - `TICKET_READ_ONLY_TOOL_NAMES`: `TicketList`, `TicketShow`, `TicketDoctor`; + - `TICKET_MUTATING_TOOL_NAMES`: create/comment/review/intake-ready/workflow-state/status/close. +- Updated `TicketWorkflowState` tool description with the `queued -> inprogress` acceptance contract. +- Added tests proving read-only install excludes mutating tools and lifecycle install exposes lifecycle tools. + +Reported validation: +- `cargo test -p pod ticket --lib` +- `cargo test -p ticket tool --lib` +- `cargo fmt --check` +- `git diff --check` +- `cargo check --workspace --all-targets` +- `nix build .#yoi` + +Reported follow-up: +- Call sites still use the default full lifecycle access. Companion/status-specific callers can opt into read-only access once integration points are selected. +- Host authority remains `HostAuthority::TicketBackend`; read-only boundary is enforced by subset exposure rather than a separate read-only backend authority. + +External review will be delegated before merge. + +---