docs: 初始化仓库,加入需求、开发说明和任务拆分

This commit is contained in:
Nixevol
2026-09-30 05:11:26 +08:00
commit 2ab09507ff
8 changed files with 2310 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
---
description: NixMsg 多 Agent 开发的分工、分支提交和测试隔离约束
alwaysApply: true
---
# NixMsg 开发协作
开工前先读 `docs/TASKS.md`,确认自己是哪条线、做哪个任务。产品行为以 `docs/PRD.md` 为准,实现以 `docs/DEVELOPMENT.md` 为准,库用法特别看它的第 5 节和第 15 节。
## 分工
- 只改自己线负责的目录(TASKS.md 第 5 节);要动共享文件,按 TASKS.md 第 4.2 节的规则。
- 文档没写清或互相矛盾时,停下来问总控,不要自己改产品行为。实现和文档不一致,必须写进 `docs/DEVIATIONS.md` 自己那一节。
## 分支与提交
- 在自己的工作树和 `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 同时跑会端口冲突
```