@@ -160,13 +160,13 @@ LLM、OSS、SMS、微信等外部副作用可以独立准备, 不等待 `WP-SC`
| WP-A Auth | 已完成; module-auth 已完成 domain/commands/application/errors/events 分层归位,账号、会话、验证码、微信 state/绑定规则由 module-auth 承接, api-server/platform-auth/spacetime-module 边界已核查 | 未认领 | G1 后 | `module-auth` 、`spacetime-module/src/auth*` 、`api-server/src/auth*` 、`platform-auth` | 其他玩法域 | 账号、会话、验证码、微信绑定领域化;真实短信/微信在 platform | `cargo test -p module-auth` , auth API 测试 |
| WP-AS Assets | 进行中;资产对象类型归位、资产领域测试和 SpacetimeDB row mapper 切片已完成,资产 API/OSS/facade 尚未全链收口 | 未认领 | G1 后 | `module-assets` 、`spacetime-module/src/asset_metadata/*` 、资产 API、OSS adapter | 玩法业务规则 | 资产对象与绑定规则纯化; OSS head/upload 移出领域核心 | `cargo test -p module-assets` ,资产 facade 测试 |
| WP-AI AI Task | 已完成; 领域层、SpacetimeDB AI adapter/event、spacetime-client facade、BFF 路由和定向测试已闭环,`module-ai` 内部子模块拆分已完成,真实 LLM/SSE/前端消费归后续 WP-PF/WP-API/WP-FE 承接 | 未认领 | G1 后 | `module-ai` 、`spacetime-module/src/ai/*` 、AI task API | LLM prompt 业务规则 | AI task/stage/chunk/result 状态机领域化 | `cargo test -p module-ai` , AI task reducer/procedure smoke |
| WP-CW Custom World | 进行中;基础领域枚举归位切片 已关闭, profile/agent/draft/gallery/publish gate 全链仍待收口 | 未认领 | G1 后 | `module-custom-world` 、`spacetime-module/src/custom_world/*` 、`api-server` custom world 路由、前端创作 client | Big Fish/Puzzle | profile、agent session、draft card、gallery、publish gate 领域化; LLM 留在 API/platform | `cargo test -p module-custom-world` , custom world 定向测试 |
| WP-BF Big Fish | 已完成;运行态真相源已迁入 `module-big-fish` ,并完成 SpacetimeDB run 表、spacetime-client facade、API 路由、前端 client 接入和本地运行态删除 | 未认领 | G1 后 | `module-big-fish` 、`spacetime-module/src/big_fish/*` 、Big Fish API、Big Fish 前端 client | Puzzle/RPG | 会话、草稿、素材槽、运行态纯规则;草稿校验下沉 | `cargo test -p module-big-fish` , Big Fish API 测试 |
| WP-CW Custom World | 进行中;基础领域枚举、DDD 物理拆分和 Agent action 最小兼容占位 已关闭, profile/agent/draft/gallery/publish gate 全链仍待继续接 API/前端和资产对象链 | 未认领 | G1 后 | `module-custom-world` 、`spacetime-module/src/custom_world/*` 、`api-server` custom world 路由、前端创作 client | Big Fish/Puzzle | profile、agent session、draft card、gallery、publish gate 领域化; LLM 留在 API/platform | `cargo test -p module-custom-world` , custom world 定向测试 |
| WP-BF Big Fish | 已完成;运行态真相源和 DDD 物理拆分均已收口 ,并完成 SpacetimeDB run 表、spacetime-client facade、API 路由、前端 client 接入和本地运行态删除 | 未认领 | G1 后 | `module-big-fish` 、`spacetime-module/src/big_fish/*` 、Big Fish API、Big Fish 前端 client | Puzzle/RPG | 会话、草稿、素材槽、运行态纯规则;草稿校验下沉 | `cargo test -p module-big-fish` , Big Fish API 测试 |
| WP-PZ Puzzle | 进行中; 领域类型与规则拆分切片已关闭, Puzzle API/前端消费仍未全链完成 | 未认领 | G1 后 | `module-puzzle` 、`spacetime-module/src/puzzle*` 、Puzzle API、Puzzle 前端 client | Big Fish/RPG | Agent session、work profile、runtime run、排行榜规则领域化 | `cargo test -p module-puzzle` , Puzzle 定向测试 |
| WP-RT Runtime/Profile/Save | 已完成; runtime settings、snapshot/profile/save archive 类型、错误层、命令构造、应用记录投影、Adapter/API/Frontend profile 路径和剩余纯规则均已收口 | 未认领 | G1 后 | `module-runtime` 、`spacetime-module/src/runtime/*` 、runtime/save/profile API | RPG story 规则 | runtime setting、snapshot、wallet、played world、save archive 领域化 | `cargo test -p module-runtime` , runtime API 测试 |
| WP-RPG Gameplay 域 | 进行中; combat 基础领域常量与枚举归位、`module-story` DDD 物理拆分和 README 漂移收口切片已关闭, inventory/npc/progression/quest/runtime-item 与跨域事件仍待 收口 | 未认领 | G1 后 | `module-combat` 、`module-inventory` 、`module-npc` 、`module-progression` 、`module-quest` 、`module-runtime-item` 、`module-story` | 创作域 | 战斗、背包、NPC、成长、任务、宝箱、story session 纯规则与跨域事件 | 各 module 测试;跨域应用结果测试 |
| WP-RS Runtime Story 去兼容层 | 进行中; compat 残留审计切片已关闭, module-runtime-story 运行代码注释口径已清理 ,旧前端写 client 与旧 contract 残留已冻结到后续 WP-FE-S/WP-DEL | 未认领 | G1 后 | `module-runtime-story` 、`api-server/src/runtime_story/*` 、`src/hooks/rpg-runtime-story/*` | 非 RPG 创作域 | 先将历史 `module-runtime-story-compat` 迁为新主链 crate, 再删除 HTTP compat 层、接 session scoped 新接口、前端匹配新接口 | `cargo test -p module-runtime-story` , runtime story/API/前端定向测试 |
| WP-ST SpacetimeDB Adapter | 进行中;已完成 AI task event、Big Fish readiness event、Asset row mapper、Puzzle publish event、Gameplay/Custom World 根入口瘦身和 Auth adapter 目录化切片,其他上下文和绑定生成仍待推进 | 未认领 | 领域任务输出稳定后 | `spacetime-module/src/**` 、`migration.rs` 、表目录 | `api-server` 业务逻辑 | table/reducer/procedure/mapper/queries 按上下文接入领域函数;必要 event/projection table; `lib.rs/migration.rs/表目录` 单 owner 合流;已完成 AI task event、Big Fish readiness event、Asset row mapper、Puzzle publish event、Gameplay 根入口瘦身、Custom World 根入口瘦身、Auth adapter 目录化 | `cargo check -p spacetime-module` ,需要时 `spacetime build/generate` |
| WP-RPG Gameplay 域 | 进行中; combat/inventory/npc/progression/quest/runtime-item/story 的 DDD 物理拆分漂移已关闭,完整 story action 写侧与跨域组合结算仍待 `WP-RS/WP-ST/WP-SC/WP-API/WP-FE` 主链 收口 | 未认领 | G1 后 | `module-combat` 、`module-inventory` 、`module-npc` 、`module-progression` 、`module-quest` 、`module-runtime-item` 、`module-story` | 创作域 | 战斗、背包、NPC、成长、任务、宝箱、story session 纯规则与跨域事件 | 各 module 测试;跨域应用结果测试 |
| WP-RS Runtime Story 去兼容层 | 进行中; compat 残留审计和 ` module-runtime-story` 顶层 DDD 物理拆分漂移已关闭 ,旧前端写 client 与旧 contract 残留已冻结到后续 WP-FE-S/WP-DEL | 未认领 | G1 后 | `module-runtime-story` 、`api-server/src/runtime_story/*` 、`src/hooks/rpg-runtime-story/*` | 非 RPG 创作域 | 先将历史 `module-runtime-story-compat` 迁为新主链 crate, 再删除 HTTP compat 层、接 session scoped 新接口、前端匹配新接口 | `cargo test -p module-runtime-story` , runtime story/API/前端定向测试 |
| WP-ST SpacetimeDB Adapter | 进行中;已完成 AI task event、Big Fish readiness event、Asset row mapper、Puzzle publish event、Gameplay/Custom World 根入口瘦身、Custom World Agent action 确定性编排 和 Auth adapter 目录化切片,其他上下文和绑定生成仍待推进 | 未认领 | 领域任务输出稳定后 | `spacetime-module/src/**` 、`migration.rs` 、表目录 | `api-server` 业务逻辑 | table/reducer/procedure/mapper/queries 按上下文接入领域函数;必要 event/projection table; `lib.rs/migration.rs/表目录` 单 owner 合流;已完成 AI task event、Big Fish readiness event、Asset row mapper、Puzzle publish event、Gameplay 根入口瘦身、Custom World 根入口瘦身、Auth adapter 目录化 | `cargo check -p spacetime-module` ,需要时 `spacetime build/generate` |
| WP-SC Spacetime Client | 进行中; story runtime projection inventory source 接线切片已关闭,读取投影已纳入稳定 runtime inventory facade; 后续仅随 WP-ST 新 facade 稳定后继续 typed facade/row mapper | 未认领 | 对应 WP-ST facade 稳定后 | `spacetime-client/src/**` 、绑定 mapper | 领域规则、未稳定 facade 的预判接线 | typed facade、错误映射、row snapshot mapper | `cargo check -p spacetime-client` |
| WP-PF platform side effects | 已完成; LLM/OSS/SMS/微信平台副作用错误分类与 API 接线错误模型已统一,微信 OAuth provider 已下沉到 `platform-auth` | 未认领 | G1 后可独立准备;接入 API 前与 WP-API 对齐错误模型 | `platform-*` 、`api-server` platform 接线 | 领域状态机 | LLM、OSS、SMS、微信等副作用统一 adapter | platform crate 测试或 API smoke |
| WP-API api-server BFF | 进行中; story/game facade 当前阶段收口切片已关闭, runtime projection、story battle DTO 和 owner guard 已推进,更多 session scoped 写接口依赖 WP-ST/WP-SC | 未认领 | WP-SC facade 和 WP-PF 接口稳定后 | `api-server/src/**` ,其中 `app.rs` 单 owner | SpacetimeDB table 定义、领域主规则、绕过 spacetime-client 的直连实现 | 路由、鉴权、SSE、请求响应映射、平台编排收口 | `cargo test -p api-server` , `cargo check -p api-server` |
@@ -186,22 +186,23 @@ LLM、OSS、SMS、微信等外部副作用可以独立准备, 不等待 `WP-SC`
| 归属工作包 | 未完整收口项 | 当前证据 | 收口边界 | 依赖与优先级 |
| --- | --- | --- | --- | --- |
| `WP-RPG Gameplay 域` | 成长系统归属 RPG 域;`module-progression` 是 真实首版,不是空占位,但仍未覆盖 完整 RPG 成长闭环 | `server-rs/crates/module-progression/README.md` 已说明首版落地,同时列出 custom-world 章节蓝图、`repeatPenalty` 、超预算衰减、完整章节偏差审计表仍未迁移 ; `src/domain.rs` 、`commands.rs` 、`application.rs` 、`events.rs` 、`errors.rs` 仍命中 `过渡落位` | 保持在 `WP-RPG` 内推进,不拆成通用 Runtime 能力;补齐 章节蓝图输入、章节预算审计、quest/combat/npc 联动事件和应用结果测试 | P0; 依赖 `module-custom-world` 章节蓝图 Rust 化边界稳定,随后接 `WP-ST/WP-SC/WP-API` |
| `WP-RPG Gameplay 域` | 成长系统归属 RPG 域;`module-progression` 真实首版与 DDD 物理拆分已收口, 完整 RPG 成长闭环仍需继续接跨域链路 | `server-rs/crates/module-progression/README.md` 已说明 DDD 物理拆分完成 ; `src/domain.rs` 、`commands.rs` 、`application.rs` 、`events.rs` 、`errors.rs` 已承载真实类型、命令、应用规则、事件和错误;`cargo test -p module-progression` 通过 | 已关闭本项“分层文件仍是过渡壳”的漂移;继续 保持在 `WP-RPG` 内推进,不拆成通用 Runtime 能力; 章节蓝图输入、章节预算审计、quest/combat/npc 联动事件继续跟随跨域主链 | 已关闭拆分漂移;完整成长闭环仍是 P0, 依赖 `module-custom-world` 章节蓝图 Rust 化边界稳定,随后接 `WP-ST/WP-SC/WP-API` |
| `WP-RPG Gameplay 域` | `module-story` README 与 DDD 物理拆分漂移已关闭;后续只剩完整 story action 写侧与跨域事件继续排队 | `server-rs/crates/module-story/README.md` 已改为当前真实边界;`src/domain.rs` 、`commands.rs` 、`application.rs` 、`events.rs` 、`errors.rs` 已承载真实类型、命令、应用映射、事件和错误;`cargo test -p module-story` 通过 | 保持 `module-story` 作为 story session 纯领域薄层;不恢复旧 `/api/runtime/story/*` compat route; 完整动作结算继续跟随 `WP-RS/WP-ST/WP-SC/WP-API/WP-FE` | 已关闭本项漂移;剩余写侧依赖仍在 P0 主链 |
| `WP-RPG Gameplay 域` | `module-combat` 、`module-inventory` 、`module-npc` 、`module-quest` 、`module-runtime-item` 仍是首批领域化,跨域事件和完整应用用例未收口 | 上述 crate 的 `domain/commands/application/events/errors` 多数仍命中 `过渡落位` ; README 中仍有“最小主链”“刻意未做”“后续衔接”等范围说明 | 以 RPG 子域为单位补聚合、命令、事件和应用结果测试 ;跨域副作用只输出领域事件,不在单个 crate 内互相直连 | P0; 可按 combat、inventory、npc、quest、runtime-item 并行,但共享事件命名需先在 `WP-RPG` 冻结 |
| `WP-RS Runtime Story 去兼容层` | `module-runtime-story` 已从 compat 口径转新主链,但仍有 DDD 文件命中 `过渡落位` , 旧写接口未完整替代 | `module-runtime-story/src/domain.rs` 、`commands.rs` 、`events.rs` 、`errors.rs` 仍命中 `过渡落位` ;文档记录 旧前端写 client 与 `RuntimeStoryActionResponse` 等残留等待 `WP-FE-S/WP-DEL` | 补齐 session scoped 开局、动作结算、inventory action、NPC interaction、forge/battle/quest 写接口;前端只接新 `/api/story/*` 与新 contract | P0; 依赖 `WP-ST/WP-SC` facade, 完成后解锁 `WP-FE-S/WP-FE-H/WP-FE-C/WP-DEL` |
| `WP-CW Custom World` | Custom World agent 仍有多个动作接到最小兼容占位,未形成真实编排链 | `spacetime-module/src/custom_world/mod.rs` 中 `generate_characters` 、`generate_landmarks` 、`generate_role_assets` 、`sync_role_assets` 、`generate_scene_assets` 、`sync_scene_assets` 、`expand_long_tail` 仍调用 `execute_placeholder_custom_world_action` ,并返回“最小兼容占位”消息 | 将动作拆入 `module-custom-world` 领域命令和应用结果,再由 `WP-ST` 接 reducer/procedure; LLM、资产生成和 OSS 只通过 `WP-API/WP-PF/WP-AS` 编排 | P0; 依赖 `WP-AS` 资产对象链和 `WP-PF` LLM/OSS 能力 |
| `WP-CW Custom World` | `module-custom-world` 只完成首批类型契约和字段校验, profile、 agent session、 draft/gallery/publish gate 未全链收口 | README 写明“当前阶段明确不提前进入”;`src/domain.rs` 、`commands.rs` 、`application.rs` 、`events.rs` 、`errors.rs` 仍命中 `过渡落位` | 继续把 profile、agent session、草稿卡、画廊投影、发布门禁迁成纯领域规则; SpacetimeDB 表和 procedure 只在 `WP-ST` 落地 | P0; 可与 Custom World action 真实编排并行,但共享 domain enum 只能单 owner 合流 |
| `WP-PZ Puzzle` | Puzzle 已完成领域类型和规则拆分切片,但 API、前端消费和运行态全链仍未完成 | 第 4 节仍标记 `WP-PZ` 进行中;`module-puzzle/README.md` 写明当前只固定 contract 与最小规则;`domain.rs` 、`events.rs` 仍命中 `过渡落位` | 补齐 agent session、work profile、runtime run、排行榜、图片选择和结果页草稿的领域应用服务, 再接 `WP-ST/WP-SC/WP-API/WP-FE` | P1; 与 `WP-CW` 并行时避免共改创作 agent 通用文档 |
| `WP-AS Assets` | 资产对象类型、领域测试和 row mapper 已完成,资产 API、OSS adapter、facade 和 event table 尚未全链收口 | 第 4 节仍标记 `WP-AS ` 进行中;`module-assets /README.md` 写明尚未进入完整资产状态建模;`module-assets/src/events.rs` 仍命中 `过渡落位` | 将 asset object、binding、manifest、history、OSS head/upload 和确认状态统一成领域应用结果, SpacetimeDB 与 API 只做 adapter | P1; 依赖 `WP-PF` OSS 错误模型,反向支撑 ` WP-CW /WP-PZ /WP-BF` |
| `WP-RPG Gameplay 域` | `module-combat` 、`module-inventory` 、`module-npc` 、`module-quest` 、`module-runtime-item` 的 DDD 物理拆分漂移已关闭;完整跨域组合结算仍排队 | 上述 crate 的 `domain/commands/application/events/errors` 已承载真实类型、命令、应用规则、事件和错误; RPG 六个子域源码不再命中 `过渡落位` ; `cargo test -p module-combat -p module-inventory -p module-npc -p module-progression -p module-quest -p module-runtime-item` 通过 | 已关闭本项“分层文件仍是过渡壳”的漂移 ;跨域副作用继续 只输出领域事件,不在单个 crate 内互相直连;完整 story action 写侧与组合结算跟随后续主链 | 已关闭拆分漂移;完整跨域写侧仍是 P0, 依赖 `WP-RS/WP-ST/WP-SC/WP-API/WP-FE` |
| `WP-RS Runtime Story 去兼容层` | `module-runtime-story` 顶层 DDD 物理拆分漂移已关闭,但 旧写接口仍 未完整替代 | `module-runtime-story/src/domain.rs` 、`commands.rs` 、`application.rs` 、` events.rs` 、`errors.rs` 已承载顶层真实类型、命令 helper、应用 helper、事件和错误; `cargo test -p module-runtime-story` 通过; 旧前端写 client 与 `RuntimeStoryActionResponse` 等残留仍 等待 `WP-FE-S/WP-DEL` | 已关闭本项“DDD 文件仍是过渡壳”的漂移;继续 补齐 session scoped 开局、动作结算、inventory action、NPC interaction、forge/battle/quest 写接口;前端只接新 `/api/story/*` 与新 contract | 已关闭拆分漂移;旧写接口替换仍是 P0, 依赖 `WP-ST/WP-SC` facade, 完成后解锁 `WP-FE-S/WP-FE-H/WP-FE-C/WP-DEL` |
| `WP-CW Custom World` | Custom World agent 最小兼容占位已关闭,真实动作改为 SpacetimeDB 内确定性状态编排;完整外部副作用链仍待 `WP-AS/WP-PF/WP-API` | `spacetime-module/src/custom_world/mod.rs` 已移除 `execute_placeholder_custom_world_action` ; `generate_characters` 、`generate_landmarks` 、`generate_role_assets` 、`sync_role_assets` 、`generate_scene_assets` 、`sync_scene_assets` 、`expand_long_tail` 已分别写回 draft profile、draft card、asset coverage、publish gate 或 long-tail 状态;`cargo check -p spacetime-module` 通过 | 已关闭“最小兼容占位”漂移; LLM、图片生成、OSS、资产对象确认仍只通过 `WP-API/WP-PF/WP-AS` 编排,不放进 reducer/procedure | 已关闭 P0 占位项;外部副作用和资产对象全链仍随 `WP-AS/WP-PF/WP-API` 继续 |
| `WP-CW Custom World` | `module-custom-world` DDD 物理拆分已收口; profile/ agent/ draft/gallery/publish gate 的 API/前端全链仍待后续推进 | `module-custom-world/src/lib.rs` 已收口为模块声明、公开导出和测试;`domain/commands/application/events/errors` 已承载真实类型、命令、规则、事件和错误;`module-custom-world/README.md` 已更新当前边界;源码不再命中 `过渡落位` ; `cargo test -p module-custom-world` 通过 | 已关闭“分层文件仍是过渡壳”的漂移;继续保持 SpacetimeDB 表和 procedure 由 `WP-ST` 落地, API/前端只消费稳定 facade | 已关闭拆分漂移;完整创作全链仍是 P0/P1 主链,依赖 `WP-ST/WP-SC/WP-API/WP-FE` |
| `WP-BF Big Fish` | `module-big-fish` 已完成 DDD 物理拆分和迁移期口径清理 | `module-big-fish/src/lib.rs` 已收口为模块声明、公开导出和测试;`domain/commands/application/events/errors` 已承载创作域类型、命令、应用规则、事件和错误;新增 `module-big-fish/README.md` ;源码不再命中 `过渡落位` ; `cargo test -p module-big-fish` 通过 | 已关闭“文档完成但 lib.rs 仍承载大量规则”的漂移;不改 SpacetimeDB/API/前端 shape | 已关闭;后续只随全链验证和回归维护 |
| `WP-PZ Puzzle` | Puzzle API、前端消费和运行态全链仍未完成; DDD 注释漂移已清理 | 第 4 节仍标记 `WP-PZ ` 进行中;`module-puzzle /README.md` 写明当前只固定 contract 与最小规则;`domain.rs` 、`events.rs` 文件头已改为当前领域口径;源码不再命中 `过渡落位` ; `cargo test -p module-puzzle` 通过 | 补齐 agent session、work profile、runtime run、排行榜、图片选择和结果页草稿的领域应用服务, 再接 `WP-ST/ WP-S C/WP-API /WP-FE` | P1; 与 `WP-CW` 并行时避免共改创作 agent 通用文档 |
| `WP-AS Assets` | 资产对象类型、领域测试和 row mapper 已完成,资产 API、OSS adapter、facade 和 event table 尚未全链收口; DDD 注释漂移已清理 | 第 4 节仍标记 `WP-AS` 进行中;`module-assets/README.md` 写明尚未进入完整资产状态建模;`module-assets/src/events.rs` 文件头已改为当前领域口径;源码不再命中 `过渡落位` ; `cargo test -p module-assets` 通过 | 将 asset object、binding、manifest、history、OSS head/upload 和确认状态统一成领域应用结果, SpacetimeDB 与 API 只做 adapter | P1; 依赖 `WP-PF` OSS 错误模型,反向支撑 `WP-CW/WP-PZ/WP-BF` |
| `WP-API api-server BFF` | LLM 流式代理、微信登录、手机号登录、角色动画资产仍有首版禁用或占位链 | `api-server/src/llm.rs` 流式请求返回 `501` ; `wechat_auth.rs` 返回“微信登录暂未启用”;`phone_auth.rs` 、`password_management.rs` 返回“手机号登录暂未启用”;`character_animation_assets.rs` 仍写 Stage 1 序列帧和视频占位链 | API 层只做 BFF 编排、鉴权、SSE 和 DTO 映射;真实副作用落 `platform-llm/platform-auth/platform-oss` ,领域状态变化必须回写 SpacetimeDB facade | P1; 依赖 `WP-PF` 能力与 `WP-ST/WP-SC` 写入 facade |
| `WP-FE-S/WP-FE-H/WP-FE-C` | 前端读取侧已推进,完整开局和动作写侧仍等后端新接口;不能继续补旧 compat client | 文档记录 `beginRuntimeStorySession` 、`resolveRuntimeStoryAction` 暂未迁移;旧 `src/services/rpg-runtime/rpgRuntimeStoryClient.ts` 写侧和测试仍等待新接口 | `WP-FE-S` 先换 API client, `WP-FE-H` 再换 hooks, `WP-FE-C` 最后接组件;前端只做表现和临时 UI 状态,不重建规则 | P0; 强依赖 `WP-RS/WP-ST/WP-SC/WP-API` |
| `WP-ST SpacetimeDB Adapter` | 多个上下文已根入口瘦身,但剩余 table/reducer/procedure、migration、表目录和绑定生成仍未整体闭环 | 第 4 节仍标记 `WP-ST` 进行中; Custom World 真实动作、RPG 写接口、Puzzle/Assets 完整链都需要继续接 `spacetime-module` | 所有 SpacetimeDB schema 变更由 `WP-ST` 单 owner 合流,并同步 `migration.rs` 、表目录和生成绑定;禁止 API 直连生成绑定绕过 `spacetime-client` | P0; 是 `WP-SC/WP-API/WP-FE/DEL` 的主依赖 |
| `WP-SC Spacetime Client` | 已接 runtime projection inventory source, 但后续 typed facade、row mapper 和错误映射仍随 `WP-ST` 滚动补齐 | 第 4 节仍标记 `WP-SC` 进行中;文档记录“后续仅随 WP-ST 新 facade 稳定后继续 typed facade/row mapper” | 只在 reducer/procedure shape 稳定后补 typed facade; 不在 client crate 内发明领域规则或预判 row shape | P0; 跟随 `WP-ST` 分批执行 |
| `WP-DEL 删除旧层与命名收口` | 旧 compat、旧 contract、旧 facade、旧测试仍不能删除 | 第 4 节标记暂不可执行;`RuntimeStoryActionResponse` 、旧 runtime story contract、旧前端写 client 等仍等待新写接口和前端迁移完成 | 所有新接口和前端迁移完成后再统一物理删除;删除前必须搜索运行代码无旧层引用 | P0; 依赖 `WP-FE-S/WP-FE-H/WP-FE-C` 完成 |
| `WP-V 全链验证与发布 smoke` | 全链验证仍被旧层删除和 Maincloud smoke 阻塞 | 第 4 节标记暂不可执行;此前 `api-server:maincloud` 多次以常驻服务超时或端口占用形式结束,需要在最终阶段统一验证 | 串行执行 cargo、npm、encoding、DDD boundary、SpacetimeDB build/generate 和 Maincloud smoke; 只记录非本轮阻塞, 不新增功能 | P2; 必须在 `WP-DEL` 后 |
| `G2/跨包清理` | `过渡落位` 注释横跨多个已完成或进行中 crate, 说明 DDD 物理拆分仍有收尾清理 | 搜索命中 `module-big-fish` 5 处、 `module-runtime` 4 处 、`module-runtime-story` 4 处,以及 RPG、Custom World、Puzzle、Assets 多处 | 对进行中包,只有真实规则迁完后才能改注释;对已完成包如 `WP-BF /WP-RT` ,若只剩注释口径,归入 `WP-DEL/WP-V` 前清理,不重开主功能包 | P2; 不阻塞 P0 功能链,但阻塞最终“无迁移期口径”验收 |
| `tests-support` | 仍只是 目录占位,不是 workspace crate | `server-rs/crates/tests-support/README.md` 写明“当前提交仅完成目录占位”;目录下无 `Cargo.toml` 和 Rust 源文件 | 到 `WP-V` 前若需要共享测试夹具,则补真实 crate; 如果最终无使用场景, 改成明确文档占位或删除 | P2; 依赖最终测试策略 |
| `G2/跨包清理` | `过渡落位` 迁移期口径已清零;后续只保留旧 compat/API/FE 链路的真实依赖项 | 搜索 `server-rs/crates` 不再命中 `过渡落位` ; `module-runtime` 、`module-puzzle` 、`module-assets` 文件头已更新; Big Fish 物理拆分漂移已关闭 | 后续 `WP-DEL /WP-V` 只关注旧 compat、旧 contract、旧 facade、旧测试和全链 smoke, 不再把已清理的注释漂移重复认领 | 已关闭 P2 清理项;最终验收继续依赖 `WP-DEL/WP-V` |
| `tests-support` | 已从 目录占位收口为 workspace 共享测试支撑 crate | `server-rs/Cargo.toml` 已纳入 ` crates/tests-support` ; `server-rs/crates/tests-support/src/lib.rs` 提供 Maincloud healthz 默认地址、smoke URL 归一化、HTTP 2xx 断言和 healthz 非空响应体断言;`cargo test -p tests-support` 通过 | 已关闭“只有 README 的悬空占位”;后续 contract/reducer/view/projection 夹具只在真实测试策略稳定后继续扩展 | 已关闭 P2 占位项;后续随 `WP-V` 复用和扩展 |
## 5. 工作包边界细则
@@ -2320,3 +2321,171 @@ cargo check -p module-story --manifest-path server-rs\Cargo.toml
```
结果:通过,`module-story` 8 个单元测试通过。
### 2026-04-30 WP-RPG module-progression 领域拆分收口切片
已完成:
1. 新增 `SERVER_RS_DDD_WP_RPG_PROGRESSION_DOMAIN_SPLIT_2026-04-30.md` ,记录本次 `module-progression` 收口边界。
2. `module-progression/src/domain.rs` 收口成长等级常量、玩家成长快照、章节成长快照、章节节奏、实体定级角色和定级来源。
3. `module-progression/src/commands.rs` 收口玩家成长查询/授予经验、章节预算、章节账本和章节自动定级输入。
4. `module-progression/src/application.rs` 收口经验曲线、等级解析、玩家成长快照构造、章节预算、章节账本、章节自动定级、敌对生命值和经验奖励规则。
5. `module-progression/src/events.rs` 收口玩家经验授予、章节账本应用和章节自动定级解析领域事件。
6. `module-progression/src/errors.rs` 收口 `ProgressionFieldError` 与中文错误文案。
7. `module-progression/src/lib.rs` 收口为模块声明和公开导出,继续保持 `module_progression::*` 公开 API。
8. `module-progression/README.md` 已改为当前真实边界,明确 DDD 物理拆分已经收口。
边界说明:
1. 本次不改 SpacetimeDB 表、reducer、procedure、绑定 shape 或 `migration.rs` 。
2. 本次不把 `custom-world` 章节蓝图编译、`repeatPenalty` 、超预算衰减和完整章节偏差审计提前迁入。
3. 完整成长闭环、quest/combat/npc 联动事件和应用结果测试继续等待 `WP-CW/WP-RPG/WP-ST/WP-SC/WP-API` 。
验证:
``` powershell
cargo fmt -p module-progression - -manifest -path server-rs \ Cargo . toml - -check
cargo test -p module-progression - -manifest -path server-rs \ Cargo . toml
cargo check -p module-progression - -manifest -path server-rs \ Cargo . toml
```
结果:通过,`module-progression` 7 个单元测试通过。
### 2026-04-30 WP-RPG Gameplay 子域领域拆分收口切片
已完成:
1. 新增 `SERVER_RS_DDD_WP_RPG_GAMEPLAY_DOMAIN_SPLIT_2026-04-30.md` ,记录本次 RPG 子域统一收口边界。
2. `module-combat` 将战斗输入、战斗快照、行动结算、错误和战斗领域事件拆入 `commands/domain/application/errors/events` 。
3. `module-inventory` 将背包槽、物品快照、背包 mutation 输入、状态投影、应用规则、错误和背包领域事件拆入 DDD 文件。
4. `module-npc` 将 NPC 状态、关系、立场、互动输入、互动结算、错误和 NPC 领域事件拆入 DDD 文件。
5. `module-quest` 将任务模型、任务命令、任务状态流转、错误和任务领域事件拆入 DDD 文件。
6. `module-runtime-item` 将宝箱奖励模型、宝箱结算输入、奖励到背包映射、错误和运行时物品领域事件拆入 DDD 文件。
7. 上述 crate 的 `lib.rs` 均收口为模块声明、公开导出和原有测试,保持 `module_*::*` 公开 API。
边界说明:
1. 本次不改 SpacetimeDB 表、reducer、procedure、绑定 shape 或 `migration.rs` 。
2. 本次不新增完整 story action 写接口,不接 HTTP route、前端 hooks 或组件。
3. `inventory_use` 、完整掉落、好感、任务信号、story AI 续写、多目标战斗、完整 build/cooldown 真相建模继续等待后续主链。
验证:
``` powershell
cargo test -p module-combat -p module-inventory -p module-npc -p module-progression -p module-quest -p module-runtime -item - -manifest -path server-rs \ Cargo . toml
cargo check -p module-combat -p module-inventory -p module-npc -p module-progression -p module-quest -p module-runtime -item - -manifest -path server-rs \ Cargo . toml
```
结果: 通过, RPG 六个子域共 39 个单元测试通过;六个子域源码不再命中 `过渡落位` 。
### 2026-04-30 WP-RS module-runtime-story 领域拆分收口切片
已完成:
1. 新增 `SERVER_RS_DDD_WP_RS_RUNTIME_STORY_DOMAIN_SPLIT_2026-04-30.md` ,记录本次 `module-runtime-story` 顶层收口边界。
2. `module-runtime-story/src/domain.rs` 收口 runtime story 顶层常量、action 结算结果、生成故事 payload、NPC 任务上下文和待接任务上下文。
3. `module-runtime-story/src/commands.rs` 收口 `resolve_action_text` 。
4. `module-runtime-story/src/application.rs` 收口 `RuntimeStoryActionResponseParts` 、`simple_story_resolution` 、`build_status_patch` 和 `current_world_type` 。
5. `module-runtime-story/src/errors.rs` 补入 `RuntimeStoryRuleError` 。
6. `module-runtime-story/src/events.rs` 补入 `RuntimeStoryDomainEvent` 。
7. `module-runtime-story/src/lib.rs` 收口为模块声明、公开导出和既有子模块 re-export, 保持 `module_runtime_story::*` 公开 API。
边界说明:
1. 本次不迁移旧 `/api/runtime/story/*` 写侧接口,不新增 session scoped 写 route。
2. 本次不改 SpacetimeDB 表、reducer、procedure、绑定 shape 或 `migration.rs` 。
3. `RuntimeStoryActionResponse` 、旧前端写 client 和旧 contract 删除仍等待后续 `WP-FE-S/WP-FE-H/WP-FE-C/WP-DEL` 。
验证:
``` powershell
cargo fmt -p module-runtime -story - -manifest -path server-rs \ Cargo . toml - -check
cargo test -p module-runtime -story - -manifest -path server-rs \ Cargo . toml
cargo check -p module-runtime -story - -manifest -path server-rs \ Cargo . toml
```
结果:通过,`module-runtime-story` 8 个单元测试通过;源码不再命中 `过渡落位` 。
### 2026-04-30 WP-CW Custom World 动作与领域拆分收口切片
已完成:
1. 新增 `SERVER_RS_DDD_WP_CW_ACTION_AND_DOMAIN_SPLIT_2026-04-30.md` ,记录本次 Custom World 收口边界。
2. `module-custom-world/src/domain.rs` 收口基础枚举、进度常量、profile/session/card/gallery/publish gate 快照与结果类型。
3. `module-custom-world/src/commands.rs` 收口 profile、library/gallery、Agent session/message/operation/action、published profile compile 和 publish world 输入 DTO。
4. `module-custom-world/src/application.rs` 收口字段校验、默认 JSON、profile canonicalize、published profile compile 和 publish gate 相关纯规则。
5. `module-custom-world/src/errors.rs` 收口 `CustomWorldFieldError` 与中文错误文案。
6. `module-custom-world/src/events.rs` 收口 Custom World 领域事件与 payload struct, 避免 `spacetime-types` feature 下结构体式 enum 变体编译失败。
7. `module-custom-world/src/lib.rs` 收口为模块声明、公开导出和测试,继续保持 `module_custom_world::*` 公开 API。
8. `spacetime-module/src/custom_world/mod.rs` 移除 `execute_placeholder_custom_world_action` ,将 `generate_characters` 、`generate_landmarks` 、`generate_role_assets` 、`sync_role_assets` 、`generate_scene_assets` 、`sync_scene_assets` 、`expand_long_tail` 改为确定性状态编排。
9. 更新 `module-custom-world/README.md` 与 `docs/technical/README.md` 。
边界说明:
1. 本次不改 SpacetimeDB 表结构、procedure 签名、绑定 shape 或 `migration.rs` 。
2. 本次不把 LLM、图片生成、OSS 上传或外部网络副作用塞进 reducer/procedure。
3. Custom World API/前端全链和资产对象确认继续等待 `WP-ST/WP-SC/WP-API/WP-AS/WP-FE` 。
验证:
``` powershell
cargo test -p module-custom -world - -manifest -path server-rs \ Cargo . toml
cargo check -p spacetime-module - -manifest -path server-rs \ Cargo . toml
```
结果:通过,`module-custom-world` 13 个单元测试通过;`spacetime-module` 编译通过; Custom World 源码不再命中 `execute_placeholder_custom_world_action` 、`最小兼容占位` 或 `过渡落位` 。
### 2026-04-30 WP-BF 与 G2 迁移期口径清理切片
已完成:
1. 新增 `SERVER_RS_DDD_WP_BF_AND_G2_DRIFT_CLEANUP_2026-04-30.md` ,记录本次 WP-BF 和 G2 清理边界。
2. `module-big-fish/src/domain.rs` 收口创作阶段、锚点、资产槽、草稿、会话、作品摘要、发布门禁和运行态领域类型。
3. `module-big-fish/src/commands.rs` 收口会话、消息、草稿、资产、发布、游玩记录和运行态输入 DTO。
4. `module-big-fish/src/application.rs` 收口锚点推断、默认草稿编译、资产覆盖、资产槽构造、字段校验、序列化与运行态真相源规则。
5. `module-big-fish/src/errors.rs` 收口应用错误、字段错误和中文错误文案。
6. `module-big-fish/src/lib.rs` 收口为模块声明、公开导出和测试,继续保持 `module_big_fish::*` 公开 API。
7. 新增 `module-big-fish/README.md` 。
8. 清理 `module-runtime` 、`module-puzzle` 、`module-assets` 的文件头迁移期口径。
边界说明:
1. 本次不改 Big Fish SpacetimeDB 表、procedure、API route、前端 client 或绑定 shape。
2. 本次不为 Assets 新增未消费 event API。
3. Puzzle/API/前端未完成链路仍按原工作包继续推进,不因注释漂移清理而误标完成。
验证:
``` powershell
cargo test -p module-runtime -p module-puzzle -p module-assets -p module-big -fish - -manifest -path server-rs \ Cargo . toml
cargo fmt -p module-runtime -p module-puzzle -p module-assets -p module-big -fish - -manifest -path server-rs \ Cargo . toml - -check
```
结果:通过;`server-rs/crates` 不再命中 `过渡落位` 。
### 2026-04-30 tests-support 共享测试支撑 crate 收口切片
已完成:
1. 新增 `SERVER_RS_DDD_TESTS_SUPPORT_CRATE_CLOSURE_2026-04-30.md` ,记录 `tests-support` 从目录占位收口为真实 workspace crate 的边界。
2. `server-rs/Cargo.toml` 已将 `crates/tests-support` 纳入 workspace member。
3. 新增 `tests-support` 的 `Cargo.toml` 与 `src/lib.rs` ,首版提供 Maincloud healthz 默认地址、smoke URL 归一化、HTTP 2xx 断言和 healthz 非空响应体断言。
4. 更新 `server-rs/crates/tests-support/README.md` 、`server-rs/README.md` 、`docs/technical/README.md` 与本清单第 4.1 节,避免后续继续把该目录当作悬空占位重复认领。
边界说明:
1. 本次不引入业务规则、不创建伪领域 fixture。
2. 本次不修改 SpacetimeDB 表、reducer、procedure、绑定或 `migration.rs` 。
3. Contract DTO、reducer/view/projection 共享夹具仍等待对应接口与最终 smoke 策略稳定后继续扩展。
验证:
``` powershell
cargo fmt -p tests-support - -manifest -path server-rs \ Cargo . toml - -check
cargo test -p tests-support - -manifest -path server-rs \ Cargo . toml
cargo check -p tests-support - -manifest -path server-rs \ Cargo . toml
npm . cmd run check : encoding - - docs / technical / README . md docs / technical / SERVER_RS_DDD_PARALLEL_TASKLIST_2026 - 04 - 29 . md docs / technical / SERVER_RS_DDD_TESTS_SUPPORT_CRATE_CLOSURE_2026 - 04 - 30 . md server-rs / crates / tests-support / README . md server-rs / crates / tests-support / src / lib . rs server-rs / Cargo . toml
npm . cmd run check : server-rs -ddd
```
结果:通过;`tests-support` 4 个单元测试通过, crate 编译通过,编码检查通过 6 个文件, DDD 边界检查继续通过 15 个 module crate。