CommunityCodierung & Entwicklunggithub.com

mattpocock/to-tickets

Zerlege einen Plan, eine Spezifikation oder das aktuelle Gespräch in eine Reihe von Tracer-Bullet-Tickets, die jeweils ihre Blockierungskanten deklarieren und an den konfigurierten Tracker veröffentlichen (Kanten als Text in einer Datei pro Ticket lokal oder native Blockierungslinks in einem echten Tracker).

Was ist to-tickets?

Dieses Skill zerlegt komplexe Pläne, Spezifikationen oder Gespräche in handliche, vertikale Tracer-Bullet-Tickets. Jedes Ticket stellt einen durchgängigen, demofähigen Workflow dar, der unabhängig in einem einzigen Kontextfenster bearbeitet werden kann. Die Tickets werden mit ihren Abhängigkeiten (Blockierungskanten) versehen und entweder lokal als Markdown-Dateien oder in einem echten Issue-Tracker (GitHub, Linear, etc.) veröffentlicht. Das Skill unterstützt Wide Refactors durch ein Expand-Contract-Muster und iteriert mit dem Benutzer über die Aufteilung, bevor die Tickets finalisiert werden.

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

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

In Tickets zerlegen

Zerlege einen Plan, eine Spezifikation oder ein Gespräch in eine Reihe von Tickets: Tracer-Bullet-vertikale Scheiben, die jeweils die Tickets deklarieren, die sie blocken.

Der Issue-Tracker und das Triage-Label-Vokabular sollten dir bereitgestellt worden sein. Falls nicht, sage dem Benutzer, er soll /setup-matt-pocock-skills ausführen.

Prozess

1. Kontext sammeln

Arbeite mit dem, was bereits im Gesprächskontext vorhanden ist. Wenn der Benutzer eine Referenz (einen Spezifikationspfad, eine Issue-Nummer oder URL) als Argument übergibt, rufe sie ab und lies ihren vollständigen Text und die Kommentare.

2. Codebasis erkunden (optional)

Wenn du die Codebasis noch nicht erkundet hast, tue dies, um den aktuellen Stand des Codes zu verstehen. Ticket-Titel und -Beschreibungen sollten das domänenspezifische Glossar des Projekts verwenden und ADRs in dem Bereich respektieren, den du berührst.

Suche nach Möglichkeiten, den Code vorzurefaktorisieren, um die Implementierung zu vereinfachen. "Make the change easy, then make the easy change."

3. Vertikale Scheiben entwerfen

Zerlege die Arbeit in Tracer-Bullet-Tickets.

  • Jede Scheibe schneidet einen schmalen, aber VOLLSTÄNDIGEN Pfad durch jede Schicht (Schema, API, UI, Tests): vertikal, KEINE horizontale Scheibe einer Schicht
  • Eine abgeschlossene Scheibe ist für sich allein demonstrierbar oder verifizierbar
  • Jede Scheibe ist so dimensioniert, dass sie in ein einziges frisches Kontextfenster passt
  • Jegliche Vorrefaktorisierung sollte zuerst erfolgen

Gib jedem Ticket seine Blockierungskanten: die anderen Tickets, die abgeschlossen sein müssen, bevor es beginnen kann. Ein Ticket ohne Blocker kann sofort starten.

Breite Refaktorisierungen sind die Ausnahme von der vertikalen Scheibenbildung. Eine breite Refaktorisierung ist eine einzige mechanische Änderung (Umbenennen einer Spalte, Neutypisierung eines gemeinsamen Symbols), deren Schadensradius sich über die gesamte Codebasis erstreckt, sodass eine einzelne Bearbeitung Tausende von Aufrufstellen auf einmal zerbricht und keine vertikale Scheibe grün landen kann. Zwinge sie nicht in eine Tracer-Bullet; ordne sie als Expand-Contract an. Expandiere zuerst: füge die neue Form neben der alten hinzu, sodass nichts kaputt geht. Migriere dann die Aufrufstellen in Batches, die nach Schadensradius dimensioniert sind (pro Paket, pro Verzeichnis), jeder Batch sein eigenes Ticket, das durch den Expand blockiert wird, und halte CI von Batch zu Batch grün, weil die alte Form noch existiert. Abschließend kontrahiere: lösche die alte Form, sobald kein Aufrufer mehr vorhanden ist, in einem Ticket, das durch jeden Migrationsbatch blockiert wird. Wenn selbst die Batches nicht allein grün bleiben können, behalte die Reihenfolge bei, aber lass sie einen Integrationszweig teilen, der alle ein abschließendes Integrate-and-Verify-Ticket blockt; grün wird nur dort versprochen.

4. Den Benutzer befragen

Präsentiere die vorgeschlagene Aufteilung als nummerierte Liste. Zeige für jedes Ticket:

  • Titel: kurzer beschreibender Name
  • Blockiert durch: welche anderen Tickets (falls vorhanden) zuerst abgeschlossen sein müssen
  • Was es liefert: das End-to-End-Verhalten, das dieses Ticket funktionsfähig macht

Frage den Benutzer:

  • Ist die Granularität richtig? (zu grob / zu fein)
  • Sind die Blockierungskanten korrekt: hängt jedes Ticket nur von Tickets ab, die es tatsächlich blockieren?
  • Sollten Tickets zusammengeführt oder weiter aufgeteilt werden?

Wiederhole den Vorgang, bis der Benutzer die Aufteilung genehmigt.

5. Die Tickets im konfigurierten Tracker veröffentlichen

Veröffentliche die genehmigten Tickets. Wie hängt vom Tracker ab, den /setup-matt-pocock-skills konfiguriert hat; die Tickets sind gleich, nur die Form der Blockierungskanten ändert sich:

  • Lokale Dateien → schreibe eine Datei pro Ticket unter .scratch/<feature-slug>/issues/<NN>-<slug>.md, nummeriert ab 01 in Abhängigkeitsreihenfolge (Blocker zuerst). Jede Datei listet unter "Blockiert durch" die Nummern/Titel, von denen sie abhängt. Verwende die Vorlage für die einzelne Ticketdatei unten: ein Ticket pro Datei, niemals eine einzige kombinierte Datei.
  • Ein echter Issue-Tracker (GitHub, Linear, …) → veröffentliche einen Issue pro Ticket in Abhängigkeitsreihenfolge (Blocker zuerst), sodass die Blockierungskanten jedes Tickets reale Bezeichner referenzieren können. Verwende die native Blockierungs-/Unterticket-Beziehung der Plattform, falls vorhanden; andernfalls setze "Blockiert durch" jedes Tickets auf die blockierenden Issues. Wende das Triage-Label ready-for-agent an, sofern nicht anders angewiesen; die Tickets sind von Natur aus agentengreifbar.

Arbeite die Frontier ab: jedes Ticket, dessen Blocker alle erledigt sind. Bei einer rein linearen Kette bedeutet das von oben nach unten.

Schließe oder ändere KEIN übergeordnetes Issue.

:

Was zu bauen ist: das End-to-End-Verhalten, das dieses Ticket funktionsfähig macht, aus der Perspektive des Benutzers, keine schichtweise Implementierungsliste.

Blockiert durch: die Nummern/Titel der Tickets, die dieses blockieren, oder "Keine (kann sofort starten)".

Status: ready-for-agent

  • Akzeptanzkriterium 1
  • Akzeptanzkriterium 2

Übergeordnet

Ein Verweis auf das übergeordnete Issue im Tracker (falls die Quelle ein bestehendes Issue war; andernfalls diesen Abschnitt weglassen).

Was zu bauen ist

Das End-to-End-Verhalten, das dieses Ticket funktionsfähig macht, aus der Perspektive des Benutzers, nicht schichtweise Implementierung.

Akzeptanzkriterien

  • Kriterium 1
  • Kriterium 2

Blockiert durch

  • Ein Verweis auf jedes blockierende Ticket oder "Keine (kann sofort starten)".

Vermeide in beiden Formen spezifische Dateipfade oder Code-Snippets: sie werden schnell veraltet. Ausnahme: wenn ein Prototyp ein Snippet erzeugt hat, das eine Entscheidung präziser kodiert als Prosa (Zustandsmaschine, Reducer, Schema, Typform), binde es ein und notiere kurz, dass es von einem Prototyp stammt. Reduziere auf die entscheidungsreichen Teile, kein funktionierendes Demo, nur die wichtigen Teile.

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.

Verwandte Skills