#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Append catatan 4 Okt 2026: kerjakan 3, 2, 1 perintah Bos."""
p = "catatan/2026-10-04.md"
isi = open(p, encoding="utf-8").read()
t = """
## 19:xx WIB — perintah Bos: "Lakukan 3, 2, 1" (kartu image, link mati, artikel baru)

### 3) Kartu image 08:00 @ukyhandoko — stok ditambah
- Antrean `image_posting_queue.json` habis di index 67 (kartu uky terakhir 27 Okt); setelah itu
  siklus kembali ke index 0 = item StudioSoft, jadi uky berhenti dapat kartu.
- Dibuat **18 quote baru** (`gen_uky4_quotes.py`, 3 warna = 54 file di `uky4_output/`) dengan
  spesifikasi tetap: square 1080, judul Poppins-Bold 85, body 36, rata kiri, blok tengah, tanpa garis.
  QC visual `vision_analyze` (contact sheet 6 kartu) lolos.
- Ditambahkan ke queue (18 item, warna dirotasi biru/putih/orange) → total 88 item, state index tetap 64
  (tidak mengganggu urutan berjalan). Kartu uky kini aman sampai ~16 Nov 2026.

### 2) Link mati di jadwal pending — 107 entri diperbaiki
- Audit `dump_link_mati.py`: 654 jadwal pending, 275 entri link, 104 URL unik → **14 URL 404 (107 entri)**.
- Peta pengganti `perbaiki_link_mati.py`: 6 URL rumah sakit/klinik ke halaman LIVE yang relevan
  (`/jasa-digital-marketing-rs/`, `/seo-rumah-sakit/`, `/digital-marketing-rumah-sakit-indikator/`,
  `/pembuatan-website-rumah-sakit/`); 8 URL seri industri ke artikel penggantinya (artikel sama, slug
  diubah sesi profil lain, live 6-14 Okt). **22 entri yang tayang sebelum tanggal live diarahkan ke
  `/layanan/`** supaya tidak menunjuk halaman yang belum ada; 79 entri setelah-live ke slug baru; 6 langsung.
- Eksekusi: PUT (bukan PATCH) 107/107 ok, 0 gagal. Verifikasi: **0 jadwal pending masih memuat URL mati lama**.

### 1) Artikel baru dari permintaan GA4 + GSC (5 artikel, tayang)
- Data ditarik `ss_demand_gsc_ga4.py` (GSC via OAuth `seo-oauth/google_token_atun.json`, GA4 property
  478760195 via service account). Temuan utama: `jasa seo surabaya` 603 impresi 0 klik (pos 33,1),
  `tools analisis kompetitor di media sosial` 207 impresi 0 klik, `digital agency surabaya` 196,
  `digital marketing agency surabaya` 153, `branding agency surabaya` 135, `seo surabaya` 123.
- 5 artikel baru dipublish (semua `publish`, HTTP 200, Yoast focuskw + title + metadesc terisi,
  FAQ schema, tombol WA https://wa.me/6281935000624, 2 internal link + 2 outbound link):
  #9225 `jasa-seo-surabaya-paket-harga` (1.231 kata) · #9226 `tools-analisis-kompetitor-media-sosial`
  (1.132) · #9227 `digital-agency-surabaya-vs-freelancer` (1.135) · #9228
  `branding-agency-surabaya-proses-hasil-kerja` (1.123) · #9229
  `jasa-maintenance-wordpress-pekerjaan-bulanan` (1.090).
- Semua mengikuti `SEO_Playbook.md`: judul <=55 char, meta 120-158 char diawali keyphrase, keyphrase di
  paragraf 1 + H2 + penutup, FAQ + schema, tanpa featured image (aturan Bos 29 Sep).
- File: `ss_artikel_gap_20261005_a.py` / `_b.py`, `publish_ss_artikel_gap.py`, `verif_artikel_gap.py`,
  `ss_artikel_gap_hasil.json`.

### Catatan lanjutan
- 22 entri yang diarahkan ke `/layanan/` bisa diarahkan ulang ke artikel industri setelah 14 Okt
  (skrip `perbaiki_link_mati.py` tinggal diubah petanya, atau jalankan ulang setelah semua artikel live).
- Kandidat 5 artikel berikutnya dari GSC: `jasa seo malang` (94 imp), `konsultan seo terbaik` (56),
  `pakar seo surabaya` (42, pos 15), `jasa seo sidoarjo` (41, pos 16,7), `jasa pembuatan website
  wordpress` (59) + `jasa maintenance wordpress` (63).
"""
open(p, "w", encoding="utf-8").write(isi + t)
print("ok", len(open(p, encoding="utf-8").read()))
