87 lines
4.4 KiB
Markdown
87 lines
4.4 KiB
Markdown
---
|
|
id: 20260601-031252-builtin-work-item-intake-routing
|
|
slug: builtin-work-item-intake-routing
|
|
title: Built-in Ticket intake and orchestration routing
|
|
status: closed
|
|
kind: task
|
|
priority: P1
|
|
labels: [ticket, intake, orchestration]
|
|
created_at: 2026-06-01T03:12:52Z
|
|
updated_at: 2026-06-05T06:42:40Z
|
|
assignee: null
|
|
legacy_ticket: null
|
|
---
|
|
|
|
## Background
|
|
|
|
Yoi needs a durable project-level coordination record that Intake, Orchestrator, coder Pods, reviewer Pods, and humans can share. The accepted concept name is **Ticket**.
|
|
|
|
A Ticket is not the same thing as the session-local Task tool. A Task tracks short-lived user-visible progress inside a Pod/session. A Ticket is a durable orchestration contract with requirements, decisions, plans, implementation reports, reviews, artifacts, and resolution history.
|
|
|
|
The current repository already stores this information under `work-items/` and manages it through `tickets.sh`. For now, that storage format remains the local backend. The new code-facing concept should be `Ticket`, not `WorkItem`; `work-items/` is a current local storage path, not the product concept name.
|
|
|
|
The original version of this ticket mixed several layers: local ticket backend, built-in Pod tools, Intake behavior, Orchestrator routing, action-required state, and scheduler-like automation. That is too broad for a single implementation ticket, so this ticket now acts as the umbrella tracking ticket for the split.
|
|
|
|
## Terminology
|
|
|
|
- `Ticket`: durable orchestration record shared by Intake, Orchestrator, implementation Pods, reviewer Pods, and humans.
|
|
- `Task`: session-local progress tracking tool; intentionally separate from Ticket.
|
|
- `Assignment`: a concrete delegation from Orchestrator to a coder/reviewer/investigator Pod.
|
|
- `IntentPacket`: short implementation/review contract derived from a Ticket and passed to an Assignment.
|
|
- `TicketBackend`: backend abstraction for reading and mutating Tickets.
|
|
- `LocalTicketBackend`: backend implementation for the current `work-items/` directory format.
|
|
|
|
## Scope of the umbrella
|
|
|
|
This umbrella covers the following sequence:
|
|
|
|
1. `ticket-local-files-backend`
|
|
- Add a code-facing Ticket domain model and local backend for current `work-items/` files.
|
|
- Keep `tickets.sh` and existing file format compatible.
|
|
|
|
2. `ticket-built-in-feature-tools`
|
|
- Expose Ticket operations as a built-in Pod feature/tool surface.
|
|
- Treat Ticket operations as typed backend authority, not arbitrary filesystem writes.
|
|
|
|
3. `ticket-intake-workflow`
|
|
- Define and install an Intake workflow/profile that clarifies user requests and creates Tickets after user agreement.
|
|
|
|
4. `ticket-orchestrator-routing`
|
|
- Let Orchestrator classify Tickets and route them into preflight, implementation, review, spike, blocked/action-required, or close paths.
|
|
|
|
Later scheduler/lease/automatic maintainer behavior is out of scope for this umbrella until the above pieces are usable.
|
|
|
|
## Requirements
|
|
|
|
- Use `Ticket` as the product/code concept name.
|
|
- Keep existing `work-items/` storage as the LocalTicketBackend path for now.
|
|
- Do not rename the storage directory in this umbrella.
|
|
- Keep git history + ticket files authoritative.
|
|
- Preserve compatibility with `tickets.sh` until a replacement is explicitly accepted.
|
|
- Keep Ticket authority separate from delegated filesystem write scope.
|
|
- Avoid exposing arbitrary file writes through Ticket tools.
|
|
- Keep Intake focused on clarification and Ticket creation/update; it must not schedule implementation itself.
|
|
- Keep Orchestrator responsible for routing/scheduling decisions, not Intake.
|
|
- Do not introduce an unattended scheduler in the MVP.
|
|
|
|
## Acceptance criteria
|
|
|
|
- This umbrella records the Ticket terminology decision and split plan.
|
|
- Child tickets exist for:
|
|
- local files backend;
|
|
- built-in feature tools;
|
|
- intake workflow;
|
|
- orchestrator routing.
|
|
- Child tickets state their dependencies, scope, non-goals, and acceptance criteria clearly enough for preflight/implementation sequencing.
|
|
- Historical `WorkItem` wording in this ticket is either removed or explicitly described as old terminology.
|
|
- `tickets.sh doctor` passes after the split.
|
|
|
|
## Non-goals
|
|
|
|
- Renaming `work-items/` to `tickets/`.
|
|
- Replacing `tickets.sh` immediately.
|
|
- Building a scheduler/lease system.
|
|
- Building a TUI spawned-Pod panel.
|
|
- Changing the session-local Task tool.
|
|
- Integrating with GitHub Issues, Linear, MCP, or external trackers in this umbrella.
|