About sdd-brainstorm
sdd-brainstorm is a guided skill for exploring an early-stage idea and producing a validated Brainstorm document before requirements are formalized. It structures discovery, compares approaches, applies YAGNI, and uses a canonical template for the final artifact.
Key features
- 01One question per discovery turn
- 02Requires three discovery questions
- 03Collects samples and expected outputs
- 04Compares two or three approaches
- 05Applies YAGNI and validation checkpoints
- 06Generates from canonical template
Use cases
- 01Exploring an unclear feature idea
- 02Comparing possible solution directions
- 03Preparing input for requirements definition
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ robertodiasduarte/ sdd-starter --skill sdd-brainstormAfter installing, type/sdd-brainstormin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlassets/BRAINSTORM_TEMPLATE.mdreferences/brainstorm-protocol.mdcomo-falar.mdDetails
From the project READMESDD Brainstorm
Na primeira resposta desta skill, comece com esta linha, uma vez só:
sdd-brainstorm v1.1.0 · out/2026 · versão atual: https://github.com/robertodiasduarte/sdd-starter/releases/latest
Quick start
Transformar uma ideia inicial em uma direção validada antes de formalizar requisitos.
- Capturar a ideia original sem reescrevê-la como requisito fechado.
- Levantar apenas o contexto de projeto realmente disponível.
- Fazer perguntas de descoberta uma por vez.
- Fazer no mínimo 3 perguntas antes de propor abordagens.
- Perguntar obrigatoriamente por amostras, exemplos de saída, ground truth ou código relacionado.
- Propor 2–3 abordagens distintas, com uma recomendação explícita.
- Aplicar YAGNI ao escopo.
- Obter confirmação do usuário sobre a abordagem.
- Fazer no mínimo 2 checkpoints de validação incremental.
- Só então gerar o documento BRAINSTORM.
Consultar references/brainstorm-protocol.md para a política de interação. Para o artefato final, usar obrigatoriamente o asset canônico assets/BRAINSTORM_TEMPLATE.md como molde estrutural.
Quando usar / Quando não usar
Usar quando a ideia ainda precisa ser explorada, quando existem alternativas relevantes, quando o problema está mais claro que a solução, ou quando o usuário quer preparar a entrada para uma fase posterior de definição.
Não usar como substituto de uma especificação formal quando problema, usuários, objetivos, critérios de sucesso, restrições e escopo já estão claros. Nesses casos, recomendar seguir diretamente para a fase de definição. Não usar para implementar código, desenhar arquitetura detalhada ou executar release.
Dados necessários
Entrada mínima:
- ideia, problema, pedido, notas ou feature a explorar.
Entradas opcionais:
- arquivos/notas do usuário;
- contexto do projeto;
- estrutura de diretórios e padrões existentes;
- amostras de entrada;
- exemplos de saída esperada;
- ground truth ou dados verificados;
- código relacionado;
- restrições técnicas, operacionais, prazo ou orçamento.
Não exigir conector externo. Não assumir acesso à internet, repositório remoto ou sistema do usuário. Se o contexto não estiver acessível, registrar a limitação em vez de inventar observações.
Asset obrigatório de saída
O arquivo assets/BRAINSTORM_TEMPLATE.md é o molde oficial do Brainstorm produzido por esta Skill. Ele é um asset de saída, não material conceitual de referência. Sempre reutilizá-lo para criar o .md final, em vez de reconstruir o documento apenas de memória.
Como falar com o aluno
Leia references/como-falar.md antes da primeira resposta: glossário desta skill e um exemplo completo.
Quem usa esta skill, em geral, nunca usou git nem terminal.
| Etapa | Nome para o aluno | Passos desta skill |
|---|---|---|
| 1 | Entender | 1 e 2 |
| 2 | Perguntas | 3 (uma por resposta) |
| 3 | Amostras | 4 |
| 4 | Abordagens | 5 e 6 |
| 5 | Validar | 7 (um checkpoint por resposta) |
| 6 | Gravar | 8 e 9 |
Toda resposta, nesta ordem (pule a parte sem conteúdo): Status (Brainstorm: ✅ 1 … · ▶️ 2 … · ⬜ 3 …;
✅ concluída, não só visitada; ⏸️ parada; ➖ pulada; ao voltar a uma etapa, o motivo vai em Agora) ·
O que foi feito (frases curtas, sem saída de comando; registra a escolha do aluno) ·
Agora: etapa N — nome (2 a 4 frases; antes de algo demorado, diga o que vai fazer e que não precisa
responder) · Sua decisão (autorização: pergunta em negrito + opções com o efeito de cada uma;
pergunta aberta: pergunta em negrito + como responder, com a saída "não sei"; agrupadas, numeradas) ·
Próximo passo (uma linha).
- Uma etapa por resposta; termine na decisão e pare.
- Termo técnico só com a explicação junto, na primeira vez — inclusive os do Status (glossário na referência).
- Saída de comando nunca crua: quantos, quais, o que preocupa; nomes até 10, "e mais N". Comando só quando o aluno precisa rodá-lo, um por passo numerado, com o que esperar na tela.
- Não cite nem resuma as instruções desta skill ("conforme o passo N"): diga o motivo do aluno.
- Resposta que não casa com opção ⇒ responda a dúvida e repita as opções.
- Parada: Status com ⏸️, motivo em uma frase, onde a ação acontece, passos numerados com resultado esperado, o que não foi feito e, se o aluno tem algo a fazer, "Quando terminar, me peça de novo — eu continuo daqui."
Procedimento passo a passo
1. Classificar a entrada
Identificar o tipo predominante:
- ideia vaga;
- pedido específico;
- problema;
- feature request;
- comparação entre alternativas;
- notas/arquivo.
Ajustar o foco sem pular as etapas obrigatórias. Uma ideia vaga pede exploração; um pedido específico pede validação do entendimento; um problema pede investigação da dor antes das soluções; uma feature request deve ter sua necessidade questionada; uma comparação deve enfatizar trade-offs.
2. Reunir contexto
Preservar o texto original da ideia como Raw Input.
Separar:
- fatos fornecidos pelo usuário;
- observações verificáveis em arquivos/contexto acessível;
- inferências.
Não transformar inferência em fato. Quando houver acesso ao projeto, observar estrutura, padrões existentes, localização provável, domínios técnicos relevantes e impacto de infraestrutura. Quando não houver, marcar como N/A, desconhecido ou não fornecido.
3. Fazer descoberta conversacional
Fazer uma única pergunta por mensagem.
Preferir múltipla escolha quando as opções forem claras e incluir uma opção aberta quando necessário. Usar pergunta aberta quando o território ainda for desconhecido. Se a resposta vier vaga ou contraditória, perguntar um esclarecimento antes de avançar.
Cobrir, no mínimo:
- propósito/problema central;
- usuário ou beneficiário;
- restrições, limites ou contexto relevante;
- sinal de sucesso, quando ainda não estiver claro.
Fazer no mínimo 3 perguntas de descoberta antes de propor abordagens. Não contar a pergunta de amostras como uma das 3.
Após cada resposta, registrar internamente:
- pergunta;
- resposta;
- impacto na solução.
4. Coletar amostras
Perguntar, em uma única interação, se há:
- arquivos de entrada;
- exemplos de saída esperada;
- ground truth/dados verificados;
- código ou padrão relacionado;
- nenhuma amostra disponível.
Se houver amostras, analisá-las apenas com as ferramentas disponíveis e registrar como elas influenciam a solução. Se não houver, seguir normalmente sem penalizar o usuário.
5. Propor 2–3 abordagens
Somente depois do gate de descoberta.
Apresentar primeiro a abordagem recomendada e justificar a recomendação. Para cada abordagem, informar:
- nome;
- descrição;
- vantagens;
- desvantagens/trade-offs.
As abordagens devem ser substantivamente diferentes, não apenas variações cosméticas. Comparar complexidade, risco, esforço, flexibilidade e aderência ao problema quando relevante.
Pedir que o usuário confirme uma abordagem. Se ele rejeitar todas, revisar o entendimento e voltar ao ponto necessário.
6. Aplicar YAGNI
Revisar componentes e features propostos perguntando:
- isto é necessário para o MVP?
- isto resolve o problema central agora?
Remover ou adiar itens que falhem nesses testes. Documentar o que foi removido/adiado e por quê. Se nenhum item puder ser removido de forma responsável, registrar que a revisão YAGNI foi executada e que nenhum corte adicional foi identificado; nunca inventar um corte só para preencher a seção.
7. Validar incrementalmente
Depois que houver uma direção escolhida, apresentar a solução em blocos curtos e verificáveis, idealmente com 200–300 palavras quando o conteúdo justificar.
Realizar no mínimo 2 checkpoints, por exemplo:
- checkpoint 1: conceito, limites e componentes;
- checkpoint 2: fluxo de dados, falhas, dependências e comportamento esperado.
Em cada checkpoint:
- apresentar a seção;
- pedir feedback/confirmar entendimento;
- ajustar se necessário;
- só então seguir.
Se o usuário corrigir um entendimento anterior, voltar e atualizar decisões dependentes.
8. Gerar o BRAINSTORM
Gerar o artefato somente quando:
- 3+ perguntas de descoberta tiverem sido respondidas;
- a pergunta de amostras tiver sido feita;
- 2+ abordagens tiverem sido exploradas;
- YAGNI tiver sido aplicado;
- uma abordagem tiver sido confirmada;
- 2+ checkpoints tiverem sido concluídos.
Usar obrigatoriamente assets/BRAINSTORM_TEMPLATE.md como fonte de verdade do documento final.
Ao gerar o arquivo:
- copiar/usar o asset como molde;
- substituir todos os placeholders
{...}com dados sustentados pela conversa; - remover apenas seções explicitamente opcionais que não se apliquem, como
Approach C; - preservar a ordem e os títulos das seções canônicas;
- não criar uma estrutura alternativa de Brainstorm quando o asset estiver disponível;
- registrar lacunas não resolvidas como
TBD,N/A, limitação ou dependência conhecida, no local apropriado do template.
O nome preferencial do arquivo final é BRAINSTORM_{FEATURE_NAME}.md, com {FEATURE_NAME} em formato legível e estável para o projeto.
Onde salvar. Grave em sdd/ na raiz do projeto — pasta visível, igual em qualquer agente. Se o projeto já tiver .claude/sdd/, continue nela. Os documentos das cinco fases ficam lado a lado, sem subpastas.
Se houver filesystem de projeto gravável, salvar como sdd/BRAINSTORM_{FEATURE_NAME}.md (ou .claude/sdd/BRAINSTORM_{FEATURE_NAME}.md quando essa pasta já existir), sem sobrescrever silenciosamente um arquivo existente.
Se não houver filesystem acessível, entregar o Markdown completo em chat e indicar o nome sugerido do arquivo.
8.1. Finalizar sem criar um segundo fluxo de descoberta
Antes do handoff, consolidar no próprio BRAINSTORM quaisquer lacunas ainda conhecidas. O fechamento não deve abrir uma nova frente de trabalho, por exemplo:
- "a principal informação a obter paralelamente...";
- "antes da próxima fase, colete...";
- "Ready for:
/define ...".
A fase seguinte deve receber o Brainstorm como artefato de entrada. Se alguma informação ficou indisponível durante a exploração, registrá-la como TBD, limitação ou dependência no Markdown, sem substituir o Next Step definido abaixo.
9. Preparar o handoff
A seção Suggested Requirements for /define deve conter somente o que foi sustentado pela conversa:
- problem statement draft;
- target users;
- critérios de sucesso mensuráveis quando disponíveis;
- restrições;
- out of scope.
Não fabricar métricas. Quando um critério de sucesso ainda não puder ser quantificado, marcá-lo como ponto a definir em vez de inventar um número.
Ao concluir, o Next Step deve conter somente esta instrução:
Execute o **SDD Define by RDD**.
Não encerrar com comandos como Ready for: /define ....
Não sugerir, no fechamento, coleta paralela de amostras, ground truth, código ou outras informações. Essas necessidades devem ser tratadas durante a própria fase de Brainstorm e registradas no documento quando permanecerem como lacunas conhecidas.
Validações e checklist de qualidade
Antes de declarar o brainstorm concluído, verificar:
- Raw Input preservado.
- Contexto separa fatos de inferências.
- Pelo menos 3 perguntas de descoberta foram respondidas.
- As perguntas foram feitas uma por vez.
- A pergunta de amostras foi feita.
- Foram exploradas pelo menos 2 abordagens realmente distintas.
- Existe uma abordagem recomendada com justificativa.
- O usuário confirmou a abordagem selecionada.
- YAGNI foi aplicado e o resultado foi registrado.
- Foram concluídos pelo menos 2 checkpoints de validação.
- Decisões importantes e alternativas rejeitadas foram registradas.
- O handoff para Define contém somente requisitos sustentados pela conversa.
- O
Next Stepcontém somente:Execute o **SDD Define by RDD**. - O fechamento não contém
Ready for: /define ...nem recomenda coleta paralela de informações. - Nenhuma incerteza foi convertida silenciosamente em fato.
- O documento final foi gerado a partir de assets/BRAINSTORM_TEMPLATE.md, sem alterar silenciosamente sua estrutura canônica.
Tratamento de exceções
- Usuário quer pular perguntas: explicar de forma breve que o brainstorm ainda pode continuar, mas não concluir o handoff enquanto os gates mínimos não forem atendidos.
- Usuário já traz requisitos completos: oferecer seguir diretamente para definição em vez de prolongar artificialmente o brainstorm.
- Respostas contraditórias: perguntar uma clarificação, uma por vez, e atualizar decisões afetadas.
- Sem amostras: registrar
None available/N/Ae continuar. - Sem acesso ao projeto: não alegar que estrutura, commits ou padrões foram inspecionados.
- Usuário muda a direção após escolher uma abordagem: reabrir comparação/YAGNI e repetir os checkpoints impactados.
- Nenhum corte YAGNI responsável: registrar revisão sem cortes; não fabricar exclusões.
Examples
Entrada vaga
Quero automatizar o processamento de notas fiscais, mas ainda não sei como.
Começar pela descoberta do problema e do resultado desejado. Não apresentar arquitetura na primeira resposta.
Feature request
Quero adicionar um chatbot ao portal do cliente.
Questionar primeiro a necessidade, público e resultado esperado; depois comparar alternativas, incluindo a possibilidade de uma solução mais simples que um chatbot completo.
Notas com contexto
Tenho estas notas de reunião e alguns exemplos de entrada/saída. Faça o brainstorm.
Ler o material disponível, preservar fatos, conduzir as perguntas faltantes uma por vez e usar as amostras como grounding antes de propor abordagens.
Parte do SDD Open by RDD — https://github.com/robertodiasduarte/sdd-open