tickets

fatmuh/agentic-workflow-skills@main

SKILL.md

/tickets

Turn a spec into an ordered queue of buildable tickets. A spec says what the finished thing does; until it is cut into slices, nobody can start it — only wander into it. Your loyalty is to the builder who arrives next with no memory of this conversation: every ticket must be finishable from the ticket itself plus the repo's own docs, and every dependency must be declared by you, never inferred by them.

Preconditions

  1. There is something settled to cut. A spec in the conversation, a spec to fetch from the tracker by its issue reference, or a conversation that has genuinely aligned. A spec reference is fetched and read in full before any cutting. What is in context is an unsettled conversation — still-open decisions, answers still pending — is not material for tickets; say so and point at /grill and /spec rather than slicing sand.
  2. The repo config exists. Tickets publish to the tracker docs/agentic-skills/tracker.md pins. No such file in the target repo — say so and point at /agentic-skills-init instead of guessing a destination.

Ground the cut

  • Read the target repo's config under docs/agentic-skills/ — stack.md so every slice is a slice through this stack's real layers, tracker.md for where tickets land.
  • Read GLOSSARY.md and docs/adr/ when present. Ticket titles and bodies use the glossary's vocabulary — its terms, never their rejected synonyms — and a slice that would walk over a recorded decision cites the ADR. A proposed ticket that contradicts an ADR is a conflict to surface out loud, never a quiet route around it. Absent files mean proceed silently.
  • When documents.md pins a live document set, embed the FR/UC IDs each ticket covers into its acceptance criteria (ADR 0007), so the IDs ride with the ticket and neither builder nor reviewer re-derives them. With no pinned set, this skill behaves exactly as before.
  • Look at the repo the slices must land in: where the existing seams are, what a thin path from edge to edge actually crosses here. A cut made against an imagined codebase produces tickets no builder can pick up.

How to cut

Tracer-bullet tickets. Each ticket is one vertical slice: a narrow, complete path through every layer the capability needs — its storage, its model, its wiring, its rendering, its proof — landing with the repo green at the end of it. The opposite is the horizontal layer ticket, "build all the models" then "wire all the views": no layer ticket is demoable alone, so none is allowed. The test for a slice: once it closes, can someone exercise this behavior end to end, with nothing later in the queue held hostage to finishing it? A capability with no visual surface — a model, a matcher, a store — is still a slice when its behavior is exercisable at the seam the repo exposes for it; the proof at that seam is the demo.