4.8 KiB
4.8 KiB
开发工作流
用途:给本地 Hermes 和开发人员提供统一的开发、测试、提交流程。具体命令以
package.json、server-rs/Cargo.toml、AGENTS.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_returnprocedure、SpacetimeRuntimeClient::record_tracking_event(...)与 api-servertracking中间件写入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:maincloud、npm.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.mddocs/technical/SERVER_RS_DDD_FULL_REFACTOR_2026-04-28.mddocs/technical/SERVER_RS_DDD_PARALLEL_TASKLIST_2026-04-29.mddocs/technical/SERVER_RS_DDD_G1_CONTRACT_AND_ROUTE_MATRIX_2026-04-29.mddocs/technical/SPACETIMEDB_SCHEMA_CHANGE_CONSTRAINTS.mddocs/technical/SPACETIMEDB_TABLE_CATALOG.mddocs/technical/MAINCLOUD_REFERENCE_REMOVAL_POLICY_2026-05-06.md
前端相关默认验证
前端修改后,应根据修改范围选择:
npm run check:encodingnpm run lint:eslintnpm run typechecknpm 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. 建议的测试命令和提交信息。