Pular para o conteúdo
Todos os artigos

Por Gustavo Paixão

Construindo um marketplace em que as pessoas decidem como a IA trabalha

Como o Ronne AI Marketplace saiu da cópia manual de skills de IA entre projetos e chegou a dois releases de código aberto na primeira semana, com itens circulando entre o registro e o Claude Code, o Codex e o Cursor.

Compartilhar

A ideia

Toda vez que eu começava um projeto novo, copiava para ele, à mão, as minhas skills, comandos e agentes de IA, e depois os adaptava. Cada projeto acabava com uma versão um pouco diferente da mesma coisa, e mantê-los em sincronia à mão não estava funcionando.

As ferramentas de programação com IA só são tão boas quanto aquilo que você dá a elas: skills, agentes, regras, hooks e conexões com outras ferramentas. Então eu queria um único lugar que mantivesse essas peças juntas e decidisse o que entra. Isso virou o Ronne AI Marketplace. Ele é de código aberto, e quem o usa o instala nos próprios servidores. Qualquer pessoa pode propor um item, e nada chega às ferramentas de IA antes de ser revisado.

A frase a que eu sempre voltava era simples: as pessoas é que devem controlar como a IA delas trabalha, e não o contrário.

Por que "Ronne"

Quando comecei a preparar o projeto, precisei de um nome. Eu queria um nome de pessoa, porque o produto poderia funcionar como um assistente de IA. Passei algumas horas indo e voltando com o ChatGPT, o Claude e o Gemini: nomes masculinos e femininos, em várias línguas. Todo nome de que eu gostava já estava em uso, muitas vezes por outro produto de IA, ou não tinha mais domínio disponível para registrar.

Pouco antes de dormir, dois nomes me vieram à cabeça: Rainier e Ronne, dois tios meus. O Rainier faleceu em 2009. O Ronne é o irmão mais novo da minha mãe e mora no interior de Pernambuco. Perguntei ao ChatGPT sobre os dois, e ele indicou Ronne: é fácil de pronunciar em inglês, português e francês.

Estava decidido. O nome tem um significado para mim, e é o meu jeito de celebrar o Ronne, o Rainier e a minha família.

O logo do Ronne AI

Dando forma ao produto

Um formato, muitas ferramentas. O Claude Code, o Codex e o Cursor guardam esses itens em arquivos diferentes. Por isso, cada item é escrito uma única vez, e uma ferramenta de linha de comando, o rmk, grava os arquivos certos com base nas especificações atuais de cada harness.

Revisão antes do release. Todo item novo, e toda mudança em um item existente, precisa da aprovação de uma pessoa que não seja o autor. O release é uma etapa à parte, e uma versão lançada nunca muda.

Uma regra para o próprio código. Tudo de que o marketplace depende precisa ser livre para redistribuir, estar na versão estável mais recente e não ter vulnerabilidades conhecidas. O build verifica a regra a cada mudança, e já descartou duas bibliotecas.

Depois fiz uma pergunta que ampliou o plano: por que só três ferramentas? As ferramentas de programação com IA estão convergindo para os mesmos formatos, e mudam rápido. Então cada ferramenta virou um pequeno módulo que traduz os itens para os arquivos dela.

Como eu o construo

Construo o marketplace com um agente de programação com IA. Ele escreve boa parte do código, mas as decisões são minhas.

No começo, o agente passou a presumir que podia fazer push de mudanças por conta própria. Não é assim que eu quero trabalhar, então defini regras para ele, do mesmo jeito que o marketplace deixa as pessoas decidirem o que as ferramentas de IA delas podem fazer. Antes de qualquer commit, ele roda o lint, as verificações de tipos, os testes e o build. Se algo falhar, ele me diz o que está errado e propõe o que fazer, e eu decido. Ele nunca faz push do código nem abre um pull request a menos que eu peça.

Mais tarde, deixei que ele construísse funcionalidades inteiras sozinho, uma tarefa e um commit de cada vez. Depois eu reviso o pull request, testo o resultado e decido se ele entra.

De uma instalação a um catálogo

O primeiro código tornou o marketplace instalável com um único comando, com SQLite, MySQL, MariaDB ou PostgreSQL. Toda mudança é testada nos quatro bancos de dados, porque cada um se comporta de um jeito um pouco diferente. Para conferir se isso valia a pena, quebrei a busca de propósito. Três dos bancos continuaram passando. Só o PostgreSQL pegou o erro.

Depois vieram os itens e a revisão. Um teste que enviava dois rascunhos com o mesmo nome no mesmo instante descobriu que o MySQL deixava os dois passarem, e corrigi isso antes que o problema chegasse a alguém. Quem revisa um envio vê o que o item pode fazer na máquina de um desenvolvedor, como rodar um comando ou acessar a web.

Usando-o como faria um usuário novo, a primeira coisa que perguntei foi "o que é um escopo?". Então coloquei respostas curtas dentro do app, onde as pessoas costumam travar.

O catálogo, com todos os itens lançados e o comando de instalação de cada um.

Para dentro das ferramentas

Então veio o motivo de o marketplace existir: levar os itens para dentro das ferramentas. O rmk registra cada arquivo que grava, para poder atualizar ou remover exatamente isso, e nunca mexe num arquivo que alguém fez à mão.

Antes de escrever a parte de cada ferramenta, conferi de novo a documentação dela. Três coisas tinham mudado no Claude Code desde a primeira vez que eu a tinha consultado. E descobri que o Cursor lê as skills do Claude Code e roda os hooks dele, então instalar para os dois teria rodado cada hook duas vezes. Agora o Cursor deixa esses itens por conta do Claude Code.

O servidor MCP permite que as pessoas instalem itens sem sair da conversa com a ferramenta de IA delas. Ele planeja primeiro e grava depois: o assistente mostra cada arquivo que uma instalação mudaria e o que cada item pode fazer, e só então aplica exatamente esse plano. Para que o terminal e as ferramentas de IA não divirjam, os dois usam o mesmo código de instalação, o que mudou a arquitetura que eu tinha planejado.

A página de um item: o uso, as ferramentas em que ele funciona, o que a revisão encontrou e como instalá-lo. As contagens de uso são simuladas.

Dois releases em uma semana

Em 29 de setembro, lancei a versão 0.1.0: o rmk e o servidor MCP no npm, e o app web como imagem Docker. O release revelou um bug na etapa de publicação, e a 0.1.1 saiu no mesmo dia.

Até então, os itens só iam do registro para as ferramentas de IA. Mas a maioria das skills e dos agentes nasce na ferramenta, enquanto alguém está trabalhando. Então fiz com que eles circulassem nos dois sentidos: as pessoas podem mandar de volta ao marketplace o que escrevem no Claude Code, no Codex ou no Cursor, como rascunho ou como proposta de mudança, passando pela mesma revisão que todo o resto. Isso significou deixar outras ferramentas de IA em espera, para testar e validar o marketplace primeiro com as ferramentas com que mais trabalho. A versão 0.2.0 saiu em 1º de outubro, com exportação e um compositor visual para montar agentes e pacotes num canvas.

O que vem a seguir

Por enquanto, sou o primeiro usuário dele, de propósito: eu o uso nos meus próprios projetos para ver quais recursos se sustentam e quais não. Em breve, um time vai usá-lo num único produto, que é o caso para o qual ele foi feito: muitas pessoas compartilhando um mesmo conjunto curado de itens. O que eu aprender com os dois vai decidir o que muda antes de eu adicionar as outras ferramentas.

Código aberto

O Ronne AI Marketplace é de código aberto, sob a licença MIT, e o repositório é público desde o primeiro dia. O ronne.ai explica o que ele faz e como rodá-lo. O código está no GitHub, o app web está no Docker Hub e o rmk está no npm.

Contribuições são bem-vindas. O trabalho é organizado em funcionalidades, cada uma com uma especificação e um plano no repositório, e todo pull request roda as mesmas verificações que eu rodo, incluindo as de licença e de segurança. Dois bons lugares para começar:

  • Outra ferramenta de IA. Copilot, Gemini, Antigravity e Devin estão em espera, e cada ferramenta é um pequeno módulo. Se você usa uma delas todo dia, conhece os arquivos dela melhor do que eu.
  • Issues. Se algo não se instalar, se um passo não estiver claro ou se um item se comportar de outro jeito na sua ferramenta, abra uma issue.

Se você o experimentar, ou se gerencia as suas ferramentas de IA de outro jeito, eu gostaria de saber.

Compartilhar

Quer conversar sobre isso?

Se este artigo despertou dúvidas ou ideias, fico feliz em trocar experiências.