CommunityProgramación y desarrollogithub.com

mattpocock/to-tickets

Convierte un plan, una especificación o la conversación actual en un conjunto de tickets verticales (tracer bullet), cada uno declarando sus dependencias de bloqueo, publicados en el tracker configurado (archivos locales con dependencias en texto o enlaces nativos de bloqueo en un tracker real).

¿Qué es to-tickets?

Esta skill convierte un plan, especificación o conversación en un conjunto de tickets de tipo 'tracer bullet' (balas trazadoras) que representan cortes verticales completos del trabajo. Cada ticket declara explícitamente qué otros tickets lo bloquean, creando un grafo de dependencias claro. Es útil porque estructura el trabajo en piezas demoables y verificables de forma independiente, respetando el tamaño de la ventana de contexto de un agente. Soporta publicación local (archivos de texto bajo `.scratch/`) o en trackers reales como GitHub y Linear, usando enlaces de bloqueo nativos o texto de dependencias. El proceso incluye recopilar contexto, explorar el codebase para pre-factorizar, redactar los cortes verticales, validarlos con el usuario y publicarlos en orden de dependencias. Maneja refactors transversales con la técnica expand-contract para mantener CI verde.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/engineering/to-tickets

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

A Tickets

Divide un plan, especificación o conversación en un conjunto de tickets: cortes verticales tipo bala trazadora, cada uno declarando los tickets que lo bloquean.

El vocabulario del tracker de incidencias y de las etiquetas de triaje deberían haberte sido proporcionados. Si no es así, dile al usuario que ejecute /setup-matt-pocock-skills.

Proceso

1. Recopilar contexto

Trabaja a partir de lo que ya esté en el contexto de la conversación. Si el usuario pasa una referencia (ruta de especificación, número de incidencia o URL) como argumento, recupérala y lee su cuerpo completo y comentarios.

2. Explorar el código base (opcional)

Si aún no has explorado el código base, hazlo para entender el estado actual del código. Los títulos y descripciones de los tickets deben usar el glosario de dominio del proyecto y respetar los ADR en el área que tocan.

Busca oportunidades de prefactorizar el código para facilitar la implementación. "Haz que el cambio sea fácil, luego haz el cambio fácil".

3. Redactar cortes verticales

Divide el trabajo en tickets de bala trazadora.

  • Cada corte atraviesa un camino estrecho pero COMPLETO a través de todas las capas (esquema, API, UI, tests): vertical, NO un corte horizontal de una sola capa
  • Un corte completado es demostrable o verificable por sí mismo
  • Cada corte está dimensionado para caber en una única ventana de contexto nueva
  • Cualquier prefactorización debe hacerse primero

Asigna a cada ticket sus aristas de bloqueo: los otros tickets que deben completarse antes de que pueda comenzar. Un ticket sin bloqueadores puede comenzar inmediatamente.

Los refactors amplios son la excepción al corte vertical. Un refactor amplio es un cambio mecánico (renombrar una columna, cambiar el tipo de un símbolo compartido) cuyo radio de explosión se extiende por todo el código base, de modo que una sola edición rompe miles de puntos de llamada a la vez y ningún corte vertical puede pasar en verde. No lo fuerces a una bala trazadora; secuencialo como expandir–contraer. Primero expande: añade la nueva forma junto a la antigua para que nada se rompa. Luego migra los puntos de llamada en lotes según el radio de explosión (por paquete, por directorio), cada lote con su propio ticket bloqueado por la expansión, manteniendo CI verde lote a lote porque la forma antigua aún existe. Finalmente contrae: elimina la forma antigua una vez que no quede ningún llamante, en un ticket bloqueado por cada lote de migración. Cuando ni siquiera los lotes pueden mantenerse verdes solos, mantén la secuencia pero permíteles compartir una rama de integración que todos bloqueen para un ticket final de integrar-y-verificar; el verde se promete solo allí.

4. Preguntar al usuario

Presenta el desglose propuesto como una lista numerada. Para cada ticket, muestra:

  • Título: nombre descriptivo corto
  • Bloqueado por: qué otros tickets (si los hay) deben completarse primero
  • Qué entrega: el comportamiento de extremo a extremo que este ticket hace funcionar

Pregunta al usuario:

  • ¿La granularidad parece correcta? (demasiado gruesa / demasiado fina)
  • ¿Las aristas de bloqueo son correctas: cada ticket solo depende de tickets que realmente lo condicionan?
  • ¿Algún ticket debería fusionarse o dividirse más?

Itera hasta que el usuario apruebe el desglose.

5. Publicar los tickets en el tracker configurado

Publica los tickets aprobados. Cómo depende del tracker que /setup-matt-pocock-skills haya configurado; los tickets son los mismos en ambos casos, solo cambia la forma de las aristas de bloqueo:

  • Archivos locales → escribe un archivo por ticket en .scratch/<feature-slug>/issues/<NN>-<slug>.md, numerados desde 01 en orden de dependencias (los bloqueadores primero). Cada archivo "Bloqueado por" lista los números/títulos de los que depende. Usa la plantilla de archivo por ticket a continuación: un ticket por archivo, nunca un único archivo combinado.
  • Un tracker de incidencias real (GitHub, Linear, …) → publica una incidencia por ticket en orden de dependencia (bloqueadores primero) para que las aristas de bloqueo de cada ticket puedan hacer referencia a identificadores reales. Usa la relación nativa de bloqueo / sub-incidencia de la plataforma si la tiene; en caso contrario, establece que "Bloqueado por" de cada ticket se refiera a las incidencias bloqueadoras. Aplica la etiqueta de triaje ready-for-agent a menos que se indique lo contrario; los tickets son agarrables por agentes por construcción.

Trabaja la frontera: cualquier ticket cuyos bloqueadores estén todos completados. Para una cadena puramente lineal, eso significa de arriba a abajo.

NO cierres ni modifiques ninguna incidencia padre.

: <Título del ticket>

Qué construir: el comportamiento de extremo a extremo que este ticket hace funcionar, desde la perspectiva del usuario, no una lista de implementación capa por capa.

Bloqueado por: los números/títulos de los tickets que condicionan este, o "Ninguno (puede comenzar inmediatamente)".

Estado: ready-for-agent

  • Criterio de aceptación 1
  • Criterio de aceptación 2

Padre

Una referencia a la incidencia padre en el tracker (si la fuente era una incidencia existente, de lo contrario omitir esta sección).

Qué construir

El comportamiento de extremo a extremo que este ticket hace funcionar, desde la perspectiva del usuario, no capa por capa.

Criterios de aceptación

  • Criterio 1
  • Criterio 2

Bloqueado por

  • Una referencia a cada ticket bloqueador, o "Ninguno (puede comenzar inmediatamente)".

En cualquier forma, evita rutas de archivo o fragmentos de código específicos: se vuelven obsoletos rápidamente. Excepción: si un prototipo produjo un fragmento que codifica una decisión con mayor precisión que el texto (máquina de estados, reducer, esquema, forma de tipo), inclúyelo y anota brevemente que provino de un prototipo. Recorta las partes ricas en decisión, no un demo funcional, solo las partes importantes.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/grill-with-docs

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

Skills relacionados