Sprawdzanie przepływów pracy zestawu GitHub Spec Kit i opcjonalnych poleceń

Zakończone

GitHub Spec Kit to zestaw narzędzi typu open source, który umożliwia programowanie oparte na specyfikacji (SDD), integrując specyfikacje z asystentami kodowania sztucznej inteligencji. Przed rozpoczęciem eksplorowania zaawansowanych funkcji zapoznajmy się z podstawowymi pojęciami.

Zapoznaj się z podstawami zestawu GitHub Spec Kit

Zestaw Spec Kit usługi GitHub rozwiązuje podstawowe wyzwanie w opracowywaniu wspomaganym przez sztuczną inteligencję: utrzymywanie kontekstu i spójności w wielu interakcjach z asystentami kodowania. Zapewnia trzy podstawowe możliwości:

  • Trwałe artefakty: specyfikacje, plany i zadania są przechowywane jako pliki markdown w twoim repozytorium.
  • Standardowy przepływ pracy: zdefiniowany proces przeprowadzi Cię przez cztery fazy SDD: specyfikację, planowanie, podział zadań i implementację.
  • Polecenia wielokrotnego użytku: Wbudowane komendy slash zawierają najlepsze praktyki wzorcowania monitów.

Podstawowe składniki

Zestaw GitHub Spec Kit implementuje następujące podstawowe składniki:

Składnik Przeznaczenie
specify CLI Inicjuje projekty oparte na specyfikacji i zarządza nimi.
Pliki artefaktów Markdown constitution.md, spec.md, plan.md, tasks.md napędzają rozwój.
Polecenia ukośnika /speckit.specify, /speckit.plan, /speckit.tasks, /speckit.implement wywołują przepływy pracy zestawu GitHub Spec Kit.

Agenci sztucznej inteligencji

Zestaw GitHub Spec Kit obsługuje następujących agentów sztucznej inteligencji: GitHub Copilot, Claude Code, Cursor, Windsurf, Amazon Q Developer i innych. Każdy agent otrzymuje szablony sformatowane dla określonego formatu monitu podczas korzystania z tych samych podstawowych plików artefaktów.

Zmienne środowiskowe do śledzenia funkcji

Zestaw Spec Kit usługi GitHub używa zmiennych środowiskowych do śledzenia aktualnie opracowywanych funkcji. Zmienna SPECIFY_FEATURE wskazuje aktywny katalog funkcji.

W przepływach pracy opartych na Git narzędzie GitHub Spec Kit wywnioskuje funkcję z nazwy gałęzi. Jeśli korzystasz z gałęzi feature/document-upload, zestaw GitHub Spec Kit automatycznie współpracuje z katalogiem features/document-upload/ .

W przypadku przepływów pracy innych niż Git lub specyfikacji funkcji ręcznych ustaw jawnie zmienną środowiskową:

$env:SPECIFY_FEATURE = "001-document-upload"

To ustawienie nakazuje zestawowi GitHub Spec Kit odczytywanie i zapisywanie artefaktów w features/001-document-upload/ katalogu niezależnie od gałęzi Git.

To śledzenie funkcji gwarantuje, że podczas wywoływania /speckit.plan sztuczna inteligencja odczytuje prawidłowy plik spec.md dla aktualnej funkcji, a nie miesza specyfikacji z różnych funkcji.

Integrowanie zestawu GitHub Spec Kit z przepływami pracy usługi Git

Zestaw GitHub Spec Kit integruje się z istniejącymi rozwiązaniami programistycznymi za pomocą kilku mechanizmów.

Integracja kontroli wersji

Wszystkie artefakty zestawu GitHub Spec Kit to zwykłe pliki markdown przechowywane w repozytorium Git. Takie podejście zapewnia kilka zalet:

  • Śledzenie zmian: każda modyfikacja specyfikacji, planów lub zadań tworzy zatwierdzenie usługi Git. Możesz przejrzeć historię zmian wymagań, zrozumieć, dlaczego podjęto decyzje i przywrócić problematyczne zmiany.

  • Programowanie oparte na gałęziach: utwórz gałęzie funkcji zawierające artefakty specyfikacji i kod implementacji. Takie podejście zapewnia synchronizację wymagań i implementacji oraz sprawia, że przegląd kodu jest kompleksowy — recenzenci widzą zarówno to, co tworzysz (specyfikację), jak i sposób tworzenia (kodu).

  • Przepływy pracy pull requestów: Gdy przesyłasz pull request dla funkcji, dołącz spec.md, plan.md i tasks.md razem ze zmianami w kodzie. Recenzenci sprawdzają, czy implementacja jest zgodna ze specyfikacjami i czy specyfikacje są zgodne z celami projektu.

Jeśli na przykład wdrażasz nową funkcję, gałąź funkcji zawiera następujące elementy:

  • spec.md definiowanie wymagań dotyczących przesyłania.
  • plan.md opis architektury usługi Azure Blob Storage.
  • tasks.md wyświetlanie listy kroków implementacji.
  • Kod źródłowy implementuje tę funkcję.
  • Testy sprawdzające zgodność specyfikacji.

Ten pełny obraz umożliwia dokładne przeglądy. Jeśli recenzent zastanawia się, dlaczego pliki są ograniczone do 50 MB, może odwołać się do spec.md, aby zobaczyć, że to wymaganie wynika z dyskusji z interesariuszami.

Scenariusz integracji asystenta sztucznej inteligencji — GitHub Copilot

Zestaw GitHub Spec Kit współpracuje z rozwiązaniem GitHub Copilot za pośrednictwem interfejsu czatu programu Visual Studio Code. Po uruchomieniu specify init --ai copilot zestaw narzędzi skonfiguruje obszar roboczy, aby rozpoznawać polecenia /speckit.*.

Po otwarciu aplikacji GitHub Copilot Chat i wpisaniu /speckit.specify, GitHub Copilot uzyskuje dostęp do wstępnie zdefiniowanych szablonów z katalogu .github/prompts/. Te szablony ułatwiają tworzenie struktury danych wyjściowych sztucznej inteligencji w celu uwzględnienia wszystkich niezbędnych sekcji specyfikacji: scenariuszy użytkowników, kryteriów akceptacji, wymagań funkcjonalnych, wymagań niefunkcjonalnych i przypadków brzegowych.

Integracja jest bezproblemowa — nie zarządzasz szablonami ręcznie. Zestaw GitHub Spec Kit automatycznie obsługuje ładowanie szablonów i wstrzykiwanie kontekstu. Twoim zadaniem jest przedstawienie opisów funkcji i udzielenie odpowiedzi na pytania objaśniające. Usługa GitHub Copilot obsługuje formatowanie specyfikacji i kompletność.

Konwencje struktury projektu

Zestaw GitHub Spec Kit organizuje artefakty przy użyciu spójnej struktury katalogów:

my-project/
├── .github/
│   ├── agents/
│   └── prompts/
├── .specify/
│   ├── memory/
│   │   └── constitution.md
│   ├── scripts/
│   └── templates/
├── SourceCode/ 
│   └── ...
├── specs/
│   └── 001-document-upload-feature/
│       ├── plan.md
│       ├── spec.md
│       └── tasks.md

Ta struktura oddziela artefakty specyfikacji od kodu implementacji, zachowując je w tym samym repozytorium. Funkcje są numerowane sekwencyjnie (001, 002, 003) w celu śledzenia kolejności programowania.

W przypadku zespołów pracujących jednocześnie nad wieloma funkcjami każda funkcja ma własny katalog zawierający jego pełną specyfikację, planowanie i zadania. Ta izolacja zapobiega nieporozumianiu i umożliwia równoległą pracę bez konfliktów.

Ciągła obsługa przepływu pracy

Zestaw GitHub Spec Kit obsługuje iteracyjne programowanie za pomocą łańcucha poleceń. Po wygenerowaniu początkowych specyfikacji można je stopniowo uściślić:

  1. Wygeneruj początkową specyfikację: /speckit.specify.
  2. Zidentyfikuj luki: /speckit.clarify.
  3. Zaktualizuj specyfikację na podstawie odpowiedzi.
  4. Utwórz plan implementacji: /speckit.plan.
  5. Sprawdź spójność: /speckit.analyze.
  6. Generuj zadania: /speckit.tasks.
  7. Zaimplementuj przyrostowo: /speckit.implement.

W dowolnym momencie, jeśli wymagania się zmienią, możesz wrócić do wcześniejszych faz, zaktualizować artefakty i ponownie wygenerować artefakty podrzędne. Jeśli uczestnik projektu zmieni zdanie na temat limitów rozmiaru plików po wygenerowaniu zadań, zaktualizujesz spec.md, ponownie wygeneruj plan.md, aby odzwierciedlić implikacje dotyczące architektury, ponownie wygeneruj tasks.md przy użyciu zaktualizowanych kroków weryfikacji, a następnie zaktualizuj kod implementacji.

Ta elastyczność umożliwia opracowywanie w świecie rzeczywistym, w którym zmieniają się wymagania. Podejście oparte na specyfikacji zapewnia systematyczne propagowanie zmian, a nie stosowanie poprawek do kodu bez aktualizowania dokumentacji.

Korzystanie z poleceń ulepszeń opcjonalnych w GitHub Spec Kit

Poza podstawowymi poleceniami przepływu pracy zestaw Spec Kit usługi GitHub udostępnia opcjonalne polecenia, które zwiększają jakość i spójność specyfikacji.

Użyj /speckit.clarify do analizy luk

Polecenie /speckit.clarify analizuje specyfikację, aby zidentyfikować niejednoznaczności, brakujące szczegóły i nieokreślone przypadki brzegowe. Po wygenerowaniu początkowej specyfikacji wywołaj to polecenie, aby sztuczna inteligencja zadawała wyjaśnienia pytań.

Sztuczna inteligencja przegląda specyfikację i generuje pytania, takie jak:

  • "Specyfikacja wspomina o przekazaniu pliku, ale nie określa maksymalnych współbieżnych przekazań. Czy powinien istnieć limit?
  • "Nie określono obsługi błędów sieciowych. Co powinno się stać w przypadku utraty połączenia przesyłania?
  • "Specyfikacja wymaga weryfikacji pliku, ale nie określa komunikatów o błędach walidacji. Co powinni zobaczyć użytkownicy?"

W przypadku każdego pytania sztuczna inteligencja często proponuje opcje wielokrotnego wyboru, jak wypełnić lukę. Należy wybrać opcję lub podać niestandardową odpowiedź, a sztuczna inteligencja odpowiednio aktualizuje specyfikację.

Ten interaktywny proces udoskonalania wychwytuje problemy przed rozpoczęciem implementacji. To tak, jakby doświadczony analityk przeglądał swoją specyfikację i zwracał uwagę na to, czego brakowało.

Użyj /speckit.analyze do weryfikacji spójności

Polecenie /speckit.analyze wykonuje sprawdzanie spójności między artefaktami. Sprawdza, czy plan implementuje wszystkie wymagania specyfikacji, że zadania obejmują wszystkie elementy planu i że wszystko jest zgodne z konstytucją.

Uruchom to polecenie po wygenerowaniu plan.md i tasks.md, ale przed rozpoczęciem implementacji. Sztuczna inteligencja identyfikuje niespójności:

  • "Plan proponuje korzystanie z bazy danych PostgreSQL, ale konstytucja wymaga usługi Azure SQL Database".
  • "Specyfikacja wymaga logowania zdarzeń audytowych, ale plan nie opisuje implementacji logowania."
  • "Lista zadań pomija skrypty migracji bazy danych wymienione w planie".

Każda zidentyfikowana niespójność jest problemem, który pojawiłby się podczas implementacji lub przeglądu kodu. Przechwytywanie ich w fazie analizy zapobiega konieczności ponownej pracy.

Użyj listy kontrolnej /speckit.checklist w celu weryfikacji jakości

Polecenie /speckit.checklist generuje niestandardowe listy kontrolne dotyczące jakości na podstawie twojej specyfikacji. Te listy kontrolne pomagają zweryfikować kompletność wymagań, przejrzystość i spójność — na przykład "testy jednostkowe dla prozy angielskiej".

Sztuczna inteligencja analizuje specyfikację i tworzy listę kontrolną pytań weryfikacyjnych:

  • "Czy każdy scenariusz użytkownika ma odpowiednie kryteria akceptacji?"
  • "Czy wszystkie scenariusze błędów udokumentowane z określonymi komunikatami o błędach?"
  • "Czy wymagania niefunkcjonalne obejmują mierzalne kryteria sukcesu?"
  • "Czy wszystkie zależności zewnętrzne są jawnie wymienione?"

Pracujesz z listą kontrolną, odpowiadając na każde pytanie. Wszelkie odpowiedzi "nie" wskazują luki specyfikacji, które należy rozwiązać.

Ten proces samodzielnego przeglądu poprawia jakość specyfikacji przed udostępnieniem uczestnikom projektu lub przejściem do implementacji.

Stosowanie zestawu GitHub Spec Kit do różnych scenariuszy programowania

Zestaw GitHub Spec Kit obsługuje różne scenariusze programistyczne poza tworzeniem nowych funkcji od podstaw.

Rozwój Greenfield

W przypadku nowych projektów, począwszy od niczego, zestaw GitHub Spec Kit wyróżnia się w przekształcaniu wizji produktu wysokiego poziomu w konkretną implementację. Najpierw należy /speckit.constitution ustanowić zasady projektu, a następnie używać /speckit.specify dla każdej funkcji podczas iteracyjnej budowy aplikacji.

Ten scenariusz jest podstawowym przypadkiem użycia zestawu GitHub Spec Kit — przepływ pracy został zaprojektowany pod kątem programowania od 0 do 1, w którym tworzysz coś, co jeszcze nie istnieje.

Ulepszenia pola brownfield

W przypadku istniejących aplikacji można użyć zestawu GitHub Spec Kit, aby dodać nowe funkcje przy zachowaniu spójności z istniejącą bazą kodu. Twoja konstytucja dokumentuje istniejące wzorce architektury i ograniczenia. Nowe specyfikacje funkcji odwołują się do tych ustalonych wzorców.

Podczas dodawania funkcji przekazywania dokumentów do istniejącego portalu pracowników specyfikacja potwierdza istniejący fronton React, zaplecze platformy .NET i infrastrukturę platformy Azure. Plan pokazuje, jak nowa funkcja integruje się z bieżącą architekturą, a nie proponuje oddzielnej implementacji.

Refaktoryzacja i modernizacja

Zestaw Spec Kit usługi GitHub może prowadzić działania refaktoryzacji, traktując żądany stan końcowy jako specyfikację. Dokumentujesz, co powinien osiągnąć refaktoryzowany kod (ta sama funkcja z ulepszoną strukturą), utworzysz plan dla podejścia refaktoryzacji i wygenerujesz zadania dotyczące zmian przyrostowych.

Takie ustrukturyzowane podejście do refaktoryzacji zapobiega typowemu problemowi rozpoczynania refaktoryzacji i zagubienia się w połowie procesu z częściowo działającym kodem.

Rozwój eksploracyjny

W sytuacjach, w których eksplorujesz wiele potencjalnych podejść, użyj zestawu GitHub Spec Kit, aby wygenerować wiele planów na podstawie tej samej specyfikacji. Stabilna specyfikacja reprezentuje to, co chcesz osiągnąć, podczas gdy różne plany eksplorują różne podejścia techniczne.

Możesz wygenerować jeden plan przy użyciu usługi Azure Blob Storage, a drugi przy użyciu usługi Azure Files, obie z tego samego specyfikacji przesyłania. Zaimplementuj oba, porównaj wyniki i wybierz lepsze podejście na podstawie rzeczywistego doświadczenia, a nie założeń.

Podsumowanie

Zestaw Spec Kit usługi GitHub to zaawansowany zestaw narzędzi, który umożliwia programowanie oparte na specyfikacji dzięki integracji ustrukturyzowanych przepływów pracy, trwałych artefaktów i wzorców poleceń sztucznej inteligencji wielokrotnego użytku. Przekształca ona sposób pracy z asystentami kodowania sztucznej inteligencji, takimi jak GitHub Copilot, zapewniając systematyczne podejście do przekształcania specyfikacji w działające implementacje. Korzystając z zestawu GitHub Spec Kit, można zapewnić dopasowanie wymagań i kodu, zachować możliwość śledzenia decyzji i zwiększyć współpracę między zespołami deweloperów.