to-tickets
Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges and out-of-scope boundaries, with…
Skill by showgp
Chalk Labs
Need help deploying to-tickets?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/showgp-to-tickets
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/to-tickets
What's inside
- Skill name
to-tickets- Description
- Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges and out-of-scope boundaries, with executable acceptance assertions, published to the configured tracker — edges as text in one file per ticket locally, or native blocking links on a real tracker.
- License
- MIT
- Instructions
- 162 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# 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. Every ticket also declares its **out of scope** — what it must NOT do. Name each sibling ticket whose work borders this one (a feature another ticket owns that looks adjacent enough to be pulled in, a contract another ticket will finalize, a refactor another ticket will run). The agent executing this ticket must not reach for them. "Blocked by" says what gates this ticket; "out of scope" says what this ticket must not implement even if it looks easy. Both are required — the missing one is how a ticket silently absorbs its neighbours' work. Draft each ticket's acceptance criteria as **executable assertions**, not wishes: - Each positive criterion states the behaviour that must work and **how it is verified** — the seam it is tested at (from `to-spec`'s Testing Decisions) or the command that checks it. A ticket is done only when every criterion's verification passes. - Every "must not" / "must never" in the spec gets a **negative criterion** with its own test: the assertion is the absence (the error type is X not Y, no sensitive value in any output, no undeclared fields or declarations). A spec sentence is weak; a test is strong — the agent works to make tests pass. - Every criterion must be checkable by a test, a command, or an inspection script. If you cannot name the check, the criterion is a wish — rework it. - Verification commands must run from the repository root using tooling the repository declares (package-manager scripts, repo config). Prefer repo-declared tooling over globally installed executables; when a global tool is unavoidable, the ticket must record its name, version, and installation/invocation method so another machine can reproduce it — a verification that only passes in your environment is not verification. Copy every **global invariant** from the spec into every ticket whose code path touches it — secrets handling (no sensitive value in any output or log), path containment, stdout purity, error semantics, anything the spec marks "must never". An invariant is not owned by the ticket that finalizes its contract: it applies everywhere, and no ticket may temporarily violate it because another ticket will fix it later. Each ticket that touches dependencies or tooling carries a **dependency/tooling guard**: new direct dependencies, checkers, configs, or repo-level workflows require explicit authorization in the ticket — without it they are out of scope; and any dependency change must own syncing the repo's context/instruction file (AGENTS.md, CLAUDE.md, …), the lockfile, and relevant ADRs. **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? - Are the out-of-scope boundaries right — does each ticket's "must not" list match the neighbours you expect, and is nothing a ticket shouldn't do missing from it? - Should any tickets be merged or split further? Iterate until the user approves the breakdown. ### 5. Verify coverage before publishing Before any ticket is published, check all three: - **Requirement coverage** — every spec requirement (each user story, each acceptance criterion, each "must not") maps to at least one ticket, and every ticket records its **source requirements** (the spec sections it implements — see the template). Report anything uncovered to the user and get a decision, rather than silently dropping it. - **Owner integrity** — every deferred item names a ticket that exists in this set and actually claims that work as its contract. A deferred item with no owner is a hole: either create the owning ticket or surface it to the user. - **Invariant propagation** — every global invariant from the spec appears in every ticket that touches its code path. Iterate until all three pass. ### 6. 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 local tickets, done means **Implementation status: completed** — all acceptance criteria checked, completion evidence complete, and a final review with no blocking findings. 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. **Source requirements:** <the spec items this ticket implements, cited precisely — e.g. "User Stories 1, 3, 6, 47–49; Implementation Decisions / Runtime & API contracts bullets 2–7; Testing Decisions / integration tests bullets 1–5". Cite item and bullet numbers, not just section names — a reviewer must not have to guess the mapping> **Blocked by:** the numbers/titles of the tickets that gate this one, or "None — can start immediately". **Out of scope (deferred):** what this ticket must NOT do, naming the ticket that owns each item — especially any sibling ticket whose work looks adjacent to this one. "None" if the user approved none. **Status:** ready-for-agent **Implementation status:** pending **Done means:** Implementation status flipped to **completed** — all acceptance criteria checked with complete completion evidence, /code-review returned no blocking findings, and the final review ran clean. ## Acceptance criteria (executable assertions) - [ ] <behaviour that must work> — verified by <test at seam X / command Y> - [ ] <negative: what must NOT happen> — verified by <the test asserting its absence> **Completion evidence:** when checking a criterion, record the actual command run, its exit code, test counts, and any warnings. A criterion is not done if its verification was never run or could not be reproduced. New warnings, or warnings in ticket-owned tests, block completion; pre-existing unrelated warnings are recorded as baseline evidence and are not fixed unless the ticket scopes them. **Global invariants (apply here):** <the spec's invariants this ticket's code path touches — e.g. no sensitive value in any output or log; no path escapes; stdout stays pure>. This ticket must satisfy them even where another ticket owns the full contract. **Dependency/tooling guard:** <authorization, or "None — no dependency or tooling change is authorized by this ticket."> New direct dependencies, checkers, configs, or repo-level workflows not listed here are out of scope; any authorized dependency change must sync the repo's context/instruction file (AGENTS.md, CLAUDE.md, …), the lockfile, and relevant ADRs. </local-ticket-template> <issue-template> ## Parent
From showgp/skills-with-gate, MIT.
More from showgp/skills-with-gate
- 0.504score
diagnosing-bugs
showgp
Diagnosis loop for hard bugs and performance regressions.
SkillBFreshness: BClaude Code +9 - 0.499score
code-review
showgp
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding…
SkillBFreshness: BClaude Code +9 - 0.499score
codebase-design
showgp
Shared vocabulary for designing deep modules.
SkillBFreshness: BClaude Code +9 - 0.499score
domain-modeling
showgp
Build and sharpen a project's domain model.
SkillBFreshness: BClaude Code +9 - 0.499score
design-an-interface
showgp
Generate multiple radically different interface designs for a module using parallel sub-agents.
SkillBFreshness: BClaude Code +9 - 0.496score
setup-matt-pocock-skills
showgp
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, domain doc layout, and flow gates.
SkillBFreshness: BClaude Code +9 - 0.493score
implement
showgp
Implement a piece of work based on a spec or set of tickets.
SkillBFreshness: BClaude Code +9 - 0.493score
ask-matt
showgp
Ask which skill or flow fits your situation.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 16, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/showgp/skills-with-gate
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from showgp
- 0.504score
diagnosing-bugs
showgp
Diagnosis loop for hard bugs and performance regressions.
SkillBFreshness: BClaude Code +9 - 0.499score
code-review
showgp
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding…
SkillBFreshness: BClaude Code +9 - 0.499score
codebase-design
showgp
Shared vocabulary for designing deep modules.
SkillBFreshness: BClaude Code +9 - 0.499score
domain-modeling
showgp
Build and sharpen a project's domain model.
SkillBFreshness: BClaude Code +9 - 0.499score
design-an-interface
showgp
Generate multiple radically different interface designs for a module using parallel sub-agents.
SkillBFreshness: BClaude Code +9 - 0.496score
setup-matt-pocock-skills
showgp
Configure this repo for the engineering skills — set up its issue tracker, triage label vocabulary, domain doc layout, and flow gates.
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get to-tickets running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
to-tickets skill. Agent Mart. https://agentmart.dev/skills/showgp-to-tickets (last updated 2026-10-24)