Files
NixMsg/.cursor/rules/nixmsg-dev.mdc

43 lines
2.4 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: NixMsg 多 Agent 开发的分工、分支提交和测试隔离约束
alwaysApply: true
---
# NixMsg 开发协作
开工前先读 `docs/TASKS.md`,确认自己是哪条线、做哪个任务。产品行为以 `docs/PRD.md` 为准,实现以 `docs/DEVELOPMENT.md` 为准,库用法特别看它的第 5 节和第 15 节。
## 分工
- 只改自己线负责的目录(TASKS.md 第 5 节);要动共享文件,按 TASKS.md 第 4.2 节的规则。
- 负责人要求全程自动:不要停下来问人、等回复。文档没写清或互相矛盾时,按和 PRD、DEVELOPMENT、已确认决定最一致、最稳妥的做法自己定,写进 `docs/DEVIATIONS.md` 自己那一节(原因和备选方案);不改 PRD 的产品行为。
- 不做破坏性操作:不删业务数据和别人的文件,不强推、不改写 `main`,撤销用 `git revert`;清理自己建的分支、工作树、容器和测试数据可以直接做。
## 分支与提交
- 在自己的工作树和 `feat/<任务号>-<简述>` 分支上工作,不直接改 `main`;只有总控合并 `main`。
- 一功能一验证一提交:补测试 → `task check` 通过 → 提交 → 推送自己的分支。
- 提交信息 `type: 中文一句话`,type 取 feat、fix、refactor、style、docs、test、chore、revert。
- 不提交构建产物、`web/dist`、数据库文件、证书私钥、密码和令牌、`aidocs/`。
- 任务完成:rebase 到 `origin/main`,全部验证通过后推送,在 MemRelay 存标签为 `ready-to-merge` 的检查点。
- rebase 后用 `git push --force-with-lease` 更新自己的 `feat/*`、`fix/*` 分支(负责人已同意);任何时候都不许强推 `main`。
## 测试隔离
- 测试里的服务监听随机端口(`:0`),数据放临时目录,不写死 7443。
- Docker 容器、网络、卷的名字带线名前缀,用完删除。
- 不改全局 git 配置、系统环境变量和全局 npm 配置。
## 技术栈
- 后端:Go 标准库 `net/http`、`database/sql` 手写 SQL、SQLite;不引入 Web 框架、ORM、Redis。
- 前端:Vue 3 + TypeScript + Naive UI,只用这一套组件库。
- 缺工具用 scoop 安装;已确认的决定和依赖库核对结论在 MemRelay 项目记忆(项目 NixMsg)里。
```yaml
# ✅ 测试用的配置:随机端口,数据放临时目录
listen: "127.0.0.1:0"
data_dir: "<临时目录>/data"
# ❌ 写死 listen: ":7443",多个 Agent 同时跑会端口冲突
```