> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sertifikasitrainer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Katalog dokumen

> Daftar tipe dokumen, format output, dan apakah pakai AI.

Sumber kebenaran UI: endpoint katalog memanggil `getDocumentCatalog()` di registry. Urutan = urutan registrasi di definisi.

## Master flow (`bukti-*`)

| `documentType` | Label UI                         | Format | AI              | Catatan                                         |
| -------------- | -------------------------------- | ------ | --------------- | ----------------------------------------------- |
| `bukti-1`      | Identifikasi Kebutuhan Pelatihan | docx   | ✅ 4 grup prompt | TNA Makro                                       |
| `bukti-2`      | Analisis Kebutuhan Pelatihan     | docx   | ✅ 3 grup        | TNA Mikro                                       |
| `bukti-3`      | Peta Kompetensi                  | docx   | ❌               | Dari data unit                                  |
| `bukti-4`      | Unit Kompetensi                  | docx   | ❌               | Dari WSP                                        |
| `bukti-5`      | Rencana Program Pelatihan        | docx   | ❌\*             | \*Enrich screenshot Classroom (bukan AI narasi) |
| `bukti-6`      | Rencana Pemasaran Program        | docx   | ✅ 3 grup        | Marketing plan                                  |
| `bukti-6-deck` | (hidden)                         | pptx   | ✅               | Share AI dengan bukti-6                         |
| `bukti-7`      | Dokumen Kerja Sama               | docx   | ✅ 2 grup        | Perjanjian                                      |
| `bukti-8`      | Laporan Evaluasi Program         | docx   | ✅ 2 grup        | Evaluasi pasca pelatihan                        |

Definisi: `apps/api/src/generation/document-definitions/master-definitions.ts`

Frontend master flow mengirim: `bukti-1` … `bukti-8` (bukan `bukti-6-deck` di UI utama).

## Trainer flow (`trainer-*`)

Semua `aiMode: none` di registry — konten AI sudah masuk lewat **section generator** sebelum compose.

| No | `documentType`                | Label UI                   | Format   |
| -- | ----------------------------- | -------------------------- | -------- |
| 01 | `trainer-tna`                 | Training Needs Analysis    | docx     |
| 02 | `trainer-peta-kompetensi`     | Peta Kompetensi            | docx     |
| 03 | `trainer-program-pelatihan`   | Menyusun Program Pelatihan | docx     |
| 04 | `trainer-lesson-plan`         | Lesson Plan                | docx     |
| 05 | `trainer-pre-test`            | Pre Test                   | docx     |
| 06 | `trainer-post-test`           | Post Test                  | docx     |
| 07 | `trainer-form-feedback`       | Form Feedback Pelatihan    | docx     |
| 08 | `trainer-materi-pelatihan`    | Materi Pelatihan           | **pptx** |
| 09 | `trainer-evaluasi-pelatihan`  | Penilaian Pelatihan        | docx     |
| 10 | `trainer-job-safety-analysis` | Job Safety Analysis        | docx     |
| 11 | `trainer-daftar-bahan`        | Daftar Bahan               | docx     |
| 12 | `trainer-daftar-peralatan`    | Daftar Peralatan           | docx     |
| 13 | `trainer-fr-ia-01`            | FR IA 01 Observasi         | docx     |
| 14 | `trainer-fr-ia-02`            | FR IA 02 Demonstrasi       | docx     |
| 15 | `trainer-fr-ia-03`            | FR IA 07 Pertanyaan Lisan  | docx     |

Definisi: `apps/api/src/generation/document-definitions/trainer-definitions.ts`\
Renderer route: `/api/trainer/{01-15}/{docx|pptx}`

## Branding flow

| `documentType`               | Output | Field AI                                                    |
| ---------------------------- | ------ | ----------------------------------------------------------- |
| `branding-linkedin-post`     | txt    | `content`                                                   |
| `branding-instagram-caption` | txt    | `content`                                                   |
| `branding-email-promo`       | txt    | `subject_line`, `preview_text`, `body`, `ps_line`           |
| `branding-website-hero`      | txt    | `headline`, `subheadline`, `benefits`, `cta_button_text`, … |

Definisi: `apps/api/src/generation/document-definitions/branding-definitions.ts`

## Field yang tidak boleh diubah AI (trainer)

Semua dokumen trainer memproteksi:

* `unit.code`, `unit.name`
* `trainer.name`
* `program.nama_pelatihan`

Plus field struktural per dokumen (mis. `questions`, `elements`, `daftar_bahan`).

## Cek katalog dari API

```bash theme={null}
curl https://app.sertifikasitrainer.com/api/generation/catalog?family=master
```

Parameter `family`: `master` | `trainer` | `branding`
