首次提交:脑晴测 H5 项目

包含前端源码、预构建产物(dist/)、零依赖 Node.js 服务器(server.mjs)、
Cloudflare Worker 版本(worker/)、部署文档(DEPLOY.md)和交接文档。

技术总监可直接 clone 后运行 node server.mjs 启动,无需安装 React 或 build。
DEEPSEEK_API_KEY 通过环境变量注入,未纳入仓库。
This commit is contained in:
MingNian
2026-07-28 10:24:47 +08:00
commit b0fce840a3
152 changed files with 8536 additions and 0 deletions

162
交接文档.md Normal file
View File

@@ -0,0 +1,162 @@
# 脑晴测 H5 项目交接文档
更新时间2026-07-23
## 1. 新对话首先要知道的事情
- 项目以后只以 **D 盘版本**为准。
- 项目根目录:`D:\GMS project`
- 前端目录:`D:\GMS project\brain-h5`
- 一键启动入口:`D:\GMS project\一键启动脑晴测.bat`
- 开始修改前,必须完整阅读:`D:\GMS project\brain-h5\AGENTS.md`
- 默认产品是铺满浏览器的响应式 H5 网页,不允许重新套上黑色手机外框、状态栏、摄像头开孔或设备选择器。
- 桌面浏览器使用横向完整布局;手机浏览器自动变成适合竖屏操作的布局。
- 项目是中文、免登录的认知能力训练/测评原型,文案避免疾病诊断和医疗结论。
给新 Codex 对话的建议开场指令:
> 我们继续开发 `D:\GMS project` 里的脑晴测 H5。请先完整阅读项目根目录的 `交接文档.md` 和 `brain-h5\AGENTS.md`,以后只操作 D 盘项目,不再使用 C 盘旧目录。先检查现状,再继续我的新需求。
## 2. 用户提供的参考资料
原始录屏位于:
- `D:\QQ2026722-17165.mp4`
- `D:\QQ2026722-172534.mp4`
录屏用于理解游戏规则、节奏和元素之间的逻辑关系,不要照抄对方的品牌、文案或视觉资产。
已从录屏总结出的核心规则:
1. 符号匹配:顶部出现目标符号,用户根据固定映射表输入对应数字。
2. 交替连线顺序为“1 → 最小扇形 → 2 → 大一档扇形……→ 10 → 最大扇形/完整圆形”;节点位置应有邻近关系,不能完全随机乱放。
3. 飞机注意力:飞机持续移动,用户按照指定颜色识别目标;飞机数量与难度逐轮增加,并体现机头方向。
4. 购物记忆:先记购物清单,再让商品在传送带上依次移动出现,用户选择目标商品。
5. 金额计算:显示目标金额、可选纸币/硬币和已选金额区;已选货币可再次点击移除,然后提交答案。
## 3. 当前已经完成的内容
### 产品外壳
- `src\App.tsx` 已改为直接渲染 `Prototype`
- 默认页面不再使用原开发模板的 `MobileRuntime``PhoneFrame`
- 已实现全浏览器响应式布局,桌面和手机共用同一个网页入口。
### 页面流程
当前包含:
- 首页
- 用户资料选择
- 测评总览
- 符号匹配
- 交替连线
- 飞机注意力
- 购物工作记忆
- 金额计算
- 综合报告
### 游戏交互
- 符号匹配包含教学/练习门槛、固定映射、数字键盘和正式题目。
- 连线游戏使用受约束的节点路径,数字与不同大小扇形交替连接,并显示 SVG 连线。
- 飞机会使用 CSS 动画持续飞行,支持蓝色/橙色目标和逐轮增加数量。
- 商品会在传送带上移动,可点击选择,并显示选中状态。
- 购物轮次结束后进入金额计算,可添加和移除纸币/硬币。
- 已有结果报告卡片与分级摘要。
### 视觉表现
- 使用珍珠白底色、青色/紫色/珊瑚色光谱渐变。
- 采用玻璃质感、柔和阴影和轻量 2.5D 元素。
- 有桌面端和手机端断点,手机端已确认无横向溢出。
## 4. 主要代码位置
- 主界面与全部游戏逻辑:
`D:\GMS project\brain-h5\src\Prototype.tsx`
- 产品专属样式:
`D:\GMS project\brain-h5\src\prototype.css`
- 应用入口:
`D:\GMS project\brain-h5\src\App.tsx`
- 全局样式:
`D:\GMS project\brain-h5\src\styles.css`
- 内部启动脚本:
`D:\GMS project\brain-h5\scripts\start-local.cmd`
- 根目录双击启动脚本:
`D:\GMS project\一键启动脑晴测.bat`
项目目前主要集中在一个较大的 `Prototype.tsx` 中。后续功能继续增长时,可以在不改变现有行为的前提下,将各游戏逐步拆分到独立组件和数据文件,但不要为了拆分而破坏当前可运行版本。
## 5. 启动方式
用户日常使用:
1. 双击 `D:\GMS project\一键启动脑晴测.bat`
2. 脚本会启动本地开发服务。
3. 浏览器自动打开 `http://127.0.0.1:4173/`
开发命令:
```powershell
cd 'D:\GMS project\brain-h5'
pnpm run dev --host 127.0.0.1 --port 4173
```
如果系统没有全局 Node/pnpm一键启动脚本会优先尝试 Codex 自带的运行环境。
## 6. 验证命令
每次重要修改后至少运行:
```powershell
cd 'D:\GMS project\brain-h5'
pnpm run check:runtime
pnpm run build
pnpm run test:sites
```
上一轮已经通过:
- Runtime 完整性检查
- TypeScript 与 Vite 生产构建
- Sites Worker 测试 4/4
- 桌面浏览器交互检查
- 390 × 844 手机视口响应式检查
- 浏览器控制台无报错
`App.tsx``styles.css` 曾因移除手机预览壳而被用户明确授权修改,对应 runtime lock 已更新。以后如果再次修改受保护运行时文件,必须先确认确有必要,验证后再更新 lock不要通过关闭检查来绕过。
## 7. 关键产品决策
- 真正用户打开的是普通网页,不是嵌在手机模型里的演示画面。
- H5 本身自适应:电脑打开是完整网页,手机打开仍然可以正常使用。
- 游戏不能只是静态摆放;飞机、传送带商品等必须真正运动。
- 连线节点的位置、顺序和大小关系必须符合游戏逻辑。
- 视觉需要高级、精致、有层次,但不能为了装饰影响题目识别和老年用户操作。
- 按钮和可点击目标应保持足够大的触控面积。
- 原始录屏只作为逻辑参考,最终产品应拥有原创视觉。
- DeepSeek 或其他模型密钥只能保存在服务端,不能放进 `VITE_` 环境变量或前端包。
- 未经用户明确要求,不部署到公网。
## 8. 下一阶段建议
当前版本已经可以完整演示,但后续仍可继续打磨:
1. 根据用户逐项试玩反馈,调整每个游戏的题目节奏、动画速度和难度曲线。
2. 为连线游戏补充更严格的命中判定、错误提示、拖线轨迹与触屏容错。
3. 为飞机游戏增加更丰富但可控的飞行路线,避免目标重叠或飞出可操作区域。
4. 让传送带每轮商品队列、出现间隔和干扰项配置更系统化。
5. 完善计时、正确率、反应时和报告数据之间的真实关联,替换纯展示型结果。
6. 增加进度保存、重新开始、退出确认和异常恢复。
7. 做一轮真实手机触控测试,重点检查滑动、连线和快速点击。
8. 如果准备正式上线,再补充服务端、数据隐私说明、无障碍细节和部署配置。
## 9. C 盘旧目录说明
原项目目录曾位于:
`C:\Users\明年\Documents\GMS project`
其中项目文件已经清空。当前 Codex 任务可能暂时占用旧目录的空文件夹外壳;关闭当前任务或 Codex 后即可删除该空文件夹。后续开发不得再把文件写回该目录。