Appearance
加密软件环境下的 AI 开发注意事项
企业加密或 DLP 软件可能根据目录、后缀、进程和策略处理源码、构建中间文件或 Office 文档。真正的问题不是“所有项目都必须绕开正式后缀”,而是要先判断当前项目是不是已知受控环境,再复用已经验证有效的处理路径。
1. 先区分普通项目和已知受控项目
普通 Git 工作区
如果没有出现受控/加密证据,正常使用窄范围编辑、Git diff、回读和按影响验证即可。
不建议为了“预防加密”让每一个小修改都统一经历:
text
正式文件 → .work → 再回写 → 再构建这种流程会增加 IO、临时文件和误操作成本,也容易让 Fast Lane 重新变重。
已知 E-SafeNet / DLP 项目
出现下面任一类稳定证据后,可把项目标记为已知受控环境:
- 保存后源码、XAML、DOCX 被重新包装或普通工具读不到;
MSB3541、Null character in path、CS2015等与受控文件相关的稳定签名;obj/*.csproj.FileListAbsolute.txt出现受保护路径污染;- Visual Studio / Word 能打开,但普通命令、SDK 或 ZIP/DOCX 解析器读取异常;
- 项目已经在
.agent-memory/pinned.md记录 E-SafeNet/Cobra DocGuard 事实。
一旦已经确认,不要每个任务重新“发现”一遍。
2. V10 对已知 E-SafeNet 的默认策略
text
识别 affected projects
→ 主构建前一次性清 affected projects 的 FileListAbsolute
→ 构建一次
→ 若仍命中同一 E-SafeNet 签名,再一次性清 affected obj + restore/build
→ 仍失败再使用仓库外 artifacts / 环境阻塞结论不要这样做:
text
删 Contracts obj → build
删 Application obj → build
删 Infrastructure obj → build
删 App obj → build同一环境问题不应该按项目串行撞四五次。
如果使用 V10 Skill,优先:
powershell
& "$SKILL_ROOT\scripts\HostDev.cmd" verify -RepoRoot .HostDev verify 会结合影响范围和已知 E-SafeNet 事实选择更窄的验证路径。
3. 什么情况下才需要工作副本或 RecoverySnapshot
工作副本不是普通项目的全局强制规则,但在下面情况仍然有价值:
- 当前受控软件会在保存瞬间修改正式后缀文件;
- 文件曾出现乱码、空文件、异常缩短或无法回读;
- 用户明确要求保留字节级恢复点;
- DOCX、正式交付文档或高价值配置要在受保护目录中写回;
- 当前环境已经证明直接编辑不稳定。
此时应优先:
text
项目外 RecoverySnapshot
→ 仓库外或非受控临时副本
→ 编辑与验证
→ 最后一步写回正式位置
→ 回读确认RecoverySnapshot 的目的是真正可恢复,不是机械制造 .bak 文件。
4. DOCX / Word / WPS 的特殊处理
受保护目录里的 DOCX 可能被包装后不再是普通 ZIP 容器。典型表现是 Word/WPS 能打开,但通用 DOCX 解析器提示不是 ZIP 或结构异常。
已知受保护项目中,推荐:
- 先把 DOCX 复制到仓库外临时目录;
- 在临时副本完成文字、样式、目录、图表和结构验证;
- 需要 Word/WPS 域更新时在临时副本完成;
- 最后通过 Word/WPS 或受控允许的方式写回项目目录;
- 写回后至少确认文件可打开、关键章节存在、大小合理。
不要在项目目录里做完大量修改后才第一次检查文件是否已被保护。
5. 构建污染和源码损坏不是一回事
| 现象 | 优先判断 |
|---|---|
| 普通 C# 编译错误、缺类型、参数不匹配 | 代码问题,直接修代码 |
MSB3541、Null character、异常 FileListAbsolute | 先按 E-SafeNet 构建污染处理 |
| XAML 第一行第一列异常、重复临时 XAML 被编译 | 检查临时文件和受控写入 |
| 文件突然变空、乱码、hash/大小异常 | 先恢复文件,不继续叠补丁 |
普通编译错误不能触发整套 E-SafeNet 恢复链;同样,E-SafeNet 环境错误也不能被当成“代码没写对”。
6. 临时文件不要落进项目编译范围
避免在项目目录中留下可能被 SDK/WPF 自动纳入构建的副本:
text
MainWindow.copy.xaml
App.tmp.xaml
*.linksrc
*.backup.cs
临时 App.xaml
临时 ResourceDictionary.xaml需要临时文件时优先放到项目外工作目录。任务结束后清理。
7. 一次失败后的处理
如果 HostDev.cmd、PowerShell 或验证入口第一次因为本机策略/脚本编码失败:
- 本任务标记
ToolingUnavailable; - 不在用户任务里反复
Get-Help、读 Skill 脚本、调工具本身; - 退回人工 V0–V3 精准验证;
- 把 Skill 工具修复放到独立维护任务。
工具故障不能把一个两分钟业务修改拖成半小时 Skill 调试。
8. 什么时候必须停止继续写入
出现以下情况应先保护现场和恢复:
- 正式文件乱码、变空、异常缩短;
- 刚写入的关键片段读不回来;
- Git diff 无法解释;
- 文件类型从正常文本/ZIP 变成未知包装;
- 同一文件连续写回结果不一致;
- 恢复点无法建立而当前写入风险已知很高。
停止写入不等于停止分析。可以继续做只读调查、Git 对比、日志分析和方案判断。
9. 最短规则
text
没有受控证据
→ 正常窄 patch + diff + 精准验证
已知 E-SafeNet
→ 复用 pinned fact
→ affected-project 一次性预清
→ HostDev verify
→ 必要时仓库外 artifacts
已知受保护 DOCX
→ 仓库外编辑/验证
→ 最后写回
文件损坏
→ 先恢复,不继续叠补丁