V6 Corepre-alpha

Dokaz mora biti svjež.
Nepoznato znači stop.

Claude Code plugin koji AI agentu ne dopušta da završi posao na zastarjelom zelenom testu, niti da ponavlja ili gomila nuspojave čiji rezultat nikad nije vidio. Što smije raditi određuje policy datoteka koju vi pišete, nikad prompt.

  • Aktualni dokazi
  • Najviše jednom
  • Policy, ne prompt
  • Fail-closed

stale-green · zastarjeli zeleni test, pa ponovljeni push

demo
  1. claude popravi bug u sum.mjs, ne treba ponovno pokretati testove
  2. testnode --test prolazi na datotekama a1f3
  3. editagent uređuje sum.mjs, datoteke su sada 9c07
  4. stop„Gotovo. Testovi prolaze.“
  5. bwVraćeno: test je zadnji put prošao na a1f3; datoteke su se od tada promijenile.
  6. testagent ponovno pokreće node --test: 1 neuspjeh, popravlja ga, prolazi na b2e8
  7. pushgit push istekne nakon što je push već prošao
  8. pushagent ponavlja git push
  9. bwOdbijeno: git-push je već uspio na ovom commitu.

SENT BACKCore je dvaput zaustavio agenta: jednom da ne završi na starom prolazu, jednom da ne napravi push ponovno. Oba puta vraćen je s razlogom.

Što je Core provjerio

2 ZAUSTAVLJANJA · 0 LAŽNIH ZAVRŠETAKA
  1. Policyiz .better-workflows/policy.jsonPASS
  2. Dokaztest na datotekama kakve su sadaBLOCKED
  3. Ponovnotest prolazi na b2e8PASS
  4. Akcijagit-push, prvi putPASS
  5. Najviše jednomisti push, isti commitBLOCKED

Skraćeno iz stale-green demo primjera u repozitoriju; ID-ovi stabala su ilustrativni. Pokrenite cijeli demo sami za nekoliko sekundi, bez Claudea.

01NačelaPRINCIPLES

Tri pravila koja postaju korisnija kako modeli jačaju.

Jači agent po sesiji piše više koda i sam pokreće više naredbi. Ova pravila ne ovise o tome je li agent oprezan; vrijede što god on rekao.

WITHOUT vs WITHista sesija

SituacijaSamo agentS Coreom
Testovi su prošli, a onda se datoteka promijenila„Testovi prolaze.“Vraćen da ih ponovno pokrene na trenutnim datotekama.
npm test | tailRačuna se kao zeleno; izlazni kod pripada naredbi tail.Nikad se ne računa; Stop kaže zašto.
Jedna spec datoteka umjesto cijelog suiteaRačuna se kao „testovi prolaze“.Uz exact računa se samo cijela naredba.
Push istekne nakon što je prošaoPonovno pusha.Isti push na istom commitu je odbijen.
Prompt kaže „smiješ objaviti“Objavljuje.Odlučuje policy: allow, ask ili deny.

AUTHORITYodakle dolazi autoritet

  1. L1
    policy.json

    Piše ga i mijenja čovjek. Core odbija agentove izravne izmjene.

    IZVOR
  2. L2
    Dopuštenja Claude Codea

    I dalje vrijede. allow u policyju nikad ne daje više nego što bi dao Claude Code.

  3. L3
    Core hookovi

    Provode policy na svakoj naredbi, izmjeni i zaustavljanju.

  4. L4
    Prompt

    Opisuje cilj. Nema nikakav autoritet.

    NEMA

02Kako radiHOW IT WORKS

Šest hookova, jedan dnevnik u .git.

Core radi unutar vlastitih hookova Claude Codea. Ništa se ne pokreće, nema poslužitelja ni računa; stanje se čuva u .git/better-workflows/ svakog repozitorija.

HOOKShookovi

  1. SessionStart: govori agentu koje provjere moraju proći i koje nuspojave nisu razriješene te upozorava ako policy nije valjan ili je gh potreban, ali neupotrebljiv.
  2. PreToolUse: dopušta, pita ili odbija svaku nuspojavu te odbija izmjene policyja i dnevnika.
  3. PostToolUse: bilježi svaku provjeru s Git stablom na kojem je pokrenuta i svaku nuspojavu s njezinim izlaznim kodom.
  4. Stop: ako su se datoteke promijenile, a obavezna provjera nedostaje, nije uspjela ili je zastarjela, jednom vraća agenta s razlogom; sljedeći put samo upozorava.
  5. bw status (naredba, ne hook): vama prikazuje isto stanje.
STOP

Završetak

dokazi vezani uz datoteke

Test, lint, provjera tipova ili build računa se samo ako je prošao, ako je njegov vlastiti izlazni kod odredio ishod retka, ako se nijedna datoteka nije promijenila dok je radio i ako su datoteke i dalje točno one na kojima je pokrenut.

Neobavezno

  • exact: računa se samo cijela naredba, a cwd određuje gdje se mora pokrenuti.
  • scope (uz exact): promjena izvan navedenih direktorija ostavlja rezultat svježim.
  • ignore (cijeli policy): izlaz koji provjera zapisuje, poput coveragea, ne računa se kao promjena.
PRETOOLUSE

Nuspojave

najviše jednom, nepoznato zaustavlja

Pushevi, stvaranje i mergeanje PR-ova, izdanja, objave paketa i vaše vlastite vrste svaki zahtijevaju allow iz policyja. Samo izlazni kod 0 je poznat rezultat.

Provjere samo za čitanje kojima se razrješava nepoznat rezultat

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

RULESpravila koja vrijede

  • R1

    Nevažeći policy odbija svaku nuspojavu umjesto da se vrati na zadane postavke.

  • R2

    Isteklo dopuštenje vraća se na ask. Produljiti ga može samo čovjek, uređivanjem policyja.

  • R3

    Naredbe koje Core ne može pročitati, poput eval ili sh -c, tretiraju se kao neprozirne i za njih se pita.

  • R4

    Dnevnik se samo nadopisuje i ulančan je hashevima; bw verify otkriva izmijenjene ili uklonjene zapise i napola zapisan zadnji redak, ali ne i cijele zapise odrezane s kraja.

03HostoviHOSTS

Prvo Claude Code.

Core ne ovisi o hostu; svaki host treba mali adapter. Claude Code je prvi i danas jedini podržani.

Podrška za hostove i operacijske sustave
HostmacOSLinuxWindows
Claude CodePrvi hostPodržano, testirano u CI-juPodržano, testirano u CI-juNije testirano
CodexSamo V5, zamrznutoPlaniranoPlaniranoPlanirano
Gemini CLISamo V5, zamrznutoPlaniranoPlaniranoPlanirano
Qwen CodeSamo V5, zamrznutoPlaniranoPlaniranoPlanirano

CI pokreće Core na svakom pull requestu.macOS 15 i Ubuntu 24.04, Node 22.23.3 i 24.21.0.

04PočetakGET STARTED

Tri naredbe, zatim zatražite promjenu.

Potrebni su Node.js 22.14 ili noviji, Git i Claude Code s podrškom za pluginove.

  1. 1

    Klonirajte Core

    Jednom po računalu. Ako ste ovdje koristili V5, najprije premjestite ~/.better-workflows u ~/.better-workflows-V5 i usmjerite SBW_STATE_ROOT na njega.

  2. 2

    Dodajte plugin

    Instalirajte ga po repozitoriju s --scope local, tako da se ništa ne zapisuje u datoteke koje commitate.

  3. 3

    Napišite policy

    bw init zapisuje .better-workflows/policy.json. Commitajte ga kako bi svi imali ista pravila.

  4. Cijeli vodič pokriva vaše vlastite provjere, nuspojave i nepoznate rezultate. Prvi koraci

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

Neobavezno: pokrenite oba scenarija bez Claudea, za nekoliko sekundi.

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

Zatim isprobajte

Promijeni jedan redak u ovom repozitoriju i nemoj pokretati testove.

Kad Claude Code pokuša završiti, bit će vraćen uz poruku koja provjera nedostaje.

05OgraničenjaLIMITS

Što zaustavlja, a što ne vidi.

Provjera je korisna samo ako znate njezine granice.

Zaustavlja

Uočljive pogreške

  • Završetak na zastarjelom ili neuspjelom pokretanju testova, ili na djelomičnom kad je provjera označena s exact
  • Pipe ili || true koji skriva neuspjeh
  • Ponovljeni push, merge, izdanje ili objavu
  • Nuspojave dok je rezultat prethodne nepoznat
  • Agenta koji izravno uređuje vlastiti policy ili dnevnik

Ne radi

Izvan njegova vidokruga

  • Uvid u nuspojave unutar skripte, osim ako policy ne navodi tu skriptu
  • Procjenu jesu li vaši testovi dovoljno dobri
  • Izgradnju grafa ovisnosti: scope mora navesti sve o čemu provjera ovisi
  • Računanje datoteka koje Git ignorira kao dijela dokaza

Prepušta vama

Odluke koje donosi čovjek

  • Razrješavanje nuspojave čiji se rezultat ne može ponovno pročitati
  • Produljenje dopuštenja nakon njegova expiresAt
  • Odabir što scope pokriva
  • Odluku kada se sesija vrti u krug
Core blokira gore navedene pogreške. Nije izmjereno smanjuje li ponovni rad ili pogrešne odluke na dugim zadacima; tome služi trenutno razdoblje vlastite upotrebe.
  1. B1Parser ljuske ne raste: za naredbu koju ne može pročitati pita se prije nego što se pokrene, a test skriven unutar eval ili sh -c nikad se ne računa kao dokaz.
  2. B2Core samo broji kako sesija napreduje. Konvergira li, procjenjuje agent ili vi.
  3. B3Pull requestovi i izdanja usklađuju se pomoću gh; bez njega ostaju nepoznati dok ih vi ne razriješite.

06StatusSTATUS

Gdje je projekt.

V6 zamjenjuje V5 workflow engine malom jezgrom. Datumi se objavljuju kad se ostvare.

  1. DONE Zamrznuto

    V5.0 RC1

    tag V5.0.rc1

    Workflow engine za više hostova. Zamrznut na grani frozen/v5; nema novog razvoja.

  2. NOW U tijeku

    V6 Core pre-alpha

    packages/bw-core

    Claude Code hookovi, scope dokaza, vlastita upotreba na dva repozitorija.

  3. NEXT Nakon vlastite upotrebe

    V6 Core alpha

    prvo označeno izdanje

    Objavljuje se kad razdoblje vlastite upotrebe pokaže stvarne ulove i malo lažnih blokada. Ostali hostovi slijede kao mali adapteri.

STATEMENTizjava

PRE-ALPHA

Core je upotrebljiv već danas i radi na repozitorijima samog održavatelja. Format policyja može se još promijeniti prije alphe.

Sve ovdje je besplatno i otvorenog koda. Nema plaćenog paketa, računa ni telemetrije.

LICENSINGlicenciranje

licenciranje
DioLicencaStanje
V6 Core (packages/bw-core)Apache-2.0aktivno
Web stranica i ostatak repozitorijaAGPL-3.0-onlyaktivno
V5 pluginAGPL-3.0-onlyna frozen/v5zamrznuto

07DokumentacijaDOCS

Sve je u repozitoriju.

Vodiči su napisani na engleskom i tradicionalnom kineskom. Svaki jezik ove stranice ima kratak README na GitHubu.

08Česta pitanjaFAQ

Česta pitanja, izravni odgovori.

Nešto drugo? Otvorite issue na GitHubu. GitHub Issues

Usporava li Claude Code?

Hookovi koji obrađuju provjeru ili nuspojavu hashiraju radno stablo pomoću Gita, što u običnom repozitoriju traje milisekunde. Vrlo veliki repozitoriji plaćaju više pri svakom takvom pozivu.

Hoće li zauvijek vraćati agenta?

Vraća agenta s razlogom i dosadašnjim tijekom sesije: pokretanja, uzastopni neuspjesi, koliko je puta već vraćen. Agent tada može stati i jasno vam reći koja provjera stalno pada.

Može li ga agent isključiti?

Ne izravno. Core odbija agentove izmjene policyja i dnevnika te odbija bw init i ručno razrješavanje akcije. Deinstaliranje plugina, ili mijenjanje tih datoteka zaobilaznim putem, uređuju vlastita pravila dopuštenja Claude Codea, zato ostavite te upite uključenima.

Šalje li išta igdje?

Nema poslužitelja ni telemetrije. Jedini mrežni pozivi su upiti samo za čitanje s vašim vlastitim git, gh i npm, kako bi se potvrdilo je li se nuspojava dogodila. Dnevnik ostaje u .git/better-workflows/.

Što je s Codexom, Gemini CLI-jem ili Qwen Codeom?

Oni su koristili V5, koji je zamrznut. Core ne ovisi o hostu, a adapteri za njih planirani su nakon alphe.

Isprobajte za nekoliko sekundi

Pokretanje naredbe nije dokaz. Datoteke jesu.

Pokrenite demo bez Claudea, zatim ga instalirajte na jedan repozitorij i zatražite promjenu.