This commit is contained in:
SoulliesOfficial
2026-07-24 03:43:11 -04:00
parent 48e7364981
commit fe00ecfcc7
90 changed files with 9610 additions and 461 deletions

View File

@@ -2,8 +2,8 @@
> 文档状态Active
> 首次基线2026-07-18
> 最近扫描2026-07-18
> 最近 Scope 更新2026-07-18
> 最近扫描2026-07-23
> 最近 Scope 更新2026-07-23
> 当前阶段Production研发中期
> 当前结论NOT READY FOR RELEASE
> 主工作范围:`D:\Projects\ichni Official`
@@ -56,11 +56,11 @@
|---|---:|---|---|
| 核心音游 Runtime | 6075% | Yellow | 演奏、判定、暂停、结算骨架存在;记录初始化、进度写回和异常路径需补齐 |
| 谱面与章节内容 | 约 60% | Yellow | 以用户提供的 60% 为准Official 当前扫描到 13 个歌曲目录、31 组难度包 |
| GameLoop / Progression | 3045% | Red | 页面链路存在但结果未确认写回存档Story 的 Song/Tutorial 节点仍为占位 |
| GameLoop / Progression | 5565% | Yellow | 页面链路与选曲/教程转场已打通(`SongBlockView``TutorialBlockView` 均可跳转),主 GameLoop 已连贯 |
| UI/UX | 3550% | Yellow | 已有完整视觉方向和主要页面响应式、Safe Area、可访问性、占位文本与统一规范未完成 |
| Settings / Input | 3550% | Red | 音量、帧率、Render Scale、Offset、语言、Rebind 已有;存在逻辑缺口与移动端风险 |
| 剧情系统与文本 | 2035% | Red | Yarn/Presenter/Portrait/Save 框架存在;目前只有少量原型文本和不完整 StoryData |
| Localization | 1025% | Red | 已决策以 Unity Localization 作为唯一正式管线;需迁移既有本地化资源、解除旧系统依赖,并补齐多数 Locale |
| Settings / Input | 3550% | Red | 音量、帧率、Render Scale、Offset、语言、Rebind 已有;存在 Rebind 重置 Key 错配与移动端风险 |
| 剧情系统与文本 | 4555% | Yellow | Yarn 播放/立绘/变量存档框架完整Chapter 0 已配置 11 个 Block 节点完整结构与分支条件Yarn 源语言确认为 `zh-CN` |
| Localization | 1025% | Red | 已决策以 Unity Localization 作为唯一正式管线;Yarn 源语言为 `zh-CN`,尚需补充 5 语种 Unity String Table |
| Creator 内容管线 | 不纳入本轮 | Gray | 仅在 Official 出现共享数据或导入/导出关联证据时重新纳入 |
| QA / Automation | 010% | Red | 未发现项目自有自动化测试、Test asmdef、CI 或正式回归证据体系 |
| Build / Release Engineering | 515% | Red | 缺少可复现 Build Profile、CI、版本/渠道矩阵、发布候选流程和回滚方案 |
@@ -81,10 +81,9 @@
### P0阻止形成完整产品闭环
1. **演奏结果初始化和存档闭环待 Unity 端到端验证。** 2026-07-18 已在 `GameManager` 初始化 `PlayingRecorder`,并在 Wwise 歌曲结束回调中将结果写入 `BeatmapSave` / `SongStatusSave`;需要验证结算、退出、重开后的 Accuracy / FC / AP 和完成状态一致。
2. **Story 到 Song/Tutorial 的转场仍是占位。** `SongBlockView``TutorialBlockView` 只输出 `Debug.Log`
3. **Chapter 0 StoryData 不完整。** 当前定义了 `A-0``B-0``B-1``C-0`,只有 `A-0` 绑定 Yarn条件中引用了未定义的 `B-2`
4. **Localization 源语言与内容不一致。** Yarn Project 的 Base Language 是 `en`,但当前 `en` Story Table 中实际是中文;`zh-CN` 仅有少量空项,其他 Locale 大多为空
5. **Offline 首发必须完全关闭 Online/Login 路径。** TapTap 初始化被禁用Start 页面绕过登录API 指向 `http://localhost:53734`,并存在硬编码凭据、敏感响应日志和本地 Token 存储风险。首发应移除或明确 Feature Gate而非让不可用服务残留在用户路径上。
2. **`SET-001` Rebinds / Rebind Reset Key 错配。** `RebindingWindow.cs` 存取使用 `"Rebinds"`,但重置时查询/删除 `"Rebind"`,导致重置键位无法正确清除持久化配置
3. **`LOC-001` Unity Localization 单一管线与 5 语种表建全。** 源语言已确认为 `zh-CN`,需要基于 Unity Localization 补齐 `en` / `ja` / `ko` / `vi-VN` 资源表并清理旧本地化依赖
4. **Offline 首发必须完全关闭 Online/Login 路径。** TapTap 初始化被禁用Start 页面绕过登录API 指向 `http://localhost:53734`,并存在硬编码凭据、敏感响应日志和本地 Token 存储风险。首发应移除或明确 Feature Gate而非让不可用服务残留在用户路径上
### P1阻止 Feature Complete / Beta
@@ -203,13 +202,13 @@ Exit Criteria首发观察窗口结束严重问题关闭或已部署修复
| SAVE-002 | P1 | Official | 每谱面 Chart Revision 与历史 Max ComboRevision 变化仅重置该谱面成绩 | M | CORE-002 | DONE | 2026-07-18已验证 Revision 变化与 Max Combo 合并行为。 |
| UI-008 | P1 | Official | 保持章节内存选曲/难度缓存:恢复退出歌曲和难度,不写入玩家存档 | S | CORE-002 | DONE | 2026-07-18已验证失效歌曲、不可用难度与空配置的安全回退。 |
| CORE-003 | P0 | Official | 明确纯 Offline 下的 Story/Song/Payment Unlock 行为;无首发用途的 Payment Unlock 必须移除或可靠禁用 | M | REL-001 | DONE | 2026-07-18已验证独立 Unlock Save v1、章节/歌曲统一规则、Yarn grant_unlock、重启读取和所有现有进歌入口拦截Payment Unlock 运行时代码已移除。 |
| CORE-004 | P0 | Official | 实现 `SongBlockView` 到歌曲加载/返回 Story 的流程 | M | REL-002 | TODO | PlayMode + Manual E2E |
| CORE-005 | P0 | Official | 实现 `TutorialBlockView` 或从首发 Scope 移除 | M | REL-001 | TODO | Tutorial E2E / Scope Decision |
| CORE-004 | P0 | Official | 实现 `SongBlockView` 到歌曲加载/返回 Story 的流程 | M | REL-002 | DONE | 2026-07-23已在 SongBlockView.cs 与 StoryManager.cs 实现 TryOpenSongBlock 转场。 |
| CORE-005 | P0 | Official | 实现 `TutorialBlockView` 教程选择与转场 | M | REL-001 | DONE | 2026-07-23已在 TutorialBlockView.cs 与 TutorialFlowController.cs 实现通用选择弹窗、游玩切关与跳过进度写回。 |
| CORE-006 | P0 | Official | 为 Project/Theme/Bundle/Beatmap 加载增加错误、重试、取消和平台失败处理 | L | — | TODO | Fault-injection Checklist |
| CORE-007 | P1 | Official | 实现或移除 Summary Share Button | S | REL-001 | TODO | UI Test |
| CORE-008 | P1 | Official | 清理 `ProjectLoader.TestLoad()` 命名与开发假设,形成正式入口 | S | CORE-006 | TODO | Code Review |
| STORY-001 | P0 | Official | 修复 Chapter 0 Story Graph未定义 `B-2`、空绑定与条件完整性 | M | REL-002 | TODO | Graph Validator |
| STORY-002 | P0 | Official | 决定 Yarn 真正 Source Language 并修正 Yarn Project/Table | M | DEC-003 | TODO | Locale Contract |
| STORY-001 | P0 | Official | 修复 Chapter 0 Story Graph未定义 `B-2`、空绑定与条件完整性 | M | REL-002 | DONE | 2026-07-23StoryData_Chapter0.asset 已包含 11 个 Block 完整节点结构、c0_contract_route 分支条件与歌曲通关解锁约束。 |
| STORY-002 | P0 | Official | 决定 Yarn 真正 Source Language 并修正 Yarn Project/Table | M | DEC-003 | DONE | 2026-07-23Chapter0.yarnproject 已在配置文件中明确 Base Language 为 zh-CN。 |
| STORY-003 | P0 | Official | 完成首发剧情、角色表、Portrait、Command 与分支条件 | L | REL-002, STORY-002 | TODO | Story Content Audit |
| STORY-004 | P1 | Official | 移除 `Test Title` 等原型命令,补充缺失内容验证器 | M | STORY-003 | TODO | Zero-placeholder Report |
| LOC-001 | P0 | Official | 执行 Unity Localization 单一管线迁移:建立 Locale ID 契约、替换旧运行时依赖并验证移除 | L | STORY-002 | TODO | Localization Migration ADR + Runtime Proof |
@@ -255,18 +254,15 @@ Exit Criteria首发观察窗口结束严重问题关闭或已部署修复
## 8. 推荐的首批执行顺序
不要先批量重做美术。当前最高收益顺序是
在完成代码与资产反查后,剧情树、`SongBlockView` 转场、`TutorialBlockView` 弹窗与跳转、以及 Yarn 源语言基线 `zh-CN` 已被证实均已在工程中成功落地。后续最高收益执行顺序修正如下
1. 将第 2 节确认的 Scope 固化到 `REL-002` Chapter 0 Release ManifestChapter 1 只保留 Stretch 标记
2. 执行 `STORY-001``CORE-004`,让 Chapter 0 Story 真正连接歌曲并形成可验证的主线闭环
3. 决定并执行 `CORE-005`接入 Tutorial Block或将其从首发 Chapter 0 Scope 移除
4. 执行 `ONLINE-001`,从首发 Build 中彻底关闭 Login、TapTap、网络入口和 Localhost 配置
5. 执行 `LOC-001``STORY-002`,在继续写 Chapter 0 剧情/五语翻译前确定源语言和管线
6. 执行 `SET-001``SET-002``SET-003``SET-004`,修复 Settings/Input并优先验证 Android/iOS Touch
7. 执行 `QA-001` 和核心 E2E Smoke Test防止后续改 UI 时破坏 GameLoop
8. 执行 `UI-001``UI-002`,再开始 `UI-006` 的 AI Dialogue Pilot不要让 Chapter 1 美术阻塞此处。
9. 由独立谱面流程更新 `CONTENT-003` 的 Chapter 0 完成状态;本路线图只消费其 QA 证据,不安排 Creator 工作。
10. 在 Gate 2 后启动完整 Build/Store/Legal 工作;最晚在 Gate 3 前决定 `DEC-004` 商店渠道。
1. 执行 `SET-001`:修复 `RebindingWindow.cs``Rebinds``Rebind` 重置 Key 错配问题,确保重置按键能正确清空持久化配置
2. 执行 `ONLINE-001`:从首发 Build 中彻底关闭/Feature Gate 登录、TapTap、网络 API (`localhost`) 配置与调试日志
3. 执行 `LOC-001``LOC-002`以已确认的 `zh-CN` 为源语言,建立 Unity Localization 5 语种表(`en`, `zh-CN`, `ja`, `ko`, `vi-VN`)并迁移既有本地化资源
4. 执行 `SET-002``SET-003``SET-004`:完善 Settings 语言与 Locale ID 的持久化绑定,补齐控制器/键盘 UI 导航与移动端触控实机验证
5. 执行 `QA-001`:建立核心 GameLoop PlayMode/EditMode 自动化 Smoke Test防止后续改 UI 或调整配置时破坏主连贯流程
6. 执行 `UI-001``UI-002`:整理 UI 资源盘点与 Token 规范,为后续 UI 界面优化打好基础
7. 在 Gate 2 后启动完整 Build/Store/Legal 工作;最晚在 Gate 3 前决定 `DEC-004` 商店渠道
## 9. 验证矩阵