O OS completo de uma clínica odontológica, construído camada por camada com a skill os-agentes. Seis pastas, nenhuma linha de código.
# o OS inteiro é uma pasta criaagentes/ ├── CLAUDE.md # quem ele é ├── substrate/ # o que ele sabe │ ├── compendium.md # ← a única fonte │ ├── sources.md │ └── subject-matter-expertise/ ├── rules/ # o que ele nunca faz │ ├── never.md │ └── always.md ├── skills/ # como ele responde │ └── responder-duvida-whatsapp/ ├── tools.md # o que ele alcança ├── agents/ # quem decide │ └── recepcionista-whatsapp/ ├── memory.md # toda decisão e o porquê └── OS-AUDIT.md # onde ele quebra primeiro
Este repositório é o estudo de caso completo de um atendente de WhatsApp para a Clínica Sorriso Prime (uma clínica fictícia, usada para demonstração). Ele foi construído inteiro com a skill os-agentes (/os-agentes), uma camada por vez, e cada decisão está registrada com o motivo. A maioria das mensagens que chega no WhatsApp de uma clínica é gente nova perguntando preço e horário. É isso que ele resolve.
Se não está escrito no compêndio, não existe. O assistente não completa a resposta por conta própria, mesmo quando a resposta parece óbvia. Teste rápido de qualquer resposta: onde é que isso está escrito?
Dor, sintoma, remédio, desconto, reclamação, urgência ou qualquer coisa fora do compêndio viram alerta no Telegram, com prioridade normal, alta ou urgente. Parar não é o agente falhando, é o agente funcionando.
O memory.md guarda as escolhas e o motivo delas. Por que o alerta é no Telegram e não no WhatsApp, por que a agenda é só leitura, por que só existe uma skill. Daqui a três meses, ninguém precisa lembrar.
A ordem não é decorativa. Identidade define o que o substrato precisa cobrir; o substrato alimenta as skills; as skills existem antes do agente que as orquestra. Pular etapa é construir na areia.
26 linhas. Quem ele é, quem ele atende, e quatro recusas testáveis. A mais importante: nunca dizer que tem vaga.
A maior camada. O documento oficial da clínica fica como fonte; o compendium.md é o destilado que o atendente lê no dia a dia.
Uma regra é uma placa escrita "não entre". Um hook é uma porta trancada. Aqui existe um hook que importa: o alerta do Telegram dispara sozinho.
Uma só, de propósito. Classificar a mensagem em três caixas: responde sozinho, depende da agenda, ou é de gente.
Google Agenda somente leitura, e alerta num grupo de Telegram. Uma janela, não a chave da casa. Nenhum segredo mora na pasta.
A skill é a ferramenta, o agente é o cozinheiro. Papel estreito, e um portão de revisão de cinco perguntas antes de qualquer resposta sair.
Nada de servidor, build ou dependência. O OS é uma pasta de arquivos de texto. O que faz o trabalho é o Claude Code lendo essa pasta.
É onde as camadas são construídas e onde o agente roda.
# abra na pasta do OS cd criaagentes && claude
É ela que faz este projeto existir: guia a construção camada por camada, faz as perguntas e escreve os arquivos. Instale e chame por /os-agentes.
# repo: github.com/inematds/os-agentes /os-agentes help
Preço, horário, políticas, as perguntas que mais se repetem. Escrito ou na sua cabeça, os dois servem.
# vira substrate/compendium.md /os-agentes layer substrate
Este OS foi construído exatamente com os comandos abaixo, nesta ordem. Cada comando termina fazendo duas ou três perguntas simples e escrevendo os arquivos da camada.
Sem jargão. Diga o que você quer que aconteça. O OS Coach cria o memory.md e já entra na camada de Identidade.
/os-agentes start quero criar um agente para atender dúvidas das pessoas na minha clínica usando whatsapp # → memory.md + CLAUDE.md
Cada next pega a próxima camada inacabada, pergunta só o que falta, e escreve os arquivos. Sem despejo de seis camadas de uma vez.
/os-agentes next # → substrate/compendium.md + sources.md /os-agentes next # → rules/never.md + rules/always.md /os-agentes next # → skills/responder-duvida-whatsapp/SKILL.md /os-agentes next # → tools.md /os-agentes next # → agents/recepcionista-whatsapp/AGENT.md
Se já existe uma tabela de preço, um documento de políticas ou um papel na recepção, aponte o arquivo. O substrato é a maior camada, e é a que mais economiza tempo quando o material já existe.
# basta apontar o caminho do arquivo na conversa # → vira substrate/subject-matter-expertise/ (fonte) # → destilado em substrate/compendium.md (o que o agente lê)
As camadas não são degraus de mão única. Toda vez que uma resposta sai errada, o conserto é no compêndio ou na skill, nunca na cabeça de quem estava de plantão.
/os-agentes layer substrate # identity | substrate | rules | skills | tools | agents /os-agentes status # onde parei?
Dá nota nas seis camadas, aponta onde quebra primeiro, e escreve o resultado em OS-AUDIT.md. Nesta auditoria, duas camadas caíram de nota, e uma delas por um motivo que ninguém tinha visto.
/os-agentes audit # → OS-AUDIT.md: scorecard + as 3 jogadas que mais importam
Toda mensagem cai numa das três. E existe uma regra que resolve os casos difíceis: na dúvida sobre a caixa, é sempre a terceira.
Não é a resposta feia. É a resposta bonita, simpática, plausível e inventada. Ela passa despercebida justamente porque parece certa. Um preço chutado vira reclamação, um horário chutado vira paciente na porta sem vaga, e uma opinião sobre dor vira risco de saúde. Todos são o mesmo erro de roupa diferente: afirmar como oficial uma coisa que ele não sabe.
As seis camadas estão escritas. A auditoria de 2026-07-15 rebaixou duas, e as duas por motivos honestos. O scorecard completo está em OS-AUDIT.md.