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 指令,可撤銷變更並從備份還原原始檔案。