constraint-driven-development
Define e mantém um padrão de qualidade para o projeto. Ele conversa com você sobre o que é importante e garante que o código não perca qualidade com o tempo.
O que ela faz
Esta ferramenta cria um "contrato" de qualidade para o seu projeto de programação. Ela define regras claras sobre o que é aceitável, como a cobertura de testes ou a ausência de erros, e garante que essas regras sejam seguidas automaticamente, evitando que a qualidade do código seja reduzida sem aviso.
Quando usar
- ✓Ao iniciar um novo projeto ou funcionalidade importante.
- ✓Quando você quer garantir que a IA mantenha um padrão de qualidade definido.
- ✓Se o volume de código gerado pela IA é muito grande para ser revisado manualmente.
Exemplo do que pedir para a IA
“Configure os padrões de qualidade para este projeto, incluindo cobertura de testes e regras de segurança.”
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
A ferramenta primeiro verifica o que já existe no seu projeto (como ferramentas de teste e lint). Depois, ela faz algumas perguntas simples para definir as regras de qualidade, como quais verificações são importantes e se falhas devem bloquear o trabalho ou apenas avisar. Por fim, ela salva essas regras em um arquivo chamado CONSTRAINTS.md e monitora o código para garantir que as regras não sejam quebradas.
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 addyosmani/agent-skills --skill constraint-driven-developmentOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/constraint-driven-development/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.
Desenvolvimento Orientado a Restrições
Visão Geral
Outras habilidades neste pacote descrevem o que é bom. code-review-and-quality oferece cinco eixos. test-driven-development oferece um ciclo. security-and-hardening oferece uma lista de ameaças. Tudo isso vive em prosa que o agente lê e pode ou não seguir, e nada disso sobrevive ao fim da sessão.
Esta habilidade produz algo diferente: um registro escrito do padrão deste projeto, com números, que sobrevive à conversa e pode ser verificado mecanicamente.
A razão importa. Quando você escreveu o código, lê-lo dizia se ele era bom. Um agente escreve mais em uma tarde do que você lerá naquela semana, então o julgamento sai da sua cabeça e vai para verificações que rodam no ciclo. Essas verificações precisam existir, precisam de números que você realmente escolheu e precisam disparar perto o suficiente do trabalho para que o agente corrija sua própria saída.
O desenvolvimento orientado a especificações diz o que construir. O desenvolvimento orientado a testes prova que funciona. O desenvolvimento orientado a restrições define o que significa "bom o suficiente para lançar", antes que alguém discuta sobre isso em um pull request.
Quando Usar
Aplique esta habilidade quando:
- Iniciar um projeto ou um recurso significativo e nenhum padrão de qualidade estiver escrito
- O usuário pedir para "configurar restrições", "adicionar portões de qualidade", "definir nossos padrões" ou "impedir que o agente lance lixo"
- Um agente estiver produzindo um volume que ninguém está lendo linha por linha
- O CI tiver verificações, mas ninguém souber quais bloqueiam um merge e quais são decoração
- Números de cobertura, desempenho ou acessibilidade forem discutidos por PR em vez de decididos uma vez
- Você estiver prestes a executar
/build autoou qualquer loop autônomo, e a única coisa entre ele e o main for uma suíte de testes que o agente também escreveu
Quando NÃO usar:
- O projeto já tiver um
CONSTRAINTS.mde o usuário não o estiver alterando — leia-o e siga-o em vez disso - Scripts pontuais, spikes, protótipos descartáveis
- O usuário quiser uma revisão de código agora (
code-review-and-quality) ou um pipeline de CI construído (ci-cd-and-automation) - Código pré-produto-mercado com vida útil esperada de duas semanas — o piso abaixo ainda vale a pena, o resto não
Carregando Restrições
A entrevista precisa de um usuário ativo. Não a execute em contextos não interativos (CI, /loop, execuções autônomas). Se as restrições estiverem faltando e você estiver em um desses, aplique o Piso abaixo, anote que o fez e sinalize o restante para um humano.
O Processo
Passo 1: Detecte antes de perguntar
Nunca pergunte o que você pode ler. Antes da primeira pergunta, colete:
| O quê | Onde procurar |
|---|---|
| Linguagem e stack | package.json, pyproject.toml, go.mod, Cargo.toml |
| Test runner | dependências de desenvolvimento, script test, arquivos de teste existentes |
| Linters existentes | eslint.config.*, biome.json, .ruff.toml |
| Cobertura atual | saída do coverage/, ou execute a suíte uma vez |
| CI | .github/workflows/, .gitlab-ci.yml |
| Harness do agente | .claude/, .codex/, AGENTS.md |
Relate o que você encontrou em duas linhas, depois pergunte apenas o que falta.
Passo 2: Quatro perguntas, cada uma com um padrão
Siga a disciplina de uma pergunta por vez de interview-me, com uma mudança: cada pergunta aqui tem um padrão, então "Não sei" é uma resposta completa que ainda produz uma configuração funcional.
Q1: Beyond the floor, which of these do you want enforced?
(a) Test coverage on new code
(b) Security scanning
(c) Performance budgets
(d) Accessibility
(e) Architecture boundaries
GUESS: (a) and (b) — you have a test runner already and you're handling user input.
DEFAULT if unsure: (a) and (b).
Say what each pick costs: (c) and (d) need a running URL, (e) needs a rules file written.
Q2: When a check fails while the agent is mid-task, should it block or warn?
GUESS: Block. You're running agents unattended and a warning nobody reads is a warning.
DEFAULT if unsure: Block on the floor, warn on everything else for the first two weeks.
Q3: Do you have target numbers in mind, or should I measure where you are today and hold that line?
GUESS: Measure. Most teams don't have a number, and an invented one gets ignored.
DEFAULT if unsure: Measure and hold. See "Ratchets" below.
Q4: What's the slowest check you'll tolerate before the agent hands work back?
GUESS: About 90 seconds. Longer and you'll stop running it.
DEFAULT if unsure: 90 seconds at task end, unlimited in CI.
…
Perguntas frequentes
O que é o "piso" (floor)?
O "piso" são as regras de qualidade mínimas que sempre são aplicadas, mesmo que você não defina outras regras. Exemplos incluem não permitir comentários que ignoram erros ou não deixar código inacabado.
Por que usar números em vez de apenas regras gerais?
Números (como "80% de cobertura de testes") tornam as regras objetivas e fáceis de verificar automaticamente. Isso evita discussões e garante que todos saibam exatamente o que é esperado.
O que acontece se uma regra for quebrada?
Dependendo de como as regras foram configuradas, a ferramenta pode avisar sobre a quebra ou bloquear o trabalho até que o problema seja corrigido. Isso garante que a qualidade definida seja mantida.
Detalhes
Descrição original do autor
Establishes a project's quality bar as a written contract and stops agents quietly lowering it. Interviews the user on which dimensions matter, supplies sane default thresholds when they have no number in mind, records everything in CONSTRAINTS.md, and watches the diff for a weakened bar — new @ts-ignore or eslint-disable suppressions, skipped or deleted tests, assertions stripped out, unimplement
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #345
- Licença
- MIT
- Atualizada em
- 13/10/2026
Comentários
- …
Mais skills deste repositório
api-and-interface-design
Ajuda a criar APIs e interfaces bem definidas. É útil ao projetar como diferentes partes de um software vão se comunicar.
addyosmani/agent-skills
browser-testing-with-devtools
Ajuda seu agente a testar código diretamente em navegadores reais. É útil para verificar como algo funciona no ambiente onde será usado, encontrando erros e problemas de performance.
addyosmani/agent-skills
ci-cd-and-automation
Ensina seu agente de IA a automatizar tarefas repetitivas e colocar projetos no ar e cuidar da infraestrutura.
addyosmani/agent-skills
code-review-and-quality
Realiza revisões de código detalhadas em várias frentes. É útil antes de juntar novas mudanças para garantir a qualidade e evitar problemas futuros.
addyosmani/agent-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