SOP Sesi Chat Tim AI
Aturan SESI CHAT untuk semua staf AI (Akbar, Ary, Opi, Devi, Dika, Eko): satu sesi tetap per peran, kapan & bagaimana sesi direset, isi berkas serah-terima, dan cara melanjutkan sesudahnya.
Dipisah dari SOP Memori atas permintaan Pak Adi 14/10/2026. Dasar: Pak Adi 13/10 (sesi persisten, reset tiap ≥200rb token; serah-terima pendek ≤3 KB). Memori (di mana catatan disimpan, bentuknya, cara isi/ambil) ada di halaman SOP Memori.
1. Prinsip
Tiap peran memakai SATU sesi chat TETAP (persisten) yang terus hidup. Sesi tidak dibuka-tutup per orang, per grup, atau per tugas.
- Sesi direset (
/clear) begitu panjangnya ≥200.000 token — sesudah staf menulis berkas serah-terima pendek.
- Isi chat HILANG saat reset. Karena itu hal penting (keputusan Pak Adi/owner, aturan baru, profil orang, tugas) ditulis ke tempatnya menurut SOP Memori saat itu juga, bukan menunggu reset.
- Serah-terima hanya menyimpan keadaan kerja saat reset. Bukan tempat aturan.
2. Identitas sesi: dari mana tahu sesi ini Ary/Dika/Eko
- Sesi tahu dirinya dari FOLDER tempat ia dibuka. Tiap peran punya folder sendiri, dan di dalamnya ada CLAUDE.md peran yang otomatis terbaca saat sesi dibuka ("Kamu Dika, desainer…"). Folder:
cs-wa = Ary, desainer = Dika, coding = Eko, manager = Akbar (Opi & Devi: folder perannya di mars).
- Sesi TETAP per peran dibuka di folder perannya. Sesudah direset, sesi baru ada di folder yang sama, jadi tidak bisa salah peran dan Pak Adi tidak perlu menyetel apa pun.
- Akun Claude (login): ditentukan oleh folder setelan akun (akun 1 =
/root/.claude, akun 2 = /root/.claude2; tiap akun cukup login sekali). Pembagian peran → akun diputuskan Pak Adi.
3. Batas & cara mengukur panjang sesi
- Batas: 200.000 token (Pak Adi 13/10).
- Cara ukur: buka transkrip sesi
~/.claude/projects/<folder>/<sessionId>.jsonl (atau ~/.claude2/… untuk akun 2). Ambil baris assistant TERAKHIR yang bukan isSidechain, lalu jumlahkan di bagian usage:
input_tokens + cache_creation_input_tokens + cache_read_input_tokens = ukuran konteks (isi yang dibaca ulang tiap giliran).
- Yang mengukur adalah skrip penjaga (§8), bukan Claude mengecek sendiri berulang-ulang.
4. Sebelum reset (WAJIB, urut)
- Selesaikan dulu balasan pelanggan yang setengah jadi. Jangan reset di tengah melayani.
- Pastikan hal penting sudah tertulis di SOP/berkas yang tepat — bukan cuma di chat. Ada aturan/cara baru yang belum tertulis → tulis ke SOP dulu.
- Catat cron & tugas latar. Terbukti 13/10: cron dan tugas latar TIDAK hilang saat
/clear, dan notifikasinya masuk ke sesi baru. Agent latar yang masih jalan → tunggu selesai, atau tulis tugasnya di serah-terima.
- Tulis ULANG UTUH berkas serah-terima (§5).
- Jalankan skrip reset (§8) lalu akhiri giliran — jangan mulai pekerjaan baru.
5. Berkas serah-terima
- Nama:
SERAH_TERIMA_<NAMA>.md di folder peran. Ukuran maks 3 KB. Ditulis ulang utuh tiap sebelum reset (bukan ditambah di bawah).
- DILARANG menyalin isi SOP/resep/aturan/riwayat — cukup tunjuk berkasnya (path + nomor bagian).
- Yang sudah selesai & dilaporkan tidak ditulis (log/papan tugas yang jadi buktinya).
- Tanpa rahasia (password, token, kode) — tunjuk lokasinya saja.
Templat (4 butir)
# SERAH-TERIMA <NAMA> — <tgl> ±<jam> WIB
1. Identitas: <nama, peran 1 kalimat>. Aturan: <folder>/CLAUDE.md. Resep: <berkas SOP/resep>.
2. Alat: nyalakan sesuai <resep> §<n> (cek ps + CronList dulu, jangan ganda).
Hanya HAL BARU: mana yang sudah mati / ID cron / path hitungan sementara.
3. Pekerjaan berjalan:
| Apa | Untuk/oleh siapa | Langkah berikut | Path hasil |
4. Menunggu siapa: <Pak Adi / owner / staf / pelanggan> — hal apa (1 baris per hal).
Cek sebelum reset
Ukuran ≤3 KB · tak ada paragraf "cara" (kalau ada → pindah ke SOP) · tiap baris butir 3 punya langkah berikut yang bisa langsung dikerjakan.
6. Reset (/clear)
- Ketik
/clear di terminal sesi (oleh skrip penjaga — §8 — atau manual bila skrip belum ada).
- Lalu kalimat pembuka, contoh:
Kamu <Nama>. Baca <path SERAH_TERIMA> lalu nyalakan alat sesuai bagian 2 dan lanjutkan kerja.
7. Sesudah reset
- Baca serah-terima dulu (bukan menebak dari ingatan).
- Cek proses latar (
ps) + CronList DULU; nyalakan hanya yang belum ada. Jangan ganda — dua penunggu WA bisa rebutan pesan.
- Nyalakan lagi pemantau panjang sesi (§8) — pemantau lama sudah keluar.
- Lanjutkan pekerjaan dari butir 3 serah-terima; lapor singkat ke manajer bila diminta.
8. Skrip penjaga (reset otomatis)
- Pemantau (tugas latar, 0 token): mengukur panjang sesi (§3) berkala. Lewat 200rb → pemantau keluar & mencetak peringatan → sesi terbangun → kerjakan §4.
- Skrip reset dijalankan terlepas (
setsid nohup … &) supaya tetap hidup sesudah /clear; sesi lalu mengakhiri giliran.
- Skrip menolak reset kalau berkas serah-terima belum diperbarui sesudah peringatan (urutan wajib: serah-terima dulu, baru reset).
- Skrip menunggu sesi DIAM: giliran terakhir sudah selesai, transkrip tak berubah ≥20 detik, sesi tidak sibuk, tak ada agent latar yang menulis dalam 2 menit terakhir; khusus CS: tak ada pesan pelanggan <20 menit yang belum ditangani. Baru mengetik ke screen/tmux sesi itu.
- Tak pernah diam dalam 30 menit → batal sendiri, sesi tetap utuh.
- Sasaran diverifikasi dari proses (screen → proses claude → sessionId), bukan ditebak dari nama berkas.
Jebakan teruji
- Teks + Enter dalam satu kiriman dibaca sebagai TEMPELAN → Enter tertelan. Kirim
/clear, jeda, Enter terpisah; kalimat pembuka sama (teks, jeda 1,5 detik, Enter).
- Kalimat pembuka dilarang memuat backslash,
$, ^, tanda kutip, atau baris baru (diurai terminal / jadi Enter prematur).
9. Pesan masuk ke sesi
Alur CS (contoh Budi chat)
- WA masuk → penunggu (skrip yang berjaga) membangunkan sesi CS tetap.
- Sesi cari
kode_orang dari nomor WA (belum ada = dibuat).
- Ambil paket: profil terbaru + tahap produk + kartu PK yang relevan menurut makna pesannya (bila perlu) — rincian di SOP Memori §8b.
- Jawab.
- Bila ada hal baru (keberatan, rencana, janji): tulis profil versi baru / baris tugas FU saat itu juga.
Pesan beruntun dalam 30–60 detik tetap digabung jadi satu panggilan.
Grup WA
- Tiap pesan grup: skrip tahu SIAPA pengirimnya. Yang dimuat: profil grup + 20–30 obrolan terakhir grup + catatan grup si pengirim (
grup_anggota + grup_topik aktif).
- Jawab dengan balas/kutip pesannya + sebut nama pengirim.
- Urusan pribadi (harga khusus, data akun, pembayaran) dipindah ke japri.
- Catatan grup dan japri TERPISAH: saat menjawab di grup, sesi tidak memuat profil japri (supaya hal pribadi tidak bocor). Saat menjawab japri, sesi boleh membaca catatan grup orang itu dengan label "disampaikan di grup X (publik)". Rincian tabel di SOP Memori §3.
- Balasan yang ditunggu dari grup (mis. admin cabang menjawab untuk konsumen X): tugas "menunggu jawaban cabang (konsumen X)" diubah status siap, lalu sesi CS menjawab konsumennya.
10. Larangan
- DILARANG mengandalkan ingatan sesi chat untuk fakta tentang orang, produk, atau tugas.
- DILARANG reset sebelum serah-terima ditulis ulang.
- DILARANG menyalakan alat ganda sesudah reset (cek
ps + CronList dulu).
- DILARANG membuka sesi baru per orang/grup/tugas — satu sesi tetap per peran.