| name | to-tickets |
| description | Break a spec into independently-grabbable tracer-bullet tickets and emit each versioned Ticket Envelope through the canonical scheduler contract. |
To Tickets
Owns: Ticket Envelope production and executable tracer-bullet slicing. It does not
schedule, implement, audit, or preserve a separate Markdown schema.
Use the canonical
Ticket Envelope v1 and
"$TICKET_AUTOPILOT_ROOT/scripts/ticket-autopilot.py" ticket-emit. The placeholder is
the absolute ticket-autopilot skill root resolved from the skill catalog, never from
repository cwd. Never hand-serialize front matter. Legacy input is accepted only through
the explicit migrate command.
Process
- Locate and read the spec. Inspect the codebase only enough to understand ownership,
conventions, tests, and vertical behavior boundaries.
- Split work into thin end-to-end slices. Each ticket must be independently verifiable;
avoid horizontal schema/API/UI/test-only batches.
- Classify each slice as
AFK or HITL. Make dependencies explicit and acyclic. Prefer
AFK, but do not hide real decisions, credentials, or environment gates.
- Present ticket title, mode, blockers, frontier state, and covered spec sections. In an
explicitly autonomous request, record reasonable assumptions and continue.
- Create
docs/tickets/<spec-slug>/<NN>-<ticket-slug>.md in deterministic dependency
order.
Every body includes one ## Artifact Graph section with a stable Artifact ID,
Role: ticket, and one Parent link. Tickets are never standalone. Update the owning
spec or map with the reciprocal Children link in the same change. A research ticket
lists each durable output in Produces; every output points back to that ticket.
For each ticket, prepare an envelope JSON:
{
"ticket_schema": 1,
"ticket_id": "NN",
"execution_mode": "AFK",
"blocked_by": []
}
Prepare a Markdown body:
# <Ticket title>
## Artifact Graph
- Artifact ID: `artifact:<stable-id>`
- Role: `ticket`
- Parent: [<spec-filename>](../../specs/<spec-filename>)
## Parent Spec
[<spec-filename>](../../specs/<spec-filename>)
## What to Build
Narrow end-to-end behavior and the source spec sections.
## Acceptance Criteria
- [ ] Observable criterion.
## Frontier
Ready, dependency-blocked, or exact human decision required.
## Step-by-Step Implementation Plan
1. Change, reason, affected contract/module, and checkpoint.
## Testing Plan
Automated and manual checks, including unavailable boundaries.
## Out of Scope
- Explicit exclusion.
Emit atomically:
python3 -B "$TICKET_AUTOPILOT_ROOT/scripts/ticket-autopilot.py" \
ticket-emit <envelope.json> <body.md> --output <ticket.md>
Parse the emitted ticket back with ticket-parse and verify exact normalized envelope,
body, unique ID, dependency links, and reciprocal graph edge.
Report
Return the ticket folder, paths, ready frontier, blocked tickets, and any HITL decisions.