Kit copiável · Claude Code + Codex · pela assinatura

Seus agentes usando as ferramentas que você já tem

Uma pasta runtime/ que ensina o Claude Code e o Codex a descobrir, conectar e usar seus sistemas, com regras claras do que podem fazer sozinhos. Sem servidor, sem API paga.

Banner do INEMA Agent Runtime: agentes que usam suas ferramentas, pela assinatura e com política de permissões
O que é

Um kit, não uma plataforma

Quatro arquivos de regras, scripts de diagnóstico e verificação, pontes, uma guarda e 7 receitas testadas. Você copia para o seu projeto e os agentes passam a seguir as mesmas regras.

Os blocos do kit: escada de vias, capacidades, política, roteamento, ponte MCP e receitas

🪜 Escada de vias

Antes de dizer "impossível", o agente sobe a escada API → MCP → CLI → SDK → uso do computador → ponte local e usa a via mais estável que existir.

🛡️ Política de permissões

Ler é livre; alterar arquivo, ele faz e avisa; enviar pede antes; gastar dinheiro ou apagar dados, ele só prepara. O .claude/settings.json já bloqueia rm -rf.

💳 Pela assinatura

Usa o Claude Code e o Codex CLI que você já tem logados. Nenhuma API paga é pré-requisito. Modelos locais do Ollama são opcionais.

Como funciona

O ciclo do runtime

Cada etapa tem um arquivo. Toda ação passa pela POLITICA.md.

Descobrir→ Conectar→ Rotear→ Executar→ Observar→ Verificar→ Aprender
1

CAPACIDADES.md

Mapa das ferramentas: uma linha por sistema, com a via, o nível e a data do teste. Sistema sem linha não é usado.

2

POLITICA.md

Níveis de autonomia N0 a N4 e o teto de cada tipo de ação. "Sempre permitir" nunca passa do teto.

3

ROTEAMENTO.md

Qual modelo para qual tarefa (super, topo, executor, menor). Comece no menor que resolve.

4

LEIA-ME.md

O ciclo, a ordem para começar e a escada das vias com exemplos.

A escada das vias (use a mais alta que existir)

NívelViaExemploEstabilidade
1API oficialAPI do ERPalta
2MCPclaude mcp listalta
3CLIcodex exec, gh, gitalta
4SDK / bibliotecapacote npm/pipmédia
5Uso do computadornavegador automatizado, cliques na telabaixa
6Ponte localexportação CSV, pasta, banco SQLite, porta localmédia
7Engenharia reversaobservar o app rodando para achar a viasó laboratório: quebra na próxima atualização

Teto por tipo de ação

AçãoTetoNo Claude CodeNo Codex
Ler arquivo, página, planilhaN4permitido-s read-only
Criar/alterar arquivo do projetoN3acceptEdits-s workspace-write
Comando que altera o sistemaN2pede confirmaçãosem auto-aprovação
Enviar (e-mail, mensagem, post, push)N2pede confirmaçãosem auto-aprovação
Gastar dinheiro ou créditoN1bloqueadonão executar
Apagar dados / produçãoN1 + backupbloqueado (rm -rf)não executar

N0 só conversa · N1 prepara e o humano executa · N2 executa depois de pedir · N3 executa e avisa · N4 executa sem aviso. O agente não muda as próprias regras: ele propõe uma linha na tabela "Aprendizado" da POLITICA.md e você aprova.

Pré-requisitos

O que precisa estar instalado

Linux ou Mac. No Windows, use WSL. O diagnóstico só lê versões e status locais: não chama modelo nem API.

Node 18+

Roda o diagnóstico, a ponte MCP e os scripts de observar e verificar.

node --version

Claude Code e/ou Codex

Pelo menos um dos dois, logado pela assinatura.

npm i -g @anthropic-ai/claude-code
npm i -g @openai/codex
codex login

Ollama (opcional)

Modelos locais grátis para tarefas leves. O diagnóstico mostra se está presente.

ollama --version
Guia de uso · passo a passo

Do clone ao primeiro time de agentes

Cada receita termina com uma prova: um comando e a saída que tem de aparecer. Se a prova não bate, o passo não está pronto.

1

Copie o kit e rode o diagnóstico

Mostra o que está instalado e logado: Node, Claude Code, Codex e Ollama.

git clone https://github.com/inematds/inema-agent-runtime meu-projeto
cd meu-projeto
node runtime/scripts/doctor.mjs   # prova: PRONTO no fim
2

Preencha o mapa de capacidades com o agente

Abra claude (ou codex) na pasta e peça para subir a escada nível por nível. Só entra linha com teste feito.

# dentro do claude ou do codex:
Leia runtime/LEIA-ME.md e me ajude a preencher o CAPACIDADES.md para o meu trabalho.
3

R1 · Claude usa o Codex

Ponte por CLI (nível 3). Por padrão o Codex só lê; alterar arquivos (N3) só se você passar workspace-write.

chmod +x runtime/pontes/codex-exec.sh
runtime/pontes/codex-exec.sh "Responda apenas PONG"   # prova: PONG
runtime/pontes/codex-exec.sh "Crie notas.txt com a palavra OK" "$PWD" workspace-write
4

R2 · Time de três papéis

Planejador (opus), executor (sonnet) e revisor (haiku), definidos em .claude/agents/. Cada um usa o modelo que precisa e a cota rende mais.

claude -p "Use o time (planejador, executor, revisor). Tarefa: crie saudacao.txt com a frase 'Olá, comunidade INEMA'. Termine com a resposta do revisor."
# prova: saudacao.txt tem a frase e a resposta termina com APROVADO
5

R3 · Ponte MCP para um sistema sem API

O ERP ou a agenda exportam arquivo; a ponte lê esse arquivo e entrega ao agente como ferramenta só de leitura. Servidor MCP sem dependências, já registrado no .mcp.json.

node runtime/pontes/mcp-modelo/server.mjs --selftest   # prova: tools: 2 e TOTAL: R$ 856.00
claude mcp list                                         # ponte-modelo … Connected
codex mcp add ponte-modelo -- node "$PWD/runtime/pontes/mcp-modelo/server.mjs"
6

R4 · Time em segundo plano

Várias sessões do Claude ao mesmo tempo, cada uma com nome, papel e modelo. Marque a pasta como confiável uma vez. Cada sessão consome a cota.

claude --bg --permission-mode plan --name revisor "Leia runtime/POLITICA.md e responda em uma linha qual é o teto de 'Enviar'."
claude --bg --model sonnet --name executor "Crie resumo.md com 3 linhas sobre o que é este kit."
node runtime/scripts/observar.mjs   # tabela com id, tipo, nome e estado
7

R5 · Navegador com política

Para sistemas que só existem como site. Ler página é N4; preencher ou enviar pede antes; pagar, nunca.

npm i -g agent-browser
agent-browser install
agent-browser open https://example.com
agent-browser get title   # prova: Example Domain
agent-browser close
8

R6 · Agente longo com verificação

O agente só termina quando os critérios comando → saída esperada do goal passam, e não quando ele acha que terminou.

node runtime/scripts/verificar.mjs runtime/exemplos/goal-exemplo.md
# prova: 4/4 critérios OK e saída 0; quebre um critério e a linha vira FALHA
9

R7 · Guarda e painel

Com vários agentes ao mesmo tempo, a guarda pega dois riscos antes de acontecer, e nunca decide sozinha: ela pergunta (N2). Colisão: antes de editar um arquivo que outra sessão editou, ou que mudou por fora (Codex, editor, outra pessoa) nos últimos 30 min. Raio: antes de rm ou git clean, mostra quantos arquivos seriam apagados, o tamanho e os primeiros caminhos. Neste kit ela já vem ligada pelo .claude/settings.json; para levar a outro projeto, use um dos jeitos: o comando abaixo ou copiar o bloco hooks do .claude/settings.json trocando o caminho.

# guarda em outro projeto (só nesta sessão)
claude --plugin-dir /caminho/do/kit/runtime/mods/runtime-guarda
# painel opcional: na sessão, digite /painel
claude --plugin-dir runtime/mods/runtime-painel
claude plugin test runtime/mods/runtime-painel   # prova: 1 pass

O painel lista as sessões do claude --bg (nome, estado, minutos), com Atualizar e Parar: só o seu clique para uma sessão. INEMA_COLISAO_MIN=60 muda a janela da colisão. O Codex ainda não tem um gancho "antes de editar" equivalente: a colisão protege as sessões do Claude e detecta edições feitas pelo Codex pela data do arquivo.

Exemplos

Do escritório ao consultório

Os arquivos de exemplo em runtime/exemplos/ simulam os dois casos mais comuns da comunidade: sistema sem API que exporta planilha.

🧾 Contador(a) com ERP sem API

O ERP exporta um CSV de vendas. A ponte expõe a ferramenta resumo_vendas; o time da R2 monta o resumo e o revisor confere os totais.

# runtime/exemplos/erp-vendas.csv
data,cliente,produto,quantidade,valor_unitario
2026-10-01,Mercado Sol,Café 500g,10,18.50
# selftest da ponte → TOTAL: R$ 856.00

🩺 Clínica com agenda em planilha

A agenda vive numa planilha. A ferramenta listar_horarios_livres devolve só as linhas livre, filtrando por data e profissional.

claude -p "Use a tool listar_horarios_livres da ponte-modelo e diga os horários livres de 2026-10-07."
# prova: 08:00 (Dra. Ana) e 16:00 (Dr. Bruno)

Para usar com o seu sistema: aponte PONTE_DADOS=/caminho/da/exportacao no campo env do .mcp.json, troque as colunas usadas em run(), mantenha as ferramentas só de leitura e anote a ponte no CAPACIDADES.md com a data do teste.

Roadmap

Em fases, cada uma provada

Cada fase só fecha quando as provas rodam. As provas rodadas de cada versão estão no CHANGELOG.md.

Fase 1
Kit mínimo · 0.1.0 · prontaQuatro arquivos de convenção, diagnóstico, ponte codex-exec.sh, receitas R1 e R2 e bloqueios no .claude/settings.json. Provas rodadas em Linux pela assinatura.
Fase 2
Pontes, observar e verificar · 0.2.0 · prontaPonte MCP sem dependências, observar.mjs, verificar.mjs e receitas R3 a R6.
Fase 3
Guarda e painel · 0.3.0 · prontaMod runtime-guarda (colisão e raio, já ligado no kit), mod opcional runtime-painel com /painel e receita R7.