frameproof — 觀看影片並能證明所見
核心原則
切勿宣稱螢幕上出現了什麼,除非你親眼看到了該影格。
此工具會如實報告覆蓋範圍。若報告中有「無影格」區段,請直接說明:「此處無影格,根據音訊判斷——如下」。將猜測偽裝成觀察結果,會使整個分析報告失去價值。
**所有關於螢幕的陳述都必須附上 [MM:SS / fNNNN] 標記。**這並非裝飾:frameproof verify 會根據索引檢查每個此類標記。虛構的引用會被算術邏輯識破,無需任何模型介入。
工作流程
1. 建立索引
frameproof index "<連結或路徑>" --ocr
輸出覆蓋報告。在開始其他操作前務必閱讀此報告:了解總影格數、最大間隙、是否存在無影格區域。
索引路徑位於輸出的最後一行。後續需要將其作為 --out 參數使用。
--ocr 啟用影格文字辨識(macOS,離線)。這使得螢幕內容可搜尋:命令、檔案名稱、URL 等無需查看圖片即可透過搜尋找到。辨識過程使用原始解析度的獨立副本進行,顯示內容保持輕量。
有用的選項:--max-gap 10(更密集的覆蓋)、--max-frames 400(長影片)、--lang ru(若無字幕時的語言設定)。
若影片旁已有現成字幕檔案——使用 --subs 語音.srt,這比語音轉錄更準確且更快速。在非 macOS 系統上,可透過自訂 OCR 引擎:--ocr-command "<程式>",此程式接收圖片路徑並輸出 路徑<TAB>文字。
2. 閱讀索引地圖
cat <索引>/index.json
此檔案很小,請完整閱讀。其中包含影片長度、影格數量、轉錄來源,以及最重要的——coverage 區塊。
3. 使用文字搜尋,而非圖片
frameproof search "<查詢>" --out <索引>
同時搜尋語音與螢幕文字。返回帶有時間碼的行。**無需任何圖片——零視覺 token。**大多數問題在此步驟即可解決。
搜尋為子字串層級(三元組),不受俄語詞形變化影響。
對於更複雜的查詢,可直接 grep:
grep -i "docker" <索引>/segments.jsonl | head
grep -i "npm" <索引>/frames.jsonl | head
4. 僅在必要時查看影格
frameproof frames --at 4:12 --out <索引> # 特定時間點
frameproof frames --ids f0043,f0044 --out <索引> # 特定影格
這是唯一會返回圖片的命令。透過 Read 讀取輸出的路徑。
預算:每次 4–8 個影格。 一個 1280×720 影格約耗費 1196 個視覺 token。顯示一小時影片的所有影格將消耗數十萬 token——不可為之。
5. 附帶證據回答
關於螢幕的陳述格式如下:
在 18:38 顯示了模型路由表:MAIN — 昂貴且智慧,AUXILIARY — 便宜且快速。
[18:38 / f0097]
若用戶請求文章或摘要——根據 frames.jsonl 中的路徑插入影格作為插圖,並附上時間碼。
6. 自我驗證——僅在用戶要求時
[MM:SS / fNNNN] 標記不是裝飾,而是可驗證的引用。機械稽核免費且即時,應對任何長度超過幾段的分析報告執行:
frameproof verify <分析報告檔案.md> --out <索引>
此命令不涉及任何語義——它僅檢查引用的完整性:影格是否存在、時間碼是否與影格對應、該時間點是否落在無影格區域、該影格是否曾被請求、引述的文字是否出現在影格內容或附近語音中。
FAIL 表示引用損壞,必須修復,而非討論。WARN 表示應打開影格肉眼確認。
7. 雙盲驗證——僅在明確請求時
當用戶說「檢查分析」、「重新確認」、「你確定看到這個?」時——執行對抗性驗證。
frameproof verify <檔案> --out <索引> --plan
此命令會輸出一個包含任務的 JSON。將這些任務委派給子代理 frameproof-adversary,一次呼叫即可(無需為每個陳述建立一個代理——一個就夠了)。
傳遞給子代理的內容: 僅包含編號後的陳述列表以及影格路徑,完全依照 JSON 中的格式。
絕對不得傳遞的內容(一句話都不行):
- 用戶提出的問題;
- 你自己得出該結論的推理過程;
- 分析報告的其餘部分;
- 任何暗示你認為正確答案為何的訊息。
子代理不會看到對話歷史——這是確保的。但委派訊息由你撰寫,而這是唯一剩下的洩漏管道。知道預期答案的檢查者是無用的:他會確認答案。
如何處理驗證結果:
CONFIRMED— 保持原樣。REFUTED— 標記,而非刪除:[未經雙盲驗證確認:<原因>]。錯誤地否定正確陳述的情況比想像中更常見,因此決策應由人類做出,而非你。UNSUPPORTED— 誠實告知:影格上無法看到該內容,結論是根據音訊或相鄰時間點推斷。
請勿在每次分析後自動執行此流程。它消耗 token 與時間,而機械稽核層已免費捕獲大部分問題。
禁止事項
- 不要僅憑一份轉錄稿就聲稱完成了螢幕分析。 語音與螢幕內容常不一致:影片中人說「openrouter」,但螢幕上顯示
openrouter/pareto-code (min_coding_score 0.65)。後者僅存在於影格與 OCR 中。 - 不要「以防萬一」批量載入影格。 先搜尋,再精準擷取影格。
- 不要將 OCR 輸出當成程式碼原文。 辨識可能混淆標點符號:例如
[main被讀成Imain。OCR 用於找到影格;影格上實際寫了什麼——請肉眼確認。 - 不要隱瞞無影格區段。 若覆蓋率低於 100%,請告知用戶。
若缺少元件
frameproof doctor
顯示已安裝及缺少的元件。必備:ffmpeg 和 numpy;yt-dlp 僅用於連結;語音轉錄:mlx-whisper(Apple Silicon 上快速)或 openai-whisper(通用)。無需任何 API 金鑰。