Files
Genarrative/docs/【协作规范】Agent工作入口与执行准则-2026-06-22.md
T
2026-07-14 11:11:11 +08:00

7.3 KiB
Raw Blame History

Agent 工作入口与执行准则

更新时间:2026-06-22

文档定位

本文件承接 AGENTS.md 中不适合塞在入口页里的执行细则。AGENTS.md 是最高优先级入口,本文件是复杂任务的默认操作手册;如果本文件与代码、最新 docs/ 或项目共享记忆冲突,以当前代码和最新 docs/ 为准,并同步修正文档。

阅读顺序

简单自包含任务可以直接执行。复杂开发、跨模块修改、后端 / UI / 文档体系调整前,按这个顺序读:

  1. AGENTS.md
  2. 本文件
  3. docs/project-memory/README.md
  4. docs/project-memory/shared-memory/project-overview.md
  5. docs/project-memory/shared-memory/team-conventions.md
  6. docs/project-memory/shared-memory/development-workflow.md
  7. 与任务相关的 decision-log.mdpitfalls.mddocs/README.md 和专题文档

如果已有文档不能精确指导字段、契约、页面状态、资产链路、迁移或验收命令,先补文档再编码。

信息来源边界

  • docs/:当前 PRD、架构、开发运维、设计和测试口径。
  • docs/project-memory/shared-memory/:长期团队记忆、决策、流程和踩坑摘要。
  • .hermes/:Hermes 工具资源,不作为项目知识库。
  • .codex/skills/:Codex 可复用技能;只在任务命中时读取。
  • scripts/rag/:Agent 本地检索入口,只提供候选上下文。

RAG 默认不安装运行时依赖,也不把 LanceDB、Transformers.js 或本地 embedding 模型写入根 package.json。需要启用时,先询问用户;用户确认后只安装到 gitignored 的 .rag/runtime/,模型缓存和向量库留在 .rag/

执行风格

  • 修改范围保持聚焦,不做无关重构。
  • 优先复用现有系统、页面、组件、脚本、DTO 和文档位置。
  • 不新增平行入口、平行作品架、平行公开列表、平行业务真相或临时兼容层。
  • 不把前端临时状态当正式业务事实;正式状态以后端投影、后端 API 或当前架构文档为准。
  • 涉及中文内容时保持中文,不擅自翻译成英文。
  • 发现中文乱码时先确认真实编码,不直接沿用乱码,也不用英文替换。
  • 含中文文件优先局部补丁;非必要不要整文件重写。
  • 阶段性大任务完成后,整理当前上下文、剩余风险和下一步入口,降低后续接手噪音。

文档规则

  • 工程修改必须同步更新对应 docs/ 文档。
  • 没有合适文档时,新文档放入 docs/ 下合适位置,文件名使用 【标签名】中文标题-日期.md
  • PRD 或技术方案要具体到能指导编码,不写会导致落地漂移的泛泛描述。
  • 长期有效的架构约定、接口变化、排障经验、开发流程或协作规则写入 docs/project-memory/shared-memory/
  • 阶段性计划放入 docs/project-memory/plans/;确定但未实施的共享 TODO 放入 docs/project-memory/todos/
  • 不提交个人配置、密钥、Token、Cookie、会话记录、认证文件、本地私密路径、构建产物、日志、缓存和数据库 dump。

UI 与前端规则

  • UI 面板保持清爽,不默认写功能说明、规则说明、键盘快捷键说明或开发解释文本。
  • 移动端优先,同时保证桌面端体验完整。
  • 弹出独立面板的交互使用弹窗、抽屉、popover 或页面级 portal,不在当前面板下面追加内容。
  • 页面展示以后端返回状态为准,不在前端自行计算结论型业务状态。
  • 创作入口事实源来自 SpacetimeDB,经 /api/creation-entry/config 下发;前端只做展示派生。
  • 优先扩展现有公共组件,例如平台弹窗、图片输入、媒体预览、状态提示和动作按钮,不在业务页复制通用逻辑。

后端与数据真相

  • 后端路线固定为 server-rs + Axum + SpacetimeDB
  • server-node、Express、PostgreSQL、Go 服务端、maincloud 相关脚本、环境变量、测试和文档要求均为历史残留。
  • 领域规则沉到 module-*SpacetimeDB 表、reducer、procedure、事务 adapter 和 row mapper 留在 spacetime-module
  • 后端访问 SpacetimeDB 统一经 spacetime-client facade。
  • HTTP / SSE / BFF 和外部副作用编排留在 api-server;OSS、LLM、认证、语音等外部平台能力留在 platform-*
  • 前后端 DTO、公开契约和跨页面复用的无业务真相 TypeScript 代码留在 shared-contracts / packages/shared;共享 UI 组件与纯工具可留在 packages/shared,但领域规则、后端副作用和正式状态不得下沉。
  • 契约、路由、DTO 去留和 breaking change 以当前后端架构文档、api-server/src/app.rsshared-contractspackages/shared 为准。

后端修改后按当前 DDD 文档执行验收。涉及 API smoke 时,使用 npm run dev:api-server 重新拉起后端并检查 /healthz;不要使用旧 maincloud 启动口径。

SpacetimeDB 规则

涉及 SpacetimeDB 设计、实现、脚本、调试、发布、绑定生成、schema、reducer、procedure、view 或 Rust API 时,先读取对应 skill

  • .codex/skills/spacetimedb-cli/SKILL.md
  • .codex/skills/spacetimedb-rust/SKILL.md
  • .codex/skills/spacetimedb-concepts/SKILL.md

已有表新增字段时,字段必须放在 Rust 表结构体最后,并设置明确默认值。删除、改名、重排或改类型前必须先询问用户并确认迁移计划。

修改 schema 后必须同步:

  • server-rs/crates/spacetime-module/src/migration.rs
  • 表目录 / 数据契约文档
  • 生成绑定
  • npm run check:spacetime-schema

人工命令、本地联调、排障步骤和文档示例禁止继续使用 spacetime --root-dir;本地数据隔离使用项目脚本或 --data-dir,发布目标显式传 --server / --server-url

技能路由

  • 新增、补齐、迁移或重构玩法入口、玩法类型、创作工作台、生成页、结果页、发布、运行态、作品架、广场或公开 read model:读取 .codex/skills/genarrative-play-type-integration/SKILL.md
  • 本地 dev 端口、代理目标、端口漂移、SpacetimeDB publish server、api-server 环境变量、Vite 代理和后台 dev 串联:读取 .hermes/skills/genarrative-dev-stack-port-routing/SKILL.md
  • 仓库级 Hermes skills/plugins:先读 .hermes/README.md,只把 .hermes/ 当工具目录。

Issue 与提交

  • Issue 使用自托管 Gitea;优先使用 Gitea UI/API 或 tea CLI。
  • 默认 triage 标签:needs-triageneeds-infoready-for-agentready-for-humanwontfix
  • 提交标题必须使用中文;标题后逐行写明本次提交修改了什么,每条变更单独一行。
  • 提交前检查 staged diff,避免把无关文件、密钥、本地配置或用户未要求的改动带进去。

默认验证

按修改范围选择验证,不追求无意义全量扫:

  • 文档 / 中文文本:npm run check:encodinggit diff --check
  • 前端:定向测试、npm run typecheck、必要的页面交互 smoke 和移动端视口检查
  • 后端:对应 crate 的 cargo test / cargo check、API smoke、/healthz
  • SpacetimeDB schemanpm run check:spacetime-schema
  • 发布 / 运维:当前开发运维文档中的脚本门禁、host 侧进程和公开端点验证

如果无法运行某项验证,最终说明要写清原因、风险和已经完成的替代检查。