ZON
Best Minds Board Private · As Of 2026-03-15

配置逻辑、执行逻辑与理想现实 Gap

从 Gregor Hohpe 的控制流视角、Kelsey Hightower 的配置优先级视角,以及 Charity Majors 的“runtime 才是真相”视角看, 这条链路本质上不是一套全新发布器,而是一个 private wrapper 套在旧的 best-minds-board 发布链路外层: 先在 canonical root 归档,再做 staging 脱敏与门禁,最后借 legacy publish 完成 Vercel 上线与回写;现在发布完成后还会继续做在线可达性验收。

一句话结论

当前系统是“私有门禁 + 旧链路桥接” 配置侧先解私有参数,再把结果翻译回 BEST_MINDS_BOARD_* / BEST_MINDS_BOARD_PUBLISH_*; 执行侧先在临时 staging 上脱敏、补尾和扫泄露,再调用旧的 publish-board.mjs 真正部署。
  • 代码当前默认值是 injectMode=minimalenforceEnding=0freezeLegacy=1relatedRuntime=1、备份默认开启。
  • 最近一串真实运行日志记录的是 injectMode=fullenforceEnding=true,现在已经可以归因到 ship-prod.sh 这类调用入口显式覆盖,而不是 wrapper 默认值自身漂移。
  • “配置隔离”在 root 选择上已经收紧:当前代码只走 args.root → BEST_MINDS_BOARD_PRIVATE_ROOT → BEST_MINDS_BOARD_PRIVATE_CANONICAL_ROOT → 默认路径;但桥接阶段仍会主动回写 legacy 变量名给旧发布器。

当前可验证事实

Canonical Root
[REDACTED_LOCAL_PATH]
Latest Private Log
private-publish/latest.json + last-success.json
Prod Reference Window
2026-03-14 prod-pattern + 2026-03-15 P0 fixes
Last Published Canonical URL
https://board.zondev.top

时序图 1 · 配置逻辑

best-minds-board-private 配置逻辑图
真正的配置收敛发生在 private wrapper 里;但 root 解析和 legacy 桥接都还保留了旧链路兼容层。

时序图 2 · 执行逻辑

best-minds-board-private 执行逻辑图
真正部署仍由 publish-board.mjs 完成;private wrapper 负责 staging 脱敏、门禁、回写和备份闭环。

理想 vs 现实 Gap

1. 控制面单一真源

  • 理想:private skill 文档、private wrapper 默认值、生产调用入口三者口径一致。
  • 现实:wrapper 默认仍是 minimal + enforceEnding=0,但生产入口 7_AGENT/openclaw/web-ship/scripts/ship-prod.sh7_AGENT/openclaw/topic-deploy/scripts/ship-prod.sh 显式导出 full + enforceEnding=1
  • Gap:控制面不是“一个真源”,而是“skill 文档 + wrapper 默认 + caller override”三层叠加。

2. 配置隔离

  • 理想:私有链路只吃 BEST_MINDS_BOARD_PRIVATE_*,完全不碰 legacy 变量。
  • 现实:root 选择已经不再读取 BEST_MINDS_BOARD_ROOT;但进入桥接后仍会把 private 解析结果重新映射为 BEST_MINDS_BOARD_*BEST_MINDS_BOARD_PUBLISH_*
  • Gap:入口层已经私有化,执行层仍是兼容化而非纯私有化。

3. 执行面独立性

  • 理想:private publish 自己就是完整的数据面和发布面。
  • 现实:真正上线仍靠 publish-board.mjs 做 slim staging、Vercel deploy、inspect 和公开 URL 抽取。
  • Gap:private wrapper 更像 orchestration shell,不是独立发布器。

4. 运行时可解释性

  • 理想:看一次日志就能反推出“这次为什么是这个配置”。
  • 现实:现在除了 private-publish/latest.json,成功态还会额外写 last-success.json,并记录 live verify 结果;但“是谁覆盖了默认值”仍要翻 .ship-logs
  • Gap:运行结果更清楚了,但 override provenance 仍然分散,排障链条还没完全收口。

关键观察

当前代码默认

  • root 优先级:args.root → BEST_MINDS_BOARD_PRIVATE_ROOT → BEST_MINDS_BOARD_PRIVATE_CANONICAL_ROOT → 默认路径
  • backupGit/backupPush/backupStrict 默认都为开启
  • injectMode=minimalenforceEnding=0freezeLegacy=1relatedRuntime=1liveVerify=1

生产模式参考运行

  • 2026-03-14 一串 prod-pattern run 都显示:injectMode=fullenforceEnding=truebackupPush=true
  • 2026-03-15 的推荐配置实跑则明确落成:injectMode=minimalenforceEnding=0liveVerify=1
  • 这说明“最近为什么看起来总是 full + strict”依然是 caller policy,不是 wrapper 默认值回弹

private 与 legacy 的边界

  • private wrapper 在自身入口只读 BEST_MINDS_BOARD_PRIVATE_* 与 canonical root
  • 一旦进入桥接阶段,它仍会主动把 private 解析结果写回老变量名,喂给 rebuild-board.mjspublish-board.mjs
  • 所以它现在是“入口私有化,执行兼容化”,不是完全脱离 legacy

导致偏差的真实入口

  • 7_AGENT/openclaw/web-ship/scripts/ship-prod.sh:显式导出 BEST_MINDS_BOARD_PRIVATE_ENFORCE_ENDING=1BEST_MINDS_BOARD_PRIVATE_INJECT_MODE=full
  • 7_AGENT/openclaw/topic-deploy/scripts/ship-prod.sh:同样显式导出这两个覆盖值
  • 所以最近一串 private-publish/history/*.json 落成 full + strict,是 caller policy,不是 wrapper 静态默认

这份说明针对 2026-03-15 当前代码和 2026-03-14 最近一次真实运行记录。最重要的结论不是“谁对谁错”,而是: 现在系统已经能跑,但控制面仍然不是单一真源。若你要,我下一步可以把这两张图继续扩成“异常分支图”,把 dry-runallow-leaks、ending gate 失败、backup strict 失败 4 条分支单独画出来。

门禁补齐 · 四个原则视图

要点 1 · Root 隔离先于兼容

第一性原则是先把 root 入口锁死,再谈兼容 legacy。否则 private skill 的边界会被旧环境变量重新打穿。

Flow · Root Isolation args.root PRIVATE ROOT CANONICAL ROOT 旧的 BEST_MINDS_BOARD_ROOT 已不再参与 root fallback。

要点 2 · Private wrapper 仍是桥,不是岛

它没有自带独立 deploy data plane,而是把 private 解析后的结果翻译给旧发布器去执行,这决定了它仍要和 legacy 共存。

Architecture · Private Wrapper sanitize gates legacy publish vercel aliases

要点 3 · 线上验收必须落在 deploy 之后

正确的收口不是“脚本退出 0 就算成功”,而是 deploy 完以后继续验证 CANONICAL_URLLATEST_REPORT_URL 的真实 HTTP 状态。

Timeline · Deploy Then Verify rebuild sanitize deploy HTTP 200 live verify 失败时,本次发布不算成功。

要点 4 · latest 与 last-success 要分开

失败态覆盖 latest.json 是合理的,但成功态必须单独保留,否则排障时会把“最后一次运行”和“最后一次成功”混成一个概念。

Trade-off · Run State vs Success State last-success latest.json success snapshot

门禁补齐 · 内联可视化附录

配置收敛矩阵

Matrix · Control Surface root inject ending verify

剩余风险评分

Score · Remaining Gaps caller override provenance 7/10 legacy bridge coupling 5/10

失败路径示意

Risk · Failure Paths

日志反馈环

Feedback Loop · Logs latest success ship

发布门禁决策树

Decision Tree · Publish Gate quality pass quality fail

状态热力图

Heatmap · Current State
把 best-minds-board-private 的当前配置逻辑、执行逻辑,以及“理想口径 vs 真实生产调用口径”的 gap 拆开,定位偏差来自 caller override 而不是 wrapper 默认值随机漂移。
— One small system