@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,7 @@
1
+ # ANALOGI_LIBRARY โ€” 30 jargon teknis x 3-layer analogi tools digital populer Indonesia
2
+
3
+ > **STATUS: ACTIVE** โ€” Auto-deployed via `setup-pola-b.ps1` ke `docs/ANALOGI_LIBRARY.md` di project user.
4
+ >
5
+ > Library ini dipakai sebagai cadangan rujukan kalau AI butuh analogi konsisten untuk istilah teknis yang sudah ada di tabel. Untuk istilah baru di luar tabel, AI generate 3-layer on-demand sesuai rule di `CLAUDE_universal_v1.md` (Layer 1: sehari-hari, Layer 2: tools digital populer Indonesia, Layer 3: kasus konkret user), lalu suggest tambah ke library via LAZY-GENERATE.
6
+
7
+ 5 grounding samples inline di `CLAUDE_universal_v1.md` (Prisma, migration, RLS, schema, env var). Sisanya rujuk ke library ini atau AI generate kontekstual.
@@ -0,0 +1,505 @@
1
+ # CLAUDE_TEAM_GUIDE.md โ€” Panduan Kerja Tim AI-First
2
+
3
+ > Versi 1 ยท 2026-06-01
4
+ > Bahasa Indonesia ยท junior-friendly ยท untuk tim 5โ€“15 dev AI-first
5
+ > File ini SISTEM (managed by kit). Jangan dihapus. Edit hati-hati โ€” kalau mau ubah pattern tim, PR ke repo kit `lintasAI`.
6
+
7
+ ---
8
+
9
+ ## 1. Untuk siapa file ini?
10
+
11
+ File ini ditulis untuk **anggota tim yang baru bergabung** dan **anggota lama yang butuh refresh**. Targetnya: dev non-programmer (atau junior) yang coding 100% lewat Claude Code. Setelah baca file ini sampai habis, kamu paham *cara tim ini bekerja sehari-hari*: dari nyalakan laptop pagi sampai PR di-merge sore. Kalau ada istilah asing, cek `docs/glossary.md` atau tanya Claude langsung โ€” jangan tebak.
12
+
13
+ ---
14
+
15
+ ## 2. Filosofi tim AI-first
16
+
17
+ Tim ini bukan tim "developer yang kebetulan pakai AI". Tim ini adalah **tim AI-first**: AI (Claude Code) jadi co-pilot utama, manusia jadi *decision maker* + *reviewer*. Konsekuensinya:
18
+
19
+ - **Setiap baris kode lahir dari dialog dengan AI**, bukan ketik manual. Kalau kamu ketik kode manual lebih dari 10 baris, berhenti โ€” minta Claude generate dulu, baru kamu edit.
20
+ - **Konteks > skill teknis**. Yang dinilai bukan "bisa nulis React seberapa lancar", tapi "bisa kasih konteks ke AI seberapa lengkap". Prompt yang jelas = output yang benar.
21
+ - **Dokumen `docs/` adalah memory eksternal tim**. AI tidak ingat sesi kemarin. Tapi kalau semua keputusan ada di `docs/`, AI sesi besok bisa lanjut dari titik yang sama. Jangan males update `.md`.
22
+ - **Manusia tetap accountable**. AI bisa salah, hallucinate, atau ngasal. Kamu yang tanda-tangan PR โ€” kamu yang tanggung jawab. Jangan auto-approve apa pun yang kamu tidak paham.
23
+ - **Slow is smooth, smooth is fast**. Lebih baik 1 task selesai bersih (kode + docs + test + review) daripada 5 task setengah jadi.
24
+
25
+ ---
26
+
27
+ ## 3. Setup awal dev baru hire (Day 0 โ€“ Day 14)
28
+
29
+ Dev baru hire wajib lewat onboarding 14 hari: Day 0 install tools + clone repo, Day 1 baca dokumentasi inti, Day 1โ€“2 first PR (good first issue) pair dengan senior, Day 3โ€“7 task mandiri Sโ€“M dengan review, Day 7โ€“14 full ownership 1 modul kecil, lalu Day 15+ mode normal.
30
+
31
+ **Jangan loncat fase.** Kalau Day 1 belum baca `architecture.md`, jangan langsung pegang task. Pondasi konteks dulu, baru kerja.
32
+
33
+ ๐Ÿ“‹ Detail Day 0-14 playbook lihat `templates/ONBOARDING.md`.
34
+
35
+ ---
36
+
37
+ ## 4. Workflow harian: 1 task = 1 sesi Claude Code
38
+
39
+ **Aturan emas**: satu task = satu sesi Claude Code yang fresh. Jangan campur 2 task dalam 1 sesi panjang โ€” konteks bercampur, AI bingung, kamu bingung.
40
+
41
+ ### Pola harian standar:
42
+
43
+ 1. **Pagi (15 menit)**: Buka **channel chat `#tasks-<proyek>` (default)** ATAU GitHub Issues (opsional, dipakai kalau proyek butuh tracking formal). Ambil 1 task yang ditandai ๐ŸŸฆ TODO. Pastikan kamu paham *apa yang diminta* sebelum buka Claude. Kalau ragu, tanya di channel tim dulu. Detail format prompt task & emoji status: lihat section 5b.
44
+ 2. **Buka sesi Claude Code baru** di folder proyek. Sesi baru = konteks bersih, tidak ada residu dari kemarin.
45
+ 3. **Brief AI dengan konteks**:
46
+ - Sebutkan issue/task number.
47
+ - Tunjuk file `docs/` yang relevan (mis. "baca `docs/auth.md` dulu").
48
+ - Jelaskan acceptance criteria dengan jelas.
49
+ 4. **Iterasi**: AI generate โ†’ kamu baca โ†’ kamu kritik โ†’ AI revisi. Ulangi sampai puas.
50
+ 5. **Verifikasi**: jalankan kode lokal (`npm run dev`), klik manual, atau minta Claude pakai skill `verify`.
51
+ 6. **Update docs**: AI auto-generate/update `.md` pendamping. Kamu baca sekilas, pastikan tidak hallucinate.
52
+ 7. **Commit + push + PR**: pakai pattern di `PROMPT_LIBRARY.md` no.5 (review PR teman) atau no.6 (refactor).
53
+ 8. **Tutup sesi Claude**. Besok pagi, sesi baru lagi.
54
+
55
+ ### Yang DILARANG:
56
+
57
+ - โŒ Sesi Claude jalan 8 jam non-stop tanpa restart โ€” konteks penuh, AI mulai ngaco.
58
+ - โŒ Kerja 3 task sekaligus dalam 1 sesi โ€” mixing context = bug.
59
+ - โŒ Skip step verifikasi karena "AI bilang udah jadi". Selalu jalankan & lihat sendiri.
60
+
61
+ ---
62
+
63
+ ## 5. Branching strategy untuk non-programmer
64
+
65
+ Git itu menakutkan, tapi tenang โ€” **Claude bantu semua perintah git**. Kamu cukup paham *konsep*-nya, sintaks biar AI yang urus.
66
+
67
+ ### Konsep dasar:
68
+
69
+ - **`main` = production**. Selalu hijau, selalu deployable. **PROTECTED** โ€” tidak boleh push langsung. Wajib lewat PR.
70
+ - **Feature branch** = tempat kerja kamu. Format nama: `feat/<short-desc>` atau `fix/<short-desc>` atau `docs/<short-desc>`.
71
+ - **Branch max hidup 3 hari**. Lewat 3 hari = ada bau (mungkin task kebesaran, atau ada blocker). Stop, diskusi sama tim.
72
+
73
+ ### Workflow per task:
74
+
75
+ ```
76
+ 1. git checkout main && git pull โ†’ sinkron dulu dengan main terbaru
77
+ 2. git checkout -b feat/add-search โ†’ bikin branch baru
78
+ 3. <kerja, commit, push>
79
+ 4. Buka PR di GitHub โ†’ pakai gh CLI atau web UI
80
+ 5. Tunggu review + CI hijau
81
+ 6. Merge (squash merge biasanya) โ†’ history main bersih
82
+ 7. Hapus branch lokal & remote
83
+ ```
84
+
85
+ ### Kalau bingung tinggal minta Claude:
86
+
87
+ > "Saya baru selesai kerja task X, branch saat ini `feat/add-search`. Tolong bantu commit + push + buat PR. Pakai pattern Conventional Commits."
88
+
89
+ Claude akan jalankan git commands satu-satu. Kamu cuma approve.
90
+
91
+ ---
92
+
93
+ ## 5b. Workflow Tanpa GitHub Issue (Chat-Driven Task)
94
+
95
+ Tim ini **default tidak pakai GitHub Issues** untuk task harian. Alasannya: anggota tim mayoritas non-programmer, GitHub UI itu ekstra friction (harus buka tab, login, isi form, klik label, dst.). Selama tim kecil (5โ€“15 orang) dan komunikasi rapat, **channel chat sudah cukup** jadi sumber kebenaran task.
96
+
97
+ > **Audit trail = chat history**. Jangan hapus pesan task. Kalau task selesai, biarkan pesan tetap ada (cuma update emoji status).
98
+
99
+ ### Channel yang dipakai
100
+
101
+ Tim pakai 1 channel chat per proyek. Nama channel disepakati owner di awal proyek (`docs/architecture.md` section *Komunikasi*). Contoh:
102
+
103
+ - Slack: `#tasks-akses`, `#tasks-bayar`
104
+ - Discord: channel `tasks-akses` di server tim
105
+ - Telegram/WhatsApp: group `Tasks akses` (untuk tim super-kecil)
106
+
107
+ Satu channel = satu proyek. **Jangan campur task lintas proyek** โ€” bikin susah cari riwayat.
108
+
109
+ ### Format prompt task standar (owner kirim ke channel)
110
+
111
+ ```
112
+ [TASK] <deskripsi singkat โ€” 1 kalimat>
113
+ [Acceptance Criteria]
114
+ 1. <criteria 1>
115
+ 2. <criteria 2>
116
+ 3. <criteria 3>
117
+ [Prioritas] <Rendah/Sedang/Tinggi>, target <kapan>
118
+ [Catatan] <reuse helper apa / file mana โ€” opsional tapi sangat membantu>
119
+ [Risk Level] <Low / Medium / High โ€” lihat section 7b>
120
+ * Low = UI minor, copy edit, refactor internal
121
+ * Medium = fitur baru self-contained, tidak sentuh auth/billing/data sensitif
122
+ * High = sentuh auth/billing/schema-user-visible/destruktif/eksperimental โ†’ owner WAJIB hold merge
123
+ ```
124
+
125
+ **Contoh nyata** (owner kirim ke `#tasks-akses`):
126
+
127
+ ```
128
+ ๐ŸŸฆ TODO
129
+
130
+ [TASK] Tambah tombol Export ke Excel di /admin/users
131
+ [Acceptance Criteria]
132
+ 1. Tombol muncul di kanan atas tabel users, label "Export Excel"
133
+ 2. Klik tombol โ†’ download .xlsx berisi user yang ter-filter
134
+ 3. Kolom: nama, email, role, last_login, created_at
135
+ 4. Loading state saat generate
136
+ [Prioritas] Sedang, target besok sore
137
+ [Catatan] Reuse helper exportToXlsx() di lib/excel.ts (sudah ada untuk invoices).
138
+ [Risk Level] Low โ€” UI tambahan, tidak sentuh data sensitif
139
+ ```
140
+
141
+ **Kenapa wajib template ini?**
142
+ - `[TASK]` โ€” cepat di-scan saat scroll channel.
143
+ - `[Acceptance Criteria]` โ€” AI butuh ini untuk tahu "selesai" itu apa.
144
+ - `[Prioritas]` + target โ€” anggota tim tahu mana yang duluan.
145
+ - `[Catatan]` โ€” kasih konteks reuse supaya AI tidak bikin helper duplikat.
146
+ - `[Risk Level]` โ€” paksa owner klasifikasi risiko di awal (lihat section 7b). High Risk = owner hold merge sampai yakin.
147
+
148
+ ### Convention emoji status
149
+
150
+ Status task ditandai emoji di **baris pertama pesan task**. Owner/PIC **edit pesan asli** saat status berubah โ€” bukan kirim pesan baru.
151
+
152
+ | Emoji | Status | Artinya |
153
+ |---|---|---|
154
+ | ๐ŸŸฆ | **TODO** | Task baru, belum ada yang ambil |
155
+ | ๐ŸŸง | **WIP** | Sudah diambil. Tambah PIC: `๐ŸŸง WIP โ€” @bagus` |
156
+ | ๐Ÿ‘๏ธ | **REVIEW** | PR sudah dibuka. Tambah link: `๐Ÿ‘๏ธ REVIEW โ€” PR #42` |
157
+ | โœ… | **DONE** | Sudah merged & deployed |
158
+ | โ›” | **BLOCKED** | Ada blocker. Tambah alasan |
159
+ | ๐Ÿ—‘๏ธ | **CANCELLED** | Dibatalkan |
160
+
161
+ **Aturan**: Hanya owner/PIC yang edit pesan. Jangan hapus pesan lama. Pin pesan WIP/BLOCKED.
162
+
163
+ ### Cara ambil task
164
+
165
+ 1. Scroll channel, cari ๐ŸŸฆ TODO prioritas tinggi.
166
+ 2. Edit pesan โ†’ ๐ŸŸง WIP โ€” @<nama>.
167
+ 3. Buka sesi Claude Code baru, brief AI dengan paste seluruh pesan task.
168
+ 4. Kerja sesuai workflow section 4.
169
+ 5. PR dibuka โ†’ edit pesan jadi ๐Ÿ‘๏ธ REVIEW โ€” PR #<nomor>.
170
+ 6. Setelah merged โ†’ โœ… DONE.
171
+
172
+ ### Klarifikasi soal task
173
+
174
+ **Reply thread** pesan task. Jangan kirim pesan baru di channel utama.
175
+
176
+ ### Kapan TETAP pakai GitHub Issues?
177
+
178
+ - Proyek dengan klien eksternal (klien minta lihat status formal)
179
+ - Kontrak SLA tracking formal
180
+ - Audit kepatuhan/compliance
181
+ - Tim > 15 orang (chat mulai noisy)
182
+ - Task lintas-proyek besar (butuh Kanban view)
183
+
184
+ Kondisi di atas โ†’ diskusi sama owner, pindah ke GitHub Issues. Format prompt task tetap sama (copy ke body issue, emoji status diganti label).
185
+
186
+ ---
187
+
188
+ ## 6. Library prompt siap-pakai
189
+
190
+ Daripada nulis prompt dari nol tiap kali, **tim punya `PROMPT_LIBRARY.md`** โ€” koleksi 10+ prompt yang sudah teruji untuk kasus umum (tambah fitur, fix bug, SEO check, deploy, dll). Baca file itu sekarang kalau belum.
191
+
192
+ Lokasi: `./.claude-kit/templates/PROMPT_LIBRARY.md` (versi master, tim) atau copy lokal di `docs/PROMPT_LIBRARY.md`.
193
+
194
+ Kalau ada pattern baru yang kamu temukan dan terbukti work โ†’ **PR ke kit** (lihat seksi 13).
195
+
196
+ ---
197
+
198
+ ## 7. MCP setup tim
199
+
200
+ **MCP** (Model Context Protocol) = cara Claude Code terhubung ke tool eksternal: GitHub, Supabase, Vercel, dll. Tanpa MCP, Claude buta ke layanan-layanan ini.
201
+
202
+ Tim ini pakai MCP servers berikut sebagai standar:
203
+ - **GitHub MCP** โ€” buat PR, baca issue, comment.
204
+ - **Supabase MCP** โ€” query DB, lihat schema, baca logs.
205
+ - **Vercel/Railway MCP** โ€” cek deploy status, env vars.
206
+ - **Filesystem MCP** โ€” baca/tulis file di luar repo (sparingly).
207
+
208
+ Setup detail (token, config JSON, troubleshooting): lihat `./.claude-kit/templates/MCP_SETUP.md`.
209
+
210
+ **Aturan**: token MCP **per-orang**, jangan share. Simpan di password manager pribadi (1Password, Bitwarden). Jangan commit ke repo.
211
+
212
+ ---
213
+
214
+ ## 7b. Risk Level Decision Tree (Kapan Owner Hati-Hati Approve Merge)
215
+
216
+ Tim default pakai workflow simple: **branch โ†’ PR โ†’ Vercel preview โ†’ owner review โ†’ squash merge โ†’ auto-deploy prod**. Tidak ada feature flag, tidak ada toggle env var, tidak ada gradual rollout.
217
+
218
+ > Filosofi: simpler = less mistake. Untuk team 5-15 staff IT non-programmer, kompleksitas extra (feature flag) jadi friction tanpa benefit jelas. Staff tidak akses Vercel dashboard, jadi flag toggle = owner-only operation = bottleneck.
219
+
220
+ ### Tapi tidak semua task sama risiko-nya
221
+
222
+ Tiap task punya **Risk Level**. Owner WAJIB klasifikasi di awal supaya tim tahu cara handle:
223
+
224
+ | Risk Level | Kriteria | Cara Handle |
225
+ |---|---|---|
226
+ | ๐ŸŸข **Low** | Copy edit, styling, bugfix <50 baris, refactor internal, fitur baru self-contained (tombol Export, filter, tooltip) | Standar: review cepat, merge, deploy. |
227
+ | ๐ŸŸก **Medium** | Fitur baru yang sentuh business logic, API endpoint baru, change yang user lihat tapi tidak kritis | Standar + test manual di Vercel preview lebih teliti sebelum merge. |
228
+ | ๐Ÿ”ด **High** | Auth/login/permission, billing/pricing/payment, schema DB yang user lihat, destruktif (hapus data, migrasi besar), eksperimental | Owner HOLD MERGE โ€” test extensive di preview, smoke test prod 5+ menit setelah deploy, siap rollback. Pertimbangkan deploy off-hours. |
229
+
230
+ ### Format declare di prompt task
231
+
232
+ ```
233
+ [Risk Level] <Low / Medium / High>
234
+ * Low = UI minor, copy edit, refactor internal
235
+ * Medium = fitur baru self-contained, tidak sentuh auth/billing/data sensitif
236
+ * High = sentuh auth/billing/schema-user-visible/destruktif/eksperimental โ€” owner WAJIB hold merge sampai yakin
237
+ ```
238
+
239
+ ### Contoh konkret
240
+
241
+ | Task | Risk Level | Alasan |
242
+ |---|---|---|
243
+ | Tambah tombol Export Excel di /admin/users | ๐ŸŸข Low | UI tambahan, tidak sentuh data sensitif |
244
+ | Fix typo di footer | ๐ŸŸข Low | Copy edit murni |
245
+ | Refactor `lib/utils.ts` (extract helper) | ๐ŸŸข Low | Internal, no API change |
246
+ | Tambah filter "Status" di tabel inbox | ๐ŸŸข Low | UI baru, tidak ubah data |
247
+ | Tambah endpoint API `/api/reports/export` | ๐ŸŸก Medium | API baru, tapi self-contained, read-only |
248
+ | Tambah field NPWP di form registrasi | ๐ŸŸก Medium | Schema change user-facing, tapi tidak destruktif |
249
+ | Ganti library auth (NextAuth โ†’ Clerk) | ๐Ÿ”ด High | Sentuh login = bisa lockout semua user |
250
+ | Implement diskon volume di checkout | ๐Ÿ”ด High | Sentuh billing = potensi over/under-charge |
251
+ | Migrasi avatar S3 lama โ†’ bucket baru | ๐Ÿ”ด High | Destruktif/irreversible kalau salah |
252
+ | A/B test redesign landing page | ๐Ÿ”ด High | Eksperimental, butuh monitoring |
253
+ | Bump Next.js 14.2.3 โ†’ 14.2.5 (patch) | ๐ŸŸข Low | Patch bump |
254
+ | Bump Next.js 14 โ†’ 15 (major) | ๐Ÿ”ด High | Potensi breaking change widespread |
255
+
256
+ ### Aturan untuk Owner
257
+
258
+ - **Risk Level WAJIB di awal task**. Tidak boleh "lihat dulu nanti". Owner yang declare.
259
+ - **High Risk = hold merge sampai yakin**. Boleh nahan PR 1-3 hari untuk extensive review.
260
+ - **Off-hours deploy untuk High Risk**. Merge & deploy saat traffic rendah (mis. tengah malam) supaya kalau bug, dampak minimal.
261
+ - **Smoke test prod 5+ menit** setelah deploy High Risk. Buka URL prod, klik fitur, cek log Vercel + Supabase.
262
+ - **Siap rollback `git revert`** โ€” kalau bug parah, langsung revert (lihat section 13b Rollback Playbook).
263
+
264
+ ### Kalau Owner Butuh Lebih dari Branch+Revert: Feature Flag (Advanced)
265
+
266
+ Untuk kasus EKSTREM (mis. payment toggle saat Black Friday), feature flag tetap pilihan. Tapi itu **advanced operation** yang butuh owner familiar dengan Vercel env vars + redeploy cycle. Detail di `./.claude-kit/templates/feature-flags-advanced.md`. Default workflow: **tidak perlu flag**.
267
+
268
+ ---
269
+
270
+ ## 8. Code review AI-assisted
271
+
272
+ Review PR teman = wajib, tapi kamu bukan programmer berpengalaman โ€” itu OK. AI bantu review. Workflow:
273
+
274
+ 1. **Buka PR di GitHub**, copy URL.
275
+ 2. **Buka sesi Claude Code baru** di repo, pastikan sudah pull main terbaru.
276
+ 3. **Pakai prompt no.5 di `PROMPT_LIBRARY.md`** ("Review PR teman"). Intinya:
277
+ ```
278
+ Tolong review PR ini: <URL>. Fokus ke:
279
+ - Apakah acceptance criteria di issue terpenuhi?
280
+ - Ada bug obvious? (null check, edge case, typo)
281
+ - Apakah docs `.md` pendamping ter-update?
282
+ - Apakah ada code duplication yang bisa di-reuse?
283
+ - Apakah commit message ikut Conventional Commits?
284
+ ```
285
+ 4. **Claude akan output report**. Baca pelan-pelan. Tandai poin yang kamu setuju.
286
+ 5. **Putuskan**:
287
+ - **Approve** kalau bersih.
288
+ - **Request changes** kalau ada concern. Tulis comment di GitHub PR (Claude bisa bantu draft comment yang sopan).
289
+ - **Comment only** kalau ragu, butuh diskusi.
290
+ 6. **Submit review** lewat `gh pr review` atau web UI.
291
+
292
+ **Penting**: kamu tetap accountable. Kalau Claude bilang "LGTM" tapi kamu sebenarnya tidak ngerti kodenya โ€” *jangan approve*. Tanya teammate dulu.
293
+
294
+ ---
295
+
296
+ ## 9. Stack convention
297
+
298
+ Tim ini default pakai stack:
299
+ - **Frontend**: Next.js (App Router) + Tailwind + shadcn/ui
300
+ - **Backend**: Next.js Route Handlers / Server Actions, atau Express terpisah
301
+ - **DB**: Supabase (Postgres) via Prisma
302
+ - **Hosting**: Vercel (default), Railway/Render kalau perlu long-running process
303
+ - **Auth**: NextAuth atau Supabase Auth (per proyek)
304
+ - **CI/CD**: GitHub Actions
305
+ - **Package manager**: pnpm (lebih cepat & disk-efficient)
306
+
307
+ Detail lengkap (env vars, struktur folder, naming convention, error handling pattern) ada di `./.claude-kit/templates/STACK_GUIDE.md`.
308
+
309
+ Kalau proyek butuh stack berbeda โ€” **tulis alasan di `docs/architecture.md`** dan minta approval owner.
310
+
311
+ ---
312
+
313
+ ## 10. Conflict resolution untuk non-programmer
314
+
315
+ Merge conflict = saat git tidak bisa otomatis gabungin perubahan kamu dengan main. Kelihatannya menakutkan, tapi gampang dengan AI.
316
+
317
+ ### Workflow:
318
+
319
+ 1. **Tarik napas**. Conflict itu normal, bukan bencana.
320
+ 2. `git status` โ€” lihat file mana yang conflict.
321
+ 3. **Buka file yang conflict**, lihat marker `<<<<<<<`, `=======`, `>>>>>>>`.
322
+ 4. **Buka Claude**, paste isi file + konteks:
323
+ ```
324
+ Saya ada merge conflict di file <nama>. Branch saya `feat/X` di-merge ke `main` terbaru.
325
+ Berikut isi file dengan conflict markers:
326
+ <paste full file>
327
+
328
+ Branch saya mau nambah fitur Y. Main terbaru sudah ada perubahan Z.
329
+ Tolong resolve, jelaskan kenapa, dan kasih saya file final tanpa markers.
330
+ ```
331
+ 5. **Baca penjelasan AI**. Kalau masuk akal, replace file lokal dengan output AI.
332
+ 6. **Verifikasi**: jalankan kode (`npm run dev`), pastikan tidak break.
333
+ 7. **Commit resolution**: `git add <file> && git commit` (pakai message default "Merge branch ...").
334
+ 8. **Push**, lanjutkan PR.
335
+
336
+ ### Kapan minta tolong manusia:
337
+ - Conflict di file critical (auth, DB schema, payment) โ€” minta senior review hasil AI sebelum commit.
338
+ - Lebih dari 3 file conflict โ€” mungkin branch kamu terlalu lama, restart dari main.
339
+
340
+ ---
341
+
342
+ ## 11. Memory & plans hygiene
343
+
344
+ Claude punya 2 jenis "ingatan":
345
+
346
+ 1. **Memory file** (`~/.claude/projects/<proyek>/memory/MEMORY.md`) โ€” **per-user, private**. Otomatis ke-load tiap sesi. Isi: preferensi user, snapshot status proyek dari sudut pandang user.
347
+ 2. **Plans / TodoWrite** โ€” internal AI dalam 1 sesi. Hilang saat sesi tutup.
348
+
349
+ ### Aturan:
350
+
351
+ - **JANGAN share memory file** ke teman. Itu personal, isinya kebiasaan kamu.
352
+ - **Pattern tim** (cara nulis docs, cara naming branch, cara review) **HARUS** lewat `_PATTERNS.md` di kit โ€” bukan memory pribadi. Kalau memang pattern tim, PR ke kit.
353
+ - **Update memory** kalau kamu temukan workflow baru yang berulang. Mis: "setiap aku minta deploy, AI selalu cek `.env.local` dulu" โ€” tulis di memory.
354
+ - **Jangan simpan secrets** di memory. Token, password, API key โ€” simpan di password manager.
355
+
356
+ Detail teknis memory: `docs/CLAUDE_PERSISTENCE_MAP.md` (kalau ada di proyek) atau tanya owner.
357
+
358
+ ---
359
+
360
+ ## 12. Anti-pattern + FAQ
361
+
362
+ Anti-pattern lengkap dengan analogi: lihat `docs/GLOSSARY_NON_PROGRAMMER.md` ยง8 Anti-Pattern.
363
+
364
+ ---
365
+
366
+ ## 13. Escalation path
367
+
368
+ Kapan tanya siapa:
369
+
370
+ | Situasi | Tanya |
371
+ |---|---|
372
+ | Stuck kode/prompt < 30 menit | Claude (iterasi prompt) |
373
+ | Stuck > 30 menit, ada teammate online | Channel tim (Slack/Discord) โ€” tag `@team` |
374
+ | Konflik desain (arsitektur, DB schema, dependency baru) | Senior dev / tech lead |
375
+ | Keputusan bisnis / scope / deadline | Owner / PM |
376
+ | Pattern baru yang kamu yakin worth dipakai semua tim | PR ke repo kit `lintasAI` |
377
+ | Bug di kit itu sendiri (instruksi salah, broken template) | Issue di repo kit `lintasAI` |
378
+ | Security incident (token bocor, data leak) | Owner langsung, JANGAN di channel publik |
379
+
380
+ ### Cara PR ke kit `lintasAI`:
381
+
382
+ 1. Fork `github.com/ojokesusu/lintasAI`.
383
+ 2. Edit file template di branch baru.
384
+ 3. PR dengan judul `pattern: <deskripsi singkat>` dan body yang jelaskan: kapan pakai, contoh kasus, kenapa worth jadi standar tim.
385
+ 4. Tag maintainer kit. Tunggu review.
386
+ 5. Setelah merged, kit auto-update di proyek-proyek tim saat mereka pull versi baru.
387
+
388
+ ---
389
+
390
+ ## 13b. Hotfix & Rollback Playbook
391
+
392
+ Bug serius di production = mimpi buruk. Tapi tim ini punya **2 jalur rollback** yang sudah teruji. Target tim: **time-to-rollback < 5 menit**.
393
+
394
+ > **Aturan pertama saat ada bug serius**: jangan panik, jangan langsung patch. **Rollback dulu**, baru investigasi dengan tenang.
395
+
396
+ ### Kapan playbook ini dipakai?
397
+
398
+ Gunakan kalau ada **salah satu**:
399
+ - ๐Ÿšจ User melaporkan fitur error massal (bukan cuma 1 user)
400
+ - ๐Ÿšจ Halaman crash / blank screen di prod
401
+ - ๐Ÿšจ Data salah ditampilkan (mis. invoice 0 padahal ada tagihan)
402
+ - ๐Ÿšจ Login total tidak bisa
403
+ - ๐Ÿšจ Pembayaran failed massal
404
+ - ๐Ÿšจ Vercel deploy terbaru di-trigger commit terakhir, masalah mulai setelah deploy itu
405
+
406
+ Kalau cuma 1 user complain minor โ†’ debug normal, jangan rollback.
407
+
408
+ ### Default Workflow: Rollback via Git Revert
409
+
410
+ Tim default TIDAK pakai feature flag (section 7b). Jadi rollback selalu lewat `git revert`. Target waktu: **<5 menit** dari deteksi sampai prod normal.
411
+
412
+ **Eksekusi**: owner / senior dev.
413
+
414
+ 1. Buka **sesi Claude Code BARU** (konteks bersih).
415
+ 2. Pull main terbaru: `git pull origin main`.
416
+ 3. Brief Claude (copy-paste utuh):
417
+
418
+ ```
419
+ ๐Ÿšจ EMERGENCY ROLLBACK
420
+
421
+ Ada bug parah di prod yang muncul setelah commit terakhir di main.
422
+ Tolong:
423
+ 1. Cek log commit terakhir: git log -1 --oneline
424
+ 2. Konfirmasi commit yang akan di-revert
425
+ 3. git revert HEAD --no-edit
426
+ 4. git push origin main
427
+ 5. Konfirmasi commit revert sudah ke-push
428
+
429
+ Setelah push, Vercel akan auto-deploy versi sebelum bug (~5 menit).
430
+ ```
431
+
432
+ 4. AI tunjukkan commit yang akan di-revert โ€” **kamu baca DULU**, pastikan benar.
433
+ 5. Approve. AI eksekusi `git revert` + `git push`.
434
+ 6. Buka Vercel Dashboard โ†’ tab Deployments โ†’ lihat deploy baru jalan.
435
+ 7. Tunggu 3โ€“5 menit sampai status "Ready".
436
+ 8. Verifikasi prod normal.
437
+ 9. Announce: `"๐ŸŸข Rollback via git revert (commit <hash>). Bug investigasi di branch fix/<nama>."`
438
+
439
+ **Catatan jalur B**:
440
+ - `git revert` = commit baru yang membatalkan commit sebelumnya (bukan menghapus history). Aman.
441
+ - **Jangan pakai `git reset --hard`** โ€” destructive, history hilang.
442
+ - Kalau bug bukan di commit terakhir โ†’ revert commit spesifik: `git revert <hash> --no-edit`.
443
+
444
+ ### Yang TIDAK BOLEH saat panik
445
+
446
+ - โŒ `git push --force` ke main โ€” destructive
447
+ - โŒ Edit langsung di GitHub web UI di main โ€” bypass PR + review
448
+ - โŒ Hot-patch tanpa branch โ€” `git commit -am "fix" && git push origin main` langsung
449
+ - โŒ Hapus deployment di Vercel โ€” bikin URL prod down
450
+ - โŒ Diam tanpa announce โ€” tim lain harus tahu
451
+
452
+ ### Post-mortem ringan (wajib)
453
+
454
+ Dalam **24 jam setelah rollback**, owner/PIC bug bikin post-mortem di channel chat atau `docs/incidents/<tanggal>-<nama-bug>.md`:
455
+
456
+ ```
457
+ ๐Ÿ“‹ POST-MORTEM โ€” <judul singkat>
458
+
459
+ Tanggal: <YYYY-MM-DD>
460
+ Durasi impact: <berapa menit bug ada di prod>
461
+ Cara rollback: git revert (atau flag toggle kalau pakai advanced)
462
+
463
+ 1. Bug apa? <gejala yang user lihat, dampak>
464
+ 2. Root cause? <kenapa terjadi, asumsi yang salah>
465
+ 3. Kenapa lolos review? <test miss / preview deploy tidak di-test manual / reviewer skim>
466
+ 4. Action items berikutnya:
467
+ - [ ] <mis. tambah test edge case X>
468
+ - [ ] <mis. update review checklist>
469
+ - [ ] <mis. fitur sejenis WAJIB pakai flag>
470
+ ```
471
+
472
+ **Aturan**: blameless (fokus proses, bukan menyalahkan orang). Action items konkret, bisa di-track. Jangan skip โ€” bug serupa pasti terulang.
473
+
474
+ ### Latihan fire drill
475
+
476
+ Sekali per kuartal, tim adakan fire drill di staging:
477
+ 1. Deploy commit "buggy" sengaja
478
+ 2. Anggota tim eksekusi rollback via git revert
479
+ 3. Hitung waktu deteksi โ†’ rollback. Target < 5 menit.
480
+ 4. Diskusi: langkah yang bingung? Update playbook.
481
+
482
+ Tanpa latihan, saat bug beneran datang, kamu pasti panik.
483
+
484
+ ---
485
+
486
+ ## 14. Quarterly ritual
487
+
488
+ Tiap 3 bulan, tim adakan **kit review session** (1โ€“2 jam, optional tapi recommended):
489
+
490
+ 1. **Survey blocker** โ€” tiap anggota share: pattern apa yang sering bikin stuck? Anti-pattern apa yang baru ketemu?
491
+ 2. **Review `PROMPT_LIBRARY.md`** โ€” prompt mana yang masih relevan, mana yang outdated. Tambah/hapus sesuai realita.
492
+ 3. **Review `_PATTERNS.md`** โ€” apakah konvensi docs masih masuk akal? Ada pattern baru yang muncul organik?
493
+ 4. **Cek `architecture.md`** semua proyek aktif โ€” apakah masih akurat? Update kalau drift dari realita.
494
+ 5. **Bump kit version** kalau ada perubahan signifikan, update `CHANGELOG.md`.
495
+ 6. **Action items** โ€” tiap orang ambil 1 PR ke kit (boleh kecil: typo fix, contoh tambahan).
496
+
497
+ Ritual ini penting karena kit yang stagnan = tim yang stagnan. Tim AI-first hidup dari iterasi pattern.
498
+
499
+ ---
500
+
501
+ ## Penutup
502
+
503
+ File ini adalah **kontrak kerja tim**. Bukan dokumen mati โ€” dia hidup, di-update tiap kuartal. Kalau ada bagian yang kamu rasa salah/missing/outdated, jangan diam โ€” PR ke kit.
504
+
505
+ Selamat bekerja. Slow is smooth, smooth is fast.