---
name: disbunak-kalsel
description: Profile, tupoksi, dan knowledge base drh. Edi Santosa – Kabid Peternakan dan Kesehatan Hewan, Disbunak Provinsi Kalimantan Selatan
tags: [profile, government, kalsel, veteriner]
---

# SKILL: Disbunak Kalimantan Selatan — Profile & Knowledge

## Profile
- **Nama**: drh. Edi Santosa (panggil "Pak Edi" atau "Dok Edi")
- **Jabatan**: Kabid Peternakan dan Kesehatan Hewan, Dinas Perkebunan dan Peternakan (Disbunak) Provinsi Kalimantan Selatan
- **Periode jabatan**: 2023–sekarang
- **Diklat PKA**: 2024
- **Kontak/fleed**: Biasa download file langsung dari chat

## Tugas Jabatan (resmi dari Pak Edi — gunakan persis teks ini)
Mengoordinasikan, membina, mengatur, dan mengendalikan penyediaan perbibitan, peningkatan produksi dan pakan ternak, pengamatan, pencegahan dan pemberantasan penyakit hewan serta pengawasan kesehatan masyarakat veteriner.

## Fungsi Bidang Peternakan dan Kesehatan Hewan
a. Penyusunan program, koordinasi, pembinaan, pengaturan, pengendalian penyediaan & standar mutu **perbibitan ternak**
b. Penyusunan program, koordinasi, pembinaan, pengaturan, pengendalian peningkatan & **pengembangan produksi ternak**
c. Penyusunan program, koordinasi, pembinaan, pengaturan, pengendalian kebutuhan & **ketersediaan pakan ternak**
d. Penyusunan program, koordinasi, pembinaan, pengaturan, pengendalian pelaksanaan **pengamatan, penyidikan, pencegahan dan pemberantasan penyakit hewan**
e. Penyusunan program, koordinasi, pembinaan, pengaturan, pengendalian **kesehatan masyarakat veteriner**
f. Pelaksanaan fungsi lain sesuai bidang tugas dan kewenangannya

## Riwayat Jabatan
| Tahun | Jabatan |
|-------|---------|
| 2008 | Petugas Pelayanan Kesehatan Hewan |
| 2012 | Kasi Kesehatan Masyarakat Veteriner (Kesmavet) |
| 2017 | Kasi Kesehatan Hewan & KMV |
| 2023 | Kabid Peternakan dan Kesehatan Hewan |
| 2024 | Diklat PKA (Perjalanan Kebijakan Ahli) |

## Dokumen Referensi
- CV: `/home/ubuntu/.hermes/cache/documents/doc_79d21e60aa39_daftar riwayat hidup_1.docx`
- Chatbot workflow v1 (original): `/home/ubuntu/.hermes/cache/documents/doc_8dbe429a681d_chatbot_whattapp (9).json`
- Chatbot workflow v3 (optimized): `/home/ubuntu/Program Aplikasi/chatbot_whatsapp_optimized.json`
- Laporan analisis chatbot: `/home/ubuntu/kantor/chatbot_whatsapp_2026/Laporan_Analisis_Chatbot_WhatsApp.docx`

## Laporan Kinerja (Pipeline — references/laporan-kinerja-pipeline.md)
Pak Edi memproduksi laporan kinerja triwulanan untuk Bidang Peternakan dan BIB Banjarbaru.
- **Build scripts**: `/home/ubuntu/build_tw1.py`, `/home/ubuntu/build_tw2.py`, `/home/ubuntu/build_bib_tw1.py`, `/home/ubuntu/build_bib_tw2.py`
- **Base**: `/home/ubuntu/build_laporan_base.py` (shared `build_laporan()` function)
- **Output**: `/home/ubuntu/kantor/LAPORAN KINERJA TW[N] 2026 - [Institution].docx`
- **Python venv**: `/home/ubuntu/venv_rra/` (python-docx)

### Laporan yang sudah dibuat (Juli 2026)
| File | Status |
|------|--------|
| `LAPORAN KINERJA TW1 2026 - Bidang Peternakan dan Kesehatan Hewan.docx` | ✅ Final |
| `LAPORAN KINERJA TW2 2026 - Bidang Peternakan dan Kesehatan Hewan.docx` | ✅ Final |
| `LAPORAN KINERJA TW1 2026 - BIB Banjarbaru.docx` | ✅ Final |
| `LAPORAN KINERJA TW2 2026 - BIB Banjarbaru.docx` | ⚠️ Estimasi (harus diupdate dgn CSV Juni) |

## Pipeline Reference
- `references/chatbot-pipeline.md` — teknis lengkap: cara download data, kategori, tools setup, standar privasi, output path
- `references/presentasi-promosi.md` — file presentasi kenaikan pangkat (13 slide, foto Google Drive, tech stack PPTX, pitfalls)
- `references/rag-bkd-pipeline.md` — RAG BKD: 19 dok kepegawaian, trigger `bkd` (chunk count varies — re-query actual DB if precise number needed; updated Juli 2026 with KPLB docs + ChromaDB schema notes)
- `references/rra-supabase-schema.sql` — SQL schema untuk Supabase (jalankan sekali di SQL Editor)
- `references/rag-dohi-pipeline.md` — RAG DOHI: IOHI 846 hal, 5276 chunks, trigger `dohi`
- `references/webserver-lokal.md` — setup web server Python port 8080, troubleshooting Caddy, file locations

## UX Principle — Chatbot WhatsApp (Lessons Learned, Juli 2026)
**JANGAN PAKSA USER BERTANYA 2 KALI.**

Iterasi pertama menu chatbot: cek `first contact` → kirim menu SAJA.
Masalah: user yang langsung tanya di pesan pertama ("kenapa itik saya kurang nafsu makan") malah dapat menu,
lalu harus ulang pertanyaan → 2x tanya, 2x nunggu. Ini **UX yang buruk**.

**Design principle yang benar:**
1. **Langsung proses** pertanyaan user — tidak halangi dengan menu
2. **Menu di-append di akhir jawaban** — user dapat jawaban + opsi下一次 dalam 1 kali balas
3. Menu dikirim **setiap 3 turn**, bukan setiap turn (hemat token)

**Konfigurasi yang berhasil (v3_optimized):**
- `contextWindowLength`: 2 (hemat ~50% token)
- Menu size: ~150 chars (singkat)
- Menu frequency: setiap 3 turn
- System prompt: tambah `ATURAN PEMAHAMAN MENU` di baris paling atas

`references/chatbot-n8n-iterasi.md` → detail iterasi dan konfigurasi node n8n

## Multi-RAG Routing — Explicit User Requirement (Juli 2026)
Pak Edi minta RAG dipisah agar tidak rancu. Konvensi trigger (tanpa slash — Telegram treat `/bkd` sebagai bot command):
## DOHI — Index Obat Hewan Indonesia (IOHI)

**New (Juli 2026).** Dokumen: Index Obat Hewan Indonesia Edisi IX 2014 (846 hal, 17 MB PDF).

| Component | Path |
|-----------|------|
| Source document | `/home/ubuntu/kantor/DOHI_IOHI/Index_Obat_Hewan_Indonesia_IOHI_2014.pdf` |
| ChromaDB storage | `/home/ubuntu/.hermes/rag_dohi_chroma/` |
| Build script | `/home/ubuntu/build_rag_dohi.py` |
| Collection name | `dohi_iohi` |
| Total chunks | 5.276 (chunk size: 600 chars, overlap 80) |

**Query:**
```bash
/home/ubuntu/rag_query.sh dohi "antibiotik untuk sapi sakit pernapasan"
```

**Telegram trigger:** ketik `dohi ` di awal pesan.

**Struktur dokumen IOHI:**
- Hal 11–348: Sediaan Farmasetik (anti bakteri, anti mikotik, anti protozoa, dll)
- Hal 349–480: Sediaan Biologik (vaksin)
- Hal 481–596: Sediaan Premiks (feed additive/suplement)
- Hal 597–602: Sediaan Alami
- Hal 603–810: Sediaan Lain-lain
- Hal 811–846: Indeks Umum (Nama Dagang A–Z)

## Multi-RAG Routing — Active (Juli 2026)

Master router: `/home/ubuntu/rag_query.sh`

```
bkd <pertanyaan>    → RAG BKD kepegawaian (386 chunks) ✅ ACTIVE
dohi <pertanyaan>  → RAG DOHI obat hewan (5276 chunks) ✅ ACTIVE
saham <pertanyaan> → RAG Saham BEI — TODO
<tanpa trigger>    → jawaban bebas (no RAG)
```

Trigger: kata PERTAMA pesan (tanpa slash — Telegram treat `/bkd` sebagai bot command).

## Rebuild RAG
- Suka cek dan koreksi hasil kerja (pernah menemukan error koordinat di shapefile)
- Pakai `/new` kalau percakapan sudah panjang
- Simpan file di `/home/ubuntu/kantor/`
- Minat: saham (BUMI, GJTL, SMSM), valas/forex, emas, analisa teknikal (Ichimoku, Fibonacci)
- Minat multi-agent AI collaboration

## Standar Privasi (WAJIB untuk semua laporan)
- **Nama pengirim/peternak HARUS disamarkan** — jangan tampilkan nama asli orang
- Format: nomor HP dengan 3 digit terakhir di-`xxx`-kan, contoh: `628125xxx0202`
- Berlaku untuk: teks laporan, tabel, grafik, chart
- Pengecualian: hanya nama operator/sistem (misal "drh. Edi Santosa") yang boleh tampil

## RRA App Project — Rapid Risk Assessment (Juli 2026)
Pak Edi membangun aplikasi web RRA untuk pemasukan hewan ke wilayah bebas.
- **App**: `/home/ubuntu/kantor/rra-app/index.html` (single HTML file, ~1040 lines, vanilla JS)
- **Proxy server**: `/home/ubuntu/kantor/rra-app/proxy.js` (Node.js, port 3000) — jembatan browser → Supabase
- **Supabase project URL**: `https://mcgqjqkofsvtqcrzelup.supabase.co` (ref ID: `mcgqjqkofsvtqcrzelup`)
  - CRITICAL: ada huruf `q` di posisi 3 — `mcgqjqk` BUKAN `mcgjqk` (alahan fatal, URL tidak resolve) — tapi ini URL BENAR yang sudah confirm resolve dari VPS
  - Publishable key: `sb_publishable_LDervgNHZ88W3a6XrFETOA_gdDXvDPM`
- **Deployment**: Caddy reverse proxy
  - App (static): `https://rra.edisantosa.com` (HTTPS ✅, SSL via Let's Encrypt)
  - API proxy: `/api/*` → localhost:3000 → Supabase
  - Fallback HTTP: `http://43.157.206.165/rra-app/`
- **Auth**: Supabase Auth (email/password) — SDK `@supabase/supabase-js@2`
- **Database**: PostgreSQL via Supabase — tables `profiles` + `rra_documents` (schema perlu di-create manual via Supabase SQL Editor)

**Arsitektur Deployment:**
```
Browser ──HTTPS──▶ Caddy (rra.edisantosa.com:443)
                   ├── / (static files: index.html, CSS, JS)
                   └── /api/* ──HTTP──▶ Node.js proxy (:3000)
                                                │
                                                └──HTTPS──▶ Supabase API
```

**Kenapa proxy?**
Jaringan Pak Edi (ISP/kantor) memblokir DNS ke `*.supabase.co` — browser tidak bisa fetch langsung ke Supabase. VPS tidak terblock. Solusi: proxy kecil di VPS (Node.js) yang browser akses via domain yang sudah resolve.

**Supabase SQL schema** (jalankan sekali di dashboard Supabase SQL Editor):
- Table `profiles`: id (UUID), full_name, instansi, email, created_at
- Table `rra_documents`: id (UUID), user_id, semua field RRA (judul, penyakit, pathways JSONB, likelihood JSONB, mitigasi, dll.)
- RLS enabled — users hanya bisa akses data sendiri
- Trigger `handle_new_user()` untuk auto-create profile saat signup
- Full schema: `references/rra-supabase-schema.sql`

**RRA methodology reference** (sudah dipelajari dari Pedoman + Contoh dokumen):
- 5 langkah wizard: Identifikasi Bahaya → Jalur Risiko → Likelihood & Consequence → Mitigasi → Kesimpulan
- 5×5 risk matrix (likelihood × consequence): Rendah/Sedang/Tinggi/Sangat Tinggi
- Output: dokumen RRA dengan masa berlaku 30 hari (default)

## Pitfalls & Lessons Learned (Juli 2026)
1. **PAK EDI HARUS DIHAPUS DARI DATASET**: Nomor `6281256560202` adalah operator chatbot (131 pesan).
2. **Font Arial 12 throughout** — semua paragraf body DAN tabel, tanpa exception.
3. **BAB heading: CENTERED** (bukan left-aligned). Sub-bab: left-aligned.
4. **First-line indent 1.5cm** pada setiap paragraf body (bukan normal indent).
5. **Tabel TIDAK boleh split** — pakai `cantSplit` XML agar tidak terpotong antar halaman.
6. **Pembahasan: deep analysis** — minimum 3-4 kalimat per sub-section, bukan ringkasan 1 kalimat.
7. **Documents are FINAL** setelah Pak Edi approve — jangan diubah tanpa instruksi.
8. **Supabase URL typo = fatal**: `mcgqjqkofsvtqcrzelup` (ada huruf q) adalah URL BENAR.
9. **Jaringan blok Supabase = pakai Node.js proxy**.
10. **BIB uses a DIFFERENT document format** from Bidang Peternakan — do NOT use the same build script. BIB format requires:
    - BAB I: Benefit + Impact as separate sub-sections (not merged with Outcome)
    - BAB III Tabel 2: header "TARGET | REALISASI" — TWO columns only, not percentage+capaian
    - BAB III Tabel 3 (perbandingan): col headers = "Realisasi TW[n] 2025 (%) | Realisasi TW[n] 2026 (%)"
    - Evaluasi: 3 grouped sub-sections — A. Sub Bagian Tata Usaha, B. Seksi Pengkajian dan Pemeliharaan, C. Seksi Produksi dan Distribusi
    - **CRITICAL**: Always extract text from reference DOC first before building BIB docs — use olefile method (see references/laporan-kinerja-pipeline.md)
    - **CRITICAL**: Use "OPRE" (Optimalisasi Reproduksi) — NEVER write "SIKOMANDAN" in BIB documents (that term does not exist in BIB's vocabulary; OPRE is the correct program name)
    - **CRITICAL**: Old .DOC files contain binary garbage after the readable text — only capture ASCII printable + tab/lf/cr chunks; discard binary control bytes; stop at "PAGE \\* MERGEFORMAT" or similar field codes
    - CSV BIB may have empty Hambatan/Upaya/Tindak Lanjut columns — write generic narrative instead of leaving blank
