
## 01:00 WIB — Job gambar harian @ukyhandoko Threads (cron `daily-image-posting-all` `563618b0f31b`) — item index 71

State awal: `image_posting_state.json` index **71/88** → item `uky_quote4_klien_mitra_bukan_raja`
(`uky4_output/klien_mitra_bukan_raja_putih.png`, brand `ukyhandoko` → hanya Threads @ukyhandoko
`6a334e89c5ff4ce3a3225a48`).

**Hasil (terverifikasi baca-balik API, `status=pending`):**

| Item | Slot | Repliz id | topic |
|---|---|---|---|
| index 71 `uky_quote4_klien_mitra_bukan_raja` | **4 Nov 2026 08:00 WIB** | `6aca7e166b54495a6a3e6f7c` | `Klien itu mitra, bukan raja` (27 char) |

- **Kartu** (vision_analyze + PIL): square 1080×1080, **varian PUTIH** (bg `(255,255,255)` + teks
  #122B63 — varian bergantian yang diizinkan standar 16 Sep), header `@ukyhandoko` + `1/1`,
  judul "Klien Itu Mitra, Bukan Raja", body "Klien yang baik bukan yang selalu benar, tapi yang
  mau diajak berpikir…", footer `@ukyhandoko • Founder StudioSoft`. Rata kiri, satu blok tengah
  vertikal, tanpa separator, tanpa glyph bullet, **0 teks CJK**. ✅
- **Caption 389 char**, santai "aku/kamu" (perintah nada 5 Okt), hook **netral** (pertanyaan terbuka
  + ajak cerita di komentar; dev minimum 14,4 dari pool bertone n=17: netral 9 / opini 4 / sanjungan 4).
  *0 hashtag, 0 mention, tanpa link (bauran growth lane ini), `replies=[]`.*
- **Media**: PNG→JPEG `openclaw-img/uky_quote_klien_mitra_bukan_raja.jpg` (96 KB) → **HTTP 200 di
  KEDUA ingress funnel** (`.153` + `.217`) sebelum create. Seri uky tidak lewat WP
  (`wp_image_map.json` memang tidak punya entri `uky4_output/*`).
- **Slot: 4 Nov 2026 08:00 WIB** — lanjutan lane kartu setelah kartu terakhir 3 Nov
  (`uky_quote_ai_alat_bukan_otak`, item #70); API dicek: **tidak ada satu pun jadwal Threads-uky
  di 4 Nov** (Nov sebelumnya cuma terisi s/d 3 Nov).
  ⚠️ Hari **12 Okt 08:00 WIB jendelanya KOSONG tapi DILEWATI**: hari itu 09:28 WIB sudah ada kartu
  sekeluarga tema klien (`19_orange_klien_ideal`) → dua kartu tema klien sehari = terasa berulang
  (aturan anti-redundant Threads).
- **Anti-dobel**: cek exact basename `uky_quote_klien_mitra_bukan_raja.jpg` di semua jadwal akun →
  belum ada; topik unik (kartu klien sebelumnya: `team_dulu_baru_klien` 8 Okt, `klien_ideal` 12 Okt,
  `klien_pergi` 14 Okt — sudut beda, "mitra bukan raja" belum pernah dipakai).
- State → **72/88**; log → 69 entri. Skrip: `image_post_20261010_uky38.py`;
  audit slot: `_scan_uky_slots_1010.py`.


## hc62 Healthcare StudioSoft (2026-10-11 02:05 WIB)
- Threads carousel (RE-AIR `7-strategi-digital-marketing-rumah-sakit...`): 12 Oct 2026 09:00 WIB | album `6aca8c876b54495a6a4130dd` + 2 replies (`6aca8c87b2fa085f08da9c71`, `6aca8c87b2fa085f08da9c92`)
- LinkedIn TEXT `6aca8c88b2fa085f08da9ca4` (13 Oct 2026 17:00 WIB) memakai artikel `https://studiosoft.id/strategi-pemasaran-properti/`
- FB TEXT `6aca8c88b2fa085f08da9cb6` (15 Oct 2026 19:30 WIB) memakai artikel `https://studiosoft.id/9-contoh-konten-digital-marketing-rumah-sakit-yang-edukatif-dan-tetap-etis/`
- Artikel Threads: https://studiosoft.id/7-strategi-digital-marketing-rumah-sakit-untuk-menambah-pasien-setiap-bulan/

## 02:30 WIB — Carousel feed IG StudioSoft 08:30 WIB (cron `ss-ig-carousel-feed` `cde9a71b9203`) — slot sudah terisi, tidak ada deck baru

- Slot 11 Okt 2026 08:30 WIB **sudah terisi** dari antrean terkunci `kunci_car10_okt.py` (6–31 Okt)
  → sesuai aturan maks 1 carousel/hari/akun, **tidak ada deck baru dibuat** (skip lewat cek duplikat LANGKAH 5).
- Jadwal: album `6ac1026207008e0e919e6e4b` ("Carousel IG SS — jasa-maintenance-wordpress-surabaya") ·
  `type=album` · `status=pending` · `scheduleAt 2026-10-11T01:30:00.000Z` (08:30 WIB) · akun "Kreasi Studiosoft" ·
  10 media `ss_car10_maintenance_01..10.jpg` + story mirror 08:40 WIB (`ss_story_canvas_ss_car10_maintenance_01.jpg`).
- Semua 10 media **HTTP 200 di KEDUA ingress funnel** (103.84.155.153 & .217), dicek satu per satu.
- Caption 638 char · link `https://studiosoft.id/jasa-maintenance-wordpress-surabaya/` (belum diverifikasi ulang
  HTTP-nya hari ini, baru caption) · 4 hashtag huruf kecil · 0 mention · 0 CJK · CTA "Tulis di komentar" ✅.
- Warna: probe pixel slide 01 (8,8) = (18,43,99) = #122B63 (NAVY). 11 Okt = tanggal ganjil → NAVY dulu, slide 10 putih,
  bergantian. `ritme_warna_ss.py --tgl 2026-10-11 --jam 8` → BIRU/NAVY, ✅ cocok. Reel 11:00 `ss_reel_putih_14.mp4` = kebalikan ✅.
- ⚠️ Catatan lama masih berlaku (bukan lingkup job ini): slot **reel 19:00 WIB kosong** (10 Okt 19:00 belum ada jadwal,
  harusnya PUTIH) dan cron `ss-ig-story-roll` `1e75a2a68880` disabled → story 07/14/20 tidak jalan.
- Script verifikasi: `_verif_car10_11okt.py`.

---

## 07:03 WIB — TSC artikel harian (cron `tsc-artikel-harian` `5e3578cb566e`): 1 artikel dijadwalkan 16 Okt

- Jadwal awal: 5 artikel sampai 15 Okt (persediaan 4 hari) → lanjut, tambah 1 artikel ke hari kosong pertama.
- Topik entri #2 `tsc_topik_bank.json` (Bekas Jerawat Cekung) → ditandai `"dipakai": "2026-10-16"`.
  Cek kanibalisasi `tsc_cek_topik.py`: **aman** (skor tertinggi 0,29 ke #8843 microneedling, di bawah ambang 0,30).
- Artikel **#10246** «Bekas Jerawat Cekung: Kenapa Terbentuk dan Bagaimana Ditangani» · slug `bekas-jerawat-cekung`
  · **status `future`, 2026-10-16T01:00:00** (zona situs UTC → 01:00 = 08:00 WIB) · 1.039 kata · 8 H2 + 4 H3 ·
  4 tautan internal (semua dicek HTTP 200 via `curl -4`) · tombol WA `wa.me/6285117444417` ada · 0 `<strong>`.
- `cek_pola_ai.py`: bersih (tanpa em dash, kutip melengkung, tanda seru, CJK, frasa AI). Verifikasi bebas
  `_verif_tsc_bekas_cekung.py`: status/date/slug/isi/meta terbaca utuh.
- Meta Yoast lewat XML-RPC `wp.editPost` (REST tetap tidak bisa): judul 52 char, deskripsi 146 char,
  focuskw `bekas jerawat cekung`; seluruh custom field dikirim ulang (sebelumnya 0 field).
- Gambar unggulan desain sendiri (Pexels mati): media **#10247** `tsc_feat_bekas-jerawat-cekung.webp` 1000x567
  webp 40 KB · `featured_media` + `alt_text` tersimpan · URL live HTTP 200.
- Jadwal setelah penambahan: 6 artikel sampai 16 Okt (persediaan 5 hari) · aturan 1 artikel/hari: aman.
  ⚠ Sisa 9 hari kosong (17-25 Okt) → buffer masih di bawah 10 hari; job harian menambah 1 artikel per hari.
- Script: `tsc_artikel_bekas_jerawat_cekung.py` (`--apply`).

---

## 07:03 WIB — StudioSoft artikel harian (cron `studiosoft-artikel-harian` `754ecdec3503`): 1 artikel dijadwalkan 23 Okt

- Jadwal awal: 12 artikel sampai 22 Okt, tetapi **23-25 Okt kosong** → lanjut, tambah 1 artikel ke hari kosong pertama.
- Topik `ss_topik_bank.json` entri «Biaya Iklan Google untuk Bisnis Kecil: Cara Menentukan Anggaran Awal»
  (pilar A uang) → ditandai `"dipakai": "2026-10-23"`.
- Cek kanibalisasi `ss_cek_topik.py` terhadap **357 artikel**: **aman**, skor tertinggi 0,20 (#9197 Analitik Properti,
  di bawah ambang 0,30); tidak ada fokus kata kunci yang sama.
- Artikel **#9332** «Biaya Iklan Google untuk Bisnis Kecil: Cara Menentukan Anggaran Awal» · slug
  `biaya-iklan-google-bisnis-kecil` · **status `future`, `2026-10-23T08:00:00`** (zona situs Asia/Jakarta,
  `date_gmt` 01:00) · 1.276 kata · 8 H2 + 4 H3 · kategori 26 (Digital Marketing) · 4 tautan internal
  (semuanya dicek HTTP 200 via `curl -4`) · tombol WA `wa.me/6281935000624` teks «Konsultasi Gratis» · FAQPage JSON-LD ada.
- Dibuat **draf dulu** (#9332 `draft`, meta Yoast lewat REST tersimpan: judul 53 char, deskripsi 154 char,
  focuskw `biaya iklan google`), baru diubah ke `future`. Baca balik `context=edit`: isi utuh 1.276 kata, slug tidak berubah.
- `cek_pola_ai.py`: bersih (0 em dash, 0 kutip melengkung, 0 CJK, 0 tanda seru, tanpa frasa AI).
  Verifikasi bebas: `ss_verif_biaya_iklan_google.py`.
- Angka contoh hitungan (batas Rp60.000 per transaksi, Rp3.000 per klik, Rp180.000/hari, Rp5.400.000/bulan;
  contoh jasa Rp500.000 per klien) dihitung sendiri di python dan ditulis sebagai contoh, bukan data dari sumber luar.
- Jadwal setelah penambahan: 13 artikel sampai 23 Okt (persediaan 12 hari) · ⚠ sisa hari kosong **24-25 Okt**.
- Script: `ss_artikel_biaya_iklan_google.py` (`--draft`, `--jadwal`).

---

## DAS — skrip suntikan di seluruh halaman (permintaan Bos 11 Okt)

Bos mengirim URL `https://dasindonesia.com/merawat-sistem-pendingin-mesin-radiator-cairan/` (halaman
yang tidak bisa dibuka). Laporan: `drafts/das_skrip_suntikan_20261011.md`.

- **Halamannya sendiri sehat**: HTTP 200, judul benar, isi 1.315 kata, terindeks Google (crawl 7 Okt),
  tanpa elemen tersembunyi, tanpa kata judi.
- **TEMUAN: skrip suntikan di SEMUA halaman DAS** (beranda, artikel, hubungi). Skripnya disamarkan
  dengan variabel acak, dan **hanya aktif kalau `document.referrer` ada** (pengunjung dari Google/
  tautan lain) → memuat `https://livedashboardkit.info/track-<hex>.js` (nama berkas berganti tiap
  10 menit). Domain `livedashboardkit.info` **hidup** (103.224.182.208). Pola cloaking.
- **Bukan di konten**: 161 artikel/halaman diperiksa lewat REST, tidak ada yang memuat skrip itu →
  suntikan ada di berkas tema/plugin atau snippet penyisip kode. Tersangka utama: **WPCode Lite**
  (plugin insert-headers-and-footers) atau tema Node.
- **Fleet**: 13 situs klien dipindai (beranda + 1 artikel) → hanya DAS yang kena skrip ini. TSLaw kena
  pola lain (.htm + plugin WP2P), TSC & Kendangsari kena tautan judi tersembunyi.
- **Menunggu Bos**: cek WPCode Lite → Code Snippets dan hapus snippet bermuatan `livedashboardkit.info`;
  pindai Wordfence/Sucuri; purge WP Rocket + Cloudflare setelah bersih; ganti sandi admin & sandi aplikasi.
- Skrip: `das_cek_satu_url.py`, `das_bedah_halaman.py`, `das_bedah_lanjutan.py`, `das_lihat_skrip.py`,
  `cek_skrip_menular.py`, `das_periksa_skrip.py`, `das_cari_sumber_skrip.py`, `das_cari_suntikan.py`,
  `pindai_semua_klien_skrip.py`.

## TSLaw PULIH — alamat artikel normal kembali (Bos 11 Okt)

Urutan kejadian: Bos update WordPress (7.2-alpha-64238 → **7.2-alpha-64305**), hapus 3 akun asing, lalu
hapus plugin mencurigakan (16 → **8 plugin, 0 mencurigakan**, WP2P ×2 hilang), lalu kembalikan
Pengaturan → Permalink → Nama Pos.

**Verifikasi `tslaw_verif_pulih.py`:**

| Pemeriksaan | Hasil |
|---|---|
| 60 alamat artikel di sitemap | **60 balas 200, 0 bermasalah** · 0 entri ber-`.htm` |
| Halaman statis | /, /artikel, /tentang, /layanan, /hubungi → 200 |
| Pengguna | hanya mantapman + Assistant |
| Skrip suntikan / elemen tersembunyi | tidak ada di beranda & hubungi |
| Catatan | upaya saya menyetel permalink lewat XML-RPC `wp.setOptions` **diterima tanpa error tapi tidak mengubah apa pun** → pengaturan ini memang hanya bisa dari wp-admin |

**Sisa 2 alamat mati dari 30 halaman TSLaw yang punya data GSC:**
- `/practice-areas/` → 404, padahal **97 tayangan** (perlu dibuat ulang atau dialihkan ke /layanan/)
- `/sample-page/` → 404, 1 tayangan (halaman bawaan WordPress, tidak penting)

Skrip: `tslaw_cek_pasca_update.py`, `tslaw_betulkan_permalink.py`, `tslaw_verif_pulih.py`.

## TSLaw — gambar unggulan semua artikel (perintah Bos 11 Okt)

Bos: *"cek artikel TS law pastikan semua artikel ada feature imagenya .. pastikan tidak redundant"*.

- **Audit** (`tslaw_audit_gambar.py`): 60 artikel terbit · **4 belum punya gambar unggulan** (#3574, #3570,
  #3566, #3559, semuanya terbit 1 Okt) · **0 gambar dipakai berulang** · pustaka media 207 gambar,
  139 belum terpakai.
- **Dipasang** (`tslaw_pasang_gambar.py`) memakai gambar pustaka yang belum terpakai, tema disesuaikan:
  #3574 ← media 3688 `konsultan-hukum-perusahaan-surabaya.webp` · #3570 ← media 3716
  `pengacara-terbaik-surabaya.webp` · #3566 ← media 2938 `tslaw_biayahukum.jpg` · #3559 ← media 2883
  `hukum-bisnis-tslaw.jpg` (semuanya 1000px, plus alt text).
- **Verifikasi akhir**: artikel 60 · tanpa gambar unggulan **0** · gambar unik 60 · dipakai berulang **0**.
  Dua halaman dicek live: gambar unggulan tampil.

## TSLaw — /practice-areas/ dialihkan (perintah Bos 11 Okt)

`/practice-areas/` 404 (97 tayangan di GSC). Halaman lamanya sudah terhapus permanen (tidak ada di trash)
dan TSLaw tidak punya plugin pengalihan. Solusi: dibuat halaman baru **#3727** berslug `practice-areas`
berisi arahan pindah otomatis (meta refresh) + tautan ke `/layanan/`, dengan `noindex` supaya tidak
bersaing. Verifikasi: `/practice-areas/` → 200 + pindah otomatis; `/layanan/` tetap 200 & terindeks.
Catatan: meta Yoast di TSLaw **tidak bisa lewat REST** (balas kosong) — hanya XML-RPC. Untuk 301 asli,
Bos perlu memasang plugin Redirection (aturan: `/practice-areas/` → `/layanan/`, 301).
Skrip: `tslaw_cari_practice_areas.py`, `tslaw_pasang_pengalih.py`, `tslaw_fix_pengalih.py`.
