# 2026-05-26 — 部署程序门控实现

## 变更摘要

1. **Pre-deploy 门控脚本** — `deploy/pre_deploy_check.sh`，部署前自动检查 3 道门：
   - Changelog门：`docs/changelog/YYYY-MM-DD-*.md` 必须存在
   - 审计门：`docs/audit/YYYY-MM-DD-*.md` 必须存在
   - 测试门：`tests/test_api.py` 必须全通过（无测试文件则跳过）
   - 任何一门不过 → 退出码1，部署被阻止
2. **MCP deploy 工具集成门控** — `mcp/Nexus_server.py` 的 `deploy()` 函数在 git pull + restart 前自动执行门控脚本，不过返回 `🚫 DEPLOY BLOCKED`
3. **审计记录模板** — `docs/audit/TEMPLATE.md`，标准化审计输出格式
4. **今日审计记录** — `docs/audit/2026-05-26-terminal-sidebar-ssh-key-fix.md`
5. **CLAUDE.md 更新** — 加入门控说明

## 动机

之前部署全靠 AI 自觉执行流程，跳步无法被程序阻止。现在把关键步骤变成部署前置条件，跳步 = 部署不了。

## 涉及文件

| 文件 | 改动 |
|------|------|
| `deploy/pre_deploy_check.sh` | 新建 — 3道门控检查脚本 |
| `mcp/Nexus_server.py` | deploy() 加入门控检查 |
| `docs/audit/TEMPLATE.md` | 新建 — 审计记录模板 |
| `docs/audit/2026-05-26-*.md` | 新建 — 今日审计记录 |
| `CLAUDE.md` | 加入门控说明 |

## 是否需迁移/重启

- **DB 迁移**: 无
- **需重启**: MCP server 需要重启（改动 Nexus_server.py），但 MCP server 是本地进程，下次会话自动生效
- **远程部署**: 需要将 `deploy/pre_deploy_check.sh` 同步到远程服务器

## 验证方式

1. `bash -n deploy/pre_deploy_check.sh` — Shell 语法通过 ✅
2. `python -c "import py_compile; py_compile.compile('mcp/Nexus_server.py', doraise=True)"` — Python 语法通过 ✅
3. 删除 `docs/changelog/2026-05-26-*.md` → 执行门控脚本 → Changelog门 BLOCK ✅
4. 恢复 changelog → 执行门控脚本 → 3/3 gates passed ✅
