Agent skill

To Tickets

by bestofjs in bestofjs/bestofjs

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…

MITAuto-check passed

Install To Tickets

skills CLI
$ npx skills add bestofjs/bestofjs --skill to-tickets -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bestofjs/bestofjs to-tickets --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bestofjs/bestofjs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/to-tickets .claude/skills/to-tickets && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
to-tickets
GitHub stars
3.1k
Used in
20 other repos
Token cost
~1.4k tokens
SKILL.md length
800 words
Files
2
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Works in 5 steps: Gather context → Explore the codebase (optional) → Draft vertical slices → …
  • SKILL.md covers Process, Parent, What to build and Acceptance criteria, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

To Tickets is an agent skill from bestofjs/bestofjs. 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.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

The repository describes itself as: :star: A place to find the best components to build amazing web applications. The best of JavaScript! The licence is MIT.

Example prompts

  • “/to-tickets”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Gather context
  2. Explore the codebase (optional)
  3. Draft vertical slices
  4. Quiz the user
  5. Publish the tickets to the configured tracker

What it can do on your machine

Read from SKILL.md and the folder at commit 5d82633. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

To Tickets loads about 1.4k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 800 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from bestofjs/bestofjs at commit 5d82633, republished under its MIT licence (© bestofjs). 800 words, ~1,416 tokens.

Download SKILL.mdSave it as .claude/skills/to-tickets/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
to-tickets
description
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.
disable-model-invocation
true

To Tickets

Break a plan, spec, or conversation into a set of tickets — tracer-bullet vertical slices, each declaring the tickets that block it.

The issue tracker and triage label vocabulary should have been provided to you — run /setup-matt-pocock-skills if not.

Process

1. Gather context

Work from whatever is already in the conversation context. If the user passes a reference (a spec path, an issue number or URL) as an argument, fetch it and read its full body and comments.

2. Explore the codebase (optional)

If you have not already explored the codebase, do so to understand the current state of the code. Ticket titles and descriptions should use the project's domain glossary vocabulary, and respect ADRs in the area you're touching.

Look for opportunities to prefactor the code to make the implementation easier. "Make the change easy, then make the easy change."

3. Draft vertical slices

Break the work into tracer bullet tickets.

<vertical-slice-rules>
  • Each slice cuts a narrow but COMPLETE path through every layer (schema, API, UI, tests) — vertical, NOT a horizontal slice of one layer
  • A completed slice is demoable or verifiable on its own
  • Each slice is sized to fit in a single fresh context window
  • Any prefactoring should be done first
</vertical-slice-rules>

Give each ticket its blocking edges — the other tickets that must complete before it can start. A ticket with no blockers can start immediately.

Wide refactors are the exception to vertical slicing. A wide refactor is one mechanical change — rename a column, retype a shared symbol — whose blast radius fans across the whole codebase, so a single edit breaks thousands of call sites at once and no vertical slice can land green. Don't force it into a tracer bullet; sequence it as expand–contract. First expand: add the new form beside the old so nothing breaks. Then migrate the call sites over in batches sized by blast radius (per package, per directory), each batch its own ticket blocked by the expand, keeping CI green batch to batch because the old form still exists. Finally contract: delete the old form once no caller remains, in a ticket blocked by every migrate batch. When even the batches can't stay green alone, keep the sequence but let them share an integration branch that all block a final integrate-and-verify ticket — green is promised only there.

4. Quiz the user

Present the proposed breakdown as a numbered list. For each ticket, show:

  • Title: short descriptive name
  • Blocked by: which other tickets (if any) must complete first
  • What it delivers: the end-to-end behaviour this ticket makes work

Ask the user:

  • Does the granularity feel right? (too coarse / too fine)
  • Are the blocking edges correct — does each ticket only depend on tickets that genuinely gate it?
  • Should any tickets be merged or split further?

Iterate until the user approves the breakdown.

Show full SKILL.md (331 more words)Show less
5. Publish the tickets to the configured tracker

Publish the approved tickets. How depends on the tracker /setup-matt-pocock-skills configured — the tickets are the same either way, only the shape of the blocking edges changes:

  • Local files → write one file per ticket under .scratch/<feature-slug>/issues/<NN>-<slug>.md, numbered from 01 in dependency order (blockers first). Each file's "Blocked by" lists the numbers/titles it depends on. Use the per-ticket file template below — one ticket per file, never a single combined file.
  • A real issue tracker (GitHub, Linear, …) → publish one issue per ticket in dependency order (blockers first) so each ticket's blocking edges can reference real identifiers. Use the platform's native blocking / sub-issue relationship where it has one; otherwise set each ticket's "Blocked by" to the blocking issues. Apply the ready-for-agent triage label unless instructed otherwise — the tickets are agent-grabbable by construction.

Work the frontier: any ticket whose blockers are all done. For a purely linear chain that means top to bottom.

Do NOT close or modify any parent issue.

<local-ticket-template>

<NN> — <Ticket title>

What to build: the end-to-end behaviour this ticket makes work, from the user's perspective — not a layer-by-layer implementation list.

Blocked by: the numbers/titles of the tickets that gate this one, or "None — can start immediately".

Status: ready-for-agent

  • Acceptance criterion 1
  • Acceptance criterion 2
</local-ticket-template>
<issue-template>

Parent

A reference to the parent issue on the tracker (if the source was an existing issue, otherwise omit this section).

What to build

The end-to-end behaviour this ticket makes work, from the user's perspective — not layer-by-layer implementation.

Acceptance criteria

  • Criterion 1
  • Criterion 2

Blocked by

  • A reference to each blocking ticket, or "None — can start immediately".
</issue-template>

In either form, avoid specific file paths or code snippets — they go stale fast. Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it and note briefly that it came from a prototype. Trim to the decision-rich parts — not a working demo, just the important bits.

© bestofjs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/to-tickets of bestofjs/bestofjs.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 5d82633

Used in 20 other repositories

We found 24 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 20 other GitHub owners. This page covers the copy in bestofjs/bestofjs, which our catalogue first saw on October 7, 2026.

Compare with similar skills

To Tickets next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

To Tickets compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
To Tickets this skillbestofjs/bestofjs3.1k20 repos~1.4kAutomated safety check: PassMIT
What Could Breaksickn33/agentic-awesome-skills47k—~1.8kAutomated safety check: PassMIT
Modeling Conversion MetricsPostHog/posthog40k—~1.4kAutomated safety check: PassCustom licence
To Ticketsvinvcn/mattpocock-skills-zh-CN4.7k—~924Automated safety check: PassMIT
Cost Conversationruvnet/ruflo74k—~407Automated safety check: NotesMIT
Conversation Memorydavila7/claude-code-templates33k4 repos~440Automated safety check: PassMIT

Similar skills

  • What Could Break

    sickn33/agentic-awesome-skills

    Find what a change breaks outside its own diff, then prove the one fact that makes it safe by running real code.

    47k GitHub stars~1.8k tokensUpdated 2 days ago
    Auto-check passed
  • Official

    Build reusable conversion models — funnel/step conversion rates, drop-off, and time-to-convert — on either PostHog data-warehouse views (HogQL) or an external dbt project.

    40k GitHub stars~1.4k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • To Tickets

    vinvcn/mattpocock-skills-zh-CN

    把 plan、spec 或当前对话拆成一组 tracer-bullet tickets,每个 ticket 声明 blocking edges,并发布到已配置的 tracker;本地用每 ticket 一个文件中的文本 edge,真实 tracker 用 native blocking links。

    4.7k GitHub stars~924 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Cost Conversation

    ruvnet/ruflo

    Per-conversation cost view — list every session in cost-tracking with started-at, message count, top model, and total cost

    74k GitHub stars~407 tokensUpdated yesterday
    AI & LLM EngineeringAuto-check: notes
  • Conversation Memory

    davila7/claude-code-templates

    Persistent memory systems for LLM conversations including short-term, long-term, and entity-based memory Use when: conversation memory, remember, memory persistence, long-term memory, chat history.

    33k GitHub starsUsed in 4 repos~440 tokens
    Agent WorkflowsAuto-check passed
  • Conversation Archive

    garrytan/gbrain

    Import AI-assistant chat exports (ChatGPT, Claude, Perplexity) and agent session transcripts into the brain as one dated page per conversation under conversations/, validate each page against the…

    31k GitHub stars~5.6k tokensUpdated yesterday
    Productivity & AutomationAuto-check passed

More from bestofjs/bestofjs

All 13 skills in this repo
  • Impeccable

    bestofjs/bestofjs

    A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…

    3.1k GitHub starsUsed in 26 repos~2.6k tokens
    Auto-check passed
  • Wayfinder

    bestofjs/bestofjs

    Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.

    3.1k GitHub starsUsed in 21 repos~2.9k tokens
    Auto-check passed
  • Setup Matt Pocock Skills

    bestofjs/bestofjs

    Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, and domain doc layout.

    3.1k GitHub starsUsed in 20 repos~1.7k tokens
    Auto-check passed
  • Writing For Agents

    bestofjs/bestofjs

    Writing documents for agents. An agent skill from bestofjs/bestofjs.

    3.1k GitHub starsUsed in 20 repos~2.7k tokens
    Auto-check passed
  • Wizard

    bestofjs/bestofjs

    Generate an interactive bash wizard that walks a human through steps only they can perform.

    3.1k GitHub starsUsed in 12 repos~1k tokens
    Auto-check: notes
  • To Spec

    bestofjs/bestofjs

    Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.

    3.1k GitHub starsUsed in 21 repos~757 tokens
    Auto-check passed

Questions about To Tickets

What does To Tickets do?

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…. To Tickets is an agent skill from bestofjs/bestofjs. 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.

How do I install To Tickets in Claude Code?

Run `npx skills add bestofjs/bestofjs --skill to-tickets -a claude-code`. Or copy the skill folder (.agents/skills/to-tickets in bestofjs/bestofjs) into .claude/skills/to-tickets in your project. Claude Code loads it when a task matches its description.

How do I install To Tickets in Codex?

Run `npx skills add bestofjs/bestofjs --skill to-tickets -a codex`. Or copy the skill folder (.agents/skills/to-tickets in bestofjs/bestofjs) into .agents/skills/to-tickets in your project. Codex loads it when a task matches its description.

Can I use To Tickets in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bestofjs/bestofjs --skill to-tickets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/to-tickets, .gemini/skills/to-tickets, .github/skills/to-tickets and .opencode/skills/to-tickets in your project.

What does To Tickets need to run?

SKILL.md names no scripts, command-line tools or credentials: To Tickets is instructions for the agent only.

Does To Tickets access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is To Tickets safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does To Tickets use?

To Tickets is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does To Tickets use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to To Tickets?

Skills that share tags, products or a category with To Tickets: What Could Break (sickn33/agentic-awesome-skills, 47k stars), Modeling Conversion Metrics (PostHog/posthog, 40k stars), To Tickets (vinvcn/mattpocock-skills-zh-CN, 4.7k stars) and Cost Conversation (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains To Tickets?

bestofjs (a GitHub organization) maintains it in bestofjs/bestofjs, which has 3,136 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 4, 2026.

Source: bestofjs/bestofjs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.