Commit f2216a4c034de755b47059167598b43ae37a1619
1 parent
81036c88
preflight 新增第 5 项硬门:拒绝旧 DROP-源库模型的 setup-test-db.mjs
存量项目(模板修复 56c4d891 之前生成)的 scripts/setup-test-db.mjs 在 env 缺省时 回退到 config-vars.yaml 的源库名并 DROP+CREATE——xlyClaude13 的源库 xlyweberp_vibe_erp_async 因此被清空重灌(2026-07-10 事故)。laneDbSupport 探测 只查 env 支持、且仅并行波次才跑,串行门裸跑脚本无任何拦截。 现 preflight 启动即 grep 目标项目 setup-test-db.mjs 是否含 COPY_SCHEMA (新复制副本模型标识),不含即 halt 并给出用 skeleton-gen 模板升级的指引。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Showing
1 changed file
with
1 additions
and
0 deletions
workflows/coding.mjs
| @@ -1411,6 +1411,7 @@ function preflightPromptM() { | @@ -1411,6 +1411,7 @@ function preflightPromptM() { | ||
| 1411 | '2. **JDK**(若后端为 Java):`java -version` 主版本与 docs/04 锁定版本一致;不一致时探测 `/usr/libexec/java_home -v <版本>`(macOS)或 `JAVA_HOME` 是否可解析到正确版本,并在 detail 给出导出 JAVA_HOME 的具体命令。', | 1411 | '2. **JDK**(若后端为 Java):`java -version` 主版本与 docs/04 锁定版本一致;不一致时探测 `/usr/libexec/java_home -v <版本>`(macOS)或 `JAVA_HOME` 是否可解析到正确版本,并在 detail 给出导出 JAVA_HOME 的具体命令。', |
| 1412 | '3. **数据库客户端**:docs/04 指明的 DB(如 mysql)客户端命令存在;若 `.env.local` 存在则尝试一次只读连接探测(失败不算硬错,记入 detail 提示)。', | 1412 | '3. **数据库客户端**:docs/04 指明的 DB(如 mysql)客户端命令存在;若 `.env.local` 存在则尝试一次只读连接探测(失败不算硬错,记入 detail 提示)。', |
| 1413 | '4. **测试入口**:docs/04 § 零命令清单里 test-gate 用到的脚本文件(如 `scripts/test.mjs`)存在。', | 1413 | '4. **测试入口**:docs/04 § 零命令清单里 test-gate 用到的脚本文件(如 `scripts/test.mjs`)存在。', |
| 1414 | + `5. **测试库脚本必须是复制副本模型(fail-closed 硬门)**:若 \`${ROOT}/scripts/setup-test-db.mjs\` 存在,Grep 其内容是否含字符串 \`COPY_SCHEMA\`(新模型:复制源库→一次性副本,带 COPY≠SOURCE 守卫)。**不含即硬错**——旧模型脚本对 env 缺省时直接 DROP config-vars.yaml 的源库(真实数据全灭,已有事故)。error 写「scripts/setup-test-db.mjs 是旧 DROP-源库模型」,detail 写明:用插件 \`skills/plan/skeleton-gen/templates/\` 下的 scripts-setup-test-db / scripts-drop-test-db / scripts-promote-to-source / scripts-seed-demo-data / scripts-test 模板升级目标项目 \`scripts/\` 后重跑。`, | ||
| 1414 | '', | 1415 | '', |
| 1415 | '全部满足 → `{ "success": true }`;任一硬缺失 → `{ "success": false, "error": "<一句话>", "detail": "<逐项列出缺什么、装/配的具体命令>" }`。', | 1416 | '全部满足 → `{ "success": true }`;任一硬缺失 → `{ "success": false, "error": "<一句话>", "detail": "<逐项列出缺什么、装/配的具体命令>" }`。', |
| 1416 | '## 输出(ACTION_RESULT_SCHEMA)', | 1417 | '## 输出(ACTION_RESULT_SCHEMA)', |