diff --git a/.yoi/tickets/20260609-084725-001/item.md b/.yoi/tickets/20260609-084725-001/item.md index 5728806c..da1f925f 100644 --- a/.yoi/tickets/20260609-084725-001/item.md +++ b/.yoi/tickets/20260609-084725-001/item.md @@ -1,13 +1,13 @@ --- title: 'Improve workspace panel display and composer key handling' -state: 'ready' +state: 'queued' created_at: '2026-06-09T08:47:25Z' -updated_at: '2026-06-09T09:50:15Z' +updated_at: '2026-06-09T10:01:08Z' assignee: null readiness: 'implementation_ready' risk_flags: ['tui-input', 'ux-consistency'] -action_required: 'User has confirmed Tab replaces Ctrl+T for Panel target switching, with composer completion taking priority if present.' -attention_required: 'Keep Panel composer editing behavior shared with the normal chat composer rather than adding divergent ad-hoc key handling.' +queued_by: 'workspace-panel' +queued_at: '2026-06-09T10:01:08Z' --- ## Background diff --git a/.yoi/tickets/20260609-084725-001/thread.md b/.yoi/tickets/20260609-084725-001/thread.md index a702d2de..7e2578ac 100644 --- a/.yoi/tickets/20260609-084725-001/thread.md +++ b/.yoi/tickets/20260609-084725-001/thread.md @@ -149,4 +149,13 @@ Reviewer focus: - Verify that `Esc` does not unexpectedly exit the Panel when the user is trying to leave item/action focus. - Verify that `Ctrl+C` exits reliably from the redesigned Panel states. +--- + + + +## State changed + +Ticket を `workspace-panel` が queued にしました。 + + --- diff --git a/.yoi/tickets/20260609-085212-001/artifacts/relations.json b/.yoi/tickets/20260609-085212-001/artifacts/relations.json new file mode 100644 index 00000000..a72a0d48 --- /dev/null +++ b/.yoi/tickets/20260609-085212-001/artifacts/relations.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "relations": [ + { + "ticket_id": "20260609-085212-001", + "kind": "related", + "target": "20260609-073047-001", + "note": "非ブロッキング関連。ID 形式変更は TicketList の ID 表示長や tests に影響し得るが、本 Ticket は canonical id を不透明文字列として扱うため先後関係は不要。", + "author": "intake", + "at": "2026-06-09T09:55:43Z" + } + ] +} diff --git a/.yoi/tickets/20260609-085212-001/item.md b/.yoi/tickets/20260609-085212-001/item.md index 20e0224c..0d5c9961 100644 --- a/.yoi/tickets/20260609-085212-001/item.md +++ b/.yoi/tickets/20260609-085212-001/item.md @@ -1,9 +1,11 @@ --- title: 'TicketListの出力を軽量化する' -state: 'planning' +state: 'queued' created_at: '2026-06-09T08:52:12Z' -updated_at: '2026-06-09T08:52:12Z' +updated_at: '2026-06-09T10:01:28Z' assignee: null +queued_by: 'workspace-panel' +queued_at: '2026-06-09T10:01:28Z' --- ## 背景 diff --git a/.yoi/tickets/20260609-085212-001/thread.md b/.yoi/tickets/20260609-085212-001/thread.md index d3b5d2aa..3712a1b6 100644 --- a/.yoi/tickets/20260609-085212-001/thread.md +++ b/.yoi/tickets/20260609-085212-001/thread.md @@ -4,4 +4,77 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Plan + +## Intake refinement + +readiness は `implementation_ready`。目的、対象 surface、非目標、受け入れ条件、検証観点がすでに具体的で、Orchestrator が routing できる。 + +### Binding decisions / invariants + +- `TicketList` は selection / triage / backlog overview 用の bounded summary として扱い、routing / close / planning return / implementation acceptance の authority にはしない。 +- 詳細判断の authority は `TicketShow ` の body/thread/artifacts とする。 +- LLM-facing `TicketList` tool の default result は軽量・bounded にし、item body / thread / artifacts の詳細を漏らさない。 +- CLI human output も default では巨大な JSON/Markdown を出さず、人間可読性と context safety を両立する。 +- `state=all` や closed を含む一覧は特に context blow-up を起こしにくい default/max limit を持つ。 +- long title / diagnostics / attention hint は bounded に切り詰める。 +- Ticket backend schema、TicketShow の詳細性、Ticket relation / Objective / OrchestrationPlan の設計はこの Ticket の範囲外。 + +### Implementation latitude + +- 1 Ticket あたりの summary field、timestamp の選択、title truncation 長、default/max limit の具体値は実装者が current UI/LLM usage を見て決めてよい。 +- detail-heavy mode は必要がある場合だけ明示 opt-in として追加してよいが、default tool result は軽量に保つ。 +- CLI と tool output は同じ内部 summary model を共有してもよいし、human readability のために表示整形だけ分けてもよい。 +- Docs/tool description/workflow guidance の更新範囲は、`TicketList` を selection/overview 用、`TicketShow` を詳細 authority と明示するために必要な範囲に限定してよい。 + +### Escalation conditions + +- Orchestrator が `TicketList` だけで routing authority を持つ設計に変える必要が出た場合。 +- Summary を削ることで panel / CLI / role workflow の既存の必須操作が成立しなくなる場合。 +- Detail-heavy mode 追加が新しい public API / plugin / capability boundary の判断を要する場合。 +- `limit` / truncation の方針が Ticket identity/base32 migration Ticket と衝突し、先後関係の判断が必要になった場合。 + +### Validation focus + +- long title truncation。 +- large list の default/max limit behavior。 +- `state=all` / closed を含む listing cap。 +- JSON/tool output shape が bounded summary であること。 +- `TicketList` output に body/thread/artifacts の本文が漏れないこと。 +- CLI list output が default で巨大化しないこと。 +- `target/debug/yoi ticket doctor`、focused tests、`cargo fmt --check`、`git diff --check`。コード・resource 変更が入るため完了前に `nix build .#yoi` も確認する。 + +Open questions: なし。 +Risk flags: `tool-output`, `context-budget`, `cli-ux`, `ticket-tools`, `docs-workflows`。 +Related work: `20260609-073047-001` は Ticket/Objective ID 形式変更で非ブロッキング関連。ID 長や表示が変わっても、本 Ticket の summary/truncation 方針は canonical ID を不透明文字列として扱えば成立する。 + +--- + + + +## Intake summary + +TicketList の default output を LLM/context に安全な bounded summary へ軽量化する concrete work item として整理済み。詳細 authority は TicketShow に残し、List は selection/overview 用とする。Open questions はなく、risk flags は tool-output / context-budget / cli-ux / ticket-tools / docs-workflows。関連する ID 形式変更 Ticket は非ブロッキングで、canonical id は不透明文字列として扱う。 + +--- + + + +## State changed + +Intake refinement により、目的・受け入れ条件・binding decisions / invariants・implementation latitude・escalation conditions・validation focus が揃ったため、Orchestrator が routing できる ready に移行する。 + +--- + + + +## State changed + +Ticket を `workspace-panel` が queued にしました。 + + --- diff --git a/.yoi/tickets/20260609-093050-001/item.md b/.yoi/tickets/20260609-093050-001/item.md index 8ce8943a..47d07a84 100644 --- a/.yoi/tickets/20260609-093050-001/item.md +++ b/.yoi/tickets/20260609-093050-001/item.md @@ -1,9 +1,11 @@ --- title: 'Tool実行にToolExecutionContextを渡す' -state: 'planning' +state: 'queued' created_at: '2026-06-09T09:30:50Z' -updated_at: '2026-06-09T09:30:50Z' +updated_at: '2026-06-09T10:01:00Z' assignee: null +queued_by: 'workspace-panel' +queued_at: '2026-06-09T10:01:00Z' --- ## 背景 diff --git a/.yoi/tickets/20260609-093050-001/thread.md b/.yoi/tickets/20260609-093050-001/thread.md index e8432d9b..c6cd9288 100644 --- a/.yoi/tickets/20260609-093050-001/thread.md +++ b/.yoi/tickets/20260609-093050-001/thread.md @@ -4,4 +4,29 @@ LocalTicketBackend によって作成されました。 +--- + + + +## Intake summary + +既存 Ticket を確認し、同目的の未完了重複は見当たりません。要件は Tool 実行 API に `ToolExecutionContext` を導入し、`call_id` / response-local `batch_id` / `call_index` を Tool 実装へ渡すことです。Worker は従来どおり approved tool calls を並列実行し、resource scheduling policy は持たないこと、old Tool API 互換層を長期維持しないこと、Interceptor / hook に lock lifecycle を持たせないことが binding decision です。実装側には `batch_id` 生成方式や session log への記録有無の裁量があります。関連し得る Ticket として `20260609-085148-001` は response 単位の batching analytics であり、目的が異なるため重複ではありません。リスク/レビュー焦点は public API 変更、Worker tool execution path、Interceptor/hook 意味論、並列実行維持、既存 built-in tools の一括移行です。受け入れ条件と validation が明確なため implementation_ready と判断します。 + +--- + + + +## State changed + +Intake により要件・非目標・受け入れ条件・レビュー焦点が routing 可能な状態で確認されたため、planning から ready にします。 + +--- + + + +## State changed + +Ticket を `workspace-panel` が queued にしました。 + + --- diff --git a/.yoi/tickets/20260609-095518-001/artifacts/.gitkeep b/.yoi/tickets/20260609-095518-001/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.yoi/tickets/20260609-095518-001/item.md b/.yoi/tickets/20260609-095518-001/item.md new file mode 100644 index 00000000..53ba45d0 --- /dev/null +++ b/.yoi/tickets/20260609-095518-001/item.md @@ -0,0 +1,63 @@ +--- +title: 'action_requiredとattention_requiredをTicket schemaから削除する' +state: 'ready' +created_at: '2026-06-09T09:55:18Z' +updated_at: '2026-06-09T10:02:25Z' +assignee: null +--- + +## 背景 + +`action_required` / `attention_required` は Ticket frontmatter overlay として曖昧で、state / relation / body sections / thread event と責務が重複している。 + +特に `attention_required` は Panel で強い意味を持っており、non-empty の場合は `state: ready` でも Queue できず、blocked/red + `Edit` action になる。実際には「実装時の注意事項」程度の内容が `attention_required` に入ったことで、ready Ticket が誤って Queue 不能になった。 + +今後は以下の分担に寄せる: + +- Queue / routing を止める不足は `state: planning` と typed state/thread reason で表す。 +- dependency / blocker は typed Ticket relation metadata で表す。 +- 実装時の注意、不変条件、相談条件は Ticket body の `Binding decisions / invariants` / `Escalation conditions` に書く。 +- 中長期の判断軸は Objective に置く。 +- 一時 UI notice は Panel/TUI local state に置く。 + +## ゴール + +`action_required` と `attention_required` を current Ticket schema / tool API / Panel action 判定から削除する。 + +## 要件 + +- Ticket frontmatter schema から `action_required` と `attention_required` を削除する。 + - New Ticket はこれらの fields を書かない。 + - `ticket doctor` はこれらを要求しない。 + - current records ではこれらの fields が無い状態を正とする。 +- Ticket create / tool input / output から `action_required` / `attention_required` を削除する。 + - `TicketCreate` params から削除する。 + - `TicketList` / `TicketShow` の current metadata output から削除する。 + - 必要なら legacy parser compatibility は短期 migration 用に限定し、current output には出さない。 +- Panel の action 判定から `attention_required` blocker を削除する。 + - `state: ready` は、unresolved relation blocker など明確な blocker が無ければ Queue 可能にする。 + - 人間判断が不足している場合は `state: planning` に戻す運用にする。 +- Existing docs / workflows / tests / examples を更新する。 + - `attention_required` を human-attention overlay として説明している古い記述を削除または置換する。 + - `action_required` を current Ticket field として扱う記述を削除する。 +- Existing Ticket records から field は削除済みだが、schema 削除後も doctor が通ることを確認する。 +- Historical thread/body mentions は audit/history として残してよい。ただし current docs/examples として使う場合は更新する。 + +## 非目標 + +- Typed Ticket relation metadata の実装。 +- Objective の実装。 +- Panel の新しい確認 UX の設計。 +- `state: planning` に戻す policy 全体の再設計。 + +## 受け入れ条件 + +- `action_required` / `attention_required` が current Ticket schema から消えている。 +- `TicketCreate` / `TicketList` / `TicketShow` がこれらを current fields として露出しない。 +- Panel は `attention_required` の有無で ready Ticket を blocked/Edit 扱いしない。 +- Queue/routing を止める理由は state / relation / typed thread reason のいずれかで表現される。 +- Tests cover: + - ready Ticket without relation blockers derives Queue action; + - historical/legacy `attention_required` があっても current behavior を壊さないか、または doctor で明確に診断される; + - Ticket create/list/show output に fields が出ない。 +- `target/debug/yoi ticket doctor`, focused tests, `cargo fmt --check`, and `git diff --check` pass. diff --git a/.yoi/tickets/20260609-095518-001/thread.md b/.yoi/tickets/20260609-095518-001/thread.md new file mode 100644 index 00000000..b72b0801 --- /dev/null +++ b/.yoi/tickets/20260609-095518-001/thread.md @@ -0,0 +1,23 @@ + + +## 作成 + +LocalTicketBackend によって作成されました。 + +--- + + + +## Intake summary + +既存 Ticket を精査し、重複ではなく実装可能な concrete work item と判断した。目的は `action_required` / `attention_required` を current Ticket schema、TicketCreate/TicketList/TicketShow などの tool/API output、Panel action 判定から削除し、routing を止める不足は `state: planning`・typed thread reason・relation metadata に寄せること。非目標は typed relation metadata / Objective / 新しい Panel 確認 UX / planning-return policy 全体の再設計。リスク/レビュー重点は ticket-schema、tool-api、panel-behavior、workflow/docs 更新、legacy/current record compatibility。実装は current output から両 field を消し、ready Ticket の Queue 判定を `attention_required` に依存させず、既存 docs/workflows/tests/examples の current 記述を更新し、historical audit mention は残してよい。検証は Ticket doctor、focused Ticket/Panel/tool output tests、cargo fmt --check、git diff --check、必要に応じて `nix build .#yoi` を含める。関連する既存作業として explicit workflow state 導入 `20260606-215403-001`、YAML frontmatter strict 化 `20260607-223233-001`、Panel close safety `20260608-032200-001`、Ticket state commit policy `20260607-220606-001` を確認済みで、いずれもこの Ticket の duplicate ではない。 + +--- + + + +## State changed + +Intake classified this Ticket as ready to queue: the purpose, schema/tool/panel/doc scope, non-goals, acceptance criteria, validation expectations, and migration/compatibility boundary are explicit enough for Orchestrator routing. + +---