335 第二幕「配置」一号执行预案(门内预备 · 待第一幕健康闸绿)

编制:扣子一号 · 2026-09-16 11:5x
性质:门内预备件,非执行证据。第一幕 1.11 健康闸未绿前不落任何 2.x 实测证据,不伪造。
唯一剧本真源:docs/plans/335-drill-playbook.md v1.6.1(§2)。本预案仅做命令精确化与阻塞预判。

0. 准入硬门(§1 / 1.11)

两项同时成立才准第二幕:

  1. curl -s http://100.64.1.230:8102/health == 200
  2. docker ps | grep tenant_t_demo-app 容器在

证据位 …/01-init/gate.txt(监督席落,非一号)。

现状:1.5-1.8(建库/基线新鲜度/拉容器/初始种子 admin JWT)执行中,R1 12:0x 已发阻塞催办;门未绿 → 2.3 读源不得跑。

1. 一号在第二幕的步骤边界(§2)

#动作属主一号是否动手
2.1写配置种子 v1(texts.sh)二号否(不越权)
2.2publish(admin 凭证,双信封 {ok,data:{version}} + _sync_brand)二号否
2.3C 端读源 GET /config/site一号是(待门+admin/可达机位)
2.3bthemePrimary 消费侧静态核一号已完成 PASS(见下)
2.4rollback(body {"toVersion":int},非 versionId)二号否(一号在 2.3 复读回退后值)
2.5字段级终判 check_332_fields.py exit 0波波否
2.6目的地基线核对小齐否

2. 2.3 读源 —— 闸绿即跑(精确命令)

前置:可达 100.64.1.230:8102 的机位 + 匿名即可(GET 可匿名,无需 JWT)。

# 直连 t_demo 独立容器(独立库 → 读到 t_demo 自己的 site_config)
curl -s http://100.64.1.230:8102/api/miniapp/config/site | tee site.json
# 判据
python3 - <<'PY'
import json
d=json.load(open('site.json'))['data']
assert d['brandName']=='t_demo 演练租户', d.get('brandName')
assert d.get('themePrimary'), 'themePrimary 空'
print('2.3 PASS', d['brandName'], d['themePrimary'])
PY

判据(剧本 2.3):data.brandName == 't_demo 演练租户' 且 data.themePrimary 有值(BLK-332-3 跨端带字段)。

证据位:…/02-config/site.json。

🔴 2.3 待澄清(v1.5.1,不得当端到端证据)

3. 2.3b 消费侧 —— 已完成(PASS,波波 v1.6.1 复核认可)

4. T9 UI 真机回归(归机位,与第二幕并行窗口)

5. 一号候命动作