Gleam.br Wiki

EARS: Especificação do Tooling Seguro e Ambientes de IA | Wiki

Documentação de engenharia e especificações técnicas da Gleam-BR.

EARS: Especificação do Tooling Seguro e Ambientes de IA

*Requisitos Ubíquos (Ubiquitous Requirements)*

  • *UBQ-AI-01:* O módulo FileSystem MCP *deve* realizar chamadas nativas de detecção de Sistema Operacional (os:type()) para aplicar normalização apropriada de diretórios, garantindo que o chroot não seja bypassado no Windows 11 (devido a maiúsculas/minúsculas) enquanto preserva o rigor case-sensitive em ambientes Linux/Unix.
  • *UBQ-AI-02:* A CLI gleambr_ai *deve* ler seu contexto operacional a partir de perfis predefinidos (.gbr_envs/*.toml), injetando o System Prompt correspondente, o diretório raiz permitido e a lista de protected_files na inicialização do mcp_context_manager.

*Requisitos Orientados a Eventos (Event-Driven Requirements)*

  • *EVD-AI-01:* Quando a intenção do Agente for gravar em um arquivo da lista protected_files (ex: gleam.toml), o Sistema *deve* gerar um evento do tipo PendingApproval no gbr_disk_log e retornar o status assíncrono ao Agente, devolvendo o controle da thread Erlang.
  • *EVD-AI-02:* Quando o Agente receber a ordem do humano (via LLM) para estabelecer contato externo, o Sistema *deve* orquestrar a discagem gbr_p2p.dial, negociar o Handshake Noise, e encapsular o tráfego do Chat no stream Yamux criptografado.

*Requisitos Orientados a Estado (State-Driven Requirements)*

  • *STD-AI-01:* Enquanto o gleambr_ai for questionado sobre bibliotecas ou sintaxes específicas do Gleam, o Agente *deve* priorizar o acionamento da ferramenta MCP de Grep Semântico (read_resource apontado para o diretório local build/) antes de tentar gerar código inferido por seus tensores latentes.

*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)*

  • *UNW-AI-01:* Se ocorrer uma falha de compilação pós-geração de código (gleam check == Error), a CLI *não deve* exibir o traceback no terminal primário do usuário imediatamente, mas *deve* encapsular o erro do compilador e realimentá-lo silenciosamente ao modelo BYOC para auto-correção.

Depreciado (mantido p/ análise) EARS: Especificação do Ecossistema "Gleam Developer"

*Requisitos Ubíquos (Ubiquitous Requirements)*

  • *UBQ-DEV-01:* O módulo de FileSystem MCP *deve* sanitizar todos os caminhos de arquivos fornecidos pelo LLM, resolvendo-os para caminhos absolutos e verificando se estão contidos dentro da variável allowed_root do Environment atual.
  • *UBQ-DEV-02:* O Agente *deve* sempre utilizar formatação unificada (invocando gleam format) em qualquer código gerado antes de salvar o conteúdo final no disco.

*Requisitos Orientados a Eventos (Event-Driven Requirements)*

  • *EVD-DEV-01:* Quando a ferramenta interceptar uma requisição de escrita para um arquivo listado no array protected_files (ex: gleam.toml), o sistema *deve* suspender a execução do LLM e exibir o diff (diferença) da alteração no terminal aguardando a decisão do operador (Human-in-the-Loop).
  • *EVD-DEV-02:* Quando o operador selecionar a opção [Editar] em uma requisição HITL, a CLI *deve* abrir o payload em um editor de texto temporário (ex: nano ou vim via variável $EDITOR), e após o fechamento, utilizar o conteúdo alterado pelo humano como o retorno de sucesso para a ferramenta MCP.

*Requisitos de Estado (State-Driven Requirements)*

  • *STD-DEV-01:* Enquanto o resultado da ferramenta interna gleam_check for Error(compiler_output), a CLI *deve* automaticamente realimentar o LLM com a mensagem de erro da linguagem, bloqueando o avanço do raciocínio até que o código compile, respeitando um limite de max_retries (ex: 3 tentativas).

*Requisitos de Comportamento Indesejado (Unwanted Behavior Requirements)*

  • *UNW-DEV-01:* Se o Agente tentar ler ou escrever utilizando sequências de diretório ascendente (ex: ../../etc/passwd), a ferramenta *deve* recusar a execução com um erro Security Violation sem acionar o sistema operacional.