應用合規
每個應用程式在接觸真實使用者之前,都必須通過這些關卡,並且在後續變更時持續通過。 一道關卡就是一項義務,包含一條規則、需要建置的內容,以及一個完成標準檢查。 每道關卡的狀態都會記錄在專案的合規記錄中,因此沒有任何事情可以只憑記憶或良好意圖就過關。
這是經過研究的法律工程,而非法律建議。
規則來自 research/ 中附有來源的研究筆記,日期為2026-10-31:01 隱私與同意、02 商業與聲明、以及03 無障礙、智慧財產權與AI。
當某份筆記在執行時已超過六個月,請在使用其所依據的章節之前,重新檢查這些章節中引用的主要來源(如果你有研究技能,可以使用它來協助),以確認其日期與門檻是否仍為最新。
原則
- 為所有人打造同一套建置。 針對每位使用者,採用最嚴格的通用標準(隱私遵循GDPR、訂閱與定價遵循加州法規、無障礙遵循WCAG 2.2 AA),而不是依國家進行分支處理。
- 資料地圖即真理。 法律頁面、同意提示和供應商清單所描述的內容,必須與程式碼和實際運行的應用程式一致,這些資訊應透過閱讀程式碼和擷取流量來取得,絕不依賴範本的假設。 當應用程式變更時,這些頁面必須在同一次提交中一起更新。
- 有證據,才成立。 應用程式中的每一項聲明、徽章、標誌、評論和數字,都必須指向記錄中的一個證據條目。
- 擁有者決定,代理起草。 代理負責撰寫頁面、程式碼和測試;簽署、註冊、權限和法律判斷則是擁有者的行動,代理絕不能代替擁有者將這些事項標記為完成。
步驟
- 繪製資料地圖。 根據程式碼和一次實際執行,在合規記錄中建立資料地圖:每個包含個人資料的表單欄位和API輸入、每個儲存資料的資料庫欄位或儲存體、每個Cookie和
localStorage/sessionStorage/IndexedDB金鑰、每個應用程式呼叫的網域(使用Playwright HAR擷取所有路由,並使用mitmproxy等代理工具擷取全新行動裝置安裝的流量)、依賴樹中的每個SDK,以及應用程式傳送的每封電子郵件。 針對每個項目:目的、法律依據、儲存位置、保留期限,以及接收資料的供應商。 當程式碼搜尋和HAR顯示地圖中沒有遺漏任何項目時,即為完成。 - 設定範圍。 在記錄中回答:使用者是誰(消費者、企業、可能包含兒童)?所在地區(美國、歐盟/英國、其他地區)?業務規模(員工人數、營業額)?是否處理付款或訂閱?是否發送行銷電子郵件?是否儲存使用者提供的內容(貼文、留言、檔案、個人資料、頭像)?是否顯示AI輸出或AI聊天?是否處理健康、財務、生物辨識或精確位置資料? 如果「敏感資料」或「兒童」的回答為「是」,則需要在擁有者行動中加入律師審查。
- 逐一走訪每道關卡。 閱讀下面的每個關卡檔案,並為每道關卡指定一個狀態:
pass(通過)、fail(失敗)、n/a(不適用,並附上排除此關卡的範圍答案),或owner(等待擁有者行動)。gates/privacy.md:隱私權政策、資料極小化、保留、存取與刪除請求、兒童、AI訓練使用使用者資料、供應商、DPA與次處理者(PRIV)。gates/consent-and-tracking.md:Cookie橫幅、同意前阻擋追蹤器、選擇退出訊號、獨立的行銷同意(CONSENT)。gates/terms-and-payments.md:條款接受與其記錄、完整價格、退款、自動續訂、取消、歐盟撤回權(TERMS, PAY)。gates/marketing-and-claims.md:聲明、安全徽章、評論、標誌、正常執行時間、緊急性、暗黑模式、營業資訊、行銷電子郵件(CLAIM, UX, BIZ, EMAIL)。gates/accessibility.md:WCAG 2.2 AA掃描、對比度、替代文字、鍵盤操作、焦點、時間與目標、歐盟無障礙聲明(A11Y)。gates/licenses-and-content.md:程式碼、字型、圖片和圖示的授權、檢舉與下架使用者內容(LIC, UGC)。gates/ai.md:AI聊天揭露、標示與標記產生的內容(AI)。
- 修復並證明。 根據每個
fail狀態所需的內容進行建置,然後執行其完成標準檢查:將自動化檢查作為專案測試套件中的測試,以便持續執行;手動檢查則記錄日期和結果。 當所有關卡的狀態都為pass、n/a或owner,且沒有任何fail時,即為完成。 - 移交。 在記錄頂端撰寫擁有者行動清單,並在對話中告知擁有者,每項一行:要做什麼、為什麼這麼做、以及在哪裡進行。
在後續變更時,針對受影響的關卡檔案重複步驟1和步驟3到5,並在同一次提交中更新記錄。
合規記錄
每個應用程式在其儲存庫中的 docs/compliance.md 維護一份記錄,並在原處更新,該記錄是根據 record-template.md 建立的。
它包含範圍答案、資料地圖、每道關卡的狀態與證明、證據條目、資產登記冊以及擁有者行動。
一個應用程式只有在記錄中沒有任何fail,且擁有者已清除或明確接受每個未結的擁有者行動時,才能啟動上線。