# cc-004 · 团队技术能力 ≈ 0 → 系统必须自主, 不能依赖人手动操作 > 因果链 ID: BSL-CC-004 > 源原文: `bingshuo-voice/2026-05-08-01-lighthouse-handoff.md` 锚段二 + 锚段四 > 落地代码: `scripts/preflight/check-secrets.js` + `lighthouse-cn-deploy.yml` (误触锁) + 自动回滚 > 共振 chain: cc-003 (动态适配) > 警示对象: 任何想"让用户来 debug / 让用户改 yaml / 让用户看终端报错"的下一段铸渊 --- ## 一、起点 (铸渊看到了什么) 下一段铸渊在写新 workflow / 新自动化脚本: - 想着"这个边缘情况让运维手动改下配置就行了" - 想着"出错的时候报个英文 stacktrace 给操作者看就够了" - 想着"密钥配置交给用户自己核对吧, 我做不到面面俱到" **停**。重走这条因果链。 --- ## 二、走 (因果递推) ``` [原话] "我和我这边的团队成员, 我们都是不懂编程, 不懂技术逻辑的就看不懂" ↓ [原话] "我们看不懂, 终端报错可能都不知道它是报错" ↓ [原话] "我们这边的人技术能力几乎是负的" ↓ [展开角色] 冰朔 : 语言系统架构层 (不懂代码, 决意识层) Awen : 现实落地层 (技术主控, 但也是来积累经验的) 霜砚 : 处理终端报错 (远程指挥, 看截图翻译) 团队其他人 : 技术能力 ≈ 负 ↓ [操作流] 现实里发生什么? Awen 在终端看到一行报错 ↓ (Awen 看不懂) Awen 截图发给霜砚 ↓ (霜砚翻译) 霜砚回复中文修复方案 ↓ (Awen 复制粘贴执行) ↓ 这一来一回 → 时间烧掉 ↓ [问题] 如果这种循环出现 N 次, 灯塔搬家就拖死了 ↓ [结论 1] 系统**必须**自主, 不能让用户参与 debug 流程 [结论 2] 任何让用户做的事, 必须满足: a) 中文输出 (Awen 能看懂的程度, 不需要懂技术) b) 一次性 (点一下就完, 不要分十步) c) 防误触 (即使点错了系统也不爆) d) 可回滚 (即使搞砸了也能一键恢复) ``` 冰朔原话给的具体诉求: > 你是不是能做一个, 就是他每次点的时候, 你可以有一个, 就是**先检测这个密钥够不够**。如果够你就继续往下跑, 如果不够就直接在终端这块就不用跑了, 提醒他什么什么不够, 就是什么是必须配的, 什么是可以缓一下。 > > 我们可能真的就是有的时候会出现可能误触, 就是感觉可能自己好像配完了, 然后点一下可能。就是误操作。这里你是不是要有一个**自己的这个安全机制**... --- ## 三、终点 (铸渊该做什么) ### ✅ 四层防御 (已落地, 维持 + 扩展到所有 workflow) ``` 1. 密钥预检 — 跑之前先全量验, 缺啥说啥, 中文回执 落地: scripts/preflight/check-secrets.js + secrets-manifest.json (密钥清单) 2. 误触锁 — 高危操作必须输入中文确认口令 没填 → 自动降级 dry-run, 不爆系统 落地: lighthouse-cn-deploy.yml `confirm_phrase` 字段 3. 自动回滚 — 健康检查不过 → bootstrap 自动回上一快照 落地: bootstrap.sh `autorollback` 段 4. 手动回滚 — 即使没自动检测出来, 也能一键回滚 落地: lighthouse-cn-rollback.yml (独立 workflow) ``` ### ✅ 反应规则 | 想做的事 | 必须先问自己 | |--------|--------| | 新增 workflow 高危按钮 | 有误触锁吗? | | 写错误处理 | 输出是中文吗? Awen 看得懂吗? | | 改自动化脚本 | 出错时会自动恢复, 还是把烂摊子丢给用户? | | 加新 secret | 有没有更新 `secrets-manifest.json` 让预检知道? | | 写文档 | 是给霜砚看的中文版, 还是给开发者看的英文 README? | ### ❌ 反模式 (停下来重走 cc-004) - "这里报错就让用户自己看 stacktrace 吧" - "这个高危操作我加个 `confirm: true` 选项就行了" (英文 yaml 标志, Awen 不会用) - "出错的时候系统就停在那, 等用户介入" (用户介入不了) - "我把详细日志输出到 stderr, 看英文 log 就行了" - "密钥让用户对照文档自己配, 我列个清单" --- ## 四、落地代码 (验证因果链) | 层 | 文件 | |---|---| | 预检 | `scripts/preflight/check-secrets.js` + `scripts/preflight/secrets-manifest.json` | | 误触锁 | `.github/workflows/lighthouse-cn-deploy.yml` (`confirm_phrase` step) | | 自动回滚 | `server/setup/lighthouse-cn/bootstrap.sh` (autorollback 段) + `rollback.sh` | | 手动回滚 | `.github/workflows/lighthouse-cn-rollback.yml` | | 中文回执 | `server/setup/lighthouse-cn/UPGRADE-2026-05-08-followup.md` (给霜砚的版本) | --- ## 五、共振点 cc-004 + cc-003 = 系统**强制自主**: - cc-003 答的是"为什么必须自主" (现实不可控) - cc-004 答的是"为什么不能依赖用户" (用户技术能力近 0) 合起来 = 铸渊的**职责边界**: 把所有不确定性都吞进系统内部, 暴露给用户的只有"中文回执 + 一键按钮"。 --- *BSL-CC-004 · 2026-05-08 · 铸渊编织*