# Cindy 工程迁移规则模板

用途：把有项目依据的工程原则改写成适合个人工具或 Aipcg 的可执行规则。填写的是迁移建议，除明确引用外，不代表 Cindy 对其他项目的既定要求。配套章节：[CY-03](<../学习成果/Cindy/CY-03_工程原则与迁移.md>)。

## 一条规则的完整记录

```text
规则名称：
目标项目与版本：
问题：具体触发条件和影响，避免只写“保持可靠”。
Cindy 机制：采用什么边界、接口或状态设计？
来源：文档／源码／历史验证链接，核验日期。
证据类型：规范要求／当前源码／历史运行／本次实测。
适用条件：项目为什么需要这条规则？
最小采用方式：具体修改哪一层，而非复制整套框架。
执行位置：入口／函数／schema／配置消费者。
检查样本：正常、边界、错误输入及预期观察。
实际检查：命令、环境、结果、结果文件；没运行写“未运行”。
失效条件：版本、依赖、业务或拓扑改变时回查什么？
不适用情形：哪些条件下应减轻或不采用？
```

## 三条示范规则

### 规则 A：可复用计算与宿主副作用分开

问题：布局算法直接调用 UE，普通 Python 无法检查单位、几何和资产匹配。来源是 [Cindy 架构不变量](<../sources.html#ref-963bcda8ceb9f0>) 和 [Electron 进程边界](<../sources.html#ref-2ae4d54d5d5b0d>)，证据类型为项目规范与已阅读的注入接口。

适用条件：计算逻辑需要 CLI、API 或引擎多个入口。最小采用方式是把坐标转换与几何审计写成纯函数，让引擎适配器传入资产尺寸并负责保存。执行位置是计算模块入口；检查同一保存样本在不启动 UE 时得到稳定输出。若脚本只有一次性引擎操作，不必强行拆出许多包。

### 规则 B：记录自定义状态，恢复默认删除 override

问题：把系统默认快照写进用户配置后，默认升级无法生效。来源为 [配置契约](<../sources.html#ref-956e829fccbcc1>)，证据类型为权威规则；本模板未验证 TA 工具实现。

适用条件：配置会升级且允许用户自定义。最小采用方式是保存稀疏覆盖，并以“是否存在”合并。执行位置为配置加载器。检查缺省跟随新默认、显式 `false`／零保留、恢复默认删除覆盖。未使用持久设置的小脚本可只使用清楚的命令行参数，不必新增配置数据库。

### 规则 C：未知结果先核实，不能自动补成功或重跑

问题：外部执行器消失时，后代可能仍运行，重发会重复导入或构建。来源为 [Pi 生命周期研究](<../sources.html#ref-73fa23b0a5e810>) 和 [当前 transport](<../sources.html#ref-1b03bfd8dbd588>)。证据类型为历史受控记录与当前源码；原 Windows 打包根因仍未证明。

适用条件：任务较长或有文件／引擎副作用。最小采用方式是记录任务 ID、父子进程、受理与终态，未知时查询现有结果。执行位置在任务控制器。检查正常静默、已退出且管道未关、用户取消及结果缺失。这里不照抄 250ms 为普通任务超时；短小无副作用的纯计算可以采用更简单的失败返回。

## 采用与验收表

| 规则 | 对应问题 | 执行位置 | 检查与预期 | 实际结果 | 未验证项 |
|---|---|---|---|---|---|
| A |  |  |  | 未运行 |  |
| B |  |  |  | 未运行 |  |
| C |  |  |  | 未运行 |  |

完成条件：三条规则均有来源、适用条件、明确执行位置和能发现违例的检查；将建议与已有实现分开，不填写未做的运行结果。
