Diese Fähigkeit nimmt den aktuellen Gesprächskontext und das Verständnis der Codebasis und erstellt ein Pflichtenheft (Spec). Befrage den Benutzer NICHT; synthetisiere einfach das, was du bereits weißt.
Der Issue-Tracker und das Vokabular für Triage-Labels sollten dir bereits mitgeteilt worden sein. Falls nicht, fordere den Benutzer auf, /setup-matt-pocock-skills auszuführen.
Ablauf
-
Erkunde das Repository, um den aktuellen Stand der Codebasis zu verstehen, falls du dies nicht bereits getan hast. Verwende das domänenspezifische Glossar des Projekts im gesamten Pflichtenheft und beachte alle ADRs, die den Bereich betreffen, den du berührst.
-
Skizziere die Schnittstellen (Seams), an denen du die Funktion testen wirst. Bestehende Schnittstellen sollten bevorzugt werden. Verwende die höchstmögliche Schnittstelle. Falls neue Schnittstellen benötigt werden, schlage sie an der höchstmöglichen Stelle vor. Je weniger Schnittstellen es in der Codebasis gibt, desto besser – die ideale Anzahl ist eins.
Überprüfe mit dem Benutzer, ob diese Schnittstellen seinen Erwartungen entsprechen.
- Schreibe das Pflichtenheft mit der folgenden Vorlage und veröffentliche es dann im Issue-Tracker des Projekts. Wende das Triage-Label
ready-for-agentan – kein zusätzliches Triage erforderlich.
Problemstellung
Das Problem, mit dem der Benutzer konfrontiert ist, aus der Perspektive des Benutzers.
Lösung
Die Lösung des Problems, aus der Perspektive des Benutzers.
User Stories
Eine LANGE, nummerierte Liste von User Stories. Jede User Story sollte das folgende Format haben:
- Als möchte ich , um
Diese Liste von User Stories sollte äußerst umfangreich sein und alle Aspekte der Funktion abdecken.
Implementierungsentscheidungen
Eine Liste der getroffenen Implementierungsentscheidungen. Dies kann Folgendes umfassen:
- Die Module, die erstellt/geändert werden
- Die Schnittstellen dieser Module, die geändert werden
- Technische Klarstellungen seitens des Entwicklers
- Architekturentscheidungen
- Schema-Änderungen
- API-Verträge
- Spezifische Interaktionen
Enthalte KEINE spezifischen Dateipfade oder Code-Snippets. Diese könnten sehr schnell veraltet sein.
Ausnahme: Wenn ein Prototyp ein Snippet erzeugt hat, das eine Entscheidung präziser kodiert als Prosa es könnte (Zustandsautomat, Reducer, Schema, Typform), dann füge es innerhalb der entsprechenden Entscheidung ein und vermerke kurz, dass es aus einem Prototypen stammt. Kürze auf die entscheidungsrelevanten Teile, nicht auf eine funktionsfähige Demo, sondern nur auf die wichtigen Bits.
Testentscheidungen
Eine Liste der getroffenen Testentscheidungen. Enthalte:
- Eine Beschreibung, was einen guten Test ausmacht (nur externes Verhalten testen, nicht Implementierungsdetails)
- Welche Module getestet werden
- Vorherige Beispiele für die Tests (d.h. ähnliche Testarten in der Codebasis)
Nicht im Fokus
Eine Beschreibung der Dinge, die für dieses Pflichtenheft nicht im Fokus stehen.
Weitere Anmerkungen
Alle weiteren Anmerkungen zur Funktion.