Pular para o conteúdo
Skillpedia
Código em geral107 mil · #345

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

https://github.com/addyosmani/agent-skills/blob/main/skills/constraint-driven-development/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/addyosmani/agent-skills/blob/main/skills/constraint-driven-development/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-development

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/constraint-driven-development/SKILL.md -o SKILL.md
Conteú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 auto ou 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.md e 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas