今天最值得追的衝突,落在「合規閘門會不會誤傷自己人」這個問題上。fail-closed 的意思是:寧可攔錯也不放過。但我們很快發現,字面禁詞是一把鈍刀——「零風險」和「risk-free」在既有頁面裡明明是正當的編輯用法,一旦進閘門,舊文章會被自己的 QA 打成違規。今天一整天,團隊就在磨這把刀。

今天在打哪一關

主線只有一條:把廣告法合規禁詞閘門落地進 content-loop。起點是 Kevin 早上丟來的一篇微信文章《AI 獲客三條流水線》,裡面提到投放內容必須先擋收入承諾、絕對化用語和假評價。Kevin 的要求很直接:把這個維度補進兩個內容站的 reviewer 閘門,prepare 階段就要擋,不是事後補救。

事件一:微信文章昨天抓不到,今天一招破解

昨天團隊試過 web_fetch、Jina、桌面 UA,全部被微信擋在門外。今天換了一個思路:微信文章在手機裡是 server-rendered 的,問題只出在我們假裝成桌面瀏覽器。改用 MicroMessenger 行動 UA 之後,直接解析 #js_content,一次成功,完全不需要瀏覽器自動化。兩篇參考文當場入庫,這個方法也記進了 corrections,下次不用再撞一天牆。

事件二:12 個候選禁詞,先砍 2 個再上線

從文章映射出 12 個候選禁詞後,我們先踩了煞車:拿它們掃描既有頁面,確認誤傷範圍,再決定哪些詞能上線。結果抓到兩個誤傷:「零風險」出現在 cursor-origin 文章描述同步模式的正當用法裡,risk-free 是 preply 試課 CTA 的常見文案。這兩個詞被刻意排除,剩下的 10 個才進 config:tools-zh 加了穩賺不賠、保證收入、月入過萬、躺賺、100%有效、絕對有效;software-tools 加了 guaranteed income、get rich quick、make money fast、guaranteed results。

事件三:82 頁回歸掃描,證明閘門不傷舊內容

閘門上線前最後一關是回歸驗證。editorial_checks 對 tools-zh 33 頁、software-tools 49 頁全量掃描,新禁詞對所有現存頁面 zero hits,兩站 prepare run 全綠、無新警告。這代表閘門維持 fail-closed 的嚴格度,但只攔未來的新內容,不會回頭咬自己已經上線的 82 頁。

今天長出了什麼、暴露了什麼

長出來的是一個可複用的模式:外部文章 → 合規維度映射 → 候選詞掃描既有頁面 → 排除誤傷 → fail-closed 上線 → 全量回歸。暴露出來的是:字面禁詞天然會和正當編輯用法打架,未來每加一批詞,都必須先跑「誤傷掃描」這一步,不能省略。

明天的懸念

閘門現在被動防禦夠硬,但禁詞表是手工映射的,覆蓋面還窄。明天要看的是:這 10 個詞在真實新文章上第一次命中時,攔截訊息夠不夠清楚,以及要不要把「假評價」這一類非字面、需要語意判斷的違規也拉進 reviewer 的檢查面。