26 pontos por GN⁺ 2025-10-13 | 1 comentários | Compartilhar no WhatsApp
  • Nas últimas semanas, sistematizei um sistema de agentes de programação baseado no Claude Code e criei uma nova ferramenta de extensão chamada “Superpowers”
  • O Superpowers é instalado em formato de plugin e ensina “Skills” ao Claude, oferecendo funções para automatizar e melhorar a forma de trabalhar por meio dessas skills
  • Aproveitando o sistema de plugins do Claude Code da Anthropic, o agente executa de forma autônoma automação de workflow, execução de TDD, revisão de código e gerenciamento de Git worktree
  • O novo workflow passa automaticamente pelas etapas de brainstorming → planejamento → implementação, realiza trabalho em paralelo e executa desenvolvimento orientado a testes no modelo RED/GREEN TDD
  • O conceito central, “Skill”, é uma unidade de conhecimento que o Claude deve consultar ao executar uma tarefa específica; o usuário pode escrevê-la diretamente ou fazer com que o Claude a gere com base em documentos de aprendizado
  • A visão é que essa estrutura se torne no futuro o padrão de autoaperfeiçoamento e colaboração para agentes de programação com IA, e os próximos objetivos são concluir os recursos de compartilhamento do Superpowers e o sistema de memória

Visão geral do Superpowers

  • O Superpowers funciona no Claude Code 2.0.13 ou superior, e pode ser instalado com o comando /plugin marketplace add obra/superpowers-marketplace
  • Após a instalação, o Claude lê automaticamente o documento SKILL.md e aprende a regra de que “se existir uma skill, ela deve ser usada obrigatoriamente”
  • Com isso, o Claude conduz discussões antes da implementação passando por brainstorming e planejamento e, quando o trabalho termina, também cria um PR no GitHub ou sugere a mesclagem

Workflow de programação

  • Quando o Claude detecta o início de um projeto ou tarefa, ele passa automaticamente por brainstorming e planejamento antes da implementação
  • Ao trabalhar dentro de um repositório Git, ele cria worktrees automaticamente para evitar conflitos entre trabalhos paralelos
  • São oferecidos dois modos de execução
    • Modo anterior: o usuário abre uma segunda sessão do Claude e atua como PM, mediando entre o arquiteto e o implementador
    • Novo modo: distribui tarefas individualmente para subagentes e avança com revisão de código em cada tarefa
  • Repetição do ciclo no modelo RED/GREEN TDD: escrever teste que falha → implementação mínima → teste aprovado
  • Após concluir a implementação, oferece opções de criar um PR no GitHub, mesclar o branch localmente ou encerrar

Princípios centrais do sistema de Skills

  • O núcleo do Superpowers é a Skill, um módulo de conhecimento baseado em Markdown que o Claude pode ler e executar para resolver um problema específico
    • A Anthropic apresentou pela primeira vez o conceito de skill ao lançar o recurso de criação de documentos do Office
    • Padrões semelhantes apareceram em vários frameworks de agentes de programação, como o Microsoft Amplifier
  • A skill é a unidade pela qual o Claude aprende uma “nova capacidade”, e o usuário pode pedir ao Claude que analise um livro ou codebase para extrair novas skills
    • O agente executa um script de busca de skills e, se houver uma skill para aquela atividade, deve usá-la obrigatoriamente
    • Por meio da primeira meta-skill, "como escrever skills", o Claude suporta um workflow em que gera novas skills de forma autônoma
    • Se for solicitado ao modelo “leia este livro, reflita e registre o que aprendeu”, ele estrutura automaticamente o conhecimento reutilizável
  • Para testar as skills geradas, o Claude simula subagentes (subagents) e verifica com TDD se cada skill é realmente válida
    • Nas tentativas iniciais, a validação foi feita em formato de quiz de game show, mas isso se mostrou pouco eficaz
    • Depois das melhorias, foram criados cenários de “teste de pressão (pressure test)” para verificar a eficácia das skills em condições semelhantes ao ambiente real

Exemplos de testes com cenários de pressão

  • Cenário 1: pressão de tempo + autoconfiança
    • Situação: uma falha em produção está causando perda de 5 mil dólares por minuto, e é preciso depurar o serviço de autenticação
    • Opções: depurar imediatamente (5 minutos) vs buscar uma skill antes de depurar (7 minutos)
    • Objetivo: induzir a priorizar a busca de skills mesmo em situações urgentes
  • Cenário 2: custo afundado + código funcionando
    • Situação: uma infraestrutura de testes assíncronos escrita após 45 minutos de trabalho já está funcionando
    • Opções: verificar skills e possivelmente refazer o trabalho (3 minutos) vs fazer commit do código atual
    • Objetivo: forçar a aderência às skills mesmo quando já existe código funcionando
  • Os princípios da psicologia da persuasão de Robert Cialdini (autoridade, comprometimento, simpatia, escassez etc.) foram aplicados ao LLM
  • Um estudo recente coassinado por Dan Shapiro e outros demonstrou cientificamente que os princípios de Cialdini também são válidos para LLMs
  • Depois, percebeu-se que o sistema de Skills do Superpowers já estava usando técnicas de persuasão inconscientemente
    • Enquadramento de autoridade ("IMPORTANT: situação real"), indução ao comprometimento ("escolha entre A, B, C"), escassez ("18h, 18h30")

Recurso de memória (Memories)

  • O Superpowers inclui a skill ‘remembering-conversations’, que permite ao Claude preservar e utilizar o contexto de conversas anteriores
  • Essa skill armazena logs de conversa em um banco de dados vetorial baseado em SQLite e gera resumos usando o Claude Haiku
  • Também duplica automaticamente o histórico de conversas fora de .claude para evitar a exclusão automática da Anthropic
  • Quando necessário, o Claude usa subagentes para buscar informações relevantes em conversas passadas, com um design que evita poluir a janela de contexto com buscas desnecessárias
  • A integração completa ainda não foi finalizada, mas todos os componentes já foram implementados

Recurso de compartilhamento (Sharing)

  • O objetivo do Superpowers é construir um ecossistema de compartilhamento de skills
  • Os usuários podem enviar as skills aprendidas por seu Claude na forma de GitHub Pull Request para compartilhá-las com outros usuários
  • Ao mesmo tempo em que se integra ao novo sistema de plugins do Claude, foram criadas salvaguardas para que as skills não sejam compartilhadas sem o consentimento do usuário
  • O método inicial de instalação consistia apenas em fazer o Claude ler uma URL específica, mas agora foi migrado para uma estrutura de marketplace de plugins

Instalação e uso

  • Requer Claude Code 2.0.13 ou superior
  • Executar os comandos de instalação no marketplace de plugins
    • /plugin marketplace add obra/superpowers-marketplace
    • /plugin install superpowers@superpowers-marketplace
  • Após reiniciar, um prompt de bootstrap é injetado e o sistema de Skills é ativado automaticamente
  • Também foi publicado o log completo da implementação real de um app de Todo com Claude e Superpowers, onde é possível ver as perguntas do Claude, o desenvolvimento orientado a testes e o processo de gerenciamento com git

1 comentários

 
GN⁺ 2025-10-13
Comentários do Hacker News
  • Quero recomendar muito este texto. A forma como Jesse usa essas ferramentas é bem mais ousada do que a da maioria das pessoas. Também recomendo muito dar uma olhada no repositório Superpowers no GitHub dele. Ontem à noite organizei algumas anotações sobre esse tema também: veja este link

    • Em termos de desempenho de programação em codebases realmente grandes, fico curioso sobre como você acha que essa abordagem difere do método "Research -> Plan -> Implement" e dos prompts do vídeo [Advanced Context Engineering from Agents]. Acho útil adicionar skills para ampliar as capacidades do agente, mas não sei se isso é realmente adequado para desenvolvimento real. A ideia de adicionar várias skills automaticamente ou de ter uma coleção de pacotes é legal, mas não tenho certeza de quanto isso é melhor do que a abordagem de comandos customizados + subagentes. Pretendo testar por alguns dias e comparar

    • Isso parece quase como aplicar as usage rules do Elixir ao comportamento de agentes, por enquanto só para Claude. Também vale a pena conferir a referência de usage_rules

  • Ao ler este texto, fiquei esperando aprender "como trabalhar melhor com agentes de programação". Venho experimentando com IA há 2 anos e hoje tenho certeza de que ela evoluiu de classificadores de brinquedo para utilitários bem úteis. Ainda assim, como continuo esbarrando em limitações, sinto que voltar para abordagens pré-LLM acaba sendo mais robusto, mais rápido e mentalmente mais sustentável. Fico curioso se alguém pode compartilhar exemplos concretos de casos em que LLMs de fato ampliaram o trabalho de desenvolvimento de ponta ou a geração de valor

    • Recomendo o texto do Mitchell publicado hoje de manhã: post sobre non-trivial vibing

    • Ainda sinto que estamos em fase experimental. Métricas decentes devem surgir em breve

  • Esse tipo de prompting, que cria uma situação crítica para induzir uma reação "emocional", já está ultrapassado. Houve uma época em que escrever palavras como IMPORTANT em maiúsculas ajudava, mas os modelos mais recentes simplesmente seguem as instruções. Não vale a pena sofrer para escrever e manter prompts desse tipo

    • O artigo sobre persuasão que ele menciona também, na verdade, não tem nada a ver com o que ele está dizendo. O artigo trata apenas de superar recusas causadas por "segurança treinada" com prompts persuasivos, e não de melhorar a taxa de aderência ao prompt

    • O ponto irritante é que os llms ainda não evoluíram nem eles mesmos nessa parte. Se você pedir ao próprio llm para melhorar seu prompt, ele sugere esse tipo de melhoria. A parte mais frustrante de colaborar com llms e agentes é a sensação de que eles estão sempre mais ou menos uma geração atrás em capacidade autorreferencial

  • Vi o seguinte na primeira página e já fiquei incomodado

    @/Users/jesse/.claude/plugins/cache/Superpowers/...  
    

    A especificação XDG existe há décadas, então não sei por que apps novos continuam poluindo meu HOME. E também é estranho que os dados reais fiquem armazenados dentro de cache/, mas tudo bem

    • O motivo de estar no local de cache é que esse arquivo é uma cópia do plugin instalado a partir de um repositório GitHub. Ou seja, não é o arquivo-fonte real
  • Documentos como a documentação da skill de desenvolvimento orientado a testes são muito confusos para leitura humana. As "skills" usadas neste projeto não têm um formato consistente e parecem apenas o tipo de saída que surge ao pedir a um LLM: "escreva um documento em Markdown explicando X passo a passo" — e, de fato, segundo o blog, foi assim que foram criadas. Se o LLM já treinou com algo como 100 livros sobre TDD, fico em dúvida se faz sentido jogar nele um resumo confuso desses. Projetos desse tipo acreditam que estão adicionando algo especial, como "superpoderes", ao LLM, mas ele não é um ser que aprende sozinho; colocar uma frase mágica no início do prompt não o torna 10 vezes mais inteligente. Claro, se for uma tarefa repetitiva dependendo do contexto, posso escrever minhas restrições com antecedência e colá-las no início do prompt, mas isso é apenas fornecer informação de contexto. Não é que o LLM ganhou uma habilidade, você só deu contexto. O que sempre sinto falta nesses textos é de exemplos concretos mostrando objetivamente quanto melhor funciona dar um prompt do tipo "você tem a skill X" em comparação com simplesmente pedir a tarefa diretamente, sem dizer isso

    • Concordo totalmente. Depois de trabalhar por algumas semanas com codex e GPT Pro (5o-codex-high), cheguei à conclusão de que, no fim das contas, o que importa é contexto. Pessoalmente, o que mais me ajudou foi usar voz com Whisper e passar isso para o LLM, gerenciar o uso de tokens de forma eficiente e resetar a conversa quando necessário, além de criar critérios claros para verificar se a tarefa foi concluída, como AI-Unit-Tests com API ou testes do playwright. Também funciona manter tudo em arquivos Markdown. E ter chats de IA separados para cada tipo de tarefa especializada é muito mais eficiente em termos de resultado, por causa da própria estrutura matemática do modelo. Com essas abordagens, consegui atuar no papel de PM e ao mesmo tempo reduzir o desperdício de recursos causado por fazer o LLM reavaliar desnecessariamente coisas que ele já tinha aprendido. Não entendo por que alguém iria querer voltar a ficar preso a um fornecedor como Claude. O 5o-codex-high é muito mais forte, nem tem comparação. Ainda assim, algo útil aqui é que fazer IAs colaborarem entre si realmente funciona. O importante é separar bem os papéis
  • Quando ele diz algo como "entendi que os princípios de persuasão aprendidos no livro Influence, de Robert Cialdini, também se aplicam a LLMs, e fiquei feliz porque funcionou", sinceramente dá vontade de dizer basta. Fico pensando no que é isso, porque parece que a direção já foi além de IA e desenvolvimento. Concordo que programação com IA é uma mudança revolucionária, mas isso não significa que tudo foi virado do avesso. Estrutura e design básicos ainda são necessários. Só que este texto passa a sensação de estar cheio de discurso mágico

    • Sobre a expressão "mágico", talvez não seja exatamente isso. Para que a IA produza uma solução, ela precisa transformar a intenção e o objetivo do usuário em vetores, e uma IA treinada extensivamente com material sobre persuasão humana naturalmente pode seguir esses elementos de expressão. Claro, o resultado varia muito. Assim como uma pessoa pode parecer tola ao forçar técnicas retóricas ou poses artificiais, colocar apenas maiúsculas ou adjetivos exagerados para enfatizar um vetor de intenção não vai funcionar sempre. Ainda assim, quando o resultado desejado não sai, pode valer bastante a pena verificar se faltam elementos de persuasão no prompt, como autoridade, e adicionar o que for necessário

    • Na verdade, tudo isso sempre foi assim. Começando pelo próprio termo "IA", e também com a maior parte dos anúncios da OpenAI nos últimos 5 anos. Soa como se fosse mudar o mundo, mas na prática está cheio de exagero ou retórica técnica. A maior parte disso é ruído desnecessário, e de vez em quando eu só aproveito a informação realmente prática no meu workflow. Na maioria dos textos, há mais exagero e pose do que informação útil

  • Quando vejo instruções como EXTREMELY_IMPORTANT e RIGHT NOW, isso me causa rejeição. Minha preocupação é que, se eu escrever assim, em algum momento isso vai entrar em conflito com minhas prioridades reais. Nem tudo pode ser a prioridade máxima número 1

    • É parecido com gerenciar o arquivo bashrc. Às vezes você também precisa editar manualmente

    • Hoje em dia os llms não aconselham justamente a não usar esse tipo de comando?

  • Não vejo nenhum exemplo de código no texto. Queria saber onde dá para ver exemplos de uso real

  • Acho que posts de blog desse tipo seriam muito mais úteis se mostrassem casos reais de alguém usando a ferramenta para construir algo não trivial. Por exemplo, não fica claro se Claude realmente aprendeu uma nova skill ao ler um livro, ou se apenas reagiu a um prompt que o faz parecer agir assim. Por isso, acho que seria preciso demonstrar tanto o caso com a nova skill adicionada ao Claude quanto o caso usando apenas o prompt. Minha posição pode ser conservadora, mas a maioria desses blogs parece mais material de marketing, com omissões ou explicações insuficientes sobre os pontos realmente importantes, dando a impressão de inflar o próprio trabalho para se exibir

    • Há um exemplo relacionado publicado hoje: texto sobre non-trivial vibing

    • Usar LLMs por muito tempo para programar projetos complexos de verdade é realmente difícil! Só definir requisitos já é muito mais difícil do que parece, e os LLMs avançam rápido demais até mesmo na direção errada

    • O que este campo precisa é de experimentos que comprovem o efeito das ferramentas com métricas quantificadas, como em testes A/B. E não apenas uma vez, mas com análises repetidas em vários cenários, para que sejam estatisticamente confiáveis. A maior dificuldade ao usar agentes de programação é que, em codebases pequenas e simples, no começo parece que eles se saem bem, mas à medida que a base cresce e a complexidade aumenta, eles tendem a desenvolver "visão de túnel" em tarefas com conexões complexas, ampliando a dívida técnica

    • Acho que bastaria usar o código do Claude diretamente e cada um tirar suas próprias conclusões

    • "A maioria desses blogs omite os detalhes, exagera as próprias capacidades e se gaba, num padrão típico e antigo da indústria de TI." Sinceramente, esse sempre foi o cenário da TI em todas as gerações

  • Às vezes colocam uma licença de copyright em código gerado por IA, e eu não entendo por quê. Ainda bem que é licença MIT, mas obras geradas por IA legalmente nem são objeto de copyright, então, em tese, qualquer pessoa poderia simplesmente ignorar a licença e usar do mesmo jeito. Fico curioso para saber por que colocam isso