Pekan 01/24–29 Agustus 2026/MASJID APP/Laporan pekanan
Papan Status MASJID APP
Kode sudah berjalan, dan fondasinya terbukti — bukan diklaim. Pekan lalu papan ini masih nol di semua kolom pembangunan. Sekarang F0 berjalan sekitar dua pertiga: isolasi antar-masjid ditegakkan database dan sudah dibuktikan lewat uji, dan endpoint publik pertama sudah melayani halaman masjid lengkap dalam satu permintaan.
Kelima keputusan yang menggantung sudah turun di akhir pekan ini — termasuk nama domain, yang langsung dikunci ke dalam kode. Tidak ada lagi yang menunggu keputusan.
Yang tersisa satu, dan sekarang berdiri sendirian sebagai risiko utama: belum ada satu pun masjid pilot yang didekati. Semua kendala lain sudah hilang; yang ini tidak bisa diselesaikan dengan menulis kode.
Fase F0
65%
Naik dari 0% pekan lalu
Uji lolos sekarang
27
6 uji lagi menunggu dijalankan di mesin Anda
Menunggu Anda
0
Kelimanya diputuskan 29 Agustus
Masjid pilot
0
Belum ada yang didekati — naik jadi risiko utama
Estimasi pekan
dicabut
Model kerja berubah — lihat catatan di bawah
Dua trek, dan sekarang keduanya bergerak
Pekan lalu pemisahan ini dipakai untuk menjelaskan kenapa “belum ada kode” bukan berarti “belum ada kemajuan”. Pekan ini gunanya berbalik: menjaga agar kemajuan kode tidak terbaca sebagai produk yang hampir jadi.
Trek A — Keputusan & rancangan100%
Bertambah tiga keputusan pekan ini: struktur URL, daftar 273 kata terkunci, dan tiga peran database. Ketiganya sudah jadi kode, bukan cuma dokumen.
Trek B — Pembangunan13%
F0 berjalan 65%; F1–F4 belum dimulai. Angka gabungan sengaja ditahan rendah — fondasi yang kokoh belum berarti ada produk yang bisa dipakai masjid.
F0
Fondasi arsitektur
65% · 3 mgg
F1
Web platform
0% · 4 mgg
F2
Web masjid
0% · 6 mgg
F3
AI & TV display
0% · 4 mgg
F4
Pilot & serah terima
0% · 3 mgg
Selesai pekan ini
Repo ada di ~/Herd/dimasjid di komputer Anda. Setiap butir di bawah punya uji yang gagal kalau ia rusak — itu yang membedakannya dari “sudah dikerjakan”.
Isolasi antar-masjid — kriteria selesai F0
Terbukti
Enam pemeriksaan isolasi lolos di PostgreSQL sungguhanTanpa konteks tenant: nol baris. Sebagai masjid A: hanya baris A. Menyebut id masjid B langsung: tetap nol. Menulis atas nama B: ditolak. Memindahkan baris ke masjid lain: ditolak. Sisi B juga bersih.
Terbukti
Kueri tanpa filter masjid tetap tidak bocorPemeriksaan yang paling berarti: where donorName = 'Hamba Allah' tanpa filter tenant sama sekali — persis kesalahan yang akan terjadi di kode nyata — tetap hanya mengembalikan baris milik masjid yang sedang dibuka.
Dikunci
Tiga peran database yang terpisahmasjid_owner memiliki tabel; masjid_app dipakai aplikasi tanpa hak menembus kebijakan; masjid_resolver memiliki dua fungsi sempit yang hanya menjawab “slug ini masjid yang mana?”
Fondasi data
Selesai
Tiga migrasi berjalan bersih dari nol20 tabel, 262 kolom, kebijakan keamanan di semua tabel, plus resolver slug dan domain.
Selesai
Penjaga kecocokan skemaMesin migrasi Prisma diblokir jaringan di lingkungan bangun, jadi migrasinya ditulis tangan — dan ada skrip yang membandingkannya dengan schema.prisma setiap kali salah satunya berubah. Keduanya tidak bisa menyimpang diam-diam.
Selesai
Aturan slug jadi kode yang diuji273 kata terkunci, sembilan uji. Termasuk penjaga yang gagal kalau daftarnya menyusut — aturannya hanya boleh bertambah.
Endpoint publik pertama — lebih cepat dari rencana
Berjalan
Beranda masjid dalam satu permintaanProfil, jadwal sholat hari ini, hitung mundur waktu sholat berikutnya, pengumuman aktif, kegiatan terdekat, program berjalan, kajian terbaru, dan laporan terakhir — sekali panggil. Ini sebenarnya pekerjaan F2 yang tertarik maju karena kontraknya sudah beres.
Berjalan
Kajian rutin diuraikan server jadi tanggal nyataKlien tidak pernah memproses aturan berulang sendiri. Kalau tidak begitu, web masjid, TV display, dan aplikasi jamaah akan menghasilkan tiga versi kalender yang berbeda — dan yang salah baru ketahuan saat ada jamaah datang di jam yang keliru.
Berjalan
Alamat lama tidak pernah matiSlug lama menjawab dengan alamat barunya, bukan halaman hilang. Alamat masjid dicetak di spanduk.
Belum selesai di F0
Sisa 35% fase ini. Tidak ada yang terhambat — hanya belum dikerjakan.
Belum
Alur masuk pengelola dan undanganSkema perannya sudah ada; alurnya belum. Dibutuhkan sebelum konsol konten bisa dipakai orang luar.
Belum
Unggah media ke penyimpanan objekWadahnya sudah disiapkan di docker-compose, jalurnya belum ditulis. Menahan foto program dan bukti transfer.
Belum
Perhitungan jadwal sholat dari koordinatSekarang masih diisi manual. Ini syarat mutlak untuk janji “masjid baru daftar langsung punya isi” — halaman kosong lebih merusak daripada tidak punya halaman.
Belum
Pemicu indeks konten untuk asisten AITabelnya sudah berdiri sejak migrasi pertama. Pemicu yang mengisinya menyusul; fiturnya sendiri baru di F3.
Belum
Design token dalam kodeSudah ada di kanvas desain, belum jadi variabel yang dipakai bersama landing, web masjid, dan TV display.
Satu hal yang jangan dianggap sudah beres. Berkas CI sudah ditulis dan langkah-langkahnya sudah dijalankan manual sampai lolos — tapi belum pernah benar-benar jalan di GitHub, karena reponya belum dibuat. Sampai itu terjadi, kita bergantung pada kedisiplinan menjalankan uji secara manual.
Lima keputusan — semuanya sudah turun
Diputuskan 29 Agustus. Tiga di antaranya langsung jadi perubahan kode di hari yang sama.
Diputuskan
Dikerjakan agen AI, dikendalikan satu orangBukan tim developer. Ini mengubah arti seluruh estimasi di peta jalan — lihat catatan di bawah.
Diputuskan
Tidak perlu tanggal mulai resmi maupun anggaranTidak ada pihak lain yang perlu menyetujui jadwal atau mengeluarkan biaya. Dua penghalang di papan pekan lalu hilang begitu saja.
Sudah jadi kode
Domain platform: dimasjid.siatadigital.idAlamat setiap masjid jadi dimasjid.siatadigital.id/<slug>. Penampung masjid.example.id dihapus dari seluruh repo, dan tujuh kata merek dikunci — dimasjid, siata, siatadigital, dan variannya — supaya tidak ada masjid yang bisa mengambil alamat yang terbaca seperti alamat platform. Daftar naik dari 273 ke 280 kata, dengan uji yang gagal kalau menyusut.
Sudah jadi kode
Jalur baca publik pindah ke Prisma ClientDikerjakan sekarang selagi baru satu endpoint. Menunda berarti empat endpoint berikutnya ditulis dengan pola yang dibuang. Isolasi tenant tidak berubah sedikit pun — konteks masjid tetap dipasang di dalam transaksi.
Dikonfirmasi
TV Display dimulai dari versi webFlutter hanya kalau nanti benar-benar butuh kontrol perangkat keras dan offline penuh.
Konsekuensi keputusan pertama: estimasi pekan dicabut, bukan dipercepat. Angka F0 tiga minggu dan F2 enam minggu dihitung untuk tim 3–4 orang. Dengan agen AI yang menulis kode, jam menulis bukan lagi kendala — tapi juga bukan berarti sepuluh kali lebih cepat. Kendalanya pindah ke berapa banyak yang bisa Anda tinjau dan putuskan per pekan, dan ke hal-hal yang tidak bisa dipercepat kode sama sekali: masjid pilot yang mau dipakai uji, dan umpan balik dari pengurus asli. Papan ini akan mengukur fase yang selesai, bukan pekan yang berlalu.
Risiko yang sedang diawasi
Naik jadi utama
Belum ada masjid pilot yang berkomitmenPekan lalu ini risiko tinggi. Sekarang lebih mendesak justru karena fondasinya cepat selesai: kalau F4 tiba tanpa pilot, kita punya produk yang belum pernah diuji orang luar. Mitigasi: dekati dua sampai tiga masjid kampus atau yayasan mulai pekan ini — jangan menunggu produknya jadi.
Sedang
Konversi Prisma belum terverifikasiUnduhan mesin Prisma diblokir di lingkungan tempat kode ditulis, jadi tiga berkas jalur baca belum pernah dikompilasi maupun dijalankan. Nama model dan field-nya sudah dicocokkan satu per satu dengan skema dan semuanya ada. Mitigasi: tiga perintah di mesin Anda membuktikannya — pnpm install, build, test:smoke. Kalau merah, commit sebelumnya berisi versi yang sudah terbukti jalan.
Menurun
CI belum pernah jalan sungguhanRepo Git sudah ada dengan tiga commit, tapi belum ada remote yang menjalankan CI otomatis. Mitigasi: dorong ke GitHub — setelah itu tidak ada perubahan yang bisa merusak isolasi antar-masjid tanpa ketahuan.
Sedang
F2 enam minggu terlalu optimisMitigasi: kalau meleset, potong dari sisi publik — arsip kajian dan laporan bisa menyusul — jangan potong SSR dan SEO.
Rendah
Konsol konten membengkak jadi dashboardBelum muncul karena konsolnya belum dibangun. Batas tertulis: kalau menyentuh uang, data jamaah, atau peran berlapis — bukan fase ini.
Rencana pekan depan
Jalankan tiga perintah verifikasi Prisma, lalu dorong repo ke GitHub.Repo lokal sudah ada. Setelah CI hidup, tidak ada perubahan yang bisa merusak isolasi antar-masjid tanpa ketahuan.
Perhitungan jadwal sholat dari koordinat, plus pengisi otomatis saat masjid mendaftar.Ini yang membuat janji “langsung punya isi” jadi nyata, dan tanpa itu setiap masjid baru terlihat mati.
Endpoint publik sisanya di atas kontrak yang sama.Program, laporan, arsip kajian, bundel TV display, dan feed untuk asisten AI.
Catatan untuk rapat
Tidak ada lagi yang menunggu keputusan, jadi ketiganya bisa langsung jalan. Satu hal yang sebaiknya berjalan paralel dan tidak melibatkan kode sama sekali: mulai bicara dengan dua sampai tiga masjid kampus atau yayasan. Itu satu-satunya kendala tersisa, dan yang paling lama matangnya.
Halaman ini diperbarui setiap pekan di alamat yang sama, jadi tautannya cukup dibagikan sekali. Bagian atas selalu berisi pekan berjalan; riwayat pekan sebelumnya menumpuk di bawah.
Riwayat pekan
Pekan 01 · 24–29 Agustus 2026Fondasi berdiri
Peta jalan lapisan web disusun (F0–F4, ±20 minggu). Tiga belas keputusan fondasi dikunci, lalu bertambah tiga: struktur URL, 273 kata terkunci, dan tiga peran database. Kontrak konten & API ditulis lengkap — 12 entitas publik, 25 jalur, 28 operasi. Satu halaman masjid contoh dirancang utuh, yang langsung membongkar tujuh field kurang di kontrak. F0 dikerjakan sampai 65%: tiga migrasi, isolasi antar-masjid terbukti lewat enam pemeriksaan, dan endpoint publik pertama berjalan. Repo dipasang di ~/Herd/dimasjid dan mulai dilacak Git (tiga commit). Di akhir pekan kelima keputusan turun: dikerjakan agen AI dengan satu pengendali, tanpa tanggal dan anggaran; domain dimasjid.siatadigital.id dikunci ke dalam kode bersama tujuh kata merek; jalur baca pindah ke Prisma; TV Display dari web. Belum ada masjid pilot.