06 Jan 2026·7 menit

Template spesifikasi satu halaman untuk aplikasi AI yang konsisten

Gunakan template spesifikasi aplikasi satu halaman untuk mengubah ide samar menjadi prompt jelas untuk Planning Mode, mencakup pengguna, jobs-to-be-done, entitas, dan kasus tepi.

Template spesifikasi satu halaman untuk aplikasi AI yang konsisten

Mengapa Planning Mode penting saat idemu masih samar

Ide yang samar oke untuk berkhayal. Kurang cocok untuk membangun.

Saat Anda meminta builder AI untuk “sebuah aplikasi untuk melacak kebiasaan” tanpa detail lebih, ia harus menebak maksud Anda. Tebakan-tebakan itu berubah dari satu prompt ke prompt lain, sehingga aplikasinya juga berubah. Anda berakhir dengan layar yang tidak cocok, data yang berganti nama di tengah pembangunan, dan fitur yang muncul, hilang, lalu muncul lagi dalam bentuk berbeda.

Inkonsistensi itu biasanya muncul di beberapa tempat:

  • Asumsi berbeda tentang siapa pengguna (pengguna tunggal vs tim)
  • Alur yang saling bertentangan (catat dulu, lalu buat vs buat dulu, lalu catat)
  • Nama data yang bergeser (habit vs routine vs goal)
  • Kasus tepi yang hilang (apa yang terjadi jika pengguna menghapus sesuatu)

“Planning Mode” adalah jeda sederhana sebelum membangun. Anda menuliskan keputusan yang seharusnya AI yang akan buat. Tujuannya konsistensi: satu set pilihan yang bisa diikuti UI, backend, dan database.

Tujuannya bukan kesempurnaan. Ini agar Anda bisa mengiterasi tanpa terus menambal tumpukan tebakan. Jika berubah pikiran nanti, Anda memperbarui satu spes kecil dan membangun ulang dengan logika yang sama.

Itulah mengapa template spesifikasi satu halaman penting. Bukan PRD panjang dan bukan berminggu-minggu diagram. Hanya satu halaman yang menjawab empat hal: siapa penggunanya, apa yang ingin mereka capai, data apa yang ada (dengan bahasa sederhana), dan kasus tepi atau non-goal mana yang mencegah versi pertama meledak.

Contoh: “A booking app” menjadi jauh lebih jelas setelah Anda putuskan apakah itu untuk pemilik salon tunggal atau marketplace, dan apakah pelanggan bisa menjadwal ulang, membatalkan, atau tidak datang.

Template spesifikasi satu halaman, dijelaskan dalam satu menit

Template spesifikasi satu halaman adalah catatan singkat yang mengubah ide samar menjadi instruksi jelas. Anda tidak “mendesain seluruh produk.” Anda memberi builder AI cukup struktur agar membuat pilihan yang sama setiap kali.

Halaman ini punya empat blok. Jika tidak muat satu halaman, kemungkinan Anda punya terlalu banyak fitur untuk build pertama.

  • Users: siapa yang menggunakannya (2–3 tipe), dan apa yang membedakan mereka.
  • Jobs-to-be-done: apa yang masing-masing pengguna ingin capai, ditulis sebagai hasil.
  • Entities: hal kunci yang Anda simpan dan lacak (kata benda data).
  • Edge cases + non-goals: apa yang bisa salah, dan apa yang tidak Anda bangun dulu.

Satu halaman memaksa batasan yang berguna. Mendorong Anda memilih pengguna utama, mendefinisikan flow terkecil yang sukses, dan menghindari janji samar seperti “mendukung segalanya.” Batasan itu yang menjaga aplikasi yang dibangun AI tidak berubah pikirannya antar-layar.

Detail “cukup baik” terlihat seperti pernyataan sederhana yang dapat diuji. Jika seseorang bisa membacanya dan bertanya, “Bagaimana kita tahu ini bekerja?” berarti Anda berada di tingkat yang tepat.

Tolok ukur cepat:

  • Pengguna baru bisa menyelesaikan pekerjaan utama dalam waktu kurang dari 2 menit.
  • Setiap pekerjaan punya awal dan akhir yang jelas (bukan “mengelola sesuatu” yang terbuka).
  • Setiap entitas punya 3–7 field yang benar-benar Anda butuhkan sekarang.
  • 5 kasus tepi teratas disebutkan (duplikat, izin, empty state, kegagalan, input buruk).

Jaga bahasa tetap sederhana. Tulis baris yang bisa Anda tempel langsung ke prompt, seperti “Seorang manajer dapat menyetujui atau menolak permintaan, dan pemohon mendapat pembaruan status.”

Langkah demi langkah: isi template dalam 20 menit

Atur timer 20 menit dan tuju “cukup jelas untuk dibangun,” bukan “sempurna.” Tujuannya menghilangkan tebakan agar builder AI membuat pilihan yang sama setiap kali.

Mulai dengan satu kalimat yang menjawab: untuk siapa ini, dan hasil apa yang mereka dapat?

Contoh: “A mobile app for dog owners to track walks and vet visits in one place.”

Jika Anda tidak bisa menjelaskannya dalam satu kalimat, idenya mungkin dua aplikasi.

Selanjutnya, nama 1 sampai 3 tipe pengguna seperti orang nyata, bukan peran abstrak. “Owner,” “Vet,” dan “Family member” lebih baik daripada “User A.” Untuk masing-masing, tambahkan satu baris singkat tentang apa yang paling mereka pedulikan.

Kemudian tulis 3 sampai 7 jobs-to-be-done dengan format: “When [situation], I want to [action], so I can [result].” Jaga agar bisa diuji. “When I finish a walk, I want to log distance and notes, so I can spot patterns” lebih jelas daripada “track health.”

Sekarang definisikan entitas dan field kunci tanpa bahasa database. Pikirkan “hal yang diingat aplikasi.” Untuk aplikasi anjing: Dog (name, age), Walk (date, duration, notes), Visit (date, clinic, cost). Jika sebuah field tidak digunakan di layar atau job, tinggalkan.

Akhiri dengan dua blok singkat: edge cases dan non-goals. Edge cases menjengkelkan tapi umum (“tidak ada internet,” “dua anjing dengan nama yang sama”). Non-goals adalah hal yang tidak akan Anda bangun dulu (“tidak ada pembayaran,” “tidak ada feed sosial”).

Terakhir, ubah tiap blok menjadi prompt yang bisa diikuti builder Anda. Menjaga struktur konsisten (purpose, users, jobs, entities, edge cases) membantu sistem menghasilkan layar, data, dan alur yang cocok.

Users dan jobs-to-be-done yang bisa diikuti AI

Jika spes Anda mengatakan “untuk semua orang,” builder AI harus menebak apa yang dibangun duluan. Dalam template spesifikasi satu halaman, definisikan pengguna berdasarkan intent (apa yang mereka datang untuk lakukan), bukan demografi. Intent menghasilkan pilihan yang jelas tentang layar, data, dan izin.

Sebutkan 2–4 tipe pengguna, masing-masing dengan satu tujuan utama. Contoh baik: “Customer placing an order,” “Team member fulfilling orders,” dan “Manager reviewing performance.” Contoh kabur: “18–35,” “profesional sibuk,” atau “admins” (kecuali Anda jelaskan apa yang mereka admin).

Tulis JTBD dengan format ketat

Gunakan struktur kalimat yang sama setiap kali: “When..., I want to..., so I can...”. Ini menjaga aplikasi berfokus pada hasil, dan memberi builder AI kebutuhan yang stabil dan dapat diuji.

Berikut contoh JTBD realistis dengan “done” yang jelas:

  • When I finish a client call, I want to log next steps in one place, so I can follow up on time. Done means: saved note, due date set, reminder scheduled.
  • When a new request arrives, I want to approve or reject it quickly, so I can keep work moving. Done means: decision recorded, requester notified, status updated.
  • When I am on mobile, I want to see only today’s tasks, so I can act without searching. Done means: tasks filtered to today, one-tap mark complete.
  • When I make a mistake, I want to undo the last change, so I can recover without support. Done means: previous state restored, audit note created.

Kriteria keberhasilan penting karena menghilangkan ambiguitas “terlihat bagus”. Mereka memberitahu builder apa yang UI harus izinkan dan apa yang backend harus simpan.

Tambahkan izin pada tingkat tinggi

Jangan tulis rencana keamanan lengkap. Cukup nyatakan siapa bisa melakukan apa, dengan bahasa sederhana.

Contoh: “Members can create and edit their own items. Managers can edit any item and change status. Owners can manage users and billing.”

Jika Anda menggunakan langkah perencanaan di alat seperti Koder.ai, tipe pengguna ini, baris JTBD, dan izin akan menjadi input yang andal. Mereka juga mencegah AI menambahkan peran ekstra atau mencampur tanggung jawab antar-layar.

Entities: definisikan data tanpa menjadi teknis

Bagikan dengan URL nyata
Taruh build Anda di domain kustom saat siap membagikannya.

Entities adalah “hal” yang ditangani aplikasi. Jika Anda menamainya jelas, builder AI bisa membuat layar, formulir, dan database yang saling cocok. Ini mencegah field yang tidak cocok dan fitur acak.

Mulai dengan mencantumkan kata benda inti. Jika aplikasinya untuk “mengelola proyek,” kata bendanya mungkin Project, Task, dan Comment. Jika untuk “booking potong rambut,” Anda mungkin punya Booking, Service, Customer, dan Staff.

Pilih 5 sampai 10 field yang benar-benar dibicarakan orang

Untuk setiap entitas, tulis field dengan kata sehari-hari, bukan istilah database. Bayangkan apa yang orang ketik di formulir.

  • Task: title, description, status, due date, priority, assigned to, created by
  • Project: name, goal, start date, end date, owner, archived (yes/no)
  • Invoice: invoice number, client name, amount, currency, due date, paid (yes/no)

Jika Anda tidak bisa menjelaskan sebuah field dalam satu kalimat, kemungkinan terlalu detail untuk versi pertama.

Relasi dan aturan dalam bahasa sederhana

Jelaskan bagaimana entitas saling terkait menggunakan kalimat sederhana:

“One user can have many projects.” “Each task belongs to one project.” “A comment belongs to a task and has one author.”

Ini memberi builder cukup struktur untuk menghasilkan daftar yang konsisten, halaman detail, dan filter.

Tambahkan beberapa aturan data yang menghindari perilaku berantakan:

  • Required: “Task title is required.”
  • Unique: “Invoice number must be unique.”
  • Limits: “Description max 500 characters.”
  • Defaults: “New tasks start as status = Open.”

Akhirnya, pangkas ruang lingkup dengan menamai apa yang tidak akan Anda simpan dulu. Contoh: “No file attachments in v1,” atau “Don’t track staff schedules yet, only bookings.” Pengecualian itu penting karena menghentikan aplikasi tumbuh ke arah yang salah.

Layar dan alur: jaga sederhana dan dapat diprediksi

Template spesifikasi satu halaman bekerja terbaik ketika versi pertama punya set layar kecil dan stabil. Jika Anda mencoba mendesain setiap layar yang mungkin diperlukan suatu hari, builder AI akan terus menebak, dan UI akan melenceng dari satu build ke build lain.

Mulailah dengan menamai layar minimum yang memungkinkan seseorang menyelesaikan pekerjaan utama. Untuk kebanyakan MVP, 3 sampai 6 layar cukup:

  • Sign in
  • List (item utama Anda)
  • Detail (lihat satu item)
  • Create/Edit (form)
  • Settings (opsional)

Lalu tulis happy path sebagai cerita singkat dari awal hingga akhir.

Contoh: “User signs in, lands on the list, searches, opens an item, edits one field, saves, and returns to the list.”

Untuk setiap layar, catat aksi kunci dengan kata sederhana. Hindari layar “lakukan segalanya.” Pilih 2 sampai 4 aksi yang paling penting, seperti create, edit, search, export, atau archive.

Juga tentukan apa yang harus cepat, dan apa yang boleh "cukup baik". “Cepat” biasanya berarti daftar terbuka cepat, pencarian responsif, dan simpan terasa instan. “Cukup baik” mungkin export yang butuh beberapa detik, analitik dasar, atau pengaturan sederhana.

Akhirnya, tangkap peran dan akses dalam satu baris per peran:

  • Viewer: can view and search
  • Editor: can create and edit
  • Admin (only if needed): can manage users and delete

Ini membuat layar dapat diprediksi, mencegah kejutan izin, dan mengurangi penulisan ulang nanti.

Edge cases dan non-goals yang mencegah penulisan ulang

Kebanyakan penulisan ulang terjadi karena satu alasan: aplikasi bekerja baik di happy path, lalu rusak ketika penggunaan nyata muncul.

Template spesifikasi satu halaman yang baik menyediakan ruang untuk edge cases dan non-goals, dan ruang kecil itu menghemat jam kerja.

Mulai dari tiap job-to-be-done dan tanya: apa yang bisa salah? Jaga agar bahasa sederhana, bukan teknis. Anda menghilangkan ambiguitas sehingga builder membuat keputusan yang sama setiap kali.

Kasus tepi umum yang layak ditulis:

  • Informasi hilang atau tidak lengkap (field kosong, alamat tidak diketahui, tidak ada foto profil)
  • Duplikat (sama user mendaftar dua kali, item sama ditambahkan dua kali)
  • Konflik (dua orang mengedit record yang sama, status berubah saat melihat)
  • Batas dan timeout (koneksi lambat, upload gagal, request memakan waktu lama)
  • Masalah izin (pengguna mencoba melihat atau mengedit sesuatu yang tidak boleh)

Lalu tentukan responsnya. Jadilah spesifik: “Block the action and show a clear message,” “Allow save as draft,” atau “Retry once, then show a button to try again.” Aturan-aturan ini diterjemahkan langsung menjadi prompt yang konsisten.

Tambahkan ekspektasi privasi dan keamanan dalam satu atau dua baris. Contoh: “Collect the minimum data needed,” “Users can delete their account and all personal data,” dan “Hide private items by default.” Jika aplikasi Anda melibatkan konten buatan pengguna, catat apa yang harus dilakukan dengan laporan dan spam, walau sederhana di v1.

Akhirnya, tulis non-goals untuk menghentikan scope creep. Pilih fitur menggoda terbesar yang tidak akan Anda lakukan dulu.

Contoh non-goals yang jelas:

  • No payments or subscriptions in v1
  • No social login (email-only for now)
  • No admin dashboard beyond basic list and delete
  • No offline mode

Contoh cepat: jika job adalah “Create an event,” definisikan apa yang terjadi ketika tanggal sudah lewat, judul kosong, atau event yang sama dibuat dua kali. Kejelasan itu mencegah rebuild berikutnya.

Ubah spesifikasi satu halaman menjadi prompt yang bisa dijalankan builder AI

Bangun dan dapatkan kredit
Dapatkan kredit dengan membuat konten tentang apa yang Anda bangun dan bagaimana Anda merencanakannya.

Cara tercepat mendapatkan hasil yang konsisten adalah mengubah tiap blok spesifikasi menjadi prompt kecil dan langsung. Anggap seperti memberi builder sekumpulan kartu yang bisa diikuti berurutan, bukan satu permintaan besar yang samar.

Ubah tiap blok (Users, Jobs, Entities, Screens, Edge cases, Non-goals) menjadi satu instruksi dengan kata benda dan kata kerja yang jelas. Hindari opini seperti “buat bersih” kecuali Anda juga menjelaskan apa arti “bersih”.

Pola prompt sederhana yang bekerja

Gunakan siklus dua langkah: bangun dulu, lalu validasi terhadap spesifikasi.

  1. Build: “Create the data model and API for these Entities: [paste Entities]. Support these roles: [paste Users].”
  2. Build: “Create screens and flows exactly for: [paste Screens/Flows].”
  3. Validate: “Now check your work against this spec. List any mismatches and fix them: [paste full one-page spec].”

Tambahkan definisi singkat tentang selesai agar builder tahu kapan berhenti. Jaga agar terukur:

  • Semua peran yang tercantum dapat menyelesaikan setiap job-to-be-done end to end
  • Setiap entitas punya create, view, edit, dan archive (jika spes menyebutnya)
  • Layar cocok dengan alur yang dinamai, dengan label field yang konsisten
  • Kasus tepi ditangani dengan pesan yang jelas (tidak ada kegagalan diam)

Hanya tambahkan batasan saat benar-benar penting: perangkat diperlukan (mobile-first), autentikasi diperlukan (aksi admin saja), atau stack tertentu (seperti frontend React, backend Go, PostgreSQL) jika platform Anda mengharapkannya.

Minta perubahan tanpa merusak rencana

Saat Anda ingin edit, rujuk blok spesifikasi, bukan kode.

Contoh: “Update the Entities block: add ‘Subscription’ with fields X and Y. Then regenerate only the affected APIs and screens, and re-run the validation step.”

Pendekatan itu menjaga rencana stabil sambil membolehkan iterasi aman.

Contoh realistis: dari ide ke prompt Planning Mode

Bayangkan Anda ingin pembuat pengingat janji sederhana untuk salon kecil. Tujuannya bukan sistem booking penuh. Ini tempat ringan untuk menyimpan janji dan mengirim pengingat.

Berikut tampilan template spesifikasi satu halaman saat terisi.

APP: Appointment Reminder Tracker
GOAL: Track appointments and send reminders. No payments, no online booking.

USERS
1) Owner/Staff: creates and manages appointments, wants fewer no-shows.
2) Client: receives reminders, wants an easy way to confirm.

JOBS TO BE DONE (JTBD)
1) As staff, I add an appointment in under 30 seconds.
2) As staff, I see today's schedule in time order.
3) As staff, I mark a client as confirmed or no-show.
4) As staff, I resend a reminder when asked.
5) As a client, I confirm from a message without creating an account.

ENTITIES (DATA)
- Client: id, name, phone, email (optional), notes
- Appointment: id, client_id, service, start_time, duration_min, status (scheduled/confirmed/canceled/no_show)
- Reminder: id, appointment_id, channel (sms/email), send_at, sent_at, result (ok/failed)
- StaffUser: id, name, role (owner/staff)
Relationships: Client 1-to-many Appointment. Appointment 1-to-many Reminder.

EDGE CASES (WHAT BREAKS NAIVE BUILDS)
1) Duplicate client (same phone, different name)
2) Overlapping appointments for the same staff
3) Time zone changes (travel, daylight saving)
4) Client has no email, SMS only
5) Reminder send fails, needs retry and visible status
6) Appointment edited after reminder scheduled
7) Client cancels after confirmation
8) Same-day appointment created 10 minutes before start
9) Phone number format varies (+1, spaces, dashes)
10) Deleting a client with future appointments

Sekarang ubah itu menjadi bundel prompt yang bisa Anda tempel ke Planning Mode untuk pembangunan.

PLANNING MODE PROMPT BUNDLE
1) Build an MVP web app with these entities and relationships exactly as written.
2) Required screens: Login (StaffUser), Today Schedule, Client List, Client Detail, Appointment Create/Edit.
3) Required flows: create client, create appointment for a client, confirm/cancel/no-show, schedule reminders, resend reminder.
4) Constraints: no payments, no public booking page, no client accounts.
5) Edge-case handling: implement validation and UI feedback for all 10 edge cases listed.
6) Output: database schema, API endpoints, and UI behavior notes per screen.

Perangkap umum yang membuat aplikasi yang dibangun AI tidak konsisten

Rencanakan sebelum Anda menghasilkan
Kunci pengguna, jobs, dan entitas sehingga layar Anda tidak berubah antar-iterasi.

Output berantakan biasanya dimulai dengan spesifikasi samar dan daftar fitur. Builder AI akan melakukan apa yang Anda minta, tapi ia tidak bisa membaca pikiran. Celah kecil berubah jadi perbedaan besar antar-layar dan alur.

Perangkap ini paling sering merusak konsistensi, dan template spesifikasi satu halaman memperbaikinya:

  • Fitur bukan pekerjaan: “Add favorites” adalah fitur. Job adalah “save items to review later.” Jobs menyertakan intent dan keberhasilan, jadi AI bisa membuat pilihan masuk akal (di mana tombolnya, apa yang terjadi setelah menyimpan, apa yang dikatakan empty state).
  • Terlalu banyak entitas terlalu dini: Jika Anda mendefinisikan 12 tabel di hari pertama, logika menyebar ke mana-mana. Mulailah dengan model terkecil yang bisa dikirim. Jika “Project,” “Task,” “Comment,” “Tag,” dan “Attachment” terasa besar, mulai dengan hanya “Project” dan “Task,” lalu tambahkan sisanya setelah alur inti bekerja.
  • Izin yang hilang: Jika Anda tidak pernah mengatakan siapa yang bisa edit atau hapus, builder akan menebak. Tulis aturan sederhana seperti “Only the owner can delete,” “Members can create and edit,” dan “Viewers can only read.” Ini juga mengurangi paparan data yang tidak disengaja.
  • Tidak ada kriteria selesai yang jelas: Tanpa definisi selesai, Anda dapat iterasi tanpa akhir. Tambahkan 2 sampai 4 pemeriksaan penerimaan, seperti “User can create a task in under 30 seconds” atau “Tasks show correctly after refresh.”
  • Kasus tepi tanpa perilaku yang diharapkan: Mencantumkan “offline,” “duplicate emails,” atau “empty list” tidak cukup. Untuk masing-masing, nyatakan apa yang aplikasi harus lakukan. Contoh: “If email already exists, show a friendly error and suggest sign-in.”

Jika Anda menggunakan Planning Mode di Koder.ai, dasar-dasar ini bahkan lebih penting karena rencana menjadi sumber untuk prompt berulang. Jobs yang jelas, model data kecil, izin eksplisit, dan aturan sukses yang dapat diuji menjaga setiap layar baru selaras dengan yang lain.

Daftar cepat dan langkah berikutnya

Sebelum membangun, lakukan pemeriksaan cepat pada template spesifikasi satu halaman Anda. Tujuannya menghilangkan lubang yang memaksa build AI menebak. Tebakan itu berubah menjadi penulisan ulang.

Ini pemeriksaan kelengkapan cepat:

  • Users: setiap tipe pengguna punya tujuan jelas dan catatan “siapa bisa melakukan apa” (create, view, edit, delete).
  • Jobs-to-be-done: setiap job dimulai dengan pemicu dan diakhiri dengan hasil sukses yang bisa diverifikasi.
  • Entities: setiap kata benda dalam job didukung oleh item data (meskipun hanya nama, status, dan timestamp).
  • Screens dan flows: setiap job dipetakan ke jalur sederhana (layar awal, aksi kunci, konfirmasi).
  • Edge cases: Anda menulis setidaknya 5 hal yang bisa salah (empty state, input tidak valid, duplikat, izin, offline atau jaringan lambat).

Jika Anda ingin skor sederhana, beri nilai tiap area 0–2:

  • 0: hilang atau samar
  • 1: ada tapi tidak jelas
  • 2: cukup jelas untuk dibangun

Targetkan setidaknya 7 dari 10 sebelum menghasilkan apapun. Jika Entities atau Edge cases di bawah 2, perbaiki itu dulu. Mereka menyebabkan churn terbanyak.

Setelah build pertama, tinjau aplikasi terhadap setiap job-to-be-done dan tandai ketidakcocokan. Ambil snapshot sebelum setiap perubahan. Jika iterasi baru membuatnya lebih buruk, rollback dan coba edit yang lebih kecil.

Jika Anda memakai Koder.ai (koder.ai), Planning Mode adalah tempat praktis untuk menyimpan spesifikasi satu halaman ini sebagai “sumber kebenaran” dan meregenerasi hanya apa yang berubah daripada menulis ulang semuanya secara manual.

Jaga spesifikasi tetap diperbarui seiring berjalan. Saat Anda menerima perubahan di aplikasi, perbarui spesifikasi di hari yang sama. Saat menolak perubahan, tuliskan alasannya, supaya prompt berikutnya tetap konsisten.

Pertanyaan umum

Apa itu “Planning Mode,” dan mengapa saya harus menggunakannya sebelum membangun?

Planning Mode adalah jeda singkat di mana Anda menulis keputusan kunci sebelum menghasilkan layar dan kode. Tujuannya konsistensi: pengguna, alur, dan nama data yang sama antara UI, backend, dan database, sehingga Anda tidak membangun ulang berdasarkan tebakan baru setiap kali.

Apa yang harus dimasukkan ke dalam template spesifikasi aplikasi satu halaman?

Mulailah dengan satu kalimat tujuan, lalu isi empat blok:

  • Users (2–3 tipe)
  • Jobs-to-be-done (3–7 baris berfokus hasil)
  • Entities (kata benda inti + beberapa field)
  • Edge cases + non-goals (apa yang rusak, dan apa yang keluar dari cakupan)

Jika tidak muat satu halaman, pangkas fitur untuk v1.

Bagaimana saya memilih peran pengguna yang tepat tanpa membuatnya terlalu rumit?

Jaga agar praktis dan berbasis intent. Sebutkan beberapa tipe pengguna dan apa yang mereka coba capai.

Contoh: “Owner/Staff yang membuat janji” lebih jelas daripada “Admin.” Jika Anda tidak bisa menjelaskan apa yang dilakukan sebuah peran dalam satu baris, kemungkinan terlalu kabur.

Bagaimana cara menulis jobs-to-be-done yang bisa diikuti oleh AI builder?

Gunakan pola ketat agar setiap job dapat diuji:

  • “When [situation], I want to [action], so I can [result].”

Lalu tambahkan definisi selesai singkat (apa yang harus disimpan/diperbarui/ditampilkan). Ini menghentikan builder dari menambahkan langkah ekstra atau layar acak.

Seberapa detail bagian Entities untuk MVP?

Daftar “hal yang diingat aplikasi” dengan bahasa sehari-hari, lalu berikan masing-masing 3–7 field yang benar-benar akan dipakai di layar.

Contoh: Appointment: start time, duration, status, service, client. Jika sebuah field tidak dipakai oleh job atau layar, tinggalkan untuk v1.

Perlukah saya menjelaskan relasi dan aturan data, atau hanya mencantumkan entitas saja sudah cukup?

Tulis hubungan sebagai kalimat sederhana:

  • “Satu client bisa punya banyak appointment.”
  • “Setiap reminder milik satu appointment.”

Tambahkan beberapa aturan dasar (field wajib, field unik, default). Biasanya itu cukup untuk menjaga konsistensi daftar, formulir, dan filter.

Berapa banyak layar dan alur yang harus saya definisikan di versi pertama?

Default yang baik: 3 sampai 6 layar yang memungkinkan pekerjaan utama selesai end-to-end:

  • Sign in (jika perlu)
  • Daftar utama
  • Halaman detail
  • Form Create/Edit
  • Pengaturan (opsional)

Juga tulis satu cerita "happy path" (mulai → aksi → simpan → konfirmasi) agar alur tidak melenceng.

Kasus tepi mana yang sebaiknya dicantumkan dalam spesifikasi satu halaman?

Kasus tepi adalah saat penggunaan nyata mematahkan jalur bahagia. Tuliskan 5–10 yang paling mungkin:

  • duplikat
  • info hilang / empty state
  • kesalahan izin
  • konflik (dua orang mengubah sama)
  • kegagalan / timeout

Untuk tiap kasus, nyatakan perilaku yang diharapkan (blokir + pesan, simpan draft, retry, dll.).

Bagaimana cara mengubah spesifikasi satu halaman menjadi prompt yang tetap konsisten?

Ubah tiap blok menjadi instruksi singkat yang bisa dieksekusi dan diverifikasi oleh builder.

Urutan sederhana:

  1. Bangun model data + API dari Entities.
  2. Bangun layar dari Screens/Flows.
  3. Validasi terhadap spesifikasi lengkap dan daftar ketidakcocokan.

Ini mencegah bergantung pada satu prompt besar yang mudah disalahpahami.

Saat saya berubah pikiran, bagaimana cara memperbarui aplikasi tanpa merusak semuanya?

Perbarui spesifikasi dulu, lalu regenerasi hanya bagian yang berubah.

Contoh: “Tambahkan entity Subscription dengan field X/Y; perbarui API dan layar yang terpengaruh; jalankan kembali langkah validasi.” Menjaga spesifikasi sebagai sumber kebenaran mencegah edit yang tersebar dan tidak konsisten.

Related posts