# 《最后一座信号站》完整游戏与 UI 设计规格审查

> 交付物：`docs/design-v1.1/design-spec.html`
>
> 次级参考：`docs/design-v1.1/index.html`（Interactive prototype）
>
> 基线 revision：`fac05689cb90f68732e91c7bac9b18c59c565db5`
>
> 证据边界：本报告只审查 HTML 设计规格，不证明 Godot runtime、真人理解/乐趣、人耳、实体设备或发布。

## 1. 结论

新的 `design-spec.html` 是面向 Owner 与后续实现团队的主设计交付。它不是另一个可点击 App shell，也不把 Phase 5 图片当游戏截图。现有 `index.html` 与 Phase 7 证据原样保留，并在新设计书中明确降级为次级 Interactive prototype。

规格现已同时包含：执行合同、完整信息架构、全页面/弹框画板图册、玩法输入结果合同、当前/提案经济、五类节奏、承重策略、六章与 54 个信号单元、表现与实现验收。

## 2. 覆盖结果

| 项目 | 分母 | 本页可见 | 结果 |
| --- | ---: | ---: | --- |
| 页面家族 `P00-P20` | 21 | 21 | PASS |
| 站区 `Z01-Z04` | 4 | 4 | PASS |
| Device List `A01` | 1 | 1 | PASS |
| 唯一弹框 ID `M01-M11` | 11 | 11 | PASS |
| 弹框/重要状态画板 | 32 | 32 | PASS |
| 当前 canonical 信号 | 33 | 33 | PASS |
| Chapter IV candidate overlay | 8 | 8 | PASS，未冒充 canonical |
| Proposed release-fill | 13 | 13 | PASS，明确 not authored/runtime |
| 章节单元 | 6 | 6 | PASS |
| 数值表 | 8 | 8 | PASS |
| 承重策略选择 | 5 | 5 | PASS |

弹框图册显式覆盖 unlocked/active、unaffordable、locked、complete、claimed、failure、recovery 与 confirmation。页面库存的 loading、empty、error、locked、completed 变体均在页面规格表中定义；每个页面画板展示一个承重代表状态。

## 3. 权威与提案分层

- `CURRENT CANONICAL`：当前 33/54 正式信号、Campaign snapshot v4、Station snapshot v2、RAW/Verified/Insight/Fragments、两条 route、两项序章升级和现有 save/offline 合同。
- `CURRENT CANDIDATE OVERLAY`：Chapter IV 新增 8 条，只能构成 41/54 的候选入口，不计入 canonical。
- `PROPOSED DESIGN TARGET`：补齐序章 5 条与终章 8 条、六个设施家族 × 五里程碑、12 固定模块的完整发行设计。它们没有被写成当前 runtime 证据。
- 原型 fixture 数值如 18 RAW、14 Parts、12 backlog 不进入权威表。
- 当前分析成本是所选检验成本之和加 `phase_debt × 6`；内容 JSON 的 `raw_cost` 不冒充扣费公式。

## 4. 浏览器验证

### Attempt 1：FAIL（保留）

路径：`docs/design-v1.1/design-spec-evidence/v1/`

57 个画板的底部动作抽屉因 15% + 63% + 22% 与边框/内边距叠加，越出画板底部约 6–18 CSS px。该结果没有被覆盖或改写为通过。

Attempts 1–3 的二进制截图保留在本机作为 append-only 调试历史，但不进入发布 manifest；Git 只收当前最终 v4 证据，避免提交约 17MB 已被取代的截图。失败与中间结果仍由本报告和 evidence ledger 永久记录。

### Attempt 2：PASS（修复后，已被最终复跑取代）

路径：`docs/design-v1.1/design-spec-evidence/v2/`

修复：`mobile-artboard` 改为固定三行 CSS Grid；HUD、世界区与动作抽屉使用 `min-height: 0`，不再累加百分比高度。

Playwright + system Google Chrome，桌面审查 `1600x1000`：

- console/page/request errors：0
- broken images：0
- broken TOC anchors：0
- document horizontal overflow：0
- 26 page artboards / 31 modal artboards（claimed 变体加入前）/ 54 content rows / 6 chapter rows 均在 DOM
- `780x360`：57 个画板，核心区域越界 0，优先标签裁切 0
- `844x390`：57 个画板，核心区域越界 0，优先标签裁切 0
- `932x430`：57 个画板，核心区域越界 0，优先标签裁切 0

加入 `M07 Offline result claimed` 后，本结果只保留为中间证据，不用于最终交付结论。

### Attempt 3：PASS（加入生产/通用状态说明前）

路径：`docs/design-v1.1/design-spec-evidence/v3/`

最终 DOM 与规格计数：26 个页面画板、11 个 modal ID 的 32 个状态画板、54 个信号单元、6 个章节单元、8 张数值表、5 个承重选择。

- console/page/request errors：0
- broken images / TOC anchors：0 / 0
- document horizontal overflow：0
- `780x360`：58 个画板，核心区域越界 0，优先标签裁切 0
- `844x390`：58 个画板，核心区域越界 0，优先标签裁切 0
- `932x430`：58 个画板，核心区域越界 0，优先标签裁切 0
- Current/Candidate/Proposed/All 筛选结果分别为 `21+26`、`0+2`、`5+4`、`26+32`（page + modal artboards）

### Attempt 4：PASS（最终设计源）

路径：`docs/design-v1.1/design-spec-evidence/v4/`

在补入“当前生产状态”“所有页面共同 loading/empty/error/locked/completed 合同”和资产/声音来源状态后，从当前最终设计源完整复跑。结果与 Attempt 3 的计数、三尺寸比例、筛选和零错误边界一致：每个尺寸 58 个画板，核心越界 0、优先标签裁切 0；console/page/request、图片、目录和页面横向溢出均为 0。

## 5. 视觉与实现审查

- 画板首先显示站点/设备世界，资源、目标、成本、速率、容量与停止原因服务于世界，不是概念图库或 SaaS 卡片墙。
- Phase 5 图片仅作为可替换场景层；文字、数值、控制、图标、弹框和状态全部由 HTML/CSS/JS 绘制。
- 站区画板补上现有原型库存漏掉的 `Z01-Z04` 和 `A01`；`M11` 补上原型只有内部 `DETAIL` 名称而没有正式规格 ID 的档案详情。
- Coverage/Compute 的适用状态和机会成本在数值、策略与 P08 画板三处一致。
- 开场静默；Filter 修复后才允许 80 BPM、4/4 的稀疏自适应层。常驻 hum 明确禁止。
- 真像素约束只用于非文字场景/UI chrome/VFX；文字保持可读抗锯齿。

## 6. 诚实缺口

- 本规格尚未实现到 Godot，不能叫 runtime-verified。
- 现有 Interactive prototype 的状态机缺口与较早截图证据不因本规格而消失；实现团队应按本规格修复，而不是把 prototype 绿色报告当产品通过。
- Proposed 13 个信号、设施里程碑和 6 个新增模块尚未 author、validate、registry、save/migrate 或 runtime 集成。
- 中文/英文、100/130%、reduced motion/flashes、mute、low-power 是实现验收矩阵；本设计书本身不是双语 runtime 证明。
- human reviewed、human listened、device verified、release accepted 全部 OPEN。

## 7. 设计门

最终浏览器复跑已经通过；SHA-256 manifest 固化后，合法结论仅为：

`Last Signal Station complete game + UI design specification ready for PMO review`

它不是“游戏完成”或“可发布”。
