merge(master)+二轮清扫:并回 master 新进提交(iter36 收尾/golden 纪律/S13 治本卡),冲突三处——process-conventions 取 master 新条款(回执 dirty_game 对齐判据/每批跑一次闸/复跑理由)重编号 8–14+闸件义务句维持人工确认口径,S9 卡 D4 维持全项目禁令版(master 侧旧定界句作废),状态面板瘦身卡取 master 删除(iter36 收尾已退役,清洗随亡);随批清扫——待办清单「变异测试禁令写入规约」整条删除(本批即其执行)、roadmap 待编池同步移除

This commit is contained in:
DKChan committed 2026-10-25 03:59:11 +08:00
commit a74fa87fe5
24 files changed
+254 -1181

No files matched your search

+12 -17
View File
@@ -3,12 +3,12 @@
game/core/action_economy.gd|quality/max-class-variables|class has 18 variables (max 15)
game/core/adventure_runner.gd|quality/max-branches|function '_apply_curio_pick' has 10 branches (max 8)
game/core/adventure_runner.gd|quality/max-branches|function '_draw_curio_candidates' has 11 branches (max 8)
game/core/adventure_runner.gd|quality/max-branches|function 'resume_adventure' has 10 branches (max 8)
game/core/adventure_runner.gd|quality/max-class-variables|class has 43 variables (max 15)
game/core/adventure_runner.gd|quality/max-file-length|file is 1050 lines long (max 1000)
game/core/adventure_runner.gd|quality/max-branches|function 'resume_adventure' has 11 branches (max 8)
game/core/adventure_runner.gd|quality/max-class-variables|class has 42 variables (max 15)
game/core/adventure_runner.gd|quality/max-file-length|file is 1051 lines long (max 1000)
game/core/adventure_runner.gd|quality/max-function-length|function '_draw_curio_candidates' is 85 lines long (max 50)
game/core/adventure_runner.gd|quality/max-function-length|function '_start_current_level' is 55 lines long (max 50)
game/core/adventure_runner.gd|quality/max-function-length|function 'resume_adventure' is 104 lines long (max 50)
game/core/adventure_runner.gd|quality/max-function-length|function '_start_current_level' is 53 lines long (max 50)
game/core/adventure_runner.gd|quality/max-function-length|function 'resume_adventure' is 108 lines long (max 50)
game/core/adventure_runner.gd|quality/max-local-variables|function '_draw_curio_candidates' has 26 local variables (max 10)
game/core/adventure_runner.gd|quality/max-local-variables|function 'resume_adventure' has 13 local variables (max 10)
game/core/adventure_runner.gd|quality/max-public-methods|class has 23 public methods (max 20)
@@ -45,11 +45,11 @@ game/core/board_generator.gd|quality/max-nesting-depth|function 'measure_inferab
game/core/board_generator.gd|quality/max-parameters|function '_finalize' has 6 parameters (max 5)
game/core/config_db.gd|quality/max-class-variables|class has 25 variables (max 15)
game/core/config_db.gd|quality/max-public-methods|class has 44 public methods (max 20)
game/core/config_db_cross_validator.gd|quality/max-branches|function 'cross_validate' has 31 branches (max 8)
game/core/config_db_cross_validator.gd|quality/max-function-length|function 'cross_validate' is 159 lines long (max 50)
game/core/config_db_cross_validator.gd|quality/max-local-variables|function 'cross_validate' has 39 local variables (max 10)
game/core/config_db_cross_validator.gd|quality/max-branches|function 'cross_validate' has 21 branches (max 8)
game/core/config_db_cross_validator.gd|quality/max-function-length|function 'cross_validate' is 107 lines long (max 50)
game/core/config_db_cross_validator.gd|quality/max-local-variables|function 'cross_validate' has 24 local variables (max 10)
game/core/config_db_cross_validator.gd|quality/max-local-variables|function 'validate_skill_pool_links' has 11 local variables (max 10)
game/core/config_db_cross_validator.gd|quality/max-nesting-depth|function 'cross_validate' has nesting depth 6 (max 4)
game/core/config_db_cross_validator.gd|quality/max-nesting-depth|function 'cross_validate' has nesting depth 5 (max 4)
game/core/config_db_resolver.gd|quality/max-branches|function '_resolve_progress' has 16 branches (max 8)
game/core/config_db_resolver.gd|quality/max-branches|function 'resolve_enemy_rowset' has 12 branches (max 8)
game/core/config_db_resolver.gd|quality/max-function-length|function '_resolve_progress' is 52 lines long (max 50)
@@ -71,9 +71,8 @@ game/core/effect_engine.gd|quality/max-nesting-depth|function '_cond_ok' has nes
game/core/effect_engine.gd|quality/max-nesting-depth|function 'rebuild' has nesting depth 5 (max 4)
game/core/effect_engine.gd|quality/max-returns|function '_cond_ok' has 19 return statements (max 6)
game/core/effect_engine.gd|quality/no-else-return|unnecessary 'elif' after 'return'
game/core/level_runner.gd|quality/max-class-variables|class has 40 variables (max 15)
game/core/level_runner.gd|quality/max-file-length|file is 1013 lines long (max 1000)
game/core/level_runner.gd|quality/max-parameters|function 'start_level_external' has 8 parameters (max 5)
game/core/level_runner.gd|quality/max-class-variables|class has 38 variables (max 15)
game/core/level_runner.gd|quality/max-parameters|function 'start_level_external' has 7 parameters (max 5)
game/core/level_runner.gd|quality/max-public-methods|class has 54 public methods (max 20)
game/core/level_runner.gd|quality/max-returns|function '_enter_node' has 7 return statements (max 6)
game/core/meta_progression.gd|quality/max-public-methods|class has 31 public methods (max 20)
@@ -125,10 +124,6 @@ game/data/schemas/forge_table.gd|quality/max-local-variables|function 'validate'
game/data/schemas/level_gen_params.gd|quality/max-branches|function 'validate' has 15 branches (max 8)
game/data/schemas/level_gen_params.gd|quality/max-function-length|function 'validate' is 59 lines long (max 50)
game/data/schemas/level_gen_params.gd|quality/max-local-variables|function 'validate' has 18 local variables (max 10)
game/data/schemas/level_table.gd|quality/max-branches|function '_validate_graph' has 21 branches (max 8)
game/data/schemas/level_table.gd|quality/max-branches|function '_validate_level_nodes' has 12 branches (max 8)
game/data/schemas/level_table.gd|quality/max-function-length|function '_validate_graph' is 99 lines long (max 50)
game/data/schemas/level_table.gd|quality/max-local-variables|function '_validate_graph' has 19 local variables (max 10)
game/data/schemas/meta_table.gd|quality/max-branches|function 'validate' has 14 branches (max 8)
game/data/schemas/meta_table.gd|quality/max-function-length|function 'validate' is 60 lines long (max 50)
game/data/schemas/meta_table.gd|quality/max-local-variables|function 'validate' has 14 local variables (max 10)
@@ -162,7 +157,7 @@ game/presentation/hud_presenter.gd|quality/max-parameters|function '_refresh_out
game/presentation/hud_presenter.gd|quality/max-parameters|function 'refresh' has 8 parameters (max 5)
game/presentation/hud_presenter.gd|quality/max-parameters|function 'tune_sim_report' has 10 parameters (max 5)
game/presentation/main.gd|quality/max-class-variables|class has 49 variables (max 15)
game/presentation/main.gd|quality/max-file-length|file is 1509 lines long (max 1000)
game/presentation/main.gd|quality/max-file-length|file is 1507 lines long (max 1000)
game/presentation/main.gd|quality/max-function-length|function '_build_ui' is 189 lines long (max 50)
game/presentation/playtest_logger.gd|quality/no-debug-print|debug 'print()' call found
game/presentation/treasure_interact_controller.gd|quality/max-local-variables|function 'inventory_projection' has 11 local variables (max 10)
+18 -3
View File
@@ -6,6 +6,10 @@
# 跑完写回执 game/tests/.gates/receipt.json(commit + 各闸退出码 + 存量基线比对 + 时间戳);
# .zcode/hooks/worktree-guard.sh 在主工作区 git merge 时校验本回执,缺或红即拦截。
#
# 本脚本是合回前的终局动作:跑之前先冻结(代码与断言不再改)并把 master 并入本分支;每批只跑
# 一次。回执必须覆盖住分支尖的 game/ 面——闸后再改 game/ 一点,回执即作废须重跑;跑闸时若
# game/ 还带着未提交改动,回执会标 dirty_game,合回闸拒绝采信。
#
# 用法:tools/run_all_gates.sh [--code|--docs|--quick]
# --code 只跑代码域闸(00 冒烟测试/01 系统测试/02 单元与集成测试/03 探针 --click/
# 04 探针 --full/05 渲染闸/09 静态扫描/11 回放确定性对拍+10 熵增闸)
@@ -54,6 +58,14 @@ done
# 与基线比必判「红项清单变化」假红)、末尾汇总自身崩掉打不出结论。
export PYTHONIOENCODING=utf-8
# game/ 面是否带着未提交改动(只算已跟踪文件——闸件自身产物都落在 gitignore 面)。
# 脏树跑出来的回执记的是 HEAD,验的却是别的字节,合回闸据此拒收。
DIRTY_GAME=0
if [ -n "$(git -C "$REPO" status --porcelain -uno -- game/ 2>/dev/null)" ]; then
DIRTY_GAME=1
echo "[gates] 警告:game/ 有未提交改动——本次回执将标 dirty_game,不能用于合回(先提交再跑)。"
fi
# 回执与日志是中间产物(不入库),但 .gitignore 本身必须入库——漏了就等于把它们纳入版本管理。
# 每次跑批前自愈重建,避免「清目录重跑」把 .gitignore 一起带走。
mkdir -p "$STAMP_DIR"
@@ -248,11 +260,11 @@ else
fi
# ── 与存量基线比对 ──
"$PY" - "$BASELINE" "$RECEIPT" "$QUICK" "$DOMAIN" "$REPO" "${NAMES[@]}" -- "${EXITS[@]}" -- "${LOGS[@]}" <<'PYEOF'
"$PY" - "$BASELINE" "$RECEIPT" "$QUICK" "$DOMAIN" "$REPO" "$DIRTY_GAME" "${NAMES[@]}" -- "${EXITS[@]}" -- "${LOGS[@]}" <<'PYEOF'
import hashlib, json, os, subprocess, sys
baseline_path, receipt_path, quick, domain, repo = sys.argv[1:6]
rest = sys.argv[6:]
baseline_path, receipt_path, quick, domain, repo, dirty_game = sys.argv[1:7]
rest = sys.argv[7:]
sep = rest.index("--")
names = rest[:sep]
tail = rest[sep + 1:]
@@ -338,6 +350,7 @@ with open(receipt_path, "w", encoding="utf-8") as f:
"timestamp": subprocess.run(["date", "-Iseconds"], capture_output=True, text=True).stdout.strip(),
"quick_mode": quick == "1",
"domain": domain,
"dirty_game": dirty_game == "1",
"first_baseline_run": first_run,
"gates": [{"name": n, "exit": e, "fingerprint": now[n]["fp"]} for n, e in zip(names, exits)],
"changed_vs_baseline": changed,
@@ -364,6 +377,8 @@ if not_run:
stock = [n for n, e in zip(names, exits) if e not in ("0", "SKIP")]
if stock:
print("【存量红·对基线零新增】" + "、".join(stock))
if dirty_game == "1":
print("【回执不可用于合回】跑闸时 game/ 有未提交改动——先提交到分支、再重跑这一次。")
if all_green:
print("【验收通过】闸况与基线一致,无新增红。")
sys.exit(0)