Chat: interviewer
File:apps/api/src/ai/prompts/interviewer.prompt.ts
Perilaku utama:
- Bahasa Indonesia, singkat, satu pertanyaan (atau 2–3 field terkait sekaligus)
- Branding: kumpulkan identitas trainer, positioning, brand voice, promo brief
- Tidak bahas SKKNI / unit / KUK
- Setelah lengkap → arahkan user klik Generate Konten
Chat: extractor
File:apps/api/src/ai/prompts/extractor.prompt.ts
- Hanya ekstrak yang eksplisit dari pesan user
- Pertanyaan user (“maksudnya gimana?”) → patch kosong
- Koreksi user (“bukan marketing, public speaking”) → patch field yang benar
Knowledge base branding
File:apps/api/src/ai/prompts/branding-knowledge.ts
brandingKnowledgePrompt — prinsip personal branding trainer Indonesia:
- Positioning thought leader, tone hangat-profesional
- Framework PAS, AIDA, format LinkedIn / Instagram / email / hero website
- Larangan klaim berlebihan & kata “AI-generated”
System prompt enricher branding
Diai-enricher.ts → BRANDING_SYSTEM_PROMPT:
- Gabung
brandingKnowledgePrompt+ aturan JSON - Versi:
branding-enricher-v1
Panduan per tipe dokumen
brandingDocumentGuidance di branding-knowledge.ts:
Panduan ini di-inject ke user prompt sebagai
PANDUAN DOKUMEN: ...
Field exact vs enrichable
Semua branding doc memproteksi fakta user:trainer_name, organization_name, expertise_areas, target_audience, value_proposition, promo_program, promo_hook, call_to_action, tone_of_voice
AI hanya menulis field kreatif (content, body, headline, dll.)
Output
Renderer:inline-text — teks langsung di UI, bukan DOCX.
Definisi: apps/api/src/generation/document-definitions/branding-definitions.ts