docs: ADR 体系废除 + architecture.md 确立为架构唯一事实源(2026-10-15 用户令:决策记录归 git commit log,不另存决策文档)
- 删除 design/dev/architecture/adr-0001~0007 共 7 份文件(内容留 git 历史可查) - architecture.md:删「ADR 审计」「ADR 立项清单」两节;清除全文 ADR-000X 注记、QQ 表/S 表 ADR 引用;未决表关闭已落定项(QQ-01/02/03),立项清单在途事项转登记 QQ-11~14;补 A1 生成姿态事实、autoload 四件清单、board_generator 性能姿态;文档状态立「事实源地位」条 - CLAUDE.md:恢复 RNG 单点硬性红线(去 ADR-0007 引用);新增「架构事实唯一源」红线;规范导航架构行标注唯一事实源 - doc-conventions:§5 增「架构事实唯一源」行;§11 活文档清单补架构文档 - registry:architecture.yaml 删 18 处 adr 字段、autoload_set 补 SaveManager/MetaProgression、board_rending 更新为 Node2D 已落地事实;entities.yaml 12 处引用清除 - game/ 代码注释约 60 处清 ADR-000X 引用(事实与日期保留);豁免标记 ADR-0007-exempt → rng-seed-exempt(main.gd/static_scan.sh/architecture.md/06/iter27 五处同步) - GDD/qa 实现报告/research 卡片/roadmap/tests README 引用全清;死链校验 1206 链接 0 死链、gdd_lint 0 不通过 - 代码中 adr/adr5 等为 adventure_runner 既有局部变量名(非 ADR 引用),未动
This commit is contained in:
1 parent
f22adb5564
commit
6c2dbc37c1
73 files changed
+193
-1118
No files matched your search
@@ -49,7 +49,7 @@ func _initialize() -> void:
|
||||
print(" error: [%s] %s" % [d.category, d.message])
|
||||
var rng = load("res://core/rng_service.gd").new()
|
||||
rng.set_master_seed(42)
|
||||
# 统一流黄金向量(数据配置 AC-3——ADR-0007 裁丙 2026-09-27 单盐重登记:单盐沿用并流前 board_gen 盐,
|
||||
# 统一流黄金向量(数据配置 AC-3——2026-09-27 统一流裁决单盐重登记:单盐沿用并流前 board_gen 盐,
|
||||
# scope 0-3 与旧 R3 board_gen 向量逐位连续;Python 参考实现逐位交叉验证一致;并流前分盐向量随批作废)
|
||||
check(rng.derive_at(0) == 8672514112661456564, "统一流向量 m=42 scope=0(=旧 board_gen scope0 连续性锚)")
|
||||
check(rng.derive_at(1) == 8834291164406037215, "统一流向量 m=42 scope=1")
|
||||
@@ -68,7 +68,7 @@ func _initialize() -> void:
|
||||
rng.new_adventure(4242)
|
||||
var s2 = rng.open_stream("gp_drop")
|
||||
check(rng.counter() == 1 and s2.seed == rng.derive_at(0), "new_adventure 重置全局计数器")
|
||||
check(FileAccess.file_exists("user://logs/rng_log_4242.jsonl"), "事件日志会话落盘(ADR-0007 丙案)")
|
||||
check(FileAccess.file_exists("user://logs/rng_log_4242.jsonl"), "事件日志会话落盘(2026-09-27 统一流裁决)")
|
||||
|
||||
if load_ok:
|
||||
_run_core_smoke(db, rng)
|
||||
@@ -2011,7 +2011,7 @@ func _smoke_armor_roll() -> void:
|
||||
for roll in range(1, 21):
|
||||
ev_sum += DamageMath.roll_discount_percent(roll, 10, _db.settlement.roll_tier_bounds, _db.settlement.roll_tier_discounts)
|
||||
check(ev_sum == 1575, "AC10 EV 锚:期望系数合计 %d/2000 = 期望减免 21.25%%(nat20 恒全额含内)" % ev_sum)
|
||||
# ② nat20 暴击(行为面):并流批(ADR-0007 裁丙)后掷点位随全局序漂移——探针改为按行为面扫描
|
||||
# ② nat20 暴击(行为面):并流批(2026-09-27 统一流裁决)后掷点位随全局序漂移——探针改为按行为面扫描
|
||||
# 「主角先手首掷 = 20」的种子,不再假设 armor_roll scope0 位
|
||||
var crit_seed := -1
|
||||
var crit_rows := {}
|
||||
@@ -2235,7 +2235,7 @@ func _smoke_board_generator() -> void:
|
||||
|
||||
|
||||
func _mk_stream(stream_name: String, scope: int) -> RandomNumberGenerator:
|
||||
# 并流批(ADR-0007 裁丙):stream_name 降格为调用点自述标签(不参与派生),保留参数零改调用方
|
||||
# 并流批(2026-09-27 统一流裁决):stream_name 降格为调用点自述标签(不参与派生),保留参数零改调用方
|
||||
var rg := RandomNumberGenerator.new()
|
||||
rg.seed = _rng.derive_at(scope)
|
||||
return rg
|
||||
@@ -3358,7 +3358,7 @@ func _polarity_probe_accepts(probe: Dictionary) -> bool:
|
||||
|
||||
func _smoke_polarity_routing() -> void:
|
||||
print("--- 极性路由(挖安全格正向 / 挖雷格负向 / 标中正向 / 标空负向)---")
|
||||
# 并流批(ADR-0007 裁丙)后战斗随机值面漂移——构造种子改行为面扫描(谓词见 _polarity_probe_accepts)
|
||||
# 并流批(2026-09-27 统一流裁决)后战斗随机值面漂移——构造种子改行为面扫描(谓词见 _polarity_probe_accepts)
|
||||
var probe := {}
|
||||
var polarity_seed := -1
|
||||
for s in [20260918, 20260919, 20260920, 20260921, 42, 4242, 7, 100, 20260922, 123, 2024, 31337, 555, 1111, 2222, 20260923, 999, 777]:
|
||||
@@ -4015,7 +4015,7 @@ func _smoke_skill_pool_data() -> void:
|
||||
|
||||
|
||||
# ② 同种子回放逐位复现(D3 大地精——原熊地精双雄,多实例同种)
|
||||
# ③「单敌轨迹独立复放」随并流批退役(ADR-0007 裁丙 2026-09-27):子流派生向量退役后单敌轨迹无法
|
||||
# ③「单敌轨迹独立复放」随并流批退役(2026-09-27 统一流裁决):子流派生向量退役后单敌轨迹无法
|
||||
# 脱离全序重建(位置与其它流取数交错);同种子全战斗逐位复现由 ② 全对拍承载,单点定位归事件日志。
|
||||
func _smoke_skill_pool_replay_independence() -> void:
|
||||
var seed_val := -1
|
||||
@@ -4328,7 +4328,7 @@ func _smoke_level_graph() -> void:
|
||||
var orphan_errs: Array = lt.validate()
|
||||
check(_has_err_category(orphan_errs, "structural"), "图校验拒绝:孤儿节点(从入口不可达 / 双入口同体违例)")
|
||||
# ④ L2 选路推进:min / max 双路径全通(确定性路径轴——零随机流自开)
|
||||
# 并流批(ADR-0007 裁丙)后战斗随机值面漂移——max 路径种子改行为面扫描(路线形状/商店/选路口为断言本体)
|
||||
# 并流批(2026-09-27 统一流裁决)后战斗随机值面漂移——max 路径种子改行为面扫描(路线形状/商店/选路口为断言本体)
|
||||
var win_min = autoplay.run_level(_db, 42, 2, 200, 100, false, null, "normal", "min", 0)
|
||||
check(win_min.result == "victory", "L2·满配 min 路径通关(实测:%s)" % win_min.result)
|
||||
check(win_min.boss_depth == 9, "L2 Boss 以编号 9 解析(终点编号最大——商店房批重编号 8→9)")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# VERTICAL SLICE - NOT FOR PRODUCTION
|
||||
# push_input 端到端输入探针(ADR-0003 登记项转义务、
|
||||
# ADR-0006 Risks 缓解面)。现役探针全走 BoardView.click_cell 直调(合成鼠标事件零命中已实证)——
|
||||
# push_input 端到端输入探针(2026-09-12 场景结构批登记项转义务、
|
||||
# Node2D 迁移批 Risks 缓解面)。现役探针全走 BoardView.click_cell 直调(合成鼠标事件零命中已实证)——
|
||||
# 本探针是真实输入路径的唯一自动化覆盖:鼠标事件 → 壳层 _gui_input → 板级公式换算(_cell_at)→
|
||||
# 悬停/点选/chord 既有出口 → 组合根信号。四 case:①悬停可挖域(金框+十字光标)②悬停禁入
|
||||
# (hover_forbidden 信号+灰禁红框)③悬停已开格(路径预览点迹+移动光标)④右键插旗(flag_place
|
||||
@@ -129,7 +129,7 @@ func _ready() -> void:
|
||||
_pre_fail("先导移动未到达(actions=%s hero=%s→%s)" % [str(_actions), hero0, ms.hero_pos()])
|
||||
return
|
||||
# ---- 目标格实证选取(不写死坐标;两枚相邻可挖格 + 禁入格 + 已开格)----
|
||||
# 并流批(ADR-0007 裁丙 2026-09-27)后首战板面种子随全局序漂移——_diggable(主角 8 邻未开域)
|
||||
# 并流批(2026-09-27 统一流裁决)后首战板面种子随全局序漂移——_diggable(主角 8 邻未开域)
|
||||
# 不足两枚时,沿已开区真点击移位到「≥2 未开邻」的前沿格再选;移位失败即收手交由选取失败分支报状态
|
||||
for _expand in range(16):
|
||||
if bv.diggable_probe().size() >= 2:
|
||||
|
||||
@@ -13,7 +13,7 @@ extends Node
|
||||
|
||||
const ProbeUiUtil := preload("res://smoke/probe_ui_util.gd") # T6 收口:隔离样板单点
|
||||
|
||||
const SIM_GUARD_FRAMES := 1800 # ⑤ N=10 headless 模拟防挂死帧预算上限(ADR-0004:探针内停滞检测第一道——坏态不等满预算才报,超时即断言失败)
|
||||
const SIM_GUARD_FRAMES := 1800 # ⑤ N=10 headless 模拟防挂死帧预算上限(探针内停滞检测第一道——坏态不等满预算才报,超时即断言失败)
|
||||
|
||||
# 只读巡检信号名清单(17卡③「白名单外零连接」形制沿用——玩家交互可携带写意图的通道全集
|
||||
# +本层外发 closed;引擎内部布局生命线信号不计)
|
||||
|
||||
Reference in new issue
Block a user