doubt-driven-development
Questiona todas as decisões importantes antes de serem tomadas. É útil quando a precisão é crucial, para garantir que não haja falhas escondidas e que o plano seja robusto.
O que ela faz
Verifica decisões importantes antes de implementá-las. Ele pede para um 'revisor' com a missão de encontrar falhas, e não de aprovar, analisar o que você escreveu ou planejou. Isso ajuda a garantir que tudo esteja correto e seguro, especialmente em situações críticas.
Quando usar
- ✓Ao tomar uma decisão importante sobre a arquitetura de um projeto.
- ✓Ao escrever um código complexo ou que modifica partes críticas.
- ✓Ao afirmar algo que não é óbvio, como 'isso é seguro' ou 'isso vai funcionar bem'.
Exemplo do que pedir para a IA
“Analise esta decisão: 'A nova forma de autenticação é segura contra ataques comuns.' Verifique se há falhas ou suposições erradas.”
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 IA separa a parte importante (o 'artefato') e as regras que ela deve seguir (o 'contrato'). Em seguida, ela pede a outra IA, configurada para ser crítica, para encontrar problemas nesse 'artefato' com base no 'contrato'. Finalmente, ela compara os problemas encontrados com o que foi escrito.
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 doubt-driven-developmentOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/doubt-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 Guiado por Dúvidas
Visão Geral
Uma resposta confiante não é uma resposta correta. Longas sessões acumulam contexto que silenciosamente transforma suposições em "fatos" sem que ninguém perceba. Desenvolvimento guiado por dúvidas é a disciplina de materializar um revisor de contexto fresco — com viés para desprovar, não aprovar — antes que qualquer resultado não trivial se estabeleça.
Isso não é /review. /review é um veredito sobre um artefato finalizado. Esta é uma postura em andamento: decisões não triviais são examinadas enquanto a correção de curso ainda é barata.
Quando Usar
Uma decisão é não trivial quando pelo menos uma das seguintes condições é verdadeira:
- Introduz ou modifica lógica de ramificação
- Cruza um limite de módulo ou serviço
- Afirma uma propriedade que o sistema de tipos ou o compilador não podem verificar (segurança de thread, idempotência, ordenação, invariantes)
- Sua correção depende de contexto que o leitor futuro não pode ver
- Seu raio de explosão é irreversível (implantação em produção, migração de dados, alteração de API pública)
Aplique a habilidade quando:
- Prestes a tomar uma decisão arquitetural sob incerteza
- Prestes a confirmar código não trivial
- Prestes a afirmar um fato não óbvio ("isso é seguro", "isso escala", "isso corresponde à especificação")
- Trabalhando em código que você não entende completamente
Quando NÃO usar:
- Operações mecânicas (renomear, formatar, mover arquivos)
- Seguir uma instrução clara e inequívoca do usuário
- Ler ou resumir código existente
- Alterações de uma linha com correção óbvia
- Operações puramente de ferramentas (executar testes, listar arquivos)
- O usuário solicitou explicitamente velocidade em vez de verificação
Se você duvida de cada tecla digitada, você não envia nada. A habilidade se aplica apenas a decisões não triviais, conforme definido acima.
Carregando Restrições
Esta habilidade é projetada para o orquestrador da sessão principal, onde a Etapa 3 (DÚVIDA, detalhada abaixo) pode gerar um revisor de contexto fresco.
- NÃO adicione esta habilidade ao frontmatter de uma persona
skills:. Uma persona que segue a Etapa 3 geraria outra persona — o anti-padrão de orquestração explicitamente proibido por../../references/orchestration-patterns.md("personas não invocam outras personas"). - Se você se encontrar aplicando esta habilidade de dentro de um contexto de subagente (onde Claude Code impede a geração aninhada de subagentes): o caminho preferencial é informar ao usuário que o desenvolvimento guiado por dúvidas não pode ser executado aninhado e deixar a sessão principal lidar com isso. Como último recurso, existe uma alternativa degradada de autoquestionamento — reescreva ARTEFATO + CONTRATO como um novo prompt para si mesmo com um separador mental rígido do seu raciocínio anterior, e percorra as Etapas 1-5. Isso não é uma revisão de contexto fresco (você carrega seu próprio contexto consigo), portanto, marque o resultado como degradado e prefira a escalada sempre que o usuário for alcançável.
O Processo
Copie esta lista de verificação ao aplicar a habilidade:
Doubt cycle:
- [ ] Step 1: CLAIM — wrote the claim + why-it-matters
- [ ] Step 2: EXTRACT — isolated artifact + contract, stripped reasoning
- [ ] Step 3: DOUBT — invoked fresh-context reviewer with adversarial prompt
- [ ] Step 4: RECONCILE — classified every finding against the artifact text
- [ ] Step 5: STOP — met stop condition (trivial findings, 3 cycles, or user override)
Etapa 1: AFIRMAÇÃO — Apresente o que se estabelece
Nomeie a decisão em duas ou três linhas:
CLAIM: "The new caching layer is thread-safe under the
read-heavy workload described in the spec."
WHY THIS MATTERS: a race here corrupts user data and is
hard to detect in QA.
Se você não consegue escrever a afirmação de forma tão compacta, você tem uma impressão, não uma decisão. Apresente-a antes de examiná-la.
Etapa 2: EXTRAIR — Menor unidade revisável
Um revisor de contexto fresco precisa do artefato e do contrato, não da jornada.
- Código: o diff ou a função — não o arquivo inteiro
- Decisão: a proposta em 3-5 frases mais as restrições que ela deve satisfazer
- Afirmação: a afirmação mais a evidência que supostamente a suporta (mantida distinta do bloco AFIRMAÇÃO da Etapa 1, que é a hipótese do orquestrador sob escrutínio)
Remova seu raciocínio. Se você entregar conclusões, receberá de volta a validação de suas conclusões. A unidade deve ser pequena o suficiente para que um revisor possa mantê-la em mente em uma única leitura — se for um PR de 500 linhas, decomponha primeiro.
Etapa 3: DÚVIDA — Invoque o revisor de contexto fresco
O prompt do revisor deve ser adversarial. O enquadramento decide a resposta.
Revisão adversarial. Encontre o que está errado com este artefato.
Assuma que o autor está excessivamente confiante. Procure por:
- Suposições não declaradas
…
Perguntas frequentes
Quando NÃO devo usar isso?
Não use para tarefas simples como renomear arquivos, formatar código, mover arquivos, ler ou resumir código existente, ou quando a velocidade é mais importante que a verificação.
O que é uma decisão 'não trivial'?
É uma decisão que envolve lógica complexa, mexe com diferentes partes do sistema, faz afirmações que o computador não pode verificar sozinho (como segurança), depende de informações que podem ser perdidas com o tempo, ou tem consequências irreversíveis.
Por que usar um 'revisor' que só encontra defeitos?
Porque é mais fácil aprovar algo que já foi feito do que encontrar falhas. Um revisor focado em achar problemas ajuda a garantir que todas as suposições sejam questionadas e que possíveis erros sejam descobertos antes que causem problemas maiores.
Detalhes
Descrição original do autor
Subjects every non-trivial decision to a fresh-context adversarial review before it stands. Use when you want every assumption cross-examined before proceeding, when stress-testing a plan for hidden failure modes, when correctness matters more than speed, when working in unfamiliar code, when stakes are high (production auth, security-sensitive logic, a high-stakes migration, irreversible operatio
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #350
- 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
carrier-relationship-management
Gerencia relacionamentos com transportadoras. Ajuda a negociar fretes, avaliar desempenho e construir estratégias de transporte.
affaan-m/ECC
cost-tracking
Monitora e informa o uso de tokens e custos do agente. É útil para controlar gastos e orçamentos de forma eficiente.
affaan-m/ECC
plan-canvas
Abre planos e artefatos em uma janela do navegador para você comentar. Facilita dar feedback visual sobre mudanças necessárias.
affaan-m/ECC