feat: enhance documentation with workflow tracing and session notes guidelines

This commit is contained in:
Yoga Pangestu 2026-08-07 11:40:09 +07:00
parent 85556f8779
commit d10f731839

View File

@ -20,6 +20,80 @@ ## ⚠️ WAJIB BACA SEBELUM KERJA
**Jangan pernah skip membaca `.ai/` folder** — semua aturan ada di sana.
**Catatan Penting:**
- File `.ai/` adalah **contoh best practice & referensi**, bukan berarti semua pola di situ sudah ada di project
- Jika pola di `.ai/` belum ada di project → **ikuti pola yang sudah ada di codebase**
- Jangan buang waktu mencari file/pattern yang belum tentu ada
---
## Workflow: Trace Codebase
Sebelum mengubah/menambah fitur, **pahami dulu alur kode yang sudah ada**.
### Cara Trace:
Mulai dari file yang relevan (Route/Controller/Service), lalu **ikuti setiap pemanggilan**:
- Jika ada `use ... Service` → baca file Service
- Jika ada `use ... Model` → baca file Model
- Jika ada `use ... Trait` → baca file Trait
- Jika ada `use ... Enum` → baca file Enum
- Jika ada Form Request → baca file Form Request
### Contoh Trace:
```
ProductController
└── panggil ProductService → baca
└── panggil Product model → baca
└── pakai HasFactory trait → baca
```
**Ikuti terus sampai semua pemanggilan dipahami. Jangan ubah kode tanpa memahami alur yang sudah ada.**
---
## Documentation: Catatan Session Kerja
Setiap kali bekerja pada suatu fitur, **WAJIB** buat/dokumentasi di `/docs` folder.
### Format: `/docs/{nama-fitur}.md`
Isi dokumen:
1. **Tujuan** — fitur apa yang dibuat/diubah
2. **File yang dibaca** — daftar file + ringkasan singkat
3. **Pola yang ditemukan** — struktur kode, relasi, flow
4. **Perubahan yang dilakukan** — apa saja yang diubah
### Contoh:
```markdown
# Fitur: Transfer Stok Produk
## Tujuan
Menambah fitur perpindahan stok dari gudang baik ke reject
## File yang Dibaca
- `routes/web.php` → ProductController di route `admin.manage.products`
- `app/Http/Controllers/Admin/Manage/ProductController.php` → ada method `index`, `store`, `update`
- `app/Services/Admin/Manage/ProductService.php` → panggil Product model, pakai `HasStockAdjustment` trait
- `app/Models/Product.php` → relasi `stocks()`, accessor `formatted_stock`
## Pola yang Ditemukan
- Service handle logic, Controller zero logic
- Pakai trait `HasStockAdjustment` untuk adjust stock
- Stock ada di tabel `stocks` dengan relasi ke product
## Perubahan
- Tambah method `transferStock()` di ProductService
- Tambah route `POST /products/{product}/transfer-stock`
```
### Kapan harus update?
- Saat mulai sesi baru → buat dokumen baru
- Saat lanjut sesi sebelumnya → baca dulu dokumen yang sudah ada
---
## Backend