BW Better Workflows 情境手冊SCENARIO PLAYBOOK · 3.4.13
預覽版 → 架構解剖書 ↗

Field manual for evidence-driven work

先判斷,
再動手。

這不是指令字典,而是一本「遇到什麼任務,就知道該走哪條路」的實戰手冊。從一句自然語言目標,走到可驗證的證據、可重播的狀態,以及真正有權限的外部動作。

Version3.4.13
Revisionc5abd1f
Entrypoints17
Templates13 / 60 stages
Evidence catalog101 kinds
01

Choose by consequence, not by mood

三個問題,先決定要承擔多少證明責任

模板回答「這類任務要走哪些 stage」,mode 回答「要用多強的獨立驗證」。兩者不是同一件事;明確 selector 的最低強度也不能被降低。

本章摘要

先選任務類型,再看範圍與外部副作用。若結果仍是 built-in auto,它不是一個模板;必須根據證據再選一個真實 template。

路線判讀台

LIVE DECISION AID
02

Architecture map

一次 governed run,實際經過六道門

Better Workflows 是工作流控制平面,不是另一個 agent runtime。它把 route、source identity、typed evidence、ledger、review 與外部 action 串成可重算的約束鏈。

精準摘要

證據不是附加報告,而是 stage 能否完成、side effect 能否授權、整體能否結案的輸入。Graph View 只讀、只投影,不能取代任何權限判斷。

四條工作路線穿過證據與驗證閘門,匯聚至同一個可證明終態
四種驗證強度,共用同一個原則:讓每條路都能回到 evidence 與 terminal truth。

證據資料流

1Source bindingHEAD / index / status / scope / digest
2Typed receipt admissionkind / producer / payload / freshness
3Ledger reducerappend-only events → derived task state
4Review convergenceimmutable package / stable findings / repair budget
5Action & reconciliationone-time token / exact provider outcome

Replay 的重點是從 persisted inputs 重建結論,而不是恢復模型當時沒有保存的 hidden reasoning。證據 ↘

03

Mechanism inventory

Mode 是強度;Template 是路線

先用 mode 表達驗證成本,再用 template 固定 stage、evidence 與 policy gates。不要因為任務看起來熟悉,就把 selector 已固定的 critical 降成 verified。

17Catalog entrypoints;其中 4 個是純 mode selector。
13Machine-readable templates;每次只選一個 primary。
101TaskContract v2 可接收的 exact evidence kinds。
3 / 5 / 1regular / review / side-effect stage 的嘗試預算。

Template atlas

13 條可機器驗證的任務路線

verified
4
deep
5
critical
4

direct 沒有模板:它保留 Goal persistence,但不建立 Better Workflows run、ledger 或 review package。

04

Scenario tutorials

十四種常見任務,從第一句話教到停手

左側挑情境;右側會顯示可直接改寫的任務描述、正確入口、stage 流、證據清單與 fail-closed 紅燈。第 14 種是 direct 快速路徑,因此模板總數仍是 13。

Prompt workshop

把模糊願望改寫成可驗收的任務合約

這個產生器只組合文字,不會執行任何指令或外部動作。請先移除 secrets、私人程式碼與未授權資料。

READY-TO-ADAPT PROMPT

Command shelf

知道哪一行只是看,哪一行真的會改狀態

能力快照與 route preview

READ-ONLY
# cwd: repository root
node plugins/better-workflows/scripts/sbw.mjs doctor --capabilities
node plugins/better-workflows/scripts/sbw.mjs route preview \
  --goal "<exact outcome>" --scope . --entry auto
成功訊號顯示 route source、effective mode、capabilities 與 blockers。
常見失敗built-in auto 的 template 為 null;要以證據選真實模板再 preview。

檢查 template graph

READ-ONLY
# cwd: repository root · Node >= 24
node plugins/better-workflows/scripts/sbw.mjs graph inspect \
  --template review-to-issues --format mermaid
成功訊號輸出 canonical JSON,Mermaid 在 content 欄位。
常見失敗結構錯誤 exit 2;Graph 不會授權 action,也不會排程。

建立 governed run

STATE-WRITE
# prerequisite: route 已確認、scope 已精確化
node plugins/better-workflows/scripts/sbw.mjs run \
  --template review-to-issues --mode verified \
  --goal "<exact outcome>" --scope .
成功訊號建立 private run records 並回傳 run id。
常見失敗dirty/drift、模板不存在、mode 低於 policy floor 或 contract 不完整。

請求並執行外部 action

EXTERNAL
# prerequisite: user authority + current evidence + valid sentinel
node plugins/better-workflows/scripts/sbw.mjs action issue <run-id> \
  --action <kind> --provider <provider> \
  --resource <exact-id> --remote-revision <revision>
# wrapper-backed actions must use: action execute --token <token>
成功訊號一次性 token 綁定 exact provider/resource/revision。
常見失敗token 300 秒到期;unknown 必須 provider reconciliation,不能盲重試。
05

Applied essays

把規則放回真實工作的摩擦裡

以下不是抽象規範,而是六篇可拿來做團隊共識、onboarding 或 ADR 前言的短文。每篇都指出何時要快、何時必須慢,以及證據如何改變決策。

01

二十分鐘的小修,為什麼不必開完整 run

Direct 的價值不是偷工,而是讓治理成本和風險成比例。

一個拼字錯誤、一段明確的型別修正,若範圍單點、可逆,而且驗證方式早已確定,建立 ledger、review package 與獨立 critic 可能比變更本身更昂貴。此時 direct 是合理選擇:Root 直接完成工作,仍保留 persistent Goal,卻不建立 governed replay。

關鍵不在「檔案少」,而在不確定性、爆炸半徑與副作用。只要小修改開始牽涉 shared API、帳號狀態、production 或無法可靠回復,direct 就失去資格。快速路徑應該有清楚出口,而不是變成高風險工作的別名。

02

把 Code Review 變成可交付的 Issues

找到問題只是中間產物;去重、freshness 與 provider 終態才是交付。

傳統 review 容易把「看見」誤當「完成」。review-to-issues 把工作拆成 package、findings、dedupe、freshness 與 issue-action。Reviewer 維持唯讀;真正建立 issue 的外部副作用只由 Root 執行。

這個順序保護兩件事:第一,不把舊 SHA 的問題貼到已經修好的程式碼上;第二,不用重複 issue 污染 backlog。最後若 provider 回應 unknown,流程不能把它猜成失敗再送一次,而要查詢 provider 對帳。

03

跨四端 API 變更,不能靠「同一天上線」

Compatibility 是資料流,不是一場同步會議。

Backend、Web、iOS、Android 的 release cadence 天生不同。「大家今天一起改」無法證明使用者手上的舊 mobile build 仍可運作。cross-platform-contract 先固定 server contract,再讓三個 client 分支檢查 model 與 headers,最後在 contract-tests 聚合。

若是 breaking change,two-phase policy 要求先擴充、再遷移、最後移除。Migration 與 API deploy 不是測試綠燈自然帶來的權限;它們仍是 Root-only action,必須綁定 scope、revision 與明確授權。

04

CI 綠燈不是終點:外部世界還要對帳

Run success、deploy success 與 live state 是三種不同證據。

Workflow 顯示綠燈,只能證明那個 run 的 terminal result;它不能自動證明 target revision 正確、deploy 沒有被另一個 run 超車,或 production 已經 serving 新版本。ci-release-monitor 因此先 inventory、再 queue,序列化 monitor-execute,最後做 provider reconciliation。

目前同步版將沒有 immutable provider binding 的 actions 明確 deferred;GitHub Actions dispatch 不能用 mutable ref 原子綁定 preflight revision,因此不開放新的 executable token。缺少 provider authority 或 live reconciliation 時,正確終態是 blocked、inconclusive 或 indeterminate,而不是「大概成功」。

05

把 SOP 做成 Recipe,但不讓它偷偷寫 Source

可重複執行不等於可以自由執行。

當團隊反覆做同一組 deterministic 步驟,workspace recipe 能把 SOP 固化成受治理的 Node.js artifact。流程先定義 contract,再以 fixture dry-run 比對真實執行語義,經 digest-bound trust 後才 promotion。

安全界線刻意狹窄:預設不允許 network、child process 或 source write;candidate evidence 也不會自動等同 acceptance。Promotion、execution 與 artifact publication 是不同的決策,不能因為 scaffold 成功就一路自動放行。

06

Self-improve 不是「讀過聊天,所以我變好了」

改善必須由 frozen corpus、獨立 witness 與可重算 comparison 支持。

自我改善最危險的錯覺,是把熟悉感當成進步。self-improve-ops 要求 retrospective、candidate、train/holdout replay、sync review 與 delivery handoff。Evaluator replay 會從 immutable baseline/candidate、frozen corpus、重建 prompt 與 7/8 個 signed witness 重新計分。

平手、noise、任一 case regression、witness mismatch 或 host attestation 缺失,都不提供採用權限。No-change 是一級成果;真正的 delivery 則交接給 pr-to-dev,不能把 evaluator standing consent 擴張成 merge 或 deploy 授權。

06

Newcomer path

第一次使用,只記四件事

不必背模板名。Codex App 先輸入 / 搜尋 better;不確定時選 auto,然後用 route preview 看系統為什麼這樣選。

01 · GOAL

說結果,不只說動作

把「幫我看看」改成可驗收的 outcome、scope 與完成條件。

用 Prompt 工坊改寫 →
02 · ROUTE

先預覽再啟動

確認 source、template、effective mode、缺少能力與 blockers。

使用決策器 →
03 · EVIDENCE

每個結論都問來源

測試輸出、SHA、截圖、provider receipt 都要綁定當前 scope。

看資料流 →
04 · STOP

Unknown 就停手

看不清外部終態時先 reconcile;不要用 blind retry 製造重複副作用。

看紅燈診療室 →
07

Senior engineer lens

讀 digest 鏈,不只讀最後一句 PASS

資深工程師最有價值的介入點,是找出 source、contract、evidence、review package 與 provider state 之間是否仍然同一個世界。

01 · IDENTITY

先確認你驗的是哪棵樹

HEAD、index、dirty status、scope、submodule、symlink 與 remote revision 都可能漂移。

  • Commit 後重新 source rebind
  • Wave 前後 capture / verify sentinel
  • Drift 時丟棄該 wave 結論
02 · SEMANTICS

Evidence kind 不是標籤

Receipt 必須符合 producer allowlist、payload semantics、freshness、digest 與 dependency fingerprints。

  • 文字 PASS 不會改 ledger
  • acceptanceIds 不能由 caller 自行宣告
  • Resume 只重用 fingerprint 仍匹配的節點
03 · CONSEQUENCE

Action 是一個新信任邊界

Action token 只把既有授權綁成短效、一次性的 exact attempt;它不創造權限。

  • Root-only request
  • Fixed wrapper actions 使用 execute
  • Unknown outcome 必須 provider query
08

CTO lens

治理的產出,是更可靠的決策邊界

這套系統最值得衡量的不是 agent 數量,而是未知狀態被保留的比例、重複副作用被阻止的次數,以及從 source revision 到 provider 終態的可追溯性。

適合制度化的指標

FRESHNESS

完成時 evidence 與 current-tree sentinel 仍匹配的比例。

RECONCILE

外部 action 有 terminal provider receipt 的比例。

NO-CHANGE

在證據不足或 candidate 無提升時,正確不採用的比例。

ROLLBACK

交付變更具有 bounded rollback evidence 的比例。

目前不能由 codebase 證明

ADOPTION

Repository 未提供真實使用頻率或團隊滲透率 telemetry。

LEAD TIME

沒有足夠 production runs 可估算各 mode 的平均完成時間。

ROI

無事故成本與治理成本對照,不能從測試數量推導商業回報。

OPERABILITY

101 種 evidence 與 host/provider gates 提高安全,也提高學習與營運成本。

09

Strengths, risks & unknowns

可靠之處與摩擦之處,都要有證據

以下把 FACT、INFERENCE、RISK 與 UNKNOWN 分開。看不到 production telemetry,就不把完整的型別系統推論成已證實的營運成功。

已被設計與測試支持

FACT

TaskContract v2 只接受 101-kind catalog 中的 typed evidence,並重驗 digest 與 semantic success。

FACT

Ledger append-only,依固定 reducer 重建狀態;嘗試預算耗盡是 machine-readable blocked。

FACT

Action token 短效且一次性;unknown provider outcome 不可被猜成 failure。

FACT

Review-enabled templates 會綁定 capability profile;kernel pilot 仍 observe-only,不會直接取得 action token。

紅燈診療室

GREEN ≠ DONE

測試成功不等於 target revision、provider state 或 live environment 已對帳。

GRAPH ≠ AUTH

Graph View 是結構投影,不是 scheduler、policy input 或 authority source。

RESUME ≠ MEMORY

Resume 重用 persisted evidence;不會恢復模型 hidden reasoning。

CONSENT ≠ DELIVERY

Evaluator standing consent 不能擴張成 push、merge、deploy 或 cleanup 權限。

10

Change code safely

修改治理程式碼時,先辨認你正在改哪一層

Selector、template、evidence contract、ledger reducer、action wrapper 與文件彼此有同步關係。局部 patch 若沒有更新 machine-readable source 與 tests,很容易產生漂亮但錯誤的說明。

變更面必須同步檢查不能省略的驗證
ENTRY

entrypoint-catalog、selector skill、README / guide,以及最低 mode 是否一致。

Catalog parse、所有 selector 可解析;auto 不可偽造成 template。

TEMPLATE

executionStages、requiredEvidence、policyGates、actionStages、rootOnlyActions。

graph validate --template <name>,並覆蓋 action-to-stage mapping。

EVIDENCE

evidence-contracts、producer allowlist、payload semantics、freshness 與 revalidation。

未知 kind、空 payload、digest mismatch 與 stale binding 必須 fail closed。

LEDGER

合法 transition、budget、dependency DAG、expectedLedgerDigest 與 terminal states。

Replay determinism;caller 文字或 acceptanceIds 不能越權完成。

ACTION

authority、exact provider/resource/revision、token TTL、wrapper 與 reconciliation。

Unknown / interrupted / duplicate reservation 路徑;禁止 blind retry。

DOCS

原始碼 locator、版本 metadata、FACT / RISK / UNKNOWN 分類與可執行範例。

內部連結、script parse、secret scan、desktop/mobile browser QA。

11

Evidence appendix

每個重要說法,都能回到檔案與行號

來源清單同時保存事實、推論、風險與未知。本手冊是導覽層;machine-readable JSON、CLI validation 與 provider records 才是執行時權威。

SYNC MANIFEST
observedAt: 2026-08-15T00:05:00+08:00 · implementation baseline: c5abd1fe7c580773c1cacb81dc0c01b58bf086d6 · documentation worktree: clean · scope: current Markdown + HTML surfaces
installed template sourceDigest: f1371f5477f6650a7d8999b7d2d8e99437db7286b75a8ef488cd31f56db3c8ab · evidence catalog: 101 kinds · review profiles: legacy contract + self-improve kernel pilot
validation boundary: graph diagnostics=0、review-profile binding checks PASS;本版未執行 provider actions,未將文件檢查宣稱為 delivery authority。
已複製