Büyük bir görev genellikle kulağa makul gelen bir istekle başlar. "Yerel ayarlar kataloğu yap: liste, arama, ülkeye göre filtre ve düzgün bir görünüm." Bir saat sonra karşınızda listenin yarım yamalak oluşturulduğu, aramanın tüm alanlarda çalışmadığı, görünümün iki kez değiştiği bir sayfa vardır. Üstelik konuşma öyle uzamıştır ki doğrulanmış sonucun nerede, yalnızca verilmiş bir sözün nerede olduğunu ayırt etmek zorlaşır.

Olası nedenlerden biri, görevin net sonuçları olan parçalara ayrılmamasıdır. Bu, kodda hata olabileceğini dışlamaz; ancak şu anda neyin çalışması gerektiği belliyse hataları kontrol etmek kolaylaşır. Büyük bir işi doğrulanabilir aşamalara nasıl böleceğimize, o aşamada ajana hangi bilgileri vereceğimize ve yarın - aynı konuşmada ya da yenisinde - her şeyi hafızadan yeniden kurmadan devam edebilmek için neleri not edeceğimize bakalım.

Yerel ayarlar kataloğu arayüzü örneğiArama kutusu ve dört satır içeren koyu temalı tablo: yerel ayar kodu, dil, ülke, para birimi ve alan adı.List of locale codesSearch by code or languageLOCALE CODELANGUAGECOUNTRYCURRENCYTLDen-USEnglishUnited StatesUSD.usde-DEGermanGermanyEUR.defr-CAFrenchCanadaCAD.caja-JPJapaneseJapanJPY.jp

Kataloğun son hâli şöyle olmalı: arama içeren bir liste; her satırda yerel ayar kodu, dil, ülke, para birimi ve alan adı. Bu taslağı aklınızda tutun - pratik bölümünde yalnızca bir görsel değil, stil örneği olarak da işinize yarayacak.

Büyük görev ve uzun konuşma

Uzun bir görev, kodda hata çıkmadan da tıkanabilir: süreç biçimini kaybeder. Bağlam büyür, varsayımlar alınmış kararlarla birbirine karışır ve arama işine fark ettirmeden görünüm değişikliği de eklenir. Bağlam penceresi sınırlıdır; ama asıl sorun, şu anda ne yaptığımızın ve nelerin tamamlandığının belirsizleşmesidir.

TASK_SPEC tüm görevin hedefini, sınırlarını ve kontrolünü netleştirir. Ardından bu tanıma göre çalışma, doğrulanabilir milestone aşamalarına bölünür. Her aşamanın bir sonucu ve sınırları vardır: örneğin, verileri ve görünümü koruyarak arama eklemek. Böylece Claude işe odaklanır, siz de görevin hangi noktada olduğunu görürsünüz.

Görev henüz net değilse ilk aşama keşif olabilir: iki-üç önemli dosyayı okumak, çözüm seçeneklerini ve riskleri belirlemek, ardından görev tanımını ve sonraki aşamaları netleştirmek.

Her aşamayı kontroller ve kısa bir özetle (summary) tamamlayın: ne yapıldı, nasıl kontrol edildi ve sırada ne var. Proje Git ile yönetiliyorsa kontrol edilmiş değişiklikleri küçük bir commit olarak kaydedin. Özet kararları, commit ise kod sürümünü korur; ikisi birlikte sonucu incelemeyi ve aradan sonra çalışmaya devam etmeyi kolaylaştırır.

Aşama olarak ne sayılır?

Milestone, yani kilometre taşı, görevin ara bir sonuca ulaştığı ve bu sonucun doğrulanabildiği noktadır. Bundan sonra bu noktaya ulaşmak için yapılan işe aşama diyeceğiz.

Bir aşamanın üç zorunlu parçası vardır:

  • sonuç - tam olarak ne çalışmaya başlayacak;
  • sınırlar - bu kez neleri değiştirmeyeceğiz;
  • kontrol - emin olmak için neye bakacaksınız.

Fark, ifadelerde görülür. "Arama üzerinde çalış" cümlesinin bir bitiş noktası yoktur: sonsuza dek çalışabilirsiniz ve "bitti" anını herhangi biri ilan edebilir. "Arama yerel ayar koduna göre kayıt buluyor, boş sorgu tüm listeyi döndürüyor" ifadesinin ise bir bitiş noktası vardır ve bunu tarayıcıda yarım dakikada görebilirsiniz.

Süre ya da dosya sayısı için evrensel bir sınır yok. Yine de boyut önemli: bir aşamada birbirinden bağımsız birkaç değişiklik bir araya geldiyse ve sonucu anlaşılır tek bir turda kontrol edemiyorsanız aşamayı küçültmek gerekir. Ölçüt şu olsun: tek başına elde edip doğrulayabileceğiniz en yakın faydalı sonuç.

Sonucu çalışan parçalara bölün

Örnek olarak bir yerel ayar kataloğu düşünelim. Kayıt alanları yukarıdaki taslakla aynı: yerel ayar kodu, dil, ülke, para birimi ve alan adı. Basit tutmak için hazır dizi, index.html dosyasına eklenen app.js içinde duruyor. Sayfa verileri ayrı bir istekle yüklemediğinden tarayıcıda sunucusuz açılabilir. İşte veri kümesi:

[
  { "code": "en-US", "language": "English", "country": "United States", "currency": "USD", "tld": ".us" },
  { "code": "de-DE", "language": "German", "country": "Germany", "currency": "EUR", "tld": ".de" },
  { "code": "fr-CA", "language": "French", "country": "Canada", "currency": "CAD", "tld": ".ca" },
  { "code": "ja-JP", "language": "Japanese", "country": "Japan", "currency": "JPY", "tld": ".jp" }
]

İsteğin tamamı şöyle: liste, arama ve ülkeye göre filtre. Girişteki "düzgün görünüm" için ayrı bir aşama açmıyoruz: sayfa temel görünümünü M1'de listeyle birlikte kazanıyor; "ertelenenler" bölümüne yalnızca yeni görünüm, yani tema değişikliği giriyor. İsteği üç aşamaya bölelim.

Milestone 1, Milestone 2 ve Milestone 3 tabelaları olan yokuş yukarı bir merdiven
AşamaSonuçNasıl kontrol edilir?Ertelenenler
M1sayfa hazır yerel ayar listesini gösterirdört satırı ve alanlarını app.js içindeki diziyle karşılaştırınarama, filtre, yeni görünüm
M2yerel ayar koduna veya dile göre aramade-DE ve German bir kaydı bulur, zzz hiçbirini bulmaz, boş sorgu dört kaydın tümünü döndürürülkeye göre filtre
M3ülke filtresi aramayla birlikte çalışırCanada ve French, fr-CA'yı bırakır; Canada ve German boş liste verir; iki koşul da sıfırlanınca dört kayıt geri geliryeni özellikler ve görünüm
  • M1 liste
  • M2 arama
  • M3 filtre

Önce çalışan bir liste gerekir: kayıtları filtrelerken bunun üzerinde kontrol yapmak kolaydır. Arama ve filtre farklı sıralarla eklenebilir; burada önce aramayı seçtik, M3'te ise birlikte çalıştıklarını kontrol ediyoruz. Aşamalar arasındaki ok, önceki sonucun doğrulandığını; yeşil M3 ise isteğin tamamını karşılayan aşamayı gösterir.

Burada işi sonuca göre bölüyoruz. Her aşamada kodu okuma, düzenleme ve kontrol etme var. "Önce tüm HTML, sonra tüm JS, en sonunda hepsini kontrol edelim" planı davranışı kontrol etmeyi en sona bırakır. Hazır işaretleme de yararlı bir ara sonuç olabilir, ancak aramanın çalışıp çalışmadığını henüz göstermez.

Ajanın da katmanlara göre plan yapmaya yatkın olduğunu unutmayın: önce tüm işaretleme, sonra tüm mantık. Yapay zekâ ajanlarıyla çok çalışanlar da bundan söz ediyor; örneğin Matt Pocock kendi iş akışını anlattığı atölyede, doğrudan sonuca göre bölmesi istense bile bu planın ortaya çıktığını söylüyor. Bu yüzden ajanın önerdiği aşamalarda şu noktaya bakın: Her aşamanın sonunda açıp çalışan bir şey görebiliyor musunuz?

İlk aşama keşif olabilir

Verilerin nasıl düzenlendiği belli değilse hemen kodu planlamaya girişmeyin. İlk aşamanın sonucu şöyle olabilir: kayıtların alındığı dosya bulundu, alanlar belirlendi, plan netleştirildi. Bu da doğrulanabilir bir sonuçtur; yalnızca tarayıcı yerine okuyarak kontrol edersiniz.

Buradaki üç aşama bir örnek, kural değil. Bazen iki, bazen altı aşama olur.

Mevcut aşama için bağlam sağlayın

Aşamayı seçince ajana tüm projeyi değil, tam da bu aşama için gereken bilgileri verin. Örnek katalogdaki M2 isteği şöyle olabilir:

Yerel ayar listesine arama ekliyoruz.
Dört kayıtlı liste çalışıyor. Alanlarını ve görünümünü koru,
kaynak dizinin içeriğini değiştirme. Yalnızca arama için gerekenleri ekle.

@index.html ve @app.js dosyalarını oku.

Gerekenler:
- listenin üzerinde bir arama alanı;
- yerel ayar koduna ve dil adına göre arama;
- de-DE ve German sorguları de-DE kaydını bulsun;
- zzz sorgusu listede hiç satır bırakmasın;
- boş sorgu tüm listeyi göstersin.

Bu kez ülke filtresi ekleme.
Başka bir dosya gerekiyorsa adını söyle ve oku.
Önce aşamanın sonucunu ve sınırlarını belirt, henüz dosyaları değiştirme.

Önerilen sınırlar uygunsa sonraki mesajınızda M2'yi uygulamasını ve tarayıcıda yapılacak kontrolleri sıralamasını isteyin. Ayrıca ajanın kendi kontrol ettiklerini, sizin kontrol etmeniz gerekenlerden ayırmasını da isteyin.

Örnekteki yollar temsili; sizin dosyalarınız farklı. İş için istekte belirtilmeyen bir kaynak gerekiyorsa ajan adını söyleyip okumalı: dosya içeriğini adına bakarak tahmin etmek kötü fikir, siz de bunu istemeyin.

Görünüm burada ayrı bir bilgi türüdür ve tam da bu aşamada korunur. Bazen tersi olur: örneğin sayfa ilk kez oluşturuluyorsa görünüm aşamanın sonucuna dahildir. Bunu yalnızca sözcüklerle tarif edemezsiniz; "güzel yap" isteğinde doğrulanabilir hiçbir şey yoktur ve karar ajana kalır. Bu durumda bir örnek ekleyin: taslak, ekran görüntüsü ya da renkleri ve sınıf adlarını içeren küçük bir dosya.

Ayrıca bu tür bir ifadenin ne olmadığını da hatırlayın. "Bu kez ülke filtresi ekleme" satırı bir talimat, teknik bir engel değil. Yön gösterir ama hiçbir şeyi bloke etmez; sonucu yine de kendiniz incelemelisiniz.

Düzenlemelerden önce sonucu sorun

Sonucun ve sınırların kısa bir özeti, düzenlemeler başlamadan önce niyetinizle uyuşmayan noktaları fark etmenizi sağlar. Uygulamanın doğru olacağını garanti etmez: tamamlanan aşamayı yine de kontrol etmeniz gerekir.

Aşamayı ne zaman küçültmeli?

Aşamalar çalışma sırasında büyüme eğilimindedir. Aramayla başladınız, derken veri yapısını değiştirmek, görünümü yenilemek ve üste gezinme eklemek de iyi olur gibi geldi. Tanıdık bir durum.

Her yeni istek için seçtiğiniz sonuç için gerekli olup olmadığını sorun. Yeni bir renk teması ve gezinme bekleyebilir; görünür bir arama alanıysa gerekli. Kayıtlarda arama için gereken bilgiler eksikse önce sınırları netleştirin: mevcut aşamada verileri tamamlayabilir ya da hazırlıklarını ayrı, doğrulanabilir bir aşama yapabilirsiniz. Verileri değiştirmeme kuralını çalışma sırasında sessizce kaldıramazsınız.

Netleştirme isteği kısa olabilir:

Bu kez verileri, görünümü ve gezinmeyi değiştirme,
bunları sonraya ayrı maddeler olarak not et.
Kod ve dile göre arama kalsın: giriş alanı, eşleşmeler, boş sorgu.

Bir aşama, üzerinde anlaşılan sonuç elde edilip kontrolü yapıldığında tamamlanır. Kontrol başarısızsa önce mevcut aşamayı halledin; sonrakine geçmek yalnızca belirsizliği artırır.

Bazen aşama ilerlemez: ajanı düzeltirsiniz, o yeniden yapar ama sonuç yine yanlıştır. Başarısız denemeler kaybolmaz; konuşmada kalır ve sonraki deneme onlara dayanır. Claude Code belgeleri basit bir ölçüt öneriyor: aynı şeyi ikiden fazla düzeltmeniz gerektiğinde, şimdiye dek öğrendiklerinizi içeren bir istekle temiz bir konuşma başlatın. Örneğin: "arama için ayrı dizi yaklaşımı işe yaramadı, kaynak verilerle uyumsuz; doğrudan ana dizide ara". Böyle bir istek genellikle art arda üçüncü düzeltmeden daha iyi sonuç verir. O da işe yaramazsa aşama muhtemelen fazla büyüktür ve bölünmelidir.

Devam noktası oluşturun

Aşama kontrolü: sonuç doğrulanmadıysa düzenlemelere dönün; doğrulandıysa durumu kaydedip devam edinAşamadaki düzenlemelerSonucu kontrol etanlaşılan ölçütlere göreÜzerinde çalışaynı aşamadaDurumu kaydetsonuç ve kontrollerBaşarısızBaşarılıSonraki aşama
Kontrol, devam edip edemeyeceğinizi belirler

Soldaki dal aynı aşamanın düzenlemelerine döner: sonucu henüz doğrulanmadı. Sağdaki dal ise durumun kaydedilmesine ve sonraki aşamaya götürür. Notunuza hem başarılı kontrolleri hem de kapsam dışında kalanları yazın.

Sonucu kontrol ettiniz mi? Durumu not edin. Not, rapor vermek için değil, bir gün sonra ya da başka bir konuşmada sohbeti kazıp geçmişi yeniden kurmamak için var.

Dosya adı size kalmış; mevcut bir çalışma notu da olur. Örneğin PROGRESS.md diyelim. Aşağıda M1 kontrolünden sonraki bir örnek var; kendi notunuza yalnızca gerçekten yaptıklarınızı ve gözlemlediklerinizi yazın:

# Yerel ayar kataloğu

## Tamamlandı
M1: sayfa, app.js içindeki diziden yerel ayar listesini gösteriyor.

## Kontrol edildi
index.html tarayıcıda açıldı: 4 kayıt var ve her satırdaki beş alan
app.js içindeki kaynak diziyle eşleşiyor.

## Kontrol edilmedi
Veri kümesi boş olduğunda sayfanın ne gösterdiği.
Bu kontrol M1 ölçütlerinde yoktu; boş dizi için davranış henüz bilinmiyor.

## Kararlar
Veriler app.js içinde dizi olarak tutuluyor, ayrı bir veri yükleme işlemi yok.
Arama eklenirken kayıtların içeriği ve görünüm korunacak.

## Vazgeçilenler
Verileri ayrı bir JSON dosyasından yüklemek: sunucu olmadan tarayıcı
bu dosyayı okuyamaz, sayfa ise dosya olarak açılabilmeli.

## Dosyalar
index.html, app.js

## Kalan aşamalar
M2: yerel ayar koduna veya dil adına göre arama çalışıyor.
Kontrol: de-DE ve German, de-DE kaydını buluyor;
zzz hiçbir kayıt bulmuyor; boş sorgu dört kaydın hepsini gösteriyor.

M3: ülke filtresi aramayla birlikte çalışıyor.
Kontrol: Canada + French, fr-CA'yı bırakıyor;
Canada + German boş liste döndürüyor;
iki koşul da sıfırlanınca dört kayıt geri geliyor.

## Sonraki adım
M2'yi uygulamak. Şimdilik ülke filtresi eklememek.

Buradaki kilit bölüm "Kontrol edildi". "Her şey çalışıyor" notu bir hafta sonra hiçbir şey ifade etmez; "tarayıcıda açtım, 4 kayıt var, alanlar eşleşiyor" ise anlamlıdır. Kontrol edilmeyenler için ayrı bir bölüm olması da tam bu yüzden: yarın bu farkı hatırlamayabilirsiniz.

"Vazgeçilenler" bölümü gereksiz görünebilir, çünkü projede olmayan şeyleri anlatır. Ancak yeni bir konuşmada ajan geçmiş denemeleri bilmez ve aynı yolu iyi niyetle yeniden önerebilir. Nedenini belirten tek satır, koca bir turu önler.

Notu ajana yazdırabilirsiniz, ama güncel dosyalar ve kontrol sonuçlarıyla karşılaştırın. Ajan konuşma geçmişine dayanabilir; orada planlar, yapılan işlerin hemen yanında durur. Tarayıcıdaki gözlemler için kimin yaptığını belirtin; ajanın çalıştırmadığı bir kontrolü ona mal etmeyin.

İki sınır var. Görevin geçici ilerleyişi CLAUDE.md dosyasına taşınmaz; orada projenin kalıcı kuralları bulunur, bugün neyle uğraştığınız değil. Ayrıca not kod sürümünü saklamaz: dosyaların kopyası değil, mevcut durumun yazılı hâlidir.

Gereken bilgilerle devam edin

Aşama sınırı, çalışmaya hangi konuşmada devam edeceğinize karar vermek için uygun bir noktadır. Soru basit: mevcut konuşma sonraki adıma yardımcı mı, yoksa artık engel mi oluyor?

Yardımcı oluyorsa orada devam edin; özel bir şey yapmanız gerekmez. "Her aşamadan sonra konuşmayı temizle" diye bir kural olmadığı gibi, baştan başlamanın zamanı geldiğini gösteren bir yüzde eşiği de yok.

Geçmişin ne kadar yer kapladığı belli değilse /context komutunu çağırıp pencerenin ne kadarının kullanıldığına bakın. Bunu işin gidişatıyla karşılaştırın: sonraki aşamada hangi uzun çıktılar ve tartışmalar hâlâ gerekli? Komut hacmi değerlendirmenize yardım eder, hangi bilgilerin işe yaradığını sizin yerinize belirlemez.

Alakasız içerik biriktiyse ve temiz bir konuşma başlatmaya karar verdiyseniz önce notu kaydedin. /clear komutu yeni bir konuşma başlatır: önceki geçmiş yeni konuşmanın çalışma bağlamına aktarılmaz, kaynak dosyalar diskte kalır ve proje yönergeleri yüklenmeye devam eder. Bu, eski konuşmanın kalıcı olarak silindiği anlamına gelmez; kaydedilmiş konuşmaya /resume ile dönebilirsiniz. Ancak yeni bir oturumda devam etmek için gerekli kararları açıkça aktarmak daha iyi olur.

Devam etmek için hem PROGRESS.md notu hem de güncel dosyalar gerekir: okuyun, durumu karşılaştırın ve ancak sonra M2'yi uygulayınPROGRESS.mdKontroller ve kararlarYapılacak kalanlarGüncel dosyalarindex.html + app.jsMevcut uygulamaDurumu okuyup karşılaştırınDüzenlemeden önce farkları giderinM2 ile devam edinDurum netleşince
Not ve kod birbirini tamamlar

İki ok, çalışmaya devam etmeden önce birleşir. Not kararları ve kontrol sonuçlarını aktarır, dosyalar ise mevcut kodu gösterir. Ajan her iki kaynağı okuyup durumu özetler; M2'yi istemeden önce yanıtını siz karşılaştırırsınız.

Yeni konuşmaya başlamak oldukça sıradan görünür:

@PROGRESS.md, @index.html ve @app.js dosyalarını oku.
Kendi sözlerinle nelerin tamamlanıp kontrol edildiğini, nelerin kaldığını anlat.
Henüz hiçbir dosyayı değiştirme.

Yanıtı dikkatle okuyun. Ajan yapmadığınız bir şeyi tamamlanmış olarak söylediyse notla, dosyalarla ve kontrol sonuçlarıyla karşılaştırın. Nedeni hatalı bir not, güncel olmayan kod ya da ajanın kendi hatası olabilir. Yeni düzenlemelerden önce uyuşmazlığı giderin: temiz bir konuşma yanlış görev tanımını tek başına düzeltmez ve ajanın doğru anlamasını garanti etmez.

Kataloğu baştan sona oluşturun

Anlatım tamamlandı; şimdi aynı kataloğu kendiniz yapın: boş bir klasörden doğrulanmış M2'ye ve devam noktası oluşturmaya kadar. Dört adım makaledeki sırayı izliyor. Her adımda önce prompt'u kendiniz yazın, bizim örneğimizi ise ikinci bir görüş olarak açın: amaç bir cümleyi kopyalamak değil, ajanın hangi bilgilere ihtiyaç duyduğuna karar vermek.

1. adım. Kodsuz plan

Henüz proje yok; ilk akla gelen "kataloğu yap" demek. Böylece dosyalar, onlarla ilgili kararlardan önce ortaya çıkar. Bu adımın hedefi bunun tersi: plan elde edilsin, tek bir dosya bile oluşmasın. Yazmaya başlamadan önce şu dört noktayı düşünün:

  • ajanın hemen kod yazmaya başlamasını nasıl önlersiniz;
  • henüz var olmayan dosyalar yerine hangi bilgileri verirsiniz;
  • gereksiz bir araç eklenmemesi için hangi teknik sınırları belirtirsiniz;
  • henüz oluşturulacak bir şey yoksa çıktı olarak ne istersiniz.

Örneğimiz:

Alıştırma için bir yerel ayar kataloğu istiyorum: kayıt listesi, bu listede arama
ve ülkeye göre filtre. Henüz proje yok.

Sayfa, sunucu ve build adımı olmadan tarayıcıda dosya olarak açılmalı:
yalnızca index.html, styles.css ve app.js. Her kayıtta yerel ayar kodu (en-US),
dil, ülke, para birimi ve alan adı alanları olsun.

Önce bir plan hazırla:
- tüm görevin hedefini, sınırlarını ve nasıl kontrol edileceğini belirt;
- işi üç aşamaya böl;
- her aşama için sonucu ve kontrol sırasında ne göreceğimi söyle;
- benden hangi bilgilerin eksik olduğunu belirt;
- oluşturacağın dosyaları listele.

Henüz hiçbir dosya oluşturma.

Hazırlanan aşamaları yukarıdaki M1-M3 tablosuyla karşılaştırın; sıranın farklı olması sorun değil. Ajan işi "önce tüm işaretleme, sonra tüm JS" diye böldüyse her aşamanın sonunda sayfanın bir şey yapacağı şekilde yeniden düzenlemesini isteyin. Bir aşamada gözlemlenebilir davranış belirtilmemişse ifadeyi şimdi düzeltin: ilk kod satırından önce bunun bedeli tek bir mesajdır.

2. adım. Yalnızca M1 ve baştan bir örnek

Kapsam dar: sayfa dört kayıt gösteriyor, hepsi bu. Arama ve filtre yok. Ancak görünümü erteleyemezsiniz; sayfa ilk kez ortaya çıkıyor ve bir görünüme sahip olacak. Bu yüzden bir örnek ekleyin: proje klasörüne mockup.html dosyasını kaydedin. JavaScript içermeyen statik işaretleme, yalnızca renkler ve sınıf adları olsun.

<style>
  body   { background:#0f172a; color:#e2e8f0; font-family:system-ui, sans-serif; padding:24px }
  .search{ width:100%; margin-bottom:12px; padding:10px 14px; border-radius:10px;
           background:#1e293b; color:#e2e8f0; border:1px solid #334155 }
  table  { width:100%; border-collapse:collapse }
  th, td { padding:10px 12px; text-align:left; border-bottom:1px solid #334155 }
  th     { color:#8b98b1; font-size:13px }
  .code  { font-family:ui-monospace, monospace; font-weight:700; color:#818cf8 }
</style>

<input class="search" placeholder="Search by code or language">
<table>
  <tr><th>Code</th><th>Language</th><th>Country</th><th>Currency</th><th>TLD</th></tr>
  <!-- örnek satır; gerçek satırları app.js oluşturur -->
  <tr><td class="code">en-US</td><td>English</td><td>United States</td><td>USD</td><td>.us</td></tr>
</table>

Arama alanı örnekte çizilmiş, ancak M1'de sayfaya taşımıyoruz: hiçbir şey yapmayan boş bir alanı kontrol etmek zordur. Stili .search sınıfında duruyor ve M2'de işimize yarayacak.

Bir ayrıntı daha: verileri ajana açıkça vermek gerekir. Yoksa kendi veri kümesini uydurur ve tablodaki dört satır, de-DE, Canada kontrolleri artık tutmaz. Şimdi prompt'u düşünün: ajanı tek bir aşamada tutmak için ne yazarsınız, düzenlemelerden önce ne göstermesini istersiniz ve sonucu nasıl kontrol edeceksiniz?

Yalnızca M1'i yapıyoruz: sayfa app.js içindeki diziden
yerel ayar listesini gösteriyor. Bu kez arama ve filtre yok,
örnekteki arama alanını şimdilik ekleme.

Veriler bu dört kayıtlı dizi; içeriğini değiştirme:
[makaledeki diziyi buraya ekleyin]

Görünümü @mockup.html dosyasından al: renkleri ve sınıf adlarını kullan,
yeni sınıflar uydurma.

Önce dosya planını göster ve nerede duracağını söyle.
Planı onaylayana kadar dosya oluşturma.
Düzenlemelerden sonra neyi açıp neyle karşılaştıracağımı söyle.

M1'den sonra dur; benden onay almadan M2'ye geçme.

Plan uzadıysa onaylamayın; önce aşamayı tek bir doğrulanabilir sonuca indirin. Plan uygunsa düzenlemelere izin verin, sonra sayfayı açıp dört satırı diziyle karşılaştırın. Temel görünüm bu noktadan sonra sabit: korunacak, tam tema değişikliği ise ertelenenler arasında kalacak.

3. adım. M2 ve dürüst bir not

M2 prompt'unu "Mevcut aşama için bağlam sağlayın" bölümünde zaten gördünüz; oraya dönüp yolları kendi yollarınızla değiştirin. Örnekte iki dosya var, M1'den sonra sizde üç dosya olacak: index.html ve app.js dosyalarına styles.css eklendi, onu da belirtin. Bir satır daha ekleyin: görünüm artık belirlenmeyecek, korunacak.

Görünüm M1'de @mockup.html ile belirlendi - olduğu gibi koru,
arama alanını da oradaki .search sınıfıyla biçimlendir.

Ajan sınırları doğru belirttiyse düzenlemelere izin verin. Filtreye ya da veri yapısına yönelirse işe başlamadan önce açıklama isteyin. Üç arama kontrolü geçince durumu yukarıdaki örneğe göre PROGRESS.md dosyasına yazın; bu kez M2 sonrasını ve kendi dosya listenizi belirtin.

Notunuzu dayanıklılık açısından da sınayın. "Kontrol edildi" bölümü yerine "neredeyse her şey hazır, biraz kaldı" yazdığınızı düşünün. Bir hafta sonra hiçbir anlamı kalmaz. Devam etmeye yetecek kadar ayrıntı ekleyin: tam olarak neyi açıp gördünüz, neler kontrollerin dışında kaldı, sonraki adım ne? Örneğin: "M2: de-DE ve German sorguları de-DE'yi buluyor, zzz hiçbir şey bulmuyor, boş sorgu dört kayıt döndürüyor", "boş veri kümesindeki davranış kontrol edilmedi", "sonraki adım - M3, ülkeye göre filtre".

4. adım. Temiz bir konuşmayla devam edin

Son adım kodu değil, notu kontrol ediyor. Yeni bir konuşma başlatın; ajandan PROGRESS.md ve üç güncel dosyanın tümüne, styles.css dahil, bakarak durumu özetlemesini isteyin. Ardından özeti yaptıklarınızla karşılaştırın. Ajan kontrol etmediğiniz bir şeyi tamamlandı diye belirttiyse not büyük olasılıkla fazla geneldir; çözüm yeni bir konuşma değil, notu düzeltmektir. Yine de dosyaları karşılaştırın: neden kodda ya da ajanın kendi hatasında da olabilir. Her şey uyuşuyorsa doğrulanmış M1'iniz, doğrulanmış M2'niz ve M3'e başlayacağınız bir noktanız var.

Prompt örneğimiz kusursuz değil

İfadeniz aynı dayanakları sağlıyorsa - koddan önce plan, her seferinde tek aşama, belirtilmiş sonuç ve kontrol - bizimkinden geri kalmaz. Şimdilik yalnızca bir fikriniz varsa ajandan netleştirici sorular sormasını ve sınırlar için iki-üç seçenek önermesini isteyin; belirsiz bir fikirden kusursuz bir görev tanımı çıkarmaya çalışmayın.

Sonraki aşamaya nasıl geçilir?

Özetlersek sıra oldukça kısa:

  1. kontrol edilebilecek en yakın sonucu seçin;
  2. ajana bu aşama için gereken kaynakları verin ve sınırları belirtin;
  3. mevcut aşamayı tamamlayın; yeni istekleri ayrıca not edin;
  4. üzerinde anlaşılan kontrolü yapın; örneğimizde sayfanın tarayıcıdaki davranışına bakın;
  5. durumu yazın: tamamlandı, kontrol edildi, edilmedi, nelerden vazgeçildi ve sonraki adım;
  6. bu konuşmada mı devam edeceğinize, yoksa temiz bir konuşma mı başlatacağınıza karar verin.

Bir aşama tek bir mesaj demek değildir. Üç mesaj da sürebilir, on beş de; bu normal. Aşama sayısı konuşma sayısına da eşit değildir: yan yana iki aşama aynı konuşmada ilerleyebilir, tek bir zorlu aşama ise bazen iki konuşma alır.

Karşılığında, her adımda neyin çalıştığını ve nasıl kontrol edildiğini söyleyebilirsiniz. Büyük bir görevde belki de en önemli şey budur.