# Contributing to KeluargaMart Monorepo Terima kasih atas kontribusi Anda pada platform KeluargaMart. Dokumen ini mendefinisikan standar kontribusi, konvensi git, proses pull request, dan kriteria Definition of Done (DoD). --- ## 1. Branch Strategy & Naming Conventions Monorepo menggunakan model trunk-based development dengan short-lived feature branches: | Tipe Branch | Format Nama | Contoh | |---|---|---| | **Feature** | `feat/-` | `feat/pos-split-payment`, `feat/b2b-tier-pricing` | | **Bugfix** | `fix/-` | `fix/erp-stock-audit-modal`, `fix/backend-pool-timeout` | | **Performance** | `perf/-` | `perf/b2b-nuxt-heap`, `perf/backend-query-index` | | **DevOps / Infra** | `infra/` | `infra/caddy-rate-limit`, `infra/ghcr-cache` | | **Documentation** | `docs/` | `docs/cloudflare-tunnel-runbook` | --- ## 2. Commit Message Standards (Conventional Commits) Format commit pesan mengikuti standar Conventional Commits: ```text (): [optional body with rationale and issue references] [optional footer(s)] ``` Contoh: - `feat(backend): add timeout parameters to pgx connection pool` - `fix(erp): disable toast auto-dismiss in test environment to stabilize CI` - `perf(b2b): constrain V8 max-old-space-size to 256MB for VPS stability` - `docs(deployment): add Cloudflare Tunnel origin mapping guide` --- ## 3. Definition of Done (DoD) Checklist Sebuah fitur atau perbaikan dianggap **SELESAI (DONE)** hanya jika memenuhi seluruh kriteria berikut: - [ ] Kode mematuhi panduan di `AGENTS.md` dan `AGENTS.md` lokal aplikasi/package. - [ ] Tidak ada dependensi phantom (`pnpm install` bersih). - [ ] Tidak ada breaking changes pada kontrak rute (`pnpm drift:check` PASS). - [ ] Seluruh unit test lokal lulus (`pnpm test` / `pnpm test:backend`). - [ ] Seluruh aplikasi ter-build tanpa error (`pnpm build` / `pnpm build:backend`). - [ ] Dokumentasi terkait diperbarui di folder `docs/`. - [ ] Tidak ada commit file rahasia (`.env`, tokens, credentials). - [ ] Pull request telah ditinjau dan disetujui oleh Codeowner terkait.