Ariver
2026-07-02 a8062bcb8cc69e08d0805ee5b2d93935613ceb60
CODE_GOVERNANCE.md
@@ -1,14 +1,14 @@
# Taglauncher 代码治理与 Git 规范
本文档是 `/Users/ar/Projects/Taglauncher` 的代码管理、Git 使用、交付和 Agent 协作规范。根目录 `AGENTS.md` 是强制入口;本文件是完整执行标准。
本文档是 `/Users/ar/Projects/Taglauncher2/03-O` 的代码管理、Git 使用、交付和 Agent 协作规范。根目录 `AGENTS.md` 是强制入口;本文件是完整执行标准。
## 1. 项目边界
- 主仓库工作区固定为 `/Users/ar/Projects/Taglauncher`。
- 唯一源码根目录固定为 `/Users/ar/Projects/Taglauncher/src`。
- App 源码、构建脚本、QA 脚本、SmartStart/Apple catalog 资料、发布资料都必须在 `src/` 下维护。
- 主仓库工作区固定为 `/Users/ar/Projects/Taglauncher2/03-O`。
- 唯一源码根目录固定为 `/Users/ar/Projects/Taglauncher2/03-O/C1.source`。
- App 源码、构建脚本、QA 脚本、SmartStart/Apple catalog 资料都必须在 `C1.source/` 下维护;发布证据进入 `K3.运营与发布资料/Release/`,当前迁入构建包进入 `C2.builds/`。
- 项目根目录只保留仓库入口文档、公开网站资料、治理规范和非源码管理说明。
- 不允许再创建或继续使用 `/Users/ar/Projects/Taglauncher-*source`、`/Users/ar/Projects/Apptag-*` 等外部源码目录。
- 不允许再创建或继续使用 `/Users/ar/Projects/Taglauncher2/03-O-*source`、`/Users/ar/Projects/Apptag-*` 等外部源码目录。
## 2. Git 工作区规则
@@ -73,7 +73,7 @@
git tag -a pre-src-migration-main-YYYYMMDD.HHMM -m "Pre src migration main"
```
- tag、`Info.plist`、`CHANGELOG.md`、`Release/` 资料、最终安装包文件名和 build 编号必须一致。
- tag、`Info.plist`、`CHANGELOG.md`、发布资料、最终安装包文件名和 build 编号必须一致。
- 生成 App Store 发布资料时,App Store Connect 的 What's New 不得只依据目标版本 release scope 或目标版本 changelog 小节。必须先确认当前 App Store 线上版本或当前待替换版本,并从 `CHANGELOG.md` 提取当前商店版本之后到目标版本之间的累计用户可感知变更。
- 每个 App Store release checklist 必须包含可勾选的 What's New 累计变更门禁:当前商店基线版本、目标版本、累计 changelog 范围、中间版本用户可感知变更、排除原因,以及中英文 What's New 用户审核结果。
@@ -86,7 +86,7 @@
  - 对应分支。
  - 预计生命周期。
  - 清理条件。
- worktree 不得放在 `/Users/ar/Projects/Taglauncher-*source` 或 `/Users/ar/Projects/Apptag-*` 这类容易被误认为正式源码根目录的位置。
- worktree 不得放在 `/Users/ar/Projects/Taglauncher2/03-O-*source` 或 `/Users/ar/Projects/Apptag-*` 这类容易被误认为正式源码根目录的位置。
- 任务完成后必须执行:
```bash
@@ -100,7 +100,7 @@
## 7. 构建产物与敏感文件
- `build/`、临时安装包、编译缓存、用户本地数据、钥匙串资料、p12 证书、provisioning profile 默认不进源码提交。
- 只有明确作为 release archive 的产物,才可放入 `src/Release/.../Archive/`,并必须配套说明、hash、版本和 QA 证据。
- 只有明确作为 release archive 的产物,才可放入 `C2.builds/.../Archive/`,并必须在 `K3.运营与发布资料/Release/...` 配套说明、hash、版本和 QA 证据。
- 证书目录只作为本地敏感资料管理,不作为源码迁移内容。
- 不允许把真实用户数据、隐私资料、账号凭证或本地配置写入 Git。
@@ -136,7 +136,7 @@
TagLauncher 的 UI 工作必须先确认视觉目标,再修改生产 SwiftUI / AppKit 源码。经验复盘见:
`/Users/ar/Projects/Taglauncher-doc/RepoWorkspace/Docs/KM2.项目管理-非业务直接相关/关于TagLauncher所有UI类问题的经验与教训.md`
`/Users/ar/Projects/Taglauncher2/03-O/K2.项目管理/KM2.项目管理-经验门禁/关于TagLauncher所有UI类问题的经验与教训.md`
### 10.1 触发范围
@@ -152,7 +152,7 @@
非平凡 UI 改动开工前必须先写 UI 合约。推荐模板:
`/Users/ar/Projects/Taglauncher-doc/RepoWorkspace/Docs/KM2.项目管理-非业务直接相关/UI合约模板.md`
`/Users/ar/Projects/Taglauncher2/03-O/K2.项目管理/KM2.项目管理-经验门禁/UI合约模板.md`
如果当前任务已有 PRD、TODO、Round 文档或 issue,也可以在该文档中写入同等字段,不强制复制模板。UI 合约至少包含:
@@ -194,7 +194,7 @@
## 12. 禁止事项
- 禁止在 `src/` 外新增 App 源码副本。
- 禁止在 `C1.source/` 外新增 App 源码副本。
- 禁止用外部目录长期承载源码开发。
- 禁止在不看 `git status` 的情况下提交、合并、发布或清理。
- 禁止擅自回滚用户改动。
@@ -212,13 +212,13 @@
git worktree list --porcelain 2>&1 | head -c 6000
git diff --stat 2>&1 | head -c 6000
git diff --cached --stat 2>&1 | head -c 6000
git ls-files src 2>&1 | wc -l | head -c 2000
git ls-files C1.source 2>&1 | wc -l | head -c 2000
```
从源码根目录运行 QA:
```bash
cd /Users/ar/Projects/Taglauncher/src
cd /Users/ar/Projects/Taglauncher2/03-O/C1.source
bash Scripts/apple_default_apps_resource_qa.sh 2>&1 | head -c 12000
bash Scripts/apple_default_note_policy_qa.sh 2>&1 | head -c 12000
bash Scripts/smartstart_catalog_resource_qa.sh 2>&1 | head -c 12000