Persona-as-code
Personaları Git deposuna YAML+markdown dosyaları olarak senkronla. Pull, push veya bidirectional; bir base path'e kapsamlı, Git blob SHA üzerinden last-write-wins çakışma tespitiyle. Team tarife ve üzeri.
Problem
Prompt'ları, marka sesini veya karakter biyografilerini kod olarak yöneten ekipler için Moonborn'un UI'ı yanlış kaynak-of-truth'tur. Tasarımcılar üründe iterasyon yapar; mühendisler pull request'lerde diff ister; sürüm yöneticileri her değişikliğin kodla aynı inceleme hattından akmasını ister.
Persona-as-code döngüyü kapatır: persona tanımı senin Git deponda yaşar, Moonborn workspace'i senkron kalır ve iki taraftan gelen değişiklikler birleşir.
Senkronizasyon nasıl görünür
Her persona, yapılandırılabilir bir base path altında (varsayılan personas/)
tek bir YAML dosyası olur:
---
id: p-mert-001
name: Mert Aksoy
version: 4
layer: Soul
desire: dünyanın görmezden gelemeyeceği bir şey inşa etmek
fear: sıradan görülmek
wound: sevgiyi başarıyla ölçen bir ebeveyn
growth_arc: onay-arayan'dan kendine-güvenen'e
---
Mert yirmilerini İstanbul tech sahnesinde geçirdi. İlk şirketi bir Türk
telekom'una satıldı — hâlâ "fena değildi" diye anlattığı sessiz bir çıkış. …YAML frontmatter yapılandırılmış katmanları taşır (Soul, Self, Mask, Surface); markdown gövdesi anlatı temellendirmedir. Serializer push'ta tam şekli yayar, parser pull'da geri okur. Her dosya bir Git blob SHA taşır — çakışma tespitinin temeli budur.
Senkronizasyon modları
integrations.git.sync_direction üzerinden yapılandır:
pull— Git → Moonborn. Repo kanonik kaynak olduğunda kullanışlı.push— Moonborn → Git. Ürün kanonik kaynak ve Git audit izi olduğunda kullanışlı.bidirectional— her iki yön, çakışma çözünürlüğüyle.
Commit stratejisi (integrations.git.commit_strategy) granüleriği kontrol eder:
per_change— değişen persona başına bir commit.batched— senkron çalıştırması başına bir commit.manual— taslak bir batch yayar; commit operatör-güdümlüdür.
Çakışma çözümü
Moonborn açık reddetmeli last-write-wins kullanır — üç-yönlü merge yok,
CRDT yok. Strateji integrations.git.conflict_resolution ile ayarlanır:
remote_wins— pull'lar çakışmada yerel değişiklikleri ezer.local_wins— push'lar çakışmada uzak değişiklikleri ezer.error— çakışmayı yüzeye çıkar, senkronu durdur, operatöre geri ver.
Çakışmalar, Moonborn'un en son gördüğü dosya ile bugün repoda olan arasındaki
Git blob SHA uyuşmazlığıyla tespit edilir. error modunda senkron, etkilenen
persona ID'lerini taşıyan bir PersonaFileSyncConflictError fırlatır.
Desteklenen host'lar
- GitHub
- GitLab
- Bitbucket
Her sağlayıcı bağımsız olarak tarife-geçitlidir (integrations.git.providers.github,
.gitlab, .bitbucket), hepsi Team+.
Durum — önizleme
Domain ve application katmanları implement edilmiş; HTTP API ve operatör UI'ı sonraki bir sürümde geliyor. Şu anda persona-as-code'u devreye almak istiyorsan, bize ulaş — seni önizleme kohortuna alır ve doğrudan-entegrasyon yolunda gezdiririz.
Şu an hazır olan:
PullPersonasFromGitUseCasevePushPersonasToGitUseCase— iki çekirdek işlem.- Git blob SHA çakışma tespitiyle YAML+markdown dosya formatı.
- GitHub / GitLab / Bitbucket üzerinde
IGitProviderGatewaysoyutlaması. integrations.git.*altında tarife-geçitli config item'lar.
Hâlâ yol haritasında olan:
/v1/integrations/git/*altında REST endpoint yüzeyi (henüz kamuya açık API yok).- Ürün UI'ında bir kurulum akışı (GitHub / GitLab / Bitbucket'a OAuth onboarding).
git pusholaylarında senkron çalıştıran bir webhook tetikleyici.errorstratejisi için bir çakışma-çözüm UI'ı.- Otomatik audit log entegrasyonu — bugün Git geçmişi de-facto değişiklik log'udur; bu, Moonborn'un değişmez audit log'una katlanmalı.
Dürüst kapsam
Persona-as-code senkron yüzeyidir. Komşu fikirler kapsam dışı:
- Yerel Git akışları için bir Moonborn CLI.
- Moonborn → GitHub'a inceleme için üretilmiş pull request'ler.
- Bir personanın audit puanı bir eşiğin altına düştüğünde build'ini başarısız yapan CI kancaları (kalite hattı bir runtime geçit olarak çalışır — bkz. Kalite hattı).
Tarife
Team ve üzeri. Her Git sağlayıcısı bağımsız olarak açılıp kapatılabilir, böylece mühendislik ekibinin zaten çalıştırdığı host'a sabitleyebilirsin.
Sıradaki
- Kavram girişi: Soul, Self, Mask, Surface.
- Eşlik eden runtime geçit: Kalite hattı.