ticket: route analytics batching and parallel guidance

This commit is contained in:
Keisuke Hirata 2026-06-09 19:35:18 +09:00
parent 28e7fe3890
commit 5d9e227823
No known key found for this signature in database
8 changed files with 129 additions and 6 deletions

View File

@ -2,7 +2,7 @@
title: 'Ticket と Objective の ID を base32 timestamp 形式に統一する'
state: 'queued'
created_at: '2026-06-09T07:30:47Z'
updated_at: '2026-06-09T10:31:17Z'
updated_at: '2026-06-09T10:35:08Z'
assignee: null
queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:31:17Z'

View File

@ -73,4 +73,23 @@ Intake refinement により、目的・範囲・受け入れ条件・binding dec
Ticket を `workspace-panel` が queued にしました。
---
<!-- event: decision author: orchestrator at: 2026-06-09T10:35:08Z -->
## Decision
Routing decision: waiting_for_active_record_churn_to_settle
This Ticket remains queued for now, despite the updated parallelism preference.
Reason:
- This Ticket is a broad Ticket/Objective ID migration touching current project-record paths and internal references.
- There are multiple active worktrees currently writing Ticket records and code.
- Running a storage/ID migration in parallel with active Ticket record churn would create high merge/migration risk, not a small conflict.
State decision:
- Leave this Ticket `queued`.
- Re-read when active worktrees are merged/closed or the workspace is otherwise quiescent enough for a record migration.
---

View File

@ -2,7 +2,7 @@
title: 'Profile feature flagsでtool surfaceを制御する'
state: 'queued'
created_at: '2026-06-09T08:22:09Z'
updated_at: '2026-06-09T10:31:11Z'
updated_at: '2026-06-09T10:35:08Z'
assignee: null
queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:31:11Z'

View File

@ -29,4 +29,23 @@ Intake が既存 Ticket の要件を確認し、Orchestrator が routing でき
Ticket を `workspace-panel` が queued にしました。
---
<!-- event: decision author: orchestrator at: 2026-06-09T10:35:08Z -->
## Decision
Routing decision: waiting_for_core_tool_surface_stability
This Ticket remains queued for now, despite the updated parallelism preference.
Reason:
- This Ticket changes Profile/Manifest feature flags and conditional tool registration across Task/Ticket/Ticket orchestration/Pod/Memory/Web tool surfaces.
- `20260609-093050-001` is still under review and changes the core Tool execution API.
- Running both together would overlap deeply in ToolRegistry/tool surface registration and test expectations, not just create a small mechanical conflict.
State decision:
- Leave this Ticket `queued`.
- Re-read after ToolExecutionContext lands and active tool-surface branches settle.
---

View File

@ -1,8 +1,8 @@
---
title: 'session analyticsにresponse単位のbatching指標を追加する'
state: 'queued'
state: 'inprogress'
created_at: '2026-06-09T08:51:48Z'
updated_at: '2026-06-09T10:31:14Z'
updated_at: '2026-06-09T10:35:08Z'
assignee: null
queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:31:14Z'

View File

@ -29,4 +29,47 @@ Intake で既存 Ticket の本文・thread・artifacts と関連する closed Ti
Ticket を `workspace-panel` が queued にしました。
---
<!-- event: state_changed author: orchestrator at: 2026-06-09T10:35:08Z from: queued to: inprogress reason: orchestrator_acceptance_parallel_capacity field: state -->
## State changed
Accepted queued implementation under the updated parallel-capacity policy. This Ticket extends the already-landed session analytics crate and is independent from the active ToolExecutionContext, TicketList, and Panel worktrees.
---
<!-- event: decision author: orchestrator at: 2026-06-09T10:35:08Z -->
## Decision
Routing decision: implementation_ready_parallel
Reason:
- This Ticket extends `session-analytics`, a recently landed and currently inactive area.
- It is independent from active ToolExecutionContext, TicketList output, and Panel UX work.
- User asked to prefer parallel work when conflicts are absent or expected small.
IntentPacket:
Intent:
- Add assistant-response-level tool batching and edit round-trip metrics to `session-analytics` so tool-use speed patterns can be evaluated in structured JSON.
Binding decisions / invariants:
- Infer assistant response / tool-result cycle units from session JSONL as best-effort analytics.
- Add response-level tool call metrics: total responses, tool-call responses, total tool calls, avg/p50/p90/max, histogram, top responses by tool call count.
- Add edit batching metrics: Edit calls per response, responses containing Edit, same-file multiple Edit calls in one response, files touched per edit response, and correlation with large edit args where possible.
- Add consecutive edit-only response streak metrics by file/path and response range, distinguishing pure edit-only streaks from sequences broken/annotated by Read/Bash/test/result-dependent steps.
- Diagnostics must be observations such as possible batching opportunity, not blame or policy enforcement.
- Preserve existing privacy boundary: no raw user input, raw tool args, raw file contents, raw session snippets, or raw tool output content in default output.
- Do not change prompt/workflow behavior, implement EditBatch/ordered patch tools, or force batching policy.
Validation:
- Tests for single response with multiple tools.
- Tests for same-response same-file multiple Edit.
- Tests for consecutive edit-only responses to same file.
- Tests for interleaved Read/test step breaking or annotating streak.
- Tests for sessions with no edits.
- `cargo fmt --check`, `git diff --check`, `cargo run -q -p yoi -- ticket doctor`, `cargo check --workspace`, `nix build .#yoi`.
---

View File

@ -1,8 +1,8 @@
---
title: 'Orchestratorに独立queued workの並列開始を促す'
state: 'queued'
state: 'inprogress'
created_at: '2026-06-09T10:17:32Z'
updated_at: '2026-06-09T10:31:16Z'
updated_at: '2026-06-09T10:35:08Z'
assignee: null
queued_by: 'workspace-panel'
queued_at: '2026-06-09T10:31:16Z'

View File

@ -29,4 +29,46 @@ Intake により要件・受け入れ条件・非目標・安全不変条件・
Ticket を `workspace-panel` が queued にしました。
---
<!-- event: state_changed author: orchestrator at: 2026-06-09T10:35:08Z from: queued to: inprogress reason: orchestrator_acceptance_parallel_capacity field: state -->
## State changed
Accepted queued implementation under the updated parallel-capacity policy. This is workflow guidance for starting independent queued work in parallel, matching the user's current routing preference. It is docs/workflow-oriented and expected conflicts are small/manageable.
---
<!-- event: decision author: orchestrator at: 2026-06-09T10:35:08Z -->
## Decision
Routing decision: implementation_ready_parallel
Reason:
- The user explicitly requested more parallelism when conflicts are absent or small.
- This Ticket updates Orchestrator/multi-agent workflow guidance to encode that same policy.
- It is workflow/docs-oriented and can run alongside active code changes with expected small conflict risk.
IntentPacket:
Intent:
- Update Orchestrator and multi-agent workflow guidance so independent queued work with available capacity is started in parallel after explicit safety checks, rather than waiting one Ticket at a time by default.
Binding decisions / invariants:
- Orchestrator is not an automatic background scheduler.
- Do not start unqueued Tickets.
- No implementation side effects before `queued -> inprogress` acceptance.
- No blind spawn from queue notifications alone.
- Respect unresolved `depends_on` / incoming blocker relations, `do_not_parallelize`, conflict records, workspace dirty state, and shared write-scope constraints.
- Use separate worktrees/branches/write scopes for parallel Coder Pods.
- Reviewer remains read-only unless explicitly scoped otherwise.
- If queued work is left idle while capacity appears available, record a bounded reason: dependency, conflict, capacity, missing planning decision, workspace dirty state, reviewer/coder bottleneck, or human gate.
- Distinguish active work waiting on coder/reviewer output from idle Orchestrator queue-review moments.
Validation:
- Focused workflow/prompt text validation or tests showing parallel start is preferred when safety checks pass.
- Validation that safety invariants remain explicit.
- `git diff --check`, `cargo run -q -p yoi -- ticket doctor`, `nix build .#yoi` if packaged resources/docs are touched.
---