merge(引用可核闸建档注册): 08d 入文档域闸序+三处 game/ 纯文字欠账清净(用户特批跳过代码域闸,回执 commit=f4ff2af6)
This commit is contained in:
commit
59cbd81b92
6 files changed
+26
-27
No files matched your search
@@ -52,6 +52,10 @@
|
||||
"11 回放确定性对拍": {
|
||||
"exit": "SKIP",
|
||||
"fp": "skip"
|
||||
},
|
||||
"08d 引用可核": {
|
||||
"exit": "0",
|
||||
"fp": "green"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,7 +55,7 @@ godot --headless --path . res://smoke/<probe>.tscn
|
||||
timeout 120s godot --headless --script tests/run_all.gd
|
||||
```
|
||||
|
||||
> 单元/契约套件状态(单元测试与契约层批 2026-09-28 立基,后随迭代 7/8 增补):`_suites()` manifest 已登记实跑 **26 套件**(2026-10-16 迭代 29 T1:样板件 `example_test.gd` 退出生产 manifest,27 → 26;`fog_lantern_wiring_test` 随提灯载体退役摘除在前)——data_config(ConfigDB 加载/进度坐标 ceil 解析/fatal 退出码/统一随机流)、core(秘宝结构冻结/断点续玩/提灯装配链)、battle_settlement(DamageMath 纯函数/DamageController 伤害单据五配方)、contracts(系统间接口契约断言)、presentation(节奏队列/奖励浮层/字体资产/地形瓦片集);致命类独立进程 `expect=1`。期望值一律由表读值推导(零玩法数值字面量)、随机只经 RngService 统一流。
|
||||
> 单元/契约套件状态(单元测试与契约层批 2026-09-28 立基,后随迭代 7/8 增补):`_suites()` manifest 已登记实跑 **35 套件**(2026-10-21 迭代 32 卡② 后现况,含 `counter_prefix_fatal_test` 负面套件;上一次计数变动为 2026-10-16 迭代 29 T1:样板件 `example_test.gd` 退出生产 manifest,27 → 26;`fog_lantern_wiring_test` 随提灯载体退役摘除在前)——data_config(ConfigDB 加载/进度坐标 ceil 解析/fatal 退出码/统一随机流)、core(秘宝结构冻结/断点续玩/提灯装配链)、battle_settlement(DamageMath 纯函数/DamageController 伤害单据五配方)、contracts(系统间接口契约断言)、presentation(节奏队列/奖励浮层/字体资产/地形瓦片集);致命类独立进程 `expect=1`。期望值一律由表读值推导(零玩法数值字面量)、随机只经 RngService 统一流。
|
||||
|
||||
**协议要点**(D2 冒烟协议):
|
||||
- 冒烟脚本 `extends SceneTree` 以获得 `quit(code)`;成功 `quit(0)`、失败 `quit(1)`
|
||||
@@ -78,7 +78,7 @@ timeout 120s godot --headless --script tests/run_all.gd
|
||||
| Integration | Integration test OR playtest doc | 落地时随批建 `tests/integration/[system]/`(目录已删空壳,章程见上) |
|
||||
| Visual/Feel | Screenshot + lead sign-off | `tests/evidence/` |
|
||||
| UI | Manual walkthrough OR interaction test(场景探针为首选) | `tests/evidence/` |
|
||||
| Config/Data | Smoke check pass | `design/qa/` |
|
||||
| Config/Data | Smoke check pass | 跑批回执 `game/tests/.gates/receipt.json`(不入库)+结论随批记 `reports/` |
|
||||
|
||||
## game/smoke/ 游离脚本台账(迭代 29 T7 逐个定性)
|
||||
|
||||
@@ -89,7 +89,7 @@ timeout 120s godot --headless --script tests/run_all.gd
|
||||
| 脚本 | 定性 | 用途与触发方式 | 结果由谁判 |
|
||||
|---|---|---|---|
|
||||
| `adventure_monte_carlo.gd` | **在役**(`AGENTS.md` 在册入口) | 全冒险期望 MC;`tools/parity_anchor.py` 的对拍载体 | 工具脚本逐位比对 |
|
||||
| `verifier_batch.gd` | **在役**(`AGENTS.md` 在册入口) | `tools/balance_verifier.py` 的采集端(数值验证) | 报告落 `design/qa/` |
|
||||
| `verifier_batch.gd` | **在役**(`AGENTS.md` 在册入口) | `tools/balance_verifier.py` 的采集端(数值验证) | 报告与原始数据落 `sim-data/` |
|
||||
| `reward_expectation.gd` | **在役**(`AGENTS.md` 在册入口) | 奖励期望测量(非封锁格分布/资源类型频次) | 人工读 stdout |
|
||||
| `monte_carlo.gd` | 在役 | 战斗期望 MC(胜轮数/承伤/清图/开格分布) | 人工读 stdout |
|
||||
| `auto_player.gd` | 在役(库件) | 自动玩家策略单一实现——被 `battle_driver` preload | 宿主脚本 |
|
||||
|
||||
@@ -97,7 +97,7 @@ fi
|
||||
# 禁「板级」「门票」「正主」「落籍」「完美排雷」等退役词进注释面(完整词表见术语表解析)
|
||||
# 权威出处:design/gdd/术语表.md「退役词对照」节+「对外命名纪律」节
|
||||
# 扫描面:game/ 全域 .gd/.tres/.md/.json/.sh(.txt 不收=第三方许可证非本仓库文本)
|
||||
# 词表来源:解析「退役词对照」第一列(去括号注、斜杠拆分)+显式追加禁「完美排雷」(受对外命名纪律约束,不在退役词对照表里);显式排除「巢穴」(玩家专名/风味层,术语表自带除外注)、「旗」(单字误报率高,doc_term_audit 判例)
|
||||
# 词表来源:以解析「退役词对照」第一列(去括号注、斜杠拆分)为准;该词自 2026-10-21 已入表(术语表在册行),故 `:122` 的显式追加行成为冗余——`sort -u` 去重后行为不变,暂保留待下个代码批一并删;显式排除「巢穴」(玩家专名/风味层,术语表自带除外注)、「旗」(单字误报率高,doc_term_audit 判例)
|
||||
# 注释文本提取:.gd/.sh 取 # 后文本;.tres 取 ; 后文本;.md 取整行;.json 无注释语法(保留扩展名但不产生注释段)
|
||||
# 三层豁免依序:①闸门自指(行内含检查/禁令形态即跳过)②显式留档豁免单 4 处 ③非注释面天然不取
|
||||
|
||||
|
||||
+11
-1
@@ -10,6 +10,8 @@ r"""doc_ref_audit.py — 文档内代码引用可核检查(机检)
|
||||
扫描面:`design/` 现行文档树 + 四份根文件(`待办清单.md`/`体验验证清单.md`/`roadmap.md`/`AGENTS.md`)。
|
||||
排除面:`reports/`——中间文档唯一暂存地(doc-conventions 第 11 节;`design/research/` 已于 2026-10-21 退役),
|
||||
入内文件按「吸收即死」退役,历史件不回溯改,故不入本闸判据。
|
||||
(2026-10-21 实测:把 reports/ 纳进来出 17 条红项/538 处引用,多为历史件里的行号漂移与当时合法的旧路径写法——
|
||||
要收紧到「现行件才受指针核对」得先立分界,暂不扩。)
|
||||
|
||||
自检二道(防假绿):扫描文件数为零 ⇒ FAIL;抽取到的引用数为零 ⇒ FAIL。
|
||||
(正则被改写失手或路径写错时,检查会静默空转并报绿——与 static_scan 各段同规。)
|
||||
@@ -85,7 +87,9 @@ def collect_docs(explicit):
|
||||
|
||||
|
||||
def resolve(name, doc_rel, index, bybase):
|
||||
"""返回 (命中路径列表, 解析方式)。方式=exact / ambiguous / none。"""
|
||||
"""返回 (命中路径列表, 解析方式)。方式=exact / ambiguous / none。
|
||||
依序试:文档同目录相对路径 → 仓库根路径 → 按「尾段匹配」全库找(`tests/run_all.gd`
|
||||
这类相对 game/ 工程的简写靠这一步命中,否则会被误判成路径不存在)。"""
|
||||
name = name.strip("./")
|
||||
if "/" in name:
|
||||
for cand in (
|
||||
@@ -94,6 +98,12 @@ def resolve(name, doc_rel, index, bybase):
|
||||
):
|
||||
if cand in index:
|
||||
return [cand], "exact"
|
||||
suffix = "/" + name
|
||||
hits = sorted(p for p in index if p.endswith(suffix))
|
||||
if len(hits) == 1:
|
||||
return hits, "exact"
|
||||
if len(hits) > 1:
|
||||
return hits, "ambiguous"
|
||||
return [], "none"
|
||||
cands = sorted(bybase.get(name, []))
|
||||
if not cands:
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
# 用法:tools/run_all_gates.sh [--code|--docs|--quick]
|
||||
# --code 只跑代码域闸(01 冒烟/02 单元/03 探针 --click/04 探针 --full/05 渲染闸/09 静态扫描
|
||||
# /11 回放确定性对拍+10 熵增闸)——本批改动触及 game/ 时用(游戏工程的唯一代码验收域)。
|
||||
# --docs 只跑文档域闸(06 gdd_lint/07 doc_link/08 doc_term/08c 流水线闸
|
||||
# --docs 只跑文档域闸(06 gdd_lint/07 doc_link/08 doc_term/08c 流水线闸/08d 引用可核
|
||||
# +10 熵增闸)
|
||||
# ——本批改动不触及 game/ 时用:design/、根规则文件、tools/ 工具脚本、.zcode/ 配置等
|
||||
# 一切非 game 改动的本域验收。
|
||||
@@ -185,9 +185,8 @@ gate "07 doc_link" "doc_link.log" "$PY" "$REPO/tools/doc_link_audit.py" --strict
|
||||
gate "08 doc_term" "doc_term.log" "$PY" "$REPO/tools/doc_term_audit.py" --strict
|
||||
# ── 8c. 流水线闸(待办清单条目状态机+roadmap 迭代总表+一次交叉核,判据=doc-conventions §12)──
|
||||
gate "08c 流水线闸" "pipeline.log" "$PY" "$REPO/tools/pipeline_gate.py"
|
||||
# 8d 引用可核(tools/doc_ref_audit.py,2026-10-21 交付)暂不注册:新闸件无基线记录必判「闸况变化」拦回执,
|
||||
# 而建档要改 game/tests/.gates/baseline.json——触 game/ 即要求代码域全量测试(process-conventions §3.10 推域口径),
|
||||
# 文档域批按测试两入口铁规零跑游戏测试。注册与建档随下一个触 game/ 的批次一并做(待办清单在册)。
|
||||
# ── 8d. 引用可核(现行文档里「文件:行号」指针的目标存在性与行界,判据=件头注)──
|
||||
gate "08d 引用可核" "doc_ref.log" "$PY" "$REPO/tools/doc_ref_audit.py" --strict
|
||||
fi
|
||||
# ── 6c. 回放确定性对拍(条件闸件;属代码域)──
|
||||
if in_domain code; then
|
||||
|
||||
@@ -514,12 +514,6 @@
|
||||
|
||||
### 文档与结构
|
||||
|
||||
#### game/tests/README 分级表证据落点行仍指 design/qa/(2026-10-20 登记,来源=批次移交,设计面=工程直入)
|
||||
|
||||
**现状**:qa/ 目录退役批(分支 `qa-retire-20261020`,提交 897a0742)已把 13 处活指针改判到 `reports/`、`sim-data/`(`reports/` 已于 2026-10-21 退役,中间文档唯一暂存地只剩 `reports/`),唯 `game/tests/README.md:81` 测试分级表 Config/Data 行的证据落点仍写 `design/qa/`(该目录本批已退役),正解=`sim-data/`——该行是机器读数出口,与 `tools/balance_verifier.py` 的报告落点改动属同一口径。本批未顺手改:改动路径一旦落在 `game/` 前缀内,合回闸即按路径推定本批需代码域验收,而本批零代码改动(见 `.zcode/hooks/worktree-guard.sh` 推域段);死链闸也判不出——`tools/doc_link_audit.py` 只扫 `design/gdd/`。故列为已知欠账,等下一批真改 `game/` 时一并纠正。
|
||||
**归属**:`game/tests/README.md` 测试分级表
|
||||
**状态**:待写卡(备选)
|
||||
|
||||
#### qa/ 实现报告收尾·孤儿遗留七项(2026-10-14 登记,来源=批次移交,设计面=工程直入)
|
||||
|
||||
**现状**:qa 收尾批核查 iter19 系列出口报告遗留移交项时发现**不在待办清单在册**的七项(acceptance-package §三.2/card0 §5.3/followup §七.3/uibackfill §6.2-4/verify §6.1/3/7)。已结案的(tree_rules 受理闭环、X/Y 双源、S1 七项违例修复、提灯目检项、tests.yml 休眠等)已在各报告标注结案证据,不入本条。七项均为挂号备查/顺路件,无排期承诺:
|
||||
@@ -730,23 +724,15 @@
|
||||
|
||||
#### `game/` 域文档两处措辞订正欠账(2026-10-21 登记,来源=批次移交,设计面=工程直入)
|
||||
|
||||
**现状**:两处 `game/` 内文本与现实不符,改 `game/` 任何路径都会触发代码域全量测试(2026-10-20 用户裁「零代码批不改该行、登记欠账」),故不入本写入批:①`game/tests/static_scan.sh:100` S11 注释仍称「完美排雷」不在退役词对照表里——2026-10-21 起该词已入表(术语表退役词对照行在册),注释与 `:122` 追加行按「S11 权威=术语表解析」口径可一并订正;②`game/tests/README.md:58` 记「manifest 已登记实跑 26 套件」——迭代 32 卡② 后现况为 35 套件(含 counter_prefix_fatal 负面套件),以 `run_all.gd` 现况为准更新。同文件另两处 `design/qa/` 死指已另有在册条目(本清单「game/tests/README 分级表证据落点行仍指 design/qa/」),本条不重复登记。
|
||||
**现状**:标题里的「两处」是 2026-10-21 登记时的原述(标题属登记元数据不改)。当日用户手工提交批已清三处纯文字面——`game/tests/static_scan.sh:100` S11 词表来源注释、`game/tests/README.md:58` 套件数(26 → 35,按 `_suites()` manifest 实数)、`game/tests/README.md:81`/`:92` 两处 `design/qa/` 死指(分别改指跑批回执+`reports/` 与 `sim-data/`)。**本条唯一未净项**=`game/tests/static_scan.sh:122` 的 `printf `'完美排雷'
|
||||
' >> "$S11_WFILE" 追加行:该词自 2026-10-21 已入术语表「退役词对照」,追加行成为冗余(`sort -u` 去重后行为不变)。删它属改闸件词表本体、非纯文字订正,留待下一个触 `game/` 的代码批一并清;注释行已写明这个状态。
|
||||
|
||||
**归属**:`game/tests/`(代码域,随下一个触碰 game/ 的批次顺带清)
|
||||
**归属**:`game/tests/`(代码域,剩余项随下一个触碰 game/ 的批次顺带清)
|
||||
|
||||
**状态**:待写卡
|
||||
**状态**:待写卡〔用户特批 2026-10-21 跳过代码域闸〕
|
||||
|
||||
---
|
||||
|
||||
#### 引用可核闸注册与建档欠账(2026-10-21 登记,来源=会话提及,设计面=工程直入)
|
||||
|
||||
**现状**:新机检件 `tools/doc_ref_audit.py`(文档内「文件:行号」指针的存在性与行界核对,件头注即判据)已于 2026-10-21 交付并双向验证——注入不存在路径 EXIT=1、注入超界行号 EXIT=1、扫描面为空自判 FAIL、还原 EXIT=0(当日实测:63 件文档/81 处引用/红项 0/建议 6)。它**尚未注册进 `tools/run_all_gates.sh` 文档域**,原因=注册要把绿记录写进 `game/tests/.gates/baseline.json`(先例见 8f66ae15 之 08c 与 e8b6751b 之 06b),而改 `game/` 下任何路径都要求代码域回执、即跑全量游戏测试,文档域批按测试两入口铁规零跑(2026-10-20 用户裁「不为边际正确性付跑测成本」)。同批附带交付:`tools/doc_term_audit.py` 扫描面已扩到四份根文件(待办清单/体验验证清单/roadmap/AGENTS),扩面实测「疑似现行」0 处、变异注入见红 EXIT=1 还原 EXIT=0。内容锚核对(`--anchors`)实测 81 处引用出 58 条未命中,噪声约七成,按建议级交付不判红,待真实批次积累后再定是否收紧。
|
||||
|
||||
**归属**:`tools/run_all_gates.sh` 注册行+`game/tests/.gates/baseline.json` 建档(代码域批次顺带)
|
||||
|
||||
**状态**:待写卡
|
||||
|
||||
---
|
||||
|
||||
#### 迭代 32 移交项一——奇物门票三处玩家文案待定性后传导(2026-10-21 登记,来源=批次移交,设计面=文档轨)
|
||||
|
||||
|
||||
Reference in new issue
Block a user