O Ruler é uma ferramenta de linha de comando de código aberto criada para ajudar os desenvolvedores e as equipes a gerenciar configurações de regras para vários agentes de codificação de IA (por exemplo, GitHub Copilot, Claude, Cursor, Aider etc.) de forma unificada. Ela faz isso por meio de um .ruler/
O Ruler oferece suporte a vários agentes de codificação de IA com uma interface de linha de comando simples. Os desenvolvedores só precisam manter um único arquivo de regras para garantir que todos os agentes de IA sigam uma especificação de codificação consistente. O Ruler oferece suporte a uma ampla variedade de agentes de codificação de IA e tem uma interface de linha de comando fácil de usar, o que o torna adequado para equipes de desenvolvimento que precisam colaborar entre ferramentas. Desenvolvido por Eleanor Berger (@intellectronica) e hospedado no GitHub, o projeto está atualmente na versão 0.2.10, escrita em TypeScript sob a licença MIT.
Lista de funções
- Gerenciar centralmente as regras do agente de codificação de IA por meio do
.ruler/
O diretório armazena arquivos de regras de maneira uniforme. - Distribuir automaticamente regras para perfis de agentes de IA compatíveis (por exemplo, GitHub Copilot, Claude, Cursor, Aider, AugmentCode etc.).
- Com o apoio de
ruler.toml
O arquivo ajusta o agente de destino e o caminho de saída. - Fornece ferramentas simples de linha de comando para dar suporte a
apply
erevert
e outros comandos para gerenciar a geração e o desfazimento de configurações. - Oferece suporte à configuração global, armazenada no
$XDG_CONFIG_HOME/ruler
(Padrão)~/.config/ruler
) para facilitar o uso em vários projetos. - gerenciamento automático
.gitignore
impedindo que o arquivo de configuração do proxy gerado seja rastreado pelo sistema de controle de versão. - Suporte de extensão para adicionar facilmente novos adaptadores de agente de IA.
- Forneça registros detalhados e alertas de erro para facilitar a depuração e a configuração otimizada.
Usando a Ajuda
Processo de instalação
O Ruler é uma ferramenta baseada no Node.js que requer o Node.js 18.x ou superior. Aqui estão as etapas detalhadas de instalação:
- armazém de clones
Clone o repositório do Ruler localmente executando o seguinte comando em um terminal:git clone https://github.com/intellectronica/ruler.git cd ruler
- Instalação de dependências
Use o npm para instalar as dependências necessárias:npm install
- Criar o projeto
Código TypeScript para criar o Ruler:npm run build
- Instalação global (opcional)
Se quiser usar o Ruler em qualquer diretório, você pode instalá-lo globalmente:npm install -g @intellectronica/ruler
- Verificar a instalação
Execute o seguinte comando para verificar se o Ruler está instalado corretamente:ruler --version
Se você retornar algo como
0.2.10
número da versão, indicando que a instalação foi bem-sucedida.
Configuração e uso
A função principal do Ruler é gerenciar as regras dos agentes de codificação de IA de forma unificada. Aqui estão as etapas para fazer isso:
1. criação de um catálogo de regras
No diretório raiz do projeto, crie o arquivo .ruler/
e adicione um arquivo de regras no formato Markdown a ele. Exemplo:
mkdir .ruler
touch .ruler/coding_guidelines.md
touch .ruler/style_guide.md
existir coding_guidelines.md
Escreva regras, por exemplo:
# Python 项目规范
## 代码风格
- 遵循 PEP 8 规范
- 使用类型注解定义函数签名
- 函数保持单一职责,代码行数不超过 50 行
## 错误处理
- 使用具体异常类型,避免使用通用 `Exception`
- 记录错误时包含上下文信息
O conteúdo de cada arquivo Markdown é automaticamente emendado, com tags de origem adicionadas durante a emenda (por exemplo --- Source: coding_guidelines.md ---
) para facilitar o rastreamento.
2. configuração ruler.toml
No diretório raiz do projeto, crie o arquivo ruler.toml
para especificar o agente de IA de destino e o caminho de saída. Exemplo:
[agents.copilot]
output = ".copilot/config.yml"
[agents.claude]
output = ".claude/config.json"
aprovar (um projeto de lei ou inspeção etc.) ruler.toml
É possível controlar para quais agentes as regras são distribuídas e os caminhos dos arquivos de configuração correspondentes.
3. regras de aplicação
estar em movimento ruler apply
que define o comando .ruler/
As regras no diretório são distribuídas para o arquivo de configuração do agente de IA de destino:
ruler apply
Se você precisar especificar um proxy específico, poderá usar a opção --agents
Parâmetros:
ruler apply --agents copilot,claude
O Ruler o lerá recursivamente. .ruler/
diretório de todos os .md
emenda o conteúdo e gera ou atualiza o arquivo de configuração para o agente correspondente.
4. desconfiguração
Se você precisar reverter para o estado anterior à aplicação da regra, poderá usar a função revert
Comando:
ruler revert
Esse comando gerará um arquivo de backup com base no arquivo de backup (.bak
) Restaure o arquivo de configuração original ou exclua o arquivo gerado pelo Ruler.
5. uso da configuração global
Se o projeto não tiver um .ruler/
o Ruler usa a configuração global (localizada por padrão no diretório ~/.config/ruler
). Crie uma configuração global:
mkdir -p ~/.config/ruler
touch ~/.config/ruler/global_guidelines.md
existir global_guidelines.md
Escreva as regras na seção ruler apply
A configuração global é aplicada automaticamente quando o
6. teste e comissionamento
O Ruler oferece recursos de teste e depuração para garantir a configuração adequada:
- Execute o teste:
npm test
- Visualizar a cobertura do teste:
npm run test:coverage
- Código de formatação:
npm run format
7. extensão de novos agentes
O Ruler suporta a extensão de novos adaptadores de agentes de IA. Os desenvolvedores podem adicionar um novo adaptador de agente de IA à seção src/agents/
para adicionar um novo código de adaptador que segue a estrutura dos adaptadores existentes (como o copilot.ts
). Em seguida, atualize o ruler.toml
e argumentos de linha de comando para habilitar o suporte a novos agentes.
Operação da função em destaque
- Regras de distribuição automáticaRuler through
ruler apply
que define o comando.ruler/
O conteúdo dos arquivos Markdown no diretório é distribuído para os perfis dos agentes de IA especificados, eliminando a necessidade de ajustar manualmente as configurações de cada agente. - Suporte a vários proxiesGitHub Copilot, Claude, Cursor, Aider, AugmentCode e outros proxies são atualmente suportados, e a versão mais recente (v0.2.10) adiciona suporte para JetBrains Junie e AugmentCode.
- Desfazer::
ruler revert
para desfazer com segurança todos os arquivos de configuração gerados pelo Ruler, adequado para limpar o ambiente ao fazer experimentos ou trocar de projeto. - configuração global: através de
$XDG_CONFIG_HOME/ruler
Oferece suporte a regras comuns entre projetos, reduzindo o esforço de configurações duplicadas.
cenário do aplicativo
- Desenvolvimento do trabalho em equipe
Em equipes com vários desenvolvedores, em que diferentes desenvolvedores podem usar diferentes agentes de codificação de IA (por exemplo, Copilot e Claude), o Ruler fornece gerenciamento de regras unificado para garantir que todos os agentes sigam a mesma especificação de codificação, reduzindo os conflitos de estilo de código. - Gerenciamento de projetos de código aberto
Os projetos de código aberto precisam fornecer aos colaboradores especificações de codificação claras..ruler/
os colaboradores simplesmente executamruler apply
O agente de IA local pode ser configurado automaticamente. - Regras de reutilização entre projetos
Os desenvolvedores precisam de especificações de codificação consistentes em vários projetos. O recurso de configuração global do Ruler permite que os desenvolvedores~/.config/ruler
Definir regras genéricas para reutilização em projetos. - Experimentação e depuração rápidas
Ao experimentar diferentes agentes de IA ou configurações de regras, o Rulerrevert
pode limpar rapidamente o ambiente, o que é adequado para os desenvolvedores que estão testando novas regras ou trocando de agentes.
QA
- Quais agentes de codificação de IA são compatíveis com o Ruler?
O Ruler é compatível com os agentes GitHub Copilot, Claude, Cursor, Aider, OpenAI Codex CLI, Windsurf, Cline, Firebase, Gemini CLI, Junie e AugmentCode. Mais agentes podem ser adicionados por meio de extensões. - Como faço para migrar para uma nova versão?
O Ruler v0.2.0 e versões anteriores são compatíveis com versões anteriores. Existente.ruler/
Catálogo eruler.toml
O arquivo pode continuar a ser usado. Novos recursos (como registro detalhado e alertas de erro) precisam ser ativados por meio de argumentos de linha de comando. - Como depurar problemas de aplicativos de regras?
estar em movimentoruler apply
ao adicionar--verbose
para visualizar o registro detalhado. Também é possível executarnpm test
Verifique a integridade do código ou use onpm run test:coverage
Visualizar a cobertura do teste. - Como faço para adicionar suporte a novos agentes?
existirsrc/agents/
para criar o código do adaptador para o novo agente, fazendo referência aos adaptadores existentes (como ocopilot.ts
). Atualizaçõesruler.toml
responder cantando--agents
para habilitar o novo agente.