CommunityCodierung & Entwicklunggithub.com

mattpocock/to-spec

Verwandle das aktuelle Gespräch in ein Pflichtenheft und veröffentliche es im Issue-Tracker des Projekts: kein Interview, sondern nur eine Synthese dessen, was bereits besprochen wurde.

Was ist to-spec?

Diese Fertigkeit extrahiert aus dem laufenden Gesprächskontext und dem Verständnis der Codebase eine fachliche Spezifikation und veröffentlicht diese als Issue im Projekt-Tracker, ohne den Benutzer zu interviewen. Sie ist ideal für Entwickler, die mit KI-Agenten wie Claude Code, Cursor oder Codex arbeiten, um schnell und effizient Entscheidungen und Anforderungen zu dokumentieren. Die Fertigkeit unterstützt die automatische Erstellung eines strukturierten Spezifikationsdokuments mit Abschnitten wie Problemstellung, Lösung, User Stories, Implementierungsentscheidungen, Testentscheidungen und Ausgeschlossenen Bereichen. Dabei wird eine bevorzugte Test-Seam-Strategie verwendet, um die Anzahl der Teststellen zu minimieren. Der Agent muss zuerst die Codebase erkunden, die Seams mit dem Benutzer abstimmen und dann die Spezifikation mit dem Label 'ready-for-agent' im Issue-Tracker veröffentlichen.

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

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

Diese Fertigkeit nimmt den aktuellen Gesprächskontext und das Verständnis der Codebase auf und erstellt eine Spezifikation. Befrage den Benutzer NICHT; synthetisiere nur das, was du bereits weißt.

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

Prozess

  1. Erkunde das Repository, um den aktuellen Zustand der Codebase zu verstehen, falls du es nicht bereits getan hast. Verwende während der gesamten Spezifikation das Domänenglossar des Projekts und respektiere alle ADRs in dem Bereich, den du berührst.

  2. Skizziere die Seams, an denen du die Funktion testen wirst. Bestehende Seams sollten neuen vorgezogen werden. Verwende den höchstmöglichen Seam. Falls neue Seams erforderlich sind, schlage sie an der höchsten Stelle vor, die du finden kannst. Je weniger Seams es in der Codebase gibt, desto besser – die ideale Anzahl ist eins.

Überprüfe mit dem Benutzer, ob diese Seams seinen Erwartungen entsprechen.

  1. Schreibe die Spezifikation mit der untenstehenden Vorlage und veröffentliche sie dann im Issue-Tracker des Projekts. Wende das Triage-Label ready-for-agent an – kein zusätzliches Triage erforderlich.

Problemstellung

Das Problem, mit dem der Benutzer konfrontiert ist, aus Sicht des Benutzers.

Lösung

Die Lösung des Problems, aus Sicht des Benutzers.

User Stories

Eine LANGE, nummerierte Liste von User Stories. Jede User Story sollte im Format sein:

  1. Als möchte ich ein , so dass

Diese Liste von User Stories sollte äußerst umfangreich sein und alle Aspekte der Funktion abdecken.

Implementierungsentscheidungen

Eine Liste von Implementierungsentscheidungen, die getroffen wurden. Dies kann Folgendes umfassen:

  • Die Module, die erstellt/geändert werden
  • Die Schnittstellen dieser Module, die geändert werden
  • Technische Klarstellungen vom Entwickler
  • Architekturentscheidungen
  • Schemaänderungen
  • API-Verträge
  • Spezifische Interaktionen

Füge KEINE spezifischen Dateipfade oder Codeausschnitte ein. Sie könnten sehr schnell veraltet sein.

Ausnahme: Wenn ein Prototyp einen Ausschnitt erzeugt hat, der eine Entscheidung präziser kodiert als Prosa (Zustandsmaschine, Reducer, Schema, Typform), füge ihn innerhalb der relevanten Entscheidung ein und weise kurz darauf hin, dass er von einem Prototyp stammt. Kürze auf die entscheidungsreichen Teile, kein funktionierendes Demo, nur die wichtigen Teile.

Testentscheidungen

Eine Liste von Testentscheidungen, die getroffen wurden. Enthalten:

  • Eine Beschreibung, was einen guten Test ausmacht (nur externes Verhalten testen, keine Implementierungsdetails)
  • Welche Module getestet werden
  • Vorherige Beispiele für die Tests (d.h. ähnliche Testarten in der Codebase)

Ausgeschlossene Bereiche

Eine Beschreibung der Dinge, die für diese Spezifikation nicht in Frage kommen.

Weitere Anmerkungen

Alle weiteren Anmerkungen zur Funktion.

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