From 14a1efc86d0295be3a0d3fe1ebe7b8080266da2d Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 13 Jul 2026 16:23:44 +0800
Subject: [PATCH] docs: clean Aligner migration metadata

---
 README.md |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index 062459b..eb9da88 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
 # 03-O — 输出成果
 
 > O = Output。本目录存放 Aligner 项目所有产出物。
-> **IN git** — 需要版本管理的都在这里。
+> **IN git** — 源码、工具、知识和规则放在这里;构建产物默认不进入 Git。
 > Git 仓库根目录:`03-O/`。不要在项目根目录或 `03-O/C1.source/` 单独初始化 Git 仓库。
 
 ## 目录结构
@@ -9,10 +9,10 @@
 | 路径 | 内容 | git |
 |------|------|:---:|
 | `C1.source/` | **源代码** — Sources/ + Tests/ + Package.swift | ✅ |
-| `C2.builds/` | **构建输出** — 根目录只保留当前发布包目录、旧版归档、研发中间产物 | ✅ |
-| `C2.builds/Aligner-<Version>-build<YYYYMMDD.HHMM>/` | **当前最新包** — 最新可分发 DMG + `SHA256SUMS.txt` | ✅ |
-| `C2.builds/X-旧版build成果/` | **历史存档** — 旧 DMG / 旧发布包归档,不放旧 `.app` | ✅ |
-| `C2.builds/Z-研发中间产物/` | **内部工作区** — 当前 `.app`、QA 报告、trace、截图样本、图标试验 | ✅ |
+| `C2.builds/` | **本地构建输出** — 根目录只保留当前发布包目录、旧版归档、研发中间产物 | 🚫 |
+| `C2.builds/Aligner-<Version>-build<YYYYMMDD.HHMM>/` | **当前最新包** — 最新可分发 DMG + `SHA256SUMS.txt` + release manifest | 🚫 |
+| `C2.builds/X-旧版build成果/` | **历史存档** — 旧 DMG / 旧发布包归档,不放旧 `.app` | 🚫 |
+| `C2.builds/Z-研发中间产物/` | **内部工作区** — 当前 `.app`、QA 报告、trace、截图样本、图标试验 | 🚫 |
 | `C3.tools/` | **工具脚本** — 打包脚本、窗口诊断 | ✅ |
 | `K1.业务知识/` | **业务知识** — 窗口行为、Space 枚举、AX API、架构共识 | ✅ |
 | `K2.项目管理/` | **项目管理知识** — SOP、协作规范、经验教训 | ✅ |
@@ -21,6 +21,7 @@
 
 - `03-O/` 是唯一 Git 仓库根目录。
 - `C1.source/`、`C3.tools/`、`K1.业务知识/`、`K2.项目管理/` 都随 `03-O/` 一起版本管理。
+- `C2.builds/` 是本地构建输出和归档目录,不进入 Git;正式可回滚版本通过源码 commit、release tag、release manifest、DMG SHA256 和 GitHub Release asset 绑定。
 - `C1.source/` 只是 SwiftPM / Xcode 工程根,不是 Git 根。
 - 过程文档 `02-P/` 和输入材料 `01-I/` 不进入该 Git 仓库。
 
@@ -28,11 +29,12 @@
 
 - `C2.builds/` 根目录永远保持清爽:只放一个当前最新包目录、`X-旧版build成果/`、`Z-研发中间产物/`。
 - 当前最新包目录命名为 `Aligner-<Version>-build<YYYYMMDD.HHMM>/`,目录内放当前 `.dmg` 和 `SHA256SUMS.txt`。
+- 正式测试包 / 发布包还必须包含 release manifest;manifest 是发布证据,不代表 `C2.builds/` 进入 Git。
 - `X-旧版build成果/` 只存历史可恢复包;旧 `.app` 不进入归档(避免 macOS 搜出一堆旧 App 影响系统表现)。
 - `Z-研发中间产物/current/Aligner.app` 是研发和 QA 脚本使用的当前可运行 `.app`,不是分发包。
 - `Z-研发中间产物/qa-reports/` 存放 Round QA JSON、trace、XML、截图样本等中间产物,不允许散落在 `C2.builds/` 根目录。
 - 可验收 / 可分发 DMG 命名格式:`Aligner-<Version>-build<YYYYMMDD.HHMM>.dmg`
-- DMG 文件名中的 version / build 必须与 `Z-研发中间产物/current/Aligner.app/Contents/Info.plist` 中的 `CFBundleShortVersionString` / `CFBundleVersion` 一致。
+- DMG 文件名中的 version / build 必须与 `C1.source/Resources/Aligner-Info.plist` 中的 `CFBundleShortVersionString` / `CFBundleVersion` 一致;`Z-研发中间产物/current/Aligner.app` 只是 QA 可运行副本,不是版本事实源。
 - 本地开发包优先使用稳定代码签名身份。若只能使用 ad-hoc 签名,Accessibility / Screen Recording 的 TCC 授权可能在重打包后失效,表现为系统开关已打开但 App 内仍显示未授权。
 - `C3.tools/package-app.sh` 默认只打包不启动;需要打包后自动启动时显式设置 `ALIGNER_OPEN_AFTER_BUILD=1`。
 - `C3.tools/check-signing.sh` 可检查本机当前会使用的签名身份。推荐长期固定 `Aligner Local Code Signing`;未创建该身份时,可临时使用 `ALIGNER_CODE_SIGN_IDENTITY` 指定现有稳定本地签名身份。

--
Gitblit v1.9.3