V6 Corepre-alpha

ភស្តុតាងត្រូវតែថ្មី។
មិនដឹង ត្រូវឈប់។

plugin Claude Code ដែលរារាំង AI agent មិនឱ្យបញ្ចប់ការងារដោយផ្អែកលើតេស្តពណ៌បៃតងដែលហួសសម័យ និងមិនឱ្យធ្វើ side effect ម្តងទៀត ឬត្រួតគ្នា ដែលវាមិនដែលឃើញលទ្ធផល។ អ្វីដែលវាអាចធ្វើបាន មកពីឯកសារ policy ដែលអ្នកសរសេរ មិនដែលមកពី prompt ឡើយ។

  • ភស្តុតាងបច្ចុប្បន្ន
  • យ៉ាងច្រើនតែម្តង
  • policy មិនមែន prompt
  • Fail-closed

stale-green · បៃតងហួសសម័យ បន្ទាប់មក push ដែលព្យាយាមម្តងទៀត

demo
  1. claude ជួសជុល bug ក្នុង sum.mjs មិនចាំបាច់ដំណើរការតេស្តម្តងទៀតទេ
  2. testnode --test ឆ្លងកាត់លើឯកសារ a1f3
  3. editagent កែ sum.mjs ឥឡូវឯកសារគឺ 9c07
  4. stop“រួចហើយ។ តេស្តឆ្លងកាត់។”
  5. bwបញ្ជូនត្រឡប់៖ test ឆ្លងកាត់ចុងក្រោយលើ a1f3; ឯកសារបានផ្លាស់ប្តូរតាំងពីពេលនោះ។
  6. testagent ដំណើរការ node --test ម្តងទៀត៖ បរាជ័យ 1 ជួសជុលវា ឆ្លងកាត់លើ b2e8
  7. pushgit push អស់ពេល ក្រោយពេល push បានទៅដល់រួចហើយ
  8. pushagent ព្យាយាម git push ម្តងទៀត
  9. bwបដិសេធ៖ git-push បានជោគជ័យរួចហើយនៅ commit នេះ។

SENT BACKCore បានបញ្ឈប់ agent ពីរដង៖ ម្តងពីការបញ្ចប់ដោយផ្អែកលើលទ្ធផលជាប់ចាស់ ម្តងទៀតពីការ push ជាថ្មី។ ទាំងពីរដង វាត្រូវបានបញ្ជូនត្រឡប់មកវិញ ជាមួយមូលហេតុ។

អ្វីដែល Core បានពិនិត្យ

ឈប់ 2 ដង · DONE ក្លែងក្លាយ 0
  1. Policyពី .better-workflows/policy.jsonPASS
  2. ភស្តុតាងតេស្តលើឯកសារតាមស្ថានភាពបច្ចុប្បន្នBLOCKED
  3. ដំណើរការម្តងទៀតតេស្តឆ្លងកាត់លើ b2e8PASS
  4. សកម្មភាពgit-push លើកដំបូងPASS
  5. យ៉ាងច្រើនតែម្តងpush ដដែល commit ដដែលBLOCKED

សង្ខេបពីការបង្ហាញ stale-green ក្នុង repository; tree id គ្រាន់តែជាឧទាហរណ៍។ ដំណើរការការបង្ហាញពេញលេញដោយខ្លួនឯងក្នុងរយៈពេលប៉ុន្មានវិនាទី ដោយមិនប្រើ Claude។

01គោលការណ៍PRINCIPLES

ច្បាប់បីដែលកាន់តែមានប្រយោជន៍ នៅពេលម៉ូដែលកាន់តែខ្លាំង។

agent ដែលខ្លាំងជាងសរសេរកូដច្រើនជាងក្នុងមួយ session ហើយដំណើរការពាក្យបញ្ជាច្រើនជាងដោយខ្លួនឯង។ ច្បាប់ទាំងនេះមិនពឹងលើការប្រុងប្រយ័ត្នរបស់ agent ទេ វានៅតែមានសុពលភាព ទោះ agent និយាយអ្វីក៏ដោយ។

WITHOUT vs WITHsession ដដែល

ស្ថានភាពagent តែឯងជាមួយ Core
តេស្តឆ្លងកាត់ បន្ទាប់មកឯកសារមួយបានផ្លាស់ប្តូរ“តេស្តឆ្លងកាត់។”បញ្ជូនត្រឡប់ឱ្យដំណើរការម្តងទៀតលើឯកសារបច្ចុប្បន្ន។
npm test | tailរាប់ថាបៃតង; exit code ជារបស់ tail។មិនដែលរាប់ទេ; Stop ប្រាប់មូលហេតុ។
ឯកសារ spec មួយជំនួសឱ្យ suite ទាំងមូលរាប់ថា “តេស្តឆ្លងកាត់”។ជាមួយ exact មានតែពាក្យបញ្ជាពេញលេញប៉ុណ្ណោះដែលរាប់។
push អស់ពេល ក្រោយពេលទៅដល់រួចpush ម្តងទៀត។push ដដែលនៅ commit ដដែលត្រូវបានបដិសេធ។
prompt និយាយថា “អ្នកអាច publish បាន”publish។policy ជាអ្នកសម្រេច៖ allow, ask ឬ deny។

AUTHORITYសិទ្ធិអំណាចមកពីណា

  1. L1
    policy.json

    សរសេរ និងកែប្រែដោយមនុស្ស។ Core បដិសេធការកែដោយផ្ទាល់របស់ agent លើវា។

    ប្រភព
  2. L2
    សិទ្ធិរបស់ Claude Code

    នៅតែអនុវត្ត។ allow ក្នុង policy មិនដែលផ្តល់ច្រើនជាងអ្វីដែល Claude Code នឹងផ្តល់ឡើយ។

  3. L3
    hook របស់ Core

    អនុវត្ត policy លើរាល់ពាក្យបញ្ជា ការកែ និងការឈប់។

  4. L4
    prompt

    ពិពណ៌នាគោលដៅ។ គ្មានសិទ្ធិអំណាចទេ។

    គ្មាន

02របៀបដំណើរការHOW IT WORKS

hook ប្រាំមួយ សៀវភៅកត់ត្រាមួយក្នុង .git។

Core ដំណើរការនៅក្នុង hook ផ្ទាល់របស់ Claude Code។ គ្មានអ្វីត្រូវចាប់ផ្តើម គ្មាន server គ្មានគណនី; ស្ថានភាពរក្សាទុកក្នុង .git/better-workflows/ នៃ repository នីមួយៗ។

HOOKShook ទាំងនោះ

  1. SessionStart៖ ប្រាប់ agent ថាការពិនិត្យណាខ្លះត្រូវតែជាប់ និង side effect ណាខ្លះមិនទាន់សម្រេច ហើយព្រមាន ប្រសិនបើ policy មិនត្រឹមត្រូវ ឬត្រូវការ gh តែប្រើមិនបាន។
  2. PreToolUse៖ អនុញ្ញាត សួរ ឬបដិសេធ side effect នីមួយៗ ហើយបដិសេធការកែ policy និងសៀវភៅកត់ត្រា។
  3. PostToolUse៖ កត់ត្រាការពិនិត្យនីមួយៗជាមួយ Git tree ដែលវាបានដំណើរការលើ និង side effect នីមួយៗជាមួយ exit code របស់វា។
  4. Stop៖ ប្រសិនបើឯកសារបានផ្លាស់ប្តូរ ហើយការពិនិត្យចាំបាច់នៅខ្វះ បរាជ័យ ឬហួសសម័យ វាបញ្ជូន agent ត្រឡប់ម្តង ជាមួយមូលហេតុ; ដងបន្ទាប់ វាគ្រាន់តែព្រមានប៉ុណ្ណោះ។
  5. bw status (ជាពាក្យបញ្ជា មិនមែន hook ទេ)៖ បង្ហាញស្ថានភាពដដែលនោះដល់អ្នក។
STOP

ការបញ្ចប់

ភស្តុតាងភ្ជាប់នឹងឯកសារ

តេស្ត lint typecheck ឬ build រាប់បានលុះត្រាតែវាឆ្លងកាត់ exit code ផ្ទាល់របស់វាជាអ្នកសម្រេចលទ្ធផលបន្ទាត់នោះ គ្មានឯកសារណាផ្លាស់ប្តូរពេលវាកំពុងដំណើរការ ហើយឯកសារនៅតែដូចគ្នាបេះបិទនឹងពេលវាដំណើរការ។

ជាជម្រើស

  • exact៖ មានតែពាក្យបញ្ជាពេញលេញប៉ុណ្ណោះដែលរាប់ ហើយ cwd កំណត់ទីតាំងដែលវាត្រូវដំណើរការ។
  • scope (ជាមួយ exact)៖ ការផ្លាស់ប្តូរនៅក្រៅថតដែលបានកំណត់ ទុកលទ្ធផលឱ្យនៅថ្មី។
  • ignore (ទូទាំង policy)៖ output ដែលការពិនិត្យសរសេរ ដូចជា coverage មិនត្រូវរាប់ជាការផ្លាស់ប្តូរទេ។
PRETOOLUSE

Side effect

យ៉ាងច្រើនតែម្តង មិនដឹង គឺឈប់

push ការបង្កើត និង merge PR ការ release ការ publish package និងប្រភេទផ្ទាល់ខ្លួនរបស់អ្នក សុទ្ធតែត្រូវការ allow ពី policy។ មានតែ exit code 0 ប៉ុណ្ណោះជាលទ្ធផលដែលដឹង។

ការពិនិត្យបែបអានតែប៉ុណ្ណោះ សម្រាប់សម្រេចលទ្ធផលដែលមិនដឹង

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

RULESច្បាប់ដែលតែងតែមានសុពលភាព

  • R1

    policy មិនត្រឹមត្រូវ បដិសេធរាល់ side effect ជំនួសឱ្យការត្រឡប់ទៅតម្លៃលំនាំដើម។

  • R2

    សិទ្ធិដែលផុតកំណត់ ត្រឡប់ទៅ ask វិញ។ មានតែមនុស្សប៉ុណ្ណោះអាចពន្យារវា ដោយកែ policy។

  • R3

    ពាក្យបញ្ជាដែល Core អានមិនបាន ដូចជា eval ឬ sh -c ត្រូវចាត់ទុកថាស្រអាប់ ហើយត្រូវសួរ។

  • R4

    សៀវភៅកត់ត្រាអាចបន្ថែមបានតែប៉ុណ្ណោះ និងភ្ជាប់គ្នាដោយ hash; bw verify រកឃើញធាតុដែលត្រូវបានកែ ឬលុប និងបន្ទាត់ចុងក្រោយដែលសរសេរបានពាក់កណ្តាល ប៉ុន្តែមិនរកឃើញធាតុទាំងមូលដែលត្រូវបានកាត់ចេញពីចុងទេ។

03HostHOSTS

Claude Code មុនគេ។

Core មិនជាប់នឹង host ណាមួយទេ; host នីមួយៗត្រូវការ adapter តូចមួយ។ Claude Code ជា host ដំបូង ហើយជា host តែមួយគត់ដែលគាំទ្រនាពេលនេះ។

ការគាំទ្រ host និងប្រព័ន្ធប្រតិបត្តិការ
HostmacOSLinuxWindows
Claude Codehost ដំបូងគាំទ្រ បានតេស្តក្នុង CIគាំទ្រ បានតេស្តក្នុង CIមិនទាន់តេស្ត
Codexតែ V5 បង្កកគ្រោងទុកគ្រោងទុកគ្រោងទុក
Gemini CLIតែ V5 បង្កកគ្រោងទុកគ្រោងទុកគ្រោងទុក
Qwen Codeតែ V5 បង្កកគ្រោងទុកគ្រោងទុកគ្រោងទុក

CI ដំណើរការ Core លើរាល់ pull request។macOS 15 និង Ubuntu 24.04, Node 22.23.3 និង 24.21.0។

04ចាប់ផ្តើមGET STARTED

ពាក្យបញ្ជាបី រួចសុំការផ្លាស់ប្តូរ។

ត្រូវការ Node.js 22.14 ឬថ្មីជាង, Git និង Claude Code ដែលគាំទ្រ plugin។

  1. 1

    Clone Core

    ម្តងក្នុងមួយម៉ាស៊ីន។ ប្រសិនបើអ្នកធ្លាប់ដំណើរការ V5 នៅទីនេះ សូមផ្លាស់ ~/.better-workflows ទៅ ~/.better-workflows-V5 ជាមុនសិន ហើយកំណត់ SBW_STATE_ROOT ឱ្យចង្អុលទៅវា។

  2. 2

    បន្ថែម plugin

    ដំឡើងវាតាម repository នីមួយៗជាមួយ --scope local ដើម្បីកុំឱ្យមានអ្វីសរសេរចូលឯកសារដែលអ្នក commit។

  3. 3

    សរសេរ policy

    bw init សរសេរ .better-workflows/policy.json។ commit វា ដើម្បីឱ្យគ្រប់គ្នាមានច្បាប់ដូចគ្នា។

  4. មគ្គុទ្ទេសក៍ពេញលេញពន្យល់ពីការពិនិត្យ side effect និងលទ្ធផលមិនដឹង របស់អ្នកផ្ទាល់។ មគ្គុទ្ទេសក៍ចាប់ផ្តើម

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

ជាជម្រើស៖ ដំណើរការសេណារីយ៉ូទាំងពីរដោយមិនប្រើ Claude ក្នុងរយៈពេលប៉ុន្មានវិនាទី។

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

បន្ទាប់មកសាកល្បង

ប្តូរបន្ទាត់មួយក្នុង repository នេះ ហើយកុំដំណើរការតេស្ត។

នៅពេល Claude Code ព្យាយាមបញ្ចប់ វានឹងត្រូវបានបញ្ជូនត្រឡប់មកវិញ ហើយត្រូវបានប្រាប់ថាការពិនិត្យណាដែលខ្វះ។

05ដែនកំណត់LIMITS

អ្វីដែលវាទប់ស្កាត់ និងអ្វីដែលវាមើលមិនឃើញ។

gate មានប្រយោជន៍ លុះត្រាតែអ្នកដឹងពីព្រំដែនរបស់វា។

ទប់ស្កាត់

កំហុសដែលអាចមើលឃើញ

  • ការបញ្ចប់ដោយផ្អែកលើការដំណើរការតេស្តដែលហួសសម័យ ឬបរាជ័យ ឬលើការដំណើរការមិនពេញលេញ នៅពេលការពិនិត្យត្រូវបានសម្គាល់ថា exact
  • pipe ឬ || true ដែលលាក់ការបរាជ័យ
  • push, merge, release ឬ publish ម្តងទៀត
  • side effect ខណៈ side effect មុននៅមិនដឹងលទ្ធផល
  • agent កែ policy ឬសៀវភៅកត់ត្រារបស់ខ្លួនដោយផ្ទាល់

មិនធ្វើ

ក្រៅការមើលឃើញរបស់វា

  • មើលឃើញ side effect នៅក្នុង script លុះត្រាតែ policy ដាក់ឈ្មោះ script នោះ
  • វាយតម្លៃថាតេស្តរបស់អ្នកល្អគ្រប់គ្រាន់ឬអត់
  • បង្កើតក្រាហ្វ dependency៖ scope ត្រូវដាក់ឈ្មោះអ្វីៗទាំងអស់ដែលការពិនិត្យពឹងផ្អែក
  • រាប់ឯកសារដែល Git មិនអើពើ ជាផ្នែកនៃភស្តុតាង

ទុកឱ្យអ្នក

ការសម្រេចចិត្តរបស់មនុស្ស

  • ការសម្រេចលើ side effect ដែលលទ្ធផលមិនអាចអានត្រឡប់មកវិញបាន
  • ការពន្យារសិទ្ធិហួស expiresAt របស់វា
  • ការជ្រើសរើសថា scope គ្របដណ្តប់អ្វីខ្លះ
  • ការសម្រេចថាពេលណា session កំពុងវិលជុំ
Core ទប់ស្កាត់កំហុសខាងលើ។ មិនទាន់បានវាស់ថាវាកាត់បន្ថយការធ្វើការងារឡើងវិញ ឬការសម្រេចចិត្តខុស ក្នុងកិច្ចការវែងៗឬអត់ទេ; នោះជាគោលបំណងនៃរយៈពេលប្រើប្រាស់ផ្ទាល់ខ្លួនបច្ចុប្បន្ន។
  1. B1shell parser មិនពង្រីកទេ៖ ពាក្យបញ្ជាដែលវាអានមិនបាន ត្រូវសួរមុនពេលវាដំណើរការ ហើយតេស្តដែលលាក់ក្នុង eval ឬ sh -c មិនដែលរាប់ជាភស្តុតាងទេ។
  2. B2Core គ្រាន់តែរាប់ពីរបៀបដែល session កំពុងដំណើរការ។ ថាតើវាកំពុងឆ្ពោះទៅរកដំណោះស្រាយឬអត់ ជាការវិនិច្ឆ័យរបស់ agent ឬរបស់អ្នក។
  3. B3pull request និង release ត្រូវបានផ្ទៀងផ្ទាត់ដោយ gh; បើគ្មានវា ពួកវានៅតែមិនដឹង រហូតដល់អ្នកសម្រេច។

06ស្ថានភាពSTATUS

គម្រោងនៅត្រឹមណា។

V6 ជំនួស workflow engine របស់ V5 ដោយ core តូចមួយ។ កាលបរិច្ឆេទត្រូវប្រកាស នៅពេលសម្រេចបាន។

  1. DONE បង្កក

    V5.0 RC1

    tag V5.0.rc1

    workflow engine សម្រាប់ host ច្រើន។ បង្កកនៅលើ branch frozen/v5; គ្មានការងារថ្មីទេ។

  2. NOW កំពុងដំណើរការ

    V6 Core pre-alpha

    packages/bw-core

    hook Claude Code, scope ភស្តុតាង, ការប្រើប្រាស់ផ្ទាល់ខ្លួនលើ repository ពីរ។

  3. NEXT ក្រោយការប្រើប្រាស់ផ្ទាល់ខ្លួន

    V6 Core alpha

    release ដំបូងដែលមាន tag

    នឹងចេញផ្សាយ នៅពេលរយៈពេលប្រើប្រាស់ផ្ទាល់ខ្លួនបង្ហាញការចាប់បានពិតប្រាកដ និងការទប់ស្កាត់ខុសតិចតួច។ host ផ្សេងទៀតនឹងតាមក្រោយជា adapter តូចៗ។

STATEMENTសេចក្តីថ្លែងការណ៍

PRE-ALPHA

Core អាចប្រើបាននៅថ្ងៃនេះ ហើយដំណើរការលើ repository ផ្ទាល់របស់អ្នកថែទាំ។ ទម្រង់ policy របស់វាអាចនៅតែផ្លាស់ប្តូរ មុន alpha។

អ្វីៗទាំងអស់នៅទីនេះឥតគិតថ្លៃ និងជាប្រភពកូដចំហ។ គ្មានកញ្ចប់បង់ប្រាក់ គណនី ឬ telemetry ទេ។

LICENSINGអាជ្ញាប័ណ្ណ

អាជ្ញាប័ណ្ណ
ផ្នែកអាជ្ញាប័ណ្ណស្ថានភាព
V6 Core (packages/bw-core)Apache-2.0សកម្ម
គេហទំព័រ និងផ្នែកផ្សេងទៀតនៃ repositoryAGPL-3.0-onlyសកម្ម
plugin V5AGPL-3.0-onlyនៅលើ frozen/v5បង្កក

07ឯកសារDOCS

អ្វីៗទាំងអស់មាននៅក្នុង repository។

មគ្គុទ្ទេសក៍ត្រូវបានសរសេរជាភាសាអង់គ្លេស និងភាសាចិនបុរាណ។ ភាសានីមួយៗនៅលើគេហទំព័រនេះ មាន README ខ្លីមួយនៅលើ GitHub។

08សំណួរញឹកញាប់FAQ

សំណួរទូទៅ ចម្លើយត្រង់ៗ។

មានអ្វីផ្សេងទៀត? បើក issue នៅលើ GitHub។ GitHub Issues

តើវាធ្វើឱ្យ Claude Code យឺតទេ?

hook ដែលដោះស្រាយការពិនិត្យ ឬ side effect គណនា hash នៃ working tree ដោយប្រើ Git ដែលចំណាយពេលប៉ុន្មានមិល្លីវិនាទីក្នុង repository ធម្មតា។ repository ធំខ្លាំង ចំណាយច្រើនជាងក្នុងការហៅបែបនេះនីមួយៗ។

តើវានឹងជាប់គាំង បញ្ជូន agent ត្រឡប់រហូតឬទេ?

វាបញ្ជូន agent ត្រឡប់ជាមួយមូលហេតុ និងដំណើរនៃ session រហូតមកដល់ពេលនេះ៖ ចំនួនដំណើរការ ការបរាជ័យជាប់ៗគ្នា ចំនួនដងដែលបានបញ្ជូនត្រឡប់រួច។ បន្ទាប់មក agent អាចឈប់ ហើយប្រាប់អ្នកយ៉ាងច្បាស់ថាការពិនិត្យណាដែលបរាជ័យជាបន្តបន្ទាប់។

តើ agent អាចបិទវាបានទេ?

មិនអាចដោយផ្ទាល់ទេ។ Core បដិសេធការកែរបស់ agent លើ policy និងសៀវភៅកត់ត្រា ហើយបដិសេធ bw init និងការសម្រេចលើសកម្មភាពដោយដៃ។ ការលុប plugin ចេញ ឬការផ្លាស់ប្តូរឯកសារទាំងនោះតាមវិធីវាងវៀន ស្ថិតក្រោមច្បាប់សិទ្ធិផ្ទាល់របស់ Claude Code ដូច្នេះសូមបើកការសួរបញ្ជាក់ទាំងនោះទុក។

តើវាផ្ញើអ្វីទៅកន្លែងណាទេ?

គ្មាន server និងគ្មាន telemetry ទេ។ ការហៅបណ្តាញតែមួយគត់របស់វា គឺការពិនិត្យបែបអានតែប៉ុណ្ណោះ ដោយប្រើ git gh និង npm របស់អ្នកផ្ទាល់ ដើម្បីបញ្ជាក់ថា side effect មួយបានកើតឡើងឬអត់។ សៀវភៅកត់ត្រានៅក្នុង .git/better-workflows/។

ចុះ Codex, Gemini CLI ឬ Qwen Code វិញ?

ពួកវាបានដំណើរការ V5 ដែលត្រូវបានបង្កក។ Core មិនជាប់នឹង host ណាមួយទេ ហើយ adapter សម្រាប់ពួកវាត្រូវបានគ្រោងទុកបន្ទាប់ពី alpha។

សាកល្បងក្នុងប៉ុន្មានវិនាទី

ការដំណើរការពាក្យបញ្ជាមិនមែនជាភស្តុតាងទេ។ ឯកសារទើបជាភស្តុតាង។

ដំណើរការការបង្ហាញដោយមិនប្រើ Claude បន្ទាប់មកដំឡើងវាលើ repository មួយ ហើយសុំការផ្លាស់ប្តូរ។