▲ VH-001 · 獻給 VIBE CODER ·REV 0.4.0 · CHAN 25LAT 25.03°N · LNG 121.56°E▲ LAUNCH 2026-05-13 ▲
▲ POLICY · 最後更新 2026-05-03

隱私政策

我們收什麼、不收什麼、怎麼關掉。

01 · 一句話

vibe-hardening 在你的機器上跑。你的程式碼、密鑰、檔案路徑、repo 名稱 — 通通不會離開你的筆電。

只有在你對首次執行的 prompt 明確說 yes 之後,CLI 才會在每次 scan 結束時送一個小小的匿名事件:哪些 rule ID 觸發了、scan 跑多久、偵測到的 AI 平台指紋、CLI 版本、一個隨機產生的 UUID。就這些。

隨時可以關。設 DO_NOT_TRACK=1CI=1,或在任何 CI 環境執行,都會自動停用。

02 · 同意 opt-in 後 CLI 會送什麼

每次 scan 就傳這幾個欄位、不會多:

  • anonymous_id — 第一次執行時隨機產生的 UUID v4。存在你本機;讓我們可以去重複而不識別你。
  • consent_version — 你同意的 schema 版本,目前是 1。未來如果擴大收集範圍會 bump 這個版本、重新詢問你。
  • vh_version — 你的 CLI 版本(例如 0.3.0)。
  • platform_fingerprint — 偵測到的 AI 工具,例如 cursorlovableclaude-code。只送公開標籤、絕不送偵測時匹配到的檔案路徑。
  • files_scanned — 掃描器看過的檔案數量(整數)。
  • duration_ms — scan 跑多久,毫秒。
  • score / grade — 0–100 分數跟 A–F 等級。
  • rules_firedruleId → 觸發次數 的 map,例如 {"vh-secret-openai": 2}。Rule ID 都是 open source 規則的公開識別碼,除了「哪些規則匹配」之外不會洩漏任何程式碼資訊。
  • osdarwin / linux / win32
  • node_version — 你的 Node 版本(例如 v20.10.0)。

03 · 我們絕對不送什麼

送出的 payload 是固定 schema。CLI 沒有任何 code path 會送以下任何一樣 — 而且 public repo 裡有一條 regression test 鎖死,這些字串無論如何都不會出現在 wire payload:

  • 原始程式碼、snippet、檔案內容裡的任何字串。
  • 密鑰、API key、token、secret-scanner 找到的任何敏感資訊。
  • 檔案名稱、路徑、目錄名稱。
  • Repo 名稱、git remote URL、branch 名稱。
  • Commit message、作者名、git config。
  • 你的 IP 位址(Cloudflare 在網路層會看到 IP,但我們不存、不 log、不跟事件做關聯)。
  • Email、姓名、GitHub username 或任何帳號識別碼。
  • 除了下面列出的 opt-out 變數以外的任何環境變數。

04 · 怎麼關掉

三種,由廣到窄:

  • vibe-hardening config set telemetry off — 持久關閉、跨次執行有效。
  • VH_TELEMETRY=off env 變數 — 單次覆寫;適合 VH_TELEMETRY=off npx vibe-hardening scan
  • DO_NOT_TRACK=1CI=1 — 通用 opt-out(yarn、pnpm、Gatsby 都認)。即使你 local config 寫 telemetry on,這兩個變數也會強制關閉。

05 · 存在哪

事件 POST 到一個 Cloudflare Worker、寫進我們管理的資料庫(Supabase 或 D1)。我們是一人 indie 團隊 — 沒接 Mixpanel、Segment、Amplitude、Google Analytics、行銷追蹤像素,通通沒有。

我們不賣、不分享、不授權這份資料。只有我們會看,而且只在決定哪條規則需要強化時才會看。

保存期間:12 個月。彙總的規則觸發數可能保留更久做趨勢分析,但任何含 anonymous_id 的列 12 個月後會刪除。

06 · 為什麼要做這個

vibe-hardening 是 MIT、免費、用 npm 發佈的 CLI。我們看不到誰裝了、看不到客服 ticket、不打 sales call。

沒有一點 telemetry,launch 後前 1,500 個安裝就是黑箱。我們無法知道哪些規則觸發最多(要深化)、哪些 0× 觸發(要重做或移除)、用戶最在意哪個 AI 平台、scan 是 3 秒還是 30 秒。

Telemetry 就是「ship 出去、希望有人用」跟「ship 出去、第二週看數字決定怎麼改」的差別。

07 · 原始碼可驗

上面每一條主張都對應到 public 程式碼:

  • 送出欄位白名單:src/core/telemetry.tsbuildEvent(約 290 行)。
  • PII 防護測試:test/telemetry.test.ts → "NEVER includes PII"(鎖死沒有檔案路徑、snippet、密鑰、平台偵測 signal 路徑會出現在 wire)。
  • Opt-out env 變數強制:src/core/telemetry.tsisUniversallyOptedOut
  • 自架 endpoint SSRF 防護:src/core/telemetry.tsgetEndpoint

08 · 有問題

GitHub repo 開 issue,或直接打開 CLI 原始碼自己讀 — 整個 telemetry 表面才 ~350 行 TypeScript、有完整註解。