Files
Nexus/docs/changelog/2026-05-26-gate-v2-seven-gates.md
T
2026-07-08 22:31:31 +08:00

2.5 KiB
Raw Blame History

2026-05-26 — 门控 v23道→7道 + 防绕过机制

变更摘要

  1. 门控脚本升级 v2deploy/pre_deploy_check.sh 从 3 道门扩展到 7 道:
    • Gate 1 Changelog门:文件存在 + 行数≥10(防空壳)
    • Gate 2 Audit门:文件存在 + 必须含 Step3+Closure+DoD(防空壳)
    • Gate 3 Test门:test_api.py 必须存在 + 通过(防删测试绕过)
    • Gate 4 Lint门:ruff check server/ --select F(未定义名称、未使用导入)
    • Gate 5 Import门:import server.main 成功(语法/导入错误,venv感知)
    • Gate 6 Security门:bandit 无 HIGH(安全反模式)
    • Gate 7 Review门:审计文件必须包含实际改动文件清单(交叉验证 git diff)
  2. ruff.toml — Lint 配置,只拦 F(pyflakes) 真正的BUG,不强制风格升级
  3. requirements-dev.txt — 开发依赖(ruff, bandit, pytest
  4. deploy/gate_log.py — 门控执行日志记录器(JSONL格式,每次检查自动追加)
  5. MCP gate_log 工具mcp/Nexus_server.py 新增 T9 gate_log() 工具
  6. CLAUDE.md 更新 — 门控表从3道→7道,加入用户审查清单

动机

v1 门控有3个致命漏洞:

  • 空文件就能通过 Changelog/Audit 门
  • 删掉 test_api.py 就能绕过 Test 门
  • 零代码质量检查,51个 except Exception: pass 无人管

v2 堵住了所有绕过路径,并新增 Lint/Import/Security/Review 4道门。

涉及文件

文件 改动
deploy/pre_deploy_check.sh 重写 — 3门→7门,防绕过
ruff.toml 新建 — Lint配置
requirements-dev.txt 新建 — 开发依赖
deploy/gate_log.py 新建 — 门控日志
mcp/Nexus_server.py 新增 T9 gate_log 工具
CLAUDE.md 门控表+审查清单

是否需迁移/重启

  • DB 迁移: 无
  • 需重启: MCP server 需重启(改动 Nexus_server.py),下次会话自动生效
  • 远程部署: 需安装 ruff + bandit(已安装),需同步所有新文件(已完成)

验证方式

  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. 远程执行 7-gate check → 6/7 PASS + 1 BLOCK(Test门凭据问题)
  4. Lint门: ruff F规则零违规
  5. Security门: bandit 无 HIGH
  6. Import门: venv python3 import server.main 成功
  7. Review门: 审计文件覆盖所有改动文件