# Prompt Kit Migrasi Produk Varian (Chat Baru)

Dokumen ini berisi template prompt siap pakai untuk melanjutkan pekerjaan migrasi varian di chat baru tanpa kehilangan konteks.

## 1) Konteks Organisasi
1. Holding:
   - `san`
   - `san_ibb` (CRM)
2. Subsidiary:
   - `san_add`
   - `san_ppu`
   - `san_sarana`
   - `san_sdl`
   - `san_tsa`
3. Konvensi folder kerja clone/snapshot:
   - `san_<subsidiary>_<snapshot>`
   - contoh: `san_sarana_8apr`

## 2) Dokumen Referensi Wajib
0. `application/CHEATSHEET_MIGRASI_VARIAN.md` (versi ringkas operator)
1. `application/PLAN_MIGRASI_VARIAN_HOLDING_SUBSIDIARY.md`
2. `application/modules/distribusi/PLAN_MIGRASI_VARIAN.md`
3. `application/sql/variant_migration_phase1/README.md`
4. `application/sql/variant_migration_phase1/precheck.sql`
5. `application/sql/variant_migration_phase1/migrate_variant_foundation.sql`
6. `application/sql/variant_migration_phase1/postcheck.sql`

## 3) Aturan Eksekusi di Chat Baru
1. Selalu sebut workspace aktif di baris awal prompt.
2. Selalu minta agent berhenti sebelum langkah berisiko (DDL/patch massal) sampai Anda approve.
3. Larangan analisis file:
   - jangan baca/ubah controller `__*`
   - jangan baca/ubah file `*_OLD.php`
   - jangan gunakan folder `trash`
4. Prioritas: integritas data transaksi, stok, accounting, approval, laporan, audit.

## 4) Template Prompt Tahap A (DB Foundation Only)
Gunakan ini saat mulai instance baru.

```text
Lanjutkan migrasi produk varian untuk instance ini.

Context:
- Workspace aktif: W:\<nama_folder_instance>
- Master plan: application/PLAN_MIGRASI_VARIAN_HOLDING_SUBSIDIARY.md
- Paket SQL: application/sql/variant_migration_phase1/
- Stack: PHP 5.6, CI3, MariaDB10
- Aturan: jangan baca/ubah __* , *_OLD.php, dan folder trash

Tugas tahap ini (DB foundation only):
1) Jalankan precheck.sql dan tampilkan ringkasan MISSING/EXISTS.
2) Berhenti dan minta approval saya sebelum migrate_variant_foundation.sql.
3) Jangan patch file PHP pada tahap ini.
4) Pastikan database target benar sebelum execute.
```

## 5) Template Prompt Tahap A2 (Setelah Approval DDL)
Gunakan setelah Anda memberi izin menjalankan migrasi DB.

```text
Silakan lanjutkan Tahap A2 untuk instance ini.

Tugas:
1) Jalankan migrate_variant_foundation.sql.
2) Jalankan postcheck.sql.
3) Laporkan:
   - objek yang masih MISSING (jika ada)
   - nilai missing_total
   - status siap/tidak siap lanjut patch PHP
4) Jangan lanjut ke patch PHP sebelum ada konfirmasi saya.
```

## 6) Template Prompt Tahap B (Patch Shared Layer PHP)
Gunakan jika postcheck sudah `missing_total = 0`.

```text
Lanjutkan ke Tahap B (shared layer PHP) untuk instance ini.

Scope:
1) application/helpers/Pairs/he_cek_stock_produk_locker_helper.php
2) application/models/Mdls/MdlProdukVarian.php
3) Tambah model varian jika belum ada:
   - MdlLockerStockVarian.php
   - MdlLockerStockMutasiVarian.php
   - MdlFifoProdukJadiVarian.php
4) Tambah coms varian jika belum ada:
   - ComLockerStockVarian.php
   - ComFifoProdukJadiVarian.php
   - ComRekeningPembantuProdukVarian.php

Aturan:
1) PHP 5.6 compatible only.
2) Jangan ubah logic non-varian.
3) Sebelum edit, beri analisis singkat: tujuan, akar masalah, file, dampak, risiko, solusi.
4) Setelah edit, jelaskan file yang berubah dan risiko kompatibilitas.
```

## 7) Template Prompt Tahap C (Patch Modul Fase-1)
Urutan disarankan: `pembelian -> distribusi -> penjualan`.

```text
Lanjutkan Tahap C patch modul fase-1.

Urutan kerja:
1) pembelian
2) distribusi
3) penjualan

Untuk tiap modul:
1) port config varian (coTransaksiCore/coTransaksiValues)
2) port flow controller varian:
   - _selectorItem.php
   - _processSelectProduct.php
   - _shoppingCart.php
   - FollowUp.php
   - Printing.php (jika ada gap)
3) hardening model transaksi modul:
   - MdlPembelianTransaksi / MdlDistribusiTransaksi / MdlPenjualanTransaksi
4) jaga fallback non-varian tetap aman.

Aturan:
1) jangan sentuh __* / *_OLD.php / trash
2) perubahan bertahap, per modul, dengan checkpoint test
3) jangan lanjut modul berikutnya sebelum ringkasan modul saat ini selesai
```

## 8) Template Prompt Tahap D (QA dan Validasi Audit)
Gunakan setelah patch modul selesai.

```text
Lanjutkan Tahap D QA integrasi varian.

Checklist minimum:
1) Create transaksi non-varian (harus tetap normal)
2) Create transaksi varian multi-line
3) Save -> FollowUp -> Approve -> Print
4) Verifikasi DB:
   - *_transaksi_data* terisi variant_* konsisten
   - stock_locker_varian dan stock_locker_mutasi_varian konsisten
   - _rek_pembantu_produk_varian* konsisten
   - rek_cache_persediaan_produk_varian_fifo konsisten
5) Verifikasi UI preview vs data DB vs nota print

Output wajib:
1) temuan bug (jika ada) + file/line referensi
2) risiko residual
3) status GO / HOLD
```

## 9) Template Prompt Tahap E (Hotfix Cepat Jika Error)
Gunakan bila muncul error saat UAT/produksi.

```text
Ada error pada alur transaksi varian, lakukan triase cepat.

Tugas:
1) identifikasi akar masalah dari log/error message
2) tentukan apakah masalah di:
   - schema DB
   - config mapping
   - flow session/cart_key
   - model transaksi
   - posting coms
3) berikan patch minimal (minimal invasive)
4) pastikan non-varian tidak terdampak
5) berikan langkah verifikasi pasca-fix

Batasan:
1) jangan refactor besar
2) fokus ke stabilisasi production
```

## 10) Template Prompt Tahap F (Copy ke Subsidiary Berikutnya)
Gunakan saat pindah dari satu subsidiary ke subsidiary lain.

```text
Kita pindah instance subsidiary berikutnya.

Context:
- Workspace aktif: W:\<nama_folder_instance_baru>
- Sumber template migrasi: paket dari instance sebelumnya yang sudah lulus QA
- Dokumen utama: application/PLAN_MIGRASI_VARIAN_HOLDING_SUBSIDIARY.md

Tugas:
1) validasi artefak SQL dan plan tersedia
2) jalankan precheck.sql
3) laporkan delta schema/config dibanding instance sebelumnya
4) minta approval sebelum migrate DB
```

## 11) Contoh Prompt Siap Pakai (Isi Nilai Nyata)

```text
Lanjutkan migrasi produk varian untuk instance ini.

Context:
- Workspace aktif: W:\san_sarana_8apr
- Master plan: application/PLAN_MIGRASI_VARIAN_HOLDING_SUBSIDIARY.md
- Paket SQL: application/sql/variant_migration_phase1/
- Stack: PHP 5.6, CI3, MariaDB10
- Aturan: jangan baca/ubah __* , *_OLD.php, dan folder trash

Tugas tahap ini (DB foundation only):
1) Jalankan precheck.sql dan tampilkan ringkasan MISSING/EXISTS.
2) Berhenti dan minta approval saya sebelum migrate_variant_foundation.sql.
3) Jangan patch file PHP pada tahap ini.
4) Pastikan database target benar sebelum execute.
```

## 12) Catatan Operasional
1. Untuk PowerShell, eksekusi SQL via:
   - `mysql ... --execute="source <file.sql>"`
2. Jalankan DDL saat maintenance window.
3. Simpan hasil precheck/postcheck per instance sebagai bukti audit.
