Files
Genarrative/AGENTS.md
kdletters 10ed4fa051
Some checks failed
CI / verify (push) Has been cancelled
docs: clarify SpacetimeDB root-dir usage
2026-05-11 14:27:33 +08:00

11 KiB
Raw Blame History

AGENTS.md

团队 Hermes 共享记忆

项目约束

  • 代码需要有完善的中文注释
  • 在落地工程修改前检查是否有详细指导本次落地的文档,若没有文档或文档的完善程度仍有落地过程中编码级别的歧义优先优化文档后落地工程迭代。
  • 对工程的修改不仅要落地到代码更面还要更改对应文档若没有生成新的文档文档统一存在doc目录中
  • 不要擅自把现有中文文案、注释、剧情、文档改写成英文,除非用户明确要求翻译。
  • 看到中文乱码时,不要直接沿用乱码文本,也不要用英文替换;先确认文件真实编码,再决定是否修改。
  • 在 PowerShell 5.1 中读取或写入文本时,必须显式使用 UTF-8如果终端输出疑似乱码要用 Get-Content -Encoding UTF8、Python 或 Node 再次核对原文。
  • 非必要不要整文件重写,尤其是包含中文的文件;优先做局部补丁,避免把未改动的中文内容重新编码。
  • 修改包含中文的文件后,优先运行仓库里的编码检查,确保没有把文本写坏。
  • UI面板中不要默认写一些规则描述文案清爽一些按照游戏UI设计规范设计即可。
  • UI设计需要兼顾网页端、移动端双端的使用体验确保在不同设备上都能正常显示和操作移动端优先考虑。
  • 不要在gitignore中添加.env.local文件。
  • 严格遵循简洁的代码风格
  • 请默认保持系统的简洁性,能复用、修改、扩展现有系统、页面就不新建新系统新页面。
  • 禁止将功能说明描述类的文本默认写入UI界面中。
  • prd文档中每个模块的描述要落地设计到可以精准编码到位不能出现需求落地漂移。
  • 点击按钮弹出独立的面板的设计不要实现成在当前面板下面显示内容。
  • 每个阶段任务完成后自动压缩上下文,确保后续阶段在清晰、低噪音的上下文基础上继续推进。

后端技术约束

  • 后端最新技术约束以 docs/technical/SERVER_RS_DDD_FULL_REFACTOR_2026-04-28.md 为总纲;执行和收口状态以 docs/technical/SERVER_RS_DDD_PARALLEL_TASKLIST_2026-04-29.md 为准。
  • 契约、路由、DTO 去留和 breaking change 以 docs/technical/SERVER_RS_DDD_G1_CONTRACT_AND_ROUTE_MATRIX_2026-04-29.md 为准;不得在前端、api-server 或临时兼容层中重新发明旧接口。
  • SpacetimeDB 表结构、自动迁移限制和冲突处理以 docs/technical/SPACETIMEDB_SCHEMA_CHANGE_CONSTRAINTS.md 为准;涉及 table、reducer、procedure、row shape 或绑定变化时,必须同步 migration.rs、表目录和生成绑定。
  • 后端路线固定为 server-rs + Axum + SpacetimeDB。旧 server-node、Express、PostgreSQL 不再作为兼容目标;历史实现只能作为迁移参考,若旧文档与 DDD 约束冲突,先修正文档和方案再编码。
  • DDD 分层边界按总纲执行:领域规则沉到 module-*SpacetimeDB 表和事务编排留在 spacetime-module,后端访问 SpacetimeDB 统一经 spacetime-client facadeHTTP/SSE/BFF 留在 api-server,外部副作用留在 platform-*,前后端 DTO 留在 shared-contracts
  • 前端只做表现、交互和临时 UI 状态,不承接正式业务真相,不绕过后端投影或后端 API 直接实现业务规则。
  • 修改后端代码后,按对应 DDD 文档中的验收命令执行测试;涉及 API smoke 时使用 npm run api-server 重新拉起后端并执行相应自动测试,同时确认 /healthz
  • maincloud / Maincloud / MAINCLOUD 相关脚本、环境变量、测试、文档要求和命名全部视为历史残留,禁止新增、运行或引用;若旧文档仍要求 api-server:maincloudGENARRATIVE_SPACETIME_MAINCLOUD_*,以 docs/technical/MAINCLOUD_REFERENCE_REMOVAL_POLICY_2026-05-06.md 和本文件为准,并先修正文档口径。
  • 除 CI/CD 脚本内部受控用法外,人工命令、本地联调、排障步骤和文档示例禁止继续使用 spacetime --root-dir。本地数据隔离使用项目脚本或 --data-dir,发布目标必须显式传 --server / --server-url,身份问题通过同一 CLI 登录态、专用运行用户或显式 token 处理;若旧文档仍推荐 --root-dir,先修正文档口径再执行。
  • 凡是涉及 SpacetimeDB 的设计、实现、脚本、调试、前端绑定接入,统一显式使用以下 skill 作为执行依据:
  • 涉及 spacetime CLI、发布、绑定生成、本地联调时spacetimedb-cli 执行。
  • 涉及 npm run dev / npm run dev:rust / npm run dev:web 的端口探测、端口漂移、SpacetimeDB publish server、api-server 环境变量、Vite 代理目标或后台 dev 端口时,按 .hermes/skills/genarrative-dev-stack-port-routing/SKILL.md 执行。
  • 涉及 crates/spacetime-module 的表、reducer、view、Rust API 使用时,按 spacetimedb-rustspacetimedb-concepts 执行。
  • 涉及前端或 Node 侧的 SpacetimeDB TypeScript SDK、订阅、绑定使用时spacetimedb-typescriptspacetimedb-concepts 执行。
  • 若仓库内旧实现或旧文档与这些 skill 冲突,先修正文档和方案,再继续编码。
  • 修改后端代码后,必须使用 npm run api-server 自动重新运行后端,并执行相应自动测试;不要再使用旧的后端重启命令。
  • 数据库表结构更改后需要对齐migration.rs

文档图谱

docs/
├─ README.md
├─ audits/
│  ├─ README.md
│  ├─ FUNCTION_DESIGN_AUDIT_2026-04-03.md
│  ├─ ITEM_AND_BUILD_PRD_AUDIT_2026-04-05.md
│  ├─ engineering/
│  │  ├─ README.md
│  │  ├─ ENGINEERING_OPTIMIZATION_REVIEW_2026-03-29.md
│  │  ├─ ENGINEERING_OPTIMIZATION_REVIEW_2026-03-30.md
│  │  ├─ ENGINEERING_OPTIMIZATION_REVIEW_2026-04-01.md
│  │  └─ MONSTER_NPC_UNIFICATION_AUDIT_2026-04-06.md
│  └─ text/
│     ├─ README.md
│     ├─ CHINESE_MOJIBAKE_INVENTORY.md
│     ├─ EDITOR_GAME_PRESET_TEXT_AUDIT_2026-03-25.md
│     ├─ GAME_EDITOR_PRESET_TEXT_AUDIT_2026-03-29.md
│     ├─ GAME_EDITOR_PRESET_TEXT_AUDIT_2026-03-30.md
│     ├─ GAME_UI_PRESET_EDITOR_NPC_PROMPT_TEXT_AUDIT_2026-04-02_DEEP_SCAN.md
│     ├─ GAME_UI_PRESET_EDITOR_TEXT_AUDIT_2026-03-30_CONTINUED.md
│     ├─ GAME_UI_PRESET_EDITOR_TEXT_AUDIT_2026-03-31.md
│     ├─ GAME_UI_PRESET_EDITOR_TEXT_AUDIT_2026-04-01.md
│     └─ GAME_UI_PRESET_EDITOR_TEXT_AUDIT_2026-04-02.md
├─ design/
│  ├─ README.md
│  ├─ AI_NATIVE_RUNTIME_ITEM_SYSTEM_REDESIGN_2026-04-02.md
│  ├─ COMPANION_FIRST_CONTACT_RELATIONSHIP_AND_PRIVATE_CHAT_DESIGN_2026-04-04.md
│  ├─ CUSTOM_WORLD_CREATOR_INPUT_AND_AI_BOUNDARY_DESIGN_2026-04-06.md
│  ├─ EQUIPMENT_BUILD_AND_FORGE_LOOP_SYSTEM_DESIGN.md
│  └─ npc-conversation-situation-draft.md
├─ experience/
│  ├─ README.md
│  ├─ ADVENTURE_RUNTIME_DEV_EXPERIENCE.md
│  ├─ AGENT_UI_CHANGELOG.md
│  ├─ CODEX_IMPLEMENTATION_EXPERIENCE_2026-03-24.md
│  ├─ CODEX_PAST_WORK_EXPERIENCE_SUMMARY.md
│  ├─ MOBILE_UI_DEV_EXPERIENCE.md
│  ├─ PROJECT_DEVELOPMENT_EXPERIENCE.md
│  └─ PROJECT_WORK_EXPERIENCE_PLAYBOOK.md
├─ planning/
│  ├─ README.md
│  └─ CURRENT_GAME_ITERATION_PRIORITIES_2026-04-03.md
├─ prd/
│  ├─ AI_CHARACTER_VISUAL_ANIMATION_MVP_PRD_2026-04-04.md
│  ├─ AI_NATIVE_CLASSIC_RPG_EXPERIENCE_BENCHMARK_PRD_2026-04-06.md
│  ├─ AI_NATIVE_CROSS_GENRE_STORY_ENGINE_PRD_2026-04-06.md
│  ├─ AI_NATIVE_CUSTOM_WORLD_CREATION_FLOW_OPTIMIZATION_PRD_2026-04-06.md
│  ├─ AI_NATIVE_NARRATIVE_THREAD_ITEM_AND_WORLD_NPC_PRD_2026-04-06.md
│  ├─ AI_NATIVE_QUEST_SYSTEM_PRD_2026-04-02.md
│  ├─ AI_NATIVE_RUNTIME_ITEM_GENERATION_DESIGN.md
│  ├─ AI_NATIVE_STORY_ENGINE_PHASE1_IMPLEMENTATION_PLAN_2026-04-06.md
│  ├─ AI_NATIVE_STORY_ENGINE_PHASE2_IMPLEMENTATION_PLAN_2026-04-06.md
│  ├─ AI_NATIVE_STORY_ENGINE_PHASE3_IMPLEMENTATION_PLAN_2026-04-06.md
│  ├─ AI_NATIVE_STORY_ENGINE_PHASE4_IMPLEMENTATION_PLAN_2026-04-06.md
│  ├─ AI_NATIVE_STORY_ENGINE_PHASE5_IMPLEMENTATION_PLAN_2026-04-06.md
│  ├─ AI_NATIVE_STORY_ENGINE_PHASE6_IMPLEMENTATION_PLAN_2026-04-06.md
│  ├─ AI_NATIVE_UNIFIED_ROLE_ATTRIBUTE_SYSTEM_PRD_2026-04-02.md
│  ├─ BUILD_SYSTEM_ATTRIBUTE_SIMILARITY_PRD_2026-04-02.md
│  └─ RUNTIME_ITEM_GENERATION_CURRENT_SYSTEM_DESIGN.md
├─ reference/
│  ├─ README.md
│  └─ FUNCTION_SCRIPT_CATALOG_2026-04-04.md
└─ technical/
   ├─ README.md
   ├─ AI_CHARACTER_ANIMATION_TECHNICAL_SOLUTION_2026-04-04.md
   ├─ GO_SERVER_RUNTIME_INTEGRATION_2026-04-07.md
   ├─ GO_SERVER_TASKLIST_2026-04-08.md
   ├─ NODE_SERVER_KNOWLEDGE_GRAPH_2026-04-08.md
   ├─ PIXELMOTION_TECHNICAL_BREAKDOWN_2026-04-04.md
   └─ SERVER_DEPLOYMENT_AND_CORS_TECHNICAL_SOLUTION_2026-04-05.md