Lewati ke konten utama
Versi: Next

Langkah 4 — Paralel dengan Git Worktrees

Satu agent = satu pasang tangan. "Team" baru terasa ketika tiga task berjalan serentak. Masalahnya: dua agent di direktori yang sama akan saling menimpa file dan mengacaukan state git. Solusinya bawaan git: worktree — beberapa checkout dari satu repo, masing-masing di direktori dan branch sendiri.

~/proyekku (worktree utama, branch main — tempatmu me-review)
~/wt/proyekku-task-42 (agent #1, branch agent/42-fix-login)
~/wt/proyekku-task-43 (agent #2, branch agent/43-export-csv)
Buat worktree pertama
mkdir -p ~/wt
cd ~/proyekku
git worktree add ~/wt/proyekku-task-42 -b agent/42-fix-login

Konvensi yang dipakai kitab ini: direktori ~/wt/<repo>-task-<id>, branch agent/<id>-<slug-pendek>. ID mengikuti nomor issue — jejaknya jelas dari task sampai PR.

Worktree berbagi objek git (hemat disk) tapi tidak berbagi file yang di-ignore — jalankan setup per worktree:

cd ~/wt/proyekku-task-42
cp ~/proyekku/.env . # atau generate .env khusus dengan resource terpisah
npm install

Checkpoint: git worktree list menampilkan dua entri; npm test hijau di worktree baru.

Jalankan satu agent per worktree

Buka satu sesi agent di tiap worktree — via terminal (tmux tab per task) atau via bridge Telegram dari Langkah 3:

# sesi 1
cd ~/wt/proyekku-task-42 && claude -p "Kerjakan issue #42: ..."
# sesi 2 (paralel, terminal/tmux window lain)
cd ~/wt/proyekku-task-43 && claude -p "Kerjakan issue #43: ..."

(Ganti perintah sesuai tool-mu — pola sama untuk opencode run / omp -p.)

Aturan main yang masuk AGENTS.md:

## Aturan worktree
- Kerja HANYA di worktree/branch tempatmu dijalankan. Jangan checkout branch lain.
- Jangan sentuh worktree lain di ~/wt/.
- Selesai = push branch + buka PR. Jangan pernah merge sendiri.

Checkpoint: dua task berjalan serentak; git status di masing-masing worktree hanya menunjukkan perubahan task itu sendiri.

Disiplin merge: satu arah, lewat PR

Alur selalu satu arah: worktree → push → PR → CI + review (Langkah 5) → merge ke main → worktree lain rebase dari main.

# di worktree yang task-nya selesai
git push -u origin agent/42-fix-login
gh pr create --fill

Kalau dua task menyentuh area yang sama, serialisasikan — merge yang satu, lalu minta agent kedua rebase:

cd ~/wt/proyekku-task-43
git fetch origin && git rebase origin/main
# kalau konflik: ini task yang bagus untuk agent —
# "rebase branch ini ke main dan selesaikan konflik, jalankan test setelahnya"

:::warning Konflik bukan musuh, silent overwrite iya Konflik rebase itu terlihat dan bisa diselesaikan. Yang berbahaya adalah dua agent mengedit file yang sama di direktori yang sama — perubahan hilang tanpa jejak. Karena itu aturannya keras: satu task, satu worktree, tanpa pengecualian. :::

Checkpoint: dua PR dari dua worktree ter-merge berurutan tanpa kehilangan perubahan; main tetap hijau.

Bersihkan worktree selesai

Worktree adalah sumber daya sekali pakai — buang setelah PR merge:

git worktree remove ~/wt/proyekku-task-42
git branch -d agent/42-fix-login
git worktree prune

Buat helper supaya siklusnya satu perintah:

~/bin/wt-new (chmod +x)
#!/usr/bin/env bash
# pakai: wt-new 44 tambah-rate-limit
set -euo pipefail
ID="$1"; SLUG="$2"; REPO_DIR="${REPO_DIR:-$HOME/proyekku}"
WT="$HOME/wt/$(basename "$REPO_DIR")-task-$ID"
git -C "$REPO_DIR" worktree add "$WT" -b "agent/$ID-$SLUG"
cp "$REPO_DIR/.env" "$WT/" 2>/dev/null || true
(cd "$WT" && npm install --silent)
echo "$WT siap."

Checkpoint: siklus penuh — wt-new → agent kerja → PR → merge → git worktree remove — terasa rutin, bukan upacara.

:::tip Berapa banyak paralel? Mulai dari 2–3. Pembatasnya bukan CPU, tapi kapasitas review-mu — setiap worktree aktif menghasilkan PR yang harus kamu baca. Kalau antrean PR menumpuk lebih cepat daripada kamu me-review, tambah lapisan review otomatis dulu (Langkah 5) sebelum menambah agent. :::

Selanjutnya: Langkah 5 — Review & QA Loop