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

Grup IDLabelFokus singkat
intro-regionPendahuluan & Konteks WilayahLatar belakang, masalah, profil wilayah & bisnis
method-dataMetodologi & Pengumpulan DataMixed-method, survei, wawancara, data sekunder
analysisAnalisis KebutuhanKondisi vs ideal, gap, priority_needs
findings-recoTemuan, Rekomendasi & KesimpulanMin. 3 key_findings + 3 recommendations

bukti-2 — TNA Mikro

Grup IDLabelFokus
profile-roleProfil Organisasi & Peran SasaranProfil org, masalah inti, tugas & standar kinerja
competency-gapAnalisis Kebutuhan KompetensiAsesmen, skor, gap, kompetensi prioritas
recommendationsRekomendasi & KesimpulanRekomendasi pelatihan + penutup

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

enrichmentGroup: marketing-plan-bukti6 — AI sekali, dipakai docx + pptx.
Grup IDLabelField utama
summary-marketRingkasan & Analisis Pasarexecutive_summary, market_analysis.*
objectives-segmentsTujuan, Segmen, Kompetitormarketing_objectives, market_segments, competitor_analysis, diferensiasi
strategy-budgetStrategi, Anggaran, KPImarketing_strategy, budget_breakdown, timeline, kpi, conclusion

bukti-7 — Perjanjian Kerjasama

Grup IDLabel
premise-scopePremis, ruang lingkup, hak & kewajiban
terms-closingPembiayaan, jangka waktu, sengketa, penutup

bukti-7 — field exact (tidak disentuh AI)

party_one.organization_name, representative_name, agreement_location, agreement_date

bukti-8 — Laporan Evaluasi

Grup IDLabel
objective-methodTujuan, metodologi, grafik kepuasan (chart.bars, min. 5 bar)
results-analysisHasil per bagian, analisis, kesimpulan, rekomendasi

Dokumen tanpa AI narasi

DokumenIsi dari mana
bukti-3, bukti-4Composer deterministik + data unit WSP
bukti-5Composer + enrichBukti5 (screenshot Classroom)

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)

document_type: bukti-1

canonical_facts (gunakan sebagai grounding):
{ ... program, unit, skkni_unit_reference, reference_figures ... }

allowed_fields:
  - introduction.background
  - ...

FOKUS BAGIAN: Pendahuluan & Konteks Wilayah
<teks focus dari enrichmentGroups>

base_payload:
{ ... skeleton dari composeBukti1 ... }

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.