Visual Studio Agent Skills: Copilot’a Takımınızı Öğretmek
Bi saniye — Geçen hafta Logosoft’ta bir müşteride tuhaf ama tanıdık bir sahne yaşadık. Müşterinin senior developer’ı bana döndü ve şöyle dedi: “Aşkın bey, biz Copilot’a her seferinde aynı şeyleri anlatmaktan yorulduk (ilk duyduğumda inanamadım). Bir build pipeline’ı tetikle, şu standartlara göre kod üret, bug report’u şu template’e göre yaz…” Aynısını bir önceki müşteride de duymuştum. Bir önceki müşteride de. Yanı mesele net: Copilot’a takımın çalışma şeklini öğretmek. Peki neden bu kadar zor? Çünkü herkes aynı şeyi farklı cümlelerle söylüyor, Copilot da hâliyle bazen anlıyor gibi yapıp başka yere kayıyor.
İşte tam da burada Visual Studio tarafında yeni gelen bir şey var: Agent Skills. Açık konuşayım, ilk duyduğumda ben de “yine bir marketing özelliği” diye düşündüm. Sonra bir solution’da denedim, bak şimdi — fikir biraz değişti; öyle boş paket değilmiş, baya iş görüyor. Anlatayım.
Agent Skills Tam Olarak Ne İşe Yarıyor?
Kısaca, yeniden kullanılabilir talimat setleri. Bir kere yazıyorsunuz, sonra aynı iş tekrar gelince agent o tarafa dönüp bakıyor; yanı her seferinde prompt’u baştan kurcalamıyorsunuz. Fena değil.
Mesela build pipeline çalıştırmak, boilerplate kod üretmek, takımın code review checklist’ını uygulamak… Bunları her defasında uzun uzun anlatmaya gerek kalmıyor. Agent görevin ne olduğuna bakıyor, ilgili skill’i seçiyor, işte burada asıl rahatlık geliyor. Kısacası, peki neden? Çünkü aynı şeyi elli kere yazmak insanı yoruyor.
Bence, Şimdi bir parantez açayım. Bu fikir aslında yeni sayılmaz; Claude tarafında benzer yapı epeydir vardı (hatta .claude/skills/ klasörünü de Visual Studio destekliyor), ama Microsoft’un bunu GitHub Copilot’un Nisan Güncellemeleri: VS Code’da Sessiz Devrim serisinin devamı gibi Visual Studio’ya da taşıması bence asıl farkı yaratıyor, çünkü artık IDE içinde tek tıkla yönetebiliyorsunuz. Açık konuşayım bu detay baya iş görüyor.
Bunu biraz açayım.
Skill Nasıl Oluşturulur? İki Yol Var
Yol 1: GUI’den, tembel yöntem
Copilot Chat’in sağ alt köşesinde bir tools ikonu var. Tıklayınca skills panel açılıyor; burada keşfedilmiş büyük çoğunluk skill’leri görüyorsunuz. Sağ üstteki + butonuna basınca sihirbaz size birkaç soru soruyor: global mi solution-level mı, ismi ne olsun, bir de nereye koyacağız… Sonra Visual Studio sizin için bir template üretiyor, hatta içini doldururken bile Copilot Agent mode’ünü kullanabiliyorsunuz.
Evet, iş baya kolaylaşıyor. Ama dur bir saniye — tek ekşi tarafı şu: bu akış şu an sadece Insiders kanalında var. Release tarafına da gelecek diyorlar tabiî,. “yakında” lafı Microsoft’ta bazen 2 ay oluyor, bazen 8 ay; o yüzden beklemek yerine Insiders’tan denemek daha mantıklı geliyor bana.
Yol 2: Manuel, eski usül
Açık konuşayım, bence kontrol hissi burada daha iyi. Şöyle yapıyorsunuz: repository’nizde bir klasör açıyorsunuz, sonra içine skill dosyasını koyuyorsunuz (ufak tefek script’ler veya örnekler de eklenebiliyor), yanı işin iskeletini sız kuruyorsunuz; otomatik sihirbaz yok. Eliniz de biraz daha rahat oluyor.
Bakın, burayı atlarsanız yazının kalanı anlamsız kalır.
- Repository’nizde bir klasör açın:
.github/skills/my-skill/ - İçine
SKILL.mdekleyin (formatagentskills.io/specification‘a göre) - İsterseniz script’ler, template’ler, örnekler ekleyin yanına
Açık konuşayım, Peki yapı nasıl dürüyor? Şöyle bir şey yeterli oluyor aslında:
.github/
skills/
github-issues/
SKILL.md
templates/
bug-report.md
code-review/
SKILL.md
checklist.md
Neyse uzatmayayım, Visual Studio bu klasörleri tarıyor (buna dikkat edin). Solution-level için: .github/skills/, .claude/skills/, .agents/skills/. Kullanıcı bazlı yanı global tarafta işe: ~/.copilot/skills/, ~/.claude/skills/, ~/.agents/skills/. Biraz dağınık görünüyor ama alışınca idare eder.
Bence güzel tarafı şu: bir skill aktive olduğunda chat penceresinde görünmesi. Yanı agent ne yaptığını saklamıyor; hangi skill’i devreye aldığını açık açık gösteriyor. Bu da debugging tarafında iş görüyor, çünkü sonra dönüp bakınca “ha tamam, mesele buradaymış” diyebiliyorsunuz (ciddiyim)
Kısacası, tam da öyle.
Custom Instructions vs Agent Skills: Hangisi Ne Zaman?
Burası biraz kafa karıştırıyor. Çünkü zaten .github/copilot-instructions.md diye bir custom instructions mantığı vardı, şimdi bir de skills geldi; e hâliyle insan “tamam da fark ne?” diye durup bakıyor.
Açık konuşayım, ben de ilk gördüğümde karıştırdım. Sonra kendime şöyle bir tablo çıkardım, işin aslı biraz buradan netleşti:
| Özellik | Custom Instructions | Agent Skills |
|---|---|---|
| Scope | Her zaman aktif | Task bazlı, dinamik |
| Tetiklenme | Otomatik, her etkileşimde | Model uygun gördüğünde |
| Tipik kullanım | “Tab kullan, async/await tercih et” | “Bug report şu template’e göre” |
| Context maliyeti | Her prompt’a ekleniyor | Sadece gerektiğinde yükleniyor |
Yanı kaba taslak şu: geniş kapsamlı ve sürekli geçerli kurallar varsa, onları custom instructions tarafına koyuyorsunuz. Mesela “bizim takım tab kullanır” ya da “async/await callback’e tercih edilir” gibi şeyler. Ama konu belirli bir görev için adım adım ilerleyen bir prosedüre gelince, orası skill tarafı oluyor. Burada iş biraz daha seçici çalışıyor.
Peki neden? Çünkü her şeyi baştan yüklemek yerine, sadece lazım olan talimatı çağırmak daha temiz dürüyor (şaşırtıcı ama gerçek). Hem context şişmiyor, hem de model her seferinde aynı uzun yönergeleri taşımak zorunda kalmıyor.
Custom instructions sizin “şirket kültürünüz” gibidir — her toplantıda geçerli. Skills işe “şu işi şöyle yaparız” diye yazılmış SOP dokümanları — sadece o iş geldiğinde açılır.
Yanı, Neyse, çok uzatmayayım. Ben bunu böyle ayırıyorum: genel davranış kuralları için custom instructions, görev odaklı ve gerektiğinde devreye giren detaylar için agent skills. Basit ama baya iş görüyor.
E sonra? Sız ne dersiniz, bu ayrım size de mantıklı geldi mi?
Tam da öyle.
Pratikte Bunu Türkiye’deki Takımlarda Nasıl Kullanırız?
Şimdi işin sahadaki tarafına bakalım. Türkiye’deki kurumsal yapıyı az çok biliyoruz, özellikle finans ve telkom tarafında; standart var, doküman var, ama çoğu zaman kimse dönüp bakmıyor. Geçen sene bir banka projesinde şuna denk geldim: 47 sayfalık bir “coding standards” PDF’i vardı, yeni gelen developer’lar da ilk 2-3 sayfayı okuyup bırakıyordu. Hani şaşırmadım da, biraz içim burkuldu açıkçası. Bu konuyla ilgili SPFx 1.23 GA: Yeoman’a Veda, CLI Devri Başlıyor yazımıza da göz atmanızı tavsiye ederim.
Agent Skills bu derdi şöyle bölüyor: o 47 sayfayı tek parça tutmak yerine parçalara ayırıyorsun, sonra her parçayı ayrı bir skill hâline getiriyorsun. Mesela: Bu konuyla ilgili .NET MAUI Artık CoreCLR’da: Mono’nun 24 Yıllık Yolculuğu yazımıza da göz atmanızı tavsiye ederim.
- api-endpoint-creation — yeni endpoint nasıl yazılır, hangi attribute’lar kullanılır, response formatı nasıl olmalı
- db-migration-flow — migration script’i nasıl üretilir, naming convention neye göre gider
- logging-standards — Serilog mı kullanılacak, hangi sink seçilecek, hangi level ne anlama geliyor
- pr-description — pull request açıklaması hangi başlıkları içermeli
Developer artık oturup doküman karıştırmak zorunda kalmıyor. Copilot’a “yeni bir customer endpoint’i ekle” diye yazıyor, ilgili skill devreye giriyor, kod da standartlara daha yakın çıkıyor; bazen ufak tefek sapmalar oluyor tabi. Genel resim baya toparlıyor. Bu da özellikle yeni başlayanlarda onboarding süresini kısaltıyor, hem de fena değil şekilde. Kubernetes v1.36: Workload-Aware Scheduling Yeni Boyutta yazımızda bu konuya da değinmiştik.
Enterprise vs Startup: Yaklaşım Farkı
Küçük bir startup’taysanız ben açık konuşayım, başta fazla skill üretmeyin. 3-5 tane kilit olanı seçin yeter; geri kalanını zaten LLM kendi kafasına göre idare ediyor gibi görünüyor. Çok skill demek bakım yükü demek, ve startup tarafında kimsenin elinde o kadar boş zaman olmuyor.
Bunu biraz açayım.
Ama enterprise’daysanız iş değişiyor. Orada skills biraz da governance aracı gibi çalışıyor. Şirketin “böyle yapılır” dediği şeyi koda taşımanın yolu oluyor. Burada 20-30 skill’lık bir kütüphane oluşturmak mantıklı dürüyor. Hatta merkezî bir company-skills reposu açıp herkesin oradan çekmesi daha temiz olur (dağınıklığı azaltıyor, takip etmeyi de kolaylaştırıyor).
Skills Panel’den Yönetim — Aslında — hayır dur, daha doğrusu En Sevdiğim Kısım
Sadece oluşturmakla iş bitmiyor. Skills panel’de şunları da yapabiliyorsunuz:
Bakın, burayı atlarsanız yazının kalanı anlamsız kalır.
- Edit — Herhangi bir skill’in
SKILL.md‘sını ⋯ menüsünden direkt editöre açma (bence en önemlisi) - Open file location — Skill klasörüne disk üzerinde gitme
- Search — İsme ya da keyword’e göre filtreleme
Panelin bir başka güzel tarafı da, skill konfigürasyon hatalarını direkt göstermesi. Yanı SKILL.md‘de formatı bozduysanız, — en azından ben öyle düşünüyorum — tahmin yürütmüyorsunuz, panel size açık açık söylüyor. Küçük bir detay gibi dürüyor ama bence baya işe yarıyor, çünkü ilk denememde aynı duvara ben de tosladım: YAML frontmatter içinde bir indent hatası vardı, skill aktif olmuyordu, ben de “nerede patladı şimdi bu?” diye kalmıştım. Diagnostic gelmeden önce tam 20 dakika buna gömdüm.
Benim Kafamdaki Eksikler
Şimdi gelelim eleştirilere. Çünkü her şey güllük gülistanlık değil, öyle bir hava da yok zaten. SQL MCP Server’ı App Service’te Çalıştırmak: Container’sız Yol yazımızda bu konuya da değinmiştik.
Birincisi: skill discovery hâlâ ham. Model, “bu skill bu task’e uyuyor mu” diye bakıyor, ama bazen fena hâlde şaşırıyor; geçen denediğimde basit bir refactor isteğinde alakasız bir skill’i devreye aldı, yanı işin aslı karar mekanizması biraz daha oturmak istiyor.
İşin garibi, İkincisi: versiyonlama yok. Skill’i güncellediğiniz anda eski sürümlerle uyumluluk diye bir rahatlık gelmiyor, maalesef. Bir takımda 10 kişi varsa, biri skill’i değiştirince diğerlerinin de pull etmesi gerekiyor; hani bu da governance tarafında pek iç açıcı durmuyor. Microsoft SQL ile Agentic AI Güvenliği: Katman Katman Savunma yazımızda bu konuya da değinmiştik.
Üçüncüsü — ve bence en kritik nokta bu: context window maliyeti. Skill aktive olunca içeriği prompt’a yükleniyor, uzun skill’ler varsa model’in context’ını gereksiz şişiriyor; maliyet ayrı dert, performans ayrı dert (özellikle Claude Sonnet dört Copilot’tan Kaldırıldı: Geçiş Rehberi yazımda da değindiğim gibi, model değişimleri context limitlerini doğrudan etkileyebiliyor).
Maliyet Tarafı: TL Bazında Düşünürsek
Agent Skills’in kendisi ücretsiz, yanı feature için ekstra bir ücret çıkmıyor. Ama işin içinde dolaylı maliyetler var; hani ilk bakışta görünmüyorlar, sonra bir bakıyorsunuz token tarafı şişmiş, model biraz daha konuşmuş, sız de “bu nereden geldi?” diye kalıyorsunuz.
Bir skill aktive olduğunda modele ekstra token gidiyor. GitHub Copilot Business lisansınız varsa bu sabit ücret olduğu için çok hissetmiyorsunuz. Ama Copilot Enterprise’da premium request modeli kullanıyorsanız (özellikle yeni gelen agent mode’da), her skill aktivasyonu request başına token sayısını artırıyor; yanı küçük gibi duran hareket, arkada faturalama tarafını hafifçe dürtebiliyor.
Kabaca hesapladığımda, 10 kişilik bir takımda yoğun skill kullanımıyla aylık fark belki 200-300 TL civarında oluyor — açık konuşayım, pek can sıkıcı bir rakam değil — itiraf edeyim, beklentimin üstündeydi —. Ama 200 kişilik bir kurumda tablo değişebilir, orada iş büyüyor; o yüzden ben olsam önce küçük bir POC yapar, gerçek kullanımda kaç token yediğine bakar, sonra karar verirdim.
Durun, bir saniye.
İlk Adımlar: Pratik Rehber
Eğer denemek istiyorsanız, lafı gevelemeden şunları yapın. Basit görünüyor, evet. Ama işin aslı biraz da orada; küçük başlayıp, sonra nerede takıldığını görmek daha sağlıklı oluyor (özellikle ilk kurulumda), yoksa insan gereksiz yere uğraşıp dürüyor.
- Visual Studio Insiders kanalına geçin (Release’i beklemeye gerek yok) — ciddi fark yaratıyor
- En sık tekrarladığınız 2-3 task’i listeleyin (build, code review, dokümantasyon vs.) — ciddi fark yaratıyor
- Her biri için bir skill yazın — basit tutun, 50-100 satır yeter
- 1 hafta kullanın, hangileri tetikleniyor hangileri tetiklenmiyor not edin
- Tetiklenmeyen skill’lerin
descriptionkısmını yeniden yazın — model burayı okuyor
Peki neden böyle? Çünkü çoğu kişi en başta işi büyütüyor. Şey gibi… önce üç tane minicik senaryo seçmek varken, gidip on tane yarım yamalak skill açıyorlar; sonra da “niye çalışmadı” diye şaşırıyorlar. Aslında modelin baktığı yerlerden biri de açıklama kısmı (burayı hafife almayın),. Tetikleme mantığı bazen koddan çok metne takılıyor.
Tuhaf ama, Bu arada agent ekosisteminin bütününe bakmak istiyorsanız Microsoft Agent Framework v1.0: Lokal’den Prod’a Geçiş yazımda da konuya değinmiştim. Skills, daha büyük bir resmin parçası.
İşin garibi, Neyse uzatmayalım. Yukarıdaki adımları bir hafta uygulayın; sonuçlar ya sizi şaşırtır ya da “tamam bu kadarmış” dedirtir. İkisi de iyi aslında.
Sıkça Sorulan Sorular
Agent Skills sadece Visual Studio’da mı çalışır?
Hayır, öyle değil. Spesifikasyon zaten agentskills.io‘da açık. Visual Studio, VS Code, Claude Code gibi farklı tool’lar aynı skill klasörlerini tarayabiliyor — yanı bir skill yazıyorsunuz, birden fazla yerden kullanabiliyorsunuz. Bence bu en güzel yanı.
Skill’leri takımla nasıl paylaşırım?
Aslında çok basit. Skill’leri solution-level yapıp .github/skills/ altına koyun, repo’ya commit edin, bitti. Herkes pull ettiğinde skill’ler otomatik olarak Visual Studio tarafından discover ediliyor. Ekstra bir setup falan gerekmiyor.
Custom instructions kullanıyorum, skills’e geçmem gerekiyor mu?
Geçmenize hiç gerek yok, ikisi zaten birlikte çalışıyor (ki bu çoğu kişinin gözünden kaçıyor). Mesela custom instructions’ı genel kurallar için tutabilirsiniz — hani kod stili, dil tercihleri gibi şeyler (bizzat test ettim). Skill’leri işe daha spesifik görevler için ekleyin. Aralarında çakışma olmuyor, açıkçası ikisini birden kullanmak daha mantıklı.
Skill’in tetiklenip tetiklenmediğini nasıl anlarım?
Burada, bir skill aktive olduğunda adı Copilot Chat penceresinde görünüyor. Eğer beklediğiniz skill tetiklenmiyorsa, tecrübeme göre sorun genellikle description kısmında — model orayı okuyup karar veriyor. Description’ı biraz daha açık ve task-odaklı yazın, büyük ihtimalle düzelir.
Insiders kanalı stabil mi, production’da kullanılır mı?
Şöyle söyleyeyim, Açıkçası production ortamı için önermem. Ama bir POC’ta ya da bireysel keşif için sorun olmaz. Skills feature’ının Release kanalına gelmesini beklemek daha sağlıklı — muhtemelen birkaç ay içinde geliyor zaten.
Kaynaklar ve İleri Okuma
Visual Studio Blog: Agent Skills in Visual Studio (orijinal duyuru)
Agent Skills Specification (resmî format dokümanı)
awesome-copilot GitHub Repository (topluluk skill örnekleri)
Microsoft Learn: Copilot Chat Context & Custom Instructions
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.








Yorum gönder