lemmaly
Faz seu agente pensar em eficiência antes de programar. Ele define a estrutura de dados e o tipo de algoritmo primeiro. Isso evita códigos lentos e repetitivos, tornando os programas mais rápidos.
O que ela faz
Lemmaly é uma ferramenta que ajuda a pensar sobre a eficiência do seu código antes de escrevê-lo. Ela garante que você defina a complexidade (quão rápido o código roda), a estrutura de dados (como os dados são organizados) e o tipo de algoritmo (a estratégia usada) antes de começar a programar.
Quando usar
- ✓Ao escrever código novo que envolve listas, buscas ou repetições.
- ✓Ao revisar um código que parece lento ou ineficiente.
- ✓Quando você não tem certeza sobre a melhor forma de organizar seus dados e algoritmos.
Exemplo do que pedir para a IA
“Preciso escrever uma função para encontrar o item mais frequente em uma lista de 1 milhão de números. Qual a complexidade, estrutura de dados e algoritmo devo usar antes de começar?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Lemmaly funciona exigindo que você declare a complexidade de tempo e espaço, a estrutura de dados escolhida com uma justificativa, e a família do algoritmo. Isso força uma análise prévia para evitar soluções ineficientes.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill lemmalyOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/lemmaly/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
lemmaly — Prova Orientada a Algoritmos
O modelo já conhece Big-O, tabelas de hash, dividir para conquistar, programação dinâmica, ordenação, algoritmos de grafos e análise amortizada. Ele apenas não os aplica espontaneamente. lemmaly corrige o comportamento, não o conhecimento.
Esta habilidade é o portal para um conjunto de quatro habilidades de disciplina algorítmica (lemmaly, mathguard, invariant-guard, complexity-cuts). Ela impõe as regras rígidas que todos os outros guardiões do conjunto assumem.
Violar a letra destas regras é violar o espírito da habilidade. "Só desta vez" é como O(n²) chega à produção.
Quando Usar Esta Habilidade
Use lemmaly quando:
- Escrever, editar ou revisar código que envolve loops, coleções, buscas (lookups), pesquisas, junções (joins), recursão, grafos, consultas (queries) ou qualquer computação sobre mais do que um punhado de itens.
- Estiver prestes a escrever um
fordentro de umfor,.find/.includes/.indexOfdentro de um loop,awaitdentro defor/map/forEachsobre itens independentes, ou uma consulta por item em uma coleção. - Auditoriar uma base de código / PR em busca de anti-padrões conhecidos (await em loop,
.includesdentro de.filter, concatenação de strings em loop,SELECT *, N+1, etc.). - Revisar código gerado por IA que "parece idiomático", mas pode esconder O(n²) ou N+1.
Em caso de dúvida, comece com lemmaly — é o portal e dirá quando escalar para suas três habilidades irmãs.
| Se você está prestes a… | Use | Por quê |
|---|---|---|
| Escrever código novo que faz loops, consultas, junções, recursão ou processa uma coleção | lemmaly | Força a complexidade + estrutura de dados + família de algoritmos antes que o código seja escrito. |
| Refatorar código existente que já está lento, estourando a memória (OOMs), expirando o tempo limite ou tem loops aninhados / N+1 / trabalho repetido | complexity-cuts | Manual de correção para código que já foi lançado com Big-O ruim. |
| Implementar um algoritmo onde a versão óbvia está sutilmente errada (variantes de busca binária, dedup in-place, Boyer–Moore, partição QuickSelect, recursão com acumuladores, preocupações com ponto fixo / terminação) | invariant-guard | Força a escrita do contrato da função + invariante de loop antes do código. A armadilha está no contrato, não no corpo do loop. |
| Trabalhar com n ≥ 10⁶, busca por similaridade, dedup em escala, top-K, análise de streaming, estimativa de cardinalidade, embeddings, FFT/NTT, redução de dimensionalidade, geometria computacional, algoritmos randomizados | mathguard | Algoritmos clássicos atingiram seu limite inferior; uma técnica aproximada ou pesada em matemática (Bloom, HLL, Count-Min, MinHash/LSH, FFT, projeção JL, linha de varredura, kd-tree) oferece a vitória assintótica. |
Fluxo de Roteamento
Are you writing new code?
├── yes → lemmaly (state complexity, structure, family BEFORE coding)
│ ├── classical algorithm at its lower bound AND n is large? → mathguard
│ └── subtle correctness trap (invariant, base case, off-by-one)? → invariant-guard
└── no, refactoring existing slow / OOM / timed-out code → complexity-cuts
└── still slow after classical fixes? → mathguard
Modelo mental de uma linha
- lemmaly = pense primeiro (prevenção).
- complexity-cuts = limpe o Big-O ruim (correção).
- invariant-guard = prove que está correto (verificação).
- mathguard = supere o piso clássico (aceleração).
A Lei de Ferro
NO NON-TRIVIAL CODE WITHOUT STATED COMPLEXITY, DATA STRUCTURE, AND ALGORITHM FAMILY
Antes de escrever um loop, uma recursão, uma consulta ou qualquer computação sobre mais do que um punhado de itens, três coisas devem aparecer em sua mensagem — nesta ordem:
time = O(?),space = O(?), com a dimensão de entrada dominante nomeada.- A estrutura de dados que você usará, com uma razão de uma frase.
- A família de algoritmos (uma de: varredura linear, dois ponteiros, janela deslizante, busca binária, sort+sweep, junção de hash, BFS/DFS, ordenação topológica, Dijkstra/A*, union-find, DP, guloso, recursão+memo, soma de prefixo, árvore de segmento, redução de monóide).
Se você não conseguir declarar as três, você ainda não entende o problema. Pergunte ou leia mais código. Não escreva código.
Regras Inegociáveis
- Declare a complexidade antes de escrever qualquer código não trivial. Em uma linha:
time = O(?),space = O(?)- Dimensão de entrada dominante:
n = what, com magnitude realista (por exemplo,n ~ 10^6 rows) - Se você não conseguir declarar isso, você ainda não entende o problema. Pergunte ou leia mais código.
…
Perguntas frequentes
O que é 'Big-O'?
Big-O (ou complexidade) é uma forma de descrever o quão rápido um algoritmo roda conforme o tamanho dos dados de entrada aumenta. Por exemplo, O(n) significa que o tempo de execução cresce linearmente com o tamanho dos dados.
Por que definir a estrutura de dados antes?
A escolha da estrutura de dados (como listas, mapas ou conjuntos) afeta diretamente a eficiência. Definir isso antes ajuda a garantir que você está usando a ferramenta certa para o trabalho, como um mapa para buscas rápidas.
O que são 'famílias de algoritmos'?
São categorias gerais de estratégias para resolver problemas, como busca binária, ordenação ou programação dinâmica. Identificar a família ajuda a pensar em soluções conhecidas e eficientes.
Detalhes
Descrição original do autor
Algorithm-first discipline: state Big-O, data structure, and algorithm family BEFORE writing loops, queries, or recursion. Catches O(n^2), N+1, and brute-force defaults.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3433
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC