# Agent Safety Rules ## Destructive Actions - Never run destructive actions directly when the request is ambiguous. - Destructive actions include (not limited to): `DELETE`, `TRUNCATE`, `DROP`, mass `UPDATE`, file deletion, force-reset, and similar irreversible operations. - Before executing destructive actions, the agent must: 1. Confirm exact target scope (table/file/column/ID/filter). 2. Show a short preview of affected scope when possible. 3. Ask for explicit user confirmation. ## Ambiguous Instructions - If instruction can be interpreted in more than one way, do not execute immediately. - Ask a concise clarification first, then proceed after confirmation. ## Priority - Safety confirmation is mandatory and overrides speed. ## 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. - Sebelum push branch kerja, jalankan `git fetch origin` lalu `git rebase origin/main` agar branch memakai basis `main` terbaru. - Push branch kerja ke remote lalu buat merge request ke `main`; proses merge ikuti permission dan alur review repo, jangan direct push ke `main` kecuali diminta eksplisit. - Jangan pernah melakukan `git push --force` atau varian force-push lain. ## 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.