Brand variant'larını fork'la
Kanonik bir marka personasını al, through-line'ı kaybetmeden formal / casual / locale'e özgü variant'lara fork'la. Refine, lineage, distinctiveness'tan geç.
Marka ekipleri tipik olarak birden çok ses variant'ı sürdürür — ciddi bir B2B tonu, eğlenceli bir sosyal tonu, EN ve DE bir versiyon. Elle küratörlenmiş şekilde bu altı prompt'u senkron tutmak demek. Forking bunu kanonik tek bir personaya artı izlenen variant ağacına dönüştürür.
1. Kanonik personayı kur
En otoriter sesle başla — diğerlerinin fork'layacağı olan. Soul + Self'ini "marka DNA'sı" olarak ele al; downstream variant'lar bu katmanları korumalı.
const brand = await client.personas.createPersona({
intent:
'Moonborn marka sesi — Character Consistency Engine. Akademik, karakter-odaklı, teknik olarak hassas. Editöryal kısıtlama. Somut detayla başla, satış lafı yok.',
workspaceId: 'ws_...',
});Audit ve provokasyon testleri otomatik çalışır; fork'lamadan önce audit'te ≥ 4.0/5 hedefle. Daha düşükse, variant eklemeden önce refine et.
2. Formal variant fork'la
POST /v1/personas/{id}/fork personayı kopyalar ve parent edge'ini
yazar. Aynı çağrıda axis transform uygulamak için refine argümanıyla
eşle:
const formal = await client.personas.fork({
id: brand.id,
refine: {
mode: 'refine',
layer: 'mask',
axis: 'more-authoritative',
amount: 0.4,
},
note: 'Sales materials variant',
});Fork Soul + Self'i kilitli tutar (marka DNA'sı) ve sadece Mask'i yeniden yazar. Audit yeni Mask'a karşı yeniden çalışır; distinctiveness formal variant'ı kanonik olana (custom baseline) karşı kıyaslar — bir genel kurumsal sese kayışı yakalamak için.
3. Casual variant fork'la
const casual = await client.personas.fork({
id: brand.id,
refine: {
mode: 'refine',
layer: 'mask',
axis: 'warmer',
amount: 0.45,
},
note: 'Social media + community variant',
});4. Türkçe locale variant fork'la
Çoklu locale için Surface'i (dil + kültürel detaylar) refine et, Soul / Self / Mask kilitli kalsın:
const tr = await client.personas.fork({
id: brand.id,
refine: {
mode: 'lock',
lockLayers: ['soul', 'self', 'mask'],
edits: {
'surface.language': 'tr',
'surface.location': 'İstanbul, Türkiye',
},
},
note: 'TR locale variant',
});5. Variant set'i audit et
const lineage = await client.personas.getLineage({ id: brand.id });
console.log(lineage.children.map((c) => c.id));
// Variant'lar birbirine doğru kayıyor mu?
const compare = await client.consistency.compareWithOrgPersonas({
personaId: formal.id,
threshold: 0.30,
});
console.log(compare.closest);compareWithOrgPersonas sorgusu voice fingerprint mesafesine göre en
yakın personayı döner. "formal" ve "casual" variant'ların birbirine
karşı < 0.15 skorluyorsa, refine sırasında çöktüler — axis amount çok
küçüktü ya da kanonik Mask zaten çok variability kodlamıştı. Daha
büyük amount ile yeniden fork'la ya da bunun yerine Soul'u refine et
(bir Cascade mode düzenlemesi).
6. Deploy et
Her variant kendi persona ID'sini açar. Her ID'yi uygun kanala bağla:
formal.id→ satış email automation'ın.casual.id→ sosyal inbox'ın.tr.id→ Türkçe locale destek temsilcin.
OpenAI-compatible endpoint üzerinden, variant ID'si model alanı:
import OpenAI from 'openai';
const oai = new OpenAI({
apiKey: process.env.MOONBORN_API_KEY,
baseURL: 'https://api.moonborn.co/v1/openai',
});
const reply = await oai.chat.completions.create({
model: `persona://${formal.id}`,
messages: [{ role: 'user', content: 'Moonborn hakkında anlat.' }],
});Sonraki
- Anlatı: Brand voice variants use case.
- Lineage yönetişimi: Voice variant lineage governance guide.
- Personas API → Fork.