-
Notifications
You must be signed in to change notification settings - Fork 0
Test ve Teftis
Vibe coding'in tek gerçek sigortası budur: ajanın "çalışıyor" demesi değil, localde kanıt üretmesi. Divan'ın üç katmanlı test aklı:
python scripts/validate.py — JSON, temel frontmatter, name=klasör,
≤64/≤1024, eval sözleşmesi, yol güvenliği, ad çakışması ve vitrin tutarlılığı.
VERSION, marketplace, iki README, CHANGELOG, BLUEPRINT ve kurulum belgesi
aynı sürümü söylemezse teftiş kırılır; .divan/progress.md sıradaki kesin
adımı taşımak zorundadır. Yerel ve CI çekirdek kapıları aynı cache-stabil
girişten çalışır:
python scripts/verify.py
Bu komut Python bytecode'unu kapatır; Ruff, mypy ve coverage cache'lerini repo
dışındaki geçici dizine yönlendirir ve ikinci hijyen kontrolüyle biter. Dosya
silmez; açık bakım gerektiğinde scripts/hygiene.py --clean yalnız sabit
allowlist'i temizler. CI bunun ardından
skills-ref==0.1.1 ile 41 skill'i ve Claude Code 2.1.212 ile marketplace ile
beş paketi doğrular.
git clone https://github.com/trugurpala/divan /tmp/test && cd /tmp/test
python scripts/validate.py
Senin makinende çalışan değil, taze klonda çalışan bakidir.
tests/site_testi.py gerçek Chromium açar; sürümü, ferman seçicinin beş
niyetini, seçim sonrası paket/prompt/akış değişimini, ürün yüzeyini ve mobil
görünümü denetler. PR sırasında yalnız mevcut canlıyı test etmek yeni değişikliği
kanıtlamaz; CI bu nedenle docs/ içeriğini yerel HTTP sunucusunda açar. Haftalık
nöbet ve her main push'ı ayrıca GitHub Pages'in beklenen VERSIONa gelmesini
bekler, sonra aynı etkileşimi canlı adreste tıklar. Localde:
pip install playwright==1.61.0 && playwright install chromium
python tests/site_testi.py
# Belirli bir yerel/preview adresi
DIVAN_SITE_URL=http://127.0.0.1:8000/ python tests/site_testi.py
Ürün kodun için aynı disiplin: ui-pack'teki webapp-testing skill'i, ajanına "yaptım" yerine "tarayıcıda tıkladım, işte ekran görüntüsü" dedirtir. Kural basit: kanıtsız "bitti" yok sayılır.
Özellik dalındaki veya taslak PR'daki yeşil test yalnızca “hazır” kanıtıdır.
Kamusal teslimde ayrıca PR hazır duruma getirilir, yetki kapsamındaysa maine
birleştirilir ve GitHub'daki README ile kurulum yolu varsayılan daldan yeniden
okunur. Tag/release yoksa durum “main'de”dir; “release yayımlandı” değildir.
GitHub Wiki ayrı bir Git deposudur. Kaynak sayfalar docs/*.md altında yaşar;
wiki-pages.json hangilerinin yayımlanacağını belirler. Yerelde:
python scripts/wiki.py --check
python scripts/wiki.py --build /tmp/divan-wikiPR'da wiki-sync yalnız derleme, bağlantı ve sürüm tutarlılığını denetler.
main sonrası aynı iş akışı Wiki deposuna yazar ve
raw.githubusercontent.com/wiki/.../Home.md üzerinden beklenen sürümü yeniden
okur. Bu son adım geçmeden “Wiki canlı güncel” denmez.
uyumluluk matrisi Claude Code'un resmî plugin doğrulayıcısını temiz runner'da
çalıştırır; Codex kurucusunu Linux, macOS ve Windows'ta boş geçici dizine kurar, 41
skill'i sayar ve manifestli kaldırma/geri alma yolunu uygular. release akışı
ise bütün teftişlerden sonra Pages ile Wiki'nin aynı VERSIONı göstermesini
bekler. Ardından CHANGELOG'dan not üretir; tag yoksa oluşturur, varsa etiketi
taşımadan yalnız Release sayfasını eşitler.