Commit Graph
14 Commits
Author SHA1 Message Date
joywayerandClaude Opus 5 69cb04ecfa 二七王:确立「一个 View 恰好一个图层」不变式
原本允许 Layer1/Layer2 声明多图层,但「哪个 group 属于哪个图层」只能靠
注释隐含、无法机械判定。改为跨图层的界面拆成两个 View,各带自己的 Layer——
一个 View 将来对应一个 BaseComponent 组件,本就该分开。

SpriteIndex 加校验守住该不变式:View 缺 Layer、或写成 Layer1/Layer2 均报错。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 21:01:04 +08:00
joywayerandClaude Opus 5 8b579896b2 二七王:精灵常量再优化为 View → group 容器 → 精灵
group 与其名下精灵合并为 { id: 群组常量, 精灵键: id, ... },
所属关系由结构表达而非注释;拿到 group 对象即可 showGroup 并遍历其精灵。

SpriteIndex 随之支持 groupIdOf:精灵与群组 ID 被结构绑定,
显隐走群组时可机械查出。校验增至 5 处显式失败(重复键、精灵值非数字、
View 下混入标量键、group 缺 id、查不到的键)。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 20:51:18 +08:00
joywayerandClaude Opus 5 5ac445d08d 二七王:精灵常量改为以 UI View 为组织单位
Layer/Group 扁平声明在 View 定义下,精灵只写 id、所属关系写在注释里;
一个 View 对应一个 UI 组件,拿到 View 即拿到它的全部精灵与图层群组。

SpriteIndex 的展平逻辑随之调整:保留键 Layer*/Group* 跳过,其余键即精灵;
新增「值非数字即报错」——两者结构上同级、只靠键名区分,写错前缀会静默变成假精灵。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 20:44:17 +08:00
joywayerandClaude Opus 5 3b9828c8ca 二七王:修正文档里服务端测试脚本数量
实际是 17 个 test_*.js(624 checks),原文写的 20 把 _assert/_rpc/_shim 也数进去了。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 19:52:31 +08:00
joywayerandClaude Opus 5 e326481f2f 二七王:前端子项目 A 实施计划
14 个任务,每个自带 TDD 循环与提交:shared 抽取与同步(1-2)、
单测框架与漂移守卫(3)、core 四个纯逻辑模块(4-7)、布局求解器(8)、
常量层三批(9/10/12)、精灵索引(11)、常量机械守卫(13)、接入骨架(14)。

顺带修订设计文档两处:shared 抽取函数数量 7→8(原文列了 8 个名字),
CardMark.markOf 签名与计划对齐(拖拉机判定需整手牌作上下文)。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 18:55:26 +08:00
joywayerandClaude Opus 5 0f29c2e08c 二七王:shared 同步脚本改放仓库根目录
同步是跨端动作(源在 server、目标在 client),不属于任何一端,
故 sync_shared.cmd 放根目录而非 client/scripts/。

同时写明单向流水线纪律:只改服务端 shared,改完跑脚本同步;
前端副本只读,本地改动会被覆盖,由字节一致守卫测试兜底。
验收补一条:CLAUDE.md「常用命令」需同步收录该脚本。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 18:42:52 +08:00
joywayerandClaude Opus 5 849de06194 二七王:前端子项目 A(地基与逻辑层)设计定案
前端拆为 A→F 六个子项目,本文定案 A:目录结构、常量层全量、
core 纯逻辑、codes/ui 布局求解器、shared 抽取与同步、单测框架、接入骨架。

两处取舍已定:求解器归子游戏 codes/ui;排序算法走服务端 shared/ 同源
(抽 7 个牌值编码与牌型分组函数,arith 改挂引用,现有 20 个测试为安全网)。

资源与精灵不阻塞编码——常量文件先行、即建资源的规格书,编辑器后期照建。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 18:36:55 +08:00
joywayer 685b629854 claude doctor以及规则修改,修复 2026-08-19 08:01:47 +08:00
joywayerandClaude Opus 5 b255730c1b 文档:新增「前端数据驱动架构」规范(前端无对局状态机 + 防作弊四条)
前端的阶段/状态/显示一律以服务器为准,前端不得自建状态机、不得本地推导或推进流程;
由此推出请求包只带意图、服务端按可见性下发两条防作弊约束。

- client 05 §6 改为「数据驱动架构:服务端状态的投影」,新增 6.1 前端无对局状态机、
  6.2 视图=f(服务端快照)(丢弃 this.data 仅凭最近快照重画须一致)、6.3 本地 UI 态白名单
  (并澄清与 04 §5.6 乐观清除例外的关系);原条目归入 6.4
- client 04 §1 新增「请求包只带意图,不带结论」;§5.3 补「不得据本地推断补齐未下发状态」
- server 03 新增 §1.3 按可见性下发(下发即泄露)、§1.4 状态机唯一在服务端并随包下发
- server 04 §4 补「前端不是数据源」;§8 新增「只接受意图入参,客户端回传结论一律忽略」
- 两份 README 红线速查与审查速查表同步补条目

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-16 20:02:55 +08:00
joywayer 3b7c103387 模板工程升级修改 2026-08-11 22:17:54 +08:00
joywayer 047561675b 新规hook 2026-07-06 17:16:05 +08:00
joywayerandClaude Opus 4.8 363f97cdbe 文档修复:移除指向不存在文件的失效链接引用
client/02、client/03 中指向 docs/important/client/友乐游戏引擎精灵与资源管理接口规范.md
(该文件不在仓库)的 markdown 链接改为纯文字规范名,保留文意、去除失效链接。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 22:51:28 +08:00
joywayerandClaude Opus 4.8 f776e4c817 文档修复:校正开发指南编号与失效交叉引用
- CLAUDE.md:前端指南编号由「01→05」订正为「01→06」(06 子游戏接入模式实存且已被本文件他处引用);删除已过期的 server/docs 旧副本警告(该旧副本已从工作树删除)。
- 两份 development-guide README + 各章节正文:将旧路径 server/docs/development-guide、client/docs/development-guide 统一订正为 docs/server、docs/client;docs/engineering 订正为 docs/games/engineering。
- 客户端 README 阅读顺序补齐缺失的 06 篇。
- 服务端 README 移除指向不存在的 docs/important/server 的条目。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 22:39:37 +08:00
joywayerandClaude Opus 5 594820d393 初始化仓库:友乐/gameabc 房卡游戏平台脚手架(client + server + docs)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-01 18:13:26 +08:00