Geçen hafta bir bankacılık projesinde takım liderinden ilginç bir şikayet duydum: “Copilot iyi de, her geliştiriciye aynı şeyi 10 kere anlatmak zorundayız. Bizim coding standard’larımızı bilmiyor, build pipeline’ımıza yabancı, code review checklist’imize hiç bakmıyor.” Tanıdık geldi mi? Bana da geldi. Aslında bu, Copilot kullanan hemen her takımın ortak derdi.
İşin aslı şu: Microsoft bu konuya nihayet net bir cevap vermiş. Visual Studio’ya Agent Skills diye yeni bir kavram geliyor. Lafı dolandırmadan söyleyeyim, bu yapı Copilot’a “biz şirkette işleri böyle yapıyoruz” diyebildiğiniz, yeniden kullanılabilir talimat setleri sunuyor; bir kere tanımlıyorsunuz, sonra agent ilgili durumda kendisi devreye giriyor. Basit görünüyor, ama hani bazen en işe yarayan şeyler biraz sade ölür ya, tam öyle.
İşte tam da bu noktada devreye giriyor.
Şimdi gelelim detaylara. Ben bu özelliği Insiders kanalında yaklaşık 10 gündür kurcalıyorum; hem global hem solution seviyesinde birkaç skill yazdım, test ettim, sonra bir de ufak tefek bozup yeniden düzelttim. Notlarımı paylaşayım, çünkü işin içinde beklediğimden fazla pratik taraf var.
Agent Skills tam olarak ne yapıyor?
Kısaca söyleyeyim: belirli bir işe özel, bağlama göre yüklenen talimat paketleri. Daha açık anlatayım. Diyelim takımda bir code review checklist var; şimdiye kadar bunu ya Confluence’a yazıyordunuz, ya da PR template’ine sıkıştırıyordunuz. Copilot o dökümanın varlığından bile habersizdi, yanı biraz kör gidiyordu açıkçası (ki bu çoğu kişinin gözünden kaçıyor). Agent Skills ile artık .github/skills/code-review/SKILL.md diye bir dosya koyuyorsunuz; agent code review yapması istendiğinde bu dosyayı otomatik tarayıp uygulamaya başlıyor (şaşırtıcı ama gerçek)
İşin güzel tarafı şu: bu “otomatik devreye girme” mantığı baya iş görüyor. Custom instructions gıbı her zaman aktif değil — model, görevin bağlamına bakıp “bu skill burada lazım mı?” diye kendi kendine karar veriyor. Yanı 47 tane skill tanımlasanız bile, hepsi aynı anda context’i şişirmiyor; yok öyle her şeyi üst üste yüklemek (en azından benim deneyimim böyle). Sadece ilgili olan yükleniyor, geri kalanı kenarda duruyor.
“Skill bir kez yazılır, agent yüz kez kendiliğinden uygular.” — Bu cümle aslında Agent Skills’in özetinin özeti. Tekrar tekrar prompt yazmaktan kurtuluyorsunuz, hani bazen aynı şeyi üçüncü kez anlatırsınız ya, işte o dert azalıyor.
Skill nasıl oluşturuluyor? İki yol var
1. UI üzerinden (kolay yol)
Visual Studio’da Copilot Chat’in sağ alt köşesinde minicik bir tools ikonu var. Ona tıklayınca skills paneli açılıyor, işte bütün keşfedilmiş skill’leri tek yerde görüyorsunuz. Sağ üstteki + butonuna basıyorsunuz; sonra akış sızı adım adım götürüyor: önce hedefi seçiyorsunuz (global mi, solution mı), ardından işim veriyorsunuz, en son da Visual Studio size şablonu çıkarıyor (içi boş ama düzenli duruyor). Copilot Agent mode da bu sırada yardım ediyor, yanı neredeyse tamamen yalnız değilsiniz.
Ufak bir not: bu akış şu an sadece Insiders kanalında çalışıyor. Release kanalına yakında gelecek diyorlar. “yakında” Microsoft tarafında biraz muğlak bir kelime; bazen 2 hafta oluyor, bazen 3 ay sürüyor. Evet, biraz bekletiyor.
2. Manuel oluşturma (kontrol sevenler için)
Ben açık konuşayım, bu yolu daha çok seviyorum; çünkü dosya yapısını görmeden rahat edemiyorum. Şöyle ilerliyorsunuz: önce repo içine ya da kullanıcı profiline bir skill klasörü açıyorsunuz (.github/skills/my-skill/ veya ~/.copilot/skills/my-skill/), sonra içine SKILL.md dosyasını koyuyorsunuz. Formatın agentskills.io/specification standardına uygun olmasına dikkat ediyorsunuz, isterseniz yanına script, template ya da örnek dosyalar da ekleyebiliyorsunuz; yanı iş biraz sizin kontrolünüzde kalıyor.
Peki pratikte nasıl duruyor? Mesela aşağıdaki gıbı bir yapı baya iş görüyor:
.github/
skills/
github-issues/
SKILL.md
templates/
bug-report.md
code-review/
SKILL.md
checklist.md
azure-deploy/
SKILL.md
scripts/
validate-bicep.ps1
Garip gelecek ama, Ben kendi setup’ımda üçüncü bir skill daha tutuyorum: Azure deployment için Bicep validation. Bunu sonra detaylandıracağım, şimdilik geçiyorum (bizzat test ettim). Hani bazen küçük görünen şeyler asıl can kurtarıyor ya, işte o tarz bir durum.
Skill nereden otomatik bulunuyor?
Visual Studio şu dizinleri otomatik tarıyor. Bunu öğrenmem bana tam 1 saat yedi, çünkü ilk denemede skill dosyasını yanlış klasöre atmışım; sonra “neden görünmüyor?” diye boş boş bakıp durmuşum.
Solution skills (takımınızla repo üzerinden paylaşılanlar):
.github/skills/.claude/skills/.agents/skills/
İlginç olan şu ki, Global/Kişisel skills (kullanıcı profilinizde, bütün solution’larda erişilebilir):
~/.copilot/skills/~/.claude/skills/~/.agents/skills/
Ha bir de şu tarafı var: birden fazla AI tool kullanan ekipler için bu çoklu dizin desteği baya iş görüyor, çünkü Claude, generic agents. Copilot için ayrı ayrı aynı şeyi yazmak zorunda kalmıyorsunuz; tek skill, birkaç yerde birden çalışıyor, fena değil yanı.
Skills vs Custom Instructions: hangisi ne zaman?
Bu konu ilk bakışta biraz karışıyor, açık konuşayım. Custom instructions’ı (.github/copilot-instructions.md) zaten kullanan ekiplerde “tamam da şimdi bir şey daha mı öğreneceğiz?” hissi gayet normal; hatta ben de ilk gördüğümde aynı şeyi düşündüm, sonra olayın aslında sandığımdan daha net olduğunu fark ettim. Cosmos DB ile Kurumsal Ölçekte GenAI: AVASOFT Nexus Vakası yazımızda bu konuya da değinmiştik.
| Özellik | Custom Instructions | Agent Skills |
|---|---|---|
| Kapsam | Neredeyse her zaman aktif | Göreve göre devrede |
| En iyi kullanım | Genel kodlama tercihleri | Spesifik iş akışları |
| Örnek | “Tab kullan, async tercih et” | “Bug report açarken şu template’i uygula” |
| Context maliyeti | Her etkileşimde yüklü | Sadece ilgili durumda |
| Dosya yapısı | Tek markdown dosyası | Dizin + script + template |
Araya gireyim: Lafı gevelemeden söyleyeyim: ben bunu şöyle ayırıyorum. Her zaman geçerli olacak şeyler custom instructions’a gidiyor, çünkü orada iş basit ve düzenli kalıyor; ama belli bir işi yaparken devreye girecek kurallar varsa, onlar skill tarafında daha temiz duruyor (hem de context’i gereksiz şişirmiyor), yanı pratikte ikisi birbirinin rakibi değil, daha çok farklı çekmeceler gıbı çalışıyor.
Mesela “tab indent kullan” diyorsanız, bunu custom instructions’a koyarsınız. Ama “yeni bir Azure Function endpoint eklerken Application Insights logging, retry policy ve OpenAPI annotation otomatik gelsin” diyorsanız, işin aslı bu artık bir skill konusu oluyor. Evet. MAESTRO ile Microsoft SQL: Agentic AI Güvenliği yazımızda bu konuya da değinmiştik. NL2SQL Gerçekten İşe Yarıyor mu? SQL MCP Server Notları yazımızda bu konuya da değinmiştik.
Neyse, çok dağıtmadan toparlayayım: genel davranışlar için custom instructions, görev bazlı tekrar eden akışlar için skill (yanlış duymadınız). Siz ne dersiniz? Bence ayrım burada baya iş görüyor.
Türkiye’deki takımlar için ne anlama geliyor?
Bir şey dikkatimi çekti: Kurumsal müşterilerde şunu çok net görüyorum: Türkiye’de AI tool benimsenmesi biraz farklı akıyor. Siz hiç denediniz mi? Bir yanda yazılı coding standard’ı var, öbür yanda o standardların eski Word dosyalarında, kimsenin yüzüne bakmadığı SharePoint klasörlerinde unutulmuş hâli duruyor; işte Agent Skills tam bu noktada, o kuralları kağıt üstünden çıkarıp biraz daha yaşayan bir şeye çevirmek için fena olmayan bir fırsat gıbı görünüyor.
İkincisi, ve burada Türkiye’ye özgü bir taraf var, bankacılıkta, telekomda, kamuda ya da benzeri regülasyonu sıkı sektörlerde her PR için ayrı ayrı uyulması gereken checklist’ler oluyor. KVKK uyumu, log maskeleme, secrets management, vs. Bunları şimdiye kadar junior developer’lara çoğu zaman “aman dikkat et” diye anlatıyorduk; şimdi işe .github/skills/kvkk-compliance/ diye bir skill yazıp “kişisel veri içeren bir endpoint yazıyorsan şu kontrolleri yap” diyebiliyorsunuz. Güzel tarafı bu, ama dür bir saniye — asıl kıymetli kısım audit zamanında çıkıyor; çünkü elinizde “biz bu kontrolleri AI agent seviyesinde de uyguluyoruz” diyebileceğiniz somut bir iz kalıyor. Daha fazla bilgi için GitHub App Token Formatı Değişiyor: Override Header Rehberi yazımıza bakabilirsiniz.
Size bir şey söyleyeyim, Üçüncüsü maliyet. Copilot Business lisansı ucuz sayılmaz — kullanıcı başı aylık ücret TL bazında düşünülünce orta ölçekli bir ekip için baya hissediliyor (kendi tecrübem). Eğer Skills sayesinde her geliştiricinin Copilot’tan aldığı verimi artırabiliyorsanız, lisans maliyeti de daha hızlı toparlanıyor; açık konuşayım, model tarafı güçlendikçe doğru talimat verme işi iyice kilit hâle geliyor. Copilot Business’ta Yeni Dönem: GPT-5.3-Codex Devrede yazımda da buna değinmiştim — hani orada da söylemiştim ya, model ne kadar iyi olursa olsun yönlendirme zayıfsa sonuç biraz sallantıda kalabiliyor.
Bir dakika — bununla bitmedi.
Enterprise vs Startup: kim ne yapmalı?
Küçük ekipseniz (3-10 kişi)
Karmaşık gıbı duruyor, değil mi? Bir .github/skills/ dizini açın, içine 2-3 tane temel skill koyun; mesela yeni component oluşturma, test yazma. PR description hazırlama gıbı şeyler yeterli oluyor, hatta açık konuşayım, ilk etapta bundan fazlası çoğu zaman gereksiz yere kafa karıştırıyor. Bu kadarı bile takımın velocity’sını hissedilir biçimde artırıyor. Çok şey beklemeyin başta. Pişe pişe gelişiyor zaten.
Büyük kurumsal yapıdaysanız (50+ developer)
Burada işin rengi değişiyor. Skills’i merkezî olarak yönetilmesi gereken bir asset gıbı düşünün; çünkü ekip büyüyünce herkesin kafasına göre skill yazması kısa sürede dağınıklık yaratıyor, sonra biri gelip “bu neden böyle?” diye soruyor ve haklı da oluyor (buna dikkat edin). Önerim şu: ayrı bir company-skills repo’su açın, bunu submodule ya da template olarak diğer projelere dağıtın.
Durun, bir saniye. SAP Sapphire 2026: Azure Tarafında Yeni Dönem Başlıyor yazımızda bu konuya da değinmiştik.
- Ayrı bir
company-skillsrepo’su açın — submodule veya template olarak diğer projelere dağıtın - Skill’ler için kendi internal review süreciniz olsun (skill’in kendisi de PR’dan geçsin)
- Domain bazlı ayırın:
backend-skills,frontend-skills,data-skills - Skill’lere de versiyon verin. “v1.2 — yeni KVKK kontrolleri eklendi” gıbı changelog tutun
Skill panelinden yönetim — bayağı işlevsel
Skills panel sadece bakıp geçeceğiniz bir yer değil (inanın bana). Aslında buradan epey şey yapıyorsunuz, hatta ilk açtığımda ben de “tamam, sadece liste gösterir” sanmıştım ama iş öyle çıkmadı.
- Edit — ⋯ menüsünden herhangi bir skill’in
SKILL.md‘sını doğrudan editörde açıyorsunuz - Open file location — diskteki skill klasörüne atlıyorsunuz
- Search — isimle veya keyword’le filtreliyorsunuz
Bir de şu var, önemli nokta bu: panel skill configuration hatalarını da gösteriyor. Ben ilk denemede SKILL.md’yi yanlış formatlamışım, panel kırmızı bir uyarı verip “burada şu hata var” dedi. Bakın, şaşırdım açıkçası. İyi bir feedback loop, lafı gevelemeden söyleyeyim, gerçekten işe yarıyor.
Ve işler burada ilginçleşiyor.
Yaşadığım bir sorun ve çözümü
Açık konuşayım, ilk başta işler pek öyle akmadı. İlk skill’ımı yazdığımda agent bir türlü devreye girmedi, ben de defalarca prompt verdim ama sonuç aynı kaldı. Hmm, bir durup baktım; acaba sorun bende mi, yoksa description tarafında mıydı?
Kendi deneyimimden konuşuyorum, İşin aslı şuradaydı: SKILL.md içindeki frontmatter bölümünde description alanını fazla genel bırakmıştım. “Code review helper” gıbı, hani kulağa fena gelmiyor ama ne yaptığını tam söylemeyen bir ifade vardı. Model, agent skill’in ne zaman çalışacağını bu description’a bakarak anlıyor; description’ı “TypeScript dosyalarında PR review yapılırken security checklist ve performance kontrolleri uygula” diye netleştirince, agent ilk denemede devreye girdi. Şaşırdım açıkçası.
Bir bakıma, size bir şey söyleyeyim, Buradan çıkardığım ders net: description = trigger. Kısacası, ne kadar nokta atışı yazarsanız agent o kadar doğru zamanda tetikleniyor (ciddiyim). “Helper”, “utility”, “tool” gıbı jenerik kelimeler var — ki bu tartışılır — ya, onları biraz kenara bırakın; use case’i düz anlatın, gerekiyorsa örnek de ekleyin. Evet.
İlk adımda ne yapmalısınız?
Şunu söyleyeyim, Denemek istiyorsanız, lafı gevelemeden sıralayayım:
- Visual Studio Insiders kanalını kurun (Release’i bekleyecekseniz, evet, birkaç hafta sabır gerekiyor)
- Repo’nuzda
.github/skills/dizini açın - İlk skill olarak basit bir şey seçin — mesela “commit message standardı”. 10 satırlık bir SKILL.md çoğu zaman yeterli oluyor
- Test edin: Copilot Chat’e commit ile ilgili bir şey sorun, skill’in panelde “applied” olarak göründüğünü doğrulayın
- Sonra büyütün. Agent Framework + AGT: Üretimde Yönetişim Şart yazısında bahsettiğim governance prensiplerini skill yönetimine de uygulamayı düşünün; çünkü işin aslı, küçük başlayıp kontrolü kaybetmemek burada baya önemli — bunu es geçmeyin
Bakın, bir şey dikkatimi çekti: Bence bu adım fena değil. Ama dür bir saniye — (söylemesi ayıp) hâlâ eksik kalan taraf var: skill’lerin etkisini ölçmek için metrikler pek tatmin etmiyor. Hangı skill ne kadar çağrılıyor, hangisi gerçekten iş görüyor, hangisi sadece rafta duruyor, bunu görmek istiyorum. Şu an biraz “umarım faydalı oluyordur” modundayız.
Evet.
Microsoft tarafının buraya da el atacağını düşünüyorum, yoksa skill’leri yönetmek bir süre sonra dağılıyor. Açık konuşayım, sayı artınca mesele teknik olmaktan çıkıp operasyon işine dönüyor; o yüzden görünürlük şart.
Bir not daha: Visual Studio 2026’da Segment Heap: C++ İçin Yeni Dönem yazısında da değindiğim gıbı, Visual Studio 2026 tarafında yenilikler üst üste geliyor. Agent Skills da bu büyük resmin baya kritik bir parçası — IDE’nın klasik “kod yazma aracı” rolünden çıkıp “takım iş akışının içinde yaşayan bir parça” hâline gelmesi yönünde net bir hamle.
Sıkça Sorulan Sorular
Agent Skills için Business veya Enterprise lisansı şart mı?
Tuhaf ama, Şu an için Visual Studio’da Copilot Chat açılıyorsa skill’leri kullanabiliyorsunuz. Yanı Individual lisansla da rahatlıkla deneyebilirsiniz (kendi tecrübem). Ama bence enterprise ortamlarda — hani merkezî yönetim ve audit söz konusuysa — Business veya Enterprise plan çok daha mantıklı oluyor.
Aynı işimde hem global hem solution skill varsa ne ölür?
Solution skill kazanıyor. Yanı repo içindeki tanım, kullanıcı profilindekinin üzerine yazıyor. Aslında bu çok mantıklı — takımın koyduğu kural kişisel tercihten önce gelmeli. Yine de tecrübeme göre aynı işim kullanmaktan kaçının, gereksiz kafa karışıklığı yaratıyor.
Skill’ler her dil ve framework’te aynı şekilde çalışıyor mu?
Skill dosyasının kendisi dilden bağımsız, o yüzden teknik olarak evet. Ama içindeki talimatlar dile özel olabilir. Mesela Python için yazdığınız bir “test generation” skill’i.NET projesinde devreye girerse işe yaramıyor. Açıkçası bunu description’da net belirtmek şart — yoksa model yanlış bağlamda kullanıyor.
Skill versiyonlamak için bir yol var mı?
Resmî bir mekanizma yok şu an. Ama SKILL.md frontmatter’ına kendi version alanını ekleyip git üzerinden yönetmek en pratik çözüm. Büyük takımlarda her skill değişikliğini mutlaka PR’dan geçirin — yanlış bir skill onlarca developer’ı kolayca yanlış yönlendirebiliyor, bence bu gerçekten kritik.
Skill’in aktif olduğunu nasıl anlayacağım?
Şahsen, Chat penceresinde küçük bir gösterge çıkıyor. Hangı skill’in devrede olduğunu net görüyorsunuz. Bu şeffaflık aslında çok değerli — özellikle audit gerektiren kurumlarda “AI tam olarak hangı kurala göre karar verdi?” sorusunun cevabı tam olarak bu gösterge oluyor.
Kaynaklar ve İleri Okuma
Agent Skills in Visual Studio — Microsoft Resmî Duyurusu
Agent Skills Specification (agentskills.io)
awesome-copilot — Topluluk Skill Örnekleri
Yanı, Visual Studio Copilot Chat Dokümantasyonu
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.



