# 正式变更规则 > 权威合同:`docs/系统架构/新版设计/接口契约/命令与作者决策.md`、`模块设计/S01-正式变更.md`;验证入口:[模块依赖](../../tests/架构/test_模块依赖.py)的 `20d01a` 核对跨域公开入口与接入/编排不使用游标;[正式变更事务](../../tests/集成/test_正式变更事务.py)的 `a91001`—`a91006` 覆盖幂等、回滚、竞争及身份/来源/版本拒绝;正文与章后登记原子性见[正式提交原子性](../../tests/集成/test_正式提交原子性.py)。前者是静态边界,后两者需隔离数据库,不把静态导入检查当作所有业务写入都已验证。 1. **唯一写入口**:正式内容(正文、事实、规划、设定、决策)只能经 S01 正式变更模块提交;禁止第二条写路径、禁止裸连写库。 2. **作者确认前置**:候选必须经作者明确确认才能转正;模型与工具没有作者确认身份(`调用身份.作者` 为空的调用禁止写正式内容)。 3. **携带基线**:每个提交携带正文、候选、结构和来源版本;旧版本请求必须被拒绝且不改动作者新稿。 4. **原子与幂等**:多参与者提交要么全部生效要么全部回滚;相同 `command_id` + 相同请求幂等重放,携带不同请求必须拒绝。 5. **失败可见**:提交失败保留作者本地缓冲;服务器回执是已保存的唯一依据,不能用 UI 状态代替。 6. **迁移整理与发布一致**:已合入主干并发布的数据库迁移脚本保持不可变与连续递增;在本地特性分支开发阶段,允许并提倡对未发布的迁移进行 `rebase / squash` 整理,合并为一个清晰自洽的迁移文件,避免临时补丁碎片污染历史。