joywayer and Claude Code
ec550ba257
fix(scripts): RoomSceneStart setPlayerData bindTo contract + runtime validation
...
Critical fix:
- setPlayerData fake state lacked subscribe() -> PlayerInfoView.bindTo threw
TypeError at runtime. Switched to PlayerInfoView.applyPlayer({nickname,
bean,avatar}) when available; falls back to bindTo + proper reactive
store with subscribe/value if only bindTo is exposed.
Runtime validation (per CLAUDE.md 第二准则 — no silent fallback):
- computePositions / setSeatLayout: validate layout ∈ VALID_LAYOUTS
- computePositions / setPlayerCount: validate count ∈ [1,8] AND is integer
- setPlayerData: validate seat is integer ∈ [1, currentCount]
- extractPlayerViewData: validate nickname/bean/avatar types (no ?? 兜底)
- start(): validate no null/undefined entries in playerSlots
Architecture:
- Extracted pure controller logic to room-scene-controller.ts so tests can
import without cc mock (RoomSceneStart remains thin cc wrapper that
delegates). Matches existing pattern of room-scene-layout.ts.
Tests:
- Added 27 new tests (validate* / apply* / extract* / clearSlots)
- 5 original layout tests kept; 254/254 PASS (222 prior + 32 room-scene)
Spec:
- Resolved 2x2/triangle/square contradiction: Success Metrics + 成功标准
both defer coordinates to layout sub-task, consistent with 不覆盖 section.
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-02 21:22:04 +08:00
joywayer and Claude Opus 5
23036f9cfa
docs(spec): Room.scene 设计 (可配置玩家数 + 4 种 seat layout)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-02 20:43:00 +08:00
joywayer and Claude Opus 5
02dc5d51ca
chore(spec): 综合清理 + legacy-layer 迁移 spec/plan/data
...
主要改动:
- 切到 funplay-cocos-mcp v0.5.1 (用户级配置, 项目级 .mcp.json 删除)
- 仓库文档/CLAUDE.md/.gitignore 等清理过时 cocos-mcp-server 引用
- memory 文件同步: cocos-mcp-setup/path/blocker/spriteframe-uuid/prefab-persist 等加 funplay 实测警告
- memory 新建 funplay-cocos-mcp-pending-verification.md (后已被实测覆盖)
- spec/plan/data:
- docs/superpowers/specs/2026-09-02-legacy-layer-migration-design.md
- docs/superpowers/plans/2026-09-02-legacy-layer-migration.md
- docs/superpowers/data/layer-spirit-summary.json
- YouleNexus: profiles.ts / defaults.ts / PlayerInfoView.prefab / scene 改动
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-02 07:36:54 +08:00
joywayer and Claude Opus 5
6b4faab029
test(ui-migration): 单界面 MCP 落地验证并回填 spec
...
Login_Layer 18 个节点经中间描述落地为 prefab, 结构比对通过。
实测耗时回填 spec §5, 作为「是否需要写编辑器扩展」的判断依据。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-29 22:10:50 +08:00
joywayer and Claude Opus 5
733090ec13
docs(spec): 旧 gameabc UI 数据迁移与分辨率适配设计(子系统 A)
...
把「旧平台 UI 搬到 Cocos」拆成三个子系统, 本 spec 只覆盖 A(UI 数据迁移);
B(引擎机制映射)与 C(平台逻辑移植)另立。
关键决策: 设计分辨率保持 1280x720 + fitHeight(坐标 1:1 迁移)、多帧图切成散图
(1306 张)、同组挂同一父节点、锚点按中心点三区推断(仅水平)、全部 55 界面转进框架、
走「中间产物 + 编辑器批量」而非直接生成 prefab(红线)。
帧序经实证: 1 基 + 行优先(读 00014.png 网格内容与 11 个按钮的 FrameIndex 对照,
六项精确命中)。并推翻了早期「51.6% 帧未被引用」的错误统计。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-28 00:14:15 +08:00
joywayer and Claude Opus 5
5708926711
fix(skin): 修复最终评审发现的 6 处缺陷(junction 排除失效/meta 静默丢失等)
...
跨任务视角发现的问题:Critical1 materialize.mjs 的 junction 排除比较在
Windows 上因长路径前缀恒假、从未生效,且测试夹具的 junction 指向真源自身,
掩盖了此问题;Critical2 composeSkin 例外通道在 uuid 缺失/框架侧无 meta 时
静默失败,违反第二准则;Important3 可覆盖范围误把 theme/ 下的框架 TS 代码
也纳入;Important5 cli-entry 测试漏注册 check-skin/build-game;Important6
composeSkin 与 check-skin 各自拼路径,未共用 paths.mjs 权威推导;Important7
--platform 缺值时静默落到默认平台。逐条修复并补测试,Critical1 用诱饵框架
目录验证过能真正杀掉该 bug(变异推演见 fix report)。
spec §5 step5 的 dist/<name>/ 拷贝按要求标注为本期未实现,不实现。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 23:15:28 +08:00
joywayer and Claude Opus 5
bed9b4f35d
docs(tools): 皮肤与构建流水线文档, 回填 library 缓存实测结论
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 22:48:03 +08:00
joywayer and Claude Opus 5
cd064756d6
fix(spec): 修正 §6 回填中对"构建阻塞原因"的过度概括
...
发现 build-game.mjs 已实现真无头 CLI 构建(CocosCreator.exe --build),
真正卡住假设1的是"造不出 Auto Atlas 资产"而非"构建跑不完",回填措辞据此更正。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 22:33:14 +08:00
joywayer and Claude Opus 5
669a2a5e14
test(ui): 实测构建期合成的三条承重假设并回填 spec
...
Auto Atlas 构建期打包 / meta 保留 uuid 后尺寸变化的表现 / Spine 整套替换。
结论写入 spec §6, 未验证项如实标注阻塞, 不假定可行。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 22:30:46 +08:00
joywayer and Claude Opus 5
6961c18117
docs(spec): §3.2 补入 size-unreadable 错误码
...
Task 3 评审发现 readPngSize 读不出尺寸时被静默当作校验通过(违反下游不兜底),
修复引入第四个错误码。spec 表格同步, 避免规范与实现漂移。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 21:34:43 +08:00
joywayer and Claude Opus 5
24e05189c9
docs(spec): Spine 规则改按 Cocos 原生资源模型,贴图豁免同尺寸约束
...
旧项目自行集成 Spine 是 gameabc 引擎缺陷所致,对新框架无参考价值。
Cocos 用 sp.SkeletonData 复合资源;区域坐标记在 .atlas 内而非 .meta,
故 Spine 贴图可变尺寸,校验须跳过尺寸检查以免误报。
新增待实测项 4:整套替换后 uuid 关联是否自洽。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 20:57:19 +08:00
joywayer and Claude Opus 5
c826df1108
docs(spec): framework/ui 资源归属·皮肤机制·打包裁剪设计
...
构建期皮肤合成取代架构 spec §5 的运行时 AssetResolver:
Prefab 保持静态引用,包内零冗余,图集交 Auto Atlas 构建期打包。
决策依据为旧项目全量实测(444 个平台资源:73.9% 共用、
26.1% 同名替换、其中 98.3% 同尺寸)。
组件替换升为第三条主力通道,完整设计另立 spec。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 20:55:44 +08:00
joywayer and Claude Opus 4.8
241c9d447a
docs(spec): platform 响应式 Store 第一切片设计
...
自研 signal 基元 + 三个 Store(Player/App/Room 登录驱动子集) + PlatformSession 登录接入 + 只读视图。取向A(每Store一状态signal)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 21:02:39 +08:00
joywayer and Claude Opus 4.8
51a4ee57ac
refactor(framework): 移除 resolveBootstrap 下游兜底,立第二准则
...
- CLAUDE.md 新增「第二准则:数据源权威、唯一,下游不兜底」
- bootstrap 删除 fallbackServers 选项与 ?? DEFAULT_GAMESERVER 猜默认
- 无 server/gameserver、远程失败、解析不出地址 → 一律抛 ConfigFetchError 显式暴露
- 同步 guide + 两篇 spec(删 fallback/降级措辞)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 18:59:15 +08:00
joywayer and Claude Opus 4.8
6bfabffcfc
docs(spec): debug/release 一键运行模式设计(runtime-mode)
...
自动跟随 Cocos DEBUG + 可选手动覆盖;release 强制 prod 并完全锁死 URL 覆盖;isDebugger 接到 NetClient 收发包日志。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 17:51:21 +08:00
joywayer and Claude Opus 4.8
bc16d43a91
docs(spec): 配置/渠道子系统设计(framework/config)
...
身份解析(含原生同步读取)+调试 profiles+URL 覆盖+远程配置 getParam+连接地址解析+启动编排;外部契约逐字保留,内部命名现代化。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 16:09:11 +08:00
joywayer and Claude Opus 4.8
17a82eb5bf
docs(spec): 补充协议 SSOT 引用原则与原项目 bug 规避
...
- 0.1 协议单一信息源:设计/计划只引用 docs/protocol 章节、不内联复制,
协议修订无需回改设计与实施计划;framework/protocol TS 类型为其机器镜像
- 0.2 不继承原项目源码 bug:按正确协议语义实现,主动规避同类缺陷
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 11:37:32 +08:00
joywayer and Claude Opus 4.8
739d8fe5ee
docs: 新增 Cocos Creator 平台框架与子游戏架构设计 spec
...
Monorepo + junction 共享框架、6 层单向依赖零耦合、配置+资源覆盖换肤、
种子工程克隆建子游戏、Cocos 版本全 monorepo 统一升级。
接口(IGameModule/GameContext)方向已定、精确签名待后续细化。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 11:05:35 +08:00