常見問題
直接說清楚 Evidrift 能檢查什麼、不能保證什麼,以及為什麼它不是另一個 AI reviewer。
Evidrift 解決什麼問題?
ReproMin 把吵雜的 failing JSON request 縮成經重播驗證的結果。Contract Receipt 則保存 TypeScript 或 OpenAPI 外部 assumption,再交給 CI 重新檢查。
什麼是 verified minimal reproduction?
它是較小、但在真實 replay 中仍符合明確 HTTP status 與 error identity 的 JSON request。Probe budget 完成時,ReproMin 只建立在文件列出的 reducers 與 predicate 下為 1-minimal;不宣稱 global minimum 或 root cause。
什麼是 TypeScript API drift?
消費端程式完成後,package declaration 發生改變。Evidrift 會詢問消費端專案的 TypeScript
compiler:真實 call 選到哪一條 declared overload,接著 normalize signature 並記錄
hash。Selected signature 改變時會產生 FAIL contract_mismatch;不相關的
overload reordering 不會。
什麼是 OpenAPI contract drift?
json.pointer adapter 會使用 RFC 6901 JSON Pointer,從 repository-local
OpenAPI JSON 或 JSON Schema 選出一個 canonical value。Selected value 改變會
deterministic FAIL;若只有不相關文件內容改變,selected value 仍相同,就會回報
WARNING source_changed。
Evidrift 與 contract testing 有什麼不同?
Contract testing 通常會執行 provider 與 consumer behavior。Evidrift 不執行 service 或 dependency code;它鎖定影響某個 code location 的一項明確 static assumption,並在 merge 前重新驗證。兩種工具可以一起使用。
Evidrift 與 RAG 或 AI code review 有什麼不同?
RAG 在生成答案時供應 context;AI code review 在程式完成後做 probabilistic judgment。Evidrift 把 deterministic evidence commit 到 repository,之後不透過 LLM judge 重新計算。
哪些 Coding Agent 可以使用 Evidrift?
任何能啟動 local STDIO server 的 MCP client 都能使用。Repository 包含 Codex、Claude Code 與 Cursor 的最小設定;MCP tools 與 CLI 使用同一套 core。
Agent 能偽造 verified Receipt 嗎?
Receipt JSON 被視為不可信輸入。evidrift check 會驗證 schema、重新計算
Receipt ID 與 evidence hash,再載入 source;不信任儲存的 matched 或
verified field。若攻擊者同時替換 Receipt 與 lock,仍可建立新的 internally
consistent evidence,因此 Git review 與 branch protection 依然必要。
Evidrift 會抓 URL 或執行 command 嗎?
Contract check 不會。Receipt 無法觸發 shell command、package import、network request
或 LLM call。minimize 與 reproduce
是分離的 CLI-only 指令;明確確認後也只允許 literal loopback HTTP target,拒絕
redirect、remote address 與常見 secret-shaped input。Secret detection 只是 defense in
depth,分享前仍須人工檢查;MCP 無法觸發 replay。
目前還不支援什麼?
Evidrift v0.4.1 不支援 cURL import、remote replay、YAML、remote OpenAPI
$ref、global-minimum 或 root-cause claim、semantic equivalence、cloud
storage、Dashboard、automatic repair 或 LLM-as-a-judge CI gate。
機器介面不翻譯
CLI command、Receipt schema、error code、API name 與 machine-readable output 刻意維持英文,讓 CI、MCP client、Coding Agent 和兩種語言的文件使用同一套穩定介面。