GitHub Copilot CLI, Node.js projesinde terminalden copilot komutuyla çalışır; projeyi okur, değişiklik önerir ve siz onayladıkça test sonuçlarına göre ilerler. Bu rehber Express/Fastify, npm scripts, ES modules, node:test veya Jest kullanan projelere göre pratik bir çalışma döngüsü kurar. Amaç, ajanı bağımsız bir kod üretici olarak değil, her adımı doğrulanabilir bir Node.js iş ortağı gibi kullanmaktır. Daha geniş komut akışı için GitHub Copilot CLI sayfasına bakabilirsiniz.
Node.js işleri için neden güçlü bir eşleşme
Node.js projeleri genellikle küçük modüller, net package.json script’leri ve hızlı test döngüsü içerir. GitHub Copilot CLI bu yapıyı iyi kullanır: npm test, npm run lint, npm run build gibi komutlar deterministiktir ve ajan her değişiklikten sonra aynı komutu çağırabilir. Express veya Fastify route’ları dosya bazlı olduğundan ajan, istenen değişikliği tek bir dosyada toplayıp diff’i küçük tutabilir. ES modules sayesinde import/export sınırları nettir; ajan yanlış içe aktarmayı hızlı fark eder. Ayrıca Node.js’in hata mesajları ve stack trace’leri ajan için yeterince bilgilendiricidir; başarısız testin nedenini bulmak için ek araç gerekmez.
Bu eşleşme özellikle veri doğrulama, request/response dönüşümü ve middleware zincirlerinde belirginleşir. Örneğin bir Express uygulamasında app.use(express.json()) sonrası gelen body parser hatalarını yakalamak, ajanın hızlıca önerdiği bir hata yakalama middleware’i ile çözülür. Fastify’da schema tabanlı doğrulama hataları da benzer şekilde ajanın ürettiği özel hata formatıyla standartlaştırılır. Test dosyaları genellikle node:test veya Jest ile yazıldığı için ajan, yeni eklenen bir route’un testini aynı kalıpta oluşturabilir. Bu da kod tabanının tutarlılığını artırır.
Projeyi ajan için hazırlama
GitHub Copilot CLI, proje kökündeki .github/copilot-instructions.md dosyasını ve yoksa AGENTS.md dosyasını okur. Node.js projesi için bu dosyada çalıştırma, test, build ve lint komutlarını; klasör yapısını; modül sistemini ve env kurallarını belirtin. package.json zaten bağlamın parçasıdır ama script’lerin ne işe yaradığını kısaca yazmak ajanın yanlış komut seçmesini engeller. Talimat dosyası yazarken genel format için CLAUDE.md nasıl yazılır? AGENTS.md ve GEMINI.md rehberi rehberindeki AGENTS.md önerilerini uyarlayabilirsiniz.
Aşağıdaki örnek, orta ölçekli bir Express API projesi için yeterli bilgiyi içerir. Dosya, projenin köküne .github/copilot-instructions.md olarak konulabilir; AGENTS.md kullanacaksanız aynı içeriği oraya taşıyın. Kritik nokta, test ve lint komutlarının tam olarak yazılmasıdır; ajan bu komutları çalıştırarak kendi ürettiği kodun doğruluğunu kontrol eder.
# Node.js proje talimatları
- Paket yöneticisi: npm; lock dosyası package-lock.json'ı koru
- Çalıştırma: npm run dev
- Build: npm run build
- Test: npm test (node:test ile)
- Lint: npm run lint
- Modüller: ES modules (import/export), .js uzantılı
- Kaynak: src/, testler: test/ veya *.test.js
- Ortam: .env.example'ı şablon al, .env'i asla commit etme
- Node sürümü: 20+
- Kural: testler geçmeden ve lint hata vermeden görevi tamamlama
Bu dosya kısa ve emredici olmalı; ajanın her görevde tekrar tekrar okuyacağı için gereksiz açıklama eklemeyin. Ayrıca proje içinde çok sayıda environment değişkeni varsa, config.js veya benzeri bir dosyayı işaret ederek ajanın bu dosyayı okumasını isteyebilirsiniz. Böylece env değişkenlerinin nerede toplandığını ve nasıl kullanıldığını bilir.
Çalışma döngüsü ve örnek istekler
Node.js projesinde verimli döngü şudur: önce ajanın mevcut kodu özetlemesini isteyin, sonra tek bir değişikliği planlatın, testi çalıştırmasını söyleyin ve diff’i inceleyin. Küçük adımlar, ajanın bağlamı kaybetmesini önler ve hata ayıklamayı kolaylaştırır. Komutun temel açılış akışı için GitHub Copilot CLI nasıl kullanılır? Adım adım rehber yazısına göz atabilirsiniz.
Aşağıdaki örnek istekler, gerçek bir Express uygulaması üzerinde test edilmiş gibidir. Her birinde dosya yolu, beklenen davranış ve çalıştırılacak komut açıkça yazılmıştır. Bu netlik, ajanın tahmin yürütmesini azaltır ve üretilen kodun kalitesini artırır.
src/app.jsvesrc/routes/altındaki tüm dosyaları oku. Express route’larının listesini çıkar, eksik hata yakalama middleware’i varsa göster.user.service.jsiçin node:test ile birim testi yaz. Önce test dosyasını oluştur, sonranpm testçalıştır ve sonucu raporla.- GET /orders akışını incele. Veritabanı sorgusunu basit bir bellek önbelleği ile sarmala, önbellek süresini .env’den al, sonra ilgili testi güncelle.
- package.json scripts bölümüne
lintekle; eslint kullanılıyorsa eksik config dosyasını oluştur venpm run lintçalıştır. - Üretim ortamında
NODE_ENV=productioniken detaylı stack trace döndüren hata middleware’ini sadeleştir; testleri çalıştır.
İsteklerde dosya yolu ve beklenen komutu net vermek, ajanın tahmin etmesini azaltır. Ayrıca görevi tek seferde büyük bir refactor olarak değil, yukarıdaki gibi küçük parçalara bölmek, hata durumunda geri dönüşü kolaylaştırır.
Node.js’te iyi gittiği işler ve izlenmesi gereken tuzaklar
GitHub Copilot CLI özellikle route ekleme, middleware yazma, schema doğrulama, test yazma ve package.json script düzenleme gibi tek dosyalık ve iyi tanımlı işlerde rahattır. node:test veya Jest ile test tamamlama, env değişkeni ekleme, basit refactor gibi görevlerde diff küçük kalır. Aşağıdaki tablo sık görevler için doğrudan kullanılabilir istek örnekleri gösteriyor.
| Görev | İyi prompt |
|---|---|
| Fastify route ekleme | “src/routes/users.js dosyasına GET /users/:id route’unu ekle; 404 ve 400 hatalarını açık döndür; npm test çalıştır.” |
| Jest test tamamlama | “orders.service.js için Jest testini genişlet; stok yetersiz senaryosunu ekle, npm test ile doğrula.” |
| Env şeması güncelleme | “.env.example’a REDIS_URL ekle; config yükleme kodunu oku ve eksik değişkende erken hata ver.” |
| npm script düzenleme | “package.json içindeki start script’ine NODE_OPTIONS=--enable-source-maps ekle; npm run start kontrolü yap.” |
Ancak Node.js’e özgü tuzaklarda dikkatli olun. Ajan, async/await hatalarını yakalamadan bırakabilir; unhandled rejection üretimde process’i düşürür. ESM ile CommonJS karışımı projelerde require ve import geçişlerini yanlış yapabilir. .env dosyasını commit etmek veya test sırasında gerçek ağ çağrısı bırakmak sık görülür. package-lock.json’da gereksiz değişiklikler olabilir; diff’i incelerken sadece amaçlanan paketlerin değiştiğinden emin olun. Jest ve node:test aynı projede karışıyorsa ajan yanlış runner komutu seçebilir; talimat dosyanızda tek test runner belirtin.
Ayrıca ajan bazen mevcut kod tabanındaki stil ve mimari desenleri göz ardı edebilir. Örneğin proje dependency injection kullanıyorsa ajan doğrudan singleton modülü import edip test edilemez kod üretebilir. Bu durumda görevi verirken mevcut desenlere uymasını açıkça isteyin. Benzer şekilde, Express 5 veya Fastify 4 gibi belirli sürüm farkları da ajanın önerilerini etkileyebilir; paket sürümlerini talimat dosyanızda sabitlemek iyi olur.
Test ve doğrulama
Node.js projesinde ajanın her önerisinden sonra testleri siz çalıştırmak zorunda değilsiniz; isterseniz ajanın kendisi çalıştırır. Ancak bunu her görevde açıkça isteyin: npm test veya belirli bir dosya için node --test test/orders.test.js komutu küçük geri bildirim döngüsü sağlar. Ajanın test çıktısını yorumlamasına izin verin; başarısız assertion’ı düzeltmek için diff üretmesini isteyin. Lint ve build adımlarını da atlamayın. .env değişikliklerinde agent’ın ürettiği örneği kendi ortamınıza göre doldurun ve gerçek secret’ları ajanla paylaşmayın.
Doğrulama sürecinde ajanın ürettiği diff’i satır satır incelemek önemlidir. Özellikle güvenlikle ilgili değişikliklerde (örneğin JWT doğrulama, rate limiting, input sanitization) ajanın önerdiği kodu kendi bilginizle sorgulayın. Ajan testleri çalıştırmadan önce mevcut testlerin geçtiğinden emin olun; bazen ajan kendi eklediği testleri geçse de mevcut testleri bozabilir. Bu yüzden tam test koşusunu (npm test) her zaman isteyin.
Birden fazla ajanla Node.js projesi yürütmek: AgentVera
Node.js projesinde birden fazla ajanı paralel çalıştırmak isterseniz AgentVera, GitHub Copilot CLI dahil gerçek CLI araçlarını ayrı terminal panellerinde yan yana çalıştırır. Her ajan kendi git worktree’sinde çalışabildiği için route, servis ve test dosyalarını birbirinin üzerine yazmaz. Görev bitince ikinci bir modelin yaptığı otomatik kod incelemesi, async hata yakalama gibi Node.js’e özgü kusurları file:line ile gösterir. Checkpoint’ler sayesinde yanlış bir refactor’ı tek tıkla geri alıp oturumu adım adım yeniden oynatabilirsiniz; bu özellikle package.json ve bağımlılık değişikliklerinde güven verir.
Sonuç
GitHub Copilot CLI, doğru proje talimatları ve küçük doğrulama adımlarıyla Node.js geliştirmeyi hızlandırır. Express/Fastify route işleri, npm script düzenlemeleri ve test tamamlama gibi görevlerde ajanı güvenle kullanabilirsiniz. Her diff’i inceleyip testleri çalıştırdığınız sürece, Node.js’in asenkron yapısından kaynaklanan hataları erkenden yakalarsınız.