Davet et, 1 ay ücretsiz Pro kazanNasıl çalışır?

opencode ile SvelteKit projeleri: pratik rehber

SvelteKit projelerinde opencode ile verimli çalışmak: AGENTS.md ayarları, route ve server görevleri, form actions, Vitest ve Playwright ile test.

Solviera Teknoloji 4 dk okuma

opencode, SvelteKit projesinin kök klasöründe opencode komutuyla başlatılan bir CLI kodlama ajanıdır. SvelteKit’in dosya tabanlı routing, +page ve +server dosyaları, load fonksiyonları ve form actions yapısını anlar; sizden aldığı görevi AGENTS.md’deki proje kurallarına göre küçük adımlarla uygular. Bu rehber, SvelteKit geliştiricilerinin opencode’dan en iyi verimi alması için somut kurulum ve çalışma pratikleri sunar.

SvelteKit işleri için opencode’u uygun kılan özellikler

opencode, dosya sistemini ve terminal komutlarını doğrudan kullanır; bu da SvelteKit’in route dosyalarını düzenlerken gerçek proje yapısına sadık kalmasını sağlar. Örneğin src/routes altındaki +page.svelte, +page.ts, +page.server.ts ve +server.ts dosyalarını tek başına değiştirmek yerine birlikte ele alabilir. Load fonksiyonunun sunucu mu istemci mi çalışacağını dosya uzantısına göre ayırt eder; form actions’ta fail ve redirect döndürme kalıplarını bilir. Ayrıca SvelteKit’in build çıktısı, adapter seçimi ve $app/* importları gibi çerçeveye özgü ayrıntıları anlayarak genel kodlama ajanlarına göre daha az yanlış varsayım yapar. Kurulumda takılırsanız opencode nasıl kullanılır? Adım adım rehber yararlı olur.

Ajana projeyi hazırlama: AGENTS.md içeriği

opencode, proje kökündeki AGENTS.md dosyasını okur. SvelteKit projesi için bu dosyaya build, test, lint ve dev komutlarını; src/routes, src/lib, src/lib/server gibi klasör ayrımlarını; SSR ve client kurallarını yazın. Ajan her göreve başlarken bu talimatlara uyar; böylece her seferinde hangi test komutu diye sormaz. Aşağıdaki örnek, tipik bir SvelteKit projesinde işe yarayan kısa bir AGENTS.md dosyasıdır.

# AGENTS.md

## Komutlar
- dev: `npm run dev`
- build: `npm run build`
- preview: `npm run preview`
- test: `npx vitest run`
- e2e: `npx playwright test`
- lint: `npm run lint`
- check: `npm run check`

## Klasör düzeni
- src/routes: yalnızca route dosyaları (+page, +server, +layout, +error)
- src/lib/components: yeniden kullanılabilir Svelte bileşenleri
- src/lib/server: yalnızca sunucu tarafında çalışacak kod
- src/lib: istemci ve sunucu ortak yardımcıları

## SvelteKit kuralları
- +page.server.ts içindeki load fonksiyonları yalnızca sunucuda çalışır; tarayıcı API'si kullanma.
- Form actions +page.server.ts içinde tanımlanır; başarıda `redirect`, hatada `fail` döndür.
- `$app/*` importları yalnızca SvelteKit ortamında geçerlidir; testlerde mock gerekebilir.
- Dış API çağrılarını src/lib/server altına koy; +page.ts içine koyma.
- Her değişiklikten sonra `npm run check` ve ilgili testleri çalıştır.

Bu dosya ne kadar kısa ve net olursa ajan o kadar az varsayım yapar. SvelteKit’e özgü olarak browser kontrolü, $app/stores kullanımı ve adapter seçimi gibi bilgileri de ekleyebilirsiniz; ancak komut listesi ile klasör kuralları en kritik kısımdır.

Çalışma döngüsü: plan, küçük adım, test, diff

opencode ile SvelteKit projesinde verimli çalışmak için her görevi tek bir route veya tek bir bileşenle sınırlayın. Önce ajanın bir plan sunmasını isteyin; planı onayladıktan sonra değişiklikleri yapmasını söyleyin. Her adımdan sonra git diff çıktısını isteyin ve inceleyin. Testleri çalıştırmasını isteyin; başarısız olursa düzeltmesini söyleyin. Aşağıdaki tablo, sık kullanılan SvelteKit dosyaları için doğrudan kopyalanabilir görev istemlerini eşler.

Dosya / görevopencode’a yazılacak talep
+page.ts loadsrc/routes/urunler/+page.ts içindeki load fonksiyonuna ürün listesini çeken fetch ekle; başarısız olursa boş dizi döndür.
+page.server.ts actionsrc/routes/giris/+page.server.ts içindeki login action’ını cookie ayarlayacak şekilde güncelle; hata mesajını form alanına döndür.
+server.ts endpointsrc/routes/api/notlar/+server.ts içine GET handler ekle; JSON yanıt döndür, authorization header kontrolü yap.
Svelte bileşenisrc/lib/components/DataTable.svelte bileşenini sunucudan gelen veriyi props olarak alacak şekilde refactor et.

Aşağıdaki örnek istemler tipik SvelteKit görevleri içindir:

  • src/routes/blog/[slug]/+page.server.ts içindeki load fonksiyonuna ilgili yazıyı çeken bir veritabanı sorgusu ekle; hata durumunda 404 döndür.
  • Yeni bir iletişim formu için src/routes/contact altına +page.svelte ve +page.server.ts oluştur; action’da zod ile doğrula, başarılıysa redirect, hata varsa fail döndür.
  • src/lib/components/Button.svelte bileşenini erişilebilirlik kurallarına göre güncelle: aria-label desteği, klavye odak yönetimi ve disabled state.
  • Mevcut +server.ts endpoint’ine rate limiting ekle; istek başına kullanıcı IP’sini basit bir Map ile tut, limit aşımında 429 döndür.
  • Vitest ile load fonksiyonunun testlerini yaz; mock data döndüren bir fixture kullan ve hata senaryosunu da kapsa.

Bu istemlerde dosya yollarını ve beklenen davranışı net belirtmek, ajanın yanlış route’a dokunmasını veya SSR/client sınırını ihlal etmesini önler.

SvelteKit’te iyi giden görevler ve dikkat gerekenler

opencode, SvelteKit’te özellikle şu işlerde başarılıdır: yeni route dosyaları oluşturma, load fonksiyonlarını yazma veya düzenleme, basit +server endpoint’leri, form actions, Vitest birim testleri ve erişilebilirlik iyileştirmeleri. Buna karşılık SSR/browser ayrımı en sık hata yapılan noktadır. Ajan, +page.ts içinde window veya localStorage kullanmayı deneyebilir; bunu src/lib altındaki ortak bir dosyaya koysa bile sunucu render sırasında patlar. Ayrıca form actions’ta fail yerine yanlışlıkla throw kullanabilir veya redirect sonrası kod çalıştırmaya devam edebilir. +page.server.ts ile +page.ts arasındaki serialization farkları da gözden kaçabilir: sunucudan dönen Date veya Map gibi nesneler client’a geçerken sorun çıkarır. Svelte 5 runes ile eski reactive syntax karıştırıldığında ajan eski $: kullanabilir; proje Svelte 5 kullanıyorsa bunu AGENTS.md’ye açıkça yazın. Adapter seçimi, özellikle adapter-node ile adapter-static arasındaki farklar, build sırasında hatalara yol açabilir. Bu alanlarda diff’i dikkatle inceleyin ve ajanın her seferinde npm run check çalıştırmasını isteyin.

SvelteKit’te test ve doğrulama

Ajanın yaptığı değişikliği kabul etmeden önce mutlaka testleri ve tip kontrolünü çalıştırın. AGENTS.md içinde tanımlı komutları kullanın. opencode’a şu cümleleri kurdurun: ‘Vitest’i çalıştır, başarısız olan testleri düzelt’ veya ‘Playwright ile kritik akışı çalıştır; hata varsa düzeltme öner.’ Ajan, test çıktısını okuyarak kendi kodunu düzeltebilir; ancak e2e testlerinin flaky olabileceğini unutmayın, diff’i küçük tutun. Özellikle form actions ve load fonksiyonları için Vitest ile birim testi; kullanıcı akışları için Playwright ile uçtan uca test eklemek, ajanın yaptığı değişikliği doğrulamanın en güvenilir yoludur. Testler geçtikten sonra npm run build çalıştırın; SvelteKit’in adapter’a bağlı derleme hataları ancak build aşamasında ortaya çıkar. Ajan build çıktısını da okuyup düzeltebilir.

Bir projede birden fazla ajan: AgentVera

AgentVera, opencode gibi CLI ajanlarını yan yana çalıştıran bir masaüstü uygulamasıdır. SvelteKit projesinde aynı anda hem bir +server endpoint’i hem de bir form action’ı geliştirmek isterseniz, her ajanı ayrı bir git worktree içinde çalıştırıp dosyaların ezilmesini önlersiniz. Ajanın turu bitince ikinci bir model otomatik kod incelemesi yapar ve bulguları file:line ile işaretler; ayrıca her turun checkpoint’i alındığı için yanlış bir değişikliği tek tıkla geri alabilirsiniz. Token bütçeleri sayesinde ajanın günlük kullanımını sınırlayabilir, SvelteKit’e özgü hataları düzeltirken maliyeti kontrol altında tutabilirsiniz.

Sonuç

opencode, SvelteKit projelerinde AGENTS.md ile iyi beslendiğinde route, load ve form action işlerini güvenilir biçimde hızlandırır. Küçük adımlar, net dosya yolları ve test komutları her zaman en iyi sonucu verir. Değişiklikleri diff ile inceleyip Vitest ve Playwright doğrulaması yapmadan ana dala almayın.

Sık sorulanlar

opencode SvelteKit projesinde nasıl başlatılır?

Proje kökünde terminale opencode yazmanız yeterlidir. SvelteKit projesindeki AGENTS.md dosyasını okuyarak build, test ve lint komutlarını öğrenir; ardından route +page ve +server dosyalarını mevcut yapıya uygun değiştirir.

SvelteKit form actions için opencode’a ne prompt vermeliyim?

+page.server.ts içindeki fail ve redirect kullanımını koruyarak, form action’ı yalnızca ilgili route’ta değiştirmesini isteyin. Ayrıca Vitest ile action birim testini çalıştırmasını söyleyin.

opencode SvelteKit’te SSR ve client tarafını ayırt edebilir mi?

Evet, dosya uzantılarına dikkat eder. +page.ts ile +page.server.ts arasındaki farkı bilir; load fonksiyonunun nerede çalışacağını ve hangi verinin client’a gideceğini sorularınızda belirtirseniz daha isabetli olur.

SvelteKit projesinde çoklu opencode ajanı nasıl yönetilir?

AgentVera gibi bir arayüzle her ajanı ayrı bir git worktree içinde çalıştırabilirsiniz. Böylece ajanlar aynı dosyaları ezmez, değişiklikleri ayrı dallarda incelenir.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer opencode rehberleri

SvelteKit için diğer ajanlar