# 团队协作约定 ## 协作模式 - 3 名开发人员在各自环境使用本地 Agent,通过同一 Git 仓库同步代码和项目知识。 - 每个任务保持分支、工作树和修改范围清晰;多人或多 Agent 并行修改前先划分不重叠的文件边界。 - 项目知识进入 `docs/` 与 `docs/project-memory/`;个人 `~/.codex`、Agent 会话和本地配置不共享。 ## 开发前 1. 同步目标分支并确认工作树状态,不覆盖他人的未提交修改。 2. 阅读 `AGENTS.md`;复杂任务继续读取 Agent 执行准则、项目概览、本文、开发工作流和当前专题文档。 3. 以源码、`package.json`、Cargo manifest、`app.rs`、OpenAPI 和生成契约核对易漂移事实;RAG 与历史记录只提供候选上下文。 4. 文档不足以确定字段、状态、迁移或验收时,先补当前权威文档再编码。 ## 开发中 - 修改范围保持聚焦;优先扩展现有系统、页面、组件、DTO 和脚本,不新建平行入口或业务真相。 - UI 开发优先复用现有公共组件;跨页面或跨端重复的视觉/交互模式应沉淀到 `packages/shared`,由现有页面迁移使用,禁止在业务页复制同类 UI。共享组件只承载通用表现与交互,不下沉领域规则、后端副作用或正式业务状态。 - 后端遵循 `module-*`、`spacetime-module`、`spacetime-client`、`api-server`、`platform-*`、`shared-contracts` 的现役边界。 - 前端只负责表现、交互和临时 UI 状态;正式状态来自后端投影、API 或持久化契约。 - 对已明确退役且无现役调用方、公开契约、持久化迁移或活跃实例的对象,不写兼容实现、维持旧行为的测试、墓碑注释或墓碑文档。 - 修改 `/api/external/v1` 时,同批更新 `docs/openapi/genarrative-external-v1.openapi.json` 与契约测试。 - 修改 SpacetimeDB schema 时遵守字段追加/default 约束,同步 migration、表目录、生成绑定,并运行 schema 检查;删除、改名、重排或改类型前先确认迁移计划。 - 日志不递归输出完整配置、应用状态或 provider client;新增字段默认不进入安全摘要。 - 中文文案、注释和文档保持 UTF-8,优先局部补丁,不擅自翻译成英文。 ## 文档生命周期 - `docs/README.md` 只索引当前实现依据和仍维护专题。 - `shared-memory/` 只保留当前稳定概览、决策、流程和坑点;同一事实不复制多份版本。 - `plans/` 只放正在执行且有明确剩余门禁的短期计划;`todos/` 只放真实开放且有关闭条件的事项。 - 计划完成、事项关闭或对象退役后,稳定结论融合进权威专题或共享记忆,过程文档直接删除;历史由 Git 提供。 - 新增 Markdown 使用 `【标签名】中文标题-YYYY-MM-DD.md` 命名。 ## 开发后 1. 运行范围匹配的测试、类型检查、`npm run check:encoding` 和 `git diff --check`。 2. 更新对应当前专题;产生长期有效变化时再更新共享记忆。 3. 检查 staged diff,确保没有无关文件、密钥、本地路径或他人改动。 4. 提交标题使用中文;标题后逐行写明修改项,每项单独一行。 ## 禁止提交 - `.env`、API Key、Token、Cookie、认证文件和个人配置。 - 个人绝对路径、会话记录、隐私信息。 - 构建产物、日志、缓存和数据库 dump。 - 已完成计划、阶段测试数字、分支合并流水账和已失效实现口径。