Files
cad-agent/ai.memory/feedback_preferences.md
T
gjm 17c202549e docs(memory): 记录可信度三件套落地、window 参数实机事实与 CAD 自启偏好
- project_review_agent_impl:三件套链路(结构化结论删除二次抽取、确定性检查前置、
  handle 交叉校验)、开关与数据结构;find_zero_length/find_duplicate_entities 的
  window 参数 schema 未声明但实机生效
- feedback_preferences:需要 CAD 时自己启动(自动加载已配好),不要先问用户
2026-10-14 19:54:53 +08:00

88 lines
4.9 KiB
Markdown
Raw 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.
---
name: 用户协作偏好
description: 用户在本项目中明确的工作方式偏好(调试版本、模型、代码组织、配置文件等)
type: feedback
---
# 用户协作偏好
## 【最高优先级】提交与推送流程(Gitea PR)
- 规则:**今后所有提交都 commit 到当前分支 `home-ai-dev`**,然后**自动推送**到代码服务器并
**创建 PR**。推送**必须严格使用**如下格式:
```bash
git push origin HEAD:refs/for/main/<你的分支名称>
```
- **绝对禁止**使用常规的 `git push origin <branch_name>`。
- **Why:** 必须带 `refs/for/main/` 引用格式,才能触发 **Gitea 的自动 PR 创建机制**。
其中 `main` 是**目标主分支**,`<你的分支名称>` 是当前工作的**临时特性分支**名。
- **How to apply:** 例:当前分支为 `home-ai-dev` 时执行
`git push origin HEAD:refs/for/main/home-ai-dev`。每次提交后自动完成推送 + 建 PR,无需再问。
注意 `home-ai-dev` 的 upstream 常显示 `[gone]`(合并后源分支被删),这不影响该推送方式。
## CAD 没开就自己打开,别问(自动加载已配好)
- 规则:需要 CAD 在线(慢层 `verify_*.py` / 端到端 `python -m dwg_review`)而
`127.0.0.1:8080` 未监听时,**自己启动 CAD,不要先问用户**。
- **Why:** 用户(2026-10-14)明确要求:「以后遇到 cad 没有运行的情况,就直接打开,
运行你的测试就行,我已经设置好了自动加载」。自动加载确实已配好。
- **How to apply:** PowerShell 里
`Start-Process "C:\Program Files\Autodesk\AutoCAD 2020\acad.exe"`,再轮询 8080
(实测约 10 秒内监听)。自动加载链路:`bin/Debug-R230/acad.rx`(内容一行
`cad_mcp_frame.arx`)+ 该目录已在 CAD 的搜索/信任路径中。
**注意**:CAD 默认打开的是**空模板**(0 图元、无图框),端到端审查会因
「未识别到任何图框」提前退出;要跑完整审查需另开一张真实图纸。
## 调试用 R230 + Debug,不用 Release
- 规则:涉及 CAD 版本的调试**只用 R230**,且配置用 **Debug**(非 Release)。
- **Why:** 用户明确要求;Release 曾造成误解(只构建了插件目标、没见基座 `.arx`)。
- **How to apply:** 任何联调/构建验证默认 `--config Debug` + `--preset R230`;
需要交叉验证时可另编 R243。
## 视觉模型用 `deepseek-flash`
- 规则:审查脚本调用的模型是 **`deepseek-flash`**,已确认支持视觉。
- **How to apply:** 脚本默认模型名保持 `deepseek-flash`;不要擅自换成其它模型。
## 插件代码集中在 `cad_mcp_plugins`
- 规则:DLL 工具的开发**全部实现在 `cad_mcp_plugins` 工程内**,便于统一管理。
- **How to apply:** 新增审查工具放进该工程;不要散落到其它目标。
## 封装常用函数
- 规则:编写代码时注意**封装常用函数**,避免重复。
- **How to apply:** 公共逻辑进 `dwg_review_common`;同类工具复用同一 helper。
## `mcp_config.json` 是注册工具的枢纽
- 规则:`mcp_config.json` 是向「基座」注册工具的**关键文件**,必须编辑它才能让工具生效。
- **How to apply:** 新增工具要同步更新模板 `src/cad_mcp_frame/cad-mcp-frame.json`
与运行时 `bin/<Config>-R230/mcp_config.json`;注意 `plugin_directory` 相对 `.arx` 目录解析。
## 命名前缀用 `dwg_review`
- 规则:审查相关源码前缀用 **`dwg_review`**,不用 `review_`(不够明确)。
## `ai.memory/` 要入库并推送到服务器,**不要**加进 `.gitignore`
- 规则:`CadProject/ai.memory/` 目录**不加入 `.gitignore`**,应作为 **`CadProject` 仓库的一部分**
提交并推送到远程服务器(`cad-agent.git`),以便 AI 在其它机器上接手记忆。
- **Why:** 用户希望记忆可跨机器共享/接管。
- **How to apply:** 不要建议把 `ai.memory/` 加入 `.gitignore`;提交/推送时正常包含它。
- 现状:`ai.memory/` **已入库**(提交 `chore(memory): 新增 ai.memory 记忆库`),随 `home-ai-dev`
正常提交并推送。(`CadProject` 已独立为单独仓库,远程 `cad-agent.git`。)
## 【重要】新建的 C++ 源文件必须存为 **UTF-8 with BOM**
- 规则:`src/` 下新增的 `.cpp` / `.h` 必须带 **UTF-8 BOM**(文件头 `EF BB BF`),与既有工程文件一致。
- **Why:** 工程未加 `/utf-8` 编译开关;无 BOM 的 UTF-8 文件会被 MSVC 按系统代码页(GBK)解析,
中文注释字节错位后会**吞掉紧随其后的声明/代码**,报出一堆离奇的
`C2447` / `C2039: 'xxx': is not a member of ...` / 行号错位错误,极难定位。
- **How to apply:** 用 Write 新建源文件后,立即补 BOM:
`printf '\xef\xbb\xbf' > f.tmp; cat f >> f.tmp; mv f.tmp f`(或确认 `head -c3 f | xxd -p` == `efbbbf`)。
既有文件(如 `dwg_review_*.cpp`、`StdAfx.h`)都带 BOM,可对照。