

## hc56 Healthcare StudioSoft (2026-10-05 02:03 WIB)
- Threads carousel: 06 Oct 2026 09:00 WIB | album `6ac2a2fa17330783852e760d` + 2 replies (`6ac2a2fa07008e0e91e553ea`, `6ac2a2fb17330783852e762b`)
- FB TEXT `6ac2a2fb07008e0e91e553fa` (07 Oct 2026 19:30 WIB) memakai artikel `7-aplikasi-mental-health-anak-usia-4-10-tahun-yang-harus-dicoba-orang-tua`
- LinkedIn: SKIP (artikel `digital-marketing-rumah-sakit-indikator` sudah ada di antrean LI pending)
- Artikel: https://studiosoft.id/digital-marketing-rumah-sakit-indikator/


## 02:3x WIB — Carousel feed IG StudioSoft (cron `ss-ig-carousel-feed`) — SKIP

**Slot 05 Okt 08:30 WIB sudah terisi** (dipasang manual 2 Okt bareng seri industri) → sesuai aturan
maksimal 1 carousel/hari/akun, tidak ada deck baru yang dibuat dan tidak ada yang diubah.

- Jadwal: album `6abef75f173307838553b2b6`, "Carousel IG SS — Analitik & Data Marketing Properti",
  topic `Seri Properti: SEO, Insight, Analitik & Data`, 10 media `ss_car10_analitikproperti_01..10.jpg`.
  Story mirror `6abef75f07008e0e9147296c` @08:40 (kanvas 1080x1920).
- Verifikasi baca balik API: `pending`, akun Kreasi Studiosoft, `type=album`, 10 media urut, `replies=[]`,
  caption 947 char, CTA ekor lolos, 7 hashtag huruf kecil, 0 mention, 0 CJK.
- Media: 10/10 JPEG **200 di KEDUA ingress** (153 & 217); story canvas juga 200 di kedua ingress.
- Ritme warna (`ritme_warna_ss.py`): 4 Okt 19:00 reel PUTIH (success) → **5 Okt 08:30 carousel BIRU ✅**
  → 11:00 reel PUTIH ✅ → 19:00 reel BIRU ✅ (cocok rantai + patokan tanggal ganjil).
- QC visual slide 1/5/10: header STUDIOSOFT, counter n/10, footer www.studiosoft.id, tag `#analitikproperti`,
  rata kiri, tanpa overflow/tofu. Slide 1 & 5 navy, slide 10 putih (pola selang-seling).
- Catatan caption: dua baris link sama-sama `https://studiosoft.id/layanan/` (hasil pengalihan
  `perbaiki_link_mati.py` 4 Okt, karena artikel properti live-nya baru 6-14 Okt). Link hidup (200,
  title "Layanan | StudioSoft"). Tidak diubah.
- Skrip probe: `verif_car10_05okt.py`, `cek_caption_car10_05okt.py`.

## 04:00 WIB — Threads harian (job `threads-all-harian`)

- Dibuat 4 jadwal (semua `pending`, `replies=[]`, `media=0`, 0 mention, hashtag huruf kecil, 0 CJK):
  - @ukyhandoko 14:00 `6ac2bf3407008e0e91e93e62` (435 char) — AI & Otomasi
  - Tslaw 17:00 `6ac2bf3407008e0e91e93e66` (476) — Hukum Bisnis
  - TSC 20:00 `6ac2bf3507008e0e91e93e6c` (478) — Mitos & Fakta Kulit
  - DAS 23:00 `6ac2bf3507008e0e91e93e74` (475) — Diagnosa & Perawatan Mesin
- StudioSoft **SKIP** sesuai guard maks 1 konten/hari/akun (album 09:00 'SEO Rumah Sakit' + anak 09:01
  sudah ber-link studiosoft.id; slot 11:00 & 20:00 diisi bank percakapan SS).
- Link FRESH (belum pernah dipakai di 1.854 jadwal Repliz, HTTP 200 dari host):
  studiosoft.id/tools-analisis-kompetitor-media-sosial · tslaw.id/cara-memilih-law-firm-surabaya-untuk-perusahaan ·
  theskincodeclinic.com/7-mitos-vs-fakta-tentang-dokter-kulit-kelamin-yang-perlu-kamu-tahu ·
  dasindonesia.com/check-engine-menyala-tiba-tiba-7-langkah-wajib-lakukan-sekarang
- Script: `dump_repliz_20261005.py`, `kandidat_20261005.py`, `gen_threads_20261005.py`,
  `verif_threads_20261005.py`. Patch: `schedule_all_threads.py` (topic/title per item).


---

## Pemutusan kontrak lanjutan (5 Okt 2026, perintah Bos)

**Apotek Pamekasan** — "sudah tidak kontrak dengan kita".
**Otomasi Bisnis Pintar** dan **Ekaduta** — "sudah tidak kontrak lagi / putus kontrak dengan kita".

Yang dikerjakan untuk ketiganya:
- Repliz: **tidak ada akun maupun jadwal** untuk ketiga brand (0 akun, 0 jadwal dari 1.854 jadwal discan) — sudah bersih dengan sendirinya.
- Job `WP Rocket Cache Rebuild` (d0b98dc7afbc): domain `apotekpamekasan.com` dikeluarkan → tinggal 9 domain.
  Prompt diperbarui sekaligus mencatat daftar klien yang sudah putus.
- Prompt `literatur-tambah-mingguan` (dc8765a573d0): ketiganya masuk daftar larangan; daftar klien aktif
  diperbarui (Kendangsari Hospital sebagai klien aktif, MERR bukan).
- `kpi_konfigurasi_klien.py`: `TANPA_AKSES` dikosongkan — 10 klien aktif semuanya punya akses GSC.
- Cron lain diperiksa: tidak ada rujukan nyata (hanya kata "otomasi pemasaran" yang bukan nama klien).

**Daftar klien yang SUDAH PUTUS (jangan dikerjakan lagi):** LEIT Surabaya, Nucleasoft, Warung Pak Otto,
Apotek Pamekasan, Otomasi Bisnis Pintar, Ekaduta, RSIA Kendangsari MERR (rsiamerr.com).
**Masih dihandle:** StudioSoft, DMark Creative, TSLaw, DAS Bengkel Indonesia, The Skin Code Clinic,
Yasmanatura, Kendangsari Hospital (rsia.kendangsari.com), EveryBe, Abimata, Surabaya Skin Centre,
Apotek Arek Lancor.

---

## Facebook Yasma Natura — share 1 artikel website/hari (5 Okt 2026, perintah Bos)

Perintah Bos: *"tolong untuk Facebooknya Yasma Natura di perhatikan, pastikan setiap hari share 1 artikel dari
artikel di website yasma"*.

Temuan awal: akun **FB `yasmanatura`** (`6a3b41e3c5ff4ce3a327544b`, `isConnected: true`) **0 jadwal** —
belum pernah posting lewat Repliz sama sekali. Tidak ada akun Threads Yasma di Repliz (script lama
`yasma_threads_scheduler.py` keliru memakai ID FB itu sebagai Threads).

Yang dipasang:
- **1 post/hari, 11:00 WIB**, `type=text`, link artikel di caption, `replies=[]` (FB wajib kosong).
- Script `fb_yasma_harian.py` (mode `preview` / `run N` / `cron`) + wrapper
  `profiles/atun/scripts/fb_yasma_harian.sh` + audit `verif_fb_yasma.py`.
- **16 jadwal dipasang 5–20 Okt** (5 Okt 14:00 karena 11:00 sudah lewat; 6–20 Okt 11:00), semua `pending`,
  verifikasi baca balik: 0 masalah (tipe, replies kosong, link yasmanatura.co.id ada, CTA ada,
  hashtag huruf kecil, 0 CJK). Caption 528–836 char, 3 varian bergantian.
- Sumber: WP REST `yasmanatura.co.id/wp-json/wp/v2/posts` (60 terbaru, `curl -4` + cache-buster) → queue
  baru→lama, sekali pakai; tiap artikel dicek ulang `?slug=...&status=publish` sebelum dipakai.
- Cron **`fb-yasma-harian` (`e6f4ad52e6b4`, `0 23 * * *` = 06:00 WIB, `--no-agent`, deliver Telegram)** —
  tiap hari menambah 1 hari di ujung buffer (jaga buffer ~15 hari) dan cuma mengirim 1 baris hasil.
  Diuji `hermes cron run`: `completed`, output `✅ 2026-10-20 11:00 WIB | id=6ac33c5b...`.

Stok: 146 artikel publish di website → cadangan ~4 bulan ke depan.

### Revisi caption → bahasa humanis (perintah Bos 5 Okt)

Bos: *"untuk caption gunakan bahasa yang humanis"*. Generator caption di `fb_yasma_harian.py` diganti:
**4 varian gaya ngobrol** (buka dengan kalimat percakapan, bukan "Uraian lengkapnya ada di artikel ini"),
rotasi `slot.toordinal() % 4`, link ditaruh setelah judul di baris sendiri, penutup berupa pertanyaan ke pembaca.
Ringkasan excerpt dipendekkan 480 → 380 char.

16 jadwal yang sudah terpasang **diperbarui semuanya** via `update_caption_fb_yasma.py --go`
(PUT `description` + baca balik): **16/16 caption cocok, 0 masalah**, semua tetap `pending`.
Panjang caption sekarang 528–798 char. Audit ulang `verif_fb_yasma.py`: 0 temuan.

Lanjutan: Bos minta **lebih santai lagi** → generator diganti ke v2: "aku/kamu" (bukan "saya/Anda"),
kata sehari-hari ("nggak", "banget", "kepake", "ditanyain"), dan `Anda` → `kamu` di dalam ringkasan excerpt
(judul artikel dibiarkan apa adanya karena itu headline asli). 16 jadwal di-PUT ulang via
`update_caption_fb_yasma.py --go`: **16/16 cocok, 0 masalah**, semua tetap `pending`, panjang 501–750 char.
Preview caption dari API: `_tampil_caption_yasma.py [tanggal]`.

### Aturan nada per kanal (Bos 5 Okt): website resmi-B2B, sosmed santai

Bos: *"iya di website lebih humanis tapi tetap resmi n sifatnya untuk B2B namun jika untuk social media,
gunakan bahasa yang lebih santai, termasuk di threads"*.

Yang dikerjakan:
- Aturan ditulis di **`AGENTS.md`** (bagian baru "Nada per kanal") + **skill `atun-social-automation`**
  (Golden rules) + profil user.
- **Prompt cron `threads-all-harian` (`16e1f3f8170d`) diperbarui** (job ini `workdir=None`, jadi AGENTS.md
  tidak terbaca otomatis): 4 baris nada lama ("gaya saya bukan gue", "Menurut Anda", dll) diganti, plus blok
  baru "NADA SOSMED — SANTAI". Backup `cron/jobs.json.bak-20261005-nada`.
- **Prompt cron `daily-image-posting-all` (`563618b0f31b`) ditambah blok "NADA SOSMED & HASHTAG"**
  (contoh lama di prompt masih pakai "Anda" + hashtag besar `#DigitalMarketing`).
  Backup `cron/jobs.json.bak-20261005-nada2`. Job `ss-ig-carousel-feed` tidak perlu diubah karena punya
  `--workdir` + skill (AGENTS.md & skill sudah memuat aturan).
- **Script `fb_studiosoft_harian.py`**: builder caption FB & Threads sekarang sadur "Anda" → "kamu";
  builder LinkedIn DIBIARKAN resmi (B2B). Diuji `_uji_caption_ss.py`: FB/Threads 0 "Anda", LinkedIn tetap ada.
- **Belum dikerjakan (butuh GO Bos, perubahan massal):** menyunting caption yang SUDAH terjadwal —
  131 jadwal Threads teks pending + post teks FB SS. Tools: `_sampel_nada_threads.py`, `update_caption_fb_yasma.py`.

---

## Video TS Law — "Wanprestasi vs PMH" (5 Okt 2026, kiriman Bos via MEGA)

Bos: *"ok kita mulai upload video untuk TSLaw .. berikut adalah Videonya"* → video dikirim lewat link MEGA
(`mega.nz/file/3dtEhYiB#...`), **tanpa caption**.

- Asal: `PMH - WAN PREASTASI.mp4` — **HEVC 2160x3840 (4K vertikal), 30 fps, 31,5 dtk, 17,3 Mbps, 68,6 MB**
  (unduh `node _mega_tool/mega_dl_file.js ... tslaw_video_okt05`).
- Isi video (dibaca dari 8 frame): penjelasan beda **wanprestasi** (tidak memenuhi kewajiban dalam perjanjian)
  vs **PMH / perbuatan melawan hukum** (melanggar hukum + merugikan orang lain, contoh "merusak barang orang
  lain"), ditutup CTA + logo **Tito Suprianto Law Firm**. Stamp kamera `2026/10/02 02:24 PM CAMERA 01`.
- Transcode H.264 1080x1920 (profile high, level 4.1, crf 21, aac 128k, faststart) →
  `openclaw-img/tslaw_video_wanprestasi_pmh_1005_h264.mp4` (1080x1920, 31,5 dtk, 10,7 MB).
  **HTTP 200 di 3 jalur funnel** (biasa + `--resolve` 103.84.155.153 dan .217).
- **Jadwal dipasang 6 Okt 2026** (slot 6 Okt semua bebas; 1 post/hari/akun aman):
  - Threads 09:00 WIB `6ac350011733078385572534` (caption 413 char)
  - IG 11:00 WIB `6ac35001173307838557253e` (caption 938 char)
  - FB 19:30 WIB `6ac350011733078385572548` (caption 938 char, `replies=[]`)
  - **LinkedIn TSLaw tetap SKIP** (STOP sejak 10 Sep, perintah Bos).
  Semua `pending`, `type=video`, `replies=0`, media = file di atas (verifikasi baca balik API).
- **Caption = DRAFT Atun** (Bos tidak mengirim caption): santai "kamu", 0 mention, hashtag huruf kecil
  (#wanprestasi #perbuatanmelawanhukum #hukumperdata #edukasihukum #titosupriantolawfirm), CTA komentar di
  ekor, 0 CJK. Kalau Bos mau ganti → PUT `description` pada 3 id di atas.
- Skrip: `schedule_tslaw_video_pmh_1005.py` (idempoten + gate 200 tiga jalur + validasi caption) dan
  `verif_tslaw_video_pmh_1005.py`.
- Pengawas tayang: cron **`tslaw-video-pmh-check` (`5498dd7b4c59`)**, `0 0,4,13 7 10 *`, `--no-agent`,
  repeat 3, deliver Telegram → `scripts/cek_tslaw_video_pmh.sh` → `cek_tslaw_video_pmh.py`
  (stdout kosong = aman). Uji jalan: senyap, exit 0.

---

## Carousel TS Law — "Sudah divonis narkotika, masih bisa PK?" (5 Okt 2026, kiriman Bos `ts2.zip`)

Bos: *"kamu cek n buatkan captionnya .. pasang di IG , Threads n semua sosmed TSLAW — pastikan carusel dan
urutannya betul sesuai dengan urutan mulai 1 png hingga 6 png"*.

- Aset: `ts2.zip` → 6 PNG 1080×1350 (`1.png`..`6.png`). Isi (dibaca via vision):
  1) cover/hook "Sudah divonis bersalah dalam perkara Narkotika, apakah masih bisa diperjuangkan?" ·
  2) "Tentunya, bisa." + PK = upaya hukum luar biasa terhadap putusan berkekuatan hukum tetap ·
  3) "PK bukan sekadar meminta hakim mengurangi hukuman, melainkan harus ada alasan hukum yang jelas" ·
  4) alasan PK: bukti baru / pertentangan putusan · 5) kekhilafan hakim + Pasal 318 UU No. 20 Tahun 2025 (KUHAP) ·
  6) CTA "Kalau kalian ada pertanyaan, tulis di kolom komentar ya". Footer tiap slide: Tito Suprianto Law Firm ·
  www.tslaw.id · @tslaw_firm · #hukumpidana.
- Konversi PNG → JPEG q90 `openclaw-img/tslaw_pk_narkotika_01..06.jpg` (1080×1350, ~450–470 KB), **200 di 3 jalur funnel**.
- **Tayang 8 Okt 2026** (slot 6 Okt sudah dipakai video PMH; 7 Okt IG/Threads/FB sudah ada post feed →
  aturan 1 post/hari/akun): IG 09:00 WIB, Threads 09:00 WIB, FB 19:30 WIB. **LinkedIn TSLaw SKIP (STOP).**
- ID jadwal (semua `pending`, `type=album`, 6 media urut, `replies=[]`):
  Threads `6ac350a9173307838557507d` (440 char) · IG `6ac350a91733078385575090` (1.319 char) ·
  FB `6ac350a9173307838557509f` (1.319 char).
- **Bukti urutan** (`verif_tslaw_car_pk_1005.py`): matriks rata-rata beda pixel file terpasang vs PNG kiriman →
  diagonal 0,08–0,11 ; off-diagonal 10,98–21,61 → argmin tiap baris ada di kolom yang sama = **0 slide tertukar**.
  Contact sheet bukti visual: `/tmp/tslaw_car_pk_contact.jpg`.
- Caption = draft Atun (Bos tidak mengirim caption), nada santai "kamu/kalian" sesuai aturan nada sosmed 5 Okt,
  footer tetap gaya TS Law (link https://tslaw.id + WA +62 819-0922-2026 + disclaimer edukasi), hashtag huruf kecil.
- Skrip: `schedule_tslaw_car_pk_1005.py` (validasi caption + gate media 3 jalur + idempoten) ·
  `verif_tslaw_car_pk_1005.py` (baca balik + bukti urutan + contact sheet) · `cek_media_car_tslaw.sh`.

---

## Generator slide gaya TS Law (5 Okt 2026 — "tun kamu bisa buat gambar seperti itu")

Bos nanya apakah bisa bikin desain seperti carousel TS Law kirimannya. Dibuat generator PIL
`gen_tslaw_slide.py` (tanpa tools luar): krem kertas bertekstur (#EEE5D7) + headline SF Pro Display Bold
+ aksen oranye (#F95F34) + goresan kuas & panah putus-putus, header/footer sama seperti file Bos.

- Mode: `--demo` (3 slide contoh) / `--deck file.json` / `--ext jpg`.
- QC 2 putaran pakai `vision_analyze` + lembar pembanding `buat_perbandingan_tslaw.py`
  → `/tmp/tslaw_gen/perbandingan.jpg` (asli kiriman Bos vs buatan sendiri, berdampingan).
- Temuan putaran 1 lalu diperbaiki: polygon goresan raksasa (salah jumlah argumen), panah menabrak body text,
  jarak daftar poin terlalu rapat, headline terlalu lebar (ditambah opsi `maxw`).
- Hasil: `/tmp/tslaw_gen/tslaw_gen_01..03.png` — dikirim ke Bos sebagai bukti. Detail di
  skill `atun-social-automation` → `references/carousel-ops.md`.

---

## Carousel 10 slide "Mitos atau Fakta? 8 anggapan hukum yang sering keliru" (5 Okt 2026)

Perintah Bos: *"coba bahas tentang mitos atau fakta lainnya . tolong kamu buat dengan format text seperti itu
1 carousel berisi 10 slides total"* → dibuat **sendiri** pakai generator `gen_tslaw_slide.py` (bukan aset kiriman).

- Deck: `deck_tslaw_mitos10.json` (10 slide: cover + 8 mitos/fakta + CTA), render
  `/tmp/tslaw_mitos10/tslaw_gen_01..10.png` (1080×1350). Slide mitos/fakta = label oranye **MITOS n** +
  pernyataan bold + goresan oranye + **FAKTANYA** + penjelasan.
- 8 mitos dipilih yang **belum pernah** dipakai seri lama (seri poster Bos 22 Sep–22 Okt sudah memakai:
  viral≠bersalah, utang & pidana, sah tanpa notaris, jaminan utang macet, lapor polisi≠vonis, bantuan hukum,
  penyitaan, panggilan saksi, KTP jaminan, tanda tangan digital, hak setelah resign): 24 jam lapor ·
  chat WA bukti · rekaman tanpa izin · pisah rumah otomatis cerai · anak di bawah umur · hak cipta tanpa
  pendaftaran · barang online cacat · PHK sepihak.
- Generator diperluas: tipe slide `mitos` (label + teks bold + goresan + fakta), ikon `bookmark` untuk CTA,
  `tulis_blok`/`ukuran_blok` (wrapping + auto-fit jumlah baris), opsi `maxw`.
- **Pitfall putaran QC 1:** teks mitos & fakta keluar kanvas karena `tulis()` tidak melakukan wrapping, dan
  `ukuran_pas()` hanya mengukur per baris eksplisit → diganti `tulis_blok` + `ukuran_blok` (batas baris).
  Panah di slide CTA menabrak headline → panah dihapus, cukup ikon bookmark (seperti file asli Bos).
- Caption siap pakai: `caption_tslaw_mitos10.txt` (versi IG/FB + versi Threads ≤500 char).
- Rencana tayang (belum dipasang, menunggu GO Bos): **9 Okt 2026** — IG 09:00 · Threads 09:00 · FB 19:30
  (slot 8 Okt sudah dipakai carousel PK Narkotika).

### Carousel "Mitos atau Fakta — 8 anggapan hukum" DIPASANG 10 Okt 2026 (perintah Bos 5 Okt)

Bos: *"ok sip pasang itu 2 hari setelah postingan carousel (tadi) tayang"* → carousel 10 slide dipasang
**10 Okt 2026** (carousel PK tayang 8 Okt + 2 hari): IG 09:00 · Threads 09:00 · FB 19:30 WIB.
Semua `pending`, `type=album`, 10 media urut, `replies=[]`:

- Threads `6ac3539707008e0e9104842f` (caption 358 char)
- IG `6ac35397173307838558141e` (caption 1.166 char)
- FB `6ac3539707008e0e91048445` (caption 1.166 char)

Media: `/tmp/tslaw_mitos10/tslaw_mitos10_01..10.png` → JPEG q90 `openclaw-img/tslaw_mitos10_01..10.jpg`
(442–481 KB, **200 di 3 jalur funnel**). Urutan diverifikasi matriks beda-pixel: diagonal 0,08–0,09 vs
off-diagonal 3,67–26,52 → 0 slide tertukar.

**Penyesuaian jadwal yang dilakukan:** poster seri lama `tslaw_mitos_fakta_07` (Mitos atau Fakta: Penyitaan
Barang) semula di 10 Okt dan bentrok persis dengan slot album (Threads 09:00 & FB 19:30) → digeser ke
**11 Okt** dengan jam sama (Threads 09:00 · IG 11:00 · FB 19:30) lewat `geser_poster_mitos07_ke11okt.py`
(PUT, 3/3 balas 204, status tetap `pending`, media utuh). Alasan: jaga aturan 1 post feed/hari/akun.

Skrip: `schedule_tslaw_mitos10_1005.py` (validasi caption + gate 200 3 jalur + idempoten) ·
`verif_tslaw_mitos10_1005.py` (baca balik + bukti urutan) · `cek_media_mitos10.sh` ·
caption siap pakai `caption_tslaw_mitos10.txt`.

### Tukar tanggal TS Law (perintah Bos 5 Okt): carousel -> 12 Okt, poster Penyitaan Barang -> 10 Okt

Bos: *"ganti tanggal 10 : poster Penyitaan Barang (bergeser) — tanggal 12 : carousel Mitos atau Fakta (10 slide)"*
→ kebalikan dari penyesuaian sebelumnya.

- Carousel 10 slide "Mitos atau Fakta" dipindah **10 → 12 Okt 2026**: IG 09:00 (`6ac35397173307838558141e`) ·
  Threads 09:00 (`6ac3539707008e0e9104842f`) · FB 19:30 (`6ac3539707008e0e91048445`).
- Poster `tslaw_mitos_fakta_07` (Penyitaan Barang) dikembalikan **11 → 10 Okt**: Threads 09:00 · IG 11:00 ·
  FB 19:30 (id `6ab10f373032e3a79cf452d8`, `6ab10b463032e3a79cf2e95e`, `6ab10f3702078a414ace923a`).
- Skrip `tukar_tanggal_tslaw_10_12.py` (dry run → `--go`): 6 PUT balas **204**, semua tetap `pending`,
  tipe & jumlah media utuh. Urutan eksekusi penting: carousel dikeluarkan dari 10 Okt dulu, baru poster masuk.
- **Pitfall skrip:** `json.load(r).get("doc") or json.load(r)` → body respons sudah habis dibaca, json.load kedua
  melempar `JSONDecodeError`; baca sekali lalu pakai variabelnya.
- Verifikasi ulang 8–14 Okt: **1 post feed/hari/akun** — 8 Okt carousel PK · 10 Okt poster Penyitaan Barang ·
  12 Okt carousel Mitos (10 slide) · 13 Okt poster Panggilan Saksi. Slot 9 & 11 Okt kosong (bebas).
