Files
memind/AGENTS.md

79 lines
4.4 KiB
Markdown
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.
# Agent 协作说明(Codex / Cloud / Cursor / Claude / 其它 AI 工具通用)
本文件供所有在仓库内工作的 AI 编码助手阅读。仓库级开发、测试、发布规范以 [ENGINEERING_WORKFLOW_RULES.md](ENGINEERING_WORKFLOW_RULES.md) 为准;生产发布规范以 [PRODUCTION_RELEASE_RULES.md](PRODUCTION_RELEASE_RULES.md) 为准。
## 必读:分支与发布闸门
1. 新建分支前必须先同步远端主线,推荐执行 `bash scripts/new-branch.sh feature/xxx`
2. 在“修复 bug / 开发中”阶段,默认只允许本地修改、本地运行、本地测试;**没有用户明确批准,不允许 `git push`、不允许生成或发布任何 `103` 相关 runtime/artifact、不允许合并或并入 `main`、不允许触发任何生产动作。**
3. “明确批准”必须是针对下一步动作本身的直接确认,不能把“继续处理”“先看看结果”之类表述解释成 `push`、发版、合并 `main` 的授权。
4. 即使代码已经改完,也必须先完成与本次改动对应的测试或 verify,并在测试后再次确认,才能决定是否进入 `push`、合并 `main``103` 构建或发布等下一步。
5. 分支代码必须先合并进 `main`,确认 `main` 正常后,才允许发布。
6. 发布只能从完整 `main` 打整包,禁止从功能分支、单个 commit、单个修复或局部差异单包发布。
7. 发布前必须确认 CI 已通过,且没有未合并的关键变更。
8. 发布前必须重新检查当前分支是否落后 `origin/main`
9. 发布来源必须是干净、可追溯的 Git commit。
10. 禁止从脏工作区、detached HEAD、落后主线的分支发布。
11. 发布前必须执行:
```bash
bash scripts/check-release-ready.sh
```
## 必读:已验证回归守卫(勿轻易覆盖)
下列行为经过长时间调试验证。删改相关代码前必须先读文档并跑 verify:
| 主题 | 文档 |
|------|------|
| MindSpace 公开页 `edit_file` 落盘 + 聊天 Finish 不丢消息 | [docs/regression-guards/mindspace-publish-and-chat-finish.md](docs/regression-guards/mindspace-publish-and-chat-finish.md) |
| MindSpace remote 页面 sync + storage 缺失缩略图 fallback | [docs/regression-guards/mindspace-remote-page-sync-and-thumbnail.md](docs/regression-guards/mindspace-remote-page-sync-and-thumbnail.md) |
| Page Data 数据集注册、绑定与交付验收 | [docs/regression-guards/page-data-delivery-contract.md](docs/regression-guards/page-data-delivery-contract.md) |
索引:[docs/regression-guards/README.md](docs/regression-guards/README.md)
### 改相关文件前必跑
```bash
npm run verify:mindspace-publish-guards
npm run verify:mindspace-publish-guards:full
npm run verify:mindspace-page-sync-guards
```
发版脚本(`scripts/release-portal-runtime-prod.sh`)在未 `--skip-tests` 时也会执行相关 verify。
### 受保护的关键路径
- `mindspace-public-finish-sync.mjs` - `edit_file` 必须 materialize 到 `public/*.html`
- `chat-finish-sync.mjs` - Finish / UpdateConversation 必须 merge,禁止盲覆盖
- `conversation-display.mjs` + `src/utils/message.ts` - 用户消息不得展示 routing/skill 内部前缀
- `src/hooks/useTKMindChat.ts` - `syncSessionMessages` merge + 重试
- `server.mjs` - session snapshot 需 `hint_mc``hint_ua` 才走缓存
- `mindspace-pages.mjs` - storage 缺失时 HTML 页回退读 workspace `relative_path`
- `mindspace-page-sync-service.mjs` + `server.mjs` - remote 模式也必须 sync public HTML
代码内搜索 `REGRESSION GUARD` 可定位所有内联说明。
### 相关单测
- `mindspace-public-finish-sync.test.mjs`
- `chat-finish-sync.test.mjs`
- `conversation-display.test.mjs`
### MindSpace page sync + thumbnail
- `mindspace-page-sync-service.test.mjs`
- `mindspace-pages.test.mjs`
## Cursor 专用规则(其它工具请读上文文档)
Cursor 额外加载:`.cursor/rules/mindspace-publish-chat-finish-guards.mdc`
内容与 `docs/regression-guards/mindspace-publish-and-chat-finish.md` 一致,仅为 Cursor 在编辑相关文件时自动提示。
## 仓库惯例
- 本地开发:`pnpm dev`(见 [README.md](README.md)
- Page Data API:见 [docs/page-data-api-usage.md](docs/page-data-api-usage.md);改动相关路径后执行 `npm run verify:page-data`
- 生产隔离:[docs/service-isolation-runbook.md](docs/service-isolation-runbook.md)
- 发版须 Git commit,禁止本机直 `rsync``103/105`