intellectronica/ruler

Ruler — apply the same rules to all coding agents

它解决了什么问题

Ruler 解决了在多个工具之间管理 AI 编码助理指令的复杂性。当团队使用不同的代理(例如 GitHub Copilot、Claude、Cursor 与 Aider)时,常会遇到指引不一致、维护多个配置文件的工作重复,以及随着项目需求变化而产生的上下文漂移。Ruler 提供单一真相来源,确保所有 AI 代理遵循相同的规则。

它如何工作

Ruler 在 .ruler/ 目录中使用 Markdown 文件集中指令,然后自动将这些规则分发到各支持 AI 代理所需的特定配置文件。

关键机制包括:

  • 规则拼接:递归发现 .md 文件并将其拼接到目标代理的配置文件中,添加来源标记以便追踪。
  • 嵌套规则加载:使用 --nested 标志,Ruler 可以从项目层级中的多个 .ruler/ 目录加载指令,允许针对不同组件设置专属规则(例如 /src/tests 的规则不同)。
  • 配置ruler.toml 文件管理代理选择、输出路径和 Model Context Protocol(MCP)服务器设置。
  • 自动化:可以自动更新 .gitignore,将生成的配置文件排除在版本控制之外。

适用人群

它面向在复杂代码库或 monorepo 中工作的开发者和团队,这些团队使用一个或多个 AI 编码助理,并希望在整个开发环境中保持一致的 AI 行为。

亮点

  • 广泛的代理支持:兼容众多工具,包括 GitHub Copilot、Claude Code、Cursor、Windsurf、Cline、Aider 等。
  • MCP 传播:管理并分发 Model Context Protocol(MCP)服务器设置至各代理。
  • 单一真相来源:无需手动编辑多个代理专属的配置文件。
  • 上下文感知规则:支持嵌套目录,以提供细粒度、区域特定的指令。
  • 安全特性:包含 revert 命令,可撤销更改并从备份恢复原始文件。