# Agent review notes — NoHalu

**Template version: 2.0** · 22 Oktober 2026 · lihat "Riwayat versi template" di akhir.

Gunakan satu salinan untuk satu percobaan. Dokumen ini adalah catatan review,
bukan policy engine dan bukan bukti bahwa setup aman.

## Cara mengisi

Sembilan bagian di bawah adalah sembilan baris yang diminta artikel
[Satu agent, satu tugas, satu bukti](https://nohalu.xyz/blog/satu-agent-satu-tugas-satu-bukti).
Urutannya sama, dan nama bagiannya sama, supaya tidak ada yang perlu ditebak.

Tiga aturan:

1. **Bedakan rencana dari yang terjadi.** Bagian 1–4 diisi *sebelum* percobaan
   dan boleh berisi rencana. Bagian 5–9 diisi *setelah*, dan hanya boleh berisi
   yang benar-benar terjadi.
2. **Empat keadaan yang sah** untuk kolom yang tidak bisa diisi:
   `belum diketahui` (belum diperiksa), `belum diuji` (diperiksa tapi tidak
   dijalankan), `tidak berlaku` (tidak relevan untuk percobaan ini), dan
   `belum dicatat` (terjadi, tapi tidak ada rekamannya). Jangan mengarang nilai
   supaya tabel terlihat penuh.
3. **Satu percobaan, satu salinan.** Jangan menimpa catatan lama. Tambahkan
   salinan baru dengan tanggal baru.

## Sebelum membagikan catatan ini

Baca ulang seluruh dokumen dan samarkan: token, API key, cookie, password,
alamat email pribadi, nama host internal, path direktori home, URL dengan
credential di query string, dan isi fixture yang berasal dari data asli.
Ganti dengan `<REDACTED-…>` dan tulis jenisnya, misalnya `<REDACTED-API-KEY>`.
Nilai yang sudah tersimpan di secret manager tidak perlu disalin ke sini —
cukup tulis nama secret-nya.

Kalau catatan ini menyertakan hasil percobaan yang bisa dibuka lagi (JSON, log),
lampirkan file itu dan tulis lokasinya di bagian 6. Jangan menempelkan isi
lengkapnya ke dalam dokumen ini.

---

## 1. Versi dan paket

- Nama paket:
- Versi:
- Hash integritas (jika ada):
- Versi protokol yang dinegosiasikan:
- Commit atau lockfile yang dipakai:

## 2. Tugas dan kondisi hasil

- Satu kalimat tugas:
- Kondisi yang sudah cukup berguna:
- Satu hal yang **tidak** dibuktikan oleh tugas ini:

## 3. Input / fixture aktual

- Fixture atau data yang benar-benar dipakai:
- Asal data (sintetis / salinan / data asli):
- Alasan aman dipakai:
- Cara membuat ulang fixture:

## 4. Akses yang diizinkan

- Folder yang benar-benar terbuka:
- Akun, branch, atau environment yang dipakai:
- Credential yang dibutuhkan (nama saja, bukan nilainya):
- Akses yang sengaja **tidak** diberikan:

## 5. Tindakan yang dijalankan

Command atau tool call yang benar-benar dieksekusi — bukan daftar tool yang
tersedia. Kalau sebuah tool tersedia tetapi tidak pernah dipanggil, tulis
`tersedia, tidak dipanggil`.

- Perintah / tool call yang dijalankan:
- Tool yang tersedia tetapi tidak dipakai:
- Penolakan atau error yang terjadi:
- Cara menjalankan ulang:

## 6. Output dan lokasi artifact

- File, JSON, atau log yang dihasilkan:
- Lokasi artifact (path atau URL, sudah disamarkan):
- Bagaimana membukanya lagi:
- Apa yang **tidak** terekam:

## 7. Review manusia

Siapa yang membaca hasilnya, kapan, dan apa yang diperiksa. Kalau belum ada
review manusia, tulis `belum dicatat` — jangan mengisi dengan tanggal eksekusi
atau dengan hasil pembacaan otomatis.

- Reviewer:
- Waktu review:
- Yang diperiksa:
- Keputusan reviewer (lanjut / tunda / stop):
- Kalau belum ada: `belum dicatat`

## 8. Cleanup aktual

Apa yang sudah benar-benar dibersihkan, terpisah dari rencana rollback.

- Yang sudah dihapus:
- Yang sengaja disimpan, dan di apa:
- Token / credential yang sudah dicabut:
- Rencana rollback yang **belum** dijalankan:

## 9. Belum diketahui (unknowns)

- Belum diketahui:
- Belum diuji:
- Tidak berlaku untuk percobaan ini:
- Risiko operasional yang masih tersisa:

---

## Contoh fiktif yang sudah terisi

Contoh di bawah ini **fiktif**. Tidak ada agent, repository, atau hasil nyata di
dalamnya. Tujuannya menunjukkan bentuk isian yang cukup, termasuk kolom yang
sengaja dibiarkan `belum diketahui`.

**1. Versi dan paket**
- Nama paket: `demo-fs-tool`
- Versi: `0.0-contoh`
- Hash integritas: `tidak diterbitkan paket contoh`
- Versi protokol yang dinegosiasikan: `2025-11-25`
- Commit atau lockfile: `<REDACTED-COMMIT>` (salinan sekali pakai)

**2. Tugas dan kondisi hasil**
- Satu kalimat tugas: mengubah satu nilai timeout di satu file konfigurasi dan menunjukkan diff-nya.
- Kondisi yang sudah cukup berguna: diff satu baris terlihat, dan nilai lama bisa dibaca kembali dari git.
- Satu hal yang tidak dibuktikan: apakah hook berjalan setelah file ditulis.

**3. Input / fixture aktual**
- Fixture atau data yang benar-benar dipakai: satu file `config/settings.txt` di clone sekali pakai.
- Asal data: sintetis, ditulis untuk percobaan ini.
- Alasan aman dipakai: tidak ada kredensial, tidak ada data pribadi, tidak ada remote.
- Cara membuat ulang: `git clone <repo-contoh> && printf 'timeout=10\n' > config/settings.txt`.

**4. Akses yang diizinkan**
- Folder yang benar-benar terbuka: `config/` pada salinan repo lokal.
- Akun, branch, atau environment: branch `lab/timeout-demo` pada salinan tanpa remote.
- Credential yang dibutuhkan: tidak ada.
- Akses yang sengaja tidak diberikan: direktori home, `.env`, `secrets/`, dan push ke remote.

**5. Tindakan yang dijalankan**
- Perintah / tool call yang dijalankan: satu `edit_file` pada `config/settings.txt`, lalu `git diff`.
- Tool yang tersedia tetapi tidak dipakai: `run_command` (`tersedia, tidak dipanggil`).
- Penolakan atau error yang terjadi: satu penolakan tulis di luar `config/`, pesan server dicatat.
- Cara menjalankan ulang: skrip lab dengan fixture yang sama.

**6. Output dan lokasi artifact**
- File, JSON, atau log yang dihasilkan: `evidence.json` (8 pemeriksaan) dan log server.
- Lokasi artifact: `.publication-preview/filesystem-lab/evidence.json`.
- Bagaimana membukanya lagi: `cat` atau editor JSON; hasil tiap pemeriksaan punya `id` dan `passed`.
- Apa yang tidak terekam: waktu respons tiap tool call.

**7. Review manusia**
- Reviewer: `belum dicatat`
- Waktu review: `belum dicatat`
- Yang diperiksa: pemeriksaan otomatis terhadap filesystem lokal; belum ada pembacaan manusia.
- Keputusan reviewer: `belum dicatat`
- Kalau belum ada: `belum dicatat`

**8. Cleanup aktual**
- Yang sudah dihapus: salinan repo dihapus setelah hasil disalin.
- Yang sengaja disimpan: `evidence.json` dan log server.
- Token / credential yang sudah dicabut: tidak ada token yang diterbitkan.
- Rencana rollback yang belum dijalankan: tidak ada.

**9. Belum diketahui (unknowns)**
- Belum diketahui: apakah hook berjalan setelah file ditulis.
- Belum diuji: symlink, race condition, Windows/macOS.
- Tidak berlaku untuk percobaan ini: instalasi paket dari jaringan.
- Risiko operasional yang masih tersisa: hasil hanya berlaku untuk satu versi paket.

---

## Checklist evidence

- [ ] Sembilan bagian terisi, dan kolom kosong memakai salah satu dari empat keadaan yang sah.
- [ ] Bagian 5 memuat tindakan yang benar-benar dijalankan, bukan daftar tool yang tersedia.
- [ ] Bagian 8 memuat cleanup yang sudah terjadi, terpisah dari rencana rollback.
- [ ] Bagian 7 memuat reviewer, waktu, dan keputusan — atau `belum dicatat`.
- [ ] Secret, token, dan path pribadi sudah disamarkan sebelum dibagikan.
- [ ] Artifact bisa dibuka lagi dari lokasi yang tertulis di bagian 6.

## Riwayat versi template

- **2.0 — 22 Oktober 2026.** Sembilan bagian diganti menjadi sembilan baris
  artikel "Satu agent, satu tugas, satu bukti" supaya unduhan dan artikel
  memakai kontrak yang sama. Bagian 5 kini meminta tindakan yang benar-benar
  dijalankan (bukan tool yang tersedia), dan bagian 8 kini memisahkan cleanup
  aktual dari rencana rollback. Empat keadaan sah (`belum diketahui`,
  `belum diuji`, `tidak berlaku`, `belum dicatat`) ditambahkan, bersama contoh
  fiktif terisi, instruksi penyamaran, dan riwayat versi ini.
- **1.0 — 21 Oktober 2026.** Versi pertama: identitas percobaan, batas yang
  direncanakan, sketsa jalur akses, observasi, evidence checklist, dan unknowns.
  Bagiannya tidak sejajar dengan sembilan baris artikel, dan belum memisahkan
  tool yang tersedia dari tool yang dipanggil.
