包含前端源码、预构建产物(dist/)、零依赖 Node.js 服务器(server.mjs)、 Cloudflare Worker 版本(worker/)、部署文档(DEPLOY.md)和交接文档。 技术总监可直接 clone 后运行 node server.mjs 启动,无需安装 React 或 build。 DEEPSEEK_API_KEY 通过环境变量注入,未纳入仓库。
163 lines
6.7 KiB
Markdown
163 lines
6.7 KiB
Markdown
# 脑晴测 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 后即可删除该空文件夹。后续开发不得再把文件写回该目录。
|
||
|