AI Skills
Yapay zekâ ajanlarına doğru FmgLib.MauiMarkup kodu yazmayı öğreten, kurulabilir on skill paketi.
On this page 9
Herhangi bir yapay zekâ ajanından "C# markup ile bir MAUI sayfası yaz" isteyin; kulağa doğru gelen ama
derlenmeyen kod alırsınız: uydurulmuş metot adları, birebir taşınmış XAML alışkanlıkları, Build()
içinde oluşturulan view model'ler, ContentTemplate(() => page) yerine ContentTemplate(page).
Sorun modelde değil: kütüphanenin kuralları basit ama tahmin edilebilir değil. Foo özelliği
.Foo(...) olur. Bar olayı .OnBar(...) olur. Grid.Row önekini düşürür ama Shell.TitleColor
düşürmez. Build() her hot reload'da yeniden çalışır, dolayısıyla durum (state) alanlarda yaşamalıdır.
Bunların hiçbiri yalnızca tip sisteminden çıkarılamaz.
AI Skills, bu kuralları doğrudan anlatan on Markdown paketidir. Bir kez kurun; ajanınız tahmin etmeyi bıraksın.
// skill'ler olmadan bir ajanın yazdığı
new Label().SetText("Merhaba").SetFontSize(30).HorizontalAlign("Center") // hiçbiri yok
// skill'lerle yazdığı
new Label().Text("Merhaba").FontSize(30).CenterHorizontal()
Agent Skills biçimini kullanırlar — YAML başlıklı düz
Markdown — bu yüzden Claude Code, Claude uygulamaları, Agent SDK ve SKILL.md okuyabilen her ajanla
çalışırlar. Tamamı MIT lisanslıdır ve kütüphaneyle birlikte sürümlenir; böylece bir API değişikliği ile
skill güncellemesi aynı commit'te gider.
Kurulum#
Otomatik#
Ajanınıza şunu söyleyin:
https://fmglibmauimarkup.vodisoft.com/llms.txt adresini getir ve FmgLib.MauiMarkup AI skill'lerini kur.
Bu sayfayı bulacak, aşağıdaki katalogdan okuyacak ve her skill'i yerine indirecektir.
Elle#
Her skill, içinde SKILL.md bulunan bir klasördür. İki yerden birine koyun:
| Kapsam | Konum |
|---|---|
| Kişisel — her projede geçerli | ~/.claude/skills/<skill-adı>/SKILL.md |
| Proje — depoyla birlikte commit'lenir, ekiple paylaşılır | <repo>/.claude/skills/<skill-adı>/SKILL.md |
Çekirdek skill ayrıca bir references/ klasörü içerir; iç bağlantılarının çözülebilmesi için göreli
yolları koruyun.
# çekirdek skill, doğrudan GitHub'dan
mkdir -p ~/.claude/skills/mauimarkup/references
BASE=https://raw.githubusercontent.com/VodiSoft/FmgLib.MauiMarkup/master/skills/mauimarkup
curl -fsSL $BASE/SKILL.md -o ~/.claude/skills/mauimarkup/SKILL.md
for f in cheatsheet bindings layout styling-theming pitfalls; do
curl -fsSL $BASE/references/$f.md -o ~/.claude/skills/mauimarkup/references/$f.md
done
Diğer tüm skill'ler tek dosyadır:
NAME=mauimarkup-mvvm # katalogdaki herhangi bir ad
mkdir -p ~/.claude/skills/$NAME
curl -fsSL https://raw.githubusercontent.com/VodiSoft/FmgLib.MauiMarkup/master/skills/$NAME/SKILL.md \
-o ~/.claude/skills/$NAME/SKILL.md
Ekipler için önerilen yol klasörü <repo>/.claude/skills/ altına commit'lemektir: böylece her
geliştirici ve her CI ajanı aynı talimatlarla çalışır.
On skill#
Tümünün kaynağı:
skills/ ·
ham (raw) taban adresi
https://raw.githubusercontent.com/VodiSoft/FmgLib.MauiMarkup/master/skills/<ad>/SKILL.md
| Skill | Öğrettiği |
|---|---|
mauimarkup (zorunlu) |
Fluent model, sayfa iskeleti, dört özellik overload'ı, yerleşim, olaylar, Assign/InvokeOnElement, metot adı türetme, Build() disiplini. Beş dosyalık references/ paketi ile gelir: API özeti, binding'ler, yerleşim tabloları, stil ve tema, tuzaklar |
mauimarkup-xaml-migration |
Sayfa bazlı taşıma prosedürü, 30 satırlık XAML→C# eşleme tablosu ve çeviri değil muhakeme gerektiren yapılar — x:Reference sırası, StaticResource, converter'lar, RelativeSource |
mauimarkup-mvvm |
FmgLibContentPage<TViewModel>, tipli BindingContext, derlenmiş Getter/Setter binding'leri, komutlar, bağımlılık enjeksiyonu, CommunityToolkit.Mvvm |
mauimarkup-shell |
Shell, FlyoutItem, Tab, TabBar, ContentTemplate lambda'ları, flyout şablonları, sayfa bazlı Shell attached property'leri, rotalar, pencereler, menü çubukları |
mauimarkup-collections |
ItemsSource/ItemTemplate, şablon seçiciler, item layout'ları, EmptyView, sonsuz kaydırma, aşağı çekip yenileme, BindableLayout ve ne zaman kullanılmayacağı |
mauimarkup-styling |
Style<T>, kaynak organizasyonu, AppThemeBinding ile koyu tema, visual state'ler, trigger'lar, gradyanlar, gölgeler, Animate…To |
mauimarkup-localization |
JSON ve RESX kurulumu, Translate/TranslateFormat, canlı dil değişimi, fallback zincirleri, eksik anahtar politikaları, RTL |
mauimarkup-thirdparty |
[MauiMarkup], [MauiMarkupAttachedProp], otomatik generator modu, taban sınıf üretimi, New son eki kuralı, bilinçli olarak atlanan üyeler |
mauimarkup-hotreload |
IFmgLibHotReload, handler seçenekleri, dotnet watch ve IDE kanalları, reload'a dayanıklı Build(), tam sorun giderme matrisi |
mauimarkup-review |
Hazır ripgrep sorgularıyla dokuz denetim geçişi, önem derecesi modeli ve raporlama biçimi |
Onunu birden kurmak sorun değil — ajan, bir skill'in gövdesini yalnızca görev tanımına uyduğunda okur; kullanılmayan skill'lerin maliyeti yoktur.
Önerilen setler#
| Durumunuz | Kurun |
|---|---|
| Yeni uygulamaya başlıyorum | mauimarkup + mauimarkup-shell + mauimarkup-mvvm + mauimarkup-hotreload |
| Mevcut XAML uygulamasını taşıyorum | mauimarkup + mauimarkup-xaml-migration + mauimarkup-styling |
| Veri yoğun uygulama geliştiriyorum | mauimarkup + mauimarkup-mvvm + mauimarkup-collections |
| Birden çok pazara çıkıyorum | mauimarkup-localization ekleyin |
| Syncfusion / UraniumUI / SkiaSharp / ZXing kullanıyorum | mauimarkup-thirdparty ekleyin |
| Devraldığım kod tabanını temizliyorum | mauimarkup + mauimarkup-review |
Pratikte ne değişiyor#
Skill'lerin kayıt altına aldığı düzeltmelerden birkaçı — her biri ajanların skill'siz olarak düzenli şekilde yaptığı hatalar:
| Skill'siz | Skill'li |
|---|---|
.SetText(), .HorizontalAlign() uydurur |
Özellik adından .Text(), .CenterHorizontal() türetir |
.xaml + .xaml.cs çifti üretir |
Tek .cs dosyası, InitializeComponent() yok |
Build() içinde new MyViewModel() |
View model constructor alanında — durum hot reload'ı atlatır |
.ContentTemplate(new HomePage()) |
.ContentTemplate(() => new HomePage()) |
.TextColor(isDark ? white : black) |
.TextColor(e => e.OnLight(black).OnDark(white)) — canlı tema binding'i |
Her yerde e.Path("UserName") |
e.Getter(static (VM vm) => vm.UserName) — derleme zamanında denetlenir |
5000 öğelik liste için BindableLayout |
CollectionView, çünkü yalnızca o sanallaştırma yapar |
builder.UseFmgLibMauiMarkup() ekler |
Böyle bir kayıt çağrısı olmadığını bilir |
| Syncfusion kontrolü için elle extension yazar | [MauiMarkup(typeof(SfButton))] yazıp işi generator'a bırakır |
Kurulumu doğrulama#
Skill'lerin netleştirdiği bir şey isteyin:
MauiMarkup ile bir giriş sayfası yaz: e-posta alanı, parola alanı ve ikisi de doldurulana kadar pasif kalan bir gönder butonu.
Doğru yanıt; IFmgLibHotReload uygulayan, ağacı Build() içinde kuran, alanları .Assign(out var …)
ile yakalayan ve hiç XAML içermeyen tek bir .cs dosyasıdır.
Güncel tutmak#
Skill'ler kütüphane deposunda yaşar; yani anlattıkları kodla birlikte gözden geçirilirler. Bir skill, kütüphanenin artık yapmadığı bir şeyi öğretiyorsa lütfen konu açın — eski bilgiyi kendinden emin şekilde tekrarlayan bir ajan, hiç skill'i olmayandan daha kötüdür.
İlgili Konular#
- Başlarken — skill'lerin anlattığı kütüphaneyi kurun
- XAML'den C#'a — taşıma skill'inin insan sürümü
- İpuçları ve Sorun Giderme — tuzaklar referansının insan sürümü