Skip to main content
Dokumen master yang aiMode: assist memakai AI enricher (apps/api/src/generation/enrichers/ai-enricher.ts).
  • System prompt: SYSTEM_PROMPT (versi master-enricher-v3)
  • User prompt: dibangun di buildPrompt() — menyertakan canonical_facts, allowed_fields, base_payload, dan opsional sectionFocus

Aturan inti system prompt

Ringkasan (baca file lengkap untuk edit):
  1. Output hanya JSON — nested sesuai base_payload
  2. Hanya ubah field di allowed_fields
  3. Narasi minimal 4–6 kalimat per field string; array minimal 3 item
  4. Dilarang kata meta: “simulasi”, “contoh”, “AI”, “belum tersedia”, dll.
  5. SKKNI: pakai skkni_unit_reference lengkap (kode + Nomor Kepmen + Tahun) di bukti-1 & bukti-2
  6. Angka responden/peserta harus konsisten dengan reference_figures di canonical facts

Grup prompt per dokumen

bukti-1 — TNA Makro

bukti-2 — TNA Mikro

bukti-6 / bukti-6-deck — Rencana Pemasaran

enrichmentGroup: marketing-plan-bukti6 — AI sekali, dipakai docx + pptx.

bukti-7 — Perjanjian Kerjasama

bukti-7 — field exact (tidak disentuh AI)

party_one.organization_name, representative_name, agreement_location, agreement_date

bukti-8 — Laporan Evaluasi

Dokumen tanpa AI narasi

Prompt khusus bukti-5 (Classroom)

File: apps/api/src/generation/composers/master/generate-classroom-assignment-content.ts AI menghasilkan JSON: assignment_title, video_title, assignment_instructions (3 langkah), video_duration_minutes — untuk tugas Google Classroom di bukti pelaksanaan.

Contoh struktur user prompt (setelah system)

Fallback

Jika AI gagal parse JSON / timeout → enricher mengembalikan base_payload asli (source: fallback). Job tidak stuck.

Di mana mengedit fokus per bukti

Ubah string focus dan fieldPaths di: apps/api/src/generation/document-definitions/master-definitions.ts Lalu deploy API worker. Tidak perlu ubah frontend.