合并(架构审查P1余项·收口补笔): §四相关账全部补齐(4.1表 presentation 行零动作句/4.2表 S7 行私有成员面移交 §5.1/4.4末低覆盖四件零动作句+文首处置状态行改写)+待办清单「架构审查余项」专条状态推进「文档设计中」缺口只剩④架构文档漂移; pipeline_gate PASS 红项0; §四至此无未落笔项,§五 P2 仍未处置(报告禁退役)
ci / gates (push) Successful in 36s
ci / gates (push) Successful in 36s
This commit is contained in:
commit
fa7e759b73
2 files changed
+9
-3
No files matched your search
@@ -3,7 +3,7 @@
|
|||||||
> **性质**:设计讨论段过程稿(审计读数)。`game/` 全目录只读架构审查的发现清单与证据,作为写卡段、工程改动批与文档设计批的输入材料;结论被吸收进权威文档与修复批后按「吸收即死」退役。
|
> **性质**:设计讨论段过程稿(审计读数)。`game/` 全目录只读架构审查的发现清单与证据,作为写卡段、工程改动批与文档设计批的输入材料;结论被吸收进权威文档与修复批后按「吸收即死」退役。
|
||||||
> **范围**:core 44 件、presentation 71 件、data 24 schema + 19 表、sim 15 件、probe 19 件、tests 69 件、`tools/` 闸件。判据双轨=项目自有规范(`design/engineering/architecture/architecture.md` v1.24 + 五份工程规约)+ Godot 4.7 最佳实践。
|
> **范围**:core 44 件、presentation 71 件、data 24 schema + 19 表、sim 15 件、probe 19 件、tests 69 件、`tools/` 闸件。判据双轨=项目自有规范(`design/engineering/architecture/architecture.md` v1.24 + 五份工程规约)+ Godot 4.7 最佳实践。
|
||||||
> **方式**:分层依赖方向/数据管线/测试覆盖三路并行静态取证+机械 grep 复核。**零测试执行、零引擎运行、零闸执行**(测试两入口铁规),全部结论来自静态读盘;下文每条命中均给 文件:行号,抽查原文已核。
|
> **方式**:分层依赖方向/数据管线/测试覆盖三路并行静态取证+机械 grep 复核。**零测试执行、零引擎运行、零闸执行**(测试两入口铁规),全部结论来自静态读盘;下文每条命中均给 文件:行号,抽查原文已核。
|
||||||
> **处置状态(2026-11-03 更新)**:§三 P0(3.1/3.2)已随迭代 50 三卡合回(合并提交 8d3a12ec);§四 P1 四条已裁,逐条裁决与读数订正见各节标注;§五 P2 四项**未处置**、§六待裁点⑦未落文——**本报告禁退役**(「吸收即死」判据未满足:结论未全吸收进权威文档)。
|
> **处置状态(2026-11-03 更新)**:§三 P0(3.1/3.2)已随迭代 50 三卡合回(合并提交 8d3a12ec)。**§四 P1 四条全部闭合**,含三处子项一并落笔:4.1 表 presentation 行(零动作,豁免通道限定用途已在册)、4.2 表 S7 行的私有成员直取面(缺口在册、移交 §5.1,不属 §四)、4.4 末「低覆盖另计四件」(零动作,能力清单已承接)——裁决、读数订正与已落地闸件见各节「2026-11-03」标注。**§五 P2 四项未处置**、§六待裁点⑦未落文,**本报告禁退役**(「吸收即死」判据未满足:结论未全吸收进权威文档)。登记位现不在原「架构审查优化讨论」条目(该条随迭代 50 收尾按状态机出口删除),改在待办清单「架构审查余项——闸面缺口、豁免存废、零测试点名与架构文档漂移」(2026-11-03 批次移交新立)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -103,6 +103,8 @@ core 内干净,绕过点全在 core 之外:
|
|||||||
| 层 | 位置 | 形态 | 是否被闸扫到 |
|
| 层 | 位置 | 形态 | 是否被闸扫到 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| presentation | `main.gd:914` | `randi()` 建种子,行内标 `rng-seed-exempt` | 扫到但被豁免标记排除 |
|
| presentation | `main.gd:914` | `randi()` 建种子,行内标 `rng-seed-exempt` | 扫到但被豁免标记排除 |
|
||||||
|
|
||||||
|
**上表 presentation 行的处置(2026-11-03)**:零动作、维持现状。该处在产品码扫描面**内**,已被行内注记在册豁免,且豁免通道的限定用途已由 code-conventions §4 第 10 条写死=非玩法 RNG 消费面的引擎熵(组合根建种子不进玩法封闭流),与本节「三目录定种自建属合法测量口径」同一条理,不需再动。
|
||||||
| probe | `ui_click_probe.gd:20` 等 8 处 | `RandomNumberGenerator.new()` | **不扫** |
|
| probe | `ui_click_probe.gd:20` 等 8 处 | `RandomNumberGenerator.new()` | **不扫** |
|
||||||
| sim | `calibrate_boards.gd:54`、`experiment_density.gd:27`、`damage_probe.gd:274`、`level_autoplay.gd:388` | 自建 RNG + 显式定种 | **不扫** |
|
| sim | `calibrate_boards.gd:54`、`experiment_density.gd:27`、`damage_probe.gd:274`、`level_autoplay.gd:388` | 自建 RNG + 显式定种 | **不扫** |
|
||||||
| tests | 3 处测试夹具 | 自建 RNG | **不扫** |
|
| tests | 3 处测试夹具 | 自建 RNG | **不扫** |
|
||||||
@@ -135,6 +137,7 @@ core 内干净,绕过点全在 core 之外:
|
|||||||
**2026-11-03 裁(三面不扩;两处机制修与两处本轮新查)**:
|
**2026-11-03 裁(三面不扩;两处机制修与两处本轮新查)**:
|
||||||
- **S9/S10/S13 不扩到三层**(裁决)。2026-11-03 只读数实跑(三个静态扫描脚本对三层,未修文件、未写基线)给出现存总量 **≈2162 处**:S9 类型 1070(sim 158/probe 130/tests 782,其中无类型容器 859)、S10 文件头 117、S13 质量 975(其中「禁调试打印」274+「循环内 await」70——这两类在测试与探针码里是功能需要,不是债)。产品码面 S9/S10 现行**归零**,扩面即把「归零」这一执法前提换成 1187 项存量红;为三层另建欠账基线会把账从 1 份变 3 份。落文=code-conventions §4 第 13 条写明适用域止于产品码并给出三目录的运行期承接通道。
|
- **S9/S10/S13 不扩到三层**(裁决)。2026-11-03 只读数实跑(三个静态扫描脚本对三层,未修文件、未写基线)给出现存总量 **≈2162 处**:S9 类型 1070(sim 158/probe 130/tests 782,其中无类型容器 859)、S10 文件头 117、S13 质量 975(其中「禁调试打印」274+「循环内 await」70——这两类在测试与探针码里是功能需要,不是债)。产品码面 S9/S10 现行**归零**,扩面即把「归零」这一执法前提换成 1187 项存量红;为三层另建欠账基线会把账从 1 份变 3 份。落文=code-conventions §4 第 13 条写明适用域止于产品码并给出三目录的运行期承接通道。
|
||||||
- **读数是**:S8 现行 **14 文件**显式清单(`static_scan.sh:317`),非本节所记 9 文件;同口径 14 文件清单在 S7 另抄一份(`:361`),两份靠人工同步;绿文案仍报「B1 文件集 10 个 .gd」(`:337`)与头注 `:311` 的「共 14 文件」自相矛盾;S8 自检只防「清单内文件缺位」(`:319-324`)不防「该进的没进」——纯目录域方案已证伪:装板/授予/效果端口/掷格四件结算码在 `game/core` 根下而非 `settlement/` 目录内。
|
- **读数是**:S8 现行 **14 文件**显式清单(`static_scan.sh:317`),非本节所记 9 文件;同口径 14 文件清单在 S7 另抄一份(`:361`),两份靠人工同步;绿文案仍报「B1 文件集 10 个 .gd」(`:337`)与头注 `:311` 的「共 14 文件」自相矛盾;S8 自检只防「清单内文件缺位」(`:319-324`)不防「该进的没进」——纯目录域方案已证伪:装板/授予/效果端口/掷格四件结算码在 `game/core` 根下而非 `settlement/` 目录内。
|
||||||
|
- **S7 行缺口的尾巴(本表 §4.2 里唯一指向 §五的一格)**:该行写「S7 不管私有成员直取面(见 5.1)」。§四 对 S7 只裁它自己的扫描面与清单形态——扫描面维持 `$DIR_CORE`、豁免名单与 S8 并成单点 `B1_SET`(已落地);私有成员直取面**不在本节处置范围**:它无静态判据可造(GDScript 无编译期访问检查,误报面大),且真要做是改 `core/settlement/` 的协作契约=游戏代码=需求改动通道,归 §5.1 与待办清单「架构审查余项」条目之后的讨论段。本节对此格的结论=**缺口在册、移交 §5.1,不在 §四 闭合**。
|
||||||
- **本轮新查两处**(审计未列):①S9/S10 **无扫描面空转自检**(`tools/audit_type_hints.py:82-83`、`tools/audit_file_headers.py:64-65` 目录不存在即静默 PASS),违背本文「三层承载与判定原则」的零命中自检要求与脚本前言自立的防空转纪律(`static_scan.sh:18-19`);②S3 是半闸(命中只打 WARNING、不置 fail,`static_scan.sh:110`)——**但这条不是洞**:架构文档 S 表 S3 行早已登记「warning 级——class_name 直引误报需人工复核」,属已在册状态。2026-11-03 裁**维持 warning 不升硬**(升硬前提是先有可靠的直引误报排除判据,该判据未立)。
|
- **本轮新查两处**(审计未列):①S9/S10 **无扫描面空转自检**(`tools/audit_type_hints.py:82-83`、`tools/audit_file_headers.py:64-65` 目录不存在即静默 PASS),违背本文「三层承载与判定原则」的零命中自检要求与脚本前言自立的防空转纪律(`static_scan.sh:18-19`);②S3 是半闸(命中只打 WARNING、不置 fail,`static_scan.sh:110`)——**但这条不是洞**:架构文档 S 表 S3 行早已登记「warning 级——class_name 直引误报需人工复核」,属已在册状态。2026-11-03 裁**维持 warning 不升硬**(升硬前提是先有可靠的直引误报排除判据,该判据未立)。
|
||||||
- **待执行清单(2026-11-03 同日执行完毕,凭据见下)**:
|
- **待执行清单(2026-11-03 同日执行完毕,凭据见下)**:
|
||||||
1. `game/tests/static_scan.sh`:S8 新增「`game/core/settlement/` 实有 `.gd` ⊆ 清单」反向对账(新段类未登记即红)+S7 的 `S7_B1_SET` 与 `S8_FILES` 两份 14 文件抄本合一为单点 `B1_SET`+绿文案「10 个 .gd」改为派生计数(现打「14 个 .gd+settlement/ 目录域已反向对账」)——**已落地**;
|
1. `game/tests/static_scan.sh`:S8 新增「`game/core/settlement/` 实有 `.gd` ⊆ 清单」反向对账(新段类未登记即红)+S7 的 `S7_B1_SET` 与 `S8_FILES` 两份 14 文件抄本合一为单点 `B1_SET`+绿文案「10 个 .gd」改为派生计数(现打「14 个 .gd+settlement/ 目录域已反向对账」)——**已落地**;
|
||||||
@@ -175,6 +178,7 @@ core 内干净,绕过点全在 core 之外:
|
|||||||
- **裁否两案**:①「立每个 core 件必须被点名一次的覆盖闸」——与本文档族的 `test-conventions.md` §7「覆盖率不是目标:不引入行覆盖率度量;现行补洞=能力清单覆盖域表+人工判定」正面冲突,且会把为点名而点名的空套件逼出来;②「给 11 件补点名套件」——同既有断言重复,属为登记而写码。
|
- **裁否两案**:①「立每个 core 件必须被点名一次的覆盖闸」——与本文档族的 `test-conventions.md` §7「覆盖率不是目标:不引入行覆盖率度量;现行补洞=能力清单覆盖域表+人工判定」正面冲突,且会把为点名而点名的空套件逼出来;②「给 11 件补点名套件」——同既有断言重复,属为登记而写码。
|
||||||
- **落文**:`design/engineering/test-conventions.md` §8.3 新增「新增 core 件的覆盖登记义务」(新 core 件要么被 tests 面点名、要么在能力行申报「经宿主链覆盖(宿主=<件>)」,两者都无=收尾核对补登;明示本条不是覆盖率要求),`design/engineering/process-conventions.md` §3 第 6 条加承接指向(拆件套的覆盖登记归该义务,核对动作归收尾提交)。
|
- **落文**:`design/engineering/test-conventions.md` §8.3 新增「新增 core 件的覆盖登记义务」(新 core 件要么被 tests 面点名、要么在能力行申报「经宿主链覆盖(宿主=<件>)」,两者都无=收尾核对补登;明示本条不是覆盖率要求),`design/engineering/process-conventions.md` §3 第 6 条加承接指向(拆件套的覆盖登记归该义务,核对动作归收尾提交)。
|
||||||
- **落笔约束**:能力清单 `game/tests/README.md` 本体归写卡段维护、实现批禁写(`test-conventions.md` §8.3),所以申报行由写卡段入表,本轮规约文字不代写清单内容。
|
- **落笔约束**:能力清单 `game/tests/README.md` 本体归写卡段维护、实现批禁写(`test-conventions.md` §8.3),所以申报行由写卡段入表,本轮规约文字不代写清单内容。
|
||||||
|
- **「低覆盖另计四件」的处置(本本节最后一句未落笔项)**:`hero_stats`/`skill_lottery`/`shop_session`/`curio_deck` 四件**零动作**。判据:低覆盖≠无覆盖,四件在能力清单各有代表用例承接(现值:`hero_stats`→hero_ledger_test 直构断言 rest_heal;`skill_lottery` 已由审计时点的 1 件升到 2 件——round_flow_skill_pool_test:798/830 与 trigger_cond_test:85/90;`shop_session`→level_shop_economy_test 经 `LevelRunner.shop.` 真实入口;`curio_deck`→pool_case_d 经 AdventureRunner),已满足新落的 §8.3 登记义务(点名或申报经宿主链覆盖二者有一即可)。要提覆盖得由写卡段在后续批次按能力行增补,不属本节闸件范围。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -16,11 +16,13 @@
|
|||||||
|
|
||||||
**实况**:2026-10-29 全库架构静态审计的四组待裁余项,自「架构审查优化讨论」条目迁入(该条目的 3.1+3.2 部分已随迭代 50 卡③实现合回〔合并提交 8d3a12ec〕,余项不在本卡,按未决先迁再死迁立本条)。四组余项(审计待裁点 ④⑤⑥⑦,读数为审计时点,逐项现值以仓库为准):①守卫闸面缺口——S1/S2 随机函数扫描面止步 core+presentation(sim 4 处/probe 1 处/tests 3 处自建 RNG 不在扫)、S9 类型闸与 S13 质量闸扫描面不含 sim/probe/tests、S8 是 9 文件显式清单(缺位自检只防删改不防增);②S13 质量闸豁免存废——审计时点三处豁免常态化到最大户文件(battle_orchestrator 已随拆件批收窄,余量以闸件为准);③零测试点名四件(attune_loadout/battle_fx_host/meta_state_store/slot_store);④架构文档漂移三处(architecture.md 登记的 core/hero_ledger.gd 盘上不存在且测试断言它必须不存在、行数过期、EC8 热重载门后 ConfigDb.reload() 零调用方且走 load() 拿不到磁盘新值)。凭据:reports/审计-全库架构审查-2026-10-29.md(待裁点节)+reports/处置-架构审查3.1+3.2整改-2026-11-02.md(3.1+3.2 闭合凭据,随迭代 50 合回)。
|
**实况**:2026-10-29 全库架构静态审计的四组待裁余项,自「架构审查优化讨论」条目迁入(该条目的 3.1+3.2 部分已随迭代 50 卡③实现合回〔合并提交 8d3a12ec〕,余项不在本卡,按未决先迁再死迁立本条)。四组余项(审计待裁点 ④⑤⑥⑦,读数为审计时点,逐项现值以仓库为准):①守卫闸面缺口——S1/S2 随机函数扫描面止步 core+presentation(sim 4 处/probe 1 处/tests 3 处自建 RNG 不在扫)、S9 类型闸与 S13 质量闸扫描面不含 sim/probe/tests、S8 是 9 文件显式清单(缺位自检只防删改不防增);②S13 质量闸豁免存废——审计时点三处豁免常态化到最大户文件(battle_orchestrator 已随拆件批收窄,余量以闸件为准);③零测试点名四件(attune_loadout/battle_fx_host/meta_state_store/slot_store);④架构文档漂移三处(architecture.md 登记的 core/hero_ledger.gd 盘上不存在且测试断言它必须不存在、行数过期、EC8 热重载门后 ConfigDb.reload() 零调用方且走 load() 拿不到磁盘新值)。凭据:reports/审计-全库架构审查-2026-10-29.md(待裁点节)+reports/处置-架构审查3.1+3.2整改-2026-11-02.md(3.1+3.2 闭合凭据,随迭代 50 合回)。
|
||||||
|
|
||||||
**缺口**:还差一次设计讨论逐项裁决(总判据沿用「机制数据一律长在所属封装实体的内部属性里、不要任何缺省值、死代码不保留」),闭合后方可写卡或直改。
|
**缺口**:四组余项中①②③ 已裁完并落地(见下 2026-11-03 记录),还差④**架构文档漂移三处**的裁决与落文(`architecture.md` 的 HeroLedger 登记行、battle_orchestrator 行数与成员数、EC8 热重载门后 `ConfigDb.reload()` 零调用方)——属审计 §5.2/待裁点⑦,需再走一次设计讨论;同族的审计 §5.1(settlement 私有成员直取,实测 105 处)/§5.3(NODE_TYPES 词表双份)/§5.4(MetaProgression 取依赖形态)尚未登记本条,随④同批处置时一并入册。
|
||||||
|
|
||||||
**改动面**:文档+游戏代码+工具代码
|
**改动面**:文档+游戏代码+工具代码
|
||||||
|
|
||||||
**状态**:待文档设计
|
**状态**:文档设计中
|
||||||
|
|
||||||
|
**2026-11-03 设计讨论裁决(①②③ 三组,用户逐项点头)**:凭据=reports/审计-全库架构审查-2026-10-29.md §四 各节「2026-11-03」标注。①**闸面缺口**——S9 类型闸/S10 文件头闸/S13 质量闸**不扩**到 sim/probe/tests(三层存量只读数实跑≈2162 处,其中禁调试打印 274+循环内 await 70 属工具码功能需要;产品码两面现归零,扩面即毁执法前提),改为在 code-conventions §4 新增第 13 条把适用域按来源写清(tests→闸00/01/02、probe→闸03/04/05〔含两件不入闸的人工取证件与共用面〕、sim→不入 CI 的手动调参批量),并停用「测量面」对该三目录的统称(保留 run_all_gates 选闸原义);**S1/S2 随机闸同样不扩**——三目录自建随机源显式定种属合法测量口径,禁的不定种形态改由文字纪律+独立验收审计承载(用户令:说明写规约,不写 README)。②**S13 豁免存废**——结案销号:审计时点三处豁免已于 2026-10-31 迭代 44 批后收尾清偿(基线现 5 键只降不升,commit 9eedf896),本组无对象可裁、不再叠清偿期限。③**零测试点名**——定性改判为「无按文件登记的惯例」而非「没测」(11 件零点名件全有行为断言,只是不经类名;读数由审计的 4 件订正为 11 件,其中三件是迭代 44/46/49 拆件产物=复发模式);立每 core 件点名闸与补点名套件两案裁否(撞 test-conventions §7「覆盖率不是目标」),改为落 test-conventions §8.3「新增 core 件的覆盖登记义务」+process-conventions §3 第 6 条承接指向。**已落地闸件(工程改动,零卡片,用户令在本会话车道内直改)**:static_scan.sh 的 S8 加 settlement/ 目录域反向对账+S7/S8 两份 14 文件清单并成单点 `B1_SET`+「10 个 .gd」文案改派生计数;audit_type_hints.py/audit_file_headers.py 各补扫描面空转自检;architecture S 表 S8 行与 S9/S10 偏差句同批同步。验证=static_scan 全量 13 条规则绿退出码 0、两件负证返回 1、合回后远端 CI `66407117` green。
|
||||||
|
|
||||||
#### 三关色相 × 五组微光互辨抽测——三关图类型色板终值冻结的前置抽测(2026-10-28 登记,来源=会话提及)
|
#### 三关色相 × 五组微光互辨抽测——三关图类型色板终值冻结的前置抽测(2026-10-28 登记,来源=会话提及)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user