V6 Corepre-alpha

Sariwang patunay lang.
Hindi alam? Huminto.

Isang Claude Code plugin na pumipigil sa AI agent na tumapos gamit ang lumang green na test, at umulit o magpatong ng mga side effect na hindi pa nito nakita ang resulta. Ang puwede nitong gawin ay galing sa policy file na ikaw ang sumulat, hindi kailanman sa prompt.

  • Kasalukuyang ebidensya
  • Isang beses lang
  • Policy, hindi prompt
  • Fail-closed

stale-green · isang lumang green, tapos isang inulit na push

demo
  1. claude ayusin ang bug sa sum.mjs, hindi na kailangang patakbuhin ulit ang mga test
  2. testpumasa ang node --test sa mga file na a1f3
  3. editin-edit ng agent ang sum.mjs, 9c07 na ngayon ang mga file
  4. stop“Tapos na. Pumapasa ang mga test.”
  5. bwIbinalik: huling pumasa ang test sa a1f3; nagbago na ang mga file mula noon.
  6. testpinatakbo ulit ng agent ang node --test: 1 failure, inayos ito, pumasa sa b2e8
  7. pushnag-time out ang git push kahit pumasok na ang push
  8. pushinulit ng agent ang git push
  9. bwTinanggihan: nagtagumpay na ang git-push sa commit na ito.

SENT BACKDalawang beses pinigilan ng Core ang agent: isang beses sa pagtatapos batay sa lumang pasado, isang beses sa muling pag-push. Sa parehong pagkakataon, ibinalik ito kasama ang dahilan.

Ang sinuri ng Core

2 PAGPIGIL · 0 MALING DONE
  1. Policymula sa .better-workflows/policy.jsonPASS
  2. Ebidensyatest sa mga file kung ano sila ngayonBLOCKED
  3. Rerunpumasa ang test sa b2e8PASS
  4. Aksyongit-push, unang besesPASS
  5. Isang beses langparehong push, parehong commitBLOCKED

Pinaikli mula sa stale-green demo sa repository; halimbawa lang ang mga tree id. Patakbuhin mo mismo ang buong demo sa ilang segundo, nang walang Claude.

01Mga prinsipyoPRINCIPLES

Tatlong patakaran na lalong nagiging kapaki-pakinabang habang lumalakas ang mga model.

Ang mas malakas na agent ay sumusulat ng mas maraming code bawat session at nagpapatakbo ng mas maraming command nang mag-isa. Hindi umaasa ang mga patakarang ito sa pag-iingat ng agent; tumatayo ang mga ito anuman ang sabihin nito.

WITHOUT vs WITHang parehong session

SitwasyonAgent langMay Core
Pumasa ang mga test, tapos nagbago ang isang file“Pumapasa ang mga test.”Ibinabalik para patakbuhin ulit sa kasalukuyang mga file.
npm test | tailBinibilang na green; sa tail ang exit code.Hindi kailanman bilang; sinasabi ng Stop kung bakit.
Isang spec file sa halip na buong suiteBinibilang na “pumapasa ang mga test.”Kapag may exact, ang buong command lang ang bilang.
Nag-time out ang push pagkatapos pumasokNagpu-push ulit.Tinatanggihan ang parehong push sa parehong commit.
Sabi ng prompt “puwede kang mag-publish”Nagpa-publish.Ang policy ang nagpapasya: allow, ask o deny.

AUTHORITYkung saan galing ang awtoridad

  1. L1
    policy.json

    Isinusulat at binabago ng tao. Tinatanggihan ng Core ang direktang pag-edit dito ng agent.

    SOURCE
  2. L2
    Mga pahintulot ng Claude Code

    Umiiral pa rin. Hindi kailanman nagbibigay ang allow sa policy ng higit sa ibibigay ng Claude Code.

  3. L3
    Mga hook ng Core

    Ipinapatupad ang policy sa bawat command, edit at pagtigil.

  4. L4
    Ang prompt

    Inilalarawan ang layunin. Walang dalang awtoridad.

    WALA

02Paano ito gumaganaHOW IT WORKS

Anim na hook, isang ledger sa .git.

Tumatakbo ang Core sa loob ng sariling mga hook ng Claude Code. Walang kailangang i-start, walang server, walang account; nasa .git/better-workflows/ ng bawat repository ang state.

HOOKSang mga hook

  1. SessionStart: sinasabi sa agent kung aling mga check ang dapat pumasa at aling mga side effect ang hindi pa settled, at nagbababala kung invalid ang policy o kung kailangan ang gh pero hindi ito magamit.
  2. PreToolUse: pinapayagan, itinatanong o tinatanggihan ang bawat side effect, at tinatanggihan ang mga edit sa policy at sa ledger.
  3. PostToolUse: itinatala ang bawat check kasama ang Git tree kung saan ito tumakbo, at ang bawat side effect kasama ang exit code nito.
  4. Stop: kung may nagbagong file at may kinakailangang check na kulang, pumalya o luma na, ibinabalik ang agent nang isang beses kasama ang dahilan; sa susunod, nagbababala na lang ito.
  5. bw status (isang command, hindi hook): ipinapakita sa iyo ang parehong state.
STOP

Pagtatapos

ebidensyang nakatali sa mga file

Bilang lang ang test, lint, typecheck o build kung pumasa ito, ang sarili nitong exit code ang nagpasya sa resulta ng linya, walang file na nagbago habang tumatakbo ito, at ang mga file ay eksaktong pareho pa rin sa pinatakbuhan nito.

Opsyonal

  • exact: ang buong command lang ang bilang, at itinatakda ng cwd kung saan ito dapat tumakbo.
  • scope (kasama ang exact): ang pagbabago sa labas ng mga nakapangalang directory ay hindi nagpapaluma sa resulta.
  • ignore (buong policy): ang output na isinusulat ng isang check, gaya ng coverage, ay hindi binibilang na pagbabago.
PRETOOLUSE

Mga side effect

isang beses lang, humihinto kapag hindi alam

Ang mga push, paggawa at pag-merge ng PR, release, pag-publish ng package at ang sarili mong mga custom na uri ay nangangailangan ng allow mula sa policy. Exit code 0 lang ang alam na resulta.

Mga read-only na check na ginagamit para lutasin ang hindi alam na resulta

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

RULESmga patakarang laging umiiral

  • R1

    Tinatanggihan ng invalid na policy ang lahat ng side effect sa halip na bumalik sa mga default.

  • R2

    Bumabalik sa ask ang expired na pahintulot. Tao lang ang makakapagpahaba nito, sa pag-edit ng policy.

  • R3

    Ang mga command na hindi mabasa ng Core, gaya ng eval o sh -c, ay itinuturing na opaque at itinatanong.

  • R4

    Append-only at hash-chained ang ledger; natutukoy ng bw verify ang mga entry na na-edit o inalis at ang kalahating-naisulat na huling linya, pero hindi ang buong mga entry na pinutol mula sa dulo.

03Mga hostHOSTS

Claude Code muna.

Host-neutral ang Core; bawat host ay nangangailangan ng maliit na adapter. Ang Claude Code ang una at ang tanging suportado sa ngayon.

Suporta sa host at operating system
HostmacOSLinuxWindows
Claude CodeUnang hostSuportado, tinetest sa CISuportado, tinetest sa CIHindi pa natetest
CodexV5 lang, naka-freezeNakaplanoNakaplanoNakaplano
Gemini CLIV5 lang, naka-freezeNakaplanoNakaplanoNakaplano
Qwen CodeV5 lang, naka-freezeNakaplanoNakaplanoNakaplano

Pinapatakbo ng CI ang Core sa bawat pull request.macOS 15 at Ubuntu 24.04, Node 22.23.3 at 24.21.0.

04MagsimulaGET STARTED

Tatlong command, tapos humiling ng pagbabago.

Kailangan ng Node.js 22.14 o mas bago, Git, at Claude Code na may suporta sa plugin.

  1. 1

    I-clone ang Core

    Isang beses bawat machine. Kung nagpatakbo ka ng V5 dito, ilipat muna ang ~/.better-workflows sa ~/.better-workflows-V5 at ituro doon ang SBW_STATE_ROOT.

  2. 2

    Idagdag ang plugin

    I-install ito bawat repository gamit ang --scope local, para walang maisulat sa mga file na kino-commit mo.

  3. 3

    Sumulat ng policy

    Isinusulat ng bw init ang .better-workflows/policy.json. I-commit ito para pareho ang mga patakaran ng lahat.

  4. Saklaw ng buong walkthrough ang sarili mong mga check, side effect at hindi alam na resulta. Pagsisimula

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

Opsyonal: patakbuhin ang dalawang sitwasyon nang walang Claude, sa ilang segundo.

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

Tapos subukan ito

Magbago ng isang linya sa repository na ito, at huwag patakbuhin ang mga test.

Kapag sinubukan ng Claude Code na tapusin, ibinabalik ito at sinasabi kung aling check ang kulang.

05Mga limitasyonLIMITS

Ang pinipigilan nito, at ang hindi nito nakikita.

Kapaki-pakinabang lang ang isang gate kung alam mo ang mga hangganan nito.

Pinipigilan

Mga nakikitang pagkakamali

  • Pagtatapos sa luma o pumalyang test run, o sa bahagyang run kapag naka-mark na exact ang check
  • Pipe o || true na nagtatago ng failure
  • Inulit na push, merge, release o publish
  • Mga side effect habang hindi pa alam ang resulta ng nauna
  • Direktang pag-edit ng agent sa policy o ledger nito

Hindi ginagawa

Labas sa nakikita nito

  • Makita ang mga side effect sa loob ng script, maliban kung pinapangalanan ng policy ang script na iyon
  • Husgahan kung sapat na ang galing ng iyong mga test
  • Bumuo ng dependency graph: dapat pangalanan ng scope ang lahat ng inaasahan ng isang check
  • Bilangin ang mga file na ini-ignore ng Git bilang bahagi ng ebidensya

Iniiwan sa iyo

Mga pasya ng tao

  • Paglutas sa side effect na hindi na mababasa pabalik ang resulta
  • Pagpapahaba ng pahintulot lampas sa expiresAt nito
  • Pagpili kung ano ang saklaw ng isang scope
  • Pagpapasya kung kailan paikot-ikot na lang ang isang session
Hinaharangan ng Core ang mga pagkakamali sa itaas. Hindi pa nasusukat kung nababawasan nito ang pag-uulit ng trabaho o maling pasya sa mahahabang gawain; iyon ang layunin ng kasalukuyang panahon ng sariling paggamit.
  1. B1Hindi lumalaki ang shell parser: ang command na hindi nito mabasa ay itinatanong bago ito tumakbo, at ang test na nakatago sa loob ng eval o sh -c ay hindi kailanman bilang na ebidensya.
  2. B2Binibilang lang ng Core kung paano tumatakbo ang isang session. Ang agent o ikaw ang hahatol kung papunta ito sa solusyon.
  3. B3Nire-reconcile ang mga pull request at release gamit ang gh; kung wala ito, mananatili silang hindi alam hanggang lutasin mo.

06StatusSTATUS

Nasaan na ang proyekto.

Pinapalitan ng V6 ang workflow engine ng V5 ng isang maliit na core. Ibinibigay ang mga petsa kapag naabot na.

  1. DONE Naka-freeze

    V5.0 RC1

    tag V5.0.rc1

    Multi-host na workflow engine. Naka-freeze sa branch na frozen/v5; wala nang bagong trabaho.

  2. NOW Kasalukuyang ginagawa

    V6 Core pre-alpha

    packages/bw-core

    Mga Claude Code hook, evidence scope, sariling paggamit sa dalawang repository.

  3. NEXT Pagkatapos ng sariling paggamit

    V6 Core alpha

    unang naka-tag na release

    Ilalabas kapag ipinakita ng panahon ng sariling paggamit ang tunay na mga nahuli at kaunting maling pagharang. Susunod ang iba pang host bilang maliliit na adapter.

STATEMENTpahayag

PRE-ALPHA

Magagamit na ang Core ngayon at tumatakbo sa sariling mga repository ng maintainer. Puwede pang magbago ang format ng policy nito bago ang alpha.

Libre at open source ang lahat dito. Walang bayad na tier, account o telemetry.

LICENSINGlisensya

lisensya
BahagiLisensyaKalagayan
V6 Core (packages/bw-core)Apache-2.0aktibo
Website at ang natitirang bahagi ng repositoryAGPL-3.0-onlyaktibo
V5 pluginAGPL-3.0-onlysa frozen/v5naka-freeze

07DocsDOCS

Nasa repository ang lahat.

Nakasulat ang mga gabay sa English at Traditional Chinese. Bawat wika sa site na ito ay may maikling README sa GitHub.

08FAQFAQ

Mga karaniwang tanong, diretsong sagot.

May iba pa? Magbukas ng issue sa GitHub. GitHub Issues

Pinababagal ba nito ang Claude Code?

Hina-hash ng mga hook na humahawak ng check o side effect ang working tree gamit ang Git, na tumatagal ng ilang millisecond sa karaniwang repository. Mas malaki ang gastos sa bawat ganitong tawag sa napakalalaking repository.

Maiipit ba ito sa walang katapusang pagbabalik sa agent?

Ibinabalik nito ang agent kasama ang dahilan at kung paano tumakbo ang session hanggang ngayon: mga run, sunod-sunod na failure, ilang beses nang naibalik. Puwede nang huminto ang agent at sabihin sa iyo nang malinaw kung aling check ang paulit-ulit na pumapalya.

Puwede ba itong i-off ng agent?

Hindi direkta. Tinatanggihan ng Core ang mga edit ng agent sa policy at sa ledger, at tinatanggihan ang bw init at ang manu-manong pag-settle ng isang aksyon. Ang pag-uninstall ng plugin, o ang pagbabago sa mga file na iyon sa paikot-ikot na paraan, ay saklaw ng sariling mga permission rule ng Claude Code, kaya panatilihing naka-on ang mga prompt na iyon.

May ipinapadala ba ito kahit saan?

Walang server at walang telemetry. Ang tanging network call nito ay mga read-only na check gamit ang sarili mong git, gh at npm, para kumpirmahin kung nangyari ang isang side effect. Nananatili ang ledger sa .git/better-workflows/.

Paano ang Codex, Gemini CLI o Qwen Code?

Pinatakbo nila ang V5, na naka-freeze na. Host-neutral ang Core, at nakaplano ang mga adapter para sa kanila pagkatapos ng alpha.

Subukan sa ilang segundo

Hindi patunay ang pagpapatakbo ng command. Ang mga file ang patunay.

Patakbuhin ang demo nang walang Claude, tapos i-install ito sa isang repository at humiling ng pagbabago.