Çalışma Tarzı

Sohbetlerden ve mevcut projelerinden gözlemlenen tercihler. Yeni tercihler çıktıkça güncellenir (provenance ile).

İletişim

  • Türkçe iletişim.
  • Derinlikli, “konuya her yönden bakan” analiz ister; karar öncesi seçenekleri ve gerekçeleri görmek ister.
  • Önemli kararları kurmadan önce birlikte konuşmayı sever (“ondan sonra tekrar konuşalım”).

Teknik tarz

  • Otonomi + denetlenebilirlik: otonom çalışmayı sever ama git diff / audit log ile geri-denetim ister. (Bkz. homelab-agent S1–S5 modeli.) ^[çıkarım: davranıştan gözlemlendi]
  • Modüler, sürdürülebilir kod: paket yapısı + entry-point shim (eski config kırılmasın), her konu ayrı modül, README.tr.md, GPL v3.
  • Güvenlik katmanları: yıkıcı işlemlerde confirm=True + açık onay; savunma derinliği.
  • Titiz dokümantasyon: numaralı dokümanlar (00-10) + README router + “bkz. X.md” çapraz referans.
  • Sırları koddan ayırır: .env + .env.example, .bak/.bak2/.bak3 yedek zinciri.

Altyapı tercihleri

  • Kendi sunucusunda (Proxmox) konteynerleştirilmiş servisler; NPM reverse proxy + Let’s Encrypt.
  • Backend portlarını dışarı açmaz; tek giriş NPM.
  • Lokal-öncelikli; mevcut altyapıyı (VectorChord, n8n) yeniden kullanmayı sever.

Teşhis ve doğrulama tarzı

  • ‘Elemek bedava’ yaklaşımı: kanıt aleyhte olsa bile ucuz/kesin testleri (memtest86, dpkg -V, SMART) çalıştırıp şüphelileri tek tek resmen eler; her şeyi sıfırlayan temiz kurulum gibi pahalı ‘kesin çözer’ seçeneklerden kanıt olmadan kaçınır. ^[çıkarım]
  • Kanıt zinciri: teşhiste DNS, dış port erişimi, sunucu parmak izi (Server header/ETag) ve uçtan uca HTTP testi (LAN + dış check-host.net düğümleri) ayrı ayrı doğrulanıp ‘kanıt zinciri’ olarak özetlenir. ^[çıkarım]
  • Üç çökme modu taksonomisi (teşhis hızlandırıcı): Mod A = yarım kalmış upgrade (held-back paketler), Mod B = upgrade sonrası bayat daemon + yeni perl modülü uyuşmazlığı (perl-ABI SIGSEGV), Mod C = systemd PID-1 SIGSEGV donması (perl ile ilgisiz, ayrı olay). ^[çıkarım]
  • Riskli/kesintili donanım işlerinde güvenlik katmanları + manuel onay: uzun testleri gece penceresinde planlar, kritik yedek tetiklemelerini kendi açıp manuel tetikler, fiziksel müdahaleyi (RAM, PSU) kendisi yapar.
  • Otonom çökme/kapatma işlemlerinde önce kaynağı/gerekçeyi sorar (‘kaynağını bul kapatmadan sor’); kalıcı mimari değişiklikten önce karşılaştırmalı seçenek tablosu + öneri ister; oturum sonunda tüm proje dokümanlarının topluca güncellenip pushlanmasını ister.
  • Toplu/kritik işleri tek NVMe + yavaş HDD/NFS’i yormamak için paralel değil sıralı çalıştırmayı, tekrar-alımda orijinal iş ayarlarını (storage/mode/prune/notes) birebir eşlemeyi yeğler; off-host (Tier 2) korumayı yerel (Tier 1) yedekten önce önceliklendirir. ^[çıkarım]

Sürümleme ve değişiklik kaydı kuralı

Ahmet, projelerinde her commit’in sürümü ilerletmesini ve changelog’a girdi eklemesini kural olarak ister (semver: major=kırıcı/mimari, minor=feat, patch=fix/docs/chore; sürüm her zaman artar). Uygulandığı projeler:

  • homelab-agent (CT 207): her commit __init__.py::__version__ bump + docs/changelog.md. Bkz. 2026-06-14-homelab-agent-versiyonleme-kurali.
  • homelab-agent-ha (CT 209): her commit homelab_agent/__init__.py::__version__ bump + docs/changelog.md; dashboard sürümü canlıda /health’ten dinamik gelir (statik string yalnız fallback).
  • homelab-library: her commit CHANGELOG.md + SemVer; kural üç katmanda sabit (CI’da ‘changelog’ kapısı CHANGELOG güncellemeyen main push’larını kırar, working-context belgesi, hafıza). Tek-ortama geçiş 1.0.0 kabul edildi.

Geriye dönük commit’ler de sürümlendi (homelab-agent: 181 commit → 0.16.1; homelab-library: 29 commit).

Dokümantasyon: tek-otorite / tek-kayıt

Aynı konu birden fazla dosyaya dağılıp tekrarlanmamalı; konu tek bir kanonik dokümanda toplanır, diğer dosyalar kısa özet + ‘bkz.’ işaretçisine indirilir (‘karmaşa olmasın, benzer şeyler tekrarlanmasın’). Örnek: tüm perl-ABI içeriği 07-perl-abi-incident.md’de toplandı; 06/10/01 yalnız işaretçi bıraktı.

Hedef-LXC build ve veri-bütünlüğü kuralları

  • Native modül (ör. argon2) içeren uygulamalar Windows dev makinesinde değil hedef LXC içinde build edilmeli (Windows binary’si Linux’ta çalışmaz); kaynak CT’ye git archive ile gönderilir. ^[çıkarım]
  • Windows kaynaklı dosyalar CT’ye giderken CRLF satır sonları script/systemd unit’lerini kırar → LF’e çevrilmeli; kalıcı çözüm repo’da .gitattributes. ^[çıkarım]
  • Postgres bağlantı URL’lerindeki rastgele parolalar base64 değil hex üretilmeli (base64’ün /+= karakterleri postgres:// URL’ini bozar). ^[çıkarım]
  • Ücretsiz resmî API’si olmayan veriler için (ör. Türkçe kitap metadatası) kişisel/aile kullanımında HTML kazımayı kabul eder, ancak kazıyıcının sağlam olmasını ister: timeout, hata-izolasyonu (kazıyıcı çökse ana akış kırılmaz), layout değişimine dayanıklı kaynak (JSON-LD), doğrulama/önbellek. Üçüncü-parti kodu birebir kopyalamak yerine mantığını kendi yığınına port etmeyi yeğler. ^[çıkarım]

UI ve repo-hijyen tercihleri

  • UI yerleşiminde nettir ve yarım işi düzeltir: ör. homelab-library konumlar sayfasında ‘liste KOMPLE sağda olsun’ (altında değil), form solda dar panelde, seçimde ‘Konumu sil (n)’ butonu; buton adlandırması kendi istediği gibi (‘bölme sil’ değil ‘konumu sil’).
  • Depo/klasör adlarında kebab-case tutarlılığı ister (Homelab-Library → homelab-library) ve bu tür yeniden adlandırmaların Claude Code oturum geçmişini/hafızasını bozmamasına dikkat eder.
  • homelab-agent reposunda branch açılmasını istemez: değişiklikler doğrudan main’e commit edilir (push ayrı/açık bir adım olarak istenir).
  • Güvenlik-kritik değişikliklerde (örn. otonomi kapısı gevşetilmesi) deploy öncesi çok-bakış-açılı çekişmeli (adversarial) doğrulama çalıştırılmasını ve bulunan major’ların deploy öncesi düzeltilmesini bekler; geri-dönülmez gevşetmelerde kapsamı önce netleştirmek ister. ^[çıkarım]

İlgili