2026-07-14 X1 后续开发计划 · v1.0
定位:承接
[长工]#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
在不重复重做已有系统的前提下,把角色经营、启动入口和联机能力从“代码存在”推进为“玩家可理解、可操作、可验证”的闭环,再按实际重复度扩一个内容域。
成功定义:
- 启动页主要入口不再只是 active 状态,至少排行榜、百科、公告、下载、登录和支持入口有真实 modal/空态。
- 玩家能从角色状态看出风险原因、俸禄压力和下一步动作,不只看到五维数字。
- 内容扩容以运行时可达性和重复度为依据,只扩一个域并有确定性回归。
- 既有 PeerJS 从
App.tsx业务混层收束为可验证 transport,并完成双浏览器 host/guest smoke。 - 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: any、data: any与payload?: any缺少消息 schema 边界。- 本地 R7/R8 状态机已测,但 transport、乱序/重复消息和真实 host/guest 尚无等价证据。
6.2 施工顺序
- 数据层定义 transport message schema/type 与静态 ICE 配置。
- 逻辑层封装 PeerJS transport、消息校验、幂等键、连接状态和错误映射。
App.tsx只保留编排与状态写回,不直接持有业务消息分支。- 双浏览器验证 host/join、同步、出价、timeout、断线重连和 host transfer。
- 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 lintPASS。npm run buildPASS。npm run test:w2943/43 及新增 lane 定向回归 PASS。- 开档、经营一周期、存档恢复 smoke PASS。
- L1、D1 各有桌面/移动浏览器证据。
- N1 有双浏览器 host/guest 证据;跨真实设备若未验证,必须明确写
pending。 - 目标文件
git diff --checkPASS;不要求清理无关 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 环境验证;当前证据仅覆盖同机双浏览器。