Konsep & Desain
Minicode itu apa, kenapa dibangun begitu, dan kenapa beberapa hal sengaja tidak ada. Halaman ini latar belakangnya; langkah praktis ada di Instalasi.
#Dua benda, dua peran
| Nama | Apa |
|---|---|
| MiniCore | Kernel runtime STATE / MODEL / ACTION / LOOP. Inti di-freeze, zero-dependency, di-vendor ke vendor/minicore (19 file, ~72 KB). Bukan dependency — di-resolve lewat subpath imports #minicore |
| Minicode | Layer agencode di atasnya: tools, sub-agents, skills, hooks, policy/sandbox, providers, MCP/LSP, memory, sessions, repo-map, verifier, CLI shell-first |
#Loop ReAct
Setiap prompt berjalan sebagai loop Thought → Action → Observation sampai jawaban final, batas --max-steps (default 50), atau --timeout (default 15 menit). Model menerima system prompt berisi # Environment (cwd + platform), repo-map ringkas, dan memory yang relevan — lalu memilih tool, melihat hasilnya, dan memilih langkah berikutnya. Tidak ada grafik alur tersembunyi: apa pun yang agent lakukan tampil sebagai ledger di layar.
#Shell-native, bukan TUI
Minicode sengaja bukan aplikasi TUI (tanpa Ink/React, tanpa alternate screen, tanpa panel permanen). Konsekuensinya:
- Output mengalir append-only ke scrollback — hasil agen adalah artefak terminal biasa yang bisa di-pipe, di-grep, dan tersimpan di scrollback Anda sendiri.
- Picker/wizard bersifat transient: muncul saat dibutuhkan, menghapus dirinya sendiri setelah selesai.
- Warna hanya saat TTY;
NO_COLORselalu menang; output program tetap bersih dari cursor-control saat di-pipe.
Detail lengkap + kontrak FROZEN-nya di Kontrak Terminal.
#Kejujuran sebagai fitur
Beberapa keputusan desain lahir dari tidak mau berpura-pura:
- Angka tidak ditulis permanen di dokumentasi — jalankan
bun test/bun run gate:coverage/ lihat CI. Halaman yang mengklaim jumlah test akan usang begitu dipush. - Kegagalan dilaporkan apa adanya:
auth loginmenampilkan error server tanpa dipercantik;--syncjujur{updated, failed}; sandbox yang tidak tersedia tidak dilabeli aman — default turun keallowlistdengan alasan dicetak sekali. - Ukur, bukan klaim: bash-guard divalidasi korpus serangan + fuzz ber-seed (~13.000 varian), bukan sekadar daftar regex. Lihat Keamanan.
- SWE-bench Lite 0/20 dilaporkan apa adanya dengan catatan validitas lingkungan (Python 3.14 vs era 2022), bukan disembunyikan. Lihat Verify & Benchmark.
#Zero-dep runtime
Runtime tanpa dependency pihak ketiga; satu-satunya kebutuhan keras adalah Bun (bun:sqlite dipakai langsung — tidak jalan di Node.js). Parser markdown web, renderer tabel/diff, dan highlight juga mini buatan sendiri, bukan library. Manfaatnya: audit permukaan lebih kecil, install cepat, dan supply-chain yang bisa dibaca sambil duduk.
#Bahasa
Dokumentasi dan komentar kode berbahasa Indonesia dengan istilah teknis tetap English (provider, checkpoint, sandbox, jail). Lihat Glosarium untuk daftar istilah.
#Lanjut
- Arsitektur — tiga lapisan, boundary, alur satu prompt.
- Quickstart — dari nol ke prompt pertama yang ter-verify.