Files
Genarrative/.hermes/shared-memory/development-workflow.md
历冰郁-hermes版 3ad1075227
Some checks failed
CI / verify (push) Has been cancelled
feat: add work-level play tracking
2026-05-09 19:57:22 +08:00

4.8 KiB
Raw Blame History

开发工作流

用途:给本地 Hermes 和开发人员提供统一的开发、测试、提交流程。具体命令以 package.jsonserver-rs/Cargo.tomlAGENTS.md 和相关 docs/ 最新文档为准。

标准任务流程

同步代码 → 读取 AGENTS.md → 读取 .hermes/shared-memory → 查找/完善 docs → 制定计划 → 小步实现 → 本地验证 → 更新文档/记忆 → 提交

建议启动方式

在项目根目录启动 Hermes

cd /path/to/Genarrative
hermes

在本机当前常见路径为:

/home/dsk/workspace/Genarrative

其他开发者以自己本地实际路径为准,不要把个人绝对路径写入共享文档作为通用规则。

开发前检查清单

  • 当前分支是否正确
  • 是否已拉取最新代码
  • 是否阅读 AGENTS.md
  • 是否阅读 .hermes/shared-memory/ 相关文件
  • 是否阅读 README.md 中的运行和检查命令
  • 是否阅读 docs/README.md 及任务相关分类 README
  • 是否存在足够具体的 PRD / 设计 / 技术文档
  • 是否明确测试、验收和文档更新方式

本地运行命令

安装依赖:

npm install

完整联调开发环境:

npm run dev

该命令会启动:

  • SpacetimeDB standalone
  • Rust api-server
  • 主站 Vite
  • 后台 Vite

单独启动前端:

npm run dev:web

单独启动 Rust API server

npm run api-server

查看本地 Rust/SpacetimeDB 日志:

npm run dev:rust:logs

后台管理前端:

npm run admin-web:dev
npm run admin-web:build
npm run admin-web:typecheck

SpacetimeDB bindings 生成:

npm run spacetime:generate

常用检查命令

  • 后端通用用户行为埋点统一通过 record_tracking_event_and_return procedure、SpacetimeRuntimeClient::record_tracking_event(...) 与 api-server tracking 中间件写入 tracking_event / tracking_daily_stat后台、RPG、大鱼吃小鱼、Visual Novel、Story、Combat 默认排除;作品级游玩埋点统一使用 work_play_start,详细事件清单见 docs/technical/BACKEND_TRACKING_EVENT_COVERAGE_2026-05-09.md

编码检查:

npm run check:encoding

ESLint

npm run lint:eslint

类型检查:

npm run typecheck

综合 lint

npm run lint

测试:

npm run test

生产构建:

npm run build

内容检查:

npm run check:data
npm run check:overrides
npm run check:smoke
npm run check:content

全量检查:

npm run check

DDD 边界检查:

npm run check:server-rs-ddd

后端相关默认验证

后端修改后,按 DDD 文档中的验收命令执行。涉及 API smoke 时:

  • 使用 npm run api-server 重新拉起后端。
  • 禁止使用 npm run api-server:maincloudnpm.cmd run api-server:maincloud 或任何 GENARRATIVE_SPACETIME_MAINCLOUD_* 口径;这些只属于历史残留。
  • 检查 /healthz
  • 执行对应自动测试。
  • 涉及 SpacetimeDB 表、reducer、procedure、row shape 或绑定变化时,同步更新 migration.rs、表目录和生成绑定。

关键文档:

  • docs/technical/CURRENT_BACKEND_IMPLEMENTATION_BASELINE_2026-04-25.md
  • docs/technical/SERVER_RS_DDD_FULL_REFACTOR_2026-04-28.md
  • docs/technical/SERVER_RS_DDD_PARALLEL_TASKLIST_2026-04-29.md
  • docs/technical/SERVER_RS_DDD_G1_CONTRACT_AND_ROUTE_MATRIX_2026-04-29.md
  • docs/technical/SPACETIMEDB_SCHEMA_CHANGE_CONSTRAINTS.md
  • docs/technical/SPACETIMEDB_TABLE_CATALOG.md
  • docs/technical/MAINCLOUD_REFERENCE_REMOVAL_POLICY_2026-05-06.md

前端相关默认验证

前端修改后,应根据修改范围选择:

  • npm run check:encoding
  • npm run lint:eslint
  • npm run typecheck
  • npm run test
  • 页面交互 smoke
  • 移动端视口检查

前端原则:

  • 移动端优先,再兼容网页端。
  • 页面只展示后端返回的状态,不自行计算结论型业务状态。
  • 优先复用现有面板、抽屉、弹窗,不新建独立大系统。
  • 不在 UI 中默认写功能说明类文本。
  • 弹出独立面板的交互不要实现成在当前面板下方追加内容。

文档更新规则

  • 工程修改要同步更新对应文档。
  • 如果没有现成文档,新文档统一放入 docs/ 下合适分类。
  • .hermes/shared-memory/ 只记录高频、长期、团队共享的摘要和索引,不替代完整 PRD/技术文档。
  • 如果 .hermes/shared-memory/ 与代码或 docs/ 冲突,以代码和最新 docs/ 为准,并同步修正共享记忆。

提交前建议让 Hermes 执行

请检查当前 git diff指出
1. 是否违反 AGENTS.md 或 .hermes/shared-memory 约定;
2. 是否需要补充 docs
3. 是否有长期知识需要写入 .hermes/shared-memory
4. 建议的测试命令和提交信息。