№ · 活跃计划 CH.07.14
主页 · 📅 活跃计划 · 2026-07-14 X1 后续开发计划 · v1.0

2026-07-14 X1 后续开发计划 · v1.0

📅 2026-07-14 · 📦 12.2 KB · 📅 活跃计划 · 📝 MD 文档 🆕 14d 🏷️ Buff🏷️ 联机🏷️ 计划🏷️ Owner🏷️ 回归🏷️ 终局

定位:承接 [长工]#W30-启动链-Q5-F1-X1流水线@v1.0 完成后的下一轮执行计划。 调度规则:无日期门、callback 等待门或 P1 审批等待门;工程依赖、文件锁、三层架构、真实浏览器证据和 dirty-tree 保护继续是硬门。 owner review:pending 只进入 checklist,不阻塞工程推进,也不得写成 approved落地状态:2026-07-14 工程计划已完成;R10 owner review、跨真实设备联机保留为非阻塞 checklist。


0. 当前快照

| 项目 | 当前真值 | 本计划处理 | | :--- | :--- | :--- | | 启动链 | 阶段 A 已完成;StrictMode 双初始化消费已做幂等收口,定向 4/4、lint、build、diff-check PASS | 等 Q5 真实 smoke 吸收,不重复施工 | | Q5 / F1 / X1 | 同一长工按 Q5 -> F1 -> X1 串行推进 | 本计划不抢 App.tsx、endgame 或 playthrough 锁 | | 角色深度 | 五维、俸禄、忠诚、工作效率及多处 UI 已存在 | 不从零实现,改做玩家决策闭环验收 | | 联机 | PeerJS host/join/send 已直接接在 App.tsx;R7/R8 状态机与回归已存在 | 不再写“实现 WebRTC”,改做 transport 收束与双浏览器验证 | | 启动页 v1.3 | 8 项入口需求已成文;landing 三层目录已存在,真实 modal/data 尚未接入 | 作为 X1 后第一条独立玩家可见 lane | | 内容池 | 旧评估中的数量和阶段已漂移;当前已有更多事件、失败链、成就和 Buff 资产 | 先量化可达性与重复度,再只扩一个最高价值域 |


1. 单一 Goal

在不重复重做已有系统的前提下,把角色经营、启动入口和联机能力从“代码存在”推进为“玩家可理解、可操作、可验证”的闭环,再按实际重复度扩一个内容域。

成功定义:

  1. 启动页主要入口不再只是 active 状态,至少排行榜、百科、公告、下载、登录和支持入口有真实 modal/空态。
  2. 玩家能从角色状态看出风险原因、俸禄压力和下一步动作,不只看到五维数字。
  3. 内容扩容以运行时可达性和重复度为依据,只扩一个域并有确定性回归。
  4. 既有 PeerJS 从 App.tsx 业务混层收束为可验证 transport,并完成双浏览器 host/guest smoke。
  5. lint、build、现有回归、浏览器 smoke 与目标 diff-check 全部通过。

2. 执行顺序

当前长工:启动链 -> Q5 -> F1 -> X1
                         |
                         v
             +-----------+-----------+
             |                       |
             v                       v
       L1 启动页入口             D1 角色决策闭环
             |                       |
             +-----------+-----------+
                         |
                         v
                K1 内容缺口审计
                         |
                         v
              K1-1 单域内容扩容
                         |
                         v
              N1 transport 收束
                         |
                         v
              双浏览器/双设备验证
  • L1 与 D1 文件锁独立,可在当前流水线释放产品锁后并行。
  • K1 审计可以提前只读执行;实际扩容等 D1 展示/消费契约稳定后开始。
  • N1 会再次触碰 App.tsx,排在当前流水线和 L1 接线之后,避免覆盖。
  • R10 截图与 owner review 始终是并行 checklist,不进入上述阻塞链。

3. L1 · 启动页 v1.3 真实入口

3.1 默认决策

| 未决项 | 本轮默认值 | 理由 | | :--- | :--- | :--- | | 排行榜数据源 | 本机跨周目榜,读取现有 playthrough slot/vault 摘要 | 不引入后端,不污染存档 schema | | 百科内容 | src/data/landing/** typed static entries | 符合数据层只放类型/常量,构建期可验证 | | 新闻公告 | typed static news entries,版本字段显式维护 | 不让 UI 解析 Markdown,不把 package 读取逻辑塞进组件 | | modal 视觉 | 沿用启动页 v1.2 墨金视觉 | 避免新建第二套启动页视觉语言 | | 二维码过期 | 数据层记录 expiresAt,逻辑层派生可用/临期/失效,UI 提供真实不可用态 | 不依赖 mtime,不伪造仍有效 |

3.2 施工切片

| lane | 内容 | 文件锁 | 验收 | | :--- | :--- | :--- | :--- | | L1-A | 排行榜、百科、公告 typed data + 查询/排序/空态逻辑 | src/data/landing/**src/utils/landing/** | 逻辑回归;无数据时有玩家文案 | | L1-B | 5 个真实 modal + 下载/登录 2 个占位 modal;Header/Footer 接线 | src/components/landing/** | 8 个入口可点;Esc/遮罩/关闭按钮完整;桌面/移动不溢出 | | L1-C | 微信支付与玩家群资源状态 | public/assets/external/** + landing 资源元数据 | 已核验源图只属于微信支付;不得复制成群二维码。群二维码缺失时显示“二维码更新中”真实空态 |

非目标:

  • 不接后端排行榜、账号或跨设备榜。
  • 不新增 i18n、法务文案、客户端下载安装或音乐管线。
  • 不把同一张微信支付码冒充玩家群二维码。

4. D1 · 角色深度玩家决策闭环

4.1 现状复用

  • 数据层已有 health / stamina / fatigue / mood / stress、loyalty、salaryDue、wageTier 和角色差异默认值。
  • 逻辑层已有 normalize、工作效率、日俸、周期结算、欠薪后果和日志。
  • UI 已在 StaffRegisterModal、总览台账和人手卡显示部分状态。

4.2 本轮只补真实缺口

| 内容 | 边界 | 验收 | | :--- | :--- | :--- | | 展示元数据收束 | 在 src/utils/staff/** 或现有 staff logic 中派生风险等级、原因、建议动作 | UI 不自行计算阈值 | | 角色详情补完 | StaffRegisterModal 显示五维、俸禄、忠诚、岗位效率与一个主要风险 | 玩家能在 10 秒内判断“谁需要休息/发薪/换岗” | | 决策入口 | 复用已有发薪、岗位、房间或恢复入口;缺入口时只补最小导航/命令 | 不新增数值系统,不静默扣钱 | | 响应式验收 | 桌面与移动真实浏览器 | 最长文案不溢出、不遮挡、不暴露内部 ID |

非目标:

  • 不重做五维模型、默认值或俸禄经济。
  • 不把 16+ 属性一次塞进 UI。
  • 不在组件内复制 staffDepth 计算。

5. K1 · 内容缺口审计与单域扩容

5.1 K1-0 只读审计

审计运行时实际消费面,而不是只数静态 id:

  • 事件:触发可达率、时辰/年期覆盖、近 30 个周期重复率。
  • 失败链:F1 已覆盖的 failure id、阶段可达性、解释文案重复度。
  • 成就:已定义、可解锁、无消费者三类数量。
  • Buff:已定义、可触发、只存在于 catalog/config 三类数量。
  • 剧情:Year1 主线与角色线的未接入节点。

输出一张排序表:玩家重复感 -> 运行时缺口 -> 最小扩容域 -> 回退面

5.2 K1-1 单域施工

  • 只选择审计排名第一的一个域。
  • 数据、逻辑、UI 分层;若现有 UI 已能消费,不为扩内容另造 UI。
  • 每个新增条目必须有唯一 ID、触发可达性、权重/互斥检查和玩家文案检查。
  • 不以“数量翻倍”作为验收;以目标周期内重复度下降和新内容可达为验收。

6. N1 · 既有 WebRTC transport 收束

6.1 当前问题

  • PeerJS host/join/send、STUN 配置、消息处理和玩家资源扣减集中在 App.tsx
  • connection: anydata: anypayload?: any 缺少消息 schema 边界。
  • 本地 R7/R8 状态机已测,但 transport、乱序/重复消息和真实 host/guest 尚无等价证据。

6.2 施工顺序

  1. 数据层定义 transport message schema/type 与静态 ICE 配置。
  2. 逻辑层封装 PeerJS transport、消息校验、幂等键、连接状态和错误映射。
  3. App.tsx 只保留编排与状态写回,不直接持有业务消息分支。
  4. 双浏览器验证 host/join、同步、出价、timeout、断线重连和 host transfer。
  5. transport 失败时可关闭并回退到本地单机状态机,不影响经营存档。

非目标:

  • 不从零重写 WebRTC,不同时做聊天/弹幕/表情包。
  • 不承诺无 TURN 的所有 NAT 环境可连接。
  • 不把跨设备存档同步混入实时房间 transport。

7. 文件锁矩阵

| 锁 | 持有 lane | 可并行 | 接力规则 | | :--- | :--- | :--- | :--- | | src/App.tsx + endgame/playthrough | 当前 A-D 长工 | 本计划只读 | X1 完成并释放后再接 L1/N1 | | landing data/utils/components/assets | L1 | D1、K1-0 | L1 浏览器验收后释放 | | staff data/utils/components | D1 | L1、K1-0 | D1 响应式验收后释放 | | 单个内容域 | K1-1 | L1、D1 | K1-0 选定域后才登记,不预占全部内容目录 | | multiplayer transport + App.tsx 联机邻域 | N1 | K1-1 | 当前流水线和 L1 释放 App.tsx 后接入 | | R10 browser/checklist | R10 follow-up | 所有代码 lane | 只读页面,不持产品写锁 |


8. 统一工程验收

  • npm run lint PASS。
  • npm run build PASS。
  • npm run test:w29 43/43 及新增 lane 定向回归 PASS。
  • 开档、经营一周期、存档恢复 smoke PASS。
  • L1、D1 各有桌面/移动浏览器证据。
  • N1 有双浏览器 host/guest 证据;跨真实设备若未验证,必须明确写 pending
  • 目标文件 git diff --check PASS;不要求清理无关 dirty-tree 历史尾随空格。
  • R10 owner review 可保持 pending,但不能从 checklist 或 residual risk 中消失。

9. 派工接力

| 顺位 | 动作 | 进入条件 | | :---: | :--- | :--- | | 1 | 吸收当前长工 Q5/F1/X1 回执 | 每段真实证据成立;失败停在原段 | | 2 | 并行派 L1 与 D1 | 当前长工释放产品锁;两 lane 文件锁互斥 | | 3 | 执行 K1-0 审计 | 可与 L1/D1 只读并行 | | 4 | 派 K1-1 单域扩容 | 审计给出唯一最高价值域,D1 消费面稳定 | | 5 | 派 N1 transport 收束 | App.tsx 锁释放,L1/D1/K1 无交叉写 | | 6 | 统一浏览器与工程收口 | 各 lane 回执和实际文件/测试一致 |

本计划不预创建 task 卡。实际派工时按本表每次只开一条明确文件锁的 lane。


10. 2026-07-14 落地记录

| lane | 状态 | 实际结果 | | :--- | :--- | :--- | | 启动链 / Q5 | 完成 | StrictMode 启动消费幂等;真实启动、读档与经营入口可达 | | F1 | 完成 | 第 360 日四维 AND 失败链接入;终局优先级与一次性落账有回归 | | X1 | 完成 | 胜利结算、跨周目账号落账和 replay guard 闭环 | | L1 | 完成 | 启动页 8 项入口接入真实 modal/空态;本机榜、公告、百科与外部资源状态有回归 | | D1 | 完成 | 角色五维、俸禄、忠诚、岗位效率和主要风险形成玩家决策展示 | | K1 | 完成 | 既有 16 项 Buff 运行时消费闭环;未新增伪 Buff 或存档字段 | | N1 | 完成 | typed transport、PeerJS adapter、权威房间快照、双浏览器竞价/重连/host transfer 闭环 |

10.1 N1 双浏览器证据

  • http://127.0.0.1:3106/http://localhost:3106/ 使用独立存储进入真实 PeerLobby
  • 联机入口移除旧声望门槛;第 1 日存档可直接进入,其他玩法门槛未改。
  • host 创建完整账房号,guest 加盟后双方显示 connected;guest CHAT 在 host 日志中单次落入。
  • host 以 100 文起拍,guest 以 105 文加价;双方同步进入反狙击、延长 1 次,并自然结算为同一结果。
  • guest 断线后 host 保留原 Peer ID 并显示 31 秒重连窗;窗口内重新加盟后双方席位为“已恢复”,105 文快照一致。
  • host 断线超过时间窗后,guest 自动接掌大掌柜席位;旧 host 标为已离线,105 文结果保留。
  • transport 关闭后可返回经营总览台账;保留 host 页签与独立 guest 最终加载的 console error 均为 0。

10.2 工程证据

  • npm run lint:PASS。
  • npm run build:PASS;保留既有 unresolved slice asset 与大 chunk warning。
  • npm run test:w29:43/43 PASS。
  • L1/D1/K1/F1/X1/Auction/存档等补充回归:50/50 PASS。
  • N1 tracked/new 目标文件 whitespace check:clean。

10.3 非阻塞 checklist

  • [ ] R10 浏览器 owner review / 截图验收。
  • [ ] X1 第 360 日胜利页 owner review。
  • [ ] N1 跨真实设备与复杂 NAT 环境验证;当前证据仅覆盖同机双浏览器。