GitHub Spec Kit iş akışlarını ve isteğe bağlı komutları inceleme
GitHub Spec Kit, belirtimleri yapay zeka kodlama yardımcılarıyla tümleştirerek belirtim temelli geliştirmeyi (SDD) sağlayan bir açık kaynak araç setidir. Gelişmiş özellikleri keşfetmeden önce temel kavramları gözden geçirelim.
GitHub Spec Kit ile ilgili temel bilgileri gözden geçirin
GitHub Spec Kit, yapay zeka destekli geliştirmede temel bir sınamayı ele alır: kodlama yardımcılarıyla birden çok etkileşimde bağlam ve tutarlılık sağlama. Üç temel özellik sağlar:
- Kalıcı yapıtlar: Belirtimler, planlar ve görevler deponuzda markdown dosyaları olarak depolanır.
- Standartlaştırılmış iş akışı: Tanımlanmış bir işlem, dört SDD aşamasında size yol gösterir: belirtim, planlama, görev dökümü ve uygulama.
- Yeniden kullanılabilir komutlar: Yerleşik eğik çizgi komutları en iyi yöntem istem desenlerini kapsüller.
Temel bileşenler
GitHub Spec Kit aşağıdaki temel bileşenleri uygular:
| Bileşen | Amaç |
|---|---|
specify CLI |
Belirtim temelli projeleri başlatır ve yönetir. |
| Markdown yapıt dosyaları |
constitution.md, spec.md, plan.md, tasks.md geliştirmeyi sürdürün. |
| Eğik çizgi komutları |
/speckit.specify, /speckit.plan, /speckit.tasks, /speckit.implement GitHub Spec Kit iş akışlarını çağır. |
Yapay zeka aracıları
GitHub Spec Kit şu yapay zeka aracılarını destekler: GitHub Copilot, Claude Code, cursor, Windsurf, Amazon Q Developer ve diğerleri. Her bir temsilci, aynı temel yapıt dosyalarını kullandığı sırada, kendi özel komut biçimine göre biçimlendirilmiş şablonlar alır.
Özellik izleme için ortam değişkenleri
GitHub Spec Kit, şu anda geliştirmekte olduğunuz özelliği izlemek için ortam değişkenlerini kullanır.
SPECIFY_FEATURE değişkeni etkin özellik dizinini gösterir.
Git tabanlı iş akışlarında GitHub Spec Kit, özelliği dalınızın adından çıkarsar. eğer feature/document-upload dalındaysanız, GitHub Spec Kit otomatik olarak features/document-upload/ dizini ile çalışır.
Git dışı iş akışları veya el ile özellik belirtimi için ortam değişkenini açıkça ayarlayın:
$env:SPECIFY_FEATURE = "001-document-upload"
Bu ayar, Git dalından bağımsız olarak, GitHub Spec Kit'e features/001-document-upload/ dizinindeki nesneleri okumasını ve yazmasını söyler.
Bu özellik izleme, /speckit.plan öğesini çağırdığınızda, yapay zekanın farklı özelliklerdeki belirtimleri karıştırmak yerine mevcut özelliğe ait doğru spec.md dosyasını okumasını sağlar.
GitHub Spec Kit'i Git iş akışlarıyla tümleştirme
GitHub Spec Kit, çeşitli mekanizmalar aracılığıyla mevcut geliştirme uygulamalarınızla tümleştirilir.
Sürüm denetimi entegrasyonu
Tüm GitHub Spec Kit yapıtları, Git deponuzda depolanan düz markdown dosyalarıdır. Bu yaklaşım çeşitli avantajlar sağlar:
Değişiklik izleme: Belirtimlerde, planlarda veya görevlerde yapılan her değişiklik bir Git işlemesi oluşturur. Gereksinim değişikliklerinin geçmişini gözden geçirebilir, kararların neden alındığını anlayabilir ve sorunlu değişiklikleri geri döndürebilirsiniz.
Dal tabanlı geliştirme: Hem belirtim yapıtlarını hem de uygulama kodunu içeren özellik dalları oluşturun. Bu yaklaşım gereksinimleri ve uygulamayı eşitlenmiş tutar ve kod gözden geçirmesini kapsamlı hale getirir. Gözden geçirenler hem ne oluşturduğunuzu (belirtim) hem de bunu nasıl oluşturduğunuzu (kod) görür.
Çekme isteği iş akışları: Bir özellik için çekme isteği gönderdiğinizde kod değişikliklerinin yanı sıra spec.md, plan.md ve tasks.md ekleyin. Gözden geçirenler uygulamanın belirtimlerle eşleşip eşleşmediğini ve belirtimlerin proje hedefleriyle uyumlu olduğunu doğrular.
Örneğin, yeni bir özellik uyguluyorsanız özellik dalınız şunları içerir:
-
spec.mdyükleme gereksinimlerini tanımlama. -
plan.mdAzure Blob Depolama mimarisini açıklama. -
tasks.mduygulama adımlarını listeleme. - Özelliği uygulayan kaynak kodu.
- Belirtim uyumluluğunu doğrulayan testler.
Bu tam resim, ayrıntılı incelemeye olanak tanır. Gözden geçirenler dosyaların neden 50 MB ile sınırlı olduğunu sorup spec.md başvurabilir ve bu gereksinimin paydaş tartışmalarından geldiğini görebilir.
Yapay zeka yardımcısı tümleştirme senaryosu - GitHub Copilot
GitHub Spec Kit, Visual Studio Code'un sohbet arabirimi aracılığıyla GitHub Copilot ile çalışır.
specify init --ai copilot komutunu çalıştırdıktan sonra, araç seti çalışma alanınızı /speckit.* komutlarını tanıyacak şekilde yapılandırır.
GitHub Copilot Sohbeti'ni açıp yazdığınızda /speckit.specify, GitHub Copilot dizinden önceden tanımlanmış şablonlara .github/prompts/ erişir. Bu şablonlar, yapay zekanın çıkışını tüm gerekli belirtim bölümlerini içerecek şekilde yapılandırmaya yardımcı olur: kullanıcı hikayeleri, kabul ölçütleri, işlevsel gereksinimler, işlev dışı gereksinimler ve uç durumlar.
Tümleştirme sorunsuzdur; şablonları el ile yönetemezsiniz. GitHub Spec Kit, şablon yükleme ve bağlam ekleme işlemlerini otomatik olarak işler. İşiniz özellik açıklamaları sağlamak ve netleştirici soruları yanıtlamaktır. GitHub Copilot, spesifikasyon biçimlendirmesi ve tamamlama işlemlerini yönetir.
Proje yapısı kuralları
GitHub Spec Kit tutarlı dizin yapısı kullanarak yapıtları düzenler:
my-project/
├── .github/
│ ├── agents/
│ └── prompts/
├── .specify/
│ ├── memory/
│ │ └── constitution.md
│ ├── scripts/
│ └── templates/
├── SourceCode/
│ └── ...
├── specs/
│ └── 001-document-upload-feature/
│ ├── plan.md
│ ├── spec.md
│ └── tasks.md
Bu yapı, belirtim yapılarını uygulama kodundan ayırırken bunları aynı depoda tutar. Özellikler, geliştirme sırasını izlemek için sırayla (001, 002, 003) numaralandırılır.
Eşzamanlı olarak birden çok özellik üzerinde çalışan ekipler için her özelliğin tam belirtimini, planını ve görevlerini içeren kendi dizini vardır. Bu yalıtım karışıklığı önler ve çakışma olmadan paralel çalışmayı etkinleştirir.
Sürekli iş akışı desteği
GitHub Spec Kit, komut zinciri aracılığıyla yinelemeli geliştirmeyi destekler. İlk belirtimleri oluşturarak bunları aşamalı olarak geliştirebilirsiniz:
- İlk belirtimi oluştur:
/speckit.specify. - Boşlukları tanımlayın:
/speckit.clarify. - Yanıtlara göre belirtimi güncelleştirin.
- Uygulama planı oluşturma:
/speckit.plan. - Tutarlılığı doğrulama:
/speckit.analyze. - Görev oluştur:
/speckit.tasks. - Adım adım uygulayın:
/speckit.implement.
Herhangi bir noktada gereksinimler değişirse önceki aşamalara dönebilir, yapıtları güncelleştirebilir ve aşağı akış yapıtlarını yeniden oluşturabilirsiniz. Proje katılımcısı, görevleri oluşturduktan sonra dosya boyutu sınırlarıyla ilgili fikrini değiştirirse, spec.md güncelleştirir, mimari etkileri yansıtacak şekilde plan.md yeniden oluşturur, güncelleştirilmiş doğrulama adımlarıyla tasks.md yeniden oluşturur ve ardından uygulama kodunu güncelleştirirsiniz.
Bu esneklik, gereksinimlerin geliştiği gerçek dünya geliştirmesini destekler. Özellik-öncelikli yaklaşım, değişikliklerin belgeleri güncelleyerek sistematik bir şekilde yayılmasını sağlar, böylece belgeler güncellenmeden koda yama yapılmaz.
GitHub Spec Kit'in isteğe bağlı geliştirme komutlarını kullanma
Temel iş akışı komutlarının ötesinde GitHub Spec Kit, belirtim kalitesini ve tutarlılığını geliştiren isteğe bağlı komutlar sağlar.
Boşluk analizi için /speckit.clarify kullan
Belirtiminizdeki belirsizlikleri, eksik ayrıntıları ve yetersiz belirtilen kenar durumlarını belirlemek için komut /speckit.clarify analiz eder. İlk belirtimi oluşturdıktan sonra yapay zekanın net sorular sormasını sağlamak için bu komutu çağırın.
Yapay zeka, belirtimlerinizi inceler ve aşağıdakiler gibi sorular oluşturur:
- "Belirtim dosya yüklemesinden bahsediyor ancak en fazla eşzamanlı yükleme belirtmiyor. Bir sınır olmalı mı?"
- Ağ hataları için hata işleme yöntemi belirtilmemiştir. Karşıya yükleme bağlantısı kesilirse ne yapılmalı?
- "Belirtim dosya doğrulaması gerektirir ancak doğrulama hatası iletilerini belirtmez. Kullanıcılar ne görmeli?"
Yapay zeka, her soru için boşluğu gidermeye yönelik çok seçenekli seçenekler sunar. Bir seçenek belirtir veya özel bir yanıt sağlarsınız ve yapay zeka belirtimi uygun şekilde güncelleştirir.
Bu etkileşimli iyileştirme, uygulama başlamadan önce sorunları yakalar. Deneyimli bir analistin belirtiminizi inceleyip kaçırdıklarınızı işaret etmesi gibi.
Tutarlılık doğrulaması için /speckit.analyze kullanma
/speckit.analyze komutu, nesneler arası tutarlılık kontrolü gerçekleştirir. Planınızın tüm belirtim gereksinimlerini uyguladığını, görevlerin tüm plan öğelerini kapsadığını ve her şeyin anayasaya uygun olduğunu doğrular.
plan.md ve tasks.md oluşturup uygulamaya başlamadan önce bu komutu çalıştırın. Yapay zeka tutarsızlıkları tanımlar:
- "Plan PostgreSQL kullanmayı önerir, ancak anayasa için Azure SQL Veritabanı gerekir."
- "Belirtim denetim günlüğü gerektirir, ancak plan günlük uygulamasını açıklamaz."
- "Görev listesi, planda bahsedilen veritabanı geçiş betiklerini atlar."
Tanımlanan her tutarsızlık, uygulama veya kod gözden geçirme sırasında ortaya çıkar. Bunları analiz aşamasında yakalamak, yeniden çalışma yapılmasını önler.
Kalite doğrulaması için /speckit.checklist kullanın
komutu, /speckit.checklist belirtiminize göre özel kalite denetim listeleri oluşturur. Bu denetim listeleri gereksinimin tamamlanmasını, netliğini ve tutarlılığını doğrulamaya yardımcı olur( örneğin" İngilizce prose için birim testleri."
Yapay zeka, belirtimlerinizi analiz eder ve doğrulama sorularının bir denetim listesini oluşturur:
- "Her kullanıcı hikayesinin karşılık gelen kabul ölçütleri var mı?"
- "Tüm hata senaryoları belirli hata iletileriyle belgelenmiş mi?"
- "İşlevsel olmayan gereksinimler ölçülebilir başarı ölçütlerini içeriyor mu?"
- "Tüm dış bağımlılıklar açıkça listeleniyor mu?"
Her soruyu yanıtlayarak denetim listesi üzerinden çalışırsınız. Herhangi bir "hayır" yanıtı, gidermeniz gereken belirtim boşluklarını gösterir.
Bu kendi kendine gözden geçirme süreci, paydaşlarla paylaşmadan veya uygulamaya geçmeden önce belirtim kalitesini artırır.
GitHub Spec Kit'i farklı geliştirme senaryolarına uygulama
GitHub Spec Kit, sıfırdan yeni özellikler oluşturmanın ötesinde çeşitli geliştirme senaryolarını destekler.
Yeşil alan geliştirme
GitHub Spec Kit, hiç yoktan başlayan yeni projeler için üst düzey ürün vizyonunu somut uygulamaya dönüştürme konusunda üstündür. Proje ilkelerini oluşturmaya başlarsınız /speckit.constitution , ardından uygulamayı yinelemeli olarak oluştururken her özellik için kullanırsınız /speckit.specify .
Bu senaryo GitHub Spec Kit'in birincil kullanım örneğidir. İş akışı, henüz var olmayan bir şey oluşturduğunuz 0-1 arası geliştirme için tasarlanmıştır.
Brownfield iyileştirmesi
Mevcut uygulamalar için GitHub Spec Kit'i kullanarak mevcut kod tabanıyla tutarlılığı korurken yeni özellikler ekleyebilirsiniz. Anayasanız mevcut mimari desenleri ve kısıtlamaları belgelemektedir. Yeni özellik belirtimleri bu yerleşik desenlere başvurur.
Belge yükleme özelliğini mevcut bir çalışan portalına eklerken belirtiminiz mevcut React ön ucu, .NET arka ucu ve Azure altyapısını kabul eder. Plan, yeni özelliğin ayrı bir uygulama önermek yerine geçerli mimariyle nasıl entegre olduğunu gösterir.
Yeniden düzenleme ve modernleştirme
GitHub Spec Kit, istenen bitiş durumunu belirtim olarak değerlendirerek yeniden düzenleme çalışmalarına yol gösterebilir. Yeniden düzenlenmiş kodun neleri başarması gerektiğini belgelersiniz (geliştirilmiş yapı ile aynı işlevsellik), yeniden düzenleme yaklaşımı için bir plan oluşturur ve artımlı değişiklikler için görevler oluşturursunuz.
Yeniden düzenlemeye yönelik bu yapılandırılmış yaklaşım, yeniden düzenlemeye başlama ve kısmen çalışan kodla işlemin ortasında kaybolma sorununu önler.
Keşif geliştirme
Birden çok olası yaklaşımı araştırdığınız durumlarda, aynı belirtimden birden çok plan oluşturmak için GitHub Spec Kit'i kullanın. Kararlı belirtim, elde etmek istediklerinizi temsil ederken, farklı planlar farklı teknik yaklaşımları keşfeder.
Azure Blob Depolama'yı kullanarak bir plan ve yine aynı yükleme özelliklerini kullanarak Azure Files ile başka bir plan oluşturabilirsiniz. Her ikisini de uygulayın, sonuçları karşılaştırın ve varsayımlar yerine gerçek deneyime göre daha iyi bir yaklaşım seçin.
Özet
GitHub Spec Kit, yapılandırılmış iş akışlarını, kalıcı yapıtları ve yeniden kullanılabilir yapay zeka komut desenlerini tümleştirerek belirtim temelli geliştirmeye olanak tanıyan güçlü bir araç setidir. Belirtimleri çalışan uygulamalara dönüştürmeye yönelik sistematik bir yaklaşım sağlayarak GitHub Copilot gibi yapay zeka kodlama yardımcılarıyla çalışma şeklinizi dönüştürür. GitHub Spec Kit'i kullanarak gereksinimler ve kodlar arasında hizalama sağlayabilir, kararların izlenebilirliğini koruyabilir ve geliştirme ekipleri arasında işbirliğini geliştirebilirsiniz.