← Dokumentasi

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. Zero-dependency, di-vendor ke vendor/minicore; dapat diedit di host sejak v0.16.0 (angka provenance historis dicatat di vendor/minicore/VENDOR.md). 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, dan CLI dengan TUI interaktif serta jalur non-interaktif shell-first

Loop ReAct

Setiap prompt berjalan sebagai loop Thought → Action → Observation sampai jawaban final, batas --max-steps (default 50), atau --timeout (default 1 jam). 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-first: non-interaktif polos, interaktif fullscreen

Minicode sengaja tanpa library TUI pihak ketiga (tanpa Ink/React; TUI-nya ditulis sendiri) dan membagi dua jalur secara tegas:

  • Non-interaktif (one-shot prompt, exec, pipe/redirect/CI, TERM=dumb):

output mengalir append-only ke scrollback — hasil agen adalah artefak terminal biasa yang bisa di-pipe, di-grep, dan tersimpan di scrollback Anda sendiri.

  • Interaktif (TTY mampu): satu tampilan TUI fullscreen alternate-screen

— transkrip ala shell + status bar satu baris + popup komposit; keluar = buffer utama kembali persis (transkrip tidak di-dump ke scrollback).

  • 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; minicode sync//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 + perintah sah (jalankan bun run gate:bash). Lihat Keamanan.
  • Skor benchmark dilaporkan apa adanya beserta batas validitasnya (lingkungan, ukuran sampel). 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.