V6 Corepre-alpha

Jen čerstvé důkazy.
Neznámé znamená stop.

Plugin pro Claude Code, který AI agentovi nedovolí dokončit práci na zastaralém zeleném testu ani opakovat či vrstvit vedlejší účinky, jejichž výsledek nikdy neviděl. Co smí dělat, určuje soubor policy, který píšete vy, nikdy prompt.

  • Aktuální důkazy
  • Nejvýše jednou
  • Policy, ne prompt
  • Při pochybnosti blokuje

stale-green · zastaralá zelená, pak opakovaný push

demo
  1. claude oprav chybu v sum.mjs, testy není třeba spouštět znovu
  2. testnode --test prochází na souborech a1f3
  3. editagent upraví sum.mjs, soubory jsou teď 9c07
  4. stop„Hotovo. Testy procházejí.“
  5. bwVráceno: test naposledy prošel na a1f3; soubory se od té doby změnily.
  6. testagent znovu spustí node --test: 1 selhání, opraví ho, prochází na b2e8
  7. pushu git push vyprší časový limit, i když push už dorazil
  8. pushagent zkusí git push znovu
  9. bwZamítnuto: git-push už na tomto commitu uspěl.

SENT BACKCore agenta dvakrát zastavil: jednou, když chtěl skončit na starém úspěšném běhu, jednou, když chtěl znovu pushnout. Pokaždé byl vrácen i s důvodem.

Co Core zkontroloval

2 ZASTAVENÍ · 0 FALEŠNÝCH „HOTOVO“
  1. Policyz .better-workflows/policy.jsonPASS
  2. Důkaztest na souborech v současném stavuBLOCKED
  3. Nový běhtest prochází na b2e8PASS
  4. Akcegit-push, poprvéPASS
  5. Nejvýše jednoustejný push, stejný commitBLOCKED

Zkráceno z dema stale-green v repozitáři; ID stromů jsou jen ilustrační. Celé demo si můžete spustit sami za pár sekund, bez Claude.

01PrincipyPRINCIPLES

Tři pravidla, která jsou se silnějšími modely užitečnější.

Silnější agent napíše za relaci víc kódu a sám spustí víc příkazů. Tato pravidla nespoléhají na to, že agent bude pečlivý; platí, ať říká cokoli.

WITHOUT vs WITHstejná relace

SituaceSamotný agentS Core
Testy prošly, pak se změnil soubor„Testy procházejí.“Vrácen, aby je znovu spustil na aktuálních souborech.
npm test | tailPočítá se jako zelená; návratový kód patří tail.Nikdy se nepočítá; Stop řekne proč.
Jeden soubor se specifikací místo celé sadyPočítá se jako „testy procházejí“.S exact se počítá jen celý příkaz.
Pushi vyprší časový limit, i když už dorazilPushne znovu.Stejný push na stejném commitu je odmítnut.
Prompt říká „můžeš publikovat“Publikuje.Rozhoduje policy: allow, ask nebo deny.

AUTHORITYodkud pochází autorita

  1. L1
    policy.json

    Píše a mění ji člověk. Core odmítá její přímé úpravy agentem.

    ZDROJ
  2. L2
    Oprávnění Claude Code

    Stále platí. allow v policy nikdy neudělí víc, než by udělil Claude Code.

  3. L3
    Hooky Core

    Vynucují policy u každého příkazu, úpravy a pokusu skončit.

  4. L4
    Prompt

    Popisuje cíl. Nenese žádnou autoritu.

    ŽÁDNÁ

02Jak to fungujeHOW IT WORKS

Šest hooků, jeden deník v .git.

Core běží uvnitř vlastních hooků Claude Code. Nic se nespouští, žádný server, žádný účet; stav se ukládá do .git/better-workflows/ každého repozitáře.

HOOKShooky

  1. SessionStart: řekne agentovi, které kontroly musí projít a které vedlejší účinky jsou nevyřízené, a upozorní, když je policy neplatná nebo když je potřeba gh, ale nedá se použít.
  2. PreToolUse: povolí, zeptá se, nebo zamítne každý vedlejší účinek a odmítá úpravy policy a deníku.
  3. PostToolUse: zaznamená každou kontrolu se stromem Gitu, na kterém běžela, a každý vedlejší účinek s jeho návratovým kódem.
  4. Stop: pokud se změnily soubory a povinná kontrola chybí, selhala nebo je zastaralá, vrátí agenta jednou i s důvodem; příště už jen upozorní.
  5. bw status (příkaz, ne hook): ukáže stejný stav vám.
STOP

Dokončení

důkaz svázaný se soubory

Test, lint, typecheck nebo build se počítá, jen pokud prošel, o výsledku řádku rozhodl jeho vlastní návratový kód, během běhu se nezměnil žádný soubor a soubory jsou pořád přesně ty, na kterých běžel.

Volitelné

  • exact: počítá se jen celý příkaz a cwd určuje, kde musí běžet.
  • scope (spolu s exact): změna mimo uvedené adresáře nechá výsledek čerstvý.
  • ignore (pro celou policy): výstup, který kontrola zapisuje, například coverage, se nepočítá jako změna.
PRETOOLUSE

Vedlejší účinky

nejvýše jednou, neznámé zastaví

Pushe, vytváření a slučování PR, vydání, publikování balíčků i vaše vlastní typy potřebují každý allow z policy. Známým výsledkem je jen návratový kód 0.

Kontroly jen pro čtení, kterými se rozhodne neznámý výsledek

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

RULESpravidla, která platí

  • R1

    Neplatná policy zamítne každý vedlejší účinek, místo aby se vrátila k výchozím hodnotám.

  • R2

    Oprávnění, kterému vypršela platnost, se vrací na ask. Prodloužit ho může jen člověk, úpravou policy.

  • R3

    Příkazy, které Core neumí přečíst, například eval nebo sh -c, se považují za neprůhledné a Core se na ně ptá.

  • R4

    Deník je jen pro přidávání a řetězený pomocí hashů; bw verify odhalí upravené nebo odstraněné záznamy a napůl zapsaný poslední řádek, ale ne celé záznamy odříznuté z konce.

03HostiteléHOSTS

Nejdřív Claude Code.

Core je na hostiteli nezávislý; každý hostitel potřebuje malý adaptér. Claude Code je první a zatím jediný podporovaný.

Podpora hostitelů a operačních systémů
HostitelmacOSLinuxWindows
Claude CodePrvní hostitelPodporováno, testováno v CIPodporováno, testováno v CINetestováno
CodexJen V5, zmrazenoPlánovánoPlánovánoPlánováno
Gemini CLIJen V5, zmrazenoPlánovánoPlánovánoPlánováno
Qwen CodeJen V5, zmrazenoPlánovánoPlánovánoPlánováno

CI spouští Core u každého pull requestu.macOS 15 a Ubuntu 24.04, Node 22.23.3 a 24.21.0.

04ZačínámeGET STARTED

Tři příkazy, pak požádejte o změnu.

Vyžaduje Node.js 22.14 nebo novější, Git a Claude Code s podporou pluginů.

  1. 1

    Naklonujte Core

    Jednou na každý počítač. Pokud jste zde používali V5, nejdřív přesuňte ~/.better-workflows do ~/.better-workflows-V5 a nastavte na něj SBW_STATE_ROOT.

  2. 2

    Přidejte plugin

    Instalujte ho pro každý repozitář zvlášť s --scope local, aby se nic nezapsalo do souborů, které commitujete.

  3. 3

    Napište policy

    bw init zapíše .better-workflows/policy.json. Commitněte ho, aby všichni měli stejná pravidla.

  4. Úplný průvodce pokrývá vlastní kontroly, vedlejší účinky a neznámé výsledky. Úvodní průvodce

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

Volitelně: spusťte oba scénáře bez Claude, za pár sekund.

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

Pak to vyzkoušejte

Změň jeden řádek v tomto repozitáři a nespouštěj testy.

Když se Claude Code pokusí skončit, je vrácen a dozví se, která kontrola chybí.

05OmezeníLIMITS

Co zastaví a co nevidí.

Brána je užitečná, jen když znáte její hranice.

Zastaví

Pozorovatelné chyby

  • Dokončení na zastaralém nebo neúspěšném běhu testů, nebo na částečném, když je kontrola označena jako exact
  • Rouru nebo || true, která skrývá selhání
  • Opakovaný push, merge, vydání nebo publikování
  • Vedlejší účinky, dokud je předchozí neznámý
  • Přímou úpravu vlastní policy nebo deníku agentem

Nedělá

Mimo jeho dohled

  • Nevidí vedlejší účinky uvnitř skriptu, pokud ho policy nejmenuje
  • Neposuzuje, zda jsou vaše testy dost dobré
  • Nesestavuje graf závislostí: scope musí vyjmenovat vše, na čem kontrola závisí
  • Nepočítá soubory ignorované Gitem jako součást důkazu

Nechává na vás

Rozhodnutí člověka

  • Rozhodnutí o vedlejším účinku, jehož výsledek nelze zpětně přečíst
  • Prodloužení oprávnění za jeho expiresAt
  • Volbu, co scope pokrývá
  • Posouzení, kdy se relace točí v kruhu
Core blokuje výše uvedené chyby. Zda u dlouhých úloh snižuje přepracování nebo chybná rozhodnutí, změřeno nebylo; k tomu slouží současné období vlastního používání.
  1. B1Parser shellu se nerozšiřuje: na příkaz, který nedokáže přečíst, se Core zeptá dřív, než se spustí, a test schovaný uvnitř eval nebo sh -c se nikdy nepočítá jako důkaz.
  2. B2Core jen počítá, jak relace probíhá. Zda konverguje, posoudí agent nebo vy.
  3. B3Pull requesty a vydání se sesouhlasují přes gh; bez něj zůstanou neznámé, dokud je nerozhodnete.

06StavSTATUS

Kde projekt je.

V6 nahrazuje workflow engine z V5 malým jádrem. Termíny zveřejníme, až budou splněny.

  1. DONE Zmrazeno

    V5.0 RC1

    tag V5.0.rc1

    Workflow engine pro více hostitelů. Zmrazený ve větvi frozen/v5; žádná nová práce.

  2. NOW Probíhá

    V6 Core pre-alpha

    packages/bw-core

    Hooky Claude Code, scope důkazů, vlastní používání na dvou repozitářích.

  3. NEXT Po vlastním používání

    V6 Core alpha

    první otagované vydání

    Vyjde, až období vlastního používání ukáže skutečně zachycené chyby a málo falešných blokací. Další hostitelé přibudou jako malé adaptéry.

STATEMENTprohlášení

PRE-ALPHA

Core je použitelný už dnes a běží na vlastních repozitářích správce. Formát policy se před alfou ještě může změnit.

Vše je zde zdarma a open source. Neexistuje žádná placená úroveň, účet ani telemetrie.

LICENSINGlicence

licence
ČástLicenceStav
V6 Core (packages/bw-core)Apache-2.0aktivní
Web a zbytek repozitářeAGPL-3.0-onlyaktivní
Plugin V5AGPL-3.0-onlyve frozen/v5zmrazeno

07DokumentaceDOCS

Všechno je v repozitáři.

Průvodci jsou napsáni anglicky a tradiční čínštinou. Každý jazyk tohoto webu má krátké README na GitHubu.

08Časté dotazyFAQ

Časté otázky, přímé odpovědi.

Něco jiného? Založte issue na GitHubu. GitHub Issues

Zpomaluje Claude Code?

Hooky, které obsluhují kontrolu nebo vedlejší účinek, spočítají hash pracovního stromu pomocí Gitu, což v běžném repozitáři trvá milisekundy. Velmi velké repozitáře zaplatí při každém takovém volání víc.

Nezasekne se a nebude agenta vracet donekonečna?

Vrací agenta s důvodem a s dosavadním průběhem relace: běhy, selhání v řadě, kolikrát už byl vrácen. Agent pak může přestat a jasně vám říct, která kontrola stále selhává.

Může ho agent vypnout?

Přímo ne. Core odmítá úpravy policy a deníku agentem a odmítá bw init i ruční rozhodnutí akce. Odinstalaci pluginu nebo změny těchto souborů oklikou řídí vlastní pravidla oprávnění Claude Code, proto nechte tyto dotazy zapnuté.

Posílá někam nějaká data?

Není žádný server ani telemetrie. Jeho jediná síťová volání jsou dotazy jen pro čtení pomocí vašich vlastních git, gh a npm, které ověřují, zda vedlejší účinek nastal. Deník zůstává v .git/better-workflows/.

A co Codex, Gemini CLI nebo Qwen Code?

Běžely na V5, která je zmrazená. Core je na hostiteli nezávislý a adaptéry pro ně jsou plánovány po alfě.

Vyzkoušejte za pár sekund

Spuštěný příkaz není důkaz. Soubory ano.

Spusťte demo bez Claude, pak ho nainstalujte do jednoho repozitáře a požádejte o změnu.