Reporails:Copilot 适配器,使用 Copilot 构建,供 Copilot 使用
Source: Dev.to
我构建的内容
Reporails 是一个用于 AI 代理指令文件(CLAUDE.md、AGENTS.md、copilot-instructions.md)的校验器。它会为你的文件打分,告诉你缺少了什么,并帮助你修复。
该项目已经支持 Claude、Code 和 Codex。此次挑战中,我 将 GitHub Copilot CLI 作为一等支持的代理——使用 Copilot CLI 本身来构建适配器。
架构本身已经是多代理设计。.shared/ 目录存放与代理无关的工作流和知识。每个代理都有自己的适配器,连接到共享内容。Claude 通过 .claude/skills/ 实现,Copilot 通过 .github/copilot-instructions.md 实现。
添加 Copilot 只用了 113 行——并不是因为工作很简单,而是因为架构已经就绪。
仓库
- CLI: reporails/cli (v0.3.0)
- Rules: reporails/rules (v0.4.0)
- Recommended: reporails/recommended (v0.2.0)
演示
在添加 Copilot 支持后,每个代理都有各自的规则集,不会相互影响:
| 代理 | 规则数 | 细分说明 |
|---|---|---|
| Copilot | 29 | 30 CORE – 1 excluded + 0 COPILOT‑specific |
| Claude | 39 | 30 CORE – 1 excluded + 10 CLAUDE‑specific |
| Codex | 37 | 30 CORE + 7 CODEX‑specific |
自行运行:
npx @reporails/cli check --agent copilot
我使用 GitHub Copilot CLI 的体验
它立即理解了架构
我解释了 .shared/ 文件夹——它是专门创建的,以便 Claude、Copilot(以及其他代理)能够引用相同的工作流和知识而不产生重复。Copilot 在第一次交流中就明白了:
Copilot 理解 .shared/ 架构
它提出的关键洞见是:“.shared/ 内容已经是代理无关的。两个代理都引用相同的工作流。不需要重复——只需要不同的入口点。”
这正是事实。Claude 通过 /generate-rule → .claude/skills/ → .shared/workflows/rule-creation.md 访问共享工作流。Copilot 读取指令 → .shared/workflows/rule-creation.md。目标相同,只是入口不同。
它构建了什么
Copilot 在三个阶段完成了完整的适配器:
- 基础 –
.github/copilot-instructions.md、agents/copilot/config.yml、更新backbone.yml,并验证测试框架支持--agent copilot。 - 工作流接线 – 在
copilot-instructions.md中添加入口点、上下文特定的条件指令,接线到.shared/workflows/和.shared/knowledge/。 - 文档 – 更新 README 和 CONTRIBUTING,加入代理无关的工作流指南。
Copilot 贡献等价完成
它帮助发现的 bug
在测试 Copilot 适配器时,我发现测试框架存在交叉污染 bug。运行 --agent copilot 时,它同样会测试 CODEX 规则,因为 _scan_root() 不加区分地扫描了 所有 agents/*/rules/ 目录。
修复只需三行 Python 代码:
# If an agent is specified, only scan that agent's rules directory
if agent and agent_dir.name != agent:
continue
测试框架代理隔离修复
模型选择器的惊喜
当我打开 Copilot CLI 的模型选择器时,默认模型是 Claude Sonnet 4.5。用运行 Claude 的 Copilot CLI 来构建 Copilot 适配器,这种讽刺并没有逃过我的眼睛。
实际上有效的地方
Copilot CLI 在没有任何手把手指导的情况下就理解了多代理架构。它生成的配置文件与现有适配器模式完全匹配,在所有提交中都加入了共同作者签名,并且没有复制共享内容——它只是把入口点接好。
整个体验再次印证了我一直在思考的观点:工具不如底层架构重要。只要项目结构合理,任何称职的代理都能进行扩展。这正是 Reporails 的核心——确保你的指令文件足够好,以至于代理真的能够帮助你。
在此挑战期间还发生了什么
在构建 Copilot 适配器的过程中,我重新…
从头构建了完整的规则框架,将规则数量从 47 条(v0.3.1)减少到 35 条(v0.4.0)——规则更少,质量显著提升。每条规则现在都是独立的、可检测的,并且有证据支持。但这另有故事,留待下篇。
试一试:
npx @reporails/cli check 

