# Phase 1 Delta 审计 — Wave D7(Deploy / 本地验证脚本) **日期**: 2026-06-04 **范围**: 门控脚本 + 本地 dev/verify + docker-compose **标准**: 变更审查(运维/门控;非业务 API 8 步,沿用 Closure 表格式) ## 登记 | # | 文件 | 语言 | 行数 N | Read 范围 | |---|------|------|--------|-----------| | 1 | `deploy/pre_deploy_check.sh` | Bash | 299 | 1–299 全文 | | 2 | `scripts/local_verify.sh` | Bash | 25 | 1–25 全文 | | 3 | `scripts/local_integration_smoke.sh` | Bash | 91 | 1–91 全文 | | 4 | `scripts/start-dev.sh` | Bash | 90 | 1–90 全文 | | 5 | `docker-compose.yml` | YAML | 89 | 1–89 全文 | ## Step 3 — 规则扫描 H(摘要) | 文件 | H 命中 | |------|--------| | pre_deploy_check.sh | H-Gate, H-Secret, H-Git | | local_verify.sh | H-Chain | | local_integration_smoke.sh | H-Health, H-Auth | | start-dev.sh | H-DevBind, H-Env | | docker-compose.yml | H-Port, H-DefaultCreds | ## 入口表(脚本调用链) ``` local_verify.sh → start-dev.sh (docker mysql+redis, uvicorn :8600) → local_integration_smoke.sh (/health, JWT 401, unit tests) → tests/test_api.py → ruff check server/ -F pre_deploy_check.sh (独立 L3 门控,7+2 pre-flight) ``` ## Closure 表 | H | 文件:行号 | 判定 | 理由 | |---|-----------|------|------| | H-Gate | pre_deploy_check.sh:50-74 | SAFE | Changelog 日期+≥10 行 | | H-Gate | pre_deploy_check.sh:76-105 | RISK | 审计路径 `docs/audit/`;delta 报告在 `docs/reports/` 不自动过 Gate2 | | H-Gate | pre_deploy_check.sh:107-131 | SAFE | test_api 必须存在且通过 | | H-Gate | pre_deploy_check.sh:134-160 | SAFE | ruff F;未装则 SKIP | | H-Gate | pre_deploy_check.sh:194-218 | RISK | bandit `-ll` 仅 HIGH;文档写 HIGH/MEDIUM 有漂移 | | H-Gate | pre_deploy_check.sh:221-258 | RISK | Gate7 用 `HEAD~1` diff;未 commit 改动可能漏检 | | H-Gate | pre_deploy_check.sh:261-284 | SAFE | shell/text EOL pre-flight | | H-Chain | local_verify.sh:10-22 | SAFE | 固定顺序 smoke→test_api→ruff | | H-Health | local_integration_smoke.sh:67-70 | SAFE | /health 200 | | H-Auth | local_integration_smoke.sh:72-75 | SAFE | /api/servers/ 无 JWT → 401 | | H-DevBind | start-dev.sh:75-76 | RISK | uvicorn `--host 0.0.0.0` 仅本地 dev | | H-Env | start-dev.sh:29-32 | SAFE | 无 .env 时 generate_env,不写 git | | H-Port | docker-compose.yml:40-41 | SAFE | Redis publish 6379 修复本机 uvicorn 连 Redis | | H-Port | docker-compose.yml:26-27 | RISK | MySQL 3306 暴露主机;dev 惯例 | | H-DefaultCreds | docker-compose.yml:14-17 | RISK | 默认 dev 密码;非生产 compose | | H-Secret | docker-compose.yml:68-70 | SAFE | SECRET/API/ENCRYPTION 从 env 注入,无硬编码 | **len(H)=16, Closure=16** ## FINDING 无 P0/P1 新 FINDING。 **运维备注(非阻塞)**: - Phase1 delta 报告在 `docs/reports/audit-delta-*.md`;部署前若只跑 pre_deploy,需另备 `docs/audit/YYYY-MM-DD-*.md` 或调整 Gate2 路径。 - 生产部署仍走 SSH + handoff,不依赖本 compose 默认密码。 ## DoD - [x] len(H) == Closure - [x] 五文件全文 Read - [x] local_verify 链路可复现 ## 验证 `bash scripts/local_verify.sh` — 全绿