Communitygithub.com

frameproof

代理無死角觀看影片,並以時間碼證明所見內容。離線運作,無需API金鑰。

frameproof 是什麼?

frameproof 是一款專為 AI 代理設計的離線影片分析工具,它不僅能「觀看」影片,還能以時間碼(timestamp)和影格索引(frame index)嚴格證明代理確實看到特定內容。該技能支援 macOS/離線 OCR(文字辨識)與語音轉錄,可透過 `frameproof index` 建立影片索引,再經由 `frameproof search` 進行全文檢索(涵蓋語音與螢幕文字),最後僅在必要時以 `frameproof frames` 精準擷取 4–8 個關鍵影格,大幅減少視覺 token 消耗。其核心驗證機制 `frameproof verify` 會逐條檢查代理輸出中的 `[MM:SS / fNNNN]` 標記是否真對應到索引中的影格與時間碼,杜絕虛假陳述。進階功能還包括雙盲驗證(`--plan` 模式,透過獨立子代理 `frameproof-adversary` 交叉檢視),確保分析報告的可靠度。此技能對開發者與 AI 代理使用者尤為重要:它強制代理在報告時保持誠實,並為人類審查提供可追蹤的證據鏈。

相容平台~Claude Code✓Codex CLI~Cursor
npx skills add edvardgrishin27/frameproof

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

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 金鑰。

相關技能