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 deprotected_filesna inicialização domcp_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 tipoPendingApprovalnogbr_disk_loge 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_aifor questionado sobre bibliotecas ou sintaxes específicas do Gleam, o Agente *deve* priorizar o acionamento da ferramenta MCP de Grep Semântico (read_resourceapontado para o diretório localbuild/) 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ávelallowed_rootdo 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:nanoouvimvia 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_checkforError(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 demax_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 erroSecurity Violationsem acionar o sistema operacional.