# Memind 103 收口方案(2026-06-26) ## 当前判断 `Memind` 已经接近“可以收口”的状态,但 `103` 当前运行目录已经不是一个可依赖 Git 的干净工作树。 已确认: 1. `103` 运行目录:`/Users/john/Project/Memind` 2. `103` 当前目录存在 `.release-manifest.txt`,说明至少已有发布包切换痕迹。 3. `103` 上当前 **无法直接把 `Memind` 当成 Git 工作树使用**。 4. 本地 `test-memind` 是后续唯一应保留的源码主线。 ## 这意味着什么 1. 以后不能再依赖“线上 `git rev-parse` 一致”来判断是否对齐。 2. `103` 只能作为运行事实来源与只读基线来源。 3. 真正要收口的动作,必须发生在本地仓库里。 ## 当前差异判断 本地与 `103` 只读基线相比: 1. 业务主文件大体已经一致。 2. 本地多出了规则文档、审计脚本、运行资源、历史备份文件。 3. 这批差异里,大多数不是“线上独有必须回收”的功能逻辑。 ## 收口目标 把 `Memind` 从“本地和线上都可能被手改”收口成: 1. 本地 `test-memind` 是唯一源码真相。 2. `103` 只接收发布包,不再手改源码。 3. 发布后通过 manifest、健康检查、业务验收确认版本一致。 ## 具体执行步骤 ### 第一步:冻结线上直改 1. 不再在 `/Users/john/Project/Memind` 直接改源码。 2. 不再把 `103` 当作可直接修代码的工作目录。 ### 第二步:只保留只读基线 当前只读基线目录: - `/Users/john/PycharmProjects/test/_103_baselines/Memind` 用途: 1. 对账 2. 取证 3. 回收必要热修 禁止: 1. 用它覆盖本地主开发目录 2. 把它误当主仓库继续开发 ### 第三步:清理本地“非源码差异” 优先处理: 1. 历史 `.bak` 文件 2. 明显的临时日志与运行输出 3. 不应该长期存在于主仓库的临时资源 注意: 1. 先分类,再清理 2. 不要误删正在使用的真实业务资源 ### 第四步:做第一次收口发布 1. 本地把必须保留的改动整理成 commit。 2. 用 `bash scripts/release-prod.sh` 生成发布包并发布到 `103`。 3. 发布后保留 `.release-manifest.txt`、备份包路径、健康检查结果。 ### 第五步:建立后续一致性 以后每次发布必须满足: 1. 本地先 commit 2. 从 commit 打包 3. `103` 只收包 4. 发布后验证 5. 出问题回滚 ## 何时算收口完成 满足以下条件即可视为完成: 1. `103` 上不再直接改源码 2. 本地变更都能追溯到 commit 3. 最近一次线上版本来自 `scripts/release-prod.sh` 4. 业务验收结果与 manifest 能对应到同一发布编号