Checklist review Claude Code: tangkap risiko PR sebelum rilis
Workflow praktis untuk review PR dengan Claude Code, validasi CTA, dan bukti verifikasi sebelum rilis.
Tiga baris pertama menentukan kedalaman review
Saat review Claude Code terasa dangkal, masalahnya biasanya bukan model saja. Prompt sering tidak menyebut scope, perilaku yang tidak boleh rusak, verifikasi yang sudah dijalankan, dan keputusan yang harus dibuat manusia.
Di artikel ini, workflow review berarti proses yang bisa diulang: kecilkan diff, beri nama risiko, lampirkan evidence, minta findings lebih dulu, lalu biarkan keputusan akhir tetap pada owner PR. Untuk pemula, diff adalah perubahan dalam PR, review gate adalah pemeriksaan sebelum merge atau publikasi, dan verification receipt adalah catatan singkat berisi command, hasil, screenshot, log, dan sisa risiko.
Referensi resmi yang berguna adalah Claude Code overview, common workflows, GitHub pull request reviews, dan npm scripts. Di situs ini, pakai bersama Claude Code code review checklist dan verification receipt workflow.
Siapkan konteks sebelum Claude Code melihat diff
Claude Code lebih kuat menemukan defect jika input berisi Scope, Risk, Evidence, dan Handoff. Tanpa empat hal ini, output bisa terdengar benar tetapi tetap melewatkan masalah yang harus menahan rilis.
| Input | Tujuan | Versi lemah | Versi kuat |
|---|---|---|---|
| Scope | Membatasi perubahan | Memperbaiki beberapa hal | Hanya CTA artikel, copy, dan spacing mobile |
| Risk | Menamai dampak | Sepertinya aman | Produk, konsultasi, dan internal link memengaruhi revenue |
| Evidence | Menunjukkan verifikasi | Sudah dilihat lokal | npm run build lulus dan CTA dicek di 360px |
| Handoff | Menentukan output | Tolong review | Findings P1/P2/P3, residual risk, dan next checks |
flowchart LR
A["Diff"] --> B["Scope and risk"]
B --> C["Claude Code review"]
C --> D["Human decision"]
D --> E["Fix, verify, or ship"]
E --> F["Review receipt"]
Batasnya harus jelas: Claude Code bukan approver. Ia membantu mengurangi kelalaian, menyarankan test, dan menunjukkan asumsi lemah. Keputusan fix, verify ulang, atau ship tetap di owner PR.
Checklist sebelum review
Kumpulkan status working tree dan command verifikasi. Contoh ini untuk proyek Node; di stack lain ganti baris terakhir dengan pytest, go test ./..., bundle exec rspec, atau command CI tim.
git status --short
git diff --stat
git diff --name-only
npm run build
npm run test -- --runInBand
Checklist berikut bisa masuk ke deskripsi PR, .github/review-checklist.md, atau wiki tim.
# Claude Code Review Checklist
## Scope
- [ ] This PR has one clear purpose.
- [ ] Changed files match the stated purpose.
- [ ] No unrelated formatting, dependency, or generated files are mixed in.
## Risk
- [ ] Risk level is marked as low, medium, or high.
- [ ] User-facing routes, forms, auth, billing, analytics, and CTA paths are named.
- [ ] Rollback or recovery steps are written for high-risk changes.
## Evidence
- [ ] Build, test, lint, or typecheck commands are listed with results.
- [ ] Manual checks include browser width, account state, and actual URL when relevant.
- [ ] Screenshots, logs, or console output are attached for UI and integration changes.
## Review output
- [ ] Findings come first, ordered by severity.
- [ ] Each finding has file reference, reproduction condition, and expected fix.
- [ ] Residual risk is written even when no blocker is found.
Checklist ini membuat review fokus pada risiko rilis, bukan sekadar komentar style.
Prompt review siap pakai
Prompt bisa singkat jika format output tegas. Pertahankan bug-finding mindset, findings first, dan do not rewrite code yet.
Review this diff with a bug-finding mindset.
Scope:
- Only review the files changed in this PR.
- Do not rewrite code yet.
Prioritize:
1. behavioral regressions
2. security, privacy, or permission mistakes
3. missing tests or weak verification
4. broken mobile layout, internal links, product CTA, or training CTA
Return:
- Findings first, ordered by P1/P2/P3 severity
- File and line references when possible
- Why each issue matters to users or revenue
- Checks I should run next
- Residual risk if no blocker is found
Pass pertama sebaiknya read-only. Jika Claude Code langsung mengedit saat review, tim kehilangan daftar isu dan alasan prioritasnya.
Empat use case praktis
Use case pertama adalah CTA dan jalur revenue. Jika footer artikel, kartu produk, pricing, atau link konsultasi berubah, cek target URL, kecocokan produk, urutan tombol, layout mobile, dan event analytics. Kegagalan umum: tombol bertuliskan “templates” masih menuju produk Gumroad lama. Jalur pembaca harus jelas ke /id/products/ dan /id/training/.
Use case kedua adalah auth, permission, dan data privat. Menyembunyikan tombol di UI bukan authorization di server. Claude Code perlu mengecek siapa boleh menjalankan action, siapa harus ditolak, apakah log berisi email atau payment ID, dan apakah ada test untuk path yang ditolak.
Use case ketiga adalah publikasi multibahasa. Satu bahasa bisa natural, sementara bahasa lain punya updatedDate lama, code fence terbuka, link produk hilang, atau mojibake. Sebutkan file locale yang boleh disentuh, metadata yang harus dipertahankan, dan string yang wajib ada.
Use case keempat adalah triage build atau test failure. Jangan tempel log raksasa. Beri command yang gagal, baris log relevan terakhir, diff terbaru, dan apa yang sudah dicoba. Pitfall yang sering terjadi adalah fix build kecil berubah menjadi update dependency yang tidak terkait.
Kesalahan yang sering terjadi
“Review semuanya” terlalu luas. Claude Code akan cenderung memberi saran umum. Lebih baik sebut file, risiko, dan area yang di luar scope.
Kesalahan kedua adalah evidence tidak ada. Jika tidak jelas apakah npm run build, typecheck, browser path, atau mobile view dicek, review hanya menebak. Jika command belum dijalankan, tulis alasannya.
Jalur revenue punya jebakan sendiri: hanya cek desktop, tidak klik link asli, dan tidak mengonfirmasi urutan /products/ serta /training/. CTA rusak tidak selalu terlihat dari diff.
Untuk keamanan, jangan tempel API key, token, email pelanggan, payment ID, atau konten privat ke prompt. Kecilkan log ke bagian minimum yang bisa mereproduksi masalah.
Periksa receipt dengan script
Script Node ini mengecek apakah review receipt memiliki section wajib dan setidaknya satu command yang dicentang. Ini bukan QA penuh, tetapi mencegah rilis tanpa bukti minimum.
{
"requiredSections": ["Scope", "Risk", "Checks run", "Findings", "Residual risk"]
}
#!/usr/bin/env node
const fs = require("node:fs");
const receiptPath = process.argv[2] || "review-receipt.md";
const policyPath = process.argv[3] || "review-policy.json";
const receipt = fs.readFileSync(receiptPath, "utf8");
const policy = fs.existsSync(policyPath)
? JSON.parse(fs.readFileSync(policyPath, "utf8"))
: { requiredSections: ["Scope", "Risk", "Checks run", "Findings", "Residual risk"] };
const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const missingSections = policy.requiredSections.filter((name) => {
const heading = new RegExp(`^## ${escapeRegExp(name)}\\b`, "m");
return !heading.test(receipt);
});
const hasCheckedCommand = /^- \[(x|X)\] `(npm|pnpm|yarn|node|pytest|go test|cargo test)/m.test(receipt);
if (missingSections.length || !hasCheckedCommand) {
for (const section of missingSections) console.error(`Missing section: ${section}`);
if (!hasCheckedCommand) console.error("Missing checked command evidence such as - [x] `npm run build`");
process.exit(1);
}
console.log("Review receipt passed.");
# Review receipt
## Scope
Article CTA links and mobile layout only.
## Risk
Medium: product and training links affect revenue.
## Checks run
- [x] `npm run build` passed
- [x] mobile CTA path checked at 360px
## Findings
- P2: Product CTA text and destination mismatch on one locale.
## Residual risk
Analytics event names were not checked in production.
Pola yang sama bisa dipakai di PR template, prompt Claude Code, atau check CI ringan.
Langkah berikutnya
Developer solo bisa mulai dari cheatsheet Claude Code gratis untuk menstabilkan command dan prompt aman. Jika prompt review, debugging, dan triage sering ditulis ulang, gunakan Prompt Templates dan /id/products/.
Untuk tim, masalah utamanya bukan satu prompt pintar. Tim perlu menyepakati CLAUDE.md, batas permission, review gate, verification receipt, dan tanggung jawab approval. Untuk menerapkan di repository nyata, mulai dari /id/training/.
PDF gratis: cheatsheet Claude Code
Masukkan email dan unduh satu halaman berisi command, kebiasaan review, dan workflow aman.
Kami menjaga datamu dan tidak mengirim spam.
Tentang penulis
Masa
Engineer yang berfokus pada workflow Claude Code praktis dan adopsi tim.
Artikel terkait
Workflow Obsidian ke CLAUDE.md untuk Claude Code
Ubah catatan kerja Obsidian menjadi operating note CLAUDE.md agar konteks tidak dijelaskan ulang.
Claude Code Revenue CTA Routing: dari artikel ke PDF, Gumroad, dan konsultasi
Workflow Claude Code untuk mengarahkan pembaca ke PDF gratis, Gumroad, atau konsultasi sesuai intent.
Aturan handoff tim Claude Code: bukti review, permission, rollback, dan jalur revenue
Format handoff Claude Code untuk tim: bukti, permission rule, rollback, PDF gratis, Gumroad, dan konsultasi.