yoi/.yoi/tickets/closed/20260607-035710-ticket-orchestration-plan-tool/item.md

3.5 KiB

id slug title status kind priority labels workflow_state created_at updated_at assignee queued_by queued_at
20260607-035710-ticket-orchestration-plan-tool ticket-orchestration-plan-tool Ticket orchestration plan tool closed task P1
ticket
orchestrator
planning
workflow
tools
done 2026-06-07T03:57:10Z 2026-06-08T23:36:49Z null workspace-panel 2026-06-08T11:21:13Z

Background

Orchestrator queue automation needs a lightweight way to remember routing decisions across turns while coordinating multiple Tickets. The existing Task tool is session-lifetime and human/user-visible, but Ticket ordering, dependency, conflict, and routing decisions belong to the Ticket orchestration domain.

The immediate need is not a full scheduler or dependency graph. The Orchestrator needs a small typed surface to record decisions such as:

  • Ticket A should run before Ticket B;
  • Ticket B is blocked by Ticket A;
  • Ticket C conflicts with Ticket D and should not run in parallel;
  • Ticket E is ready but waiting for capacity;
  • Ticket F has been accepted by Orchestrator and has a planned worktree/branch.

These records should help the Orchestrator avoid relying only on prompt memory, especially across compaction and multi-turn routing.

Goal

Design and implement a lightweight Ticket orchestration note/plan tool surface for Orchestrator use, similar in convenience to Task tools but scoped to Ticket ordering and routing decisions.

Requirements

  • Provide a typed, lightweight tool/API for recording and querying Orchestrator routing decisions about Tickets.
  • Support at least:
    • ordering relation: before/after;
    • dependency/blocker relation: blocked_by / blocks;
    • conflict relation: do_not_parallelize / conflicts_with;
    • capacity/waiting note;
    • accepted work plan summary such as branch/worktree/pod plan when applicable.
  • Distinguish durable project-relevant relations from local ephemeral execution notes:
    • dependency/order/conflict decisions that should affect future orchestration should be recorded in git-tracked Ticket records or typed Ticket thread events/artifacts;
    • local runtime claims/session details should remain in the local role session registry, not Ticket metadata.
  • Keep this a Ticket/orchestration domain capability, not a generic TaskStore replacement.
  • Ensure records are queryable by Ticket id/slug and by relation kind.
  • Keep the first version simple; do not implement a full scheduler, graph solver, or automatic topological planner.
  • Integrate with Orchestrator prompts/workflows so the Orchestrator consults these records before accepting queued Tickets.
  • Avoid using session-lifetime Task tools for durable Ticket dependency/order decisions.
  • Ensure compaction does not erase the authoritative record; the tool should write to a durable record path.

Non-goals

  • Replacing Ticket workflow_state.
  • Replacing the local role session registry for Pod/session claims.
  • Implementing full dependency graph scheduling.
  • Automatically reordering all queued Tickets without Orchestrator judgment.
  • Making Companion a mutating orchestration actor.

Acceptance criteria

  • Orchestrator has a simple typed way to record Ticket ordering/dependency/conflict/capacity decisions.
  • The records survive compaction and are queryable in later turns.
  • Project-relevant decisions are stored in the Ticket system rather than only session-lifetime Task state.
  • Local runtime execution details remain out of git-tracked Ticket metadata.
  • Orchestrator queue routing can consult the recorded decisions before accepting a queued Ticket.