自动同步 GitHub copilot 和 codebuddy 的配置目录

文章目录

    在当前项目的开发中,我同时使用了 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式