joywayer
84fa739ddd
feat(ui): restore Logo countdown and gated skip
2026-09-06 00:32:37 +08:00
joywayer
09e80e5052
feat(ui): wire Logo native loading progress
2026-09-06 00:00:19 +08:00
joywayer
41fcd65464
docs: finalize unified startup configuration acceptance
2026-09-05 23:31:39 +08:00
joywayer
af059b40e9
docs: document unified startup settings and browser acceptance
2026-09-05 23:23:04 +08:00
joywayer
239af0aa39
docs: specify unified startup configuration
2026-09-05 22:40:24 +08:00
joywayer
5d90891b38
docs: finalize remote configuration acceptance
2026-09-05 21:32:16 +08:00
joywayer
d79bed0253
docs: record remote configuration source and browser evidence
2026-09-05 21:28:52 +08:00
joywayer
62328b6fd6
docs: specify remote configuration memory flow
2026-09-05 21:08:31 +08:00
joywayer
556c47a1b6
docs: record verified local platform login acceptance
2026-09-05 19:22:37 +08:00
joywayer
6976b55038
docs: keep Creator login work on main checkout branch
2026-09-05 17:58:13 +08:00
joywayer
2fa375fc90
docs: plan approved local Creator login validation
2026-09-05 17:53:04 +08:00
joywayer
5a39326fd4
docs: design local Creator startup and login validation
2026-09-05 15:16:49 +08:00
joywayer
66246c8f5b
docs: record startup source validation and review
2026-09-05 15:02:17 +08:00
joywayer
baafc4a4f4
test: verify local login sources with protocol builder
2026-09-05 14:57:59 +08:00
joywayer
76de9432ef
docs: plan startup configuration source implementation
2026-09-05 14:23:25 +08:00
joywayer
081d9e9b06
docs: define startup configuration and visitor account sources
2026-09-05 14:08:10 +08:00
joywayer
286a8b9c16
docs: record completed UI wiring review
2026-09-05 13:16:08 +08:00
joywayer
ec67fe6e6d
test(presentation): verify runtime UI wiring and boundaries
2026-09-05 13:12:35 +08:00
joywayer
2d7655a5d7
docs: design and plan platform UI wiring core
2026-09-05 11:17:39 +08:00
joywayer
0aa66e1ec7
界面迁移更新
2026-09-05 00:12:11 +08:00
joywayer
e2762d631d
docs(plan): add decoupled platform runtime implementation
2026-09-04 23:55:40 +08:00
joywayer
56fce85040
docs(spec): detail theme and single-game packaging
2026-09-04 23:35:20 +08:00
joywayer
c5863936c6
docs(spec): adopt decoupled framework migration architecture
2026-09-04 23:24:08 +08:00
joywayer
621eb8722e
docs(plan): add platform vertical-slice implementation plan
2026-09-04 22:34:03 +08:00
joywayer
c9f6df6e10
docs(spec): decouple platform and subgames
2026-09-04 22:12:52 +08:00
joywayer
b651aaae9b
docs(spec): define platform vertical-slice migration
2026-09-04 21:56:41 +08:00
joywayer
522d747542
图片调整
2026-09-03 23:06:00 +08:00
joywayer and Claude Code
8406268b50
docs(spec): 新增 UI 迁移参照手册(3 个试点 prefab 结构 + 脚本驱动参照)
...
记录已迁移 Layer 614/616/619 的节点层级、组件属性、坐标、spriteFrame UUID、
文本/字体映射,供后续脚本绑定与驱动 UI 参照。
关键规则确立:
- 画布 1600×720 有意设计,1280 UI 水平居中(Widget 16 + hc=lpos.x)
- Text 的 fontSize/文本权威源是 Layer XML(gameabc_Object.json 无此字段)
- 字体大小保持源值不统一
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-09-03 20:52:13 +08:00
joywayer and Claude Opus 5
1e51daeb50
docs(spec): UI 手工迁移规范 (9 步 funplay MCP 流程 + 8 项验证清单 + 多帧 sprite 命名规则)
...
基于 Layer 8 (Notice 9 spirit) + Layer 15 (JoinRoom 26 spirit) 实际迁移经验.
含决策树 (脚本生成 vs funplay MCP 手工) + __prefab 数组索引约束 + SelfPos=1 top-left 锚点公式.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-03 17:40:33 +08:00
joywayer and Claude Opus 5
98631944db
docs(spec): Layer 15 (JoinRoom_Layer) 数据完整性 1:1 验证报告
...
- XML 26 spirits vs gameabc_Layer 26 ObjectList: 100% 1:1 (Common=26, diff=∅)
- SelfPos=OriginPos=1 全部 26 objects (top-left anchor, 无复杂公式)
- 全部 group=5 (单 group), IndexOfLayer 1-26
- FrameIndex 多帧 sprite 至少 3 个 (Object 514/602/236)
- 修正 '座位' 误解: Layer 15 = JoinRoom_Layer (加入房间), 座位系统在其他 Layer
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthrop.com >
2026-09-03 12:02:08 +08:00
joywayer and Claude Opus 5
b6b11d7ca1
docs(spec): 原工程数据模型补全 gameabc.min.js 逆向 (ObjectType 0-6 + FrameStyle 实测分布)
...
实测 ObjectType 0/1/3 不存在; 2=782 Sprite, 4=209 EditBox; 5/6 运行时动态创建
实测 SelfPos=OriginPos=1 (top-left, 无复杂锚点公式) + FrameStyle 分布 (单帧 728, 多帧 54, EditBox 209)
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-03 07:41:19 +08:00
joywayer and Claude Opus 5
00d6ba3fc4
docs(spec): 原工程 Game_Surface_3 数据模型 (7 个 JSON schema + Layer XML + ObjectType 映射)
...
基于 projects/Game_Surface_3/{output/*.json, save/*.xml, js/gameabc.min.js} 全面阅读.
Layer 8 (Notice_Layer) ObjectList 与 save/Layer00008.xml 的 9 个 Spirit ID 完全 1:1 验证通过.
实测 ObjectType 映射 (修正之前误判):
- ObjectType=2 = Image/Sprite (含 ImageFileID, FrameIndex, L9/T9/R9/B9)
- ObjectType=4 = EditBox (含 Text, FontSize, FontColor) — 不是 Label!
- ObjectType=0/1/3/5 需 gameabc.min.js 逆向确认
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-03 07:37:36 +08:00
joywayer and Claude Opus 5
0a6f3fa24b
docs(spec): playbook add multi-frame sprite migration rule (原 1 PNG 多帧 → Cocos N 张散图)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-02 23:45:28 +08:00
joywayer and Claude Opus 5
0024cd6d18
docs(spec): interface conversion playbook (代码迁移 vs MCP 手工决策树 + 8 项验证清单 + 已知限制)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-02 21:39:09 +08:00
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
18151f1107
docs(plan): Room.scene 实施计划 (4 task: script + scene asset + integration + runner)
...
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-02 20:55:22 +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
8b24acab3f
docs(plan): 旧 gameabc UI 数据迁移实施计划(子系统 A)
...
8 个任务: 源数据校验 → 坐标/锚点 → 帧矩形与命名 → PNG 切分与全量重组校验
→ bucket 归属 → 中间描述组装 → 转换 CLI 全量产出 → 单界面 MCP 落地验证。
重组校验是核心: 切分可逆, 故「重组(切分(原图))的像素 === 原图像素」是对全部
1006 帧的完全验证且成本近零。帧序用例直接锚定读图实证的样例(通知=10/设置=11/战绩=4)。
引入 pngjs devDep 为经裁决的例外(Node 无内置 PNG codec, 自写解码器风险更大),
仅供迁移工具使用, 不进框架运行时。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-28 00:24:21 +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
88deab3533
fix(plan): 清理指令改用 Node rmSync;补入 theme 目录 meta
...
两处修正:
1) 计划的两处 `rm -rf` 与 scripts/README.md:28 的安全规程直接冲突 ——
git-bash 的 rm -rf 可能穿透 junction 误删框架真源, 正是本方案要守护的红线。
改用 node rmSync(对 junction 不穿透)。Task 8 已按旧指令执行过一次,
事后核查真源完好(git status 无 D 记录), 属侥幸未出事。
2) Task 7 提交了 theme/ 下四个 .ts 及其 .meta, 但漏了 theme/ 目录自身的 .meta。
目录 meta 同样承载 UUID, 缺失会在跨工程 junction 共享时打断引用。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 22:50:13 +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
393c6709eb
fix(plan): Task 6 的 CLI 入口补 argv[1] 守卫
...
Task 4 评审指出 check-skin.mjs 缺该守卫, 与仓库其余四个脚本
(bump-cocos/check-cocos-version/new-game/setup-links) 的既有约定不一致。
plan 里 Task 6 的 build-game.mjs 是同样写法, 先修正避免复制该不一致。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 21:40:08 +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
000f9e4290
fix(plan): 修正 Task 3 给定代码里恒为 false 的例外通道判断
...
计划里写的 !ovSet.has(`${rel}.meta`) 恒为 false —— ovSet 由 listAssets 构建,
而 listAssets 明确排除 .meta, 故「override 自带 meta 改尺寸」的例外通道永不生效。
改为 existsSync 查磁盘。该 bug 由 Task 3 的 TDD RED 信号暴露, 实现者已在代码中修正,
此处同步计划文档避免重跑时重新引入。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 21:26:39 +08:00
joywayer and Claude Opus 5
65f0998fbd
docs(plan): framework/ui 资源归属·皮肤合成·构建流水线实施计划
...
8 个 TDD 任务: gitignore 修复+资源骨架 → 承重假设实测 → skin 校验 →
check-skin CLI → materialize 合成 → build-game 流水线 → theme 契约 →
端到端冒烟。承重假设实测排在工具开发之前, 失败即触发 spec 备选方案。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-27 21:09:15 +08:00