Kirat - Multi Model AI Council

resmi

Satu AI memberi Anda satu alur penalaran. Kirat adalah ekstensi Claude Desktop dan plugin Claude Code yang menambahkan ChatGPT dan Gemini sebagai dewan: posisi independen, pemungutan suara dengan pendapat berbeda yang tetap disimpan, dan tinjauan kode di mana setiap temuan diperiksa oleh keluarga model kedua. Bawa kunci API Anda sendiri. Berbayar, sekali bayar.

Apa yang bisa Anda lakukan dengan Kirat Multi Model AI Council MCP?

  • Dapatkan suara multi-model untuk sebuah keputusan — Minta kirat_vote agar dewan memberikan pendapat tentang pertanyaan bisnis atau teknis dengan opsi dan konteks.
  • Tinjau kode untuk keamanan dan kebenaran — Gunakan kirat_review untuk mendapatkan temuan yang diperiksa silang dengan tingkat keparahan dan saran perbaikan sebelum merilis.
  • Lihat perbedaan pendapat dan penalaran di balik sebuah keputusan — Dapatkan posisi lengkap setiap model, termasuk suara minoritas, dengan skor keyakinan dan alasannya.

Dokumentasi

01 — Putar Ulang

Saksikan dewan bekerja.

Rekaman nyata dari alat-alat Kirat, dibuat pada 13 Oktober 2026 dengan versi yang Anda beli. Pilih sebuah alat dan saksikan dewan bekerja: posisi independen, pemeriksaan silang, peringkat anonim, dan pendapat yang berbeda. Ini adalah putar ulang: tidak ada yang Anda klik di sini yang memanggil model, dan tidak ada yang keluar dari halaman ini. Obrolan ditulis untuk ilustrasi dan hanya mengulang hasil yang direkam; apa yang dikirim Claude ke Kirat dan apa yang dikembalikan ditampilkan tanpa perubahan di bawah "Di balik layar".

Lima pertanyaan dari bidang yang berbeda. Pilih satu.

Biarkan Kirat memutuskan ini: Saya menjalankan SaaS B2B kecil sendirian. Haruskah saya menambahkan paket gratis?

kirat_vote bertanya kepada dewan

Dewan telah memutuskan (mayoritas 2:1): Tetap berbayar saja, tidak ada yang diubah.

Suara saya sendiri adalah pendapat yang berbeda: "Tetap berbayar saja, perpanjang uji coba menjadi 30 hari". Itu tetap tercatat beserta alasannya, sehingga Anda dapat menimbangnya sendiri.

Di balik layar

kirat_vote Apa yang dikirim Claude ke Kirat

Pertanyaan: Saya menjalankan SaaS B2B kecil sendirian. Haruskah saya menambahkan paket gratis?

DIREKAM 2026-10-13 · KIRAT_VOTE · UPAYA: STANDAR · 1 PUTARAN

Konteks yang dikirim: Pengembang tunggal. Alat penagihan untuk pekerja lepas, USD 19 per bulan, uji coba gratis 14 hari, 30 pelanggan berbayar setelah 5 bulan. Pendaftaran sebagian besar berasal dari dua artikel blog yang berperingkat di Google. Sekitar 12% uji coba berkonversi. Dukungan sudah memakan sekitar 5 jam seminggu. Pengembang memiliki pekerjaan tetap dan sekitar 10 jam seminggu untuk produk.

Opsi: Tambahkan paket gratis · Tetap berbayar saja, perpanjang uji coba menjadi 30 hari · Tetap berbayar saja, tidak ada yang diubah

Hasil dari dewan

gpt-5.6 keyakinan 88

Tetap berbayar saja, tidak ada yang diubahPaket gratis kemungkinan akan menambah pengguna yang tidak membayar dan beban dukungan, yang sudah menghabiskan setengah dari 10 jam yang tersedia per minggu. Konversi uji coba 12% cukup baik, jadi tidak ada bukti jelas bahwa durasi uji coba adalah hambatannya. Pertahankan model saat ini dan gunakan waktu yang terbatas untuk mengurangi kebutuhan dukungan dan memperluas akuisisi di luar dua artikel blog.

gemini-3.6-flash keyakinan 90

Tetap berbayar saja, tidak ada yang diubahDengan hanya 10 jam seminggu yang tersedia, dukungan sudah memakan 50% kapasitas. Paket gratis akan meningkatkan volume dukungan dari pengguna yang tidak membayar tanpa kendali apa pun. Tingkat konversi uji coba 12% sudah kuat; hambatannya adalah lalu lintas, bukan model penetapan harga.

claude (pemilih ketiga) keyakinan 58

Tetap berbayar saja, perpanjang uji coba menjadi 30 hariPaket gratis terutama menambah beban dukungan, yang sudah setengah dari waktu yang tersedia. Penagihan bersifat bulanan, jadi uji coba 14 hari mungkin berakhir sebelum seorang pekerja lepas mengirim faktur kedua dan melihat nilainya. Uji coba 30 hari mencakup satu siklus penagihan penuh tanpa menambah pengguna gratis permanen.Pendapat berbeda, tercatat

Keputusan Tetap berbayar saja, tidak ada yang diubah Jalur mayoritas 2:1 Biaya $0.015

Biarkan Kirat memutuskan ini: Toko online klien kami perlu dibangun ulang. Bangun ulang di WooCommerce atau migrasi ke Shopify?

kirat_vote bertanya kepada dewan

Dewan telah memutuskan (bulat 3:0): Migrasi ke Shopify.

Ketiga posisi, termasuk milik saya, menunjuk ke arah yang sama. Masing-masing disertai alasannya.

Di balik layar

kirat_vote Apa yang dikirim Claude ke Kirat

Pertanyaan: Toko online klien kami perlu dibangun ulang. Bangun ulang di WooCommerce atau migrasi ke Shopify?

DIREKAM 2026-10-13 · KIRAT_VOTE · UPAYA: STANDAR · 1 PUTARAN

Konteks yang dikirim: Kami adalah agensi digital kecil. Klien menjual sekitar 1.800 produk furnitur di Jerman, Austria, dan Swiss, memiliki 3 staf dan tidak memiliki pengembang internal. Toko saat ini adalah instalasi WooCommerce yang dihosting sendiri, berusia 6 tahun, dengan 31 plugin, halaman lambat, dan dua insiden keamanan dalam setahun terakhir. Pendapatan sekitar EUR 1,2 juta setahun. Klien menginginkan pemeliharaan yang lebih rendah dan lebih sedikit keadaan darurat; mereka menggunakan ERP lokal yang mengekspor data produk sebagai CSV. Anggaran untuk pembangunan ulang: EUR 25.000.

Opsi: Bangun ulang di WooCommerce · Migrasi ke Shopify

Hasil dari dewan

gpt-5.6 keyakinan 89

Migrasi ke ShopifyShopify lebih cocok dengan tujuan utama klien: pemeliharaan lebih rendah, lebih sedikit keadaan darurat keamanan, dan tidak perlu pengembang internal. Katalog 1.800 produk dan alur kerja ERP berbasis CSV dapat dikelola, dan anggaran EUR 25.000 seharusnya cukup untuk migrasi yang disiplin ditambah pengaturan pajak, pembayaran, dan hukum khusus DACH. Komprominya adalah biaya aplikasi/platform berulang, fleksibilitas backend yang lebih rendah, dan kebutuhan untuk memvalidasi alur kerja impor ERP serta varian khusus furnitur sebelum berkomitmen. Membangun ulang WooCommerce dapat mempertahankan fleksibilitas, tetapi itu akan mempertahankan tanggung jawab atas hosting, pembaruan, kompatibilitas plugin, dan keamanan—persis beban operasional yang ingin dikurangi klien.

gemini-3.6-flash keyakinan 90

Migrasi ke ShopifyTanpa pengembang internal, 3 anggota staf, dan riwayat insiden keamanan, Shopify secara drastis mengurangi beban pemeliharaan dan risiko keamanan. Anggaran €25.000 cukup untuk migrasi Shopify termasuk integrasi ERP CSV, sedangkan membangun ulang di WooCommerce akan melanggengkan biaya pemeliharaan tinggi dan risiko darurat yang berkelanjutan.

claude (pemilih ketiga) keyakinan 72

Migrasi ke ShopifyTanpa pengembang internal, 31 plugin, dan dua insiden keamanan, masalah nyata klien adalah pemeliharaan, bukan fitur. Shopify menghilangkan hosting, pembaruan, dan sebagian besar pekerjaan keamanan; impor produk CSV dari ERP adalah hal standar. Komprominya adalah biaya transaksi dan aplikasi serta fleksibilitas yang lebih rendah, yang kurang penting dibandingkan stabilitas pada ukuran ini.

Keputusan Migrasi ke Shopify Jalur bulat 3:0 Biaya $0.015

Biarkan Kirat memutuskan ini: Sebuah toko roti lokal ingin lebih banyak pre-order kue. Ke mana EUR 3.000 berikutnya harus dialokasikan terlebih dahulu?

kirat_vote bertanya kepada dewan

Dewan telah memutuskan (bulat 3:0): Halaman pemesanan online yang layak.

Ketiga posisi, termasuk milik saya, menunjuk ke arah yang sama. Masing-masing disertai alasannya.

Di balik layar

kirat_vote Apa yang dikirim Claude ke Kirat

Pertanyaan: Sebuah toko roti lokal ingin lebih banyak pre-order kue. Ke mana EUR 3.000 berikutnya harus dialokasikan terlebih dahulu?

DIREKAM 2026-10-13 · KIRAT_VOTE · UPAYA: STANDAR · 1 PUTARAN

Konteks yang dikirim: Toko roti dengan 6 staf di kota Jerman berpenduduk 40.000 orang. Kue kustom dan pre-order memiliki margin terbaik. Saat ini, pesanan hanya masuk melalui telepon dan email; situs web hanya memiliki jam buka dan formulir kontak, tidak ada sarana untuk memesan. Profil Google Business memiliki 4,7 bintang dari 120 ulasan. Belum ada iklan berbayar. Anggaran: EUR 3.000 untuk kuartal berikutnya, pemilik memiliki sedikit waktu.

Opsi: Google Ads · Halaman pemesanan online yang layak · Bagi rata antara keduanya

Hasil dari dewan

gpt-5.6 keyakinan 94

Halaman pemesanan online yang layakPerbaiki hambatannya terlebih dahulu: saat ini, pelanggan yang tertarik tidak dapat melakukan pre-order dengan nyaman atau secara terstruktur. Halaman pemesanan sederhana yang ramah seluler dengan pilihan kue, tanggal pengambilan, opsi kustomisasi, harga atau uang muka, dan konfirmasi memanfaatkan visibilitas lokal kuat yang sudah dimiliki toko roti dan mengurangi pekerjaan telepon dan email. Google Ads tanpa proses pemesanan yang andal akan mengirim lalu lintas berbayar ke jalur konversi yang lemah. Setelah beberapa minggu pesanan yang terukur, anggaran iklan nanti dapat dibelanjakan dengan lebih tepat sasaran.

gemini-3.6-flash keyakinan 90

Halaman pemesanan online yang layakTanpa jalur pemesanan digital, iklan hanya menciptakan lebih banyak pekerjaan manual yang memakan waktu melalui telepon dan email, yang hampir tidak dapat ditangani pemilik. Selain itu, profil Google yang kuat (4,7 bintang) akan mengonversi lalu lintas organik yang sudah dibawanya jauh lebih baik dengan halaman pemesanan nyata, segera, sebelum uang seharusnya dialokasikan ke iklan.

claude (pemilih ketiga) keyakinan 74

Halaman pemesanan online yang layakIklan hanya membuahkan hasil jika klik dapat berubah menjadi pesanan. Saat ini setiap pengunjung harus menelepon atau mengirim email, sehingga lalu lintas berbayar akan bocor. Halaman pemesanan dengan pilihan produk, tanggal pengambilan, dan pembayaran di muka mengonversi permintaan yang sudah dibawa oleh profil 4,7 bintang, dan membuat iklan nanti dapat diukur.

Keputusan Halaman pemesanan online yang layak Jalur bulat 3:0 Biaya $0.012

Biarkan Kirat memutuskan ini: Ekstrak modul penagihan kami menjadi layanan terpisah sekarang, atau perkuat batasannya di dalam monolit terlebih dahulu?

kirat_vote bertanya kepada dewan

Dewan telah memutuskan (bulat 3:0): Perkuat batasan di dalam monolit terlebih dahulu.

Ketiga posisi, termasuk milik saya, menunjuk ke arah yang sama. Masing-masing disertai alasannya.

Di balik layar

kirat_vote Apa yang dikirim Claude ke Kirat

Pertanyaan: Ekstrak modul penagihan kami menjadi layanan terpisah sekarang, atau perkuat batasannya di dalam monolit terlebih dahulu?

DIREKAM 2026-10-13 · KIRAT_VOTE · UPAYA: STANDAR · 1 PUTARAN

Konteks yang dikirim: Tim berisi 8 insinyur. Satu monolit TypeScript, sekitar 60.000 baris, satu basis data Postgres, diterapkan beberapa kali sehari. Modul penagihan berubah setiap minggu dan menyebabkan 5 dari 8 insiden produksi terakhir, sebagian besar melalui modul lain yang membaca dan menulis tabel penagihan secara langsung. Tidak ada seorang pun di tim yang pernah menjalankan sistem terdistribusi di produksi. Kepemimpinan menginginkan lebih sedikit insiden dalam dua kuartal.

Opsi: Ekstrak penagihan menjadi layanan sekarang · Perkuat batasan di dalam monolit terlebih dahulu

Hasil dari dewan

gpt-5.6 keyakinan 94

Perkuat batasan di dalam monolit terlebih dahuluInsiden terutama disebabkan oleh akses basis data yang tidak terkendali, bukan oleh kurangnya batas jaringan. Tegakkan kepemilikan penagihan di dalam monolit: hapus akses tabel langsung, ekspos API internal yang sempit, tambahkan izin basis data atau kontrol tingkat skema, dan tambahkan pengujian kontrak dan integrasi. Ini menargetkan mode kegagalan dengan cepat dalam jendela dua kuartal. Mengekstrak sekarang akan menambah kompleksitas penerapan, observabilitas, percobaan ulang, konsistensi data, dan operasional pada tim tanpa pengalaman sistem terdistribusi. Setelah jalur akses dan kepemilikan data menjadi eksplisit, ekstraksi menjadi lebih aman dan dapat dipertimbangkan kembali jika penskalaan atau penerapan independen masih bernilai.

gemini-3.6-flash keyakinan 90

Perkuat batasan di dalam monolit terlebih dahuluPenyebab utama gangguan adalah modul lain yang mengakses tabel penagihan secara langsung di basis data. Memperkuat batasan modul menyelesaikan masalah ini secara langsung di dalam monolit yang ada. Karena tim berisi 8 orang tidak memiliki pengalaman dengan sistem terdistribusi, mengekstrak modul sekarang akan menciptakan risiko baru dan membahayakan tujuan mengurangi insiden dalam dua kuartal.

claude (pemilih ketiga) keyakinan 76

Perkuat batasan di dalam monolit terlebih dahuluInsiden berasal dari modul lain yang menyentuh tabel penagihan secara langsung. Pemisahan layanan juga akan memaksakan batas itu, tetapi menambah kegagalan jaringan, transaksi terdistribusi, dan pekerjaan operasional baru bagi tim tanpa pengalaman tersebut. Menegakkan API modul dan kepemilikan tabel di dalam monolit memperbaiki penyebabnya lebih cepat, dan menjaga opsi ekstraksi tetap terbuka untuk nanti.

Keputusan Perkuat batasan di dalam monolit terlebih dahulu Jalur bulat 3:0 Biaya $0.014

Biarkan Kirat memutuskan ini: Dalam tinjauan sistematis kami, dapatkah satu proses penyaringan LLM menggantikan penyaring manusia kedua?

kirat_vote bertanya kepada dewan

Dewan telah memutuskan (bulat 3:0): Gunakan LLM sebagai penyaring tambahan; manusia menyelesaikan konflik.

Ketiga posisi, termasuk milik saya, menunjuk ke arah yang sama. Masing-masing disertai alasannya.

Di balik layar

kirat_vote Apa yang dikirim Claude ke Kirat

Pertanyaan: Dalam tinjauan sistematis kami, dapatkah satu proses penyaringan LLM menggantikan penyaring manusia kedua?

DIREKAM 2026-10-13 · KIRAT_VOTE · UPAYA: STANDAR · 1 PUTARAN

Konteks yang dikirim: Penyaringan judul dan abstrak dari sekitar 3.000 catatan untuk tinjauan sistematis dalam penelitian layanan kesehatan, direncanakan untuk publikasi. Protokol saat ini: dua penyaring manusia independen, konflik diselesaikan melalui diskusi. Waktu staf terbatas. Tinjauan mengikuti PRISMA, dan peninjau jurnal akan menanyakan bagaimana penyaringan dilakukan. Melewatkan studi yang relevan (pengecualian palsu) lebih buruk daripada menyertakan studi yang tidak relevan. Opsi: Ya, ganti penyaring manusia kedua · Gunakan LLM sebagai penyaring tambahan; manusia menyelesaikan konflik · Tidak, pertahankan dua penyaring manusia dan tanpa LLM

Hasil dari dewan

gpt-5.6 keyakinan 94

Gunakan LLM sebagai penyaring tambahan; manusia menyelesaikan konflikSatu proses LLM tidak boleh menggantikan penyaringan manusia yang independen ketika pengecualian yang salah merupakan risiko utama: kinerja dapat bervariasi menurut topik, prompt, dan versi model, dan kesalahan dapat bersifat sistematis. Gunakan LLM untuk memprioritaskan catatan atau menandai ketidaksepakatan, tetapi wajibkan penyelesaian konflik oleh manusia dan konfirmasi manusia atas pengecualian. Dokumentasikan model, versi, prompt, sampel validasi, dan alur kerja keputusan untuk pelaporan PRISMA dan reproduksibilitas.

gemini-3.6-flash keyakinan 88

Gunakan LLM sebagai penyaring tambahan; manusia menyelesaikan konflikPendekatan hibrida secara substansial mengurangi beban kerja manusia untuk 3.000 judul dan abstrak, sekaligus mempertahankan ketelitian metodologis yang dibutuhkan PRISMA dan peninjau sejawat. Karena pengecualian yang salah harus dihindari, adanya manusia yang menyelesaikan setiap perbedaan (atau menggunakan pendekatan prompt yang sangat sensitif) memastikan tidak ada studi relevan yang hilang.

claude (pemilih ketiga) keyakinan 70

Gunakan LLM sebagai penyaring tambahan; manusia menyelesaikan konflikPengecualian yang salah adalah kesalahan yang mahal, dan recall LLM dalam penyaringan bervariasi menurut topik dan prompt. Menggantikan manusia kedua menghilangkan pemeriksaan yang menangkap kesalahan tersebut dan sulit dipertahankan di hadapan peninjau jurnal. Menambahkan LLM sebagai penyaring ketiga dan menyelesaikan konflik oleh manusia membuat protokol dapat dipertahankan dan tetap menandai kemungkinan kelalaian.

Keputusan Gunakan LLM sebagai penyaring tambahan; manusia menyelesaikan konflik Jalur bulat 3:0 Biaya $0.019

Dicatat pada 13 Oktober 2026 dengan kirat_vote pada tingkat upaya standar; setiap sesi memakan waktu kurang dari 20 detik dan biaya kurang dari dua sen. Pertanyaan, opsi, dan konteks ditampilkan persis seperti yang dikirim, penalaran secara lengkap. Gemini menjawab empat kali dalam bahasa Jerman dan ChatGPT sekali; jawaban tersebut diterjemahkan di sini. Dalam pertanyaan tingkat gratis, Claude kalah suara 2:1, dan keberatannya tetap tercatat. Nilai keyakinan adalah laporan mandiri masing-masing model.

Lima kutipan kode dari berbagai bidang, masing-masing dikirim persis seperti yang ditampilkan. ChatGPT dan Gemini meninjau secara paralel, Claude menambahkan dua temuan miliknya sendiri, dan setiap temuan diperiksa oleh keluarga model lainnya. Hanya temuan yang terkonfirmasi yang dihitung. Pilih satu.

Minta Kirat meninjau webhook pembayaran Stripe kami untuk keamanan dan kebenaran sebelum kami merilisnya.

kirat_review bertanya kepada dewan

Kirat menemukan 14 masalah terkonfirmasi (4 × kritis, 4 × tinggi, 6 × sedang). Setiap temuan diperiksa silang oleh keluarga model lainnya.

Mulailah dengan yang ada di bagian atas daftar; masing-masing disertai saran perbaikan.

Di balik layar

kirat_review Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_REVIEW · UPAYA: STANDAR · 14 TERKONFIRMASI, 0 DITOLAK · $0.14

Fokus: keamanan dan kebenaran webhook pembayaran

Kode yang dikirim:

// routes/webhooks.js — payment webhook of a solo invoicing SaaS (Node 20, Express 4, Stripe, pg)
const express = require('express');
const { db } = require('../db');
const router = express.Router();

router.post('/webhooks/stripe', express.json(), async (req, res) => {
  const event = req.body;

  if (event.type === 'invoice.paid') {
    const invoice = event.data.object;
    const userId = invoice.metadata.userId;
    await db.query('UPDATE users SET plan = $1, paid_until = $2 WHERE id = $3',
      ['pro', new Date(invoice.period_end * 1000), userId]);
    await db.query('INSERT INTO payments (user_id, amount) VALUES ($1, $2)',
      [userId, invoice.amount_paid / 100]);
  }

  if (event.type === 'customer.subscription.deleted') {
    await db.query("UPDATE users SET plan = 'free' WHERE stripe_customer = '" + event.data.object.customer + "'");
  }

  res.sendStatus(200);
});

module.exports = router;

Hasil dari dewan

  1. kritis Webhook memproses isi permintaan tanpa memeriksa tanda tangan Stripe. Pemanggil eksternal mana pun dapat mengirim peristiwa invoice.paid\ atau customer.subscription.deleted\ palsu dan membuka atau menurunkan tingkat akun pengguna. Parser JSON juga membuang isi mentah yang tidak dimodifikasi yang dibutuhkan verifikasi tanda tangan Stripe. Perbaikan: Gunakan express.raw({ type: 'application/json' })\ untuk rute ini dan panggil stripe.webhooks.constructEvent(req.body, req.headers\['stripe-signature'\], webhookSecret)\ sebelum pemrosesan apa pun. Pastikan tidak ada parser JSON global yang sudah diterapkan pada rute ini sebelumnya; tolak tanda tangan yang tidak valid dengan 400. baris 6 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  2. kritis Validasi tanda tangan webhook Stripe tidak ada. Penyerang dapat mengirim peristiwa webhook palsu sembarang ke endpoint ini untuk menetapkan akun ke Pro tanpa otorisasi atau memanipulasi entri basis data. Perbaikan: Gunakan stripe.webhooks.constructEvent() dengan rahasia webhook Stripe untuk memverifikasi keaslian dan integritas setiap peristiwa. baris 6 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  3. kritis Kerentanan injeksi SQL akibat penggabungan langsung input pengguna (event.data.object.customer) ke dalam string kueri SQL. Perbaikan: Gunakan kueri berparameter seperti pada pernyataan sebelumnya: db.query('UPDATE users SET plan = $1 WHERE stripe_customer = $2', ['free', event.data.object.customer]). baris 18 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  4. kritis Webhook tidak pernah memverifikasi tanda tangan Stripe, dan express.json() membuang isi mentah yang dibutuhkan untuk melakukannya. Siapa pun dapat mengirim POST peristiwa invoice.paid palsu dan meningkatkan akun mana pun ke pro secara gratis. Perbaikan: Gunakan express.raw({ type: 'application/json' }) pada rute ini dan bangun peristiwa dengan stripe.webhooks.constructEvent(req.body, req.headers['stripe-signature'], endpointSecret); tolak permintaan jika gagal. baris 6 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  5. tinggi ID pelanggan dimasukkan langsung ke dalam pernyataan SQL. Nilai seperti ' OR 1=1 --\ dapat memanipulasi klausa WHERE dan menetapkan semua pengguna ke paket gratis; tergantung pada konfigurasi basis data, injeksi SQL lebih lanjut mungkin terjadi. Perbaikan: Parameterkan kueri sepenuhnya: UPDATE users SET plan = 'free' WHERE stripe\_customer = $1\ dengan \[event.data.object.customer\]\. Selain itu, autentikasi peristiwa melalui tanda tangan Stripe. baris 19 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  6. tinggi Tidak ada pemeriksaan idempotensi. Stripe mengirimkan webhook setidaknya sekali dan mencobanya ulang saat timeout atau error. Peristiwa invoice.paid\ yang sama dapat membuat entri pembayaran identik beberapa kali. Perbaikan: Simpan ID peristiwa Stripe atau ID invoice dalam catatan pembayaran, amankan dengan batasan UNIQUE, dan jalankan pemrosesan peristiwa bersama dengan pembayaran secara atomik sebagai insert/upsert. Akui peristiwa yang sudah diproses dengan 200 tanpa mengulangi operasi bisnis. baris 14 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  7. tinggi Handler async\ tidak memiliki penerusan error. Express 4 tidak secara otomatis menangkap promise yang ditolak dari handler rute asinkron. Kesalahan DB atau objek invoice.paid\ yang tidak lengkap karenanya menyebabkan penolakan promise yang tidak tertangani dan, pada Node 20, dapat menghentikan proses alih-alih mengembalikan respons error secara terkendali. Perbaikan: Bungkus handler dalam try/catch\ dan teruskan error ke next(err)\, atau gunakan pembungkus async. Validasi struktur input sebelum mengaksesnya dan, pada kesalahan pemrosesan sementara, kembalikan status 5xx secara terkendali agar Stripe mengirim ulang. baris 6 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  8. tinggi Menggunakan express.json() untuk endpoint webhook membuat isi diurai sebagai JSON terlebih dahulu. Namun, verifikasi tanda tangan Stripe membutuhkan isi mentah yang tidak dimodifikasi. Perbaikan: Gunakan express.raw({ type: 'application/json' }) alih-alih express.json() untuk handler rute webhook Stripe. baris 6 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  9. sedang Pembaruan pengguna dan entri pembayaran adalah dua operasi basis data yang di-commit secara independen. Jika INSERT gagal setelah UPDATE berhasil, pengguna mendapatkan paket Pro meskipun tidak ada catatan pembayaran yang sesuai. Perbaikan: Jalankan kedua operasi bersama dengan penanda idempotensi dalam satu transaksi basis data pada klien yang sama, dan rollback sepenuhnya pada kesalahan apa pun. baris 12 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  10. sedang Pemrosesan tidak memperhitungkan bahwa Stripe dapat mengirimkan peristiwa di luar urutan pembuatannya. invoice.paid\ lama yang tertunda dapat mengatur ulang paid\_until\; customer.subscription.deleted\ yang tertunda dapat mengembalikan pengguna yang sejak itu diaktifkan kembali ke free\. Perbaikan: Rekonsiliasi status langganan saat ini menggunakan ID Stripe yang stabil, misalnya dengan mengambilnya dari Stripe, dan simpan transisi status atau stempel waktu peristiwa terakhir yang diproses. Minimal, hanya perbarui paid\_until\ ke depan, dan jangan menerapkan peristiwa penghapusan secara buta pada status pengguna saat ini. baris 12 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  11. sedang amount\_paid / 100\ mengasumsikan tanpa memeriksa bahwa mata uang memiliki tepat dua tempat desimal. Itu salah untuk JPY, misalnya. Selain itu, mata uang tidak disimpan bersamanya, sehingga jumlah dalam catatan pembayaran tidak memiliki satuan yang tidak ambigu. Perbaikan: Sebaiknya simpan jumlah tanpa perubahan dalam satuan mata uang terkecil bersama dengan invoice.currency\. Jika satuan mata uang utama diperlukan, lakukan konversi berdasarkan eksponen mata uang masing-masing. baris 15 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  12. sedang Penanganan pengecualian tidak ada dalam rute Express 4 asinkron. Pada kesalahan basis data atau bidang yang hilang, ini menyebabkan penolakan promise yang tidak tertangani yang dapat membuat aplikasi crash. Perbaikan: Tambahkan blok try-catch dan teruskan error ke next(err), atau gunakan utilitas seperti express-async-handler. baris 6 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  13. sedang Tidak ada validasi bahwa invoice.metadata.userId ada. Jika metadata atau bidang userId hilang atau undefined, kueri SQL gagal atau beroperasi pada nilai yang tidak valid. Perbaikan: Sebelum menjalankan kueri basis data, periksa secara eksplisit apakah invoice.metadata dan invoice.metadata.userId ada dan valid. baris 10 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  14. sedang Stripe mencoba ulang webhook dan dapat mengirimkan peristiwa yang sama lebih dari sekali. Setiap pengiriman menyisipkan baris pembayaran lain, sehingga laporan pendapatan menghitung ganda. Perbaikan: Simpan event.id (atau id invoice) dengan batasan unik dan lewati peristiwa yang sudah diproses. baris 14 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash

Minta Kirat meninjau plugin impor WooCommerce ini untuk keamanan dan kebenaran.

kirat_review bertanya kepada dewan

Kirat menemukan 21 masalah terkonfirmasi (5 × kritis, 5 × tinggi, 10 × sedang, 1 × rendah). Setiap temuan diperiksa silang oleh keluarga model lainnya.

Mulailah dengan yang ada di bagian atas daftar; masing-masing disertai saran perbaikan.

Di balik layar

kirat_review Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_REVIEW · UPAYA: STANDAR · 21 TERKONFIRMASI, 0 DITOLAK · $0.17

Fokus: keamanan dan kebenaran plugin impor WooCommerce

Kode yang dikirim:

<?php
// erp-import.php — custom plugin: imports the ERP's CSV export into WooCommerce (WordPress 6, WooCommerce 9)
add_action('wp_ajax_erp_import', 'erp_import');
add_action('wp_ajax_nopriv_erp_import', 'erp_import');

function erp_import() {
    global $wpdb;
    $path = $_POST['file'];
    $rows = array_map('str_getcsv', file($path));

    foreach ($rows as $row) {
        [$sku, $name, $price, $stock] = $row;
        $id = $wpdb->get_var("SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = '_sku' AND meta_value = '$sku'");
        if (!$id) continue;
        update_post_meta($id, '_price', $price);
        update_post_meta($id, '_regular_price', $price);
        update_post_meta($id, '_stock', $stock);
        wp_update_post(['ID' => $id, 'post_title' => $name]);
    }
    echo 'Imported ' . count($rows) . ' rows';
    wp_die();
}

Hasil dari dewan

  1. critical Impor dapat diakses secara publik melalui wp\_ajax\_nopriv\_erp\_import\; hook yang terautentikasi juga tidak memiliki pemeriksaan capability dan nonce. Akibatnya, pengguna anonim atau serangan CSRF dapat mengubah nama produk, harga, dan tingkat stok. Perbaikan: Hapus hook nopriv\, periksa capability yang sesuai seperti manage\_woocommerce\ sebelum pemrosesan apa pun, dan amankan permintaan dengan check\_ajax\_referer()\. baris 3 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  2. critical Hook wp_ajax_nopriv_erp_import memberikan akses kepada pengunjung yang tidak terautentikasi ke fungsi impor. Perbaikan: Hapus hook nopriv dan periksa izin menggunakan current_user_can('manage_options'). baris 4 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  3. critical Jalur file dari $_POST['file'] diteruskan ke file() tanpa pemeriksaan, yang memungkinkan path traversal dan pembacaan file sembarang (LFI). Perbaikan: Tangani unggahan file melalui $_FILES, atau validasi secara ketat jalur input terhadap direktori yang diizinkan (misalnya wp_upload_dir()). baris 7 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  4. critical Kerentanan SQL injection, karena $sku dimasukkan langsung ke dalam kueri SQL tanpa sanitasi. Perbaikan: Gunakan prepared statement dengan $wpdb->prepare(). baris 11 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  5. critical Impor didaftarkan untuk wp_ajax_nopriv, dan tidak ada pemeriksaan capability serta tidak ada nonce. Pengunjung mana pun dapat memicunya dan menimpa harga, stok, dan nama produk. Perbaikan: Hapus hook nopriv, periksa current_user_can('manage_woocommerce') dan verifikasi nonce dengan check_ajax_referer() sebelum melakukan apa pun. baris 4 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  6. high Jalur yang diberikan oleh klien diteruskan ke file()\ tanpa pemeriksaan. Ini memungkinkan file lokal apa pun yang dapat dibaca dan – bergantung pada allow\_url\_fopen\ – URL eksternal atau internal untuk diproses, yang memungkinkan akses file yang tidak diinginkan dan SSRF buta. Perbaikan: Jangan terima jalur yang dipilih secara bebas. Gunakan hanya ID unggahan yang diketahui di sisi server, periksa jalur kanonik terhadap direktori impor tetap, dan izinkan hanya file CSV lokal reguler. baris 8 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  7. high $sku\ berasal dari CSV dan diinterpolasi langsung ke SQL. Nilai SKU yang mengandung metakarakter SQL dapat memanipulasi kueri dan, antara lain, memilih post ID mana pun sebagai target pembaruan. Perbaikan: Parameterisasi kueri dengan $wpdb-\>prepare()\, misalnya dengan meta\_value = %s\, atau gunakan fungsi WooCommerce untuk mencari produk berdasarkan SKU. baris 13 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  8. high file()\ memuat seluruh input ke memori, dan array\_map()\ juga membuat array hasil parsing lengkap. Tanpa batas ukuran, sumber daya jarak jauh yang besar atau tak berujung dapat menghabiskan memori, waktu eksekusi, dan worker PHP; keterjangkauan publik memperburuk hal ini. Perbaikan: Batasi ukuran file dan jumlah baris, buka file secara lokal dengan fopen()\ dan proses catatan secara streaming melalui fgetcsv()\. Selain itu, gunakan rate limit atau background job yang terkendali. baris 9 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  9. high Kurangnya perlindungan CSRF (validasi nonce). Perbaikan: Panggil check_ajax_referer() di awal fungsi. baris 6 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  10. high Jalur file berasal langsung dari permintaan dan diteruskan ke file(). Penyerang dapat membaca file apa pun yang dapat dibaca oleh web server, atau URL jarak jauh jika allow_url_fopen aktif. Perbaikan: Terima file yang diunggah melalui wp_handle_upload() atau baca hanya dari satu direktori impor tetap; jangan pernah mengambil jalur dari permintaan. baris 8 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  11. medium Diasumsikan bahwa setiap baris memiliki tepat empat kolom yang dapat digunakan. Baris kosong atau rusak menghasilkan nilai yang hilang, yang menimbulkan peringatan dan dapat secara tidak sengaja mengatur nama, harga, atau stok menjadi nilai kosong. Perbaikan: Sebelum destructuring, periksa jumlah kolom dan field yang wajib, lewati baris kosong, dan tolak catatan yang rusak dengan pesan kesalahan yang jelas. baris 12 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  12. medium Kombinasi file()\ dan str\_getcsv()\ mem-parsing setiap baris fisik secara terpisah. Field CSV yang valid dengan jeda baris di dalamnya karena itu terpecah menjadi beberapa catatan yang rusak. Perbaikan: Baca CSV sebagai stream dengan fgetcsv()\; fungsi ini menangani field multi-baris yang dikutip dengan benar di seluruh batas catatan. baris 9 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  13. medium Harga dan stok disimpan tanpa pemeriksaan sebagai string sembarang. Nilai non-numerik, format desimal yang salah, atau tingkat stok yang tidak diizinkan dapat merusak data produk dan menyebabkan perhitungan yang tidak konsisten. Perbaikan: Validasi harga dan stok sebelum menulis dan normalisasi dengan helper WooCommerce seperti wc\_format\_decimal()\ dan wc\_stock\_amount()\; tolak nilai yang tidak valid atau tidak diizinkan dari sudut pandang bisnis. baris 15 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  14. medium Data WooCommerce diubah langsung sebagai post meta. Akibatnya, status terkait seperti \_stock\_status\, tabel lookup produk, dan mungkin cache tidak tersinkronisasi secara andal dengan harga dan tingkat stok yang baru. Perbaikan: Muat produk melalui wc\_get\_product()\, gunakan metode CRUD seperti set\_regular\_price()\, set\_price()\, dan set\_stock\_quantity()\, atur status stok atau manage\_stock\ sesuai aturan bisnis, lalu panggil save()\. baris 15 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  15. medium Pencarian SKU mempertimbangkan semua post metadata dan tidak memeriksa tipe post maupun apakah ID yang ditemukan benar-benar produk atau variasi WooCommerce. Dengan metadata \_sku\ yang duplikat atau tidak terkait, kecocokan non-deterministik juga diperbarui. Perbaikan: Gunakan wc\_get\_product\_id\_by\_sku()\ lalu validasi hasilnya dengan wc\_get\_product()\ dan tipe produk yang diharapkan; perlakukan SKU duplikat sebagai kesalahan impor. baris 13 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  16. medium Nilai kembalian update\_post\_meta()\ dan wp\_update\_post()\ diabaikan. Impor dapat gagal sebagian atau berhenti, tetapi tetap melaporkan jumlah total baris yang dibaca sebagai berhasil diimpor. Perbaikan: Catat keberhasilan dan kegagalan per produk, gunakan wp\_update\_post(..., true)\, hitung hanya catatan yang benar-benar diperbarui, dan kembalikan respons kesalahan terstruktur. Sediakan background job yang dapat dilanjutkan untuk impor besar. baris 15 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  17. medium Untuk setiap baris CSV, setidaknya satu kueri lookup dan beberapa operasi tulis individual dieksekusi secara sinkron. Impor besar karena itu menyebabkan banyak round trip database, dapat mengalami timeout permintaan dan meninggalkan katalog yang hanya diperbarui sebagian. Perbaikan: Jalankan impor dalam batch terbatas sebagai proses latar belakang, selesaikan SKU secara kolektif, dan simpan progres serta status lanjutan. baris 11 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  18. medium file() membaca seluruh file ke memori sekaligus, yang menyebabkan kesalahan kehabisan memori pada file CSV besar. Perbaikan: Streaming file baris demi baris melalui fopen() dan fgetcsv(). baris 8 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  19. medium Destructuring array mengasumsikan bahwa setiap baris berisi setidaknya 4 elemen; jika tidak, peringatan PHP atau kesalahan indeks yang tidak diinisialisasi akan terjadi. Perbaikan: Sebelum membongkar, periksa dengan count($row) apakah kolom yang cukup tersedia. baris 10 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  20. medium Kueri database dan pembaruan post dilakukan secara individual dalam loop (masalah N+1), yang memperlambat waktu eksekusi secara signifikan. Perbaikan: Bagi impor menjadi batch dan gabungkan kueri/pembaruan. baris 11 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  21. low Kesalahan dari file()\ tidak diperiksa. Untuk jalur yang hilang, tidak dapat dibaca, atau tidak didukung, file()\ mengembalikan false\, setelah itu array\_map()\ dapat melempar TypeError\ pada versi PHP saat ini. Perbaikan: Periksa secara eksplisit pembukaan dan pembacaan, jangan gunakan peringatan PHP sebagai alur kontrol, dan pada kesalahan kembalikan respons HTTP atau wp\_send\_json\_error()\ yang sesuai. baris 9 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash

Minta Kirat meninjau alur pemesanan dan pembayaran pada halaman pemesanan toko roti untuk keamanan dan kebenaran.

kirat_review bertanya kepada dewan

Kirat menemukan 14 masalah terkonfirmasi (4 × critical, 4 × high, 5 × medium, 1 × low). Setiap temuan diperiksa silang oleh keluarga model lainnya.

Mulai dari yang ada di bagian atas daftar; masing-masing disertai saran perbaikan.

Di balik layar

kirat_review Apa yang dikirim Claude ke Kirat

TERCATAT 2026-10-13 · KIRAT_REVIEW · EFFORT: STANDARD · 14 TERKONFIRMASI, 0 DITOLAK · $0.11

Fokus: keamanan dan kebenaran alur pemesanan dan pembayaran

Kode yang dikirim:

// routes/order.js — order endpoint of the bakery's ordering page (Node 20, Express 4, pg)
const express = require('express');
const { pool } = require('../db');
const { sendConfirmation } = require('../mail');
const router = express.Router();

router.post('/order', async (req, res) => {
  const { cakeId, pickupDate, name, email, price, note } = req.body;

  const cake = await pool.query(\`SELECT * FROM cakes WHERE id = ${cakeId}\`);
  if (!cake.rows.length) return res.status(404).send('Unknown cake');

  const order = await pool.query(
    'INSERT INTO orders (cake_id, pickup_date, name, email, amount, note) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id',
    [cakeId, pickupDate, name, email, price, note]
  );

  sendConfirmation(email, order.rows[0].id);
  res.redirect(\`/pay?order=${order.rows[0].id}&amount=${price}\`);
});

module.exports = router;

Hasil dari dewan

  1. critical cakeId diinterpolasi langsung ke dalam string SQL. Penyerang dapat menyuntikkan ekspresi SQL atau pernyataan tambahan dan dengan demikian membaca atau memodifikasi data, atau membebani database. Perbaikan: Parameterisasi kueri ini juga, misalnya SELECT... FROM cakes WHERE id = $1\ dengan \[cakeId\]\, dan periksa juga cakeId untuk tipe yang diharapkan. baris 10 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  2. critical Kerentanan SQL injection akibat interpolasi template-string langsung dari cakeId dalam kueri SQL. Perbaikan: Gunakan kueri SQL berparameter: pool.query('SELECT * FROM cakes WHERE id = $1', [cakeId]). baris 9 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  3. critical Manipulasi harga di sisi klien dimungkinkan. Harga diambil dari req.body dan langsung disimpan serta diproses. Perbaikan: Baca harga di sisi server dari database (cake.rows[0].price) dan jangan percaya nilai yang dikirim oleh klien. baris 8 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  4. critical cakeId dari body permintaan diinterpolasi ke dalam string SQL: SQL injection. Perbaikan: Gunakan kueri berparameter: SELECT * FROM cakes WHERE id = $1. baris 10 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  5. high Jumlah yang disimpan dan diteruskan ke alur pembayaran sepenuhnya berasal dari req.body.price\. Pelanggan dapat memasukkan jumlah yang dimanipulasi, negatif, atau sangat kecil untuk kue apa pun. Perbaikan: Tentukan harga secara eksklusif di sisi server dari kue yang dipilih atau versi harga yang tidak dapat diubah. Buat sesi pembayaran di sisi server dengan jumlah ini di penyedia pembayaran dan verifikasi kembali jumlah yang diharapkan di sisi server saat konfirmasi pembayaran. baris 16 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  6. high Pesanan dibuat dan konfirmasi dikirim sebelum pembayaran yang berhasil diverifikasi. Transaksi yang dibatalkan atau sengaja tidak dibayar karenanya tampak sebagai pesanan terkonfirmasi dan dapat dibuat sesuka hati. Perbaikan: Buat pesanan awalnya dengan status seperti pending\_payment\. Hanya beralih ke paid\ setelah notifikasi penyedia pembayaran yang terautentikasi dan diproses secara idempoten, lalu kirim konfirmasi atau picu produksi atau reservasi. baris 19 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  7. high Penanganan kesalahan yang hilang pada rute Express 4 async. Kesalahan database atau runtime menyebabkan promise rejection yang tidak tertangani. Perbaikan: Gunakan blok try/catch dan teruskan kesalahan dengan next(err), atau gunakan paket seperti express-async-errors. baris 8 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  8. high Jumlah diambil dari klien (harga di body permintaan), sehingga pelanggan dapat menetapkan harganya sendiri. Perbaikan: Baca harga dari baris cakes di server dan abaikan nilai apa pun dari klien. baris 15 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  9. medium Handler async tidak memiliki penerusan kesalahan. Express 4 tidak secara otomatis menangani promise yang ditolak dari handler async\; kesalahan database atau kesalahan email sinkron karenanya dapat menyebabkan permintaan tanpa jawaban dan rejection yang tidak tertangani. Perbaikan: Bungkus handler dalam try/catch\ dan teruskan kesalahan ke next(err)\, atau gunakan pembungkus async yang mapan. Selain itu, konfigurasikan penanganan kesalahan terpusat. baris 7 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  10. medium Hasil dari sendConfirmation\ tidak di-await maupun ditangani untuk kesalahan dengan cara lain. Promise rejection dapat tetap tidak tertangani; pada saat yang sama, klien sudah menerima respons sukses meskipun pengiriman email mungkin telah gagal. Perbaikan: Lakukan pengiriman setelah pembayaran terkonfirmasi melalui outbox persisten atau antrean pekerjaan dengan percobaan ulang. Minimal, await promise tersebut dan catat atau tangani kesalahan secara terkendali. baris 19 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  11. medium Tidak ada perlindungan idempotensi. Percobaan ulang browser, klik ganda, atau percobaan ulang jaringan masing-masing membuat pesanan baru dan mungkin beberapa konfirmasi atau upaya pembayaran. Perbaikan: Terima kunci idempotensi atau ID sesi checkout, amankan dengan batasan unik, dan kembalikan pesanan yang sudah ada pada percobaan ulang. baris 13 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  12. medium pickupDate, name, email, price, dan note diproses tanpa validasi bisnis atau sintaksis. Ini berarti, misalnya, tanggal pengambilan yang sudah lewat atau tidak valid, data pelanggan yang hilang, dan nilai bidang yang tidak sesuai dapat disimpan; kesalahan database juga hanya terjadi terlambat dan tidak terkendali. Perbaikan: Gunakan skema permintaan dengan tipe, bidang wajib, batas panjang, dan format yang dinormalisasi. Periksa tanggal pengambilan terhadap zona waktu, waktu tunggu, dan aturan jam buka atau kapasitas yang diizinkan; jangan terima harga sebagai input klien. baris 8 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  13. medium Panggilan async ke sendConfirmation tidak di-await maupun ditangkap untuk kesalahan. Perbaikan: Letakkan await sebelum sendConfirmation dan tangani kemungkinan kesalahan saat mengirim email. baris 17 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  14. low Validasi input yang tidak lengkap untuk bidang seperti email, pickupDate, name, dan note. Perbaikan: Terapkan validasi skema (misalnya dengan Zod atau express-validator) sebelum memproses data permintaan. baris 8 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6

Minta Kirat memeriksa fungsi penagihan ini untuk kebenaran dan integritas data.

kirat_review bertanya kepada dewan

Kirat menemukan 16 masalah terkonfirmasi (1 × critical, 11 × high, 3 × medium, 1 × low). Setiap temuan diperiksa silang oleh keluarga model lainnya.

Mulai dari yang ada di bagian atas daftar; masing-masing disertai saran perbaikan.

Di balik layar

kirat_review Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_REVIEW · EFFORT: STANDARD · 16 TERKONFIRMASI, 0 DITOLAK · $0.14

Fokus: kebenaran dan integritas data dari fungsi penagihan

Kode yang dikirim:

// billing/applyCredit.ts — billing module in the monolith (TypeScript, node-postgres)
import { pool } from '../db';

export async function applyCredit(customerId: string, invoiceId: string, creditCents: number) {
  const inv = await pool.query('SELECT total_cents, status FROM invoices WHERE id = $1', [invoiceId]);
  const balance = await pool.query('SELECT credit_cents FROM customers WHERE id = $1', [customerId]);

  const available = balance.rows[0].credit_cents;
  if (creditCents > available) throw new Error('Not enough credit');

  const newTotal = inv.rows[0].total_cents - creditCents;
  await pool.query('UPDATE invoices SET total_cents = $1 WHERE id = $2', [newTotal, invoiceId]);
  await pool.query('UPDATE customers SET credit_cents = credit_cents - $1 WHERE id = $2', [creditCents, customerId]);

  if (newTotal <= 0) {
    await pool.query("UPDATE invoices SET status = 'paid' WHERE id = $1", [invoiceId]);
  }
  return newTotal * 1.19 / 100;
}

Hasil dari dewan

  1. critical Transaksi database dan penguncian baris tidak ada. Dengan permintaan paralel, kondisi balapan (misalnya pembelanjaan kredit ganda) dan pembaruan yang tidak lengkap jika terjadi kesalahan dapat terjadi. Perbaikan: Gunakan klien dari pool dengan BEGIN/COMMIT, dan gunakan SELECT FOR UPDATE untuk mengunci dan memperbarui baris secara atomik. baris 5 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  2. high Ketiga pembaruan terkait tidak dijalankan dalam transaksi database. Jika pendebitan kredit pelanggan atau perubahan status gagal, faktur mungkin sudah dikurangi tanpa kredit telah ditagih dengan benar atau status telah ditetapkan. Perbaikan: Dapatkan klien khusus dari pool dan jalankan semua pemeriksaan dan pembaruan antara BEGIN dan COMMIT; gunakan ROLLBACK pada setiap kesalahan. baris 11 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  3. high Faktur pertama-tama dibaca dan kemudian ditimpa dengan nilai absolut yang dihitung. Dua panggilan paralel dapat membaca nilai awal yang sama dan kemudian saling menimpa; kedua pendebitan kredit tetap terjadi, sementara hanya satu kredit yang tetap terlihat sepenuhnya di faktur. Perbaikan: Kunci faktur yang terdampak dalam transaksi yang sama dengan SELECT... FOR UPDATE, atau ubah jumlah secara atomik melalui UPDATE... SET total_cents = total_cents - $1 dengan kondisi yang sesuai. baris 4 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  4. high Pemeriksaan dan pendebitan kredit pelanggan tidak atomik. Panggilan paralel dapat sama-sama melihat cakupan tersedia yang sama dan kemudian mengurangi kredit di bawah nol. Perbaikan: Kunci catatan pelanggan secara transaksional atau gunakan UPDATE bersyarat, seperti UPDATE customers SET credit_cents = credit_cents - $1 WHERE id = $2 AND credit_cents >= $1 RETURNING credit_cents, dan pastikan tepat satu baris dikembalikan. baris 8 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  5. high Tidak diperiksa apakah faktur milik pelanggan yang ditentukan. Akibatnya, kredit seorang pelanggan dapat diterapkan ke faktur mana pun yang diidentifikasi melalui invoiceId. Perbaikan: Kueri dan perbarui faktur dan pelanggan melalui relasi kepemilikan, misalnya dengan WHERE invoices.id = $1 AND invoices.customer_id = $2; batalkan jika tidak ada yang cocok. baris 4 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  6. high Kredit yang akan diterapkan tidak dibatasi pada jumlah faktur yang terbuka. Jika creditCents lebih besar dari total_cents, jumlah faktur negatif disimpan dan kredit pelanggan berlebih terpakai. Perbaikan: Hanya izinkan jumlah hingga nilai faktur yang terbuka, atau tentukan jumlah yang benar-benar digunakan sebagai min(creditCents, total_cents) dan debit hanya jumlah ini dari kredit pelanggan. baris 10 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  7. high Nilai negatif, bukan bilangan bulat, atau yang tidak dapat direpresentasikan dengan aman tidak ditolak. Secara khusus, nilai creditCents negatif menambah jumlah faktur dan pada saat yang sama, melalui pengurangan nilai negatif, kredit pelanggan. Perbaikan: Wajibkan Number.isSafeInteger(creditCents) && creditCents > 0 sebelum akses database apa pun; perlakukan jumlah moneter secara konsisten sebagai nilai sen bilangan bulat. baris 8 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  8. high Status faktur yang dibaca sepenuhnya diabaikan. Kredit karena itu juga dapat diterapkan ke faktur yang sudah dibayar, dibatalkan, atau tidak dapat diubah lagi; faktur yang sudah dibayar dapat menjadi negatif akibatnya. Perbaikan: Tentukan secara eksplisit status awal yang diizinkan dan periksa secara atomik dalam kondisi UPDATE, misalnya AND status = 'open'. Jika tidak ada yang cocok, batalkan operasi. baris 4 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  9. high Akses ke balance.rows[0] dan inv.rows[0] tanpa pemeriksaan sebelumnya. Jika pelanggan atau faktur tidak ditemukan, aplikasi crash dengan TypeError yang tidak tertangani. Perbaikan: Periksa inv.rows.length dan balance.rows.length sebelum akses dan lemparkan pesan kesalahan yang eksplisit. baris 8 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  10. high Validasi creditCents untuk nilai negatif tidak ada. Nilai negatif melewati pemeriksaan (creditCents > available) dan menyebabkan penyesuaian kredit atau faktur yang salah. Perbaikan: Pastikan bahwa creditCents adalah bilangan bulat positif yang lebih besar dari 0. baris 9 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  11. high Pembacaan dan ketiga pembaruan berjalan di luar transaksi dan tanpa penguncian baris. Dua panggilan bersamaan dapat sama-sama lolos pemeriksaan kredit dan membelanjakan kredit yang sama dua kali, dan crash di antara pembaruan membuat faktur dan saldo kredit tidak konsisten. Perbaikan: Jalankan semuanya dalam satu transaksi pada satu klien, kunci baris dengan SELECT... FOR UPDATE, dan commit hanya setelah semua pembaruan berhasil. baris 5 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  12. high Fungsi tidak pernah memeriksa bahwa faktur milik pelanggan atau bahwa faktur masih terbuka. Kredit dari satu pelanggan dapat diterapkan ke faktur pelanggan lain, atau ke faktur yang sudah dibayar. Perbaikan: Pilih faktur dengan WHERE id = $1 AND customer_id = $2 AND status = 'open' dan gagal jika tidak ada baris yang dikembalikan. baris 11 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  13. medium Keberadaan faktur dan pelanggan tidak diperiksa. Untuk ID yang tidak dikenal, akses ke rows[0] menyebabkan kesalahan runtime alih-alih kesalahan bisnis yang terkendali; selain itu, kedua kueri dijalankan tanpa perlu sebelum hal ini terlihat. Perbaikan: Periksa rowCount atau rows.length untuk kedua kueri dan lemparkan kesalahan not-found yang terdefinisi; integrasikan pemeriksaan ke dalam transaksi dan, jika memungkinkan, ke dalam kueri relasional. baris 4 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  14. medium Nilai kembalian tidak sesuai dengan jumlah sen yang disimpan maupun dengan konversi sederhana ke mata uang utama: nilai tersebut menambahkan 19 persen secara tetap dan menggunakan aritmetika floating-point. Akibatnya, pemanggil dapat menerima nilai yang berbeda, dalam hal pajak dan pembulatan, dari saldo faktur tersisa yang sebenarnya disimpan. Perbaikan: Kembalikan jumlah tersisa dalam sen tanpa perubahan, atau tentukan nilai kembalian yang bertipe jelas. Jika perhitungan pajak diperlukan karena alasan bisnis, ambil tarif pajak dan aturan pembulatan dari data faktur dan hitung dengan aritmetika bilangan bulat atau desimal. baris 17 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  15. medium Penggunaan aritmetika floating-point IEEE 754 (newTotal * 1.19 / 100) untuk perhitungan keuangan. Hal ini menyebabkan kesalahan presisi dan pembulatan. Perbaikan: Hitung secara konsisten dalam sen dengan bilangan bulat (BigInt/Math.round), atau gunakan pustaka untuk aritmetika desimal eksak. baris 18 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  16. low Perintah UPDATE terpisah untuk status faktur menyebabkan perjalanan pulang-pergi database yang tidak perlu. Perbaikan: Gabungkan pembaruan total_cents dan status menjadi satu kueri UPDATE. baris 12 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6

Minta Kirat memeriksa skrip analisis penyaringan untuk tinjauan sistematis kami dari segi kebenaran.

kirat_review bertanya kepada dewan

Kirat menemukan 11 masalah terkonfirmasi (6 × high, 4 × medium, 1 × low). Setiap temuan diperiksa silang oleh keluarga model lainnya.

Mulai dari yang ada di bagian atas daftar; masing-masing disertai saran perbaikan.

Di balik layar

kirat_review Apa yang dikirim Claude ke Kirat

TERCATAT 2026-10-13 · KIRAT_REVIEW · EFFORT: STANDARD · 11 TERKONFIRMASI, 0 DITOLAK · $0.09

Fokus: kebenaran analisis penyaringan untuk tinjauan sistematis

Kode yang dikirim:

# screening/agreement.py — compares two screeners' include/exclude decisions (Python 3.12, pandas)
import pandas as pd

a = pd.read_csv('screener_a.csv')   # columns: record_id, decision ('include'/'exclude')
b = pd.read_csv('screener_b.csv')

merged = a.merge(b, on='record_id', suffixes=('_a', '_b'))

agree = (merged.decision_a == merged.decision_b).mean()
p_inc_a = (merged.decision_a == 'include').mean()
p_inc_b = (merged.decision_b == 'include').mean()
expected = p_inc_a * p_inc_b + (1 - p_inc_a) * (1 - p_inc_b)
kappa = (agree - expected) / (1 - expected)

conflicts = merged[merged.decision_a != merged.decision_b]
excluded = merged[merged.decision_a == 'exclude']

print(f'Records screened: {len(a)}')
print(f"Cohen's kappa: {kappa:.2f}")
excluded.record_id.to_csv('excluded.csv', index=False)
conflicts.to_csv('conflicts.csv', index=False)

Hasil dari dewan

  1. tinggi Inner join default menghapus semua nilai record_id yang hanya muncul di salah satu dari dua file. Kappa dan konflik karenanya hanya dihitung untuk irisan, tanpa membuat penyaringan yang hilang terlihat. Pada saat yang sama, "Records screened" di baris 18 melaporkan panjang a, bukan irisan yang sebenarnya dianalisis. Perbaikan: Gunakan outer join dengan indikator merge, bandingkan himpunan ID secara eksplisit, dan laporkan keputusan yang hilang secara terpisah atau perlakukan sebagai kesalahan data. Untuk setiap metrik, keluarkan penyebut yang sebenarnya digunakan. baris 7 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  2. tinggi Keunikan record_id tidak diperiksa. ID duplikat menyebabkan produk Cartesian many-to-many selama merge dan membobot studi individual beberapa kali, yang mendistorsi kesepakatan, prevalensi, kappa, dan file keluaran. Perbaikan: Sebelum merge, periksa record_id di kedua file untuk non-nullness dan keunikan, dan hentikan jika ada duplikat. Selain itu, gunakan merge(..., validate='one_to_one'). baris 7 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  3. tinggi Nilai keputusan tidak divalidasi. Nilai yang hilang, salah ketik, huruf besar/kecil, atau kategori tambahan secara implisit diperlakukan seperti "exclude" saat prevalensi include dihitung, sementara kesepakatan yang diamati membandingkan nilai secara persis. Perhitungan karenanya tidak lagi sesuai dengan Cohen's kappa biner dan dapat menghasilkan hasil yang kontradiktif. Perbaikan: Normalisasi decision dengan cara yang terkendali sebelum analisis dan pastikan setiap nilai tepat 'include' atau 'exclude'. Tangani nilai yang hilang atau tidak dikenal secara terpisah sebagai kesalahan data atau penyaringan yang tidak lengkap. baris 9 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  4. tinggi excluded berisi semua catatan yang dikecualikan oleh screener A, termasuk konflik di mana screener B memutuskan "include". Catatan tersebut karenanya ditulis ke excluded.csv dan conflicts.csv. Jika excluded.csv dimaksudkan untuk mewakili hit yang akhirnya dikecualikan, konflik yang belum terselesaikan dapat keliru dihapus dari tinjauan. Perbaikan: Tanpa aturan presedensi yang terdokumentasi, pilih hanya pengecualian yang cocok, yaitu (decision_a == 'exclude') & (decision_b == 'exclude'). Simpan konflik secara eksklusif di conflicts.csv hingga keputusan konsensus dibuat. baris 16 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  5. tinggi Penyaringan studi yang dikecualikan tidak tepat: 'excluded' hanya memperhitungkan keputusan screener A ('merged.decision_a == "exclude"'). Jika ada konflik (screener A mengecualikan, screener B menyertakan), studi tersebut keliru dihitung sebagai dikecualikan. Perbaikan: Ekspor pengecualian hanya jika kedua screener secara konsisten memilih 'exclude' (misalnya '(merged.decision_a == "exclude") & (merged.decision_b == "exclude")'), atau tunggu hingga konflik terselesaikan. baris 16 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  6. tinggi excluded.csv berisi setiap catatan yang dikecualikan oleh screener A, termasuk konflik di mana screener B menyertakannya. Catatan tersebut dihapus sebelum diskusi konflik, yang justru merupakan pengecualian keliru yang harus dihindari oleh protokol. Perbaikan: Kecualikan hanya catatan yang dikecualikan oleh kedua screener: merged[(merged.decision_a == 'exclude') & (merged.decision_b == 'exclude')]; kirim setiap konflik ke penyelesaian terlebih dahulu. baris 16 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  7. sedang Jika kedua screener hanya menggunakan kategori yang sama, expected sama dengan 1 dan penyebut kappa sama dengan 0. Hasilnya menjadi NaN atau dapat menghasilkan peringatan pembagian dengan nol; keluaran yang diformat "nan" tidak menjelaskan bahwa kappa secara matematis tidak terdefinisi. Irisan yang dianalisis kosong juga menghasilkan metrik NaN yang tidak bermakna. Perbaikan: Sebelum pembagian, periksa apakah ada keputusan valid yang berpasangan sama sekali dan apakah 1 - expected lebih besar dari 0. Dalam kasus degenerasi, laporkan kappa secara eksplisit sebagai "tidak terdefinisi" dan laporkan frekuensi yang mendasarinya. baris 13 · ditemukan oleh gpt-5.6 · dikonfirmasi oleh gemini-3.6-flash
  8. sedang Kemungkinan pembagian dengan nol dalam Cohen's kappa jika nilai peluang yang diharapkan 'expected' sama dengan 1 (misalnya jika kedua screener memilih kategori yang sama untuk 100% catatan). Perbaikan: Sebelum perhitungan, tangkap apakah '1 - expected == 0' dan dalam kasus tersebut tetapkan nilai yang terdefinisi (misalnya 1.0 atau NaN). baris 12 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  9. sedang Pembuangan catatan secara diam-diam oleh inner join default. Jika screener A dan screener B menilai himpunan 'record_id' yang berbeda, ketidaksesuaian dalam studi yang diproses tidak dilaporkan. Selain itu, 'len(a)' dalam keluaran konsol kemudian tidak sesuai dengan jumlah studi yang sebenarnya cocok. Perbaikan: Periksa apakah 'len(a) == len(b) == len(merged)' berlaku, atau lakukan outer join untuk secara eksplisit menunjukkan catatan yang dinilai tidak lengkap. baris 7 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6
  10. sedang Inner merge secara diam-diam membuang catatan yang hanya diputuskan oleh satu screener, dan jumlah yang dicetak menggunakan len(a). Catatan yang tidak disaring hilang dari kesepakatan maupun angka PRISMA. Perbaikan: Merge dengan how='outer', indicator=True, dan gagal atau laporkan ketika ada catatan yang tidak memiliki keputusan dari salah satu screener. baris 7 · ditemukan oleh claude · dikonfirmasi oleh gpt-5.6, gemini-3.6-flash
  11. rendah Sanitasi input dan penanganan nilai yang hilang pada kolom 'decision' tidak ada. Huruf besar/kecil, spasi, atau nilai NaN menyebabkan perbandingan yang tidak tepat. Perbaikan: Bersihkan nilai kolom sebelum perbandingan (misalnya dengan '.str.strip().str.lower()') dan pastikan keamanan tipe data. baris 9 · ditemukan oleh gemini-3.6-flash · dikonfirmasi oleh gpt-5.6

Ditampilkan: setiap temuan yang dikonfirmasi beserta perbaikannya, sebagaimana ditulis oleh para anggota; penalaran para verifikator dipersingkat menjadi putusan mereka. Duplikat tidak digabungkan, sehingga satu masalah dapat muncul lebih dari sekali ketika beberapa anggota melaporkannya. Kode, fokus, dan temuan Claude sendiri dikirim dalam bahasa Inggris; temuan yang ditulis para anggota dalam bahasa Jerman diterjemahkan di sini.

Lima ringkasan ide dari bidang yang berbeda. ChatGPT dan Gemini bekerja dalam tiga jalur, Claude menambahkan satu ide, dan kedua anggota menilai setiap ide secara anonim (masing-masing 1–10, hingga 20 poin). Pilih satu.

Dua posting blog saya mendapat peringkat di Google, tetapi sedikit pembaca yang memulai uji coba. Curahkan ide bersama Kirat.

kirat_brainstorm bertanya kepada dewan

Dewan menghasilkan 14 ide dan menilai masing-masing secara anonim. Tiga teratas:

  1. Ganti hitungan 14 hari dengan tiga pengiriman nyata (18/20 poin)
  2. Selesaikan tugas di dalam artikel (17/20 poin)
  3. Ubah artikel penagihan menjadi konsol pemulihan (17/20 poin)

Di balik layar

kirat_brainstorm Apa yang dikirim Claude kepada Kirat

TERCATAT 2026-10-13 · KIRAT_BRAINSTORM · UPAYA: STANDAR · 14 IDE · 1 PUTARAN · $0.11

Topik: Ide bagi pengembang solo untuk mengubah lebih banyak pembaca dari dua posting blog yang mendapat peringkat di Google menjadi pendaftaran uji coba untuk alat penagihan bagi freelancer

Konteks yang dikirim: Alat penagihan untuk freelancer, USD 19 per bulan, uji coba gratis 14 hari, 30 pelanggan berbayar setelah 5 bulan. Pendaftaran sebagian besar berasal dari dua posting blog yang mendapat peringkat di Google (cara menulis faktur freelance; cara menagih pembayaran yang terlambat). Sekitar 12% uji coba berkonversi. Pengembang memiliki pekerjaan tetap dan sekitar 10 jam seminggu untuk produk. WAJIB: tanpa iklan berbayar. WAJIB: paling banyak 3 jam seminggu untuk ini.

Hasil dari dewan

  1. 1 Ganti hitungan 14 hari dengan tiga pengiriman nyata gpt-5.6 · rule breaker · 18/20 poin (9 + 9) Uji trial yang berakhir setelah tiga invoice terkirim atau tiga penagihan pembayaran, bukan setelah 14 hari kalender. Ini sengaja melanggar asumsi lunak bahwa trial berbatas waktu itu tepat: freelancer mungkin tidak menerbitkan invoice dalam jendela dua minggu yang arbitrer, sehingga trial saat ini bisa kedaluwarsa sebelum produk membuktikan nilainya. Biarkan paket bulanan $19 tidak berubah dan bandingkan konversi dari aktivasi ke berbayar per kohort.
  2. 2 Selesaikan tugas di dalam artikel gpt-5.6 · within brief · 17/20 poin (9 + 8) Sematkan pembuat invoice kecil di “cara menulis invoice freelance”: pembaca memasukkan klien, jumlah, tanggal jatuh tempo, dan syarat pembayaran, lalu melihat pratinjau jadi. “Kirim atau simpan invoice ini” membuat trial dengan detail tersebut sudah terisi, menghilangkan jarak antara belajar dan melakukan. Bangun dalam irisan mingguan maksimal tiga jam, lalu jaga pemeliharaan mendekati nol.
  3. 3 Ubah artikel penagihan menjadi konsol pemulihan gpt-5.6 · neighbor · 17/20 poin (9 + 8) Sebagai substitusi satu langkah dari pembuat invoice tersemat, biarkan pembaca memasukkan jumlah yang telat dan tanggal jatuh tempo untuk menghasilkan urutan penagihan tiga pesan bertanggal. Memulai trial menyimpan data debitur, menjadwalkan pesan, dan membuka draf pertama yang siap dikirim. Ini mempertahankan pola terkuat—output berguna sebelum signup—sekaligus sesuai dengan maksud artikel kedua.
  4. 4 Letakkan momen konversi di kalender debitur gpt-5.6 · within brief · 16/20 poin (7 + 9) Tawarkan file .ics yang dihasilkan di artikel pembayaran terlambat dengan pengingat untuk tanggal jatuh tempo dan tindak lanjut yang meningkat pada hari 1, 7, dan 14. Setiap acara kalender berisi deep link yang membuka alur penagihan relevan dengan tanggal sudah terisi, membawa pembaca kembali saat masalahnya nyata, bukan saat mereka hanya sedang riset. Ini tidak memerlukan penangkapan email dan dapat berjalan tanpa pengawasan.
  5. 5 Paket gratis permanen untuk satu klien alih-alih periode trial gemini-3.6-flash · rule breaker · 16/20 poin (8 + 8) Ide ini melanggar batasan lunak trial 14 hari dan menggantinya dengan paket freemium untuk tepat satu klien aktif. Freelancer menggunakan produk secara gratis permanen untuk klien pertama mereka dan meningkat mulus ke tarif tetap 19 dolar begitu klien kedua ditambahkan.
  6. 6 Arahkan pembaca berdasarkan masalah langsung gpt-5.6 · within brief · 14/20 poin (8 + 6) Ganti banner trial generik dengan tiga pilihan inline seperti “Saya butuh invoice pertama,” “Saya menerbitkan invoice berulang,” dan “Klien sudah telat.” Setiap pilihan membuka status onboarding yang sesuai, bukan homepage yang sama, dan ID bagian artikel dapat memilih default yang masuk akal. Ukur aktivasi trial yang selesai, bukan hanya klik CTA, dan uji satu rute per minggu.
  7. 7 Terbitkan tiga makeover invoice forensik gpt-5.6 · within brief · 14/20 poin (8 + 6) Dengan izin, ubah tiga invoice pelanggan yang dianonimkan menjadi studi kasus before-and-after statis yang menunjukkan persis apa yang berubah dan mengapa. Sisipkan setiap makeover di samping saran relevan dalam artikel peringkat, dengan CTA yang membuka struktur terkoreksi yang sama sebagai template trial yang dapat diedit. Bukti spesifik dari basis pelanggan kecil bisa lebih kredibel daripada testimoni luas.
  8. 8 Biarkan pembaca membawa progres antar kedua artikel gpt-5.6 · within brief · 14/20 poin (7 + 7) Simpan mata uang, tahap invoice, dan tanggal jatuh tempo pilihan pembaca secara lokal di browser, lalu gunakan status itu saat mereka berpindah antara kedua artikel. Seseorang yang telah membuat rencana invoice nanti dapat melihat prompt kontekstual seperti “Invoice Anda sekarang telat 3 hari—buka tindak lanjut yang sudah disiapkan,” dengan onboarding trial sudah terisi. Ini menciptakan perjalanan dua artikel yang ringan tanpa memerlukan akun atau produksi konten berkelanjutan.
  9. 9 Konfigurator surat pengingat interaktif gemini-3.6-flash · within brief · 14/20 poin (7 + 7) Tambahkan generator untuk surat pengingat pembayaran yang meningkat ke artikel tentang menindaklanjuti pembayaran terlambat. Setelah teks dimasukkan, template dihasilkan, digabungkan dengan CTA untuk menyiapkan pengingat pembayaran otomatis untuk invoice mendatang di akun trial.
  10. 10 Magic link kirim instan tanpa registrasi sebelumnya gemini-3.6-flash · neighbor · 14/20 poin (8 + 6) Mutasi dari generator dalam konten: pembaca memasukkan detail invoice langsung di artikel blog dan mengklik Kirim invoice sekarang. Di latar belakang, sistem membuat akun trial secara mulus dan mengirim email langsung; kata sandi baru diatur setelahnya.
  11. 11 Generator invoice langsung di artikel blog gemini-3.6-flash · within brief · 13/20 poin (6 + 7) Sematkan alat formulir interaktif sederhana langsung di artikel tentang menulis invoice. Pembaca mengetik detail invoice mereka dan dapat mengunduh PDF jadi segera dan gratis. Tombol menonjol menawarkan untuk mengirim invoice secara digital dengan satu klik dan melacak status pembayaran di akun trial 14 hari.
  12. 12 Pengingat bayar-per-pakai sekali bayar alih-alih langganan bulanan gemini-3.6-flash · rule breaker · 13/20 poin (6 + 7) Ide ini melanggar batasan lunak model langganan SaaS murni sebesar 19 dolar per bulan. Dengan biaya sekali bayar 5 dolar, pembaca artikel pembayaran terlambat dapat meminta surat pengingat yang sah secara hukum termasuk tautan pelacakan dikirim, dengan biaya dikreditkan penuh jika mereka kemudian mengambil langganan.
  13. 13 Template yang terbuka di alat claude · within brief · 11/20 poin (6 + 5) Tawarkan template invoice dari artikel sebagai invoice siap pakai di alat: satu klik membuka akun trial yang sudah terisi alih-alih unduhan file.
  14. 14 Exit intent spesifik masalah dengan urutan email otomatis gemini-3.6-flash · within brief · 8/20 poin (4 + 4) Terapkan popup exit-intent di artikel pembayaran terlambat yang menawarkan template email darurat untuk klien yang telat membayar dengan imbalan alamat email. Urutan email otomatis tiga bagian kemudian secara pasif menjelaskan bagaimana alur kerja otomatis mengurangi pembayaran terlambat, dan menautkan ke akun trial.

Brainstorm dengan Kirat: bagaimana kita mengubah pembangunan ulang toko sekali jadi ini menjadi paket perawatan yang benar-benar diinginkan klien?

kirat_brainstorm bertanya kepada dewan

Dewan menghasilkan 15 ide dan menilai masing-masing secara anonim. Tiga teratas:

  1. Jeda anggaran: operasional sebelum kilau peluncuran (18/20 poin)
  2. Penjaga Gerbang Produk CSV (17/20 poin)
  3. Dividen Keandalan (17/20 poin)

Di balik layar

kirat_brainstorm Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_BRAINSTORM · UPAYA: STANDAR · 15 IDE · 1 PUTARAN · $0.10

Topik: Ide untuk agensi digital kecil untuk mengubah pembangunan ulang toko sekali jadi menjadi retainer perawatan berulang yang benar-benar diinginkan klien

Konteks yang dikirim: Agensi berisi 4 orang. Klien menjual sekitar 1.800 produk furnitur di Jerman, Austria, dan Swiss, memiliki 3 staf dan tidak ada developer internal, pendapatan sekitar EUR 1,2 juta per tahun. Toko WooCommerce self-hosted lama memiliki 31 plugin dan dua insiden keamanan tahun lalu; klien menginginkan pemeliharaan lebih rendah dan lebih sedikit keadaan darurat. ERP lokal mengekspor data produk sebagai CSV. Anggaran pembangunan ulang: EUR 25.000. KERAS: tanpa lock-in; klien harus dapat keluar dengan semua data dan akses kapan saja. KERAS: tanpa perekrutan tambahan di agensi.

Hasil dari dewan

  1. 1 Jeda anggaran: operasi sebelum peluncuran gloss gpt-5.6 · rule breaker · 18/20 poin (9 + 9) Ide ini sengaja melanggar batasan lunak anggaran pembangunan ulang 25.000 EUR: tawarannya, misalnya, 22.000 EUR untuk peluncuran yang sengaja dibuat ramping ditambah 12.000 EUR untuk tahun pertama operasi yang mengikat. Sebagai imbalannya, fitur nice-to-have dihapus dari proyek awal; sebagai gantinya, pengerasan impor, latihan pemulihan, pemantauan, dan perbaikan bulanan didanai. Total volume yang lebih tinggi terbayar karena klien tidak sekali lagi membeli toko yang tampak sudah selesai yang biaya operasional sebenarnya baru terlihat setelah peluncuran; semua kredensial akses, data, dan hasil kerja tetap dapat dialihkan kapan saja.
  2. 2 Penjaga Gerbang Produk CSV gpt-5.6 · within brief · 17/20 poin (9 + 8) Sebelum setiap impor ERP, pipeline otomatis memeriksa CSV untuk harga yang hilang, duplikat, varian tidak valid, kesalahan gambar, logika pajak DACH, dan perubahan stok yang mencurigakan. Retainer bulanan mencakup pemeliharaan aturan, pemantauan impor, dan laporan kesalahan yang mudah dipahami untuk tiga karyawan. Ini mengubah pemeliharaan teknis menjadi manfaat bisnis langsung: lebih sedikit produk salah, pertanyaan lanjutan, dan pembelian yang ditinggalkan.
  3. 3 Dividen Keandalan gpt-5.6 · within brief · 17/20 poin (8 + 9) Klien membayar biaya dasar yang moderat untuk pemantauan dan pemeliharaan; jumlah tambahan triwulanan hanya jatuh tempo jika target keandalan yang disepakuti seperti impor berhasil, pemulihan teruji, dan waktu respons telah terpenuhi. Gangguan yang dapat dihindari yang disebabkan oleh agensi menghasilkan kredit layanan alih-alih jam darurat yang dapat ditagih. Model ini menyelaraskan insentif ekonomi dengan pencegahan dan menghilangkan kekhawatiran klien bahwa agensi mendapat untung dari masalah.
  4. 4 Piagam Perawatan Siap Keluar gpt-5.6 · within brief · 16/20 poin (9 + 7) Retainer ini sengaja dijual sebagai produk anti-lock-in: pemantauan, pembaruan, pencadangan, pemeriksaan keamanan, dan dua perubahan kecil per bulan sekitar 1.200–1.500 EUR. Semua akun dipegang oleh klien, dan kode serta skrip impor berada di repositori klien; setiap bulan klien juga menerima dokumentasi, ekspor data, dan paket serah terima yang memungkinkan mereka membatalkan kapan saja. Dengan cara ini klien membayar untuk operabilitas yang dapat dibuktikan alih-alih ketergantungan.
  5. 5 Rangkaian rilis musiman gpt-5.6 · within brief · 16/20 poin (8 + 8) Alih-alih tiket dukungan yang sewenang-wenang, ada empat rilis commerce yang dapat direncanakan per tahun, misalnya untuk furnitur taman, akhir musim panas, Black Week, dan Natal. Termasuk dalam retainer untuk setiap rilis adalah paket UX atau merchandising kecil, pengujian regresi, dan pemeliharaan teknis di antaranya. Ini memberi klien pengembangan berkelanjutan yang terlihat dan menjaga upaya tetap dapat digabungkan untuk agensi beranggotakan empat orang.
  6. 6 Uji pelarian triwulanan gpt-5.6 · within brief · 16/20 poin (9 + 7) Setiap triwulan, agensi menyediakan ekspor lengkap data produk, pelanggan, pesanan, dan konten serta melakukan restart terdokumentasi di lingkungan pengujian netral. Yang klien bayar, justru, adalah jalan keluar yang terbukti secara berkala: daftar akses, log pemulihan, dan manual serah terima menjadi milik klien. Kriteria keras tanpa lock-in dengan demikian berubah dari keberatan menjadi nilai jual yang tidak biasa untuk retainer.
  7. 7 Piagam Perawatan plus pertukaran pertumbuhan gpt-5.6 · neighbor · 16/20 poin (8 + 8) Sebagai mutasi kecil dari Piagam Perawatan Siap Keluar, jam perubahan yang disertakan tidak ditetapkan di muka tetapi dialihkan setiap bulan antara operasi, kualitas data, dan peningkatan konversi; volume yang tidak terpakai terbawa paling lama satu triwulan. Dewan bersama berdurasi 30 menit memutuskan cara penggunaannya, berdasarkan risiko dan peluang pendapatan. Retainer tetap siap keluar tetapi terasa kurang seperti asuransi dan lebih seperti tim digital eksternal yang fleksibel.
  8. 8 Retainer sinkronisasi ERP & keamanan katalog gemini-3.6-flash · within brief · 13/20 poin (7 + 6) Agensi mengambil alih pemantauan dan pemeliharaan berkelanjutan antarmuka antara CSV ERP lokal dan toko online. Impor data yang salah, varian furnitur yang hilang, atau harga yang salah ditangkap secara otomatis sebelum tayang. Ini sepenuhnya membebaskan tim 3 orang klien dari beban operasional pemeliharaan data.
  9. 9 Tarif tetap pengayaan data produk berbasis AI gemini-3.6-flash · neighbor · 13/20 poin (6 + 7) Mutasi dari ide antarmuka ERP: agensi tidak hanya memelihara impor CSV tetapi juga menggunakan skrip AI untuk secara otomatis memperkaya data mentah dengan atribut terstruktur, salinan SEO, dan catatan waktu pengiriman khusus DACH. Ini menghemat upaya pemeliharaan manual klien dan meningkatkan visibilitas di pasar furnitur tanpa penambahan staf agensi.
  10. 10 Kontrak pemeliharaan regresi visual berbasis CI/CD gemini-3.6-flash · within brief · 12/20 poin (6 + 6) Alih-alih pembaruan langsung yang berisiko, agensi menyiapkan pipeline staging yang secara otomatis memeriksa pembaruan plugin bulanan secara visual dan fungsional. Klien menerima laporan transparansi bulanan dan waktu respons yang dijamin untuk kerentanan keamanan. Ini menjamin stabilitas absolut tanpa keadaan darurat sebelumnya.
  11. 11 Pemolesan konversi & UX triwulanan gemini-3.6-flash · within brief · 11/20 poin (6 + 5) Selain pemeliharaan dasar, retainer mencakup kuota jam tetap untuk mengoptimalkan fungsi checkout dan tampilan varian furnitur. Agensi menganalisis perilaku pengguna di wilayah DACH setiap bulan dan menerapkan penyesuaian dengan hasil tinggi. Ini mengubah retainer dari faktor biaya murni menjadi pendorong pendapatan.
  12. 12 Jaminan pembaruan aman & rollback instan gemini-3.6-flash · neighbor · 11/20 poin (5 + 6) Mutasi dari kontrak pemeliharaan CI/CD: retainer berfokus murni pada SLA zero-downtime yang dijamin dengan pemulihan snapshot otomatis dalam 15 menit jika terjadi insiden. Ini secara langsung menjawab kekhawatiran klien setelah dua insiden keamanan, dengan upaya manual berkelanjutan yang minimal.
  13. 13 Paket pertumbuhan bagi hasil alih-alih anggaran tetap gemini-3.6-flash · rule breaker · 9/20 poin (4 + 5) Melanggar asumsi lunak anggaran pembangunan ulang sekali bayar yang kaku sebesar 25.000 EUR: biaya pembangunan ulang dikurangi menjadi 10.000 EUR, digabungkan dengan retainer bulanan dengan sebagian kecil dari pendapatan tambahan. Ini terbayar karena klien menurunkan risiko investasinya dan agensi berpartisipasi langsung dalam pertumbuhan toko senilai 1,2 juta EUR.
  14. 14 Layanan Perawatan Arsitektur Headless gemini-3.6-flash · rule breaker · 7/20 poin (3 + 4) Melanggar batasan lunak dari setup monolit klasik (seperti WooCommerce standar): frontend dipisahkan dari backend, sehingga kerentanan keamanan plugin tidak lagi dapat menyerang situs web secara langsung. Ini terbayar karena keadaan darurat dihilangkan secara struktural dan klien tetap portabel kapan saja berkat stack open-source dan akses Git penuh.
  15. 15 Laporan perawatan satu halaman bulanan claude · within brief · 6/20 poin (4 + 2) Laporan bulanan satu halaman dengan uptime, kecepatan halaman, pembaruan yang diterapkan, dan insiden yang dicegah, sehingga klien melihat untuk apa retainer dibayarkan.

Halaman pemesanan baru kami akan tayang bulan depan. Berdiskusilah dengan Kirat bagaimana kami mendapatkan lebih banyak pre-order kue tanpa iklan berbayar.

kirat_brainstorm bertanya kepada dewan

Dewan menghasilkan 15 ide dan menilai masing-masing secara anonim. Tiga teratas:

  1. Autopilot ulang tahun tahunan (18/20 poin)
  2. Slot kue nyata alih-alih posting generik (17/20 poin)
  3. Kue itu bepergian sebagai media iklannya sendiri (16/20 poin)

Di balik layar

kirat_brainstorm Apa yang dikirim Claude ke Kirat

TEREKAM 2026-10-13 · KIRAT_BRAINSTORM · UPAYA: STANDAR · 15 IDE · 1 PUTARAN · $0.09

Topik: Ide untuk toko roti lokal agar mendapatkan lebih banyak pre-order kue kustom melalui halaman pemesanan online barunya, tanpa iklan berbayar

Konteks yang dikirim: Toko roti dengan 6 staf di kota Jerman berpenduduk 40.000 orang. Kue kustom dan pre-order memiliki margin terbaik. Halaman pemesanan online baru (pilihan kue, tanggal pengambilan, pembayaran di muka) tayang bulan depan; hingga kini pesanan hanya datang melalui telepon dan email. Profil Bisnis Google memiliki 4,7 bintang dari 120 ulasan. Pemilik memiliki sedikit waktu, jadi ide harus berjalan dengan paling banyak 2 jam per minggu. KERAS: tidak ada iklan berbayar triwulan ini. KERAS: tidak ada staf tambahan.

Hasil dari dewan

  1. 1 Autopilot ulang tahun tahunan gpt-5.6 · sesuai brief · 18/20 poin (9 + 9) Saat checkout, pelanggan dapat secara sukarela meninggalkan acara dan bulan untuk pengingat pada tahun berikutnya. Email otomatis 21 hari sebelumnya mengarah ke halaman pesanan yang sudah terisi; dengan cara ini setiap pesanan membangun pesanan di masa depan, tanpa akuisisi pelanggan berkelanjutan dan dengan persetujuan yang bersih.
  2. 2 Slot kue nyata alih-alih posting generik gpt-5.6 · sesuai brief · 17/20 poin (9 + 8) Halaman pesanan menampilkan slot produksi aktual yang tersisa untuk empat minggu ke depan, seperti "Masih tersedia 2 kue kustom untuk Sabtu". Posting Google Business mingguan menautkan langsung ke tampilan ini; memperbaruinya dan memposting bersama-sama memakan waktu paling lama 20 menit dan menciptakan urgensi yang kredibel tanpa diskon.
  3. 3 Kue berperan sebagai media iklan tersendiri gpt-5.6 · sesuai brief · 16/20 poin (8 + 8) Setiap kue yang diambil mendapat kartu kecil bertuliskan "Pesan ulang atau kustomisasi kue ini" dan kode QR untuk varian yang sesuai. Kartu ditampilkan secara terlihat saat kue dipotong, sehingga tepat para tamu ulang tahun atau pernikahan yang hadir menemukan cara untuk memesan; satu set kartu yang dibuat sekali hampir tidak menimbulkan usaha mingguan.
  4. 4 Jam konsultasi kue satu kali saat peluncuran gpt-5.6 · pelanggar aturan · 16/20 poin (8 + 8) Pada Sabtu pertama setelah peluncuran ada jam konsultasi kue terbuka selama empat jam: tamu memilih rasa dan gaya dari kartu contoh lalu menempatkan pesanan mereka sendiri melalui kode QR yang disediakan untuk mereka. Ini sengaja melanggar batasan lunak berupa usaha paling lama dua jam pada minggu itu; usaha ekstra terbayar karena pesanan nyata, masalah kegunaan yang teramati, serta foto dan pertanyaan pelanggan yang dapat digunakan ulang semuanya dihasilkan pada saat yang sama — tanpa staf tambahan atau iklan berbayar.
  5. 5 Mitra acara alih-alih influencer gpt-5.6 · sesuai brief · 15/20 poin (8 + 7) Tempat bermain anak, fotografer, toko bunga, gedung pernikahan, dan clubhouse masing-masing menerima stand QR kecil yang mengarah ke pilihan kue yang telah dikonfigurasi untuk acara mereka. Sebagai imbalannya, toko roti menyebut mitra-mitra ini di halaman rekomendasi lokal; lima permintaan tertarget per bulan sudah cukup, dan komisi serta jangkauan berbayar dihilangkan.
  6. 6 Rotasi kue untuk kantor dan klub gpt-5.6 · sesuai brief · 15/20 poin (8 + 7) Kantor, praktik, dan klub lokal mendapatkan halaman tempat beberapa ulang tahun atau tanggal berulang dapat dikumpulkan dan dibayar di muka satu per satu. Rotasi triwulanan, setelah disiapkan sekali, mengubah acara individu menjadi pesanan seri yang dapat direncanakan; penjangkauan dapat dibatasi pada dua organisasi per minggu.
  7. 7 Konsultasi kue hibrida di tablet konter gemini-3.6-flash · pelanggar aturan · 14/20 poin (7 + 7) Sengaja melanggar batasan lunak 'hanya pemesanan online' dengan menawarkan 1 jam konsultasi di toko pada hari Jumat, di mana pesanan dimasukkan bersama-sama di tablet. Ini terbayar karena pelanggan yang belum memutuskan dan pelanggan yang lebih tua secara bertahap diperkenalkan pada sistem online baru.
  8. 8 Ulasan menjadi bantuan keputusan gpt-5.6 · tetangga · 13/20 poin (7 + 6) Sebagai rekombinasi kecil dari materi terkuat yang ada, dua belas kalimat bermakna dari 120 ulasan Google dipasangkan dengan gaya kue yang sesuai, masing-masing dengan tautan pesanan langsung. Dengan cara ini 4,7 bintang tidak hanya ditampilkan sebagai sinyal kepercayaan tetapi membantu dalam pemilihan produk; setelah penyiapan satu kali, halaman ini sebagian besar bebas perawatan.
  9. 9 Pajangan kue contoh dengan deep link toko gemini-3.6-flash · tetangga · 13/20 poin (6 + 7) Galeri foto fisik berisi kue-kue terindah di ruang penjualan menyertakan kode QR spesifik pada setiap gambar yang membuka model kue ini tepat dengan praseleksi di toko online. Mutasi ide 1: menautkan pajangan di toko dengan deep link langsung di toko.
  10. 10 Optimasi profil Google & tautan ulasan otomatis gemini-3.6-flash · sesuai brief · 12/20 poin (6 + 6) Profil Google yang kuat (4,7 bintang) dilengkapi dengan tombol resmi 'Pesan online' dan diperbarui setiap minggu dengan foto kue terkini. Saat pengambilan, pelanggan menerima templat melalui email dengan tautan ke halaman ulasan dan pemesanan ulang. Memakan waktu kurang dari 30 menit per minggu.
  11. 11 Teaser kode QR pada struk & kantong roti gemini-3.6-flash · sesuai brief · 11/20 poin (6 + 5) Kode QR yang menarik perhatian dicetak pada setiap struk dan pada kemasan, mengarah langsung ke konfigurator kue online ('Rencanakan kue impian Anda untuk perayaan Anda secara online'). Ini mengubah pelanggan walk-in harian menjadi pemesan awal digital tanpa usaha ekstra di konter.
  12. 12 Kemitraan B2B dengan gedung acara lokal gemini-3.6-flash · sesuai brief · 11/20 poin (6 + 5) Stand dan selebaran dengan kode pemesanan langsung untuk situs web ditempatkan di restoran lokal, lumbung acara, dan perencana pernikahan. Pelanggan yang merayakan memesan kue mereka langsung secara online, sementara gedung menerima tunjangan biaya kecil atau rujukan sebagai imbalannya.
  13. 13 Kalender ulang tahun tempat penitipan anak & sekolah gemini-3.6-flash · tetangga · 10/20 poin (4 + 6) Kerja sama dengan taman kanak-kanak lokal melalui selebaran info untuk dewan orang tua yang berisi kode diskon tetap untuk kue bertema anak-anak. Mutasi ide 3: alih-alih mitra B2B umum, acara berfrekuensi tinggi berupa ulang tahun anak-anak secara khusus disasar dengan cara otomatis.
  14. 14 Lokakarya mini bulanan untuk kue hias gemini-3.6-flash · pelanggar aturan · 10/20 poin (4 + 6) Sengaja melanggar batasan lunak 'maksimal 2 jam waktu per minggu', karena lokakarya 4 jam berlangsung sebulan sekali. Ini terbayar karena peserta bertindak sebagai duta merek, menciptakan konten media sosial yang antusias, dan dijamin menempatkan pesanan lanjutan melalui toko online.
  15. 15 Tautan pesanan pada setiap kotak kue claude · sesuai brief · 8/20 poin (4 + 4) Cetak kode QR ke halaman pemesanan pada kotak kue dan struk, sehingga setiap pelanggan yang sudah membeli kue dapat memesan ulang untuk ulang tahun berikutnya tanpa menelepon.

Catatan Kirat untuk Claude: Ide pelanggar aturan terbaik hanya di peringkat 4: "Jam konsultasi kue satu kali saat peluncuran" — ini sengaja melanggar batasan lunak. Bela ide ini sekali sebelum membuangnya.

Brainstorm dengan Kirat tentang bagaimana kami memangkas insiden penagihan dalam dua kuartal tanpa memisahkan penagihan dari monolit.

kirat_brainstorm bertanya kepada dewan

Dewan menghasilkan 15 ide dan menilai masing-masing secara anonim. Tiga teratas:

  1. Firewall basis data di sekitar tabel penagihan (17/20 poin)
  2. Invarian keuangan yang dapat dieksekusi (17/20 poin)
  3. Pemutaran insiden sebagai ujian rilis (17/20 poin)

Di balik layar

kirat_brainstorm Apa yang dikirim Claude kepada Kirat

TERCATAT 2026-10-13 · KIRAT_BRAINSTORM · UPAYA: STANDAR · 15 IDE · 1 PUTARAN · $0,06

Topik: Ide untuk memangkas insiden produksi yang disebabkan oleh modul penagihan dalam dua kuartal, tanpa mengekstraknya menjadi layanan terpisah

Konteks yang dikirim: Tim berisi 8 engineer. Satu monolit TypeScript, sekitar 60.000 baris, satu basis data Postgres, di-deploy beberapa kali sehari. Modul penagihan berubah setiap minggu dan menyebabkan 5 dari 8 insiden produksi terakhir, sebagian besar melalui modul lain yang membaca dan menulis tabel penagihan secara langsung. Tidak ada seorang pun di tim yang pernah menjalankan sistem terdistribusi di produksi. Kepemimpinan menginginkan lebih sedikit insiden dalam dua kuartal. KERAS: tidak ada penulisan ulang modul penagihan. KERAS: pekerjaan fitur pada penagihan berlanjut setiap minggu.

Hasil dari dewan

  1. 1 Firewall basis data di sekitar tabel penagihan gpt-5.6 · sesuai ringkasan · 17/20 poin (9 + 8) Buat peran Postgres terpisah untuk jalur kode penagihan dan non-penagihan pada monolit, lalu cabut akses tulis langsung ke tabel penagihan dari peran aplikasi umum. Arahkan semua mutasi melalui sekumpulan kecil stored procedure atau fungsi transaksi yang telah ditinjau, dengan menambahkan pencatatan audit sementara terlebih dahulu untuk menemukan dan memigrasikan pemanggil tanpa menghentikan pekerjaan fitur mingguan.
  2. 2 Invariant keuangan yang dapat dieksekusi gpt-5.6 · sesuai ringkasan · 17/20 poin (9 + 8) Kodekan daftar singkat invariant—seperti faktur final yang tidak dapat diubah, entri buku besar yang seimbang, pembuatan tagihan yang idempoten, dan transisi status yang valid—sebagai batasan basis data jika aman dan sebagai probe produksi terjadwal jika tidak. Jalankan probe yang sama terhadap fixture berbentuk produksi yang dianonimkan di CI, mengubah pengetahuan insiden menjadi tripwire permanen alih-alih perluasan pengujian yang luas.
  3. 3 Pemutaran ulang insiden sebagai gauntlet rilis gpt-5.6 · sesuai ringkasan · 17/20 poin (9 + 8) Ubah lima insiden penagihan menjadi skenario pemutaran ulang deterministik menggunakan bentuk kueri yang tertangkap dan baris yang disanitasi, lalu wajibkan setiap perubahan penagihan untuk melewatinya. Tambahkan pengujian generatif yang mempermutasi percobaan ulang, peristiwa duplikat, urutan transaksi, dan kegagalan parsial di sekitar skenario persis tersebut, dengan menyasar area kegagalan alih-alih mencoba cakupan monolit yang menyeluruh.
  4. 4 Tegakkan batas penagihan secara bayangan gpt-5.6 · tetangga · 16/20 poin (9 + 7) Sebagai mutasi berisiko lebih rendah dari firewall basis data, pertahankan izin saat ini pada awalnya tetapi catat setiap kueri yang menyentuh tabel penagihan beserta modul, lokasi pemanggilan, dan ID transaksinya. Setelah empat minggu, ubah penulisan tak terduga menjadi kegagalan CI, lalu kesalahan produksi modul demi modul; ini menggantikan pemotongan izin langsung dengan penegakan bertahap.
  5. 5 Papan sakelar radius dampak penagihan gpt-5.6 · sesuai ringkasan · 16/20 poin (9 + 7) Tempatkan perilaku penagihan yang berisiko—bukan seluruh modul—di balik kill switch sisi server dan peluncuran bertahap berbasis persentase, dengan dasbor yang dikaitkan pada anomali faktur, pembayaran, dan rekonsiliasi. Setiap fitur mingguan dikirim dengan jalur mati yang teruji sehingga responden dapat menonaktifkan perilaku baru tanpa mengembalikan deployment monolit yang tidak terkait atau membatalkan migrasi skema.
  6. 6 Enkapsulasi skema Postgres dan Row Level Security gemini-3.6-flash · sesuai ringkasan · 15/20 poin (7 + 8) Isolasi tabel penagihan dalam skema Postgres khusus (billing.*) dan cabut akses tulis serta baca langsung dari peran DB lainnya. Modul mengaksesnya hanya melalui view SQL atau antarmuka tersimpan yang telah ditentukan. Ini menghilangkan penyebab utama insiden secara langsung di tingkat basis data.
  7. 7 Pengujian kontrak dan pipeline bayangan untuk rilis penagihan gemini-3.6-flash · sesuai ringkasan · 15/20 poin (8 + 7) Bangun pengujian kontrak berbasis konsumen yang otomatis untuk semua antarmuka penagihan dalam pipeline CI. Selain itu, perubahan penagihan pada perhitungan kritis dijalankan dalam mode bayangan di produksi, tanpa efek samping dan dengan pemeriksaan perbedaan otomatis.
  8. 8 Basis data kedua sebagai instrumen keselamatan gpt-5.6 · pelanggar aturan · 14/20 poin (7 + 7) Dengan sengaja melanggar asumsi lunak "satu basis data Postgres" dengan menambahkan basis data bayangan read-only yang diisi melalui replikasi logis, sambil mempertahankan penagihan di dalam monolit dan mempertahankan basis data primer sebagai satu-satunya penulis. Jalankan pembacaan penagihan baru dan pemeriksaan rekonsiliasi terhadap kedua basis data, bandingkan hasilnya sebelum diekspos, dan gunakan basis data bayangan untuk kueri forensik agar diagnosis insiden tidak membebani atau secara tidak sengaja memutasi produksi.
  9. 9 Linting batas modul yang ketat dan fasad API publik gemini-3.6-flash · sesuai ringkasan · 14/20 poin (7 + 7) Perkenalkan linting arsitektur melalui dependency-cruiser yang melarang impor langsung internal penagihan di modul lain pada tahap build. Komunikasi hanya boleh terjadi melalui satu antarmuka BillingFacade yang type-safe, sehingga kopling yang merambat langsung diblokir.
  10. 10 Paspor perubahan penagihan gpt-5.6 · sesuai ringkasan · 13/20 poin (7 + 6) Wajibkan setiap pull request terkait penagihan membawa paspor yang diperiksa mesin: tabel terdampak, invariant, kompatibilitas migrasi, jalur rollback, dan satu kueri produksi yang membuktikan kesehatan pasca-deploy. Gerbang CODEOWNERS plus tinjauan steward penagihan bergilir selama 15 menit menjaga proses cukup ringan untuk perubahan mingguan sambil memusatkan pengawasan pada efek lintas modul.
  11. 11 View Postgres read-only yang dibuat otomatis untuk modul eksternal gemini-3.6-flash · tetangga · 13/20 poin (7 + 6) Sebuah mutasi dari enkapsulasi skema: alih-alih refactoring API yang mahal, view Postgres read-only disediakan secara otomatis untuk kueri eksternal. Modul eksternal hanya membaca view stabil ini, sementara akses langsung ke tabel diblokir melalui izin DB.
  12. 12 Bus peristiwa dalam proses asinkron untuk model baca gemini-3.6-flash · sesuai ringkasan · 12/20 poin (4 + 8) Alih-alih modul lain mengueri tabel penagihan secara langsung, modul penagihan mengirim peristiwa dalam memori saat terjadi perubahan status. Modul penerima membangun proyeksi lokalnya sendiri. Ini sepenuhnya memisahkan akses baca dari tabel penagihan tanpa memperkenalkan sistem terdistribusi.
  13. 13 Pembekuan fitur dua minggu untuk enkapsulasi penagihan gemini-3.6-flash · pelanggar aturan · 11/20 poin (5 + 6) Melanggar batasan lunak keluaran fitur mingguan berkelanjutan selama tepat dua minggu. Seluruh tim berkonsentrasi pada pemisahan kopling DB. Upaya sekali jalan ini meletakkan fondasi untuk mengurangi jumlah insiden secara berkelanjutan selama 5 bulan tersisa.
  14. 14 Peran basis data per modul claude · sesuai ringkasan · 11/20 poin (6 + 5) Beri penagihan skema dan peran Postgres sendiri dan cabut akses tulis modul lain ke tabel penagihan, sehingga penulisan langsung gagal di staging sebelum mencapai produksi.
  15. 15 Partisi DB fisik ke instans Postgres kedua gemini-3.6-flash · pelanggar aturan · 9/20 poin (3 + 6) Melanggar batasan lunak arsitektur basis data tunggal tetapi mempertahankan kode monolitik. Data penagihan dipindahkan ke instans basis data sendiri, yang membuat join SQL lintas sektor secara teknis mustahil. Kompleksitas operasional tetap minimal karena kode tetap monolitik.

Catatan Kirat untuk Claude: Ide pelanggar aturan terbaik hanya di peringkat 8: "Basis data kedua sebagai instrumen keselamatan" — ini dengan sengaja melanggar batasan lunak. Steelman sekali sebelum membuangnya.

Brainstorm dengan Kirat bagaimana kita dapat memangkas waktu penyaringan untuk sekitar 3.000 catatan tanpa melemahkan tinjauan.

kirat_brainstorm bertanya kepada dewan

Dewan menghasilkan 14 ide dan menilai masing-masing secara anonim. Tiga teratas:

  1. Gerbang eksklusi dua manusia (18/20 poin)
  2. Sprint kalibrasi dengan ledger kasus tepi (16/20 poin)
  3. Konsol biner cepat, bukan ekstraksi data mini (15/20 poin)

Di balik layar

kirat_brainstorm Yang dikirim Claude ke Kirat

TERCATAT 2026-10-13 · KIRAT_BRAINSTORM · UPAYA: STANDAR · 14 IDE · 1 PUTARAN · $0.18

Topik: Ide untuk memangkas waktu staf dalam penyaringan judul dan abstrak untuk sekitar 3.000 catatan tanpa melemahkan ketelitian tinjauan sistematis

Konteks yang dikirim: Tinjauan sistematis dalam penelitian layanan kesehatan, direncanakan untuk publikasi. Protokol saat ini: dua penyaring manusia independen, konflik diselesaikan melalui diskusi. Waktu staf terbatas. Peninjau jurnal akan menanyakan bagaimana penyaringan dilakukan. Melewatkan studi yang relevan (eksklusi palsu) lebih buruk daripada menyertakan yang tidak relevan. KERAS: metode harus dapat dilaporkan sesuai PRISMA 2020. KERAS: tingkat eksklusi palsu tidak boleh meningkat.

Hasil dari dewan

  1. 1 Gerbang eksklusi dua manusia gpt-5.6 · pelanggar aturan · 18/20 poin (10 + 8) Minta Reviewer A menyaring setiap rekaman, tetapi teruskan keputusan inklusi dan keputusan tidak pasti dari A langsung ke depan; Reviewer B secara independen menilai hanya usulan eksklusi dari A. Kecualikan sebuah rekaman hanya ketika kedua manusia secara independen mengecualikannya, dan otomatis majukan setiap perbedaan pendapat, sehingga menghilangkan sebagian besar diskusi konflik. Ini sengaja melanggar asumsi lunak protokol saat ini bahwa dua manusia harus menilai setiap rekaman; ini bermanfaat karena menghemat waktu penyaringan sambil secara struktural memungkinkan lebih banyak inklusi palsu, tetapi tidak ada eksklusi palsu tambahan, dan mudah dijelaskan di bagian proses seleksi PRISMA.
  2. 2 Sprint kalibrasi dengan buku besar kasus tepi gpt-5.6 · sesuai ringkasan · 16/20 poin (9 + 7) Saring ganda secara independen batch pertama yang terstratifikasi, selesaikan konflik, dan ubah ambiguitas berulang menjadi aturan operasional singkat dengan contoh positif dan negatif. Kunci aturan sebelum melanjutkan; pertahankan keputusan pilot hanya jika kriteria kelayakan tidak berubah, jika tidak saring ulang. Ini mempertahankan penyaringan ganda independen sambil mengurangi waktu deliberasi dan penyelesaian konflik di kemudian hari, dan kalibrasi dapat dilaporkan di bawah PRISMA.
  3. 3 Konsol biner cepat, bukan ekstraksi data mini gpt-5.6 · sesuai ringkasan · 15/20 poin (8 + 7) Beri kedua reviewer antarmuka tersamar yang digerakkan keyboard dan terbatas pada sertakan, kecualikan, atau tidak pasti, dengan judul dan abstrak lengkap selalu terlihat; tunda pengodean terperinci dan alasan eksklusi ke tinjauan teks lengkap. PRISMA 2020 tidak mewajibkan alasan tingkat rekaman pada tahap judul dan abstrak. Proses keputusan tetap sama, tetapi waktu membaca, mengklik, dan dokumentasi yang dapat dihindari berkurang.
  4. 4 Katup pelepas mesin hanya-inklusi gpt-5.6 · tetangga · 15/20 poin (9 + 6) Sebagai mutasi satu langkah dari gerbang eksklusi dua manusia, jalankan usulan eksklusi A melalui pengklasifikasi tervalidasi yang hanya boleh melepaskan rekaman ke inklusi, tidak pernah mengecualikannya; Reviewer B secara independen menyaring semua yang tidak dilepaskan pengklasifikasi. Eksklusi final tetap memerlukan keputusan yang selaras dari dua manusia, sehingga kesalahan mesin dapat menambah teks lengkap tetapi tidak dapat menciptakan eksklusi palsu. Laporkan model, versi, input, ambang batas, validasi, dan perannya yang strictly include-only di bawah PRISMA.
  5. 5 Penyaringan eksklusi asimetris gemini-3.6-flash · sesuai ringkasan · 15/20 poin (7 + 8) Reviewer pertama mengklasifikasikan seluruh 3.000 rekaman secara lengkap. Reviewer kedua hanya memeriksa rekaman yang dikecualikan oleh reviewer pertama, untuk menangkap negatif palsu (inklusi diterima langsung). Ini hampir memangkas separuh upaya reviewer kedua, menjaga risiko eksklusi palsu sangat rendah, dan memenuhi semua persyaratan PRISMA.
  6. 6 Lewati penyaringan untuk strata hasil tinggi gpt-5.6 · pelanggar aturan · 13/20 poin (8 + 5) Deklarasikan sebelumnya subset hasil tinggi—seperti rekaman dari blok pencarian yang sangat spesifik, turunan langsung dari studi layak yang diketahui, atau rekaman yang sudah disertakan dalam tinjauan yang sangat selaras—dan kirim semuanya langsung ke pengambilan teks lengkap tanpa keputusan judul dan abstrak. Ini sengaja melanggar protokol dua penyaring lunak untuk rekaman tersebut, tetapi tidak dapat meningkatkan eksklusi palsu karena tidak ada dalam subset yang dikecualikan; trade-off-nya adalah pekerjaan teks lengkap tambahan. Laporkan aturan bypass dan jumlah yang dihasilkan secara eksplisit dalam diagram alur PRISMA dan metode seleksi.
  7. 7 Penyaringan berprioritas melalui active learning gemini-3.6-flash · sesuai ringkasan · 13/20 poin (5 + 8) Kedua penyaring manusia menggunakan alat active learning (seperti ASReview) yang mengurutkan judul/abstrak relevan ke atas. Segera setelah kriteria berhenti yang tervalidasi secara statistik tercapai (mis. 500 hit tidak relevan berturut-turut), penyaringan diakhiri. Prosedur ini menghemat hingga 70% waktu, dapat didokumentasikan dengan cara yang sesuai PRISMA 2020, dan mempertahankan tingkat eksklusi palsu minimal melalui kalibrasi algoritma.
  8. 8 Deduplikasi hanya-eksak sebelum penyaringan gpt-5.6 · sesuai ringkasan · 12/20 poin (8 + 4) Hapus hanya rekaman yang terbukti identik melalui DOI, nomor aksesi basis data, atau pencocokan bibliografis ternormalisasi yang eksak; pertahankan salinan dengan metadata terkaya dan hanya tandai near-duplicate yang tidak pasti. Kedua reviewer kemudian secara independen menyaring setiap rekaman unik yang tersisa, sementara PRISMA melaporkan duplikat yang dihapus sebelum penyaringan. Ini memangkas volume tanpa menciptakan jalur untuk mengecualikan studi unik.
  9. 9 Kaskade manusia-AI dengan jaring pengaman AI gemini-3.6-flash · tetangga · 12/20 poin (5 + 7) Mutasi dari penyaringan eksklusi asimetris: satu penyaring manusia memproses semua rekaman sendirian, sementara model AI yang disetel untuk sensitivitas maksimum memeriksa hanya eksklusi manusia. Manusia kedua memeriksa hanya di tempat ada ketidaksesuaian. Ini mengurangi kapasitas manusia lebih dari 50% dengan cakupan lengkap.
  10. 10 Reviewer kedua AI sepenuhnya otomatis gemini-3.6-flash · pelanggar aturan · 11/20 poin (3 + 8) Melanggar batasan lunak bahwa dua manusia harus melakukan penyaringan. Model bahasa besar (LLM) mengambil peran reviewer kedua independen dengan prompting zero-false-negative. Ini bermanfaat karena waktu kerja manusia terpangkas separuh dan LLM telah terbukti mencapai tingkat recall tinggi dalam penyaringan abstrak; PRISMA 2020 secara eksplisit mengizinkan alat AI untuk dilaporkan.
  11. 11 Penyaringan tunggal yang disesuaikan risiko dengan triase keyakinan gemini-3.6-flash · pelanggar aturan · 11/20 poin (5 + 6) Melanggar batasan lunak penyaringan ganda berkelanjutan untuk seluruh dataset. Jika reviewer pertama menyatakan keyakinan subjektif tinggi dan alasan eksklusi yang jelas ada, reviewer kedua dihilangkan; hanya kasus tidak pasti yang masuk ke penyaringan ganda. Ini menghemat hingga 60% waktu staf, sementara risiko studi terlewat tetap minimal karena sumber daya difokuskan pada area abu-abu.
  12. 12 Putaran kalibrasi lebih dulu claude · sesuai ringkasan · 11/20 poin (6 + 5) Kedua penyaring menyaring 100 rekaman yang sama, mendiskusikan setiap konflik dan mempertajam kriteria kelayakan sebelum putaran utama, sehingga konflik dan pembacaan ulang di kemudian hari berkurang.
  13. 13 Penyaringan cepat terbinarisasi dengan triase AI gemini-3.6-flash · tetangga · 10/20 poin (4 + 6) Mutasi dari prioritisasi active learning: tim menggunakan antarmuka yang disederhanakan untuk penilaian cepat (hanya klik untuk 'Sertakan/Tidak yakin' vs. 'Kecualikan'). Model AI mengevaluasi ketidakpastian di latar belakang dan hanya mengirim kandidat batas ke pemeriksaan ganda mendalam. Secara drastis meminimalkan beban kognitif dan waktu membaca per abstrak.
  14. 14 Pra-penyaringan deterministik melalui algoritma pencocokan gemini-3.6-flash · sesuai ringkasan · 6/20 poin (3 + 3) Filter pencarian konservatif dan skrip menyortir hit yang jelas tidak sesuai terlebih dahulu (mis. desain studi salah atau populasi non-manusia). Kedua penyaring memeriksa eksklusi otomatis ini hanya melalui sampel representatif (mis. 10%). Ini mengurangi total volume yang harus disaring secara manual dengan cara yang sesuai PRISMA dan tanpa kehilangan sensitivitas.

Semua ide, lengkap dan dalam urutan peringkat. Ide Claude sendiri ikut serta secara anonim dan dengan syarat yang sama. Topik dan konteks dikirim dalam bahasa Inggris; ide yang ditulis anggota dalam bahasa Jerman diterjemahkan di sini.

Lima headline dan judul dari berbagai bidang. Setiap anggota menulis satu varian, draf Claude ikut serta, dan kedua anggota menilai ketiganya secara anonim. Pilih satu.

Minta Kirat menulis varian headline untuk halaman harga saya. Maks. 8 kata, tanpa superlatif.

kirat_create bertanya kepada dewan

Varian pemenang (17/20 poin): "Get paid without Word—free for 14 days"

Draf saya sendiri berada di #2; para anggota menilai ketiganya secara anonim.

Di balik layar

kirat_create Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_CREATE · MODE: VARIANTS · EFFORT: STANDARD · $0.03

Ringkasan: Headline untuk halaman harga alat penagihan kecil untuk freelancer (USD 19 per bulan, uji coba gratis 14 hari). Audiens: freelancer yang saat ini menulis invoice di Word atau Excel. Tujuan: membuat uji coba terasa bebas risiko dan layak. Format: satu headline, dalam bahasa Inggris.

Kriteria: maks. 8 kata · konkret, tanpa superlatif · menyebut waktu yang dihemat atau pembayaran diterima · tanpa tanda seru

Hasil dari dewan

  1. 1 "Get paid without Word—free for 14 days" gpt-5.6 · 17/20 poin (9 + 8) Berbicara langsung kepada pengguna Word, menempatkan pembayaran diterima di depan dan tengah serta membuat uji coba bebas risiko menjadi konkret.
  2. 2 "Send invoices in minutes. Get paid on time." claude · 17/20 poin (8 + 9) Draf orkestrator sendiri.
  3. 3 "Replace Word and Excel. Get paid days faster." gemini-3.6-flash · 14/20 poin (7 + 7) Menyapa alur kerja manual saat ini secara langsung menawarkan kontras segera, membingkai uji coba sebagai peningkatan arus kas yang cepat dan bebas risiko tanpa menggunakan hype generik.

Minta Kirat menulis varian headline untuk landing page kami untuk toko furnitur di WooCommerce. Maks. 10 kata, tanpa jargon.

kirat_create bertanya kepada dewan

Varian pemenang (18/20 poin): "Losing furniture buyers to a slow, frustrating WooCommerce store?"

Draf saya sendiri berada di #3; para anggota menilai ketiganya secara anonim.

Di balik layar

kirat_create Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_CREATE · MODE: VARIANTS · EFFORT: STANDARD · $0.02

Ringkasan: Headline untuk landing page agensi digital kecil tentang pembangunan ulang toko untuk pengecer furnitur yang menjalankan WooCommerce. Audiens: pemilik toko furnitur ukuran menengah tanpa pengembang internal. Tujuan: memesan pemeriksaan toko gratis. Format: satu headline, pasar Jerman tetapi tulis dalam bahasa Inggris.

Kriteria: maks. 10 kata · menyebutkan rasa sakit pembaca, bukan agensi · tanpa jargon seperti "headless" atau "omnichannel" · tanpa superlatif

Hasil dari dewan

  1. 1 "Losing furniture buyers to a slow, frustrating WooCommerce store?" gemini-3.6-flash · 18/20 poin (8 + 10) Secara langsung menyasar frustrasi utama pemilik—penjualan hilang akibat performa toko yang buruk—tanpa menggunakan jargon teknis atau bahasa agensi yang memuji diri sendiri.
  2. 2 "Is your WooCommerce shop turning furniture buyers away?" gpt-5.6 · 17/20 poin (9 + 8) Menyebutkan rasa sakit inti secara langsung dan berbicara kepada pengecer furnitur tanpa jargon.
  3. 3 "Fewer shop emergencies, more time for your furniture." claude · 11/20 poin (7 + 4) Draf orkestrator sendiri.

Minta Kirat menulis varian headline untuk halaman pemesanan kue baru toko roti. Singkat, lokal, tidak seperti jaringan.

kirat_create bertanya kepada dewan

Varian pemenang (19/20 poin): "Your celebration cake, baked here for pickup."

Draf saya sendiri berada di #3; para anggota menilai ketiganya secara anonim.

Di balik layar

kirat_create Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_CREATE · MODE: VARIANTS · EFFORT: STANDARD · $0.02

Ringkasan: Headline untuk halaman pemesanan online baru toko roti untuk kue kustom. Audiens: pelanggan lokal yang sampai sekarang memesan lewat telepon. Tujuan: membuat pemesanan online terasa mudah dan personal. Format: satu headline, pasar Jerman tetapi tulis dalam bahasa Inggris.

Kriteria: maks. 8 kata · konkret, tanpa superlatif · menyebutkan pengambilan atau acara · terdengar seperti toko roti lokal, bukan jaringan

Hasil dari dewan

  1. 1 "Your celebration cake, baked here for pickup." gpt-5.6 · 19/20 poin (10 + 9) Hangat, konkret dan personal: "baked here" terasa lokal, sementara "for pickup" membuat proses online terasa lugas.
  2. 2 "Order your custom birthday cake, pick up fresh." gemini-3.6-flash · 16/20 poin (8 + 8) Headline ini secara spesifik menyebutkan acara serta pengambilan dan, melalui janji kesegaran, menyampaikan kualitas kerajinan lokal tanpa klise yang impersonal.
  3. 3 "Your cake, your date. Order in two minutes." claude · 9/20 poin (5 + 4) Draf orkestrator sendiri.

Minta Kirat menemukan judul untuk proposal saya untuk memperkuat batas-batas billing di dalam monolit terlebih dahulu.

kirat_create bertanya kepada dewan

Draf saya sendiri menang (19/20 poin): "Fix billing's boundaries first, split it later if needed"

Di balik layar kirat_create Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_CREATE · MODE: VARIAN · EFFORT: STANDAR · $0,02

Brief: Judul untuk proposal engineering internal: perkuat batas-batas modul billing di dalam monolit sebelum mempertimbangkan layanan terpisah. Audiens: 8 engineer dan pimpinan yang ingin insiden lebih sedikit. Tujuan: proposal dibaca dan disetujui. Format: satu judul, dalam bahasa Inggris.

Kriteria: maks. 10 kata · menyatakan keputusan, bukan sekadar topik · tanpa jargon · dapat dipahami non-engineer

Hasil dari dewan

  1. 1 "Fix billing's boundaries first, split it later if needed" claude · 19/20 poin (10 + 9) Draf orchestrator sendiri.
  2. 2 "Keep Billing Together, but Isolate It to Prevent Incidents" gpt-5.6 · 16/20 poin (9 + 7) Judul ini menyatakan keputusan untuk mempertahankan billing di dalam monolit sambil memperkuat batas-batasnya, dan mengaitkan pilihan itu dengan tujuan bersama yaitu insiden yang lebih sedikit.
  3. 3 "Strengthen Billing Boundaries in Current App Before Splitting Service" gemini-3.6-flash · 13/20 poin (7 + 6) Judul ini membuat keputusan arah yang jelas, menghindari jargon yang tidak perlu seperti 'monolit' untuk manajemen, dan langsung menjawab tujuan bersama yaitu stabilitas.

Biarkan Kirat mencari judul untuk makalah metode kami tentang LLM sebagai screener tambahan. Akurat, tanpa hype.

kirat_create bertanya kepada dewan

Varian pemenang (18/20 poin): "Large Language Model–Assisted Study Selection in Health Services Research: A Method for Additional Screening in Systematic Reviews"

Draf saya sendiri berada di peringkat #2; para anggota menilai ketiganya secara anonim.

Di balik layar

kirat_create Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_CREATE · MODE: VARIAN · EFFORT: STANDAR · $0,02

Brief: Judul untuk makalah metode tentang penggunaan LLM sebagai screener tambahan dalam tinjauan sistematis di bidang penelitian layanan kesehatan. Audiens: peneliti dan reviewer jurnal. Tujuan: akurat dan dapat dikutip, bukan hype. Format: satu judul, boleh menyertakan subjudul setelah titik dua, dalam bahasa Inggris.

Kriteria: maks. 20 kata · menyebutkan metode dan konteksnya · tanpa klaim melebihi data · tanpa kata hype seperti "revolutionize"

Hasil dari dewan

  1. 1 "Large Language Model–Assisted Study Selection in Health Services Research: A Method for Additional Screening in Systematic Reviews" gpt-5.6 · 18/20 poin (9 + 9) Judul ini mengidentifikasi metode penyaringan, konteks tinjauan sistematis, dan bidang penelitian layanan kesehatan tanpa menyiratkan kinerja atau manfaat.
  2. 2 "An LLM as additional screener: a prospective comparison in a health services systematic review" claude · 16/20 poin (9 + 7) Draf orchestrator sendiri.
  3. 3 "Large Language Models as Auxiliary Screeners in Health Services Research Systematic Reviews: A Methodological Evaluation" gemini-3.6-flash · 15/20 poin (7 + 8) Judul ini menyebutkan bidang penerapan dan metodologi secara tepat, menghindari kata pemicu dan memilih nada faktual yang dapat dikutip untuk konteks publikasi ilmiah.

Judul dan headline ditampilkan sebagaimana ditulis, dalam bahasa Inggris, sesuai permintaan brief. Penalaran dalam entri Claude adalah label Kirat sendiri untuknya. Penalaran yang ditulis dalam bahasa Jerman diterjemahkan di sini.

Lima brief gambar dari berbagai bidang. OpenAI dan Google masing-masing menghasilkan satu gambar, dan kedua anggota menilai kedua gambar secara anonim. Pilih satu.

Biarkan Kirat membuat gambar hero untuk landing page alat invoicing saya: meja home-office yang tenang, tanpa layar yang terbaca.

kirat_image bertanya kepada dewan

Juri memilih gambar dari gpt-image-2 (18/20 poin). Kedua anggota menilai kedua gambar secara anonim.

Di balik layar

kirat_image Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_IMAGE · MODE: VARIAN · LANDSCAPE · ≈ $0,17

Brief: Gambar hero untuk landing page alat invoicing kecil untuk freelancer: meja home-office yang rapi di pagi hari dengan laptop (layar menghadap menjauh atau diburamkan, tanpa antarmuka yang terbaca), secangkir kopi dan buku catatan kertas. Cahaya alami, gaya foto dokumenter yang tenang, tanpa teks, tanpa logo, tanpa wajah orang.

Kriteria: terasa seperti ruang kerja freelancer sungguhan, bukan kantor foto stok · tenang dan tidak berantakan · menyisakan ruang tenang untuk headline · tanpa teks, logo, atau layar yang terbaca

Hasil dari dewan

Image by gpt-image-2: a laptop seen from behind on a wooden desk in a bright room, with a cup of coffee, a closed notebook and a pen, and shelves in the background.

1 gpt-image-2 · 18/20 poin (9 + 9)

Image by gemini-3.1-flash-image: a wooden desk by a window with an open laptop showing a blurred screen, a cup of coffee on a saucer, a notebook and a pen.

2 gemini-3.1-flash-image · 13/20 poin (6 + 7)

Biarkan Kirat membuat foto produk untuk toko furnitur: meja makan kayu ek dengan empat kursi di ruang tamu sungguhan.

kirat_image bertanya kepada dewan

Juri memilih gambar dari gemini-3.1-flash-image (18/20 poin). Kedua anggota menilai kedua gambar secara anonim.

Di balik layar

kirat_image Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_IMAGE · MODE: VARIAN · LANDSCAPE · ≈ $0,17

Brief: Foto produk untuk toko furnitur online: meja makan kayu ek solid dengan empat kursi di ruang tamu Eropa Tengah yang terang dan tampak nyata. Cahaya alami, gaya interior editorial, tanpa teks, tanpa logo, tanpa orang.

Kriteria: meja adalah subjek yang jelas · tekstur dan warna kayu tampak nyata · terlihat seperti rumah sungguhan, bukan render 3D · tanpa teks atau logo

Hasil dari dewan

Image by gemini-3.1-flash-image: a wooden dining table with four chairs on a rug in a bright living room with plants and a glass door to the garden.

1 gemini-3.1-flash-image · 18/20 poin (9 + 9)

Image by gpt-image-2: an oak dining table with four chairs with dark seat cushions in a bright room, with a sofa and a window in the background.

2 gpt-image-2 · 17/20 poin (8 + 9)

Biarkan Kirat membuat gambar hero untuk halaman pemesanan kue: kue ulang tahun dalam kotak, siap diambil.

kirat_image bertanya kepada dewan

Juri memilih gambar dari gpt-image-2 (17/20 poin). Kedua anggota menilai kedua gambar secara anonim.

Di balik layar

kirat_image Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_IMAGE · MODE: VARIAN · LANDSCAPE · $0,17

Brief: Gambar hero untuk halaman pemesanan online baru toko roti lokal kecil untuk kue kustom: kue ulang tahun jadi di atas meja kayu di toko roti keluarga yang terang dan tampak nyata, siap diambil dalam kotak kue kardus sederhana. Cahaya alami, gaya foto dokumenter, tanpa teks, tanpa logo, tanpa wajah orang.

Kriteria: terlihat seperti toko roti lokal sungguhan, bukan jaringan atau foto stok · kue adalah subjek yang jelas · menyisakan ruang tenang untuk headline · tanpa teks atau logo di gambar

Hasil dari dewan

Image by gpt-image-2: a birthday cake with candles and piped flowers in an open cardboard box on a wooden counter in a bright bakery.

1 gpt-image-2 · 17/20 poin (8 + 9)

Image by gemini-3.1-flash-image: a small birthday cake with a “Happy Birthday” topper in an open cardboard box on a bakery counter, with chalkboard menus behind it.

2 gemini-3.1-flash-image · 7/20 poin (4 + 3)

Biarkan Kirat membuat gambar sampul untuk posting blog kami tentang memisahkan billing dari monolit. Abstrak dan tenang.

kirat_image bertanya kepada dewan

Juri memilih gambar dari gpt-image-2 (16/20 poin). Kedua anggota menilai kedua gambar secara anonim.

Di balik layar

kirat_image Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_IMAGE · MODE: VARIAN · LANDSCAPE · ≈ $0,17

Brief: Gambar sampul untuk posting blog engineering internal tentang memisahkan modul billing dari monolit: ilustrasi abstrak dan tenang dari satu blok yang berbatas jelas yang dipisahkan dari gugusan padat blok-blok yang saling terhubung. Gaya datar, warna redup, tanpa teks, tanpa logo.

Kriteria: gagasan batas yang jelas dapat dibaca sekilas · tenang, tidak dramatis · berfungsi dalam ukuran kecil · tanpa teks atau logo

Hasil dari dewan

Image by gpt-image-2: a dense cluster of grey and green cubes joined by lines, and one separate green cube inside a dashed outline, linked by a dashed line.

1 gpt-image-2 · 16/20 poin (9 + 7)

Image by gemini-3.1-flash-image: a small screen-like box on the left, linked by thin lines to a dense, tangled cluster of blocks.

2 gemini-3.1-flash-image · 10/20 poin (6 + 4)

Biarkan Kirat membuat gambar sampul untuk presentasi konferensi saya tentang penyaringan berbantuan AI. Serius, tanpa robot.

kirat_image bertanya kepada dewan

Juri memilih gambar dari gpt-image-2 (18/20 poin). Kedua anggota menilai kedua gambar secara anonim.

Di balik layar

kirat_image Apa yang dikirim Claude ke Kirat

DICATAT 2026-10-13 · KIRAT_IMAGE · MODE: VARIAN · LANDSCAPE · ≈ $0,17

Brief: Gambar sampul untuk presentasi konferensi tentang penyaringan berbantuan AI dalam tinjauan sistematis: tumpukan rapi abstrak penelitian cetak di atas meja, sebagian diurutkan ke dalam dua baki, cahaya lembut, gaya foto dokumenter. Tanpa teks yang terbaca, tanpa logo, tanpa wajah orang.

Kriteria: serius dan ilmiah, bukan hype · tanpa robot atau otak bercahaya · gagasan pengurutan terlihat · tanpa teks atau logo yang terbaca

Hasil dari dewan

Image by gpt-image-2: a large stack of printed abstracts on a wooden desk next to two black trays of sorted papers, a pen and a notebook.

1 gpt-image-2 · 18/20 poin (9 + 9)

Image by gemini-3.1-flash-image: stacks of printed papers and labelled sorting trays on a wooden desk in an office, with a person working at a desk in the background.

2 gemini-3.1-flash-image · 9/20 poin (5 + 4)

Gambar yang dihasilkan AI, diperkecil dan tidak diedit selain itu. Biaya yang ditandai ≈ berasal dari proses yang berjalan paralel: biaya gambar masing-masing proses ditambah bagian merata dari panggilan penilaian. Peringkat ini adalah pra-seleksi, dan pilihan akhir tetap di tangan Anda. Penilaian yang ditulis dalam bahasa Jerman diterjemahkan di sini.

02 — Masalahnya

Satu model, satu titik buta.

Meninjau diri sendiri itu memuji

Model yang memeriksa pekerjaannya sendiri akan menganggap dirinya meyakinkan. Pemeriksaan ulang oleh model yang sama bukanlah pemeriksaan independen.

Menambah putaran bukan solusinya

Kirat membatasi debat maksimal dua putaran, di dalam kode, bukan di prompt. Model tidak bisa mengelak dari batas itu. Jika tetap tidak ada mayoritas, Anda akan diberi tahu.

Keluarga model yang berbeda gagal dengan cara berbeda

Kirat menempatkan Claude, ChatGPT dan Gemini pada pertanyaan yang sama dan menunjukkan perpecahannya — termasuk siapa yang tidak setuju, dan mengapa.

03 — Cara kerjanya

Tanya sekali. Dapatkan tiga posisi dan satu suara.

Langkah 1

Anda bertanya di Claude

Dengan bahasa biasa, seperti selalu: Ask the Kirat council: Shopify or WooCommerce for my shop? Give your own position too. Claude memanggil Kirat untuk Anda.

Langkah 2

Tiga posisi independen

ChatGPT dan Gemini masing-masing menjawab tanpa melihat jawaban yang lain. Claude mengambil posisinya sendiri sebagai anggota ketiga.

Langkah 3

Satu suara, dengan perbedaan pendapat yang tetap disimpan

Jika dua dari tiga setuju, itulah pandangan mayoritas. Anda melihat setiap posisi beserta alasannya, dan siapa yang tidak setuju. Tanpa mayoritas, Kirat akan mengatakannya, dan keputusan ada di tangan Anda.

Kirat juga meninjau kode (setiap temuan diperiksa oleh keluarga model lain), memeringkat ide, mengkritik copy Anda dan membandingkan gambar. Replay di atas menunjukkan semuanya.

Tidak perlu coding. Anda memasang ekstensi Claude dan membuat satu API key di OpenAI dan satu di Google; langkah pemasangannya ada di detail di bawah.

The nine tools and a recorded example call →

04 — Harga

Satu pembelian untuk Claude Desktop dan Claude Code.

Tanpa langganan, tanpa kursi, tanpa akun di kami. Periksa di mana Kirat berjalan sebelum membeli:

Di mana Kirat berjalan

Berfungsi di

  • Obrolan Claude Desktop di macOS dan Windows
  • Claude Code di terminal, di VS Code atau di tab Code Claude Desktop
  • Sesi cloud Claude Code, setelah penyiapan sekali per lingkungan cloud Dengan batasan: key yang disimpan sebagai secret jaringan tetap tidak terbaca (pada paket Team dan Enterprise, admin mungkin harus menambahkannya), key dalam variabel lingkungan dapat dibaca oleh semua orang yang menggunakan lingkungan tersebut, dan anggaran harian dihitung per sesi.

Tidak berfungsi di

  • Obrolan di browser (claude.ai) atau di aplikasi seluler Claude
  • Tugas Cowork yang berjalan di cloud
  • Beberapa pengaturan perusahaan: proxy yang masuk dengan akun Windows Anda (NTLM/Kerberos), dan organisasi yang membatasi ekstensi Desktop ke allowlist Tanyakan tim IT Anda terlebih dahulu.

Di mana ia berjalan, selengkapnya · Semua batasan cloud

Ekstensi Desktop + plugin Claude Code

Kirat

$99

Harga peluncuran $99 — 50 pembeli pertama

Lalu $149. Pembelian sekali. Satu unduhan ZIP dengan kedua format. Anda juga memerlukan API key OpenAI dan Gemini: apa yang Anda tanyakan dikirim ke kedua penyedia, dan mereka menagih Anda per penggunaan.

  • 01Ekstensi Claude Desktop dan plugin Claude Code, dalam satu unduhan
  • 02Skrip penyiapan untuk sesi cloud Claude Code
  • 03Kesembilan alat: vote, code review, idea ranking, copy critique, image comparison dan lainnya
  • 04Kontrol biaya: anggaran harian ($5 secara default) yang menahan panggilan yang bisa melebihinya. Best effort, jadi tetapkan juga batas di penyedia
  • 05Lisensi untuk satu orang, di perangkat dan lingkungan cloud Anda sendiri
  • 06Pembaruan kompatibilitas bila memungkinkan — gratis, tetapi tanpa jaminan Berjalan di Claude Desktop (macOS/Windows) dan Claude Code; sesi cloud Claude Code dengan penyiapan sekali saja — bukan di browser atau chat seluler. Tempat berjalannya · Batas cloud

Blueprint

$49

Hanya dokumen — untuk membangun atau mengadaptasi server dewan Anda sendiri dengan agen coding. Tidak diperlukan untuk menggunakan Kirat.

  • 01Spesifikasi: persyaratan terstruktur untuk alat-alatnya
  • 02Keputusan arsitektur, beserta alasan di balik masing-masingnya
  • 03Daftar periksa penerimaan yang dapat diverifikasi sendiri oleh agen
  • 04Data benchmark di balik angka-angka di situs ini

Tanpa kode, tanpa ekstensi yang dapat dipasang.

Pembelian sekali · Pembayaran melalui Lemon Squeezy (merchant of record), PPN ditangani saat checkout · Pengembalian dana: lihat Ketentuan

Penggunaan API dibayarkan langsung ke OpenAI dan Google, melalui akun Anda — $0,02–$0,15 per keputusan dewan dalam pengukuran kami.

Kirat bukan untuk Anda jika…

  • —Anda hanya menggunakan Claude sebagai chat di browser atau di ponsel. Kirat berjalan di Claude Desktop (macOS/Windows) dan Claude Code, serta di sesi cloud Claude Code dengan penyiapan sekali saja — bukan di chat tersebut.
  • —Anda membutuhkan layanan terkelola atau dukungan dalam bentuk apa pun.
  • —Anda tidak ingin memiliki akun API dan penagihan di dua penyedia.
  • —Anda membuat beberapa keputusan per bulan dan senang membandingkan jawaban secara manual di chat terpisah.
  • —Anda menginginkan jawaban yang terdengar pasti. Tugas dewan adalah menunjukkan perpecahan pendapat, dan terkadang perpecahan itulah jawabannya.
  • —Data Anda tidak boleh dikirim ke OpenAI atau Google. Semua yang Anda berikan kepada Kirat dikirim ke keduanya, melalui akun Anda dan ketentuan mereka.

05 — Pertanyaan

Sebelum Anda membeli.

Apa bedanya dengan llm-council atau PAL MCP?

Lihat keduanya terlebih dahulu. llm-council adalah aplikasi web open-source; penulisnya menyebutnya tidak didukung secara sengaja. PAL MCP adalah server MCP gratis dan open-source yang Anda pasang melalui terminal; ia mendukung banyak penyedia dan memiliki alat konsensusnya sendiri. Periksa kondisi terkini keduanya. Jika salah satunya mencakup kebutuhan Anda, gunakan itu.

Perbedaan Kirat adalah paketnya: ia terpasang melalui dialog ekstensi Claude Desktop sendiri dengan kunci Anda di penyimpanan aman sistem operasi, dan ia membawa pengaman anggaran dengan batas harian, batas dua putaran, penentu seri berbasis domain, tiket latar belakang, penanganan kegagalan, 345 tes, kolom hasil berbahasa Inggris, dan penggunaan dengan bahasa sehari-hari.

Jawaban lengkap →

Apakah saya perlu menjadi developer?

Tidak. Jika Anda dapat memasang ekstensi Claude dan membuat dua kunci API, Anda dapat menggunakan Kirat. Anda bertanya kepada Claude dengan bahasa sehari-hari — Tanyakan kepada dewan Kirat: Postgres atau SQLite? Berikan posisi Anda sendiri juga. — dan Claude memanggil alat-alatnya.

Apa yang saya butuhkan?

Claude Desktop di macOS atau Windows. Ia membawa Node sendiri, jadi Anda tidak perlu memasang apa pun lagi. Atau Claude Code dengan Node.js 20 atau lebih baru. Untuk sesi cloud Claude Code, penyiapan sekali saja pada lingkungan cloud Anda (lihat di bawah).

Ditambah satu kunci API OpenAI dan satu kunci API Google Gemini, keduanya dengan penagihan aktif. Kirat juga dapat berjalan dengan satu kunci: dewan kemudian memiliki satu anggota eksternal, dan setiap hasil menyebutkan kunci yang hilang.

Berapa biaya menjalankannya, dan apa yang mencegah tagihan membengkak?

Anda membayar langsung ke OpenAI dan Google untuk apa yang Anda gunakan. Dalam pengukuran kami, satu keputusan dewan memakan biaya $0.02–$0.15, tergantung tingkat upaya dan ukuran input, dan memakan waktu 8 detik hingga 3 menit. Pembuatan gambar sekitar $0.05–$0.20 per panggilan.

Pengaman anggaran mencadangkan biaya kasus terburuk sebelum setiap panggilan dan memblokir panggilan yang dapat melebihi anggaran harian Anda — $5 per hari UTC secara default, dapat disesuaikan. Ini bersifat best-effort, jadi tetapkan juga batas pengeluaran di penyedia. kirat_status menampilkan anggaran dan pengeluaran, dan tidak memakan biaya.

Jawaban lengkap →

Ke mana data dan kunci saya pergi?

Data Anda: semua yang Anda berikan kepada Kirat (pertanyaan, konteks, kode, gambar) langsung menuju OpenAI dan Google, melalui akun Anda dan ketentuan mereka — dari komputer Anda, atau di sesi cloud Claude Code dari lingkungan cloud Anda sendiri melalui proxy jaringan Anthropic untuk lingkungan tersebut. Tidak ada server Kirat, tidak ada akun dengan kami, dan tidak ada telemetri. Kami tidak pernah melihat kunci atau data Anda.

Kunci Anda: Anda memasukkannya di dialog pemasangan atau pengaturan Claude sendiri. Claude Desktop menyimpannya di penyimpanan aman sistem operasi Anda (macOS Keychain, Windows Credential Manager). Claude Code menyimpannya di macOS Keychain; di Windows dan Linux di ~/.claude/.credentials.json, hanya dapat dibaca oleh pengguna Anda. Kami menyarankan proyek penyedia terpisah dengan batas pengeluaran.

Di sesi cloud Claude Code: Kirat berjalan di lingkungan cloud Anda. Anda menyimpan kunci di sana sebagai rahasia jaringan: proxy Anthropic menambahkannya ke permintaan Kirat saat keluar, sehingga tidak ada orang dalam sesi yang dapat membacanya, bahkan Claude. Pada paket Team dan Enterprise, tergantung peran Anda, admin organisasi mungkin harus menambahkannya. Sebagai cadangan, kunci dapat berupa variabel lingkungan dari lingkungan tersebut, yang dapat dibaca oleh semua orang yang menggunakannya.

Di komputer Anda: Kirat menyimpan folder .kirat di folder home Anda berisi penghitung biaya harian, log biaya, 20 hasil terakhir (berisi pertanyaan dan jawaban Anda), log keputusan yang didelegasikan dan gambar yang dihasilkan. Anda dapat menghapusnya kapan saja. Semua sesi Kirat di komputer berbagi folder itu, Desktop dan Code.

Jawaban lengkap →

Bagaimana Kirat bekerja di sesi cloud Claude Code, dan apa batasannya?

Sesi cloud — sesi cloud tab Code, Claude Code di web atau di aplikasi seluler — berjalan di server Anthropic dalam lingkungan cloud. Ekstensi di komputer Anda tidak dapat menjangkaunya. Sebagai gantinya, Anda menyiapkan lingkungan cloud sekali saja:

  • tempelkan blok dari unduhan (cloud/setup-script.txt) di bagian atas skrip penyiapan lingkungan;
  • tambahkan dua kunci Anda — sebagai rahasia jaringan untuk api.openai.com dan generativelanguage.googleapis.com (pada paket Team dan Enterprise, admin mungkin harus menambahkannya; panduan dalam unduhan berisi detailnya); jika tidak, sebagai variabel lingkungan, idealnya bernama KIRAT_OPENAI_API_KEY dan KIRAT_GEMINI_API_KEY, yang tidak bertabrakan dengan OPENAI_API_KEY milik proyek (Kirat juga menerima OPENAI_API_KEY dan GEMINI_API_KEY);
  • akses jaringan: jika Full, tidak ada yang perlu diubah; jika tidak, atur ke Custom (di aplikasi yang lebih baru: Limited) dengan daftar default package-manager, ditambah host unduhan Kirat (dengan kunci di variabel lingkungan, juga api.openai.com).

Skrip mengunduh versi Kirat Anda secara tepat, memverifikasi checksum SHA-256-nya dan memasangnya. Ini penyiapan sekali saja, bukan satu klik. Kami telah mengujinya di kontainer cloud.

Batasannya: kunci di variabel lingkungan dapat dibaca oleh semua orang yang menggunakan lingkungan tersebut (rahasia jaringan menjaganya tidak terbaca). Setiap sesi cloud dimulai dari awal, jadi anggaran harian Kirat dihitung per sesi — tetapkan batas pengeluaran di OpenAI dan Google; di cloud itulah batas nyata Anda. Pekerjaan latar belakang dan hasil terbaru berakhir bersama sesi. Akses jaringan lingkungan harus mengizinkan host unduhan Kirat, dan api.openai.com juga jika kunci Anda berupa variabel lingkungan (Gemini tercakup oleh daftar default). Jika penyiapan gagal, sesi tetap dimulai, hanya tanpa Kirat — dan status gagal dapat tetap tersimpan di cache untuk sesi baru hingga Anda mengedit skrip penyiapan (perubahan apa pun membuat sesi baru menjalankannya lagi).

Alamat unduhan dalam skrip penyiapan adalah bagian dari pembelian Anda, seperti ZIP; jangan publikasikan. Lisensi mencakup lingkungan cloud Anda sendiri. Lingkungan cloud yang dibagikan dengan orang lain memerlukan lisensi untuk setiap orang.

Jawaban lengkap →

Model apa yang digunakan? Bagaimana jika penyedia menghentikan salah satunya?

Secara default gpt-5.6 dari OpenAI dan gemini-3.6-flash dari Google, dengan Claude sebagai pemilih ketiga.

Nama model dan harga adalah pengaturan. Jika penyedia menghentikan sebuah model, Anda memasukkan nama baru dan kedua harganya. Tidak perlu pembaruan.

Claude Desktop mengatakan ekstensi tidak diverifikasi oleh Anthropic. Apakah itu masalah?

Peringatan itu wajar. Claude Desktop menampilkannya untuk ekstensi yang dipasang dari file, dan Kirat dipasang dari file — ia tidak diverifikasi atau ditandatangani oleh Anthropic.

Bagaimana pembaruan bekerja?

Di Claude Desktop, pasang .mcpb baru dengan cara yang sama seperti yang pertama. Kunci dan pengaturan Anda dipertahankan.

Pembaruan kompatibilitas gratis jika memungkinkan, tetapi tidak ada jaminan. Versi baru yang lebih besar mungkin dijual terpisah.

Apakah saya mendapat dukungan?

Tidak. Kirat hadir tanpa dukungan, bantuan pemasangan, atau konsultasi. Pembayaran dan tanda terima ditangani oleh Lemon Squeezy. Jika Kirat tidak berjalan di penyiapan yang didukung, Anda mendapatkan uang Anda kembali; lihat Ketentuan.

Apa yang diizinkan oleh lisensi?

Satu orang, di berapa pun perangkat Anda sendiri dan di lingkungan cloud Anda sendiri. Lingkungan cloud yang dibagikan dengan orang lain memerlukan lisensi untuk setiap orang. Tidak untuk dijual kembali dan tidak untuk didistribusikan ulang. Kirat adalah perangkat lunak berpemilik, bukan open source.

Menggunakan apa yang dihasilkan dewan dalam pekerjaan Anda sendiri, termasuk pekerjaan komersial, diperbolehkan. Ketentuan lengkap ada di Ketentuan.

Untuk apa Blueprint? Apakah saya membutuhkannya?

Anda tidak membutuhkannya untuk menggunakan Kirat. Blueprint ditujukan bagi orang yang ingin membangun atau mengadaptasi server dewan mereka sendiri dengan agen coding.

Isinya hanya dokumen — tanpa kode, tanpa ekstensi yang dapat dipasang: spesifikasi (persyaratan terstruktur untuk alat-alatnya), keputusan arsitektur beserta alasan di balik masing-masingnya, daftar periksa penerimaan yang dapat diverifikasi sendiri oleh agen, dan data benchmark di balik angka-angka di situs ini. Tidak ada harga bundel.

06 — Detail

Detailnya, untuk catatan.

Pemasangan, di mana pun Kirat berjalan dan batas cloud, sembilan alat, dan bukti di balik angka-angka. Buka yang Anda butuhkan.

Pasang Kirat dan hubungkan kunci API Anda

Kirat bukan layanan yang Anda daftari. Ia berjalan di komputer Anda (atau di lingkungan cloud Claude Code Anda sendiri), di dalam Claude, dengan kunci API Anda sendiri. Tidak ada server Kirat dan tidak ada akun dengan kami. Semua yang Anda berikan kepada Kirat langsung menuju OpenAI dan Google, melalui akun Anda — dari komputer Anda, atau di sesi cloud Claude Code dari lingkungan cloud Anda sendiri melalui proxy jaringan Anthropic untuk lingkungan tersebut. Kami tidak pernah melihat kunci atau pertanyaan Anda.

Baru saja membeli Kirat? Ikuti panduan penyiapan langkah demi langkah: pertama Claude mana yang Anda gunakan, lalu hanya langkah-langkah untuknya.

Langkah 1 · bagian yang lambat

Dua kunci API

Satu kunci API OpenAI dan satu kunci API Google Gemini, keduanya dengan penagihan aktif. Yang memakan waktu di sini adalah formulir pendaftaran dan penagihan penyedia. Proyek penyedia terpisah dengan batas pengeluaran adalah ide yang baik.

Izin minimal (opsional): di OpenAI, kunci terbatas sudah cukup, dengan "List models" pada Read dan "Model capabilities" pada Request, sisanya pada None. Kunci Gemini dari Google AI Studio sudah dibatasi ke Gemini API; batasi kunci dari konsol Google Cloud ke Generative Language API.

Sudah memiliki kedua kunci? Lanjut ke langkah 2.

Langkah 2

Pasang

Claude Desktop: ekstrak unduhan. Buka Settings → Extensions → Advanced settings → Install Extension… dan pilih file .mcpb. Masukkan kedua kunci di dialog. Desktop membawa Node sendiri, jadi tidak ada lagi yang perlu dipasang.

Claude Code: ekstrak unduhan dan pindahkan folder kirat yang diekstrak ke folder home Anda, sehingga ~/kirat/claude-code ada. Lalu jalankan perintah di bawah. Memerlukan Node.js 20 atau lebih baru.

Sesi cloud Claude Code: penyiapan sekali saja pada lingkungan cloud Anda, dengan batasan — lihat di bawah.

Langkah 3

Tanya

Periksa pemasangan: Gunakan ekstensi Kirat dan panggil kirat_status. Ia juga memeriksa kedua kunci API dengan OpenAI dan Google, tanpa biaya.

Lalu ajukan pertanyaan nyata: Tanyakan kepada dewan Kirat: Postgres atau SQLite? Berikan posisi Anda sendiri juga. Atau mulai dari templat: di Claude Desktop dari tombol + di kotak pesan, di Claude Code dengan plugin sebagai /kirat:decide, /kirat:review, /kirat:critique atau /kirat:brainstorm. Di sesi cloud Claude Code, ini disebut /mcp__kirat__decide, /mcp__kirat__review, /mcp__kirat__critique dan /mcp__kirat__brainstorm.

# in Claude Code, once ~/kirat/claude-code exists
/plugin marketplace add ~/kirat/claude-code
/plugin install kirat@kirat
# enter both keys when asked; to change them later:
/plugin configure kirat@kirat

Claude Desktop akan memperingatkan bahwa ekstensi tidak diverifikasi oleh Anthropic. Peringatan itu wajar untuk setiap ekstensi yang dipasang dari file — lihat FAQ.

Di mana ia berjalan, secara lengkap, dengan batas cloud Sembilan alat dan contoh panggilan yang terekam

Anda bertanya dalam bahasa sehari-hari. Claude yang melakukan panggilan:

// a real call and a real answer — nothing staged
kirat_vote({
  question: "Cap the coupled effort default, or leave it at maximum?",
  options: ["cap at high", "decouple", "leave as is"],
  ownPosition: { position: "cap at high", reasoning: "…", confidence: 72 }
})
→ outcome:       "completed"
  decision:      "cap at high"
  decisionPath:  "unanimous"
  rounds:        1
  votes:         openai 94, gemini 92,
                 claude 72
  cost:          $0.021

Hasil lain: needs_human (tidak ada mayoritas — Anda yang memutuskan), domain_decision, limited, budget_exhausted. Nilai keyakinan adalah laporan mandiri masing-masing model.

Gbr. 6.3 — Daftar komponen

Sembilan alat yang dipanggil Claude

7 dengan biaya API · 2 tanpa

Pos.AlatFungsinyaBiaya API
01kirat_voteKeputusan melalui pemungutan suara: setiap anggota mengambil posisi, lalu mayoritas dua pertiga, pemilik domain, atau needs_human.Biaya API
02kirat_reviewTinjauan kode. Setiap temuan diverifikasi oleh keluarga model lainnya.Biaya API
03kirat_createKritik draf Anda, biarkan anggota membuat draf, atau peringkatkan varian pendek.Biaya API
04kirat_brainstormIde-ide divergen dalam tiga jalur — sesuai brief, tetangga, pelanggar aturan — diperingkat secara anonim.Biaya API
05kirat_decideKeputusan yang didelegasikan untuk pilihan kerja yang dapat dibalik, dengan veto dan batas harian.Biaya API
06kirat_askTanyakan tepat satu anggota. Tanpa dewan.Biaya API
07kirat_imagePembuatan gambar oleh kedua penyedia, dinilai oleh juri anonim.Biaya API
08kirat_resultAmbil tugas latar belakang dan hasil terbaru.tidak ada
09kirat_statusAnggaran, pengeluaran, anggota yang tersedia, pengaturan, pemeriksaan kunci gratis.tidak ada

"Biaya API" berarti alat tersebut memanggil OpenAI dan Google dengan kunci Anda sendiri, dan Anda membayar langsung ke penyedia tersebut. Replay di atas menunjukkan biaya setiap eksekusi. Kirat sendiri tidak memungut biaya per penggunaan: Anda membelinya sekali. kirat_image dan input gambar bekerja dengan file di komputer Anda, jadi paling cocok untuk Claude Code.

Bukti: keputusan yang terekam, biaya yang terukur, kegagalan yang terdokumentasi