@ojokesusu/lintasai 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/.github/workflows/publish-npm.yml +40 -0
  2. package/.github/workflows/validate.yml +93 -0
  3. package/AUDIT_POST_SETUP_PROMPT_v1.md +280 -0
  4. package/BOOTSTRAP_PROJECT_DOCS_PROMPT_v1.md +3 -0
  5. package/CHANGELOG.md +313 -0
  6. package/CLAUDE_universal_v1.md +1021 -0
  7. package/CONTRIBUTING.md +101 -0
  8. package/FIRST_SESSION_PROMPT_v1.md +7 -0
  9. package/JALANKAN_KIT.md +188 -0
  10. package/LICENSE +21 -0
  11. package/MULAI_DI_SINI.md +145 -0
  12. package/PROJECT_KICKOFF_PROMPT_v1.md +3 -0
  13. package/PROJECT_LIFECYCLE_PROMPT_v1.md +536 -0
  14. package/PROJECT_MIGRATION_PROMPT_v1.md +3 -0
  15. package/README.md +505 -0
  16. package/SETUP_POLA_B_PROMPT_v1.md +5 -0
  17. package/SPLIT_REPO_MIGRATION_PROMPT_v1.md +485 -0
  18. package/TEAM_ROLLOUT_GUIDE_v1.md +172 -0
  19. package/UPDATE_DOCS_PROMPT_v1.md +3 -0
  20. package/UPDATE_KIT_PROMPT_v1.md +213 -0
  21. package/bin/lintasai.js +81 -0
  22. package/docs/SIGNED_RELEASE.md +162 -0
  23. package/install-windows.ps1 +225 -0
  24. package/kit.ps1 +508 -0
  25. package/lib/agents-md.ps1 +174 -0
  26. package/lib/git-helpers.ps1 +104 -0
  27. package/lib/kit-files.psd1 +133 -0
  28. package/lib/manifest-signing.ps1 +65 -0
  29. package/lib/manifest.ps1 +267 -0
  30. package/lib/rollback.ps1 +241 -0
  31. package/lib/safety.ps1 +193 -0
  32. package/lib/template-deploy.ps1 +242 -0
  33. package/lib/version-detect.ps1 +161 -0
  34. package/package.json +36 -0
  35. package/setup-pola-b.ps1 +687 -0
  36. package/templates/ANALOGI_LIBRARY.md +7 -0
  37. package/templates/CLAUDE_TEAM_GUIDE.md +505 -0
  38. package/templates/CROSS_REPO_TYPES_PIPELINE.md +473 -0
  39. package/templates/DB_SCHEMA_SCAN_PROMPT.md +194 -0
  40. package/templates/DISCORD_BOT_INTEGRATION.md +187 -0
  41. package/templates/GLOSSARY_NON_PROGRAMMER.md +361 -0
  42. package/templates/INDEX.md +157 -0
  43. package/templates/MCP_SETUP.md +1145 -0
  44. package/templates/MIGRATE_TO_SUBFOLDER_PROMPT_v1.md +220 -0
  45. package/templates/ONBOARDING.md +172 -0
  46. package/templates/PROJECT_STARTER_TEMPLATES.md +264 -0
  47. package/templates/PROMPT_LIBRARY.md +790 -0
  48. package/templates/RLS_SETUP_PROMPT.md +167 -0
  49. package/templates/SECURITY_INCIDENT_PLAYBOOK.md +191 -0
  50. package/templates/SPLIT_REPO_AGENTS_TEMPLATES.md +32 -0
  51. package/templates/SPLIT_REPO_NON_PROGRAMMER_PROMPTS.md +604 -0
  52. package/templates/SPLIT_REPO_TOOLS_SETUP.md +388 -0
  53. package/templates/STACK_DETECTION_PATTERN.md +261 -0
  54. package/templates/STACK_GUIDE.md +564 -0
  55. package/templates/STACK_MIGRATION_GUIDE.md +154 -0
  56. package/templates/STACK_VERSIONS.md +31 -0
  57. package/templates/UPDATE_GUIDE.md +246 -0
  58. package/templates/_EXAMPLE.md +110 -0
  59. package/templates/_PATTERNS.md +173 -0
  60. package/templates/architecture.md +180 -0
  61. package/templates/architecture_auto.md +61 -0
  62. package/templates/decisions/README.md +108 -0
  63. package/templates/decisions/_TEMPLATE.md +84 -0
  64. package/templates/feature-flags-advanced.md +171 -0
  65. package/templates/github/CODEOWNERS.template +61 -0
  66. package/templates/github/GENERATE_TYPES_SCRIPT.md +77 -0
  67. package/templates/github/PUBLISH_SHARED_WORKFLOW.yml +52 -0
  68. package/templates/github/RECEIVE_BACKEND_UPDATE.yml +106 -0
  69. package/templates/github/RENOVATE_FRONTEND.json +28 -0
  70. package/templates/github/TRIGGER_FRONTEND_UPDATE.yml +29 -0
  71. package/templates/github/pull_request_template.md +44 -0
  72. package/templates/github/scripts/ai-review.js +153 -0
  73. package/templates/github/workflows/ai-review.yml +61 -0
  74. package/templates/github/workflows/backup-schemas.yml +169 -0
  75. package/templates/glossary.md +110 -0
  76. package/templates/split-agents/BACKEND.md +149 -0
  77. package/templates/split-agents/FRONTEND.md +141 -0
  78. package/templates/split-agents/SHARED.md +82 -0
  79. package/templates/split-agents/TOOLS.md +77 -0
  80. package/tests/Run-Tests.ps1 +19 -0
  81. package/tests/lib-safety.Tests.ps1 +66 -0
  82. package/tests/rollback.Tests.ps1 +66 -0
  83. package/tests/uninstall.Tests.ps1 +265 -0
  84. package/tests/update-kit.Tests.ps1 +78 -0
  85. package/uninstall.ps1 +794 -0
  86. package/update-kit.ps1 +907 -0
@@ -0,0 +1,604 @@
1
+ # Non-Programmer Prompt Cheatsheet — Split Repo Workflow
2
+
3
+ > Print this. Tempel di monitor kamu. Tools digital populer = referensi cara berkomunikasi dengan AI.
4
+
5
+ ---
6
+
7
+ ## Filosofi: Kamu BUKAN Programmer, Kamu Operator AI
8
+
9
+ Analogi tools digital:
10
+ - **Kamu** = admin Tokopedia Seller, terima pesanan dari customer
11
+ - **AI Claude Code** = driver Gojek yang jalanin pesanan
12
+ - **Owner** = manajer yang cek hasil sebelum dikirim
13
+ - **Staff lain** = rekan kerja di shift sama, koordinasi lewat WhatsApp grup
14
+
15
+ Kamu gak perlu ngerti bahasa pemrograman. Kamu perlu ngerti:
16
+ - **APA**: apa yang harus dikerjain
17
+ - **DI MANA**: di bagian mana (Tampilan / Data / paket bersama)
18
+ - **SAMA SIAPA**: koordinasi sama tim mana
19
+ - **KAPAN**: kapan harus selesai + ada yang harus siap duluan gak
20
+
21
+ Analogi lebih lanjut:
22
+ - Minta ke AI = chat ke driver ojol. Makin jelas alamat + patokan, makin cepet sampai.
23
+ - Bagian Tampilan = etalase Tokopedia (yang dilihat customer). Bagian Data = gudang Tokopedia (stok, harga, aturan). Paket bersama = katalog produk (kesepakatan antara etalase & gudang).
24
+ - Discord channel = WhatsApp grup kerja. Jangan DM personal buat urusan kerja.
25
+ - Owner cek = supervisor Grab approve pesanan besar sebelum dijalankan.
26
+
27
+ ---
28
+
29
+ ## Format Prompt Universal
30
+
31
+ ```
32
+ Tugas hari ini: <tulis dalam 1 kalimat apa yang mau dikerjain>
33
+
34
+ Yang dibutuhin / harus muncul:
35
+ - <hal 1>
36
+ - <hal 2>
37
+ - <hal 3>
38
+
39
+ Catatan tambahan:
40
+ - Sumber permintaan: <dari Discord channel / WA / owner langsung>
41
+ - Referensi: <link / screenshot / contoh kalau ada>
42
+ - Nunggu apa duluan: <ada tim lain yang harus siapin sesuatu duluan?>
43
+ ```
44
+
45
+ Analogi: Mirip kirim order Gojek detail. Bukan cuma "anter ke restoran" tapi "anter ke Tokopedia Tower, lewat tol, jam 12 siang, customer nama Budi nomor +628xxx".
46
+
47
+ Analogi kedua: Mirip isi form Shopee return. Kalau cuma tulis "barang rusak", CS bingung. Kalau detail "layar pecah di pojok kanan atas, foto terlampir, kode pesanan #12345", CS langsung proses.
48
+
49
+ ---
50
+
51
+ ## CONTEKAN STAFF TAMPILAN (4 Orang) — Contoh Cara Minta ke AI
52
+
53
+ > Untuk Staff Tampilan: kerja di bagian yang dilihat user (halaman, tombol, tampilan).
54
+ > Soal data: cuma boleh ambil/edit data lewat jalur yang udah disiapin tim Data. Gak boleh utak-atik database langsung.
55
+
56
+
57
+ ### Pola 1: Bikin Halaman Baru
58
+
59
+ ```
60
+ Tugas baru: Bikin halaman buat <kegunaannya>.
61
+
62
+ Yang ditampilin di halaman:
63
+ - <info 1>
64
+ - <info 2>
65
+ - <info 3>
66
+
67
+ Yang bisa dilakuin user di halaman ini:
68
+ - <kalau user klik X, terjadi Y>
69
+
70
+ Catatan:
71
+ - Datanya kata tim Data udah siap, tinggal panggil aja
72
+ - Contoh tampilan / design: <link / screenshot / kalau belum ada bilang aja>
73
+ - Halaman ini dibuka pas user dari mana: <dari menu apa>
74
+ ```
75
+
76
+ Contoh konkret:
77
+ ```
78
+ Tugas baru: Bikin halaman buat lacak paket.
79
+
80
+ Yang ditampilin di halaman:
81
+ - Status paket sekarang (lagi diproses, sudah dikirim, atau sudah sampai)
82
+ - Perkiraan tanggal kapan barang sampai di rumah customer
83
+ - Info kurir yang bawa paket
84
+
85
+ Yang bisa dilakuin user di halaman ini:
86
+ - Klik tombol "Lacak Detail" buat lihat info lengkap kurir
87
+ - Halaman update sendiri tiap setengah menit, biar info paling baru
88
+
89
+ Catatan:
90
+ - Tim Data bilang info paket udah siap, tinggal dipanggil
91
+ - Contoh tampilan: lihat WA grup desain tanggal 5 Juni
92
+ - Halaman ini dibuka pas user klik "Lacak Pesanan" di dashboard
93
+ ```
94
+
95
+ Analogi tools digital: Mirip bikin halaman katalog produk baru di Tokopedia Seller Dashboard. Kamu kasih tau template, info yang harus tampil, dan cara customer interact. AI bikin halamannya.
96
+
97
+ ### Pola 2: Ubah Tampilan yang Sudah Ada
98
+
99
+ ```
100
+ Tugas: Ubah tampilan <halaman/bagian> sesuai feedback.
101
+
102
+ Yang berubah:
103
+ - <perubahan 1>
104
+ - <perubahan 2>
105
+
106
+ Bagian mana yang kena: <kalau tahu sebut, kalau gak tau biarin AI cari sendiri>
107
+ ```
108
+
109
+ Contoh konkret:
110
+ ```
111
+ Tugas: Ubah tampilan halaman checkout sesuai feedback owner.
112
+
113
+ Yang berubah:
114
+ - Tombol "Bayar" warna diganti dari biru ke hijau (ikuti warna brand baru)
115
+ - Tambah gambar gembok di sebelah kotak isian nomor kartu, biar customer ngerasa aman
116
+ - Pas loading, tampilannya pakai kotak abu-abu yang berkedip, bukan lingkaran muter
117
+
118
+ Bagian mana yang kena: bagian halaman checkout (biarin AI cari sendiri file yang relevan)
119
+ ```
120
+
121
+ Analogi: Mirip kasih feedback ke desainer Canva. "Logo geser ke kanan, warna ganti ke hijau". Desainer (AI) tahu file mana yang harus diedit.
122
+
123
+ ### Pola 3: Laporin Masalah / Bug
124
+
125
+ ```
126
+ Bug: <jelasin masalahnya pakai bahasa user>
127
+
128
+ Cara nge-cek bahwa bug-nya ada:
129
+ 1. <langkah 1>
130
+ 2. <langkah 2>
131
+ 3. Yang seharusnya terjadi: <kondisi normal>
132
+ 4. Yang terjadi sekarang: <kondisi salah>
133
+
134
+ Foto / video: <link kalau ada>
135
+ ```
136
+
137
+ Contoh konkret:
138
+ ```
139
+ Bug: Halaman jadi putih kosong pas customer klik "Batalkan Pesanan".
140
+
141
+ Cara nge-cek bahwa bug-nya ada:
142
+ 1. Buka halaman pesanan nomor 12345
143
+ 2. Klik tombol "Batalkan Pesanan"
144
+ 3. Klik "Ya, batalkan" di kotak konfirmasi
145
+ 4. Yang seharusnya terjadi: kembali ke daftar pesanan dengan pesan "Pesanan dibatalkan"
146
+ 5. Yang terjadi sekarang: halaman jadi putih kosong, harus refresh manual
147
+
148
+ Foto / video: link Discord lampiran abc123.mp4
149
+ ```
150
+
151
+ Analogi tools digital: Mirip lapor bug Tokopedia ke CS. Detail langkah per langkah, plus screenshot. AI ngerti masalah persis dan benerin di tempat yang tepat.
152
+
153
+ Analogi kedua: Mirip kirim laporan ke ojol kalau driver bermasalah. "Driver minta uang tambahan, padahal jarak sesuai aplikasi, ini foto chat-nya." CS langsung tahu konteks dan bisa action.
154
+
155
+ ### Pola 4: Tanya AI Dulu Sebelum Mulai Kerja
156
+
157
+ ```
158
+ /tanya <pertanyaan kamu>
159
+ ```
160
+
161
+ Contoh:
162
+ - "/tanya ada berapa halaman yang pakai menu samping?"
163
+ - "/tanya kalau saya ubah info user, kira-kira apa aja yang kena dampaknya?"
164
+ - "/tanya daftar pesanan ada fitur lompat halaman gak?"
165
+
166
+ AI cuma baca + jawab. Gak ngubah apapun.
167
+
168
+ Analogi: Mirip tanya ke senior di Discord channel sebelum mulai kerja. "Eh, kalau saya ubah X, kira-kira impact ke mana aja ya?" Senior cek dulu, baru kasih saran. Beda dengan langsung ubah lalu rusak.
169
+
170
+ ### Pola 5: Sinkronin Info Bersama dari Tim Data
171
+
172
+ ```
173
+ Tugas: Sinkronin ulang info bersama dari paket bersama tim Data.
174
+
175
+ Catatan:
176
+ - Tim Data kabarin di Discord channel ada paket info versi baru
177
+ - Yang berubah / baru: <nama info-nya>
178
+ ```
179
+
180
+ Analogi: Mirip update aplikasi Tokopedia di HP. Tim Tokopedia push update, kamu (customer) install update biar dapet fitur baru. Sama, tim Data bikin update, tim Tampilan ikut install update info.
181
+
182
+ ---
183
+
184
+ ## CONTEKAN STAFF DATA (2 Orang) — Contoh Cara Minta ke AI
185
+
186
+ > Untuk Staff Data: kerja di bagian belakang (tempat data disimpan, aturan bisnis, jalur ambil data).
187
+ > Soal database: punya akses penuh, boleh nambah/ubah/hapus tempat penyimpanan data.
188
+
189
+
190
+ ### Pola 1: Sediakan Jalur Data Baru
191
+
192
+ ```
193
+ Tugas baru: Sediain info <nama fitur> buat tim Tampilan.
194
+
195
+ Soal tempat simpan data:
196
+ - Tabel <nama>: tambah info <nama info>, isinya bisa kosong: <ya/tidak>
197
+
198
+ Soal jalur ambilnya:
199
+ - Cara ambil: <ambil daftar / kirim isian baru / ubah / hapus>
200
+ - Yang harus dikirim user: <apa aja>
201
+ - Yang dikasih balik: <apa aja>
202
+ - Aturan khusus: <jelasin pakai bahasa biasa>
203
+
204
+ Soal paket info bersama:
205
+ - Tambah info baru di paket bersama
206
+ - Naikin nomor versinya, kabarin tim Tampilan
207
+ ```
208
+
209
+ Contoh konkret:
210
+ ```
211
+ Tugas baru: Sediain info pelacakan pesanan buat tim Tampilan.
212
+
213
+ Soal tempat simpan data:
214
+ - Tabel Pesanan: tambah info perkiraan tanggal sampai, isinya bisa kosong: ya
215
+ (kalau belum dikirim ya belum ada perkiraannya)
216
+
217
+ Soal jalur ambilnya:
218
+ - Cara ambil: ambil info pelacakan satu pesanan
219
+ - Yang harus dikirim user: nomor pesanan-nya
220
+ - Yang dikasih balik: nomor pesanan, status (proses/dikirim/sampai),
221
+ tanggal kirim, perkiraan tanggal sampai, tanggal sampai beneran
222
+ - Aturan khusus:
223
+ - Perkiraan sampai = tanggal kirim + lama waktu sesuai jenis kurir
224
+ - Kalau status udah "sampai", perkiraannya pakai tanggal sampai beneran
225
+
226
+ Soal paket info bersama:
227
+ - Tambah info pelacakan pesanan di paket bersama
228
+ - Naikin versi paketnya (misalnya dari versi 1.1 ke versi 1.2)
229
+ - Kabarin tim Tampilan di Discord channel
230
+ ```
231
+
232
+ Analogi tools digital: Mirip buka layanan baru di Gojek (misal GoSend Same Day). Database = update daftar jenis layanan. Jalur ambil = saluran yang aplikasi panggil. Paket bersama = kontrak ke tim Tampilan "ini bentuk infonya, tinggal ditampilin".
233
+
234
+ ### Pola 2: Ubah Tempat Simpan Data
235
+
236
+ ```
237
+ Tugas: Ubah tempat simpan data.
238
+
239
+ Yang berubah:
240
+ - <tabel>: <nambah/ubah/hapus> info <nama info>
241
+ - <tabel>: <nambah/ubah/hapus> info <nama info>
242
+
243
+ Cek keamanan perubahan:
244
+ - Bahaya gak? <bahaya kalau hapus / aman kalau nambah info baru yang kosong>
245
+ - Bikin data lama rusak gak? <ya / tidak>
246
+ - Perlu isi default buat data lama? <kalau ubah info, kasih nilai default>
247
+ ```
248
+
249
+ Contoh konkret:
250
+ ```
251
+ Tugas: Ubah tempat simpan data buat fitur langganan berbayar.
252
+
253
+ Yang berubah:
254
+ - Tabel Pengguna: tambah info paket langganan (pilihan: gratis/pro/perusahaan),
255
+ default-nya "gratis"
256
+ - Tabel Pengguna: tambah info tanggal langganan berakhir, isinya bisa kosong
257
+ - Tabel Langganan: bikin tabel baru (nomor, pengguna, paket, mulai kapan,
258
+ berakhir kapan, status aktif/nonaktif)
259
+
260
+ Cek keamanan perubahan:
261
+ - Bahaya gak? Tidak (semua cuma nambah, gak ada yang dihapus)
262
+ - Bikin data lama rusak gak? Tidak (pengguna lama otomatis dapet paket "gratis")
263
+ - Perlu isi default buat data lama? Udah dikasih default "gratis" buat semua
264
+ pengguna lama
265
+ ```
266
+
267
+ Analogi: Mirip nambah kolom baru di Google Sheets bersama tim. Kalau nambah kolom kosong = aman. Kalau hapus kolom yang dipakai orang lain = berantakan. Staff Data harus mikirin dampak ke semua "pengguna sheet" (tim Tampilan, aplikasi HP, integrasi lain).
268
+
269
+ ### Pola 3: Tambah Aturan Bisnis
270
+
271
+ ```
272
+ Tugas: Tambah aturan <nama aturan>.
273
+
274
+ Aturan-nya:
275
+ - <kalau A maka B>
276
+ - <kalau gak, terus C maka D>
277
+ - <kondisi cadangan>
278
+
279
+ Lokasi: di bagian aturan bisnis <area apa>
280
+ Tes: bikin pengecekan otomatis buat semua kemungkinan kondisi
281
+ ```
282
+
283
+ Contoh konkret:
284
+ ```
285
+ Tugas: Tambah aturan hitung ongkir.
286
+
287
+ Aturan-nya:
288
+ - Kalau jarak di bawah 5km, ongkir Rp 10.000
289
+ - Kalau jarak antara 5-20km, ongkir Rp 10.000 + (jarak dikurangi 5) x Rp 2.000
290
+ - Kalau jarak di atas 20km, ongkir Rp 40.000 + (jarak dikurangi 20) x Rp 3.000
291
+ - Cadangan: kalau jarak 0 atau kosong, ongkir Rp 0, plus catat peringatan
292
+
293
+ Lokasi: di bagian aturan bisnis pengiriman
294
+ Tes: bikin pengecekan otomatis buat:
295
+ - Jarak 0, 3, 5, 10, 20, 25, 50 km
296
+ - Jarak kosong / tidak diisi
297
+ ```
298
+
299
+ Analogi: Mirip nulis SOP di Notion buat admin toko. "Kalau customer komplain, langkah 1 cek riwayat pesanan. Langkah 2 kalau ada bukti rusak, refund. Langkah 3 kalau ragu, eskalasi ke supervisor." Aturan bisnis juga langkah per langkah, harus jelas semua kemungkinan.
300
+
301
+ ### Pola 4: Laporin Bug di Bagian Data
302
+
303
+ ```
304
+ Bug: <jelasin masalahnya>
305
+
306
+ Cara nge-cek bahwa bug-nya ada:
307
+ 1. <coba ambil info pakai cara apa>
308
+ 2. Yang seharusnya muncul: <kondisi normal>
309
+ 3. Yang muncul sekarang: <kondisi salah / pesan error>
310
+
311
+ Pesan error: <paste pesan error-nya>
312
+ ```
313
+
314
+ Contoh konkret:
315
+ ```
316
+ Bug: Pas user buka pesanan yang gak ada, sistem error parah bukannya kasih
317
+ pesan sopan.
318
+
319
+ Cara nge-cek bahwa bug-nya ada:
320
+ 1. Coba ambil info pesanan dengan nomor 99999 (pesanan yang gak ada)
321
+ 2. Yang seharusnya muncul: pesan sopan "Pesanan tidak ditemukan"
322
+ 3. Yang muncul sekarang: pesan error sistem yang panjang dan teknis
323
+
324
+ Pesan error: "TypeError: Cannot read property 'status' of null"
325
+ (intinya: sistem mau baca info status, tapi info pesanannya kosong)
326
+ ```
327
+
328
+ Analogi: Mirip lapor ke admin gudang "kalau saya tanya barang yang gak ada di stok, sistem-nya crash, harusnya kasih pesan sopan aja". Admin fix biar gak panik kalau dicari barang kosong.
329
+
330
+ ---
331
+
332
+ ## KOORDINASI ANTAR TIM
333
+
334
+ ### Tim Data Selesai -> Kabarin Tim Tampilan
335
+
336
+ Staff Data post di Discord channel tugas:
337
+ ```
338
+ [Selesai] Tugas <judul tugas> sudah siap dari sisi Data.
339
+ - Info-nya bisa diambil di sistem percobaan (staging)
340
+ - Paket info bersama sudah diupdate ke versi baru
341
+ - Tim Tampilan silakan lanjut bikin halaman / tampilannya
342
+ - Kalau ada pertanyaan, ping aja di Discord channel
343
+ ```
344
+
345
+ Analogi: Mirip kurir Gojek update "barang sudah di-pickup, OTW ke alamat". Customer (tim Tampilan) tahu boleh siap-siap terima. Tanpa update ini, customer bingung "udah jalan belum sih?".
346
+
347
+ ### Tim Tampilan Butuh Tim Data -> Minta Tolong
348
+
349
+ Staff Tampilan post:
350
+ ```
351
+ Halo tim Data, butuh bantuan buat fitur baru:
352
+
353
+ Apa yang dibutuhin:
354
+ - Tim Tampilan mau nampilin <info X> di halaman <Y>
355
+ - Datanya seharusnya udah ada di sistem (tinggal disediain jalur ambilnya)
356
+
357
+ Buat apa: pas user klik <tombol Z>, muncul info <X>-nya
358
+
359
+ Kalau ada yang kurang jelas, ping aja di Discord channel ya.
360
+ ```
361
+
362
+ Tim Data jawab:
363
+ ```
364
+ Oke noted, akan diproses. Perkiraan selesai <hari>.
365
+ ```
366
+
367
+ Analogi: Mirip restoran terima pesanan via Tokopedia. Customer (tim Tampilan) order, restoran (tim Data) konfirmasi "diterima, estimasi 30 menit". Bukan diem aja sampai customer bingung.
368
+
369
+ ### Tim Tampilan & Tim Data Beda Pengertian (beda paham instruksi)
370
+
371
+ Pakai pola ini:
372
+ ```
373
+ [Mau Klarifikasi] Saya nangkep instruksi ini begini: <pengertian A>.
374
+ Tim <Tampilan/Data>, kalian nangkep-nya begini juga atau beda?
375
+ Tag owner buat keputusan akhir: @owner
376
+ ```
377
+
378
+ Analogi: Mirip dua tim marketing & finance debat budget. Yang nentuin akhirnya manager (owner). Jangan main asumsi sendiri lalu kerja duluan.
379
+
380
+ ---
381
+
382
+ ## Cara Staff Liat Halaman Percobaan (Preview)
383
+
384
+ Setiap kali kamu kirim usulan perubahan (PR), sistem otomatis bikin link preview. Gak perlu setting apapun.
385
+
386
+ Cara kerjanya:
387
+ 1. Kamu kirim usulan perubahan ke GitHub
388
+ 2. Sistem otomatis komentar di usulan kamu, kasih link preview:
389
+ "Preview siap: https://akses-frontend-git-fitur-abc.vercel.app"
390
+ 3. Klik link → buka di browser
391
+ 4. Coba-coba fitur kamu di sini
392
+ 5. Bagi link ke owner lewat Discord channel review
393
+ 6. Owner klik link, lihat, kalau oke baru di-approve
394
+
395
+ PENTING: Link preview itu BISA DILIAT SIAPA AJA yang punya link.
396
+ - Buat halaman sensitif (misal halaman admin): kalau mau dikunci pakai password, Vercel ada paket berbayar $20/bulan.
397
+ - Atau: undang teman tim ke project Vercel (paket gratis cuma bisa 5 orang).
398
+
399
+ Analogi: kayak bagi link Google Drive yang setting-nya "siapa pun yang punya link bisa lihat". Cepet tapi gak super privat.
400
+
401
+ ---
402
+
403
+ ## NAIK BANDING ke OWNER (Eskalasi)
404
+
405
+ Pakai pola ini kalau:
406
+ - Tugas butuh keputusan bisnis (bukan teknis)
407
+ - Tugas butuh akses ke bagian Data (kamu staff Tampilan)
408
+ - Macet lebih dari 1 jam gak ada kemajuan
409
+ - AI bilang "saya tidak yakin / butuh penjelasan lebih lanjut"
410
+
411
+ ```
412
+ /eskalasi
413
+
414
+ Cerita lengkapnya:
415
+ - Tugas: <judul tugas yang lagi dikerjain>
416
+ - Yang udah dicoba: <apa aja yang udah dicoba>
417
+ - Macet-nya di mana: <jelasin macet-nya>
418
+ - Butuh keputusan apa dari owner: <apa yang butuh diputusin owner>
419
+ ```
420
+
421
+ AI bikin ringkasan buat dikirim ke owner lewat Discord DM.
422
+
423
+ Contoh:
424
+ ```
425
+ /eskalasi
426
+
427
+ Cerita lengkapnya:
428
+ - Tugas: Bikin perhitungan ongkir
429
+ - Yang udah dicoba: cek tarif Tokopedia & Shopee buat pembanding
430
+ - Macet-nya di mana: instruksi dari owner cuma bilang "ongkir masuk akal",
431
+ belum ada angka pastinya
432
+ - Butuh keputusan apa dari owner: angka pasti tarif per jarak, atau ikutin
433
+ hitungan pesaing?
434
+ ```
435
+
436
+ Analogi: Mirip staff toko nelpon supervisor pas customer minta diskon besar. "Pak, customer minta diskon 30%, saya gak punya wewenang, mau konfirm dulu." Bukan asal kasih lalu kena teguran.
437
+
438
+ ---
439
+
440
+ ## CARA MINTA YANG BURUK (Hindari)
441
+
442
+ Buruk: "tolong benerin bug-nya"
443
+ Baik: "Bug: pas klik tombol Batalkan di halaman daftar pesanan, halaman jadi putih kosong"
444
+
445
+ Buruk: "lanjutin yang tadi"
446
+ Baik: "Lanjutin revisi sesuai komentar owner di usulan perubahan kemarin [paste komentarnya]"
447
+
448
+ Buruk: "ya udah lanjut aja"
449
+ Baik: "Oke, lanjut. Kalau udah selesai, kirim ke sistem percobaan dan kabarin tim Tampilan."
450
+
451
+ Buruk: "data-nya gimana?"
452
+ Baik: "/tanya info pesanan udah siap di sistem percobaan atau belum? Saya coba ambil tapi gak ada"
453
+
454
+ Buruk: "bikin halaman yang bagus"
455
+ Baik: "Bikin halaman daftar produk. Di komputer tampil 3 produk per baris, di HP 1 produk per baris. Tampilin nama, harga, gambar. Bisa diurutin dari harga termurah."
456
+
457
+ Buruk: "ada masalah di sistem"
458
+ Baik: "PENTING: customer komplain di Discord channel support, halaman pembayaran error sejak jam 2 siang, ini foto pesan errornya"
459
+
460
+ Analogi: Cara minta yang asal = order ojol dengan alamat "rumah saya". Driver bingung, telpon 5 kali, kamu jengkel. Cara minta yang detail = alamat lengkap + patokan, driver langsung sampai.
461
+
462
+ ---
463
+
464
+ ## CONTEKAN AKHIR (Print, Tempel di Monitor)
465
+
466
+ ```
467
+ ===========================================
468
+ CONTEKAN BUAT STAFF TAMPILAN (4 orang)
469
+ Kerja di: bagian yang dilihat user
470
+ Soal data: cuma boleh ambil/edit lewat jalur tim Data
471
+ ===========================================
472
+
473
+ 1. Tugas: <apa>
474
+ Yang ditampilin / yang berubah: <daftar singkat>
475
+ Catatan:
476
+ - Data dari mana: <kata tim Data udah siap di mana>
477
+ - Pakai info bersama versi berapa
478
+
479
+ 2. Kalau bingung: /tanya <pertanyaan>
480
+
481
+ 3. Naik banding ke owner: /eskalasi <cerita>
482
+
483
+ 4. Koordinasi sama tim Data lewat Discord channel tugas
484
+
485
+ 5. JANGAN: minta yang asal ("benerin bug", "lanjut aja")
486
+ SELALU: kasih judul tugas + cerita lengkap
487
+ ===========================================
488
+
489
+ ===========================================
490
+ CONTEKAN BUAT STAFF DATA (2 orang)
491
+ Kerja di: tempat simpan data + aturan bisnis + jalur ambil data
492
+ Database: punya akses penuh, boleh nambah/ubah/hapus
493
+ ===========================================
494
+
495
+ 1. Tugas: <apa>
496
+ Soal tempat simpan data: <yang berubah>
497
+ Soal jalur ambilnya: <cara ambil + yang dikirim + yang dikasih balik>
498
+ Soal aturan: <aturan bisnisnya>
499
+ Soal paket info bersama: <info baru yang ditambah>
500
+
501
+ 2. Kalau udah siap: kabarin tim Tampilan di Discord channel
502
+
503
+ 3. Naikin versi paket info bersama, kabarin tim Tampilan
504
+
505
+ 4. JANGAN: lupa catat perubahan database
506
+ SELALU: kasih nama yang jelas pas nyimpen perubahannya
507
+ ===========================================
508
+ ```
509
+
510
+ ---
511
+
512
+ ## TANYA JAWAB Buat Staff Awam
513
+
514
+ **Q: Kalau saya bingung sama istilah teknis pas baca instruksi, gimana?**
515
+ A: Bilang aja AI: "tolong jelasin <istilahnya> pakai bahasa biasa". AI akan jelasin ulang. Analogi: mirip nanya ke customer service Tokopedia "bang, 'cashback' itu apa sih?". CS jawab pakai bahasa simpel.
516
+
517
+ **Q: Saya gak yakin tugas ini buat tim Tampilan atau tim Data, gimana?**
518
+ A: Pakai /cek-bagian <ceritain tugasnya>. AI bakal kasih tau (Tampilan = halaman yang dilihat user; Data = tempat simpan info + aturan bisnis). Analogi: mirip cek saldo ShopeePay sebelum transaksi besar. Cek dulu apakah bisa, baru jalan.
519
+
520
+ **Q: AI bikin sesuatu yang aneh, saya gak ngerti, harus terima?**
521
+ A: Bilang AI: "kasih ringkasan apa aja yang kamu ubah, di bagian mana, dan kenapa". Kalau penjelasannya masih gak ngerti juga, naik banding ke owner. Analogi: mirip terima tagihan dari vendor yang angkanya aneh. Minta rincian dulu, jangan asal setuju.
522
+
523
+ **Q: Saya share layar ke owner, takut info rahasia keliatan, gimana?**
524
+ A: Sebelum share, tutup file rahasia (file .env.local sama file profil staff). Share halaman aplikasi aja. Analogi: mirip screenshot saldo bank buat bukti transfer. Tutup dulu nomor rekening + total saldo, cuma tunjukin nominal yang ditransfer.
525
+
526
+ **Q: Saya kirim perubahan ternyata salah, gimana batalin?**
527
+ A: Bilang AI: "/batalin perubahan terakhir, jangan dikirim". AI batalin di komputer lokal. Kalau udah terkirim, bilang owner sebelum panik. Analogi: mirip transfer GoPay ke nomor salah. Kalau belum diterima, masih bisa cancel. Kalau udah masuk, harus minta tolong CS.
528
+
529
+ **Q: AI minta saya jalanin perintah yang gak saya ngerti (misal "hapus semua folder X"), aman?**
530
+ A: TANYA dulu sebelum dijalanin: "/tanya perintah <X> ini buat apa, ada resikonya gak?". AI bakal jelasin. Kalau masih ragu, naik banding ke owner. Analogi: mirip dapet pesan WA "klik link ini buat klaim hadiah". Jangan asal klik, verifikasi dulu.
531
+
532
+ **Q: Saya staff Tampilan tapi butuh ubah info di paket bersama, boleh?**
533
+ A: Gak boleh langsung. Cara-nya: minta ke tim Data lewat Discord channel, mereka yang update + naikin versi paketnya, kamu tinggal sinkronin. Analogi: mirip stok barang di Tokopedia. Tim Tampilan (etalase) gak boleh ubah harga langsung, harus minta tim Data (admin produk) ubah dulu, baru sinkron ke etalase.
534
+
535
+ **Q: Owner kasih tugas lewat WA personal, padahal aturannya lewat Discord channel, gimana?**
536
+ A: Sopan minta dipindah: "Pak owner, boleh tugas ini ditaroh di channel tugas biar tim lain juga tau? Khawatir double kerja kalau ada yang ambil juga." Analogi: mirip arisan harus di grup, jangan personal. Biar semua transparan.
537
+
538
+ **Q: Saya butuh akses ke database asli buat ngecek masalah, boleh minta?**
539
+ A: Gak boleh. Akses database asli cuma buat tim Data + owner (staff Tampilan gak punya akses ke bagian Data maupun kunci database-nya). Cara-nya: ceritain masalahnya, AI siapin perintah buat ngecek, owner / staff Data yang jalanin lalu kirim hasilnya. Analogi: mirip ATM bank. Customer (kamu) gak bisa buka brankas, harus minta teller (owner) yang verifikasi dulu.
540
+
541
+ **Q: AI bilang "saya gak punya info soal X", gimana?**
542
+ A: Kasih info yang dia minta. Tempel link, tempel pesan error, tempel screenshot dengan keterangan. Jangan harap AI nebak-nebak. Analogi: mirip nanya ke teman lewat chat "eh tolongin ini dong". Teman pasti nanya balik "tolongin apa, screenshot dong". Sama lah AI.
543
+
544
+ ---
545
+
546
+ ## Tips Tambahan Buat Staff Awam
547
+
548
+ ### Tip 1: Selalu Mulai dari Cerita Latar Belakang
549
+ Sebelum minta ke AI, tanya diri sendiri:
550
+ - Bagian mana yang kena? (Tampilan / Data / paket bersama)
551
+ - Ada yang harus siap duluan? (perlu nunggu tim lain selesai dulu?)
552
+ - Siapa yang harus tau? (cuma saya, tim, atau owner)
553
+
554
+ Analogi: mirip nulis email kerja. Judul jelas, penerima tepat, CC yang relevan. Bukan asal kirim ke semua orang.
555
+
556
+ ### Tip 2: Jangan Takut Nanya Ulang
557
+ AI gak bakal judge kalau kamu nanya 5x buat memperjelas instruksi. Lebih baik nanya banyak di awal daripada kerja salah dan ngulang.
558
+
559
+ Analogi: mirip nanya alamat ke ojol "Pak, di gang setelah Indomaret atau sebelum?". Driver lebih seneng ditanya daripada nyasar.
560
+
561
+ ### Tip 3: Cek Dulu Sebelum Kirim
562
+ Pola aman sebelum kirim hasil kerja:
563
+ ```
564
+ /cek hasil tugas <judul tugas>
565
+ ```
566
+ AI bakal jalanin pengecekan otomatis. Kalau semua hijau, baru dikirim.
567
+
568
+ Analogi: mirip cek isi tas sebelum keluar rumah. Dompet, HP, kunci — aman? Baru cabut.
569
+
570
+ ### Tip 4: Catat Pas Selesai
571
+ Setelah selesai tugas besar, post di Discord channel:
572
+ ```
573
+ [Selesai] Tugas <judul tugas>
574
+ - Apa yang dikerjain: <ringkas>
575
+ - Bagian yang berubah: <daftar singkat>
576
+ - Udah dicoba di sistem percobaan: <link>
577
+ - Perlu owner cek dulu sebelum dipakai: <ya/tidak>
578
+ ```
579
+
580
+ Analogi: mirip update status pesanan Shopee "barang sudah dikirim, nomor resi JNE 1234". Customer aware, kamu juga punya catatan.
581
+
582
+ ### Tip 5: Hormati Jam Kerja
583
+ Tim Data mungkin beda jam kerjanya. Jangan harap dibales cepet di luar jam kerja. Kalau urgent, langsung naik banding ke owner.
584
+
585
+ Analogi: mirip seller Tokopedia. Customer chat jam 2 pagi, jangan harap dibales langsung. Tapi kalau urgent (refund besar), bisa hubungi nomor darurat.
586
+
587
+ ---
588
+
589
+ ## Penutup
590
+
591
+ Kamu adalah operator AI, bukan programmer. Tugasmu:
592
+ 1. Terjemahin kebutuhan bisnis jadi instruksi yang detail buat AI
593
+ 2. Koordinasi sama tim lain lewat Discord channel
594
+ 3. Naik banding ke owner kalau macet atau butuh keputusan
595
+ 4. Cek hasil AI sebelum bilang "selesai"
596
+
597
+ Kalau ragu, prinsipnya:
598
+ - **Jelas > Singkat**: lebih baik instruksi panjang detail daripada singkat tapi ambigu
599
+ - **Nanya > Nebak**: lebih baik nanya 5x daripada ngulang kerjaan 1x
600
+ - **Terbuka > Diem**: post update di Discord channel, jangan kerja diem-diem
601
+
602
+ Analogi terakhir: bayangin kamu sopir Gojek pakai Google Maps. Maps (AI) bantu navigasi, tapi kamu yang nentuin tujuan, kapan jalan, kapan istirahat. Kalau Maps suruh lewat jalan rusak, kamu boleh tolak. Tapi kamu juga harus tau cara baca Maps biar gak nyasar.
603
+
604
+ Selamat bekerja. Tempel contekan ini di monitor.