ticket: record additional queued updates

This commit is contained in:
Keisuke Hirata 2026-06-09 09:20:08 +09:00
parent 2a3f744c26
commit 03c3218dc7
No known key found for this signature in database
6 changed files with 159 additions and 5 deletions

View File

@ -8,7 +8,7 @@ priority: 'P1'
labels: ['ticket', 'schema', 'identity', 'migration', 'orchestrator'] labels: ['ticket', 'schema', 'identity', 'migration', 'orchestrator']
workflow_state: 'planning' workflow_state: 'planning'
created_at: '2026-06-08T11:09:40Z' created_at: '2026-06-08T11:09:40Z'
updated_at: '2026-06-08T11:15:09Z' updated_at: '2026-06-09T00:16:54Z'
assignee: null assignee: null
--- ---

View File

@ -68,3 +68,47 @@ updated_at: ...
Additional fields should justify a concrete behavior. Search/display hints without management authority should be removed or moved to separately designed features. Additional fields should justify a concrete behavior. Search/display hints without management authority should be removed or moved to separately designed features.
--- ---
<!-- event: plan author: intake at: 2026-06-09T00:16:54Z -->
## Plan
## Intake assessment: requirements sync needed
この Ticket は既存 identity simplification に加えて、`status` / `workflow_state` / `kind` / `labels` を含む core Ticket frontmatter simplification へ scope が拡張されている。方向性は明確だが、実装前に schema/API/UX と移行方針として固定すべき判断が残っているため、現時点では `workflow_state: planning` のまま requirements sync が必要。
### 既に決まっていること
- canonical Ticket identity は title-derived slug words を含めない timestamp/counter primary key へ寄せる。
- `slug` は required/current frontmatter および canonical lookup key から外す。
- agents / Orchestrator は ID/title だけから意味を推測せず、routing/実装前に `TicketShow` の body/thread/artifacts を読む。
- core frontmatter simplification は identity だけでなく lifecycle/kind/labels も対象に含める。
- `kind` は required freeform field として残さない方向。
- `labels` は unmanaged taxonomy として core required/current schema から外す方向。
### 実装前に固定すべき open questions
1. lifecycle field の最終名を `state` に変更するか、既存名 `workflow_state` を保持して single lifecycle field にするか。
2. `done``closed` を distinct lifecycle states として残すか、close/resolution の表現をどう統合するか。
3. `pending` bucket/status を完全に廃止するか、`deferred` / `parked` などの lifecycle state として置き換えるか。
4. canonical ID を frontmatter に `id` として保持するか、directory name から derive するか。
5. legacy slug/path lookup を migration-only としてどこまで読むか。unreleased local data として一括 migration し、current schema では permanent alias を作らない方針でよいか。
6. `kind` / `labels` removal をこの Ticket の実装 scope に含めて同時 migration するか、identity/lifecycle の破壊的変更と分けるか。
### Risk flags / reviewer focus
- `ticket-schema`
- `storage-migration`
- `workflow-state`
- `panel-actions`
- `orchestrator-routing`
- `backward-compatibility`
- `typed-tool-api`
Reviewer は diff だけでなく、CLI / typed Ticket tools / Panel / Orchestrator routing / local role-session claims / future relation metadata が、slug や two-axis state を authority として残していないことを確認する必要がある。
### 次の Intake action
上記 open questions に user/maintainer decision が入れば、Ticket を `implementation_ready` として `ready` にできる。未回答のまま進める場合は、先に design/spike として routing し、実装 Ticket とは分けるのが安全。
---

View File

@ -6,9 +6,9 @@ status: 'open'
kind: 'task' kind: 'task'
priority: 'P2' priority: 'P2'
labels: ['objective', 'ticket', 'planning', 'workflow', 'design'] labels: ['objective', 'ticket', 'planning', 'workflow', 'design']
workflow_state: 'planning' workflow_state: 'ready'
created_at: '2026-06-08T12:54:30Z' created_at: '2026-06-08T12:54:30Z'
updated_at: '2026-06-08T12:54:30Z' updated_at: '2026-06-09T00:17:13Z'
assignee: null assignee: null
--- ---

View File

@ -5,3 +5,60 @@
LocalTicketBackend によって作成されました。 LocalTicketBackend によって作成されました。
--- ---
<!-- event: plan author: intake at: 2026-06-09T00:17:06Z -->
## Plan
## Intake refinement
既存 Ticket は `Objective` record の目的・背景・要件・受け入れ条件をすでに含んでおり、新規 Ticket 作成ではなくこの Ticket の refinement で足りる。`objective` label の重複 Ticket は見つからず、関連する planning Ticket として `typed-ticket-relation-metadata``deprecate-umbrella-tickets` がある。
### Binding decisions / invariants
- `Objective` は Ticket / OrchestrationPlan / Pod session claim と別の first-class project record として扱う。
- Objective は medium-term goal、motivation、strategy / design direction、success criteria / exit conditions、decision context、linked Tickets を保持するための軽量 record であり、実装可能 work item である Ticket を置き換えない。
- Objective と Ticket の link は dependency / blocking relation ではない。Ticket が Objective に属していても、その Objective 内の他 Ticket すべてに依存することを意味しない。
- Objective context は Intake / Planning / Orchestrator の判断材料になるが、実装判断の authority は引き続き各 Ticket body/thread と明示的な Ticket relation / OrchestrationPlan record にある。
- 初期設計は Markdown-oriented かつ local file backend 前提に留め、roadmap scheduling、milestones、OKR、dependency graph solving、全 Ticket への Objective 必須化は範囲外にする。
- `Project` / `Initiative` ではなく `Objective` という用語を使う。
### Implementation latitude
- 具体的な record schema、`.yoi/` 配下の path、frontmatter fields、CLI/API 名、Panel 表示の段階分けは実装時の調査で提案してよい。
- 初回 scope は設計文書と最小実装方針の提示で足りる。必要であれば小さな local-file reader/writer/API skeleton を提案してよいが、full roadmap system に広げない。
- Ticket 側に Objective reference を置くか、Objective 側に linked Tickets を列挙するか、または両方をどう扱うかは、validation と git-trackable record と運用の単純さを基準に設計してよい。
- `deprecate-umbrella-tickets``typed-ticket-relation-metadata` の内容は関連 context として読むべきだが、それらの実装をこの Ticket に取り込まない。
### Escalation conditions
- Objective が dependency/blocking relation、OrchestrationPlan runtime plan、または local Pod/session/worktree claim を兼ね始める設計になりそうな場合は Orchestrator/人間判断へ戻す。
- Objective を全 Ticket に必須化する、または scheduling / roadmap / OKR system に拡張する必要が出た場合は scope creep として戻す。
- public CLI/API、storage migration、backward compatibility、Panel UX の binding decision が複数案で割れる場合は、設計案と trade-off を thread に記録して判断を戻す。
- Ticket body/thread を読まずに Objective context だけで実装判断できるような導線になりそうな場合は、Ticket authority boundary に反するため戻す。
### Readiness
- readiness: implementation_ready
- risk_flags: [project-record, ticket-model, workflow, persistence, cli-api, panel-ux]
- blocking open questions: none
Validation は既存 acceptance criteria の通り `target/debug/yoi ticket doctor``git diff --check` を含める。runtime resource / prompt / packaging / code に触れる実装になった場合は repository guidance に従って focused tests と `nix build .#yoi` も実施する。
---
<!-- event: intake_summary author: intake at: 2026-06-09T00:17:13Z -->
## Intake summary
既存 Ticket を新規作成せず refinement した。`Objective` は Ticket / OrchestrationPlan / Pod/session claim と別の lightweight project record とし、medium-term goal・motivation・strategy/design direction・success criteria/exit conditions・decision context・linked Tickets を保持する。Ticket を置き換えず、Objective link は dependency/blocking relation ではない。初期 scope は Markdown/local-file 前提の設計と最小実装方針に限定し、roadmap scheduling、milestones、OKR、dependency graph solving、全 Ticket への Objective 必須化は範囲外。blocking open questions はなく、Orchestrator が implementation/design work として routing できる。
---
<!-- event: state_changed author: intake at: 2026-06-09T00:17:13Z from: planning to: ready reason: intake_ready field: workflow_state -->
## State changed
Intake refinement により目的・受け入れ条件・binding decisions / invariants・implementation latitude・escalation conditions が揃ったため、workflow_state を ready にする。
---

View File

@ -6,9 +6,9 @@ status: 'open'
kind: 'task' kind: 'task'
priority: 'P2' priority: 'P2'
labels: ['ticket', 'workflow', 'documentation', 'planning'] labels: ['ticket', 'workflow', 'documentation', 'planning']
workflow_state: 'planning' workflow_state: 'ready'
created_at: '2026-06-08T13:22:30Z' created_at: '2026-06-08T13:22:30Z'
updated_at: '2026-06-08T13:22:30Z' updated_at: '2026-06-09T00:16:38Z'
assignee: null assignee: null
--- ---

View File

@ -5,3 +5,56 @@
LocalTicketBackend によって作成されました。 LocalTicketBackend によって作成されました。
--- ---
<!-- event: plan author: intake at: 2026-06-09T00:16:33Z -->
## Plan
## Intake refinement
既存 Ticket は新規 umbrella Ticket 廃止の方針・背景・要件・受け入れ条件・非目標をすでに含んでおり、新規 Ticket 作成ではなくこの Ticket の refinement で足りる。
### Binding decisions / invariants
- 新規の長期 umbrella Ticket / progress container は作らない方針として文書化する。
- Ticket は単独で実装・レビュー・検証・完了判断できる concrete work item として扱う。
- 広い依頼の分割時は、進捗コンテナとしての umbrella を残すのではなく、concrete Tickets、Objective、typed Ticket relations、thread/decision 記録に責務を分ける。
- 既存 umbrella の退役 close は「関連作業がすべて完了した」ではなく「umbrella container の役割を退役した」ことを表す。
- `typed-ticket-relation-metadata``objective-records-for-medium-term-goals` の設計実装はこの Ticket の範囲外に残す。
### Implementation latitude
- 具体的な変更箇所は実装時の調査で選んでよいが、少なくとも開発/workflow docs、Intake/Planning guidance、Orchestrator guidance に umbrella Ticket を作らない・退役する方針が反映されている必要がある。
- 既存 umbrella の扱いは、代表例として `workspace-panel-orchestrator-queue-automation` に migration/close recommendation を残すか、明示的な follow-up に接続すればよい。
### Escalation conditions
- Objective または typed relation の current schema をこの作業内で設計・実装する必要が出た場合は scope creep として Orchestrator/人間判断へ戻す。
- 既存 Ticket の大量移行や historical thread rewrite が必要に見える場合は、この Ticket の非目標に反するため判断を戻す。
- umbrella 廃止方針が initial planning Ticket まで禁止する表現になりそうな場合は、受け入れ条件の「deprecated pattern is the long-lived umbrella progress container」を優先して調整する。
### Readiness
- readiness: implementation_ready
- risk_flags: [ticket, workflow, documentation, planning, orchestration]
- blocking open questions: none
Validation は既存 acceptance criteria の通り、`target/debug/yoi ticket doctor` と `git diff --check` を含める。実装が runtime resource / prompt / package source に触れる場合は通常の repository guidance に従って `nix build .#yoi` も検討する。
---
<!-- event: intake_summary author: intake at: 2026-06-09T00:16:38Z -->
## Intake summary
既存 Ticket を refinement し、新規 umbrella Ticket 作成ではなくこの Ticket を concrete documentation/workflow cleanup として進める方針を確認した。新規の長期 umbrella/progress-container Ticket を非推奨化し、広い依頼は concrete Tickets、Objective、typed Ticket relations、thread/decision 記録へ責務分離する。Objective/typed relation の設計実装、大量 historical migration、thread rewrite は範囲外。blocking open question はなく、implementation_ready として Orchestrator が routing 可能。
---
<!-- event: state_changed author: intake at: 2026-06-09T00:16:38Z from: planning to: ready reason: intake_ready field: workflow_state -->
## State changed
Intake refinement により、意図・受け入れ条件・binding decisions / invariants・implementation latitude・escalation conditions が揃ったため ready に遷移します。
---