在当前项目的开发中,我同时使用了 GitHub copilot 和 codebuddy (公司用的是这个,但是额度有限,不够用),但是两个 AI 工具的配置目录不同,是否可以实现一个工具自动同步这两个目录呢?
首先,对比两者的项目级配置目录名字及结构的不同。
GitHub copilot 的配置目录
- 项目级:.github/copilot-instructions.md
- 路径级:.github/instructions/*/.instructions.md
这里路径级的意思是,针对项目中不同的路径,可以有不同的 instruction 文件。例如,在文件的开头加上
---
applyTo: "**/*.ts,**/*.tsx"
---
则是针对项目中所有的 ts 和 tsx 文件生效。
CodeBuddy 的配置目录
https://www.codebuddy.cn/docs/cli/codebuddy-dir
.codebuddy/
├── settings.json # 项目共享配置
├── settings.local.json # 本地个人配置(.gitignore 自动忽略)
├── CODEBUDDY.md # 项目级记忆文件
│
├── agents/ # 项目级自定义子代理
├── rules/ # 项目级规则文件
├── skills/ # 项目级技能
├── commands/ # 自定义斜杠命令
codebuddy 这个 rules 目录跟 github copilot 的 instructions 目录并不是一回事。
.codebuddy/rules/
├── code-style.md # 代码风格规范
├── testing.md # 测试规范
├── security.md # 安全要求
└── frontend/
├── react.md # React 组件规范
└── styles.md # 样式规范
同步规则
- 以 .codebuddy 目录为主。因为我在项目全局提示词里加入了一条规则。每当修复了一个问题,如果可以复用,就总结一下自动添加到 .codebuddy/CODEBUDDY.md 中
- 将 .codebuddy/CODEBUDDY.md 复制到 .github/copilot-instructions.md
- 将 .codebuddy/rules 目录下的所有文件,复制到 .github/instructions 目录下,并将文件后缀改为 .instructions.md。但是文件内容要按照 copilot 的规范来
用 Python 写一个脚本,按照上述步骤来即可。
前提是,先规整一下 .codebuddy 目录的下的所有文件,确保包含了此前 .github 目录下的所有 instruction 文件。
vscode task 配置
可以新建一个 .vscode/tasks.json 文件,配置一个任务,执行这个脚本。这样就可以通过 Ctrl+Shift+P -> Run Task 快速运行。或者直接快捷键 Ctrl+Shift+B 运行默认的 build 任务。
{
"version": "2.0.0",
"tasks": [
{
"label": "Sync AI Config",
"type": "shell",
"command": "python tools/sync_ai_config.py",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
}
}
]
}
其他
我本以为可以直接通过软连接的方式就能解决,但是发现不同 AI 工具的配置目录结构也不同。所以还是写个脚本做同步比较好。
一直闷头做迁移太枯燥了,不如迁移几个功能后,把需要手动处理的操作,做成自动化工具。即可以提高效率,还能放松一下心情。
关于作者 🌱
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式