diff --git a/.cursor/rules/git-workflow-and-environments.mdc b/.cursor/rules/git-workflow-and-environments.mdc new file mode 100644 index 00000000..18c58135 --- /dev/null +++ b/.cursor/rules/git-workflow-and-environments.mdc @@ -0,0 +1,60 @@ +--- +description: 项目固定3分支模型(dev/test/main)、逐步渐进式提交规范与三套独立服务(知识库共享+对话与DB隔离)准则 +alwaysApply: true +--- + +# Git 三分支流转与三套服务环境架构准则 + +本仓库严格遵循以下固定分支体系、提交拆分规范与多套独立服务运行准则: + +## 一、 Git 固定三分支体系 + +1. **开发分支 (`dev`)**: + - 所有代码日常开发在此分支进行。 + - 细小变更直接在 `dev` 上分批逐步提交。 + - 独立大功能可从 `dev` 检出子分支 `feature/` 或 `fix/`,在本地测试完成后合并回 `dev`(`--no-ff`),并删除临时子分支。 + +2. **测试分支 (`test`)**: + - 当 `dev` 积累了一定的功能阶段后,合并至 `test` 分支,创建阶段候选节点 Tag(如 `rc-vX.Y.Z-beta.1`)。 + - 用于较长时间的真实环境部署、全链路集成测试、运维稳定性检验。 + - 严禁在 `test` 分支进行未经规划的大规模功能开发。 + +3. **主分支 (`main`)**: + - 生产发布分支(Release)。 + - 严禁直接在 `main` 上开发! + - 只有 `test` 分支的代码经过实际运维和测试充分验证达到发布标准后,方可将对应验证节点合并回 `main` 分支,并打正式发布 Tag(如 `v1.0.0`)。 + +--- + +## 二、 任务拆分与渐进式提交规范 (Progressive Commits) + +- **原子性拆分**:严禁把整个任务的大量改动揉合成一次庞大的提交。 +- **阶段逐步提交**:一个任务必须按功能逻辑分层逐步提交: + 1. `feat(db)` / `refactor(db)`: 数据表、模型、迁移脚本 + 2. `feat(agent)` / `feat(service)`: 业务逻辑、智能体执行流程 + 3. `feat(api)`: 接口路由与交互 + 4. `test(...)`: 单元测试与集成测试用例 + 5. `docs(...)` / `chore(...)`: 配置、运维脚本与文档同步 +- **提交规范**:遵循 Conventional Commits (`feat`, `fix`, `refactor`, `test`, `docs`, `chore`, `ci`)。 + +--- + +## 三、 三套环境独立运行准则 (知识库共享 + 对话与DB隔离) + +三套独立服务对应三个分支的运行态: + +| 环境 | 分支 | Compose 项目 | HTTP 端口 | DB 端口 | 数据/对话路径 | +| :--- | :--- | :--- | :--- | :--- | :--- | +| **共享知识库** | 跨环境 | `agent-infra` | - | `5432` | `data/shared/kb` | +| **开发环境** | `dev` | `agent-dev` | `8080` | `5433` | `data/dev` | +| **测试环境** | `test` | `agent-test` | `8081` | `5434` | `data/test` | +| **生产环境** | `main` | `agent-main` | `8000` | `5435` | `data/main` | + +### 核心约束: +1. **知识库共享**: + - 三套环境服务均通过共享网络或内网连接同一个知识库数据库(`shuimu-kb-shared:5432`)。 + - 知识库法规、向量索引保持全局一致。 +2. **对话数据与数据库隔离(红线)**: + - 各环境对话记录(Chat History)、Agent 思考工作区、审计事件及 SQLite/Postgres 业务库必须严格隔离! + - 严禁任何环境读取或写入其他环境的对话数据与业务库。 + - 宿主机挂载目录严格区分:`data/dev/`、`data/test/`、`data/main/`。