完整正文翻譯草稿;尚未通過獨立語義審查,並非正式發布或 live run 的完成證明。

Original cartoon replay · eight scenes

證據不是字幕,它決定結局。

把 Goal、Source Binding、Finder、Verifier、Ledger、Review、Action 與 Reconciliation 變成一部可以暫停、倒帶、切換結局的卡通電影。你看到的不是「Agent 說完成」,而是完成如何被證明。

Captain Root、Scout Pixel、Ledger、Vera、Sentinel 與 Echo 六位原創卡通角色的全身設定圖
ORIGINAL CAST · SIX ROLES每位角色代表一個不能互相取代的治理責任。

Evidence Replay Cinema

八幕重播:從意圖到可證明完成

按播放讓故事自動推進,或點擊時間軸逐幕檢查。右側卡片把畫面翻回 record、binding 與 derived state;最後一幕可切換「證據完整」和「provider outcome unknown」兩種結局。

THE PROOF BEFORE THE END 一部關於 evidence、state 與 reconciliation 的互動短片
SANITIZED TEACHING REPLAY · NOT A LIVE RUN
Captain Root 在紙張與黃銅構成的檔案電影院舉起指揮棒,六位角色沿發光底片路徑準備出發
第 01 幕 / 08 CONTRACT BOUND
Captain Root 角色肖像
Captain RootGOAL KEEPER

先把「要完成什麼」拍成底片

沒有凍結的目標、範圍與驗收條件,就沒有可被重播的結局。

00:00 / 01:04
選擇最後一幕的 provider 狀態 結局只由可重驗輸入改變,不靠旁白投票。

完整八幕正文與另一種結局

不必啟用 JavaScript,就能閱讀每幕對白、治理說明與全部示範紀錄。播放控制只改變呈現,不改變任何真實 run。

這些是 sanitized 教學票根;卡片包含 evidence、ledger、finding 與 action state,不把所有記錄冒充成同一種 evidence。

01 · 先把「要完成什麼」拍成底片

Captain Root 在紙張與黃銅構成的檔案電影院舉起指揮棒,六位角色沿發光底片路徑準備出發
Captain Root · GOAL KEEPER

沒有凍結的目標、範圍與驗收條件,就沒有可被重播的結局。

TaskContract v2 凍結 goal、scope、acceptance、authority 與 stages;自由文字的「完成」不會改變狀態。

run.created → pending

task-contractcomplete
目標、範圍與驗收條件已凍結
id
demo-contract-01
binding
goal · scope · acceptance
digest
sha256:demo-42bd…
ledger-eventcomplete
run.created 成為第一筆 append-only event
id
demo-event-001
binding
root actor · contract digest
digest
ledger:demo-0001
auto/SKILL.md · contract / state authority
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "01",
  "derivedState": "run.created → pending",
  "records": [
    {
      "kind": "task-contract",
      "id": "demo-contract-01",
      "status": "complete",
      "summary": "目標、範圍與驗收條件已凍結",
      "binding": "goal · scope · acceptance",
      "digest": "sha256:demo-42bd…"
    },
    {
      "kind": "ledger-event",
      "id": "demo-event-001",
      "status": "complete",
      "summary": "run.created 成為第一筆 append-only event",
      "binding": "root actor · contract digest",
      "digest": "ledger:demo-0001"
    }
  ]
}

02 · 把現在的 source 狀態鎖進同一格

Captain Root 與 Sentinel 把分支狀紙條藍圖罩在玻璃鐘內,旁邊的黃銅相機記錄當下狀態
Sentinel · SOURCE SENTINEL

HEAD、index、status、scope 或 symlink 漂移,下一幕就必須停機重拍。

Source sentinel 讓後續 evidence、review 與 action 都指向同一棵 tree;presentation 無法消除 drift。

source captured → fresh

source-bindingcomplete
HEAD、index、status 與 scoped files 已綁定
id
demo-source-01
binding
revision · tree · scope
digest
sha256:demo-a81c…
source-sentinelcomplete
目前 tree capture 可供後續時效性重驗
id
demo-sentinel-01
binding
files · submodules · symlinks
digest
sentinel:demo-77ea
git.mjs · source binding / sentinel
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "02",
  "derivedState": "source captured → fresh",
  "records": [
    {
      "kind": "source-binding",
      "id": "demo-source-01",
      "status": "complete",
      "summary": "HEAD、index、status 與 scoped files 已綁定",
      "binding": "revision · tree · scope",
      "digest": "sha256:demo-a81c…"
    },
    {
      "kind": "source-sentinel",
      "id": "demo-sentinel-01",
      "status": "complete",
      "summary": "目前 tree capture 可供後續時效性重驗",
      "binding": "files · submodules · symlinks",
      "digest": "sentinel:demo-77ea"
    }
  ]
}

03 · 證據要從來源拿,不是從語氣裡猜

Scout Pixel 從精確標記的檔案抽屜取出帶有指紋、時鐘、鏈結與封蠟的證據卡
Scout Pixel · FINDER

每張卡都要有 kind、producer、payload、digest、dependency 與建立時間。

Evidence 先通過 kind contract、producer allowlist、payload semantics 與 digest 重算,才可能被 ledger 或 completion 消費。

evidence admitted → reusable while fresh

baseline-checkscomplete
Baseline 驗證結果符合 typed payload
id
demo-evidence-11
binding
source · tool · schema
digest
sha256:demo-b113…
test-resultscomplete
測試 receipt 綁定目前 revision 與 command
id
demo-evidence-12
binding
revision · command · outcome
digest
sha256:demo-6f20…
provenance-indexcomplete
來源 locator 與產生者 metadata 齊備
id
demo-evidence-13
binding
producer · observedAt · source
digest
sha256:demo-901e…
evidence.mjs · typed evidence admission
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "03",
  "derivedState": "evidence admitted → reusable while fresh",
  "records": [
    {
      "kind": "baseline-checks",
      "id": "demo-evidence-11",
      "status": "complete",
      "summary": "Baseline 驗證結果符合 typed payload",
      "binding": "source · tool · schema",
      "digest": "sha256:demo-b113…"
    },
    {
      "kind": "test-results",
      "id": "demo-evidence-12",
      "status": "complete",
      "summary": "測試 receipt 綁定目前 revision 與 command",
      "binding": "revision · command · outcome",
      "digest": "sha256:demo-6f20…"
    },
    {
      "kind": "provenance-index",
      "id": "demo-evidence-13",
      "status": "complete",
      "summary": "來源 locator 與產生者 metadata 齊備",
      "binding": "producer · observedAt · source",
      "digest": "sha256:demo-901e…"
    }
  ]
}

04 · Verifier 的工作,是找出不想看到的那格

Vera 在獨立投影室比較藍色與珊瑚色兩條底片,發現破裂影格與不一致的指紋
Vera · INDEPENDENT VERIFIER

確認證據與反證都要留下;finder 不能替自己的 finding 蓋章。

這一幕明確標示為 review-kernel-v2-pilot 的 observe-only 分支:Verifier 與 finder 分離;衝突結果變成 INCONCLUSIVE,missing 或 ambiguous anchor 仍然 blocking。它在 action 前結束,不替可執行 workflow 宣稱額外的 finder/verifier 權限。

claim checked → finding open

claim-verificationcomplete
獨立 verifier 重驗 claim 與 exact anchor
id
demo-verify-21
binding
reviewer · work unit · quote
digest
sha256:demo-1c90…
findingopen
反證顯示一筆 source fingerprint 不一致
id
demo-finding-P1
binding
stable finding id · exact blob
digest
finding:demo-P1
review.mjs · finding / verification separation
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "04",
  "derivedState": "claim checked → finding open",
  "records": [
    {
      "kind": "claim-verification",
      "id": "demo-verify-21",
      "status": "complete",
      "summary": "獨立 verifier 重驗 claim 與 exact anchor",
      "binding": "reviewer · work unit · quote",
      "digest": "sha256:demo-1c90…"
    },
    {
      "kind": "finding",
      "id": "demo-finding-P1",
      "status": "open",
      "summary": "反證顯示一筆 source fingerprint 不一致",
      "binding": "stable finding id · exact blob",
      "digest": "finding:demo-P1"
    }
  ]
}

05 · 狀態不是被寫下來,而是從事件重播出來

Ledger 水獺操作黃銅底片機,左側事件影格依序進入,右側推導出 ready、waiting 與 completed 的舞台地圖
Ledger · STATE REDUCER

Append-only events 經過固定 reducer,才得到 pending、ready、running、completed 或 blocked。

expectedLedgerDigest 擋住 stale writer;unknown dependency、cycle、超 budget 或 missing evidence 都會拒絕 transition。

ordered events → derived ready set

ledger-eventcomplete
evidence.attached 依序追加,舊 event 不改寫
id
demo-event-014
binding
expectedLedgerDigest · root actor
digest
ledger:demo-0014
derived-stateready
Reducer 推導 verify complete、review ready
id
demo-state-05
binding
contract DAG · ordered events
digest
state:demo-5d3a
ledger.mjs · append-only deterministic reducer
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "05",
  "derivedState": "ordered events → derived ready set",
  "records": [
    {
      "kind": "ledger-event",
      "id": "demo-event-014",
      "status": "complete",
      "summary": "evidence.attached 依序追加,舊 event 不改寫",
      "binding": "expectedLedgerDigest · root actor",
      "digest": "ledger:demo-0014"
    },
    {
      "kind": "derived-state",
      "id": "demo-state-05",
      "status": "ready",
      "summary": "Reducer 推導 verify complete、review ready",
      "binding": "contract DAG · ordered events",
      "digest": "state:demo-5d3a"
    }
  ]
}

06 · 只修那條裂縫,然後再看整卷底片

Vera 用放大鏡檢查封裝底片,修復者只補一處裂縫,桌面上有五張有限修復票與最終廣角鏡
Vera · REVIEW PACKAGE

局部 repair 有固定 budget;action token 前還要一次 final broad review。

Immutable review package 綁定 base、head、scope、diff、contract、template 與 sentinel。之後新增 finding 會使 broad completion 失效。

finding resolved → broad review complete

review-packagecomplete
Base、head、scope 與 diff manifest 已凍結
id
demo-package-31
binding
package digest · sentinel
digest
sha256:demo-9bd2…
findingcomplete
同一 stable finding 已帶 evidence 解決
id
demo-finding-P1
binding
repair attempt · package digest
digest
finding:demo-P1
final-broad-reviewcomplete
局部修復後重新檢查完整 changed surface
id
demo-review-32
binding
current head · current sentinel
digest
sha256:demo-b204…
review.mjs · immutable package / bounded repair
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "06",
  "derivedState": "finding resolved → broad review complete",
  "records": [
    {
      "kind": "review-package",
      "id": "demo-package-31",
      "status": "complete",
      "summary": "Base、head、scope 與 diff manifest 已凍結",
      "binding": "package digest · sentinel",
      "digest": "sha256:demo-9bd2…"
    },
    {
      "kind": "finding",
      "id": "demo-finding-P1",
      "status": "complete",
      "summary": "同一 stable finding 已帶 evidence 解決",
      "binding": "repair attempt · package digest",
      "digest": "finding:demo-P1"
    },
    {
      "kind": "final-broad-review",
      "id": "demo-review-32",
      "status": "complete",
      "summary": "局部修復後重新檢查完整 changed surface",
      "binding": "current head · current sentinel",
      "digest": "sha256:demo-b204…"
    }
  ]
}

07 · 橋先不放下:token 要把權限綁到這一次

Sentinel 陸龜在深谷吊橋前舉手擋下,Captain Root 出示唯一發光 token,Echo 與封閉底片罐在旁等待
Sentinel · SIDE-EFFECT GATE

Action token 綁 action、provider、resource、revision、review、evidence 與 idempotency key。

本頁是 sanitized teaching replay,不會真的發 token;可執行 workflow 仍須依自己的 review contract、來源時效性、provider binding 與 protected authorization 申請 action。Wrapper 送出後若 outcome unknown,不能把非零退出直接當成安全失敗。

authority checked → one attempt issued

action-tokenissued
短效 token 綁定唯一 provider resource
id
demo-token-41
binding
action · provider · revision
digest
token:demo-redacted
action-attemptready
一次性 reservation 等待固定 wrapper 執行
id
demo-attempt-41
binding
idempotency key · execution identity
digest
attempt:demo-0041
core.mjs · action issue / execute / consume
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "07",
  "derivedState": "authority checked → one attempt issued",
  "records": [
    {
      "kind": "action-token",
      "id": "demo-token-41",
      "status": "issued",
      "summary": "短效 token 綁定唯一 provider resource",
      "binding": "action · provider · revision",
      "digest": "token:demo-redacted"
    },
    {
      "kind": "action-attempt",
      "id": "demo-attempt-41",
      "status": "ready",
      "summary": "一次性 reservation 等待固定 wrapper 執行",
      "binding": "idempotency key · execution identity",
      "digest": "attempt:demo-0041"
    }
  ]
}

08 · 對帳完成,才打開終場金庫

Echo 機器人在日出檔案天文台對準遠方 provider 信標,收據捲與證據、ledger、review 一起點亮完成金庫
Echo · RECONCILER

Provider receipt、attempt、source、evidence、ledger、review 與 terminal sentinel 全部相符,才能宣告完成。

Completion 前後都重新 capture source,並重驗 acceptance evidence、P0/P1、side effects 與 live state。

provider receipt matched → completed

provider-reconciliationcomplete
Provider receipt 對回同一 action attempt
id
demo-receipt-51
binding
provider object · actor · revision
digest
receipt:demo-51a0
completion-decisioncomplete
Evidence、ledger、review 與 sentinel digests 全部通過
id
demo-completion-52
binding
terminal source · acceptance
digest
decision:demo-52c8
core.mjs · reconciliation / completion decision
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "verified",
  "scene": "08",
  "derivedState": "provider receipt matched → completed",
  "records": [
    {
      "kind": "provider-reconciliation",
      "id": "demo-receipt-51",
      "status": "complete",
      "summary": "Provider receipt 對回同一 action attempt",
      "binding": "provider object · actor · revision",
      "digest": "receipt:demo-51a0"
    },
    {
      "kind": "completion-decision",
      "id": "demo-completion-52",
      "status": "complete",
      "summary": "Evidence、ledger、review 與 sentinel digests 全部通過",
      "binding": "terminal source · acceptance",
      "digest": "decision:demo-52c8"
    }
  ]
}

第 08 幕:provider outcome unknown 的結局

Receipt 還沒對上,金庫保持關閉

送出不等於成功,也不等於失敗。先查 provider 真實狀態;unknown 不能盲目重送。

Unknown attempt 必須先用 pinned provider query reconciliation。沒有 fresh absence proof 或成功 receipt,就沒有完成結局。

provider outcome unknown → indeterminate

action-attemptindeterminate
Wrapper 已可能送出,但 terminal outcome 未知
id
demo-attempt-41
binding
same attempt · same execution
digest
attempt:demo-0041
completion-decisionopen
Completion 被 unknown side-effect outcome 阻擋
id
demo-completion-52
binding
provider receipt missing
digest
decision:not-issued
core.mjs · reconciliation / completion decision
{
  "demo": true,
  "authoritative": false,
  "presentationOnly": true,
  "recordedOutcome": null,
  "ending": "unknown",
  "scene": "08",
  "derivedState": "provider outcome unknown → indeterminate",
  "records": [
    {
      "kind": "action-attempt",
      "id": "demo-attempt-41",
      "status": "indeterminate",
      "summary": "Wrapper 已可能送出,但 terminal outcome 未知",
      "binding": "same attempt · same execution",
      "digest": "attempt:demo-0041"
    },
    {
      "kind": "completion-decision",
      "id": "demo-completion-52",
      "status": "open",
      "summary": "Completion 被 unknown side-effect outcome 阻擋",
      "binding": "provider receipt missing",
      "digest": "decision:not-issued"
    }
  ]
}
01 · RECOMPUTE重播判斷

從 contract、events、evidence 與 receipts 重新推導狀態。

02 · DO NOT RESEND不重送副作用

Provider reconciliation 是查證已發生什麼,不是再送一次請求。

03 · FAIL CLOSED未知就停

缺 receipt、binding drift 或 unresolved P0/P1 都不能剪成完成結局。

Character Atlas

六個卡通人物,六個不能混在一起的責任

點角色可跳到代表場景。Finder 不能驗證自己的 finding;Ledger 只從事件推導狀態;Sentinel 不因畫面漂亮就放行;Echo 遇到 unknown 只查證,不盲目重送。

Source Credits

電影是呈現層;程式與合約才是權威來源

每一幕的敘事都對回 repository 內現有 contract 與實作。頁面不建立 run、不發 action token,也不把生成插圖當成政策輸入。

界線:本頁是 sanitized、deterministic 的教學重播。畫面與 demo JSON 不可授權 push、merge、deploy 或任何外部副作用;Graph/動畫/旁白也不能取代目前 revision 的 typed evidence 與 provider receipt。