Verify 32 min

Separate Doing from Judging

Memisahkan agent yang menulis patch dari gate yang menentukan apakah patch benar-benar selesai.

Failure pattern

Coding agent membuat patch, menjalankan satu unit test, lalu menulis “done.” Tetapi behavior user belum terbukti, e2e path belum jalan, dan risk belum dijelaskan.

Incident: PR yang terlalu cepat dinyatakan selesai

Agent memperbaiki invite acceptance dan unit test pass. Ia menandai PR ready. Reviewer menjalankan journey dari email link ke workspace setup dan menemukan flow masih gagal.

Agent melakukan work, tetapi juga menjadi judge atas completion. Itu terlalu lemah.

Harness principle

Separate doing from judging berarti implementer dan evaluator punya role berbeda. Implementer menghasilkan patch dan evidence. Judge mengecek gate.

Judge bisa manusia, CI, agent lain, atau checklist deterministic. Yang penting: implementer tidak memberi nilai akhir sendiri.

Operating practice

Evidence packet:

GateEvidenceStatus
behaviore2e invite journeymissing
regressionexpired token pathpresent
code scoperoute + test onlypresent
riskauth redirect explainedpartial
human reviewreviewer approvalnot started

Status “ready” hanya boleh muncul setelah gate utama pass.

Coding-agent example

Implementer menulis:

Ready for evaluation, not complete.
Evidence attached: unit test, expired token regression.
Missing: full invite e2e journey.

Evaluator mengembalikan task dengan alasan spesifik.

Common mistakes

Kesalahan umum adalah menganggap self-review cukup. Agent bisa memberi critique, tetapi critique itu bukan independent gate.

Kesalahan lain adalah membiarkan CI hijau menjadi satu-satunya judge, padahal CI mungkin tidak mencakup behavior yang diminta.

Practical exercise

Pilih satu PR. Definisikan gate implementer dan gate evaluator. Tentukan evidence minimum untuk masing-masing.

Key takeaways

  • Patch selesai bukan berarti behavior verified.
  • Implementer tidak boleh menjadi satu-satunya judge.
  • Evidence packet membuat review lebih tajam.