內容一致性驗證器
概述
檢查來自多個文件來源(網站、GitHub 儲存庫、本地文件)的內容在語氣、術語、格式和結構上的一致性。產生唯讀的差異報告,報告中包含按嚴重程度分類的發現以及可行的修正建議,包括檔案路徑與行號。
範例
- 發佈前審核:在標記新版本之前,執行驗證器以捕獲 README、文件網站和更新日誌之間的版本不匹配問題 —— 例如網站顯示 v2.1.0,但 GitHub README 仍引用 v2.0.0。
- 品牌重塑後檢查:重新命名產品或更新術語(例如將「plugin」改為「extension」)後,驗證所有文件、登陸頁面和貢獻指南是否一致地使用新術語。
- 入門審查:當新貢獻者指出文件令人困惑時,執行一致性檢查,以發現文件來源之間矛盾的 feature 宣稱、過時的聯絡資訊或缺失的章節。
先決條件
- 至少能存取兩個內容來源(網站、GitHub 儲存庫或本地文件目錄)
- 已為遠端 URL(已部署的網站、GitHub 原始內容)設定 WebFetch 權限
- 本地文件存放在可識別的路徑中(
docs/、claudes-docs/、internal/)
操作說明
- 探索來源 —— 掃描建置目錄(
dist/、build/、public/、out/、_site/)、GitHub README/CONTRIBUTING 檔案以及本地文件資料夾:find . -maxdepth 3 -name "README*" -o -name "CONTRIBUTING*" | head -20 ls -d docs/ claudes-docs/ internal/ 2>/dev/null - 提取結構化資料 從每個來源中:版本號碼、功能宣稱、產品名稱、標語、聯絡資訊、URL 以及技術需求:
grep -rn 'v[0-9]\+\.[0-9]\+' docs/ README.md grep -rn -i 'features\|capabilities' docs/ README.md - 驗證提取結果 —— 確認每個來源至少有 3 個資料點。如果某個來源回傳空值,請先查閱錯誤處理表格,再繼續後續步驟。
- 建立對比矩陣,將每個來源與其他所有來源進行配對(網站 vs GitHub、網站 vs 本地文件、GitHub vs 本地文件):
diff <(grep -i 'version' README.md) <(grep -i 'version' docs/overview.md) - 按嚴重程度分類差異:
- 嚴重:衝突的版本號碼、矛盾的功能列表、不匹配的聯絡資訊、失效的交叉引用
- 警告:不一致的術語(例如「plugin」vs「extension」)、某個來源缺少資訊、過時的日期
- 資訊:風格差異、特定平台的用語、不同的詳細程度
- 套用信任優先級:網站(最具權威性)> GitHub(開發者面向)> 本地文件(內部使用)。
- 產生報告,格式為 Markdown,包含:執行摘要、逐對比較表格、術語一致性矩陣,以及包含檔案路徑和行號的優先行動項目。
- 儲存 到
consistency-reports/YYYY-MM-DD-HH-MM-SS.md。
報告格式
# Consistency Report — YYYY-MM-DD
## Executive Summary
| Severity | Count |
|----------|-------|
| Critical | 2 |
| Warning | 5 |
| Info | 3 |
## Website vs GitHub
| Field | Website | GitHub | Severity |
|-------------|---------------|---------------|----------|
| Version | v2.1.0 | v2.0.0 | Critical |
| Feature X | listed | missing | Warning |
## Action Items
1. **Critical** — Update `README.md:14` version from v2.0.0 → v2.1.0
2. **Warning** — Add "Feature X" to `README.md` feature list
錯誤處理
| 錯誤 | 原因 | 解決方案 |
|---|---|---|
| 網站內容無法存取 | URL 回傳 4xx/5xx 或建置目錄遺失 | 確認網站已部署或執行本地建置;檢查 WebFetch 權限 |
| GitHub API 速率限制 | 短時間內擷取次數過多 | 暫停並在重置視窗後重試;使用經過驗證的請求 |
| 找不到文件目錄 | 預期路徑不存在 | 確認工作目錄;明確指定文件路徑 |
| 內容提取結果為空 | 用戶端渲染導致 fetch 無法擷取 | 使用本地建置輸出目錄代替即時 URL |
| diff 指令失敗 | 檔案路徑包含特殊字元 | 對傳遞給 diff 和 grep 的所有檔案路徑加上引號 |
資源
- 內容來源探索邏輯:
${CLAUDE_SKILL_DIR}/references/how-it-works.md - 信任優先級與驗證時機:
${CLAUDE_SKILL_DIR}/references/best-practices.md - 使用情境逐步解說:
${CLAUDE_SKILL_DIR}/references/example-use-cases.md