minicode

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

NamaApa
MiniCoreKernel 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
MinicodeLayer 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_COLOR selalu 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 login menampilkan error server tanpa dipercantik; --sync jujur {updated, failed}; sandbox yang tidak tersedia tidak dilabeli aman — default turun ke allowlist dengan 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.