
[!NOTE] Jika Software adalah Teks, Git History adalah Sastranya. Tuliskan riwayat perubahan dengan martabat engineering.
Riwayat commit yang berantakan menurunkan keterbacaan software seiring waktu. Kami menerapkan kebersihan ketat untuk memastikan repositori menceritakan “kisah” yang jelas.
Filosofi: Satu commit, satu perubahan logis. \(Kualitas Commit = \frac{1}{\Delta Ruang Lingkup}\)
flowchart LR
S1["Mulai Perubahan"] --> S2["Implementasi"]
S2 --> S3{"Tes Lulus?"}
S3 -->|Tidak| S2
S3 -->|Ya| S4["Stage & Sign"]
S4 --> S5["Atomic Commit"]
Kami mengikuti spesifikasi Conventional Commits untuk memungkinkan Semantic Versioning dan pembuatan Changelog otomatis.
tipe(scope): deskripsi
feat: Fitur baru untuk pengguna.fix: Perbaikan bug.chore: Tugas pemeliharaan (deps, config) yang tidak mengubah source code.docs: Perubahan dokumentasi saja.style: Formatting, titik koma kurang, dll (tidak ada perubahan logika).refactor: Restrukturisasi kode (tidak ada perubahan API, tidak ada fitur baru).test: Menambahkan tes yang kurang.Di era di mana AI bisa menulis ribuan baris kode, beban verifikasi berpindah ke pundak Arsitek. Git bukan sekadar tempat menyimpan kode, tapi tempat Anda memvalidasi setiap langkah agen AI.
Jangan biarkan AI melakukan commit raksasa yang tidak mungkin di-review manusia.
Types, Logic, dan Tests, bagi menjadi 3 commit terpisah.git commit -am pada hasil kerja AI tanpa inspeksi visual.Gunakan commit message sebagai “Lighthouse” untuk pengambilan konteks AI di masa depan.
.cursorrules section 3”).graph TD
AI["AI: Generate Code"] --> Triage["Architect: Triage & Slicing"]
Triage --> C1["Commit 1: Typings/Schemas"]
Triage --> C2["Commit 2: Business Logic"]
Triage --> C3["Commit 3: UI/Presentation"]
C1 --> V["Manual Verification / Testing"]
C2 --> V
C3 --> V
V --> Push["Push to Remote"]
style Triage fill:#fff9c4,stroke:#fbc02d
[!IMPORTANT] Di era pembuatan kode AI, Identitas adalah segalanya. Sebuah commit harus terbukti secara kriptografi berasal dari Anda.
sequenceDiagram
participant Dev as Developer
participant Git as Local Git
participant Key as GPG/SSH Key
participant GH as GitHub
Dev->>Git: git commit -S -m "feat:..."
Git->>Key: Request Signature
Key-->>Git: Signed Hash
Git->>GH: git push
GH->>GH: Verify Public Key
GH-->>Dev: Badge "Verified" ✅
git log --show-signature untuk memeriksa kepercayaan lokal.[!TIP] Mengapa ribet begini? Lihat Bukti Pemikiran (Proof of Thought). Tanda tangan kriptografi adalah satu-satunya bukti bahwa Logic Trace ini milik Anda, bukan hasil copy-paste anonim.
Jangan mengandalkan ingatan. Gunakan Framework pre-commit untuk menegakkan standar secara otomatis.
Sebelum melakukan push, pastikan model visual dan matematis Anda terformat dengan benar untuk rendering.
py scripts/validate_docs.py untuk mengaudit semua file markdown terhadap blok yang tidak tertutup atau diagram Mermaid yang malformat..pre-commit-config.yamlLetakkan ini di root repository Anda untuk mengotomatisasi kebersihan.
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
# Keamanan: Deteksi Key/Secret
- repo: https://github.com/gitleaks/gitleaks
rev: v8.18.1
hooks:
- id: gitleaks
# Identitas: Paksa Conventional Commits
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v3.1.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]