Audit & Teknis — Petualangan DuoInteractive Funpaper · play-95-duo-dev · untuk tim produk & developer (cerita: buku cerita)

Catatan teknis & deploy

Lingkungan

  • Worker uji tim: play-95-duo-dev → play-95-duo-dev.terusmengajar.workers.dev (guest mode). Deploy: SKIP_R2_SYNC=1 bash apps/portal/scripts/deploy-play95-duo-dev.sh (nama worker eksplisit, bukan --env). Cek build: /api/health.
  • Service worker saat ini: pc-v58 — wajib di-bump sekali tiap bundle game berubah.
  • Build game: pnpm run build:games (±20 menit, 95 game) atau node scripts/build-games.mjs <slug>; bundle apps/portal/public/calistung-* di-commit.
  • Setelah deploy: jalankan boot sweep manual scripts/ifp-boot-sweep.sh <url> (wajib bila src/games/shared/* berubah).
  • Buku cerita (tim konten): tm-calistung-games-story-draft — generator di tm-ai-workspace brainstorming/interactive-funpaper/2026-10-28-peta-petualangan-duo/buku/gen_buku.py, deploy scripts/ifp-story-book-pages.sh.
  • Situs ini: docs/audit-site/ (data JSON + gen.py), deploy bash docs/audit-site/deploy.sh → Pages project tm-cg-audit.

Sumber teks di kode

  • Cerita bab (dialog pembuka + kotak CERITA papan): src/games/shared/duo/stories/<slug>.json (intro, levels[k], penutup, ngobrol).
  • Tujuan misi orang tua: JSX di src/games/shared/duo/missions/<file>.tsx; Tantangan level: *-cases.ts (instruksi/instruksiEasy).
  • Nama tempat: tiga sumber yang wajib sinkron — stories/*.json, duo/catalog-data.ts, apps/portal/src/lib/petualangan-data.ts.
  • Teks game anak: src/games/calistung-*/; teks bersuara = argumen speakIndonesian/prefetch/potongan suara — cek berkas voiceAssetPath(teks) di public/audio/voice/livna (manifest tidak lengkap).
  • Prolog/epilog portal: apps/portal/src/lib/cerita-bingkai.ts; kartu beranda “Ceritanya dimulai di sini” (selama 0 kunci) → /cerita; setelah 95 kunci kartu Epilog menggantikan “Perhentian berikutnya”; perayaan bab 95 menautkan /cerita#akhir.
  • Lencana: apps/portal/src/lib/rewards.ts (game:<slug>, duo:<slug>), artwork /images/badges/; kartu akhir game menampilkan lencana dari progres lokal (CelebrationPopup).

Aturan kerja yang dipegang

  • Nama palet desain (ungu/teal/oker) hanya untuk prompt gambar — teks pemain memakai nama warna yang tampil di layar.
  • Regenerasi suara (Livna) hanya dengan persetujuan; scripts/generate-voice-assets.mjs --dump tidak berhenti (lanjut generate) dan --dry-run tetap menimpa manifest.
  • Test teks: banyak test mengunci teks instruksi persis (kanon); ubah test bersamaan dengan teks.
  • Rekam suara baru: susun daftar delta pasti (contoh docs/audit-site/data/voice-delta-2026-10-30.json), lalu node /Users/mac/Repos/terusmengajar/scripts/ifp-voice-delta.mjs <delta.json> --model=eleven_v4 [--dry-run] — talent tetap Livna (GdyFAZdMpKMBHw5pc1Bu), quota-abort 401/429, credit = jumlah karakter. Sejak 30 Okt 2026 kalimat baru memakai eleven_v4 (v4 hanya menerima stability & similarity; tempo setara v2 speed 0,8).
  • Audio dilayani dari R2 play-calistung-prod: unggah HANYA berkas baru. Manifest lokal apps/portal/.r2-sync-manifest.json tidak lengkap (±365 dari ±10.000 berkas suara) — sync-r2-assets --only audio/voice/livna akan mengunggah ulang ±9.700 berkas. Verifikasi daftar penuh lewat HEAD ke worker.

Riwayat commit terbaru (repo interactive-funpaper)

CommitTanggalRingkasan
f94673642026-10-30feat(anak): suara baru Livna (eleven_v4) untuk teks audit instruksi anak + rebuild
a4f3a3602026-10-30feat(anak): rapikan teks bersuara audit instruksi anak (cara hemat) — AUDIO MENYUSUL
bf7042322026-10-30fix(anak): rapikan 3 teks layar dari audit instruksi anak ronde 2
f174965d2026-10-30docs(audit-site): audit ulang instruksi anak ronde 2 — 15 temuan baru
84c666272026-10-30docs(audit-site): situs audit & catatan teknis Petualangan Duo (tm-cg-audit.pages.dev)
da22f9f12026-10-29fix(anak): rapikan 13 teks layar game anak yang tak lazim (tanpa rekam ulang suara)
e7d5671a2026-10-29fix(anak): bar kunci tak lagi menutupi papan, kotak level bisa diklik, animasi lencana di akhir game
3ab637532026-10-29fix(duo,portal): rapikan bahasa aneh di cerita/papan + animasi hover peta lebih halus
488d10ff2026-10-29feat(duo): sinkronkan cerita level dengan instruksi papan orang tua
50ac181b2026-10-29build(bundle): regenerasi bundel (bahasa instruksi orang tua + tautan epilog)
bbb755712026-10-29feat(portal): prolog & epilog cerita 95 Kunci Kakek
4aa26dd82026-10-29fix(duo): bahasa instruksi orang tua — audit 174 temuan (95 misi)
9d0193c82026-10-29feat(portal): kanal Bantuan & dukungan di dashboard orang tua
6d9b78b72026-10-29build(bundle): regenerasi bundel (URL ikon topi v2)
0623dbac2026-10-29feat(duo): topi petualangan standar = konsep v2 (ikon Solo/Duo, landing, peta pulau)