From bcceca83ce966598e00e0319d85ec11d6df9d272 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Tue, 30 Jun 2026 03:44:54 +0800
Subject: [PATCH] Freeze TagLauncher 8.2.8 build 20260630.0128

---
 CODE_GOVERNANCE.md |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 52 insertions(+), 3 deletions(-)

diff --git a/CODE_GOVERNANCE.md b/CODE_GOVERNANCE.md
index 553d6ed..2305e7f 100644
--- a/CODE_GOVERNANCE.md
+++ b/CODE_GOVERNANCE.md
@@ -132,7 +132,55 @@
 - 迁移、发布、构建任务必须记录可复核证据:版本/build、执行命令、关键结果、产物路径、hash 或 QA 报告。
 - QA 失败不能只口头解释;必须判断是产品回归、脚本断言问题、环境问题还是迁移无关问题,并记录结论。
 
-## 10. 命令输出保护
+## 10. UI Preview Gate
+
+TagLauncher 的 UI 工作必须先确认视觉目标,再修改生产 SwiftUI / AppKit 源码。经验复盘见:
+
+`/Users/ar/Projects/Taglauncher/Docs/KM2.项目管理-非业务直接相关/关于TagLauncher所有UI类问题的经验与教训.md`
+
+### 10.1 触发范围
+
+以下变更默认属于非平凡 UI 改动,必须先过本门禁:
+
+- AppGrid、Settings、Theme、Pro、Quick Search、usage tips、弹窗、窗口尺寸、菜单栏、hover bubble、拖拽、点击热区或可访问性变化。
+- 布局、字号、字重、行高、间距、颜色、主题 token、material、阴影、图标、文案长度、状态提示或空态变化。
+- 会影响截图、录屏、App Store 展示、发布说明、QA 截图 smoke 或用户验收观感的变化。
+
+纯只读调查、日志定位、静态文本检索或不接触生产 UI 源码的 throwaway 原型,可以暂不进入完整门禁,但必须明确“不修改生产 UI 源码”。
+
+### 10.2 UI 合约
+
+非平凡 UI 改动开工前必须先写 UI 合约。推荐模板:
+
+`/Users/ar/Projects/Taglauncher/Docs/KM2.项目管理-非业务直接相关/UI合约模板.md`
+
+如果当前任务已有 PRD、TODO、Round 文档或 issue,也可以在该文档中写入同等字段,不强制复制模板。UI 合约至少包含:
+
+- 目标界面:目标截图、标注、Penpot / Figma frame、baoyu-design HTML / 静态 screen,或等价可审阅预览。
+- 影响 surface:具体窗口、tab、弹窗、AppGrid 区域、Quick Search 区域、tips、Pro 入口或 release screenshot。
+- 不做范围:本轮明确不改的视觉、交互、文案、数据、状态和旧行为。
+- 状态矩阵:free / Pro / legacy Pro / preview / expired / purchase pending / cancel / fail / restore fail 等相关状态。
+- 主题和语言长度矩阵:默认、黑色、深蓝、亮色、暗色炫彩、亮色炫彩,以及长语种、长标签、长备注、价格、倒计时等文本压力。
+- 交互互斥关系:tips vs 图标点击、hover scroll vs hover bubble、sorting vs empty drop、Quick Search only vs AppGrid tips、modal vs backdrop dismiss、theme preview vs persistent theme、Pro preview vs real Pro state。
+- 验收证据:需要产出的真实 App 截图、录屏、AX 读取、真实鼠标点击 / hover / 拖拽 / 滚动证据,以及对应保存路径。
+
+### 10.3 高保真预览与用户确认
+
+- 非纯调查任务必须先产出高保真预览,再进入生产 UI 源码修改。
+- 高保真预览可以来自 baoyu-design HTML / 静态 screen、Penpot / Figma frame、用户标注图、真实 App 参考截图或等价可审阅 artifact。
+- Agent 可以先产出 2-3 个候选预览;候选未被用户确认前,只能标记为 preview / candidate / experiment。
+- 用户确认视觉目标后,才允许修改 SwiftUI / AppKit 生产源码;确认范围只覆盖被确认的 surface、状态和不做范围。
+- 如果为了验证可行性需要写 throwaway 原型,必须放在非生产路径并注明不可直接发布;不得把实验代码混入正式 App 源码。
+
+### 10.4 实现与视觉验收
+
+- 实现必须保护 UI 合约的不做范围,不得借 UI 修复顺手重写已验收视觉、交互或文案。
+- 静态 QA、构建通过、脚本 PASS 只能证明静态条件,不等于视觉通过。
+- 视觉 PASS 必须有真实渲染或真实交互证据:真实 App 截图、录屏、AX 窗口 / 控件读取、真实点击、hover、拖拽、滚动或 Esc / 外部点击证据。
+- 缺少哪类证据就如实记录缺口;不得用静态 QA 替代截图、录屏、AX 或真实点击证据。
+- 用户判定视觉倒退时,必须保留失败结论;失败候选不得进入正式发布候选,不得写成防回退 QA。
+
+## 11. 命令输出保护
 
 任何未知或可能很大的命令输出都必须 byte-cap:
 
@@ -144,7 +192,7 @@
 - 搜索优先用 `rg` / `rg --files`。
 - 不无上限打印大文件、构建日志、目录树或二进制信息。
 
-## 11. 禁止事项
+## 12. 禁止事项
 
 - 禁止在 `src/` 外新增 App 源码副本。
 - 禁止用外部目录长期承载源码开发。
@@ -153,8 +201,9 @@
 - 禁止把证书、账号、用户数据、临时 build 缓存提交进 Git。
 - 禁止把阶段性通过当成整体完成;仍有明确未完成项时必须继续推进。
 - 禁止没有 QA 证据就声称可交付。
+- 禁止非平凡 UI 改动跳过 UI 合约、高保真预览、用户视觉确认或真实渲染 / 交互证据。
 
-## 12. 常用检查命令
+## 13. 常用检查命令
 
 ```bash
 git status --short 2>&1 | head -c 6000

--
Gitblit v1.9.3