Ergänzung am 29.12.2025
Ich habe inzwischen Abschied von GitHub Spec-Kit genommen. Und empfehle es nicht mehr.
Zwangsbranches
Ich fange mit einem soften Grund an: Zum Einen stört mich, dass jede Spec bereits beim Anlegen zwingend und unumgänglich einen eigenen Branch hervorruft. Dieses Verhalten ist zwar dokumentiert, aber nicht aus dem README auf der Startseite ersichtlich oder in den Einführungsvideos erklärt. Ich entscheide gern selbst, ob und wann ich branche. Die Folge ist, dass man nicht mehrere Specs zugleich anlegen kann. Man kann schon, nur beginnen sie dann allesamt mit “001-” weil sich jeder Branch für den Erstling hält. Man vergibt sich die Möglichkeit, mehrere Specs gleichzeitig agentisch zu bearbeiten. Genau diese Möglichkeit bildet aber den Clou der modernen Softwareentwicklung mit KI Agenten.
Debuggen nur an Spec-Kit vorbei möglich
Zum Zweiten stört mich die Tatsache, dass ein Spec komplett durchlaufen werden muss, bevor man mit dem nächsten beginnt. Das Problem dabei ist die Annahme, dass ein Spec nur fehlerfrei begonnen und durchlaufen werden kann. Denn ein Spec-Kit durchläuft die Phasen constitution - specify - plan - tasks - implement. Mehr gibt es nicht. Damit kommen wir zu meinem für spec-kit tödlichem Argument: Das Design von Spec-Kit geht davon aus, dass damit der Zyklus komplett ist. Merkt ihr was? Es fehlt etwas ganz Entscheidendes: das Debuggen. Dafür gibt es schlicht keinen Slash-Command. Mir ist, auch bei Einsatz von KI, in einem Viertejahrhundert Praxis praktisch nie der Fall untergekommen, dass nach Umsetzung eines Plans keine Fehler zu debuggen waren.
Man kann in Ermangelung eines entsprechenden zu spec-kit gehörenden Commands deshalb nur an spec-kit vorbei debuggen. Die ganzen ausgeklügelten Vereinbarungen der constitution greifen dann nicht. Sie liegen im versteckten Verzeichnis .spec-kit und dort im Verzeichnis memory. Nichts davon gilt ausgerechent dann, wenn die meines Erachtens maßgebliche Arbeit, das Debuggen, das Revidieren gefällter Entscheidungen, stattfindet. Wenn man wichtige Dinge nur am System vorbei erledigen kann, sollte man das System gar nicht erst beginnen. Man könnte sagen: Ja, aber du kannst doch in den Chat nach dem implement -command zurück springen und dort dein Problem prompten. Theoretisch ja. Praktisch nein. Wißt ihr, wie ein Chatfenster aussieht nachdem es einen kompletten Plan implementiert hat? Das Fenster ist mindestens zu 70 % belegt. Jeder weitere Prompt darin provoziert Halluzinationen und Fehler. Die dann wieder dort debuggt werden sollen… Es funktioniert nicht in der Praxis. Ich musst es hart lernen. Man muss einen neuen Chat starten können um etwas zu debuggen, und das geht mit spec-kit nicht.
Ich bin heute, zwei Monate später, der Meinung, dass man, statt sich mit spec-kit zu beschäftigen, besser daran tut, eine vernünftige AGENTS.md aufzusetzen, welche für jede KI gilt. Eventuell dann hier und da noch einige Hinterlassenschaften für spezielle KI, bspw. für die CLAUDE.md, dass und wann sie vom selbst angelegten SKill für Context7 gebrauchen machen soll usw.
Ausserdem ist schon nach zwei Monaten die IDE Landschaft nicht mehr dieselbe. Cursor hat jetzt selbst einen Plan-Modus. Das ist kein Alleinstellungsmerkmal von Kiro mehr. Überhaupt alle IDE stecken viel Energie darein, Prompts möglichst effizient und intelligent auszuwerten. Man muss diese Tools aber auch atmen lassen, ihre Stärken ausspielen lassen. Das macht man, indem man ihnen ganz normal sagt, was man will. Mit ihnen spricht, Rückfragen beantwortet. Darauf sind und werden sie immer weiter optimiert. Was man ihnen jedoch durch spec-kit gefiltert vorsetzt, ist ein Korsett.
Es muss im Dezember 2025 nicht mal eine IDE sein. Ich erledige mittlerweile mehr und mehr direkt in Claude Code. Es ist in der täglichen Arbeit, wo man eben doch viel zwischen Projekten wechseln muss, oft einfach schneller und direkter auf den Punkt.
Gleichwohl folgt hier mein ursprünglicher Blogbeitrag vom 22.10.2025, unverändert:
Using GithHub Spec-Kit
Einleitung in Spec-Kit: Wie Du mit Cursor und Spec-Driven Development (SDD) Produktionsreife Anwendungen erstellst
Dieser Blogbeitrag wurde zu einem Teil mit Hilfe durch Gemini erstellt und basiert auf einer Analyse der folgenden Quellen:
- Leon van Zyl, YouTube: “Spec Kit: How to Build Production-Ready Apps with AI Agents”
- Den Delimarsky, YouTube: “Using GitHub Spec Kit with your EXISTING PROJECTS”
- Gemini 2.5 Recherche: “Spec-Driven Neuentwicklung mit GitHub Spec-Kit und Cursor” (Ergebnisse dieser Recherche flossen in meinen Text ein).
https://github.com/github/spec-kit
Warum Spec-Kit? Die Struktur, die KI-Agenten brauchen
Du kennst das Problem: Du hast eine großartige Idee für eine Anwendung, schreibst den Prompt, wirfst ihn Deinem Coding-Agenten zu und denkst: “Alles klar, los geht’s!”. Und dann erhältst Du Ergebnisse, die fehlerhaft sind, wichtige Funktionen vermissen lassen, oder der Agent hat sogar Dinge hinzugefügt, die Du gar nicht verlangt hast.
Coding-Agenten sind unglaublich leistungsfähig, aber sie brauchen Struktur. Sie benötigen dieselben Details, die auch echte Entwickler nutzen: Edge Cases, User Stories und Architekturentscheidungen.
Genau hier setzt GitHub Spec-Kit an. Es handelt sich um einen strukturierten Workflow, der Skripte und fein abgestimmte Prompts ausführt, um hochwertigen Kontext für Deinen KI-Agenten zu generieren. Im Wesentlichen führt Spec-Kit das Spec-Driven Development (SDD) in Deinen Workflow ein. SDD ist eine bewährte Methodik, bei der alles im Voraus geplant und dokumentiert wird.
Spec-Kit ist kein KI-Modell, sondern ein Open-Source-Framework und eine Kommandozeilenschnittstelle (CLI), die den strukturierten Prozess bereitstellt. Es fungiert als “Dirigent”, der die Partitur liefert und den Takt vorgibt.
Die Symbiose: Spec-Kit als Dirigent, Cursor als Virtuose
Spec-Kit ist agnostisch in Bezug auf den verwendeten Coding-Agenten. Du kannst es mit Claude, Codeex oder eben Cursor nutzen.
In dieser Arbeitsteilung ist Cursor der “Virtuose” oder der intelligente, KI-gestützte Code-Editor, der die Anweisungen des Spec-Kit-Frameworks ausführt.
Der Einsatz von Cursor
Wenn Du Spec-Kit zusammen mit Cursor verwendest, nutzt Du die integrierten Slash Commands. Anstatt manuell Prompts einzugeben, führst Du vordefinierte, kontextreiche Prompts aus, die Spec-Kit bereitstellt, wie zum Beispiel /Spec-Kit.constitution oder /Spec-Kit.specify. Die interne KI-Engine von Cursor liest diesen Prompt, versteht den Kontext aus den Spec-Kit-Vorlagen und generiert daraufhin die entsprechenden Dateien.
Ein entscheidender Vorteil bei der Nutzung von Cursor ist die Multi-LLM-Umgebung. Spec-Kit hat kein eigenes Sprachmodell (LLM); stattdessen wird das in der Cursor IDE ausgewählte und konfigurierte Modell verwendet. Dies bietet Dir maximale Flexibilität:
- Du kannst aus einer breiten Palette von Modellen wählen, darunter Claude 3.5 Sonnet und GPT-4o.
- Deine Fähigkeit verlagert sich von der reinen Codeerstellung zur Orchestrierung des richtigen KI-Modells für die richtige Aufgabe.
Der Spec-Kit-Workflow: Phasen des SDD
Der Spec-Kit-Workflow ist in mehrere kritische Phasen unterteilt, die sicherstellen, dass die KI alle notwendigen Informationen erhält, bevor sie mit dem Schreiben von Code beginnt:
1. Constitution (Die Gesetze des Projekts)
Dies ist oft der erste Schritt, den Du ausführst. Die Constitution legt die nicht verhandelbaren Projektprinzipien und -standards fest.
- Zweck: Definiert den Technologiestapel (z.B. Next.js 15), Architekturprinzipien und Testanforderungen.
- Ablauf in Cursor: Du startest eine neue Konversation und verwendest den
/constitution-Befehl (oder/Spec-Kit.constitution). - Wichtig: Die Constitution dient als Leitplanke für die KI, um unerwünschte Muster oder Technologien zu vermeiden, die Du hinter Dir lassen möchtest.
2. Specify (Was und Warum)
Dies ist der Beginn des Feature Life Cycles. In dieser Phase teilst Du dem Agenten mit, welche Funktion Du bauen möchtest, ausschließlich anhand von geschäftlichen Anforderungen und User Stories.
- Ergebnis: Die KI erstellt automatisch einen neuen Branch für die Funktion und die Datei
spec.md, die Anwendungsfälle, Akzeptanzszenarien und funktionale Anforderungen enthält.
3. Clarify (Die Optionalität der Präzision)
Dieser optionale Schritt ist sehr zu empfehlen. Der Agent analysiert die erstellte spec.md und stellt klärende Fragen zu Unklarheiten oder fehlenden Details (z.B. zur Sortierreihenfolge oder Paginierung).
- Nutzen: Dieser Schritt zwingt Dich als Entwickler dazu, über Edge Cases nachzudenken und die Anforderungen detailliert auszuarbeiten. Die
spec.mdwird mit den neuen Informationen aktualisiert.
4. Plan (Das Wie)
Der Planungsphase folgt auf die finalisierte Spezifikation.
- Zweck: Erstellung des technischen Implementierungsplans. Hier kannst Du technische Details und Regeln hinzufügen (z.B. “verwende Local Storage, um Daten zu persistieren” oder Angabe des genauen Tech Stacks).
- Ergebnis: Die KI generiert die Datei
plan.md, die Details zur Systemarchitektur, zum Datenbankschema (falls relevant) und API-Verträge enthält.
5. Tasks (Granulare Schritte)
Der Plan wird in individuelle, ausführbare Schritte zerlegt.
- Zweck: Erstellung einer granularen, priorisierten Checkliste von Entwicklungsaufgaben (z.B. T001, T002).
- Ergebnis: Die Datei
tasks.mdwird erstellt.
6. Implement (Die Code-Ausführung)
Dies ist der Schritt, in dem der Coding-Agent den eigentlichen Code schreibt.
- Best Practice: Du solltest die Implementierung in kleinen Abschnitten ausführen (z.B. nach Phase 3.1), um die Kontextfenster des LLM optimal zu nutzen und die Ausgabequalität zu sichern.
- Qualität: Spec-Kit fördert Test-Driven Development (TDD), wobei der Agent zuerst Tests schreibt, die fehlschlagen, und dann die Funktionalität implementiert, bis die Tests bestehen.
Fortgeschrittene Technik: Kontextsteuerung mit Cursor
Für komplexe Projekte, insbesondere bei der Neuentwicklung (Greenfield), musst Du möglicherweise Logik aus Altsystemen analysieren.
- Die Zwei-Arbeitsbereiche-Strategie: Für die Neuentwicklung ist es ratsam, zwei separate Arbeitsbereiche zu verwenden: Arbeitsbereich A (“Das Museum”) für den Legacy-Code (nur lesend) und Arbeitsbereich B (“Die Gießerei”) für das neue, leere Repository, in dem Spec-Kit ausgeführt wird. Dies ist eine unmissverständliche Best Practice, um technische Schulden zu vermeiden.
- Chirurgisches Prompting mit Cursor: Wenn die KI auf spezifische Legacy-Logik zugreifen muss, ohne den neuen Kontext zu verunreinigen, ermöglicht Cursor
@file-Referenzen. Du kannst im Prompt des neuen Projekts auf eine Datei im Legacy-Projekt verweisen (z.B.@../legacy-project/src/utils/pricing-calculator.php), um die KI anzuweisen, nur die Geschäftslogik zu extrahieren und sie in den neuen Stack zu übersetzen. Du wirst dabei zum Informationsarchitekten.
Fazit
Spec-Kit und Cursor bieten zusammen eine strukturierte, transparente und skalierbare Methodik für die moderne Softwareentwicklung. Der Prozess ist dialogorientiert und erfordert von Dir eine sorgfältige Überprüfung und Verfeinerung aller generierten Artefakte. Indem Du die Prozesse (Spec-Kit) und die Intelligenz (Cursor/LLM) klar trennst, behältst Du die Kontrolle über die Architektur und stellst sicher, dass Deine KI-Agenten Anwendungen bauen, die tatsächlich Deinen Vorstellungen entsprechen.
Die generierten Dokumente (spec.md, plan.md, tasks.md) sind dabei nicht nur Anweisungen für die KI, sondern werden zu einer lebenden Dokumentation für Dein Team und sind unschätzbare Werkzeuge für Code-Reviews. Du kannst diese Spezifikationen in Zukunft wiederverwenden, selbst wenn Du den gesamten Technologiestapel wechselst.