19 KiB
19 KiB
SUP Gate 命令级执行清单(SUP-004~SUP-007)
- 版本:v1.0
- 日期:2026-03-25
- 目标:为测试团队提供可直接执行的命令清单,输出可回填证据
- 关联任务:
SUP-004、SUP-005、SUP-006、SUP-007 - 关联报告模板:
tests/supply/ui_sup_acc_report_2026-03-28.mdtests/supply/ui_sup_pkg_report_2026-03-29.mdtests/supply/ui_sup_set_report_2026-03-29.mdtests/supply/sec_sup_boundary_report_2026-03-30.md
1. 执行前准备
1.1 环境变量
在项目根目录创建并编辑 scripts/supply-gate/.env:
API_BASE_URL="https://staging.example.com"
OWNER_BEARER_TOKEN="replace-me-owner-token"
VIEWER_BEARER_TOKEN="replace-me-viewer-token"
ADMIN_BEARER_TOKEN="replace-me-admin-token"
# 测试数据(可按环境替换)
TEST_PROVIDER="openai"
TEST_MODEL="gpt-4o"
TEST_ACCOUNT_ALIAS="sup_acc_cmd"
TEST_CREDENTIAL_INPUT="sk-test-replace-me"
TEST_PAYMENT_METHOD="alipay"
TEST_PAYMENT_ACCOUNT="tester@example.com"
TEST_SMS_CODE="123456"
# 可选:绕过平台直连供应方探测目标
SUPPLIER_DIRECT_TEST_URL=""
1.2 依赖检查
command -v curl >/dev/null
command -v jq >/dev/null
1.3 执行入口
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/run_all.sh"
真实 staging 推荐使用(含占位值与可达性预检):
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/staging_precheck_and_run.sh" "scripts/supply-gate/.env"
说明:
staging_precheck_and_run.sh默认会先执行M-021预检(token runtime readiness)。staging_precheck_and_run.sh默认会再执行TOK-005 dry-run。- 如需临时跳过可设置:
ENABLE_M021_PRECHECK=0或ENABLE_TOK005_DRYRUN=0。
2. SUP-004 账号挂载链路(UI-SUP-ACC-001~006)
执行脚本:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/sup004_accounts.sh"
最低断言:
- 验证接口返回
verify_status=pass/review_required。 - 创建账号成功并返回
account_id。 - 激活/暂停接口返回状态迁移成功。
- 审计日志接口可查询并返回
request_id。
证据输出:
tests/supply/artifacts/sup004/*.jsontests/supply/artifacts/sup004/summary.txt
3. SUP-005 套餐发布链路(UI-SUP-PKG-001~006)
执行脚本:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/sup005_packages.sh"
最低断言:
- 草稿创建成功并返回
package_id。 - 上架后状态为
active。 - 暂停后状态为
paused。 - 下架返回成功(
expired/paused合法)。 - 批量调价返回
success_count + failed_count = total。 - 复制成功并返回新的
package_id。
证据输出:
tests/supply/artifacts/sup005/*.jsontests/supply/artifacts/sup005/summary.txt
4. SUP-006 结算提现链路(UI-SUP-SET-001~005)
执行脚本:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/sup006_settlements.sh"
最低断言:
- 账单查询成功返回
summary。 - 提现申请成功返回
settlement_id且状态pending。 - 撤销申请接口返回状态变更。
- 对账单下载接口返回
download_url。 - 收益流水接口返回分页与记录字段。
证据输出:
tests/supply/artifacts/sup006/*.jsontests/supply/artifacts/sup006/summary.txt
5. SUP-007 凭证边界专项(SEC-SUP-001~002)
执行脚本:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/sup007_boundary.sh"
最低断言:
- 平台凭证访问主路径成功(映射 M-014)。
- 外部 query key 请求被拒绝(映射 M-016)。
- 响应/导出样本脱敏扫描无可复用凭证片段(映射 M-013)。
- 若配置
SUPPLIER_DIRECT_TEST_URL,直连探测应失败或被阻断(映射 M-015)。
证据输出:
tests/supply/artifacts/sup007/*.jsontests/supply/artifacts/sup007/summary.txt
6. 回填要求
执行完成后,必须回填:
tests/supply/ui_sup_acc_report_2026-03-28.mdtests/supply/ui_sup_pkg_report_2026-03-29.mdtests/supply/ui_sup_set_report_2026-03-29.mdtests/supply/sec_sup_boundary_report_2026-03-30.mdreports/supply_gate_review_2026-03-31.md
所有回填项需要包含:
- 结论(PASS/FAIL/BLOCKED)
- 证据路径(json/screenshot/log)
- 责任人签字
7. 依赖兼容审计命令(M-017)
执行脚本:
cd "/home/long/project/立交桥"
./scripts/ci/dependency-audit-check.sh 2026-03-27
最低断言:
- 四件套文件存在且非空:
reports/dependency/sbom_2026-03-27.spdx.jsonreports/dependency/lockfile_diff_2026-03-27.mdreports/dependency/compat_matrix_2026-03-27.mdreports/dependency/risk_register_2026-03-27.md
- 输出结果为
PASS,并生成dependency_audit_result_2026-03-27.md。
8. 分阶段门禁失败回退演练(M-018/M-019)
执行脚本:
cd "/home/long/project/立交桥"
./scripts/ci/stage-gate-drill.sh G3 2026-03-27
最低断言:
- G3 失败后必须触发回退到 G2。
- 后续阶段冻结,不允许继续升波。
- 生成原始日志与演练报告:
reports/gates/stage_gate_drill_2026-03-27.logreports/gates/stage_gate_drift_drill_report_2026-03-27.md
9. 本地 Mock 联调模式(仅演练)
执行命令:
cd "/home/long/project/立交桥"
python3 "scripts/mock/supply_gateway_mock_server.py"
另开终端执行:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/run_all.sh" "scripts/supply-gate/.env.local-mock"
说明:
- 本模式仅用于脚本联调与产物验证,不代表 staging/生产可发布。
- 生产放行仍需在真实 staging 地址与真实短期 token 下复跑并验收。
10. TOK-005 凭证边界 Dry-Run(开发阶段)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/tok005_boundary_dryrun.sh" "scripts/supply-gate/.env"
最低断言:
go test ./...在platform-token-runtime通过。- Query key 外拒规则存在(
key/api_key/token)。 - 审计脱敏断言存在且通过(禁止敏感值落审计)。
- TOK 用例可执行覆盖完整(
TOK-LIFE-001~008与TOK-AUD-001~007)。 - staging 就绪性检查结果可追溯(NO 时需明确阻塞原因)。
证据输出:
reports/gates/tok005_dryrun_*.mdreports/gates/tok005_dryrun_*.logtests/supply/artifacts/tok005_dryrun_*/go_test_output.txt
说明:
- Dry-run 仅用于开发阶段门禁前置验证,不可替代真实 staging 联调结论。
- 真实放行仍以
staging_precheck_and_run.sh+SUP-007/TOK-005实测结果为准。
11. TOK-006 统一 Gate 汇总(Dry-Run + SUP-004~007)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/tok006_gate_bundle.sh" "scripts/supply-gate/.env"
可选开关:
# 默认 1:先执行 TOK-005 dry-run
ENABLE_TOK005_DRYRUN=1
# 默认 0:仅汇总现有 SUP 报告,不触发 run_all
ENABLE_SUP_RUN=0
最低断言:
- 输出单页 gate 汇总报告(含 TOK-005 + SUP-004~007)。
- 生成明确发布判定:
GO / CONDITIONAL_GO / NO_GO。 - 若存在 mock 证据或
staging readiness != YES,不得输出 GO。
证据输出:
reports/gates/tok006_gate_bundle_*.mdreports/gates/tok006_gate_bundle_*.logreports/gates/tok006_release_decision_onepager_template_v1_2026-03-30.md(模板)
12. Superpowers 严格分阶段验证(代码+脚本+门禁)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/superpowers_stage_validate.sh"
阶段定义(当前实现):
- PHASE-01:TOK 运行时代码测试(Go 单测)
- PHASE-02:SUP-004~SUP-007 本地 mock 脚本联调
- PHASE-03:TOK-005 凭证边界 dry-run(mock 环境)
- PHASE-04:TOK-006 统一 Gate 汇总
- PHASE-05:依赖兼容审计门禁(M-017)
- PHASE-06:分阶段回退演练门禁(M-018/M-019)
- PHASE-07:真实 staging 预检(无真值时应 DEFERRED)
- PHASE-08:每日指标快照生成(M-017/M-018/M-019)
- PHASE-09:7日趋势报告生成(M-017/M-018/M-019)
- PHASE-10:token 运行态就绪度检查(M-021)
结果判定:
- 任一阶段 FAIL =>
NO_GO - 无 FAIL 且存在 DEFERRED =>
CONDITIONAL_GO - 全部 PASS =>
GO
可选环境变量:
# PHASE-07 使用的环境文件,默认 scripts/supply-gate/.env
STAGING_ENV_FILE="scripts/supply-gate/.env"
证据输出:
reports/gates/superpowers_stage_validation_*.mdreports/gates/superpowers_stage_validation_*.logtests/supply/artifacts/superpowers_stage_validation_*/phase*.log
13. TOK-007 发布门禁复审(自动汇总)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/tok007_release_recheck.sh"
最低断言:
- 自动读取最新
TOK-006汇总报告。 - 自动读取最新
Superpowers阶段验证报告。 - 自动读取
SUP Gate汇总评审结论。 - 输出复审结论(
GO / CONDITIONAL GO / NO-GO)与动作建议。
证据输出:
review/outputs/tok007_release_recheck_*.mdreports/gates/tok007_release_recheck_*.log
14. 最终决议一致性校验(Final vs TOK-007)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/final_decision_consistency_check.sh"
最低断言:
- 可解析
final_decision、TOK-007、superpowers_stage_validation三类结论。 - 若
final_decision与TOK-007不一致,输出WARN(不自动覆盖签署结论)。 - 若任一来源不可解析,输出
FAIL并阻断自动流程。
证据输出:
reports/gates/final_decision_consistency_*.mdreports/gates/final_decision_consistency_*.log
15. 最终决议候选稿生成(不覆盖签署原件)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/tok007_generate_final_decision_candidate.sh"
最低断言:
- 输入源必须包括
review/final_decision_2026-03-31.md与最新tok007_release_recheck_*.md。 - 输出文件位于
review/outputs/final_decision_candidate_from_tok007_*.md。 - 仅生成候选稿,不覆盖原签署文件。
证据输出:
review/outputs/final_decision_candidate_from_tok007_*.mdreports/gates/tok007_generate_candidate_*.log
16. M-021 Token Runtime 就绪度检查
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/token_runtime_readiness_check.sh" "$(date +%F)"
可选开关:
# 默认 0:跳过本地端口冒烟(适配受限沙箱环境)
ENABLE_TOKEN_RUNTIME_SMOKE=0
# 置 1:执行本地服务启动 + issue + audit-events 冒烟
ENABLE_TOKEN_RUNTIME_SMOKE=1
# 可选:指定冒烟起始端口(默认 18082,若被占用会自动顺延)
TOKEN_RUNTIME_SMOKE_PORT=18082
最低断言:
- 输出
token_runtime_readiness_*.md报告并给出百分比结果。 - 运行态代码与契约工件完整(API入口/HTTP处理/OpenAPI/Dockerfile)。
platform-token-runtime测试与构建均通过。- 若就绪度
<100%,脚本必须返回失败并阻断后续门禁。
证据输出:
reports/gates/token_runtime_readiness_*.mdreports/gates/token_runtime_readiness_*.logreports/gates/token_runtime_go_test_*.logreports/gates/token_runtime_go_build_*.log
17. Token 审计事件查询(TOK-REAL-002)
本地服务启动:
cd "/home/long/project/立交桥/platform-token-runtime"
export PATH="/home/long/project/立交桥/.tools/go-current/bin:$PATH"
go run ./cmd/platform-token-runtime
审计查询示例:
curl -sS "http://127.0.0.1:18081/api/v1/platform/tokens/audit-events?limit=20" \
-H "X-Request-Id: req-audit-query-demo"
最低断言:
- 返回
200,且结构包含request_id/data.total/data.items。 - 返回项包含
event_id/event_name/request_id/route/result_code/created_at。 - 响应不包含
access_token或上游敏感凭证明文。
证据输出:
platform-token-runtime/internal/httpapi/token_api_test.go(自动化用例)reports/gates/token_runtime_readiness_*.md(检查项TOK-REAL-002-C1/C2)
18. Staging 证据自动回填草稿
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/staging_evidence_autofill.sh"
可选参数(用于锁定本次流水证据,避免误取历史 latest):
bash "scripts/ci/staging_evidence_autofill.sh" \
--staging-run-log "reports/gates/staging_run_2026-03-30_184432.log" \
--stage-report "reports/gates/superpowers_stage_validation_2026-03-30_184433.md" \
--token-readiness "reports/gates/token_runtime_readiness_2026-03-30_184435.md" \
--tok007-report "review/outputs/tok007_release_recheck_2026-03-30_184436.md" \
--pipeline-report "reports/gates/superpowers_release_pipeline_2026-03-30_184434.md"
最低断言:
- 自动抽取
PHASE-07、M-013~M-016、M-021与 TOK-007 机判结论。 - 输出证据路径清单,便于人工补齐与签署。
- 不得自动上调为 GO,仅生成草稿。
证据输出:
reports/gates/staging_token_go_evidence_autofill_*.mdreports/gates/staging_token_go_evidence_autofill_*.log
19. 一键 Staging 发布流水
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/staging_release_pipeline.sh" "scripts/supply-gate/.env"
local/mock 防误跑(默认拦截):
# 仅当明确要做 local/mock 演练时启用
ALLOW_LOCAL_MOCK_STAGING=1 \
bash "scripts/ci/staging_release_pipeline.sh" "scripts/supply-gate/.env.local-mock"
说明:
- STEP-01:
staging_precheck_and_run.sh(含 M-021/TOK-005/SUP run_all)。 - STEP-02:
superpowers_release_pipeline.sh(使用STAGING_ENV_FILE)。 - STEP-03:
staging_evidence_autofill.sh自动生成回填草稿(显式绑定本次流水证据文件)。 - 检测到 local/mock env 且未设置
ALLOW_LOCAL_MOCK_STAGING=1时,脚本应直接失败,防止误把演练结果当成真实 staging 证据。
可选监控(默认关闭、非阻断):
ENABLE_MINIMAX_MONITORING=1 \
MINIMAX_ENV_FILE="scripts/supply-gate/.env.minimax-dev" \
MINIMAX_RUN_ACTIVE_SMOKE=0 \
bash "scripts/ci/superpowers_release_pipeline.sh"
说明:
- 开启后会在
STEP-05额外执行 Minimax 每日快照 + 7 日趋势生成。 - 该步骤是监控辅助项,失败仅记
WARN,不阻断 SUP 主门禁判定。
证据输出:
reports/gates/staging_release_pipeline_*.mdreports/gates/staging_release_pipeline_*.log
20. Minimax 上游独立 Smoke(不并入 SUP 发布门禁)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/supply-gate/minimax_upstream_smoke.sh" "scripts/supply-gate/.env.minimax-dev"
可选环境变量:
# 默认 /v1/messages
MINIMAX_SMOKE_PATH="/v1/messages"
# 默认 minimax-smoke-model(可替换为实际模型)
MINIMAX_SMOKE_MODEL="your-model-id"
# 默认 20 秒
MINIMAX_TIMEOUT_SECONDS=20
最低断言:
- 输出
reports/gates/minimax_upstream_smoke_*.md报告。 - 报告必须包含 base 连通探测与 active 鉴权探测两段结果。
- 分类规则需区分:
PASS / PASS_AUTH_REACHED / FAIL_AUTH / FAIL_PATH / FAIL_NETWORK。
说明:
- 该脚本仅用于“上游(Minimax)连通与鉴权可达性”验证。
- 该脚本不参与
SUP-004~SUP-007业务契约发布门禁判定。 - 若 Minimax 返回
404/405,优先检查API_BASE_URL + MINIMAX_SMOKE_PATH组合是否正确。
21. Minimax 上游每日快照(CI 汇总)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/minimax_upstream_daily_snapshot.sh" "$(date +%F)" "scripts/supply-gate/.env.minimax-dev"
可选环境变量:
# 默认 0:仅汇总最新 smoke 报告,不触发网络请求
RUN_ACTIVE_SMOKE=0
# 置 1:执行一次实时 smoke 后再汇总
RUN_ACTIVE_SMOKE=1
最低断言:
- 生成
reports/gates/minimax_upstream_daily_snapshot_*.md。 - 生成/更新
reports/gates/minimax_upstream_daily_snapshots.csv。 - 明确标注
RUN_ACTIVE_SMOKE取值,区分“实时探测”与“仅汇总”。 - 默认优先汇总“非 dry-run”最新报告,避免将联调证据误当真实上游证据。
说明:
- 该快照是“上游可达性趋势”证据,不替代 SUP 发布门禁。
- 建议在定时任务中默认
RUN_ACTIVE_SMOKE=0,将实时探测作为受控任务执行。 - 若仅存在
PASS_DRY_RUN报告,快照状态应为CONDITIONAL_PASS。
22. Minimax 上游 7 日趋势报告
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/minimax_upstream_trend_report.sh" "$(date +%F)"
最低断言:
- 生成
reports/gates/minimax_upstream_trend_7d_*.md。 - 报告包含最近 7 条(不足 7 条按实际)快照的状态统计。
- 趋势状态遵循
PASS_7D / CONDITIONAL_7D / NOT_READY / INSUFFICIENT_DATA。
说明:
- 该趋势报告用于 F-03(连续观测证据)收敛,不替代 staging 发布门禁。
- 建议与第 21 节每日快照搭配执行,形成“日报 + 周趋势”组合。
23. 一键生成本地 STG 环境(owner/viewer/admin token)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/generate_local_staging_env.sh" "scripts/supply-gate/.env.staging-real"
可选环境变量:
# 默认 http://127.0.0.1:18080
API_BASE_URL_VALUE="http://127.0.0.1:18080"
# 默认 http://127.0.0.1:18081
TOKEN_RUNTIME_URL="http://127.0.0.1:18081"
# 默认 7200 秒(2小时)
TOKEN_TTL_SECONDS=7200
# 默认 1:若 token runtime 不可用则自动拉起临时实例
START_RUNTIME_IF_NEEDED=1
最低断言:
- 生成
scripts/supply-gate/.env.staging-real(权限600)。 - 文件包含
OWNER_BEARER_TOKEN / VIEWER_BEARER_TOKEN / ADMIN_BEARER_TOKEN三类 token。 - 生成摘要报告
reports/gates/local_staging_env_generation_*.md(仅 hash,不泄露明文 token)。
说明:
- 该脚本生成的是“本地开发/联调用”平台 token,非外部 LLM 厂商 key。
- 切换真实 staging 时,只需替换
API_BASE_URL_VALUE并重新执行脚本即可刷新 token 与 env。
24. 真实 STG 就绪度检查(地址+token+可达性)
执行命令:
cd "/home/long/project/立交桥"
bash "scripts/ci/staging_real_readiness_check.sh" "scripts/supply-gate/.env.staging-real"
最低断言:
API_BASE_URL非占位值,且不是localhost/127.0.0.1。- 三类 token 非空且非占位值。
API_BASE_URL基础可达性检查通过(curl -I非000)。- 生成报告
reports/gates/staging_real_readiness_*.md。
说明:
- 结果为
READY才建议进入真实 STG 放行口径验证。 - 结果为
BLOCKED时,应先修复地址或 token,再执行staging_release_pipeline.sh。