# Collaboration Guardrails - For any destructive operation, confirm first. Do not assume. - If request is ambiguous, ask clarification before execution. - For database deletes/updates with broad impact, verify exact filter and IDs with the user. - Preferred safe flow: 1. Re-state interpreted target. 2. Show short impact preview if possible. 3. Wait for explicit approval. 4. Execute. ## Commit Message Format - Sebelum membuat commit, **selalu tanya kode task** kepada user. - Format commit message wajib: `TASKCODE - deskripsi singkat` - Contoh: `6D9QD6 - buat api baru` - Jangan buat commit tanpa kode task dari user. - Kode task digunakan untuk sinkronisasi timesheet Odoo. ## Devcpone Sync Hook - Repo ini memakai `core.hooksPath=.githooks`. - Sync ke `devcpone` berjalan saat `push` branch `master` lewat `.githooks/pre-push`. - Hook memanggil `scripts/devcpone_sync.sh` untuk upload diff commit terakhir ke `/home/one/project/one/one-api`. - Jika sync atau verifikasi file remote gagal, `push` harus ikut gagal; jangan anggap `git push` sukses lokal sebagai bukti file sudah masuk ke `devcpone`. - Saat user minta cek sinkronisasi, verifikasi langsung file di `devcpone`, bukan hanya status git lokal. ## Cpone Upload (Manual) - Upload ke `cpone` **hanya dilakukan saat user secara eksplisit meminta** ("upload ke cpone", "sync ke cpone", dll). - Jalankan script: `scripts/cpone_sync.sh` - Script menggunakan SSH key `~/.ssh/id_rsa` ke `one@cpone.aplikasi.web.id`. - Target remote: `/home/one/project/one/one-api`. - **Tidak ada hook otomatis** untuk cpone — upload selalu manual atas permintaan user. - Sebelum upload, script otomatis backup file lama di folder yang sama dengan suffix timestamp, contoh: `Transactionv3.php.20260529_195950`. - Setelah upload, verifikasi file di server remote, bukan hanya lokal.