Artykuły

Rozwój sterowany specyfikacją z Claude Code i Cursor

Claude Code to agentowe narzędzie do programowania, które czyta bazę kodu, edytuje pliki i uruchamia polecenia. Cursor to edytor, którego reguły projektu są w .cursor/rules jako pliki .mdc. Rozwój sterowany specyfikacją (SDD) to praktyka pisania specyfikacji przed kodem i traktowania specyfikacji jako źródła prawdy. Dokument wymagań produktu (PRD) to proza, która określa problem i zakres, zanim praca zostanie podzielona na zadania. W SpecScore specyfikacja funkcji to plik jednej możliwości produktu, wymaganie (REQ) to nazwana reguła wewnątrz tej funkcji, a kryterium akceptacji (AC) to opcjonalny abstrakcyjny warunek, który wskazuje jedną lub więcej z tych reguł. Ciągła integracja (CI) to automatyczne sprawdzenie przy każdej proponowanej zmianie. Sprawdzenie jest poleceniem interfejsu wiersza poleceń (CLI), specscore spec lint, z CLI w specscore/specscore-cli. Specyfikacje Cursora na tej stronie to ten plik funkcji razem z regułą projektu Cursor, która każe agentowi zlintować ten plik.

Ostatnia aktualizacja: 6 listopada 2026

Co trafia do funkcji, a co do pliku agenta

Plik funkcji zawiera obowiązek. README funkcji pod spec/features/ zawiera reguły #### REQ: i kryteria ### AC:. Wypełniony kształt, plan i zadanie to szablon PRD w Markdown. specscore spec lint sprawdza ten kształt: nagłówki, wymagane sekcje, wiersze indeksu i odwołania. Nie rozstrzyga, czy pomysł na produkt jest dobry. Lintowanie specyfikacji w CI to dłuższy opis tego polecenia.

Plik agenta zawiera instrukcje dla jednego narzędzia. Przegląd Anthropic mówi, że CLAUDE.md to plik Markdown w katalogu głównym projektu, który Claude Code czyta na początku każdej sesji. Dokumentacja reguł Cursor mówi, że reguła projektu to plik .mdc w .cursor/rules i że zwykły plik .md w tym katalogu jest ignorowany, bo nie ma frontmatter. Te pliki mówią agentowi, jak pracować w repozytorium. Nie są specyfikacją, którą sprawdza linter. Wymaganie, które istnieje tylko w CLAUDE.md albo tylko w .cursor/rules/specscore.mdc, jest niewidoczne dla specscore spec lint.

Co zapisuje specscore agent setup

README CLI mówi, że specscore agent setup zapisuje plik instrukcji każdego agenta i, tam gdzie ten agent ma katalog skilli, kopiuje do niego pakiety skilli SpecScore. Polecenie pomija istniejący plik, chyba że podasz --force. Kontraktem jest funkcja agent-setup w specscore/specscore-cli.

Ten kontrakt mapuje id caller claude na CLAUDE.md i .claude/skills/, a id caller cursor na .cursor/rules/specscore.mdc i .cursor/skills/. Uruchom polecenie w projekcie, który ma już specscore.yaml. Jeśli tego pliku brakuje, polecenie kończy się kodem 6, a komunikat sugeruje specscore init. Jedno wywołanie, które nazywa obu agentów, to specscore agent setup claude,cursor. Funkcja mówi, że lista rozdzielona przecinkami jest tym samym co osobne argumenty. Katalogi nadrzędne są tworzone. Każda ścieżka jest zgłaszana jako dodana, zmodyfikowana albo pominięta.

Wygenerowany CLAUDE.md zawiera tytuł projektu, przykłady CLI, które przekazują --caller claude, oraz linię instalacji /plugin install specscore@specscore. Plik Cursor to Markdown z frontmatter YAML. Frontmatter zawiera description i alwaysApply: true. Tabela reguł Cursor mówi, że alwaysApply: true oznacza, że reguła jest dołączana do każdego czatu. --no-skills zapisuje pliki instrukcji i nie kopiuje pakietów skilli. Ta sama tabela kontraktu wymienia też codex, copilot, antigravity.google, pi.dev, opencode oraz deepseek. Ta strona trzyma się dwóch agentów z tytułu.

Zapisuje pliki Claude Code i Cursor. Uruchom to z projektu, który ma specscore.yaml.
specscore agent setup claude,cursor
Ścieżki, które kontrakt przypisuje identyfikatorom claude i cursor. Katalogi skilli nie są tworzone, gdy podasz --no-skills. Istniejący plik zostaje bez zmian, chyba że podasz --force.
CLAUDE.md
.claude/skills/
.cursor/rules/specscore.mdc
.cursor/skills/

Plik instrukcji wskazuje drzewo funkcji. Nie zastępuje go. Po setup Claude Code nadal musi czytać spec/features/, a reguła Cursor nadal musi wskazywać to samo drzewo. Specyfikacja funkcji pozostaje dokumentem, który specscore spec lint przyjmuje albo odrzuca.

Uruchamianie specscore spec lint w pętli

Najpierw zainstaluj CLI. Metody instalacji są na stronie instalacji. Potem trzymaj funkcję i linter w tej samej pętli co agent.

Napisz funkcję przed promptem

Dodaj README funkcji, wiersz indeksu funkcji i specscore.yaml, używając szablonu PRD. Każdy obowiązek umieść pod ## Behavior jako #### REQ: {slug}. Skieruj kryteria akceptacji na te identyfikatory przez **Requirements:**. CLAUDE.md i .cursor/rules/ zostaw na następny krok.

Zlintuj, zanim agent zmieni kod

Uruchom specscore spec lint w repozytorium. Czyste drzewo wypisuje 0 violations found i kończy się kodem 0. Raport niepowodzenia — plik, wiersz, ważność, reguła, komunikat — jest w Lintowanie specyfikacji w CI. Poprawiaj funkcję, aż to polecenie będzie czyste. Agent, który startuje od funkcji już odrzuconej przez linter, skopiuje zepsuty kształt.

Skieruj Claude Code i Cursor na drzewo

Uruchom specscore agent setup claude,cursor. Przeczytaj dodane CLAUDE.md i .cursor/rules/specscore.mdc i potwierdź, że nazywają drzewo specyfikacji i CLI, w tym --caller. Jeśli którykolwiek z tych plików już istniał, polecenie go pomija. Podaj --force tylko wtedy, gdy chcesz zastąpić ten plik.

Poproś o zadanie, które nazywa kryterium

W sesji agenta nazwij funkcję i kryterium akceptacji, które praca ma spełnić. Zadanie planu robi to przez **Verifies:** i identyfikator kryterium akceptacji. Poproś agenta, żeby przed końcem znowu uruchomił specscore spec lint i żeby zmienił plik funkcji, gdy zmienia się zachowanie. Plik instrukcji mówi agentowi, żeby uruchomił polecenie. Plik funkcji jest tym, co polecenie sprawdza.

Skille, które udostępniają lint, feature i task

Linie instalacji w README CLI dla wtyczki opakowującej to /plugin marketplace add specscore/ai-marketplace oraz /plugin install specscore@specscore. Repozytorium wtyczki to specscore/ai-plugin-specscore, na licencji MIT. Jego README skilli mówi, że użytkownicy wywołują /specscore:<skill-name>. Dostarczone wrappery obejmują /specscore:spec, który opakowuje specscore spec lint; /specscore:feature, który opakowuje specscore feature (list, info, tree, deps, refs, new oraz change-status); oraz /specscore:task, który opakowuje specscore task. /specscore:change-status obejmuje zmiany statusu funkcji i idei. Strona CLI Skills na tej witrynie jest tym wrapperem. specscore agent setup kopiuje te pakiety skilli do .claude/skills/ i .cursor/skills/, chyba że podasz --no-skills.

README wtyczki mówi, że Cursor nie ma polecenia zdalnej instalacji i wczytuje skille z .cursor/skills/ w projekcie albo z ~/.cursor/skills/. Ręczna kopia, którą pokazuje, to git clone ai-plugin-specscore oraz cp -R skills/* do .cursor/skills/. specscore agent setup cursor to polecenie, które robi tę kopię za ciebie, z marketplace, który nazywa specyfikacja funkcji.

SpecStudio Skills to prowadzony przepływ pracy. Repozytorium to specscore/specstudio-skills, na licencji MIT. Linia instalacji Claude Code w jego README to /plugin install specstudio@specscore, i mówi, że Claude Code instaluje wtyczkę specscore jako zależność. Sekcja statusu podaje wersję 0.0.7 i mówi, że skille ideate, specify, plan, implement, verify oraz recap są wystarczająco aktywne do dogfood. Tabela inwentarza tego samego README dokumentuje specstudio:ideate i specstudio:specify szczegółowo. Te skille zapisują artefakty SpecScore. Nie zastępują specscore spec lint.

To samo polecenie w CI

dogfood.yml w specscore/specscore ustawia SPECSCORE_VERSION na v0.39.1 i uruchamia specscore spec lint na pull requestach i przy pushach do main. Fragment workflow i raport tekstowy są w Lintowanie specyfikacji w CI. Funkcja, która psuje nagłówek, powoduje niepowodzenie tego joba, niezależnie od tego, czy plik napisał Claude Code, czy Cursor. Pętla agenta i CI wywołują to samo polecenie.

Licencja formatu to CC BY 4.0 w specscore/specscore. Licencja CLI to Apache-2.0 w specscore/specscore-cli.

Inne narzędzia rozwoju sterowanego specyfikacją publikują inne sprawdzenia. Zdania poniżej używają tylko tego, co mówią własne strony tych projektów. Przegląd narzędzi zapisuje te same strony jako czytane 30 października 2026, poza stroną główną dokumentacji Spec Kit, która drukuje 28 września 2026.

OpenSpec dokumentuje openspec validate w swojej referencji CLI. To polecenie sprawdza strukturę change i spec OpenSpec. Nie sprawdza nagłówka SpecScore ### AC:.

README Task Master opisuje parsowanie PRD na zadania za pomocą task-master parse-prd. Nie opisuje lintera dla tego PRD.

GitHub Spec Kit opisuje przepływ pracy agenta, którego fazy zapisują artefakty Markdown. Ta strona główna dokumentacji nie opisuje polecenia, które lintuje README funkcji SpecScore w CI.

Najczęstsze pytania

Czym jest Claude Code spec-driven development?

To zapisanie funkcji SpecScore, zanim Claude Code napisze kod, a potem trzymanie CLAUDE.md jako pliku instrukcji, który wskazuje tę funkcję. Funkcja mieści wymagania (REQ) i kryteria akceptacji (AC). specscore spec lint sprawdza funkcję. specscore agent setup claude zapisuje CLAUDE.md w projekcie, który ma już specscore.yaml.

Gdzie trafiają specyfikacje Cursora?

Obowiązek produktu trafia do README funkcji pod spec/features/. Reguła projektu Cursor trafia do .cursor/rules/specscore.mdc. Pliki skilli trafiają do .cursor/skills/. specscore agent setup cursor zapisuje regułę i, chyba że podasz --no-skills, kopiuje pakiety skilli. Własna dokumentacja Cursor jest źródłem tego, jak stosowane są reguły .mdc.

Czy CLAUDE.md zastępuje specyfikację funkcji?

Nie. CLAUDE.md jest tym, co Claude Code czyta jako instrukcje. README funkcji jest tym, co specscore spec lint sprawdza. Funkcja agent-setup mówi, że wygenerowany plik uczy agenta drzewa specyfikacji i poleceń CLI. Nie mówi, że plik instrukcji jest specyfikacją.

Co jeśli CLAUDE.md albo reguła Cursor już istnieje?

Polecenie pomija istniejący plik i wypisuje wiersz pominięcia, który wspomina --force. Istniejące bajty zostają. Podaj --force tylko wtedy, gdy chcesz zastąpienia. Ta sama reguła pominięcia dotyczy pliku skilla, który już istnieje.

Który skill uruchamia linter?

W README skilli wtyczki /specscore:spec opakowuje specscore spec lint. To polecenie CLI możesz też uruchomić sam, w sesji agenta albo w CI. /specscore:feature i /specscore:task opakowują polecenia funkcji i zadania. Same nie lintują.

Czy linter ocenia prozę?

Nie. specscore spec lint sprawdza strukturę. Lintowanie specyfikacji w CI pokazuje raport. Czyste sprawdzenie struktury nie jest przeglądem produktu.

Źródła

Zachowanie agent-setup to kontrakt w specscore-cli spec/features/cli/agent/setup/README.md na main, czytany 6 listopada 2026. Nazwy skilli pochodzą z ai-plugin-specscore skills/README.md na main, czytanego tego samego dnia. Linia instalacji SpecStudio i lista statusu wersji 0.0.7 pochodzą z specstudio-skills README.md na main, czytanego tego samego dnia. Opis Claude Code i zdanie o CLAUDE.md pochodzą z code.claude.com/docs/en/overview. Ścieżki reguł projektu Cursor pochodzą z cursor.com/docs/rules. dogfood.yml w tym repozytorium przypina SPECSCORE_VERSION do v0.39.1. Strony konkurentów to te powiązane poniżej; przegląd narzędzi zapisuje je jako czytane 30 października 2026, poza stroną główną dokumentacji Spec Kit, która drukuje 28 września 2026.

Zlintuj specyfikację, którą agent zaraz zakoduje.

Have an idea how to improve this page?