V6 Corepre-alpha

רק הוכחה טרייה נחשבת.
לא ידוע? עוצרים.

פלאגין ל-Claude Code שמונע מסוכן AI לסיים על סמך בדיקה ירוקה שהתיישנה, ולחזור על תופעות לוואי או לערום אותן כשמעולם לא ראה את התוצאה שלהן. מה שמותר לו לעשות נקבע בקובץ policy שאתם כותבים, אף פעם לא ב-prompt.

  • ראיות עדכניות
  • פעם אחת לכל היותר
  • policy, לא prompt
  • Fail-closed

stale-green · ירוק שהתיישן, ואחריו push שנוסה שוב

demo
  1. claude תקן את הבאג ב-sum.mjs, אין צורך להריץ שוב את הבדיקות
  2. testnode --test עובר על הקבצים a1f3
  3. editהסוכן עורך את sum.mjs, הקבצים הם עכשיו 9c07
  4. stop“סיימתי. הבדיקות עוברות.”
  5. bwהוחזר: test עבר לאחרונה על a1f3; הקבצים השתנו מאז.
  6. testהסוכן מריץ שוב את node --test: כישלון אחד, מתקן אותו, עובר על b2e8
  7. pushgit push נתקע ב-timeout אחרי שה-push כבר נקלט
  8. pushהסוכן מנסה שוב את git push
  9. bwנדחה: git-push כבר הצליח ב-commit הזה.

SENT BACKCore עצר את הסוכן פעמיים: פעם אחת מלסיים על סמך מעבר ישן, ופעם אחת מלבצע push שוב. בשתי הפעמים הוא הוחזר עם הסיבה.

מה Core בדק

2 עצירות · 0 סיומים כוזבים
  1. Policyמתוך .better-workflows/policy.jsonPASS
  2. ראיהבדיקה על הקבצים כפי שהם עכשיוBLOCKED
  3. הרצה חוזרתהבדיקה עוברת על b2e8PASS
  4. פעולהgit-push, בפעם הראשונהPASS
  5. פעם אחת לכל היותראותו push, אותו commitBLOCKED

מקוצר מתוך הדגמת ה-stale-green שבמאגר; מזהי העצים להמחשה בלבד. הריצו בעצמכם את ההדגמה המלאה תוך כמה שניות, בלי Claude.

01עקרונותPRINCIPLES

שלושה כללים שהופכים לשימושיים יותר ככל שהמודלים מתחזקים.

סוכן חזק יותר כותב יותר קוד בכל סשן ומריץ יותר פקודות בעצמו. הכללים האלה לא תלויים בכך שהסוכן יהיה זהיר; הם תקפים לא משנה מה הוא אומר.

WITHOUT vs WITHאותו סשן

מצבהסוכן לבדעם Core
הבדיקות עברו, ואז קובץ השתנה“הבדיקות עוברות.”מוחזר להריץ שוב על הקבצים הנוכחיים.
npm test | tailנחשב ירוק; קוד היציאה שייך ל-tail.אף פעם לא נחשב; Stop מסביר למה.
קובץ spec אחד במקום כל החבילהנחשב כ“הבדיקות עוברות”.עם exact, רק הפקודה המלאה נחשבת.
push נתקע ב-timeout אחרי שנקלטמבצע push שוב.אותו push באותו commit נדחה.
ה-prompt אומר “מותר לך לפרסם”מפרסם.ה-policy מחליט: allow, ask או deny.

AUTHORITYמאיפה מגיעה הסמכות

  1. L1
    policy.json

    נכתב ומשתנה על ידי אדם. Core דוחה עריכות ישירות של הסוכן בו.

    מקור
  2. L2
    ההרשאות של Claude Code

    עדיין חלות. allow ב-policy אף פעם לא מעניק יותר ממה ש-Claude Code היה מעניק.

  3. L3
    ה-hooks של Core

    אוכפים את ה-policy בכל פקודה, עריכה ועצירה.

  4. L4
    ה-prompt

    מתאר את המטרה. אין לו סמכות.

    אין

02איך זה עובדHOW IT WORKS

שישה hooks, יומן אחד ב-.git.

Core רץ בתוך ה-hooks של Claude Code עצמו. אין מה להפעיל, אין שרת, אין חשבון; המצב נשמר ב-.git/better-workflows/ של כל מאגר.

HOOKSה-hooks

  1. SessionStart: אומר לסוכן אילו בדיקות חייבות לעבור ואילו תופעות לוואי עדיין לא הוכרעו, ומזהיר אם ה-policy לא תקינה או אם gh נדרש אך לא שמיש.
  2. PreToolUse: מתיר, שואל או דוחה כל תופעת לוואי, ודוחה עריכות של ה-policy ושל היומן.
  3. PostToolUse: רושם כל בדיקה יחד עם עץ ה-Git שעליו היא רצה, וכל תופעת לוואי יחד עם קוד היציאה שלה.
  4. Stop: אם קבצים השתנו ובדיקה נדרשת חסרה, נכשלה או התיישנה, מחזיר את הסוכן פעם אחת עם הסיבה; בפעם הבאה הוא רק מזהיר.
  5. bw status (פקודה, לא hook): מציג לכם את אותו מצב.
STOP

סיום

ראיות שקשורות לקבצים

בדיקה, lint, בדיקת טיפוסים או build נחשבים רק אם עברו, אם קוד היציאה שלהם עצמם קבע את תוצאת השורה, אם אף קובץ לא השתנה בזמן הריצה, ואם הקבצים עדיין זהים בדיוק לאלה שעליהם הם רצו.

אופציונלי

  • exact: רק הפקודה המלאה נחשבת, ו-cwd קובע איפה היא צריכה לרוץ.
  • scope (עם exact): שינוי מחוץ לתיקיות שצוינו משאיר את התוצאה עדכנית.
  • ignore (לכל ה-policy): פלט שבדיקה כותבת, כמו coverage, לא נחשב לשינוי.
PRETOOLUSE

תופעות לוואי

פעם אחת לכל היותר, לא ידוע עוצר

pushes, יצירה ומיזוג של PR, releases, פרסום חבילות וסוגים מותאמים משלכם — כל אחד מהם צריך allow מה-policy. רק קוד יציאה 0 הוא תוצאה ידועה.

בדיקות לקריאה בלבד שמשמשות להכרעת תוצאה לא ידועה

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

RULESכללים שתמיד תקפים

  • R1

    policy לא תקין דוחה כל תופעת לוואי במקום לחזור לברירות המחדל.

  • R2

    הרשאה שפגה חוזרת ל-ask. רק אדם יכול להאריך אותה, על ידי עריכת ה-policy.

  • R3

    פקודות ש-Core לא יכול לקרוא, כמו eval או sh -c, מטופלות כאטומות ונשאלת עליהן שאלה.

  • R4

    היומן מאפשר הוספה בלבד ומשורשר בגיבובים; bw verify מזהה רשומות שנערכו או הוסרו ושורה אחרונה שנכתבה למחצה, אבל לא רשומות שלמות שנחתכו מהסוף.

03מארחיםHOSTS

קודם Claude Code.

Core אינו תלוי במארח; כל מארח צריך מתאם קטן. Claude Code הוא הראשון, והיחיד שנתמך כיום.

תמיכה במארחים ובמערכות הפעלה
מארחmacOSLinuxWindows
Claude Codeמארח ראשוןנתמך, נבדק ב-CIנתמך, נבדק ב-CIלא נבדק
CodexV5 בלבד, מוקפאמתוכנןמתוכנןמתוכנן
Gemini CLIV5 בלבד, מוקפאמתוכנןמתוכנןמתוכנן
Qwen CodeV5 בלבד, מוקפאמתוכנןמתוכנןמתוכנן

ה-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 עם תמיכה בפלאגינים.

  1. 1

    שכפול Core

    פעם אחת לכל מכונה. אם הרצתם כאן את V5, העבירו קודם את ~/.better-workflows אל ~/.better-workflows-V5 והפנו את SBW_STATE_ROOT אליו.

  2. 2

    הוספת הפלאגין

    התקינו אותו לכל מאגר בנפרד עם --scope local, כדי ששום דבר לא ייכתב לקבצים שאתם מבצעים להם commit.

  3. 3

    כתיבת policy

    bw init כותב את .better-workflows/policy.json. בצעו לו commit כדי שלכולם יהיו אותם כללים.

  4. המדריך המלא מכסה בדיקות משלכם, תופעות לוואי ותוצאות לא ידועות. תחילת עבודה

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

ואז נסו

שנה שורה אחת במאגר הזה, ואל תריץ את הבדיקות.

כש-Claude Code מנסה לסיים, הוא מוחזר ומקבל הסבר איזו בדיקה חסרה.

05מגבלותLIMITS

מה הוא עוצר, ומה הוא לא רואה.

שער מועיל רק אם יודעים איפה הגבולות שלו.

עוצר

טעויות שאפשר לראות

  • סיום על סמך הרצת בדיקות שהתיישנה או נכשלה, או על סמך הרצה חלקית כשהבדיקה מסומנת exact
  • pipe או || true שמסתירים כישלון
  • push, merge, release או פרסום חוזרים
  • תופעות לוואי כשתוצאה של תופעה קודמת עדיין לא ידועה
  • הסוכן עורך ישירות את ה-policy או את היומן שלו

לא עושה

מחוץ לטווח הראייה שלו

  • לראות תופעות לוואי בתוך סקריפט, אלא אם ה-policy מציין את הסקריפט הזה
  • לשפוט אם הבדיקות שלכם טובות מספיק
  • לבנות גרף תלויות: scope צריך לציין את כל מה שבדיקה תלויה בו
  • לספור קבצים ש-Git מתעלם מהם כחלק מהראיה

משאיר לכם

החלטות של אדם

  • הכרעה בתופעת לוואי שאי אפשר לקרוא בחזרה את התוצאה שלה
  • הארכת הרשאה מעבר ל-expiresAt שלה
  • בחירה מה scope מכסה
  • החלטה מתי סשן מסתובב במעגלים
Core חוסם את הטעויות שלמעלה. עדיין לא נמדד אם הוא מפחית עבודה חוזרת או החלטות שגויות במשימות ארוכות; לשם כך נועדה תקופת השימוש העצמי הנוכחית.
  1. B1מפענח ה-shell לא גדל: על פקודה שהוא לא יכול לקרוא נשאלת שאלה לפני שהיא רצה, ובדיקה שמוסתרת בתוך eval או sh -c אף פעם לא נחשבת לראיה.
  2. B2Core רק סופר איך הסשן מתקדם. אם הוא מתכנס — את זה שופטים הסוכן או אתם.
  3. B3pull requests ו-releases מותאמים באמצעות gh; בלעדיו הם נשארים לא ידועים עד שתכריעו בהם.

06סטטוסSTATUS

איפה הפרויקט עומד.

V6 מחליף את מנוע ה-workflows של V5 בליבה קטנה. תאריכים מתפרסמים כשהם מתקיימים.

  1. DONE מוקפא

    V5.0 RC1

    tag V5.0.rc1

    מנוע workflows מרובה מארחים. מוקפא בענף frozen/v5; אין עבודה חדשה.

  2. NOW בעבודה

    V6 Core pre-alpha

    packages/bw-core

    hooks של Claude Code, scope לראיות, שימוש עצמי בשני מאגרים.

  3. NEXT אחרי השימוש העצמי

    V6 Core alpha

    גרסה מתויגת ראשונה

    תפורסם כשתקופת השימוש העצמי תראה תפיסות אמיתיות ומעט חסימות שווא. מארחים נוספים יגיעו אחר כך כמתאמים קטנים.

STATEMENTהצהרה

PRE-ALPHA

Core שמיש כבר היום ורץ על המאגרים של המתחזק עצמו. פורמט ה-policy שלו עוד עשוי להשתנות לפני alpha.

כל מה שכאן חינמי וקוד פתוח. אין מסלול בתשלום, חשבון או טלמטריה.

LICENSINGרישוי

רישוי
רכיברישיוןמצב
V6 Core (packages/bw-core)Apache-2.0פעיל
האתר ושאר המאגרAGPL-3.0-onlyפעיל
פלאגין V5AGPL-3.0-onlyב-frozen/v5מוקפא

07תיעודDOCS

הכול נמצא במאגר.

המדריכים כתובים באנגלית ובסינית מסורתית. לכל שפה באתר הזה יש README קצר ב-GitHub.

08שאלות נפוצותFAQ

שאלות נפוצות, תשובות ישירות.

משהו אחר? פתחו issue ב-GitHub. GitHub Issues

האם זה מאט את Claude Code?

hooks שמטפלים בבדיקה או בתופעת לוואי מחשבים גיבוב של עץ העבודה באמצעות Git, וזה לוקח אלפיות שנייה במאגר רגיל. מאגרים גדולים מאוד משלמים יותר בכל קריאה כזו.

האם הוא עלול להיתקע ולהחזיר את הסוכן לנצח?

הוא מחזיר את הסוכן עם הסיבה ועם התמונה של הסשן עד כה: הרצות, כישלונות ברצף, כמה פעמים כבר הוחזר. הסוכן יכול אז לעצור ולומר לכם בפשטות איזו בדיקה ממשיכה להיכשל.

האם הסוכן יכול לכבות אותו?

לא ישירות. Core דוחה עריכות של הסוכן ל-policy וליומן, ודוחה את bw init ואת הכרעה ידנית בפעולה. הסרת הפלאגין, או שינוי הקבצים האלה בדרכים עקיפות, כפופים לכללי ההרשאות של Claude Code עצמו, לכן השאירו את בקשות האישור האלה פעילות.

האם הוא שולח משהו לאנשהו?

אין שרת ואין טלמטריה. קריאות הרשת היחידות שלו הן בדיקות לקריאה בלבד עם ה-git, ה-gh וה-npm שלכם, כדי לאשר אם תופעת לוואי התרחשה. היומן נשאר ב-.git/better-workflows/.

מה לגבי Codex, Gemini CLI או Qwen Code?

הם הריצו את V5, שמוקפא. Core אינו תלוי במארח, ומתאמים עבורם מתוכננים אחרי ה-alpha.

נסו תוך כמה שניות

הרצת פקודה אינה הוכחה. הקבצים הם ההוכחה.

הריצו את ההדגמה בלי Claude, ואז התקינו אותו על מאגר אחד ובקשו שינוי.