/LEH-jee/Especificação aberta e ferramentas

Torne o seu
contexto legível.

Leji oferece um lugar próprio para a intenção que hoje fica escondida em conversas da equipe e em instruções específicas de cada ferramenta: uma camada de contexto compartilhada, revisada e de propriedade da sua equipe. Leji padroniza o formato e a governança, não o conteúdo. Pessoas e agentes passam a ler a mesma fonte, e o conjunto de ferramentas de validação torna os desvios visíveis.

Tradução assistida por agentes de IA. Em caso de divergência, prevalece a página em inglês. Se você encontrar algum problema no texto, abra uma issue ou envie um pull request.

$ leji adopt --yes --wire-adapters
Wrote 16 files (context root: docs/):
   .leji/work/onboarding-brief.md   AGENTS.md   docs/agents/core.md   …

$ leji validate
ok (0 errors, 0 warnings)

$ leji conformance
ok (0 errors, 0 warnings; claimedLevel: core, verifiedLevel: core, processAttested: 4)
npm install -g @leji-org/leji

Livre e de código aberto · Apache-2.0 · CC-BY-4.0

Adoção, não migração

Comece pelo repositório que você já tem.

A CLI gera a estrutura de uma camada de contexto sobre a árvore existente. Nada muda de lugar, e os pontos de entrada só são alterados quando você solicita isso com --wire-adapters.

  1. Primeiro

    Gera a estrutura em torno da sua árvore

    adopt reaproveita a raiz da sua documentação, cria os arquivos iniciais de índice por categoria e copia para a camada de contexto as instruções que já estão no ponto de entrada do agente. Nada do que você escreveu muda de lugar, e nenhum ponto de entrada é reescrito até que você peça com --wire-adapters.

  2. Depois

    O seu agente propõe o mapeamento

    Com o roteiro de integração, seu agente lê o repositório e propõe a categoria de cada documento. Você revisa essa proposta como faria com qualquer outra mudança.

  3. Daí em diante

    Governa a partir dali

    As mudanças seguem o processo de revisão e aprovação do seu repositório. A validação no CI detecta desvios, e os horizontes de atualidade sinalizam o contexto que envelheceu.

Lida por pessoas, acessada por agentes

Uma fonte, dois públicos.

Um registro pertencente ao repositório que mostra como a sua equipe pensa: linguagem do domínio, restrições, decisões, convenções e travas de proteção para agentes. Uma única fonte, alterada por um só processo de revisão e aprovação.

Camada de contexto compartilhadaalterada por revisão

Para pessoas

Qualquer pessoa da equipe pode consultar a mesma camada de contexto indicada aos agentes. leji view abre a camada de contexto compartilhada, apresentada de forma legível por humanos no navegador.

Para agentes

Os agentes entram pelo perfil de boot, o único arquivo que diz o que carregar antes de uma tarefa; os arquivos de ponto de entrada (AGENTS.md, CLAUDE.md) redirecionam para lá em vez de carregar a própria cópia. O servidor MCP fornece a eles a especificação e os schemas e permite que validem a camada e pontuem a conformidade nativamente.

Conformidade

Declare um nível e depois verifique-o.

São quatro níveis cumulativos, avaliados pelo que está em funcionamento, não por uma percepção de maturidade. A maioria das equipes chega a governed e para por aí. A CLI verifica o que pode ser conferido por máquina; a sua equipe responde pelo restante.

  1. coreContexto compartilhado da equipemanifesto, perfil de boot, conteúdo real, uma primeira decisão, um dono nomeado.
  2. indexedLegível para as ferramentasum índice gerado e um changelog legível por máquina.
  3. governedRevisado, com desvio verificadorevisão por pull request, perfis de agente, CI e horizontes de atualidade verificados.
  4. federatedPrática de alcance organizacionalum mount fixado em outros repositórios, com relato de pin desatualizado. Como a federação funciona.

Por que é construído assim

Intenção duradoura, compartilhada em um círculo e verificada por mecanismos.

I.

Intenção acima de instruções

A intenção duradoura pertence a uma única camada de contexto revisada, da qual pessoas e agentes derivam suas ações. Os pontos de entrada de fornecedor redirecionam para essa camada, portanto o contexto de uma equipe nativa de IA sobrevive a qualquer ferramenta. Por que a intenção dura.

II.

Um círculo, não um degrau

Humano para humano, humano para IA e humano para IA para humano são fluxos de primeira classe em torno de uma única camada de contexto compartilhada. Todos leem, qualquer pessoa pode propor, e pessoas aprovam por pull requests. Por que o círculo funciona.

III.

Mecanismo acima de boa vontade

A realidade muda e o contexto compartilhado se deteriora. A revisão de código, as verificações mecânicas de desvio e os horizontes de atualidade transformam a manutenção em um processo sistemático; o contexto desatualizado nunca é tratado silenciosamente como atual. Por que os mecanismos importam.

O ponto de entrada de máquina

Um arquivo de manifesto

A árvore docs/ que você já tem se torna conforme por mapeamento, não por renomeação. Um único leji.json na raiz do repositório declara a raiz do contexto, o perfil de boot, os mapeamentos de categoria e a declaração de conformidade.

Uma camada de contexto enxuta não precisa de nenhum arquivo de fornecedor: a invocação direciona o host de agente para o perfil de boot, ou leji start abre nesse ponto um host detectado.

Os arquivos de ponto de entrada funcionam como ponteiros, nunca como destino final. AGENTS.md é o ponteiro portátil que muitos hosts de agente leem; o guia de adoção cobre o resto.

Referência do manifesto →

{
  "leji": "1.0",
  "name": "acme-billing-context",
  "description": "Shared context layer for this repository.",
  "rootPath": "docs/",
  "bootProfilePath": "docs/boot-profile.md",
  "categories": {
    "domain": { "indexes": ["docs/context/domain.md"] },
    "system": { "indexes": ["docs/context/system.md"] },
    "governance": { "indexes": ["docs/context/governance.md"] },
    "decisions": { "indexes": ["docs/context/decisions.md"] }
  },
  "owners": { "primary": { "name": "Acme Platform Team", "contact": "platform@acme.example" } },
  "conformance": { "claimedLevel": "core" },
  "vendorAdapters": ["AGENTS.md"]
}