Source: mattpocock/skills · Maintainer: community: Matt Pocock · License: MIT · Checked: 24 October 2026
What is the to-tickets skill?
The to-tickets skill turns a plan, a spec or the conversation you are in into a set of tickets an agent can pick up one at a time. Each ticket is a thin vertical slice through every layer of the change, and each one lists the other tickets that block it.
It lives in mattpocock/skills, the collection Matt Pocock describes in the README as "My agent skills that I use every day to do real engineering - not vibe coding." The SKILL.md description reads: "Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker (edges as text in one file per ticket locally, or native blocking links on a real tracker)."
As of 24 October 2026, its skills.sh page listed about 712,000 installs (snapshot, 24 October 2026).
What does it do?
The skill runs a five-step process from the SKILL.md:
- Gather context. It works from the conversation. If you pass a spec path, an issue number or a URL, it fetches that and reads the full body and comments.
- Explore the codebase (optional). Ticket titles use your project's glossary terms and respect ADRs in the area. It also looks for prefactoring, quoting the rule "Make the change easy, then make the easy change."
- Draft vertical slices. Each slice "cuts a narrow but COMPLETE path through every layer (schema, API, UI, tests)", is demoable on its own, and fits in a single fresh context window. Prefactoring goes first.
- Quiz you. It shows a numbered list with a title, a "Blocked by" line and what each ticket delivers, then asks whether the granularity is right, whether the blocking edges are real, and whether anything should merge or split. It iterates until you approve.
- Publish. Nothing reaches the tracker before you approve.
How it publishes depends on the tracker that /setup-matt-pocock-skills configured:
| Tracker | What it writes | Where the blocking edges live |
|---|---|---|
| Local files | One file per ticket under .scratch/<feature-slug>/issues/<NN>-<slug>.md, numbered from 01, blockers first |
A "Blocked by" line in each file |
| GitHub, Linear or another real tracker | One issue per ticket, created blockers first | Native blocking links where the tracker has them, otherwise a "Blocked by" section |
On a real tracker it applies the ready-for-agent triage label unless told otherwise, and if the source was an existing issue it makes each ticket a sub-issue of it. It never closes or edits the parent issue.
The folder is small: SKILL.md and agents/openai.yaml, which holds Codex display metadata ("To Tickets") and sets allow_implicit_invocation: false.
The wide-refactor exception
One shape breaks the vertical-slice rule. A wide refactor, such as renaming a column used everywhere, breaks thousands of call sites at once, so no slice can land green. For that case the skill sequences the work as expand and contract: add the new form beside the old, migrate call sites in batches (one ticket per batch, each blocked by the expand), then delete the old form in a final ticket blocked by every batch.
How do you install the to-tickets skill?
The README offers a plugin route and an editable-files route, and says to pick one per agent "because installing both gives you every skill twice."
Claude Code plugin (whole set, updates itself). This installs the collection from Anthropic's official plugin marketplace:
claude plugin install mattpocock-skills@claude-plugins-official
Plugin skills are namespaced as /plugin-name:skill-name per the Claude Code skills docs, so it appears as /mattpocock-skills:to-tickets.
Codex plugin. From the README:
codex plugin marketplace add mattpocock/skills
codex plugin add mattpocock-skills@mattpocock
Just this skill, as editable files. The command on skills.sh, plus the setup skill that the to-tickets docs list as a prerequisite:
npx skills add https://github.com/mattpocock/skills --skill to-tickets --skill setup-matt-pocock-skills
Add -g to install for all projects. In Claude Code the folders land in .claude/skills/ in your project or ~/.claude/skills/ for personal skills. Codex and Cursor read the same SKILL.md format; see Codex skills and Cursor skills.
Then run /setup-matt-pocock-skills once per repo. It asks which tracker you use (GitHub, GitLab, local files or something you describe), your triage labels, and where docs go. The setup skill page covers it.
How do you use it?
You type /to-tickets. The SKILL.md sets disable-model-invocation: true, which per the Claude Code skills docs means "Claude can't invoke the skill on its own." In Codex, the Codex skills docs say that with allow_implicit_invocation set to false, "explicit $skill invocation still works."
The docs place it in the main build chain: grill-with-docs, then to-spec, then to-tickets, then implement. They also say to run /to-spec and /to-tickets in the same context window with no clear or compact between them, so the agent never has to fetch a large spec back.
Example prompts (suggestions, not quotes from the repo):
/to-ticketsat the end of a planning conversation, with nothing else./to-tickets #142to slice an existing spec issue into sub-issues./to-tickets docs/specs/billing-export.md, and keep each ticket demoable from the UI./to-tickets We're renaming customer_id to account_id everywhere. Sequence it as expand and contract.
At the quiz step, a useful check from the docs is to ask of each ticket: what can I demo when this is done? A ticket with no answer is a horizontal slice.
The skill stops at the tickets. The docs say "there is no auto-dispatch mode": you open one agent session per ready ticket, or hand the set to implement-spec, which reads the same blocking edges as a task graph.
Tips and limits
From the repo's docs and skills.sh, not from testing:
- Over-decomposition is common. The docs call it "the most reported problem with this skill." Merge at the quiz step, and skip the skill when the change fits one context window.
- Layer-by-layer tickets still happen. The docs say the skill "still produces it sometimes." Some users add a "demo path" line to each ticket.
- Check that acceptance criteria can fail. The docs list criteria that pass before any work, criteria only another ticket can satisfy, and criteria that just restate the request.
- Recent fixes need a setup refresh. A change merged on 6 October 2026, listed in the repo as a pending changeset, made tickets sub-issues of their source issue on GitHub and drops the "Blocked by" section when edges are native. The changeset says to re-run
/setup-matt-pocock-skillsto refreshdocs/agents/issue-tracker.md. - Implement doesn't close tickets reliably. The docs say you update ticket state yourself.
- Security audit. On skills.sh, Snyk rated it Warn (audited 6 October 2026), flagging medium-risk third-party content exposure because the skill can fetch full issue bodies and comments, which outside contributors may have written. Gen Agent Trust Hub and Socket rated it Pass.
The skill runs no scripts. It writes files or creates issues only at the publish step, after you approve. Under the MIT License you can copy and change it as long as you keep the copyright notice.
Save it in your Kipt library
In Kipt, open Skills and paste the skill's GitHub folder link into the import box. For a repo with many skills, Kipt shows a list to pick from, so you can take setup-matt-pocock-skills and to-spec in the same pass. You can also drop the folder or a .zip. Your skills live in your own private GitHub repo and install into Claude Code or Codex with one command:
npx skills add https://github.com/<you>/<repo>.git --all -g
Kipt is not affiliated with Matt Pocock or mattpocock/skills.
Similar skills
- To-spec skill: writes the spec that to-tickets slices.
- Implement skill: builds one ticket per fresh session.
- Implement-spec skill: builds every ready ticket in parallel from the same blocking edges.
- Triage skill: for issues that arrive from someone else. The docs say not to run it over tickets to-tickets produced.
- Research skill: gathers primary-source facts a ticket may depend on.
- Writing plans skill: the Superpowers take on breaking work into small tasks.