Learning Opportunities - skill para ajudar no desenvolvimento deliberado de habilidades no Claude Code e no Codex
(github.com/DrCatHicks)- Skill para codificação agêntica no Claude Code e no Codex que ajuda a desenvolver não só o projeto, mas também a especialização do usuário
- Depois de concluir tarefas de arquitetura como criar novos arquivos, alterar esquemas e refatorar, o Claude propõe um exercício opcional de aprendizagem de 10 a 15 minutos
- Os exercícios usam técnicas da ciência da aprendizagem, como previsão, geração, prática de evocação e repetição espaçada, e criam exemplos meio resolvidos a partir do trabalho real do usuário no projeto
- Foi projetado para reduzir problemas que ferramentas de IA para programação podem causar, como aceitação automática de código gerado, ilusão de fluência, longos períodos de trabalho contínuo, falta de metacognição e menos autoavaliação
- O Claude pergunta algo como: “Vamos fazer um exercício curto de aprendizagem sobre este tema? Leva cerca de 10 a 15 minutos”, e, se o usuário aceitar, conduz um exercício interativo
- O princípio central de design é que o Claude não responda às próprias perguntas e espere pela entrada do usuário, com a intenção de criar um modo diferente de reflexão e exploração em contraste com a codificação agêntica rápida
- Os tipos de exercício incluem previsão → observação → reflexão, geração → comparação, rastreamento de caminho de execução, previsão de depuração, explicar para um novo desenvolvedor e verificação de evocação de conteúdo de sessões anteriores
- As condições de supressão propostas no momento são não sugerir novamente a oportunidade de aprendizagem se o usuário já tiver recusado um exercício na sessão ou se já tiver concluído 2 exercícios na mesma sessão
- No Codex, é possível adicionar ao marketplace com
codex plugin marketplace add https://github.com/DrCatHicks/learning-opportunities.git, incluindolearning-opportunities,learning-opportunities-autoeorient - No Claude Code, adicione pelo Claude Code plugin marketplace, depois instale com
/plugin install learning-opportunities@learning-opportunitiese reinicie para ativar learning-opportunities-autoé um hook opcional para Linux e macOS que faz o Claude considerar sugerir exercícios após um git commit, e também pode ser usado no Windows com configuração adicional- A skill
orientcria umorientation.mdao aprender um novo repositório e oferece lições recomendadas com base em pesquisas sobre compreensão de programas e exploração de codebases - Funciona bem em conjunto com Learning-Goal, apresentado como uma skill que ajuda a definir metas de aprendizagem interativas semiestruturadas com a técnica MCII
- Em experimentos de equipe, também é possível usar MEASURE-THIS.md, que oferece perguntas de pesquisa validadas, guia de interpretação de resultados, template de “team boast” para compartilhar com a liderança e nudges de rigor estatístico no Claude.md
- Licenciado sob a Creative Commons Attribution 4.0 International License
1 comentários
Comentários do Hacker News
Não entendo muito de Skills, mas olhando o repositório, parece haver código e texto decorativos demais em comparação com um único prompt curto dentro de um script bash executado após o commit
No fundo, a ideia parece ser dizer ao usuário que ele acabou de fazer um commit e, se houver arquivo novo, mudança de schema, decisão de arquitetura, refatoração ou padrão desconhecido, sugerir um exercício de aprendizagem de 10–15 minutos
Conceitualmente, isso deve ser visto não como pegar a mágica feita por outra pessoa, mas como software que cresce gradualmente https://alexhans.github.io/posts/series/evals/building-agent...
Em harnesses de coding, muitas vezes já existe a skill de agente SkillBuilder, então é fácil criar e continuar evoluindo
Recomendo fazer a sua própria, adaptada às suas dores, e há até exemplos simples em que a precisão da automação sobe bastante com avaliação https://alexhans.github.io/posts/series/evals/sketch-to-text...
Então eu recomendaria usar o Claude para criar a sua própria ferramenta parecida. No começo isso gasta tokens, mas depois sua ferramenta própria pode reduzir bastante os tokens e chamadas necessários para trabalho significativo
Também dá para travar chamadas de ferramenta com mais segurança, tornar o trabalho do agente repetível e reduzir modos de falha. Evita também a situação em que o notebook desliga no meio do trabalho e você precisa que o agente reconstrua até onde tinha chegado, torrando muitos tokens
Fiquei surpreso ao ver que algumas Skills nem descrevem um procedimento exato ou o que fazer, servindo apenas como uma espécie de priming, tipo um discurso motivacional, para o modelo produzir texto melhor em certas tarefas
A frontend design skill usada pelo Claude também é quase só um pedido para escolher boas fontes e manter consistência no design, sem detalhes concretos sobre qual fonte usar ou como montar a paleta de cores e o layout
https://github.com/anthropics/claude-code/blob/main/plugins/...
Agentes de escrita de código podem gerar uma dívida repetitiva. Se você aceita o resultado do assistente de coding sem verificar se está certo, perde conhecimento sobre a sua própria codebase
Arquivos de contexto como
CLAUDE.md, protocolos de migração e protocolos de autenticação só funcionam bem quando você entende o suficiente para atualizá-los corretamenteJá me aconteceu de aceitar cegamente código gerado por agente por duas horas e depois não conseguir criar um novo arquivo de contexto porque eu tinha esquecido como a codebase funcionava. Esse tipo de dívida de skill não aparece no diff; ela se revela quando chega a hora de você conduzir o agente
Ao fazer mudanças grandes de funcionalidade, é melhor primeiro alinhar no chat o problema de domínio de negócio que se quer resolver, antes de mandar o agente escrever código. É como sentar com alguém de uma software house terceirizada para organizar o que você quer
Depois disso, junto com o agente, escrever um documento de design em bullets hierárquicos num arquivo
.mdde verdade, deixando o agente gerar e editar a maior parte, mas examinando com cuidado os problemas e decisões ambíguas, para fechar as decisões de design já nessa etapaEm seguida, mandar converter a especificação de design na estrutura de um conjunto de testes de especificação BDD, para ir preenchendo durante a implementação
Na etapa de implementação, pode adicionar, editar ou remover testes unitários e de integração, mas o arquivo de especificação de design e a estrutura dos testes BDD derivados dele devem permanecer fixos. Antes de concluir, os testes BDD precisam estar preenchidos com a lógica correspondente aos rótulos e todos devem passar
Se o projeto for muito grande, dá para rodar sprints repetindo o processo de definir novos requisitos de negócio, revisar design e adicionar novos conjuntos BDD. Ou então dividir o design em milestones entre as etapas 2 e 3 e criar/resolver itens BDD apenas para o milestone atual
No fim, a proposta é usar um modelo waterfall com LLMs. Se todo o processo termina em menos de uma hora, waterfall pode até ser bem agradável
O ponto principal é que, depois do fim do projeto ou do milestone, o agente explique no chat o código que escreveu, mas com a restrição de não explicar o que já estava claro no design
Aí você pode transformar as explicações das partes surpreendentes em comentários no código, e o resultado deixa de ser comentário formal inútil e passa a parecer comentário escrito por gente
Como saber que isso produz resultado melhor que
/create-skillsem benchmarks e avaliações? Testes ingênuos não inspiram confiançaA descrição diz que, quando você termina um trabalho de arquitetura, o Claude sugere um exercício opcional de 10–15 minutos baseado em ciência da aprendizagem com evidências. Usa técnicas como previsão, geração, prática de recuperação e repetição espaçada, oferecendo exemplos semiacabados tirados do trabalho do seu próprio projeto
O nome é confuso
Para quem ainda não entrou nessa toca de coelho: Skills são arquivos Markdown estruturados que descrevem como lidar com tarefas de escopo estreito
Por exemplo, se você escreve endpoints de API de um jeito específico, coloca esse procedimento numa skill. Depois, se o agente achar que essa skill é relevante para o contexto atual do chat, ele a carrega e executa conforme as instruções
É parecido com chamada de ferramenta, mas em vez de ser uma função invocável, são instruções sobre como realizar aquela “skill”
Pelo menos no Cline, que é o que eu uso, dá para definir Skills globalmente ou localmente no nível do projeto
CLAUDE.mdPelo que ouvi aqui, o carregamento de skill pode ter efeito separado no contexto, como continuar presente mesmo depois da compressão
Se você carregar várias skills, elas podem acabar ficando carregadas permanentemente na sessão
Acho que combina bem com subagents. O subagent carrega a skill, faz o trabalho e apresenta só o resultado, então o agente orquestrador nem precisa saber do conteúdo
Não entendo exatamente o que seria uma adaptive dynamic textbook approach. Preciso de um exemplo
Mas é muito verdade que, ao aceitar código gerado e produzir menos código por conta própria, você acaba pulando o processamento ativo necessário para construir compreensão
Não entendo por que as pessoas têm todo o trabalho de criar uma ideia tão legal e não colocam um link para demo ou saída de exemplo. É um padrão que vejo todo dia no HN
A única forma de ver como essa skill realmente é seria baixar e rodar por conta própria? Não quero fazer isso
AGENTS.mdEntendo a ideia de evitar inchaço de contexto ao não adicionar skills quando não forem relevantes, mas se não houver instrução explícita em
AGENTS.md, não há garantia de que o agente vá usar a skill. Aí isso pouco se diferencia de um arquivo Markdown referenciado em algum lugarAo criar https://www.agentkanban.io, um quadro de trabalho integrado ao GitHub Copilot, experimentei bastante onde colocar instruções
Uma estrutura um nível abaixo de
AGENTS.mdfuncionou muito bem. Como eu precisava que o agente capturasse IDs por tarefa de forma confiável, acabei adotandoINSTRUCTION.mddentro de arquivos gerenciados pela ferramenta, o que também reduziu a poluição doAGENTS.mdTambém experimentei Skills, mas elas eram puladas com frequência demais, então foi difícil fazer a ferramenta funcionar com a mesma confiabilidade do meu método atual
SKILL.mdestá logo ali, então é só ler para saber o que fazGostei muito da ideia. Já fiz o Claude usar material didático e documentação open source para montar apostilas na hora
Fico curioso se essa skill pode ser expandida para um domínio mais geral de aprendizagem e aplicação, ou se é algo especializado em código
As reações aqui são interessantes, mas parece que a maioria está perdendo o ponto principal
Para mim, a grande lição está em aprender observando como outras pessoas usam Skills. Ontem vi a aula do Matt Pocock sobre uso de agentes, e ele mostrou Skills como uma “grill-me” skill para evoluir documentos de requisitos de produto
Eu não faria exatamente o que ele faz, mas isso já me deu ideias sobre como criar requisitos e implementar coisas
Como os engenheiros da Anthropic costumam dizer, o Claude parece um engenheiro talentoso, mas sem especialização. Skills são pastas e arquivos para construir essa especialização
Outra coisa que aprendi com o Pocock é que respostas tendem a ficar mais burras à medida que o contexto ou o tamanho em tokens cresce. Então Skills são mais um jeito de apresentar o problema ao LLM de forma comprimida e obter respostas otimizadas
O Claude também tem traços comportamentais. Se alguém cria skills de forma muito repetitiva, talvez elas não se transplantem bem para outros usuários, porque cada pessoa conversa com o Claude de um jeito diferente
Por isso fico hesitante em compartilhar minha pasta de skills com colegas. Em vez disso, penso em mostrar como demonstração o que eu construí, para que cada um veja o que é possível e encontre seu próprio fluxo de trabalho
O valor está em ver como outra pessoa constrói com Claude e imitar isso do seu próprio jeito. É parecido com quando a gente aprende programação copiando o código do livro de C do Kernighan e Ritchie, mexendo para entender o funcionamento, e depois adaptando ao próprio objetivo
Outra razão para mencionar traços comportamentais é que o autor é psicólogo, então é interessante pensar que seu modo de interagir com o Claude pode ser bem diferente do de um programador
Aliás, como disseram que o autor e especialistas de várias áreas saíram do Twitter há muito tempo, estou pensando em instalar o bsky ou o Mastodon para segui-los. Acho importante observar como especialistas que não são programadores usam LLMs
A ideia é muito boa, então explorei algumas coisas hoje de manhã
Venho sentindo fortemente algo como uma drenagem cerebral por usar IA demais, e isso não parece uma solução completa, mas ainda assim acho que fazer alguns exercícios por dia pode ajudar bastante