V6 Corepre-alpha

Bukti harus segar.
Tak pasti? Berhenti.

Plugin Claude Code yang mencegah agen AI menyelesaikan pekerjaan berdasarkan tes hijau yang sudah usang, serta mengulang atau menumpuk efek samping yang hasilnya belum pernah ia lihat. Apa yang boleh ia lakukan ditentukan oleh berkas policy yang Anda tulis, tidak pernah oleh prompt.

  • Bukti terkini
  • Paling banyak sekali
  • Policy, bukan prompt
  • Fail-closed

stale-green · hijau yang usang, lalu push yang diulang

demo
  1. claude perbaiki bug di sum.mjs, tidak perlu menjalankan ulang tes
  2. testnode --test lulus pada berkas a1f3
  3. editagen mengedit sum.mjs, berkas kini 9c07
  4. stop“Selesai. Tes lulus.”
  5. bwDikembalikan: test terakhir lulus pada a1f3; berkas sudah berubah sejak itu.
  6. testagen menjalankan ulang node --test: 1 gagal, memperbaikinya, lulus pada b2e8
  7. pushgit push timeout padahal push sudah masuk
  8. pushagen mencoba ulang git push
  9. bwDitolak: git-push sudah berhasil pada commit ini.

SENT BACKCore menghentikan agen dua kali: sekali saat hendak selesai berdasarkan hasil lulus yang lama, sekali saat hendak push lagi. Keduanya dikembalikan dengan alasannya.

Yang diperiksa Core

2 KALI DIHENTIKAN · 0 SELESAI PALSU
  1. Policydari .better-workflows/policy.jsonPASS
  2. Buktites pada berkas sebagaimana adanya sekarangBLOCKED
  3. Jalankan ulangtes lulus pada b2e8PASS
  4. Aksigit-push, pertama kaliPASS
  5. Paling banyak sekalipush sama, commit samaBLOCKED

Dipersingkat dari demo stale-green di repositori; id tree hanya ilustrasi. Jalankan sendiri demo lengkapnya dalam beberapa detik, tanpa Claude.

01PrinsipPRINCIPLES

Tiga aturan yang makin berguna saat model makin kuat.

Agen yang lebih kuat menulis lebih banyak kode per sesi dan menjalankan lebih banyak perintah sendiri. Aturan ini tidak bergantung pada kehati-hatian agen; aturan ini tetap berlaku apa pun yang ia katakan.

WITHOUT vs WITHsesi yang sama

SituasiAgen sajaDengan Core
Tes lulus, lalu ada berkas yang berubah“Tes lulus.”Dikembalikan untuk menjalankan ulang pada berkas terkini.
npm test | tailDihitung hijau; exit code-nya milik tail.Tidak pernah dihitung; Stop menjelaskan alasannya.
Satu berkas spec, bukan seluruh suiteDihitung sebagai “tes lulus”.Dengan exact, hanya perintah lengkap yang dihitung.
Push timeout setelah masukPush lagi.Push yang sama pada commit yang sama ditolak.
Prompt bilang “kamu boleh publikasikan”Mempublikasikan.Policy yang memutuskan: allow, ask, atau deny.

AUTHORITYasal otoritas

  1. L1
    policy.json

    Ditulis dan diubah oleh manusia. Core menolak edit langsung dari agen.

    SUMBER
  2. L2
    Izin Claude Code

    Tetap berlaku. allow di policy tidak pernah memberi lebih dari yang diberikan Claude Code.

  3. L3
    Hook Core

    Menegakkan policy pada setiap perintah, edit, dan berhenti.

  4. L4
    Prompt

    Menjelaskan tujuan. Tidak membawa otoritas.

    TIDAK ADA

02Cara kerjaHOW IT WORKS

Enam hook, satu buku besar di .git.

Core berjalan di dalam hook milik Claude Code sendiri. Tidak ada yang perlu dijalankan, tanpa server, tanpa akun; status disimpan di .git/better-workflows/ pada setiap repositori.

HOOKShook-nya

  1. SessionStart: memberi tahu agen pemeriksaan mana yang harus lulus dan efek samping mana yang belum tuntas, serta memberi peringatan jika policy tidak valid atau gh dibutuhkan tetapi tidak bisa dipakai.
  2. PreToolUse: mengizinkan, menanyakan, atau menolak setiap efek samping, dan menolak edit pada policy dan buku besar.
  3. PostToolUse: mencatat setiap pemeriksaan beserta tree Git tempat ia dijalankan, dan setiap efek samping beserta exit code-nya.
  4. Stop: jika ada file yang berubah dan pemeriksaan wajib belum ada, gagal, atau usang, mengembalikan agen sekali dengan alasannya; berikutnya hanya memberi peringatan.
  5. bw status (sebuah perintah, bukan hook): menampilkan status yang sama kepada Anda.
STOP

Menyelesaikan

bukti terikat pada berkas

Tes, lint, typecheck, atau build hanya dihitung jika lulus, exit code-nya sendiri yang menentukan hasil baris itu, tidak ada berkas yang berubah selama ia berjalan, dan berkas masih persis sama dengan saat ia dijalankan.

Opsional

  • exact: hanya perintah lengkap yang dihitung, dan cwd menentukan di mana perintah itu harus dijalankan.
  • scope (dengan exact): perubahan di luar direktori yang disebutkan membuat hasil tetap segar.
  • ignore (seluruh policy): keluaran yang ditulis pemeriksaan, seperti coverage, tidak dihitung sebagai perubahan.
PRETOOLUSE

Efek samping

paling banyak sekali, tidak diketahui berarti berhenti

Push, pembuatan dan merge PR, rilis, publikasi paket, serta jenis kustom Anda sendiri masing-masing membutuhkan allow dari policy. Hanya exit code 0 yang merupakan hasil yang diketahui.

Pemeriksaan read-only untuk menyelesaikan hasil yang tidak diketahui

  • git ls-remote
  • gh pr list / view
  • gh release view
  • npm view

RULESaturan yang selalu berlaku

  • R1

    Policy yang tidak valid menolak setiap efek samping alih-alih kembali ke bawaan.

  • R2

    Izin yang kedaluwarsa kembali ke ask. Hanya manusia yang bisa memperpanjangnya, dengan mengedit policy.

  • R3

    Perintah yang tidak bisa dibaca Core, seperti eval atau sh -c, diperlakukan sebagai buram dan ditanyakan.

  • R4

    Buku besar bersifat append-only dan berantai hash; bw verify mendeteksi entri yang diedit atau dihapus dan baris terakhir yang setengah tertulis, tetapi tidak mendeteksi entri utuh yang dipotong dari bagian akhir.

03HostHOSTS

Claude Code lebih dulu.

Core netral terhadap host; setiap host butuh adapter kecil. Claude Code adalah yang pertama dan satu-satunya yang didukung saat ini.

Dukungan host dan sistem operasi
HostmacOSLinuxWindows
Claude CodeHost pertamaDidukung, diuji di CIDidukung, diuji di CIBelum diuji
CodexHanya V5, dibekukanDirencanakanDirencanakanDirencanakan
Gemini CLIHanya V5, dibekukanDirencanakanDirencanakanDirencanakan
Qwen CodeHanya V5, dibekukanDirencanakanDirencanakanDirencanakan

CI menjalankan Core pada setiap pull request.macOS 15 dan Ubuntu 24.04, Node 22.23.3 dan 24.21.0.

04MulaiGET STARTED

Tiga perintah, lalu minta perubahan.

Membutuhkan Node.js 22.14 atau lebih baru, Git, dan Claude Code dengan dukungan plugin.

  1. 1

    Clone Core

    Sekali per mesin. Jika Anda pernah menjalankan V5 di sini, pindahkan dulu ~/.better-workflows ke ~/.better-workflows-V5 dan arahkan SBW_STATE_ROOT ke sana.

  2. 2

    Tambahkan plugin

    Pasang per repositori dengan --scope local, agar tidak ada yang ditulis ke berkas yang Anda commit.

  3. 3

    Tulis policy

    bw init menulis .better-workflows/policy.json. Commit berkas itu agar semua orang mendapat aturan yang sama.

  4. Panduan lengkap membahas pemeriksaan Anda sendiri, efek samping, dan hasil yang tidak diketahui. Panduan memulai

Claude Code

git clone https://github.com/stephen-taipei/better-workflows ~/.better-workflows
claude plugin marketplace add ~/.better-workflows/packages/bw-core
claude plugin install better-workflows-core@better-workflows --scope local
node ~/.better-workflows/packages/bw-core/bin/bw.mjs init

Opsional: jalankan kedua skenario tanpa Claude, dalam beberapa detik.

node ~/.better-workflows/packages/bw-core/examples/stale-green/demo.mjs

Lalu coba

Ubah satu baris di repositori ini, dan jangan jalankan tesnya.

Saat Claude Code mencoba menyelesaikan, ia dikembalikan dan diberi tahu pemeriksaan mana yang belum ada.

05BatasanLIMITS

Apa yang dihentikannya, dan apa yang tak terlihat olehnya.

Sebuah gate hanya berguna jika Anda tahu batasnya.

Menghentikan

Kesalahan yang teramati

  • Selesai berdasarkan run tes yang usang atau gagal, atau run parsial jika pemeriksaan ditandai exact
  • Pipe atau || true yang menyembunyikan kegagalan
  • Push, merge, rilis, atau publikasi yang diulang
  • Efek samping saat efek samping sebelumnya belum diketahui hasilnya
  • Agen yang mengedit policy atau buku besarnya secara langsung

Tidak

Di luar pandangannya

  • Melihat efek samping di dalam skrip, kecuali policy menyebutkan skrip itu
  • Menilai apakah tes Anda sudah cukup baik
  • Membangun graf dependensi: scope harus menyebutkan semua hal yang menjadi dependensi sebuah pemeriksaan
  • Menghitung berkas yang diabaikan Git sebagai bagian dari bukti

Diserahkan kepada Anda

Keputusan manusia

  • Menyelesaikan efek samping yang hasilnya tidak bisa dibaca kembali
  • Memperpanjang izin melewati expiresAt-nya
  • Memilih apa yang dicakup sebuah scope
  • Memutuskan kapan sebuah sesi berputar-putar
Core memblokir kesalahan di atas. Belum diukur apakah ia mengurangi pengerjaan ulang atau keputusan yang salah pada tugas panjang; itulah tujuan periode pemakaian sendiri saat ini.
  1. B1Parser shell tidak diperluas: perintah yang tidak bisa dibacanya ditanyakan sebelum dijalankan, dan tes yang tersembunyi di dalam eval atau sh -c tidak pernah dihitung sebagai bukti.
  2. B2Core hanya menghitung jalannya sebuah sesi. Apakah sesi itu konvergen, agen atau Anda yang menilai.
  3. B3Pull request dan rilis direkonsiliasi dengan gh; tanpanya, keduanya tetap tidak diketahui sampai Anda menyelesaikannya.

06StatusSTATUS

Posisi proyek saat ini.

V6 mengganti mesin workflow V5 dengan core yang kecil. Tanggal diumumkan setelah tercapai.

  1. DONE Dibekukan

    V5.0 RC1

    tag V5.0.rc1

    Mesin workflow multi-host. Dibekukan di branch frozen/v5; tidak ada pengembangan baru.

  2. NOW Sedang berjalan

    V6 Core pre-alpha

    packages/bw-core

    Hook Claude Code, scope bukti, pemakaian sendiri di dua repositori.

  3. NEXT Setelah pemakaian sendiri

    V6 Core alpha

    rilis bertag pertama

    Dirilis setelah periode pemakaian sendiri menunjukkan tangkapan nyata dan sedikit blokir palsu. Host lain menyusul sebagai adapter kecil.

STATEMENTpernyataan

PRE-ALPHA

Core sudah bisa dipakai hari ini dan berjalan di repositori milik maintainer sendiri. Format policy-nya masih bisa berubah sebelum alpha.

Semua di sini gratis dan open source. Tidak ada paket berbayar, akun, maupun telemetri.

LICENSINGlisensi

lisensi
BagianLisensiStatus
V6 Core (packages/bw-core)Apache-2.0aktif
Situs web dan bagian lain repositoriAGPL-3.0-onlyaktif
Plugin V5AGPL-3.0-onlydi frozen/v5dibekukan

07DokumentasiDOCS

Semuanya ada di repositori.

Panduan ditulis dalam bahasa Inggris dan Tionghoa Tradisional. Setiap bahasa di situs ini memiliki README singkat di GitHub.

08FAQFAQ

Pertanyaan umum, jawaban lugas.

Ada hal lain? Buka issue di GitHub. GitHub Issues

Apakah ini memperlambat Claude Code?

Hook yang menangani pemeriksaan atau efek samping menghitung hash working tree dengan Git, yang hanya butuh beberapa milidetik di repositori biasa. Repositori yang sangat besar membayar lebih banyak di setiap panggilan semacam itu.

Apakah ia bisa terjebak mengembalikan agen selamanya?

Ia mengembalikan agen dengan alasannya dan jalannya sesi sejauh ini: jumlah run, kegagalan berturut-turut, berapa kali sudah dikembalikan. Agen lalu bisa berhenti dan memberi tahu Anda dengan jelas pemeriksaan mana yang terus gagal.

Bisakah agen mematikannya?

Tidak secara langsung. Core menolak edit agen pada policy dan buku besar, serta menolak bw init dan penyelesaian aksi secara manual. Menghapus plugin, atau mengubah file-file itu lewat jalan memutar, diatur oleh aturan izin Claude Code sendiri, jadi biarkan prompt konfirmasi itu tetap aktif.

Apakah ia mengirim sesuatu ke mana pun?

Tidak ada server dan tidak ada telemetri. Satu-satunya panggilan jaringannya adalah pengecekan read-only dengan git, gh, dan npm milik Anda sendiri, untuk memastikan apakah sebuah efek samping sudah terjadi. Buku besar tetap di .git/better-workflows/.

Bagaimana dengan Codex, Gemini CLI, atau Qwen Code?

Mereka menjalankan V5, yang sudah dibekukan. Core netral terhadap host, dan adapter untuk mereka direncanakan setelah alpha.

Coba dalam beberapa detik

Menjalankan perintah bukan bukti. Berkasnya yang jadi bukti.

Jalankan demo tanpa Claude, lalu pasang di satu repositori dan minta perubahan.