Przejdź do głównej zawartości

Proces PRD w Cursorze zamienia dokument wymagań produktowych w dwa zacommitowane pliki i serię commitów: spec.md z ponumerowanymi kryteriami akceptacji, plan.md przygotowany w Plan Mode z listą zadań oraz po jednym commicie na zadanie z dowodem z testów. Każde zadanie startuje w nowym czacie, który czyta plan.md, więc kilkudniowa funkcja przetrwa zamknięte czaty i da się ją sprawdzić względem kryteriów.

Twój product manager wrzuca dwustronicowy PRD systemu powiadomień: e-mail i push, preferencje per typ, śledzenie dostarczenia. Prosisz agenta Cursora, żeby to zbudował, a po jednym popołudniu masz pół serwisu e-mailowego, schemat bazy, na który nikt się nie zgodził, i żadnego sposobu, by powiedzieć, któremu wymaganiu służy która zmiana. Ta strona jest dla programistów, którzy mają już reguły projektu i stoją przed funkcją za dużą na jeden czat, oraz dla tech leadów, którzy chcą przejrzeć plan, zanim powstanie kod.

  • Prompt, który czyta PRD pod kątem luk i zapisuje spec.md z ponumerowanymi, testowalnymi kryteriami akceptacji.
  • Prompt do Plan Mode, który tworzy listę zadań, w której każde zadanie wskazuje swoje pliki, kryteria i polecenie, które je dowodzi.
  • Prompt na jedno zadanie w czystym czacie, dzięki czemu długie rozmowy przestają odpływać od planu.
  • Kontrolę identyfikowalności (traceability), która dowodzi, że każde kryterium ma test, który potrafi nie przejść. To zastępuje czytanie całego diffu.
  • Sposób na zmianę planu w połowie pracy bez utraty zapisu, dlaczego ją wprowadzono.

Sięgnij po tę stronę, gdy funkcja nie mieści się w jednym czacie. Jeśli opiszesz ją pięcioma kryteriami akceptacji i skończysz za jednym posiedzeniem, wystarczy krótsza pętla z przewodnika zbuduj swoją pierwszą funkcję z pomocą AI.

SygnałPętla w jednym czacieProces PRD
Kryteria akceptacjiMniej więcej do pięciu, spisane przez ciebieWięcej, niż utrzymasz w głowie, albo spisane przez kogoś innego
SesjeJedno posiedzenieKilka dni albo kilka osób
Gdzie żyje planW czacieW plan.md, zacommitowanym i przejrzanym
Kto zatwierdza planTyTy, a do tego product owner (kryteria) i tech lead (zmiany o wyższym ryzyku)

Nazwy plików pochodzą z łańcucha artefaktów, którego używa cały serwis: PRD pełni rolę intent.md, kryteria akceptacji trafiają do spec.md, a plan z zadaniami do plan.md. Do tego przewodnika nie potrzebujesz całego łańcucha, tylko dwóch ostatnich plików.

  1. Zacznij od czystego drzewa roboczego na gałęzi funkcji, z jednym katalogiem na jej dokumenty. W terminalu:

    Okno terminala
    git status --short # must print nothing
    git switch -c feat/notifications
    mkdir -p docs/features/notifications
  2. Zapisz PRD jako docs/features/notifications/prd.md. Jeśli PRD jest zgłoszeniem na GitHubie, agent może je przeczytać przez serwer GitHub MCP. Dodaj go do ~/.cursor/mcp.json, czyli pliku na poziomie użytkownika, którego nigdy nie commitujesz, token trzymaj w zmiennej środowiskowej, a serwer ustaw tylko do odczytu, bo do przeczytania PRD nie potrzebujesz narzędzi zapisu:

    {
    "mcpServers": {
    "github": {
    "url": "https://api.githubcopilot.com/mcp/",
    "headers": {
    "Authorization": "Bearer ${env:GITHUB_PAT}",
    "X-MCP-Toolsets": "context,repos,issues",
    "X-MCP-Readonly": "true"
    }
    }
    }
    }

    Jeśli twoja wersja Cursora nie rozwija ${env:GITHUB_PAT} (tę interpolację sprawdzono tylko na podstawie fragmentu dokumentacji), wklej sam token i trzymaj ~/.cursor/mcp.json poza każdym repozytorium.

    Zakresy tokenu i ustawienia tylko do odczytu opisuje przewodnik po serwerze GitHub MCP, a pozostałe serwery konfiguracja MCP w Cursorze.

  3. Sprawdź, że testy, sprawdzanie typów i lint uruchamiasz każdy jednym poleceniem. Ten przykład używa npm test, npm run typecheck i npm run lint. Każde zadanie w planie kończy się jednym z tych poleceń, więc brak któregoś blokuje cały proces; zobacz jak przygotować kod pod agenta.

PRD opisuje, czego chce product owner. Agent potrzebuje stwierdzeń, które da się przetestować. Pierwszy prompt przekłada jedno na drugie i wypisuje, czego PRD nie rozstrzyga, zamiast pozwolić agentowi zgadywać. Uruchom go w nowym, zwykłym czacie agenta zamiast w Plan Mode, żeby agent od razu zapisał spec.md.

Przeczytaj spec.md uważnie. To jedyny dokument w tym procesie, który czytasz linijka po linijce, bo wszystkie późniejsze kontrole mierzą się właśnie z nim. Szukaj trzech wad:

  • Mglistych kryteriów. Przy „Użytkownicy zarządzają preferencjami” żaden test nie może paść. „Użytkownik może wyłączyć e-mail dla typu comment i potem żaden e-mail tego typu nie trafia do kolejki” — może.
  • Brakujących ścieżek błędów. PRD rzadko mówi, co się dzieje, gdy dostawca e-maili nie odpowiada. Dodaj na to kryterium albo wpisz sprawę do Open questions.
  • Kryteriów bez źródła w PRD. Agent dopisał wymaganie, o które nikt nie prosił. Usuń je albo uzyskaj akceptację product ownera.

Wyślij product ownerowi spec.md, nie czat. Jego akceptacja kryteriów to pierwsze zatwierdzenie. Potem zacommituj plik:

Okno terminala
git add docs/features/notifications && git commit -m "docs: notifications spec (AC1-AC9)"

Pełną metodę opisuje przewodnik kryteria akceptacji, których agent nie zrozumie opacznie.

Otwórz nowy czat i przełącz agenta w Plan Mode (Shift+Tab przełącza kolejne tryby), który tworzy plan implementacji, zanim napisze jakikolwiek kod. Nowy czat ma znaczenie: rozmowa z fazy 1 przechowuje twoje odpowiedzi jako historię czatu, a spec.md jako plik. Planuj na podstawie pliku.

Zanim zaakceptujesz plan, przejdź przez tę listę kontrolną:

  • Każde kryterium ze spec.md ma co najmniej jedno zadanie i jeden nazwany test. Kryterium bez zadania to wymaganie, które nie trafi na produkcję.
  • Każde zadanie wymienia swoje pliki. Zadanie „zaktualizuj odpowiednie serwisy” nie ma zakresu, który sprawdzisz przez git diff --stat.
  • Pierwsze zadanie daje coś, co da się przetestować samodzielnie, na przykład migrację z testem, a nie szkielet wszystkich warstw naraz.
  • Nowe pliki trzymają się wzorców, które agent według własnych słów przeczytał. Nowa biblioteka kolejek albo drugi klient HTTP to pytanie do rozstrzygnięcia teraz, a nie po instalacji.

Poprawiaj plan w tym samym czacie („Użyj istniejącego runnera z jobs/, a nie nowej kolejki”), aż lista kontrolna przejdzie. Poprawka na tym etapie kosztuje jedno zdanie. Ta sama poprawka po trzech zadaniach kosztuje przepisanie kodu.

Zapisz plan tam, gdzie przeczyta go recenzent i kolejne czaty

Dział zatytułowany „Zapisz plan tam, gdzie przeczyta go recenzent i kolejne czaty”

Plan, który istnieje tylko w czacie albo tylko na twoim komputerze, znika przy następnej sesji i jest niewidoczny dla recenzenta. Po akceptacji planu poproś agenta, żeby zapisał wersję ostateczną jako docs/features/notifications/plan.md obok spec.md, zanim przełączysz tryb: przełączenie zaczyna nowe okno kontekstu (pomoc Cursora, sprawdzone 2026-10-12), więc plan, który istnieje tylko w czacie, nie pójdzie za tobą. Potem zacommituj plik. Zacommitowany plik powinien wyglądać tak:

# Plan: notifications (spec: ./spec.md)
## Tasks
- [ ] T1 Migration: notification_preferences table.
Files: db/migrations/0042_notification_prefs.sql, db/prefs.test.ts
Covers: AC2 · Proof: npm test -- db/prefs.test.ts
- [ ] T2 Preferences API: GET/PUT /api/notification-preferences.
Files: src/api/preferences.ts, src/api/preferences.test.ts
Covers: AC1, AC2 · Needs: T1 · Proof: npm test -- src/api/preferences.test.ts
## Proof
npm test && npm run typecheck && npm run lint

Przy funkcji o wyższym ryzyku otwórz szkic pull requesta, który zawiera tylko spec.md i plan.md, i poproś tech leada o przegląd. Recenzent, który zaakceptował plan przed powstaniem kodu, później sprawdza kod względem uzgodnionej listy, a nie własnych domysłów, o co ci chodziło.

Wykonuj zadania po kolei, już poza Plan Mode. Każde zadanie dostaje nowy czat, który startuje od plan.md, więc agent pracuje według uzgodnionego planu, a nie końcówki długiej rozmowy.

Po każdym zadaniu sprawdź zakres i zacommituj zmiany przed następnym czatem:

Okno terminala
git diff --stat # only the files the task lists, plus plan.md
git add -A && git commit -m "feat(notifications): T2 preferences API (AC1, AC2)"

Commit jest twoim punktem powrotu. Jeśli agent zboczy z kursu, wróć do niego przez git restore . i git clean -fd, a potem powtórz prompt z wypisaną listą plików. Gdy zadania nie dzielą plików, możesz je uruchomić równolegle w osobnych worktree. Rób to dopiero wtedy, gdy pętla z jednym zadaniem stanie się rutyną.

Udowodnij zgodność ze specyfikacją bez czytania każdej linijki

Dział zatytułowany „Udowodnij zgodność ze specyfikacją bez czytania każdej linijki”

Testy napisane przez agenta, które przechodzą, dowodzą tylko tego, że kod zgadza się z tymi testami. Zanim otworzysz pull request, każ agentowi pokazać, że każde kryterium ma test, który pada, gdy zachowanie się psuje.

Wartość no w tej kolumnie to prawdziwe znalezisko: kryterium nie ma testu, który mógłby paść. Poproś o taki test i powtórz audyt. Resztę dowodów zbierz samodzielnie:

  1. Uruchom w terminalu sekcję Proof z planu i potwierdź, że przechodzi na czystym checkoucie:

    Okno terminala
    npm test && npm run typecheck && npm run lint
  2. Porównaj zakres zmian z planem. Każdy plik z tej listy powinien występować w którymś zadaniu:

    Okno terminala
    git diff --stat main...HEAD
  3. Sprawdź, że po drodze nie osłabiono żadnego testu:

    Okno terminala
    git diff main...HEAD -- '*.test.ts' | grep -E '^-.*expect\(|^\+.*\.(skip|only)\('

    Pusty wynik to ten, na który czekasz. Ochrona wyroczni testowej pokazuje, jak wymusić to w CI zamiast ręcznie.

  4. Otwórz pull request z odnośnikami do spec.md, plan.md i tabeli pokrycia w opisie. Jeśli twój zespół używa Bugbota, przejrzy on pull request pod kątem błędów, problemów z bezpieczeństwem i jakością kodu. Traktuj jego uwagi jako materiał dla recenzenta, a nie jako bramkę.

Kto zatwierdza: product owner zaakceptował kryteria w fazie 1, a recenzent akceptuje teraz trzy rzeczy: każde kryterium ma test, który padł po zepsuciu kodu, zakres zgadza się z planem, a bramki przechodzą. Czytanie kodu zostaje dla tego, czego dowody nie obejmują, na przykład kontroli uprawnień w API preferencji. Gdzie przebiega ta granica, wyjaśnia strona dowody zamiast czytania diffów.

Product ownerzy zmieniają zdanie po zadaniu T3. Nie zaczynaj od łatania kodu. Zmień specyfikację, potem plan, a dopiero potem kod, żeby zapis pozostał prawdziwy.

Zmianę specyfikacji i planu zacommituj osobno, z powodem w opisie commita. Potem wróć do promptu na jedno zadanie. Recenzent widzi teraz, dlaczego zniknęło T5, czego sam diff kodu nigdy nie pokaże. Jak utrzymać specyfikację jako źródło prawdy na dłuższą metę, opisuje spec-driven development.

ObjawPrawdopodobna przyczynaJak naprawić
Plan jest ogólnikowy: „przygotuj warstwę serwisów”, „dodaj testy”spec.md ma mgliste kryteria albo prompt planu nie wymagał plików i dowodu dla każdego zadaniaDoprecyzuj kryteria w spec.md i uruchom prompt planu ponownie w nowym czacie
Agent robi dwa zadania narazPrompt nie mówił „tylko pierwsze niezaznaczone zadanie” albo czat jest długigit restore . do ostatniego commita, nowy czat i prompt na jedno zadanie bez zmian
Plan wymyśla kolejkę, klienta albo tabelę, które już maszAgent nie przeczytał twojego kodu albo reguły nie opisują konwencjiPoproś o listę przeczytanych plików, popraw plan i dopisz konwencję do reguły projektu
Pola wyboru w plan.md są zaznaczone, a polecenie Proof nie przechodziAgent zaznaczył pole, zanim test przeszedłOdznacz je, uruchom polecenie Proof samodzielnie i za dowód uznawaj tylko wynik z własnego terminala
Otwarte pytanie zostaje rozstrzygnięte w kodzieNikt nie wpisał odpowiedzi do spec.mdZatrzymaj pracę, zapisz odpowiedź w spec.md razem z product ownerem i sprawdź względem niej zadanie, którego dotyczy
Agent kręci się w kółko wokół jednego testuNieudane próby w czacie ciągną kolejną w tę samą stronęWróć do ostatniego commita i otwórz nowy czat z własną diagnozą; zobacz wychodzenie z błędów w Cursorze

Korzystasz też z innego agenta? Ten sam proces od PRD do planu w terminalu opisuje strona proces PRD w Claude Code, a wersję pętli „najpierw plan, potem budowa” w Codeksie znajdziesz w przewodniku twoje pierwsze zadanie w Codeksie. Procedurę zespołową dla każdego pliku opisują strony etapów Design i Build.

Czy ten artykuł Ci pomógł?

Jedno kliknięcie, bez logowania.

wcale bardzo