31fcbb79dc
- 现象:dd7cf401a 给 lint-staged 加 *.rs 键,但本地从未跑过 check:git-hooks(它是 npm run lint 链里的一环),而 scripts/git-hooks.test.mjs 用 assert.deepEqual 钉住 lint-staged 的整份配置形状 → CI 以 deepStrictEqual 失败;本批更早还因 check:rustfmt 红过一次(15660a98b 修 8 处格式偏差),成因是 pre-commit 的 lint-staged 当时只覆盖 *.{js,mjs,cjs,ts,tsx},Rust 格式本地无守卫
- 原因:npm run lint 是一条 && 长链(encoding / npm-workspaces / git-hooks / rustfmt / spacetime-schema / production-ops / preview-deployer / maintenance-page / eslint / typecheck),中间任一步失败则其后步骤根本不执行,「跑到第 N 步就以为本地绿了」;更隐蔽的是本地若因环境原因在中间断掉(如 Windows 上 check:git-hooks 第 2 个用例的 EBUSY),后面那些本来能通过的步骤也从未被验证
- 处理:push 前按完整链路跑;&& 链在某一步失败时,必须把失败步之后的每一步单独再跑一遍(10 步 + git diff --check)并逐条记 exit code(取 exit code 不要接管道);改动碰到 package.json / .husky/ / scripts/ 下的门禁资产时,check:git-hooks 是必跑项
- 验证:本次 check:git-hooks 因本机 Windows EBUSY 中断后,补跑其后各步全部 exit 0(spacetime-schema / production-ops / preview-deployer / maintenance-page / lint:eslint / typecheck / encoding),只有 check:rustfmt 红且红在别人在途的 .rs(assets.rs:519 落在其未提交 hunk +470,62、commands.rs:3079 落在其未提交 hunk +3068,58);变异验证:把 *.rs 从 package.json 摘掉 → 第 1 个用例以同样的 deepStrictEqual operator 变红,还原(SHA256 一致)后回 ok
- 纯文档追加:文件末尾 +8 行、无删改;本条只提交 docs/project-memory/shared-memory/pitfalls.md 一个路径
文档总览
本目录只把当前实现依据、公开契约和仍在维护的专题合同作为入口。代码、当前文档与项目记忆冲突时,以当前代码和最新专题文档为准;未列入下表的材料不作为实现依据。
必读入口
当前产品与平台
- 当前产品与工程约束:现役入口、账号钱包、UI 和后端分层。
- 平台入口与玩法链路:只描述现役平台壳与旧模板退役边界。
- 外部 OpenAPI 与 API Key 接入方案
- External v1 OpenAPI:公开 HTTP 契约唯一机器可读来源。
AI 游戏创作与 Agent Runtime
-
LLM 累计额度结算:Router 累计额度、首次基线与原子钱包结算。
-
AI 游戏创作智能体 App 实施计划:当前 DirectProject、受控语义工具、UI workflow、资源和运行时合同。
-
策划会话 Runtime V2 接入与旧链路退役方案:新单 Agent 策划会话、GDD 策略、未来 MCP/Skill 兼容插槽、阶段任务与退役验收合同。
-
DirectProject Codex 原始历史与异常恢复:原始 Responses item 持久化、线程注入与异常回合收尾。
-
DirectProject 客户端 Skill 与 MCP 扩展导入方案:客户端扩展导入、按独立 Skill/MCP 拆分、命名、启用和启动时注入边界。
-
AGC 客户端更新检查与下载:启动版本检测、OSS 清单格式和下载约定。
-
DirectProject 本轮附件路径映射:Direct 首轮只映射附件原名与项目相对路径,不灌正文、不区别 GDD。
-
Direct 回合行为审计账本:Direct GUI 回合把 native 读 / MCP / 写文件落成项目内有界时间线,用于判断有没有打开本轮附件。
-
项目开发工作台 PRD:当前工作台页面和验收边界。
-
AGC 错误报告与诊断上传:当前进程错误事件、应用级日志和管理员查看器合同。
-
立项策划 Agent(Fast GDD):旧
project-supervisor-plan/project-planning历史会话的入口、审批和恢复合同;V2 切换时未完成旧会话强制失败。
图片画布与媒体
- 共享基础组件库与展示页:网站与客户端复用的无业务 UI chrome、样式边界和
/components展示页。 - 客户端素材创作无限画布阶段一合同
- 图片画布结构化持久化与迁移回滚
- 编辑器生成结果原子提交与幂等重放
- 画板音乐生成入口:BGM/SFX 共享视图、独立业务规则和当前发布门禁。
- 画布 Agent 对话面板
- 画布 Agent 会话消息存 OSS
- 编辑器模型定价配置
后端、运维与测试
- BgFilter 受限资源调度方案
- Issue225 登录成功 AGC 用户归属修复:登录 route tracking 的真实用户归属、
daily_login幂等边界和实施验收。 - SpacetimeDB 连接池取消安全
- Jenkins 容器预览部署控制面
- 浏览器内 AI Web 工程沙箱预览
- AI Web 工程 Runner 安全模型
- npm workspaces 统一依赖边界
- React 组件测试准则
- 宿主壳能力统一协议
- Expo React Native 与 Tauri 宿主壳方案
维护规则
- 当前文档只保留稳定合同、公开契约和仍在推进的专题;一次性计划、实施记录和已关闭实验完成后删除或融合,不再长期堆积。
docs/project-memory/shared-memory/只保存长期有效的概览、决策、流程和踩坑;plans/、todos/仅保存仍开放且有明确下一门禁的事项。- 修改
/api/external/v1必须同步 OpenAPI 和契约测试;修改 SpacetimeDB schema 必须同步 migration、表目录、绑定和 schema 检查。 - 旧模板、旧公开作品、旧运行态和旧后端路线不因历史源码或数据表仍存在而恢复入口。
- 新增 Markdown 使用
【标签名】中文标题-YYYY-MM-DD.md命名;不要把个人配置、密钥、Token、日志或构建产物写入文档。