opção

brainstorming

obra/superpowers obra/superpowers

Orientam o diálogo colaborativo para transformar ideias em projetos e especificações totalmente desenvolvidos antes do início de qualquer implementação.

...Expandir tudo
7
Tempo atualizado 3 de Setembro de 2026

Brainstorming De ideias a projetos

Ajude a transformar ideias em projetos e especificações totalmente desenvolvidos por meio de um diálogo colaborativo natural.

Comece entendendo o contexto atual do projeto e, em seguida, faça perguntas, uma de cada vez, para refinar a ideia. Depois de entender o que está sendo desenvolvido, apresente o projeto e obtenha a aprovação do usuário.

Antipadrão: “Isso é simples demais para precisar de um projeto”

Todo projeto passa por esse processo. Uma lista de tarefas, um utilitário com uma única função, uma alteração de configuração — todos eles. É nos projetos “simples” que suposições não verificadas causam o maior desperdício de trabalho. O projeto pode ser curto (algumas frases para projetos realmente simples), mas você DEVE apresentá-lo e obter aprovação.

Lista de verificação

Você DEVE criar uma tarefa para cada um desses itens e concluí-las na ordem:

  1. Explore o contexto do projeto — verifique arquivos, documentos, commits recentes
  2. Ofereça o complemento visual na hora certa — NÃO antecipadamente. Na primeira vez em que uma questão for genuinamente mais clara quando mostrada do que descrita, ofereça-o nesse momento (em uma mensagem separada); após a aprovação, a aba do navegador será aberta para você. Se nenhuma questão visual surgir, nunca a ofereça. Consulte a seção Complemento visual abaixo.
  3. Faça perguntas para esclarecimento — uma de cada vez, compreenda o objetivo/restrições/critérios de sucesso
  4. Proponha 2 a 3 abordagens — com prós e contras e sua recomendação
  5. Apresente o projeto — em seções dimensionadas de acordo com sua complexidade; obtenha a aprovação do usuário após cada seção
  6. Escreva o documento de design — salve em docs/superpowers/specs/AAAA-MM-DD--design.md e faça o commit
  7. Autoavaliação das especificações — verificação rápida no próprio texto para identificar marcadores de lugar, contradições, ambiguidades e escopo (veja abaixo)
  8. O usuário revisa a especificação escrita — peça ao usuário para revisar o arquivo de especificação antes de prosseguir
  9. Transição para a implementação — utilize a habilidade de elaboração de planos para criar um plano de implementação

Fluxo do processo

digrafo brainstorming {
    "Explorar o contexto do projeto" [shape=box];
    "Fazer perguntas para esclarecimento" [shape=box];
    "Propor 2 a 3 abordagens" [shape=box];
    "Apresentar seções do projeto" [shape=box];
    "O usuário aprova o projeto?" [shape=diamond];
    "Redigir documento de projeto" [shape=box];
    "Autoavaliação das especificações\n(correção no próprio texto)" [shape=box];
    "O usuário revisa as especificações?" [shape=diamond];
    "Utilizar a habilidade de elaboração de planos" [shape=doublecircle];

    "Explorar o contexto do projeto" -> "Fazer perguntas para esclarecimento";
    "Fazer perguntas para esclarecimento" -> "Propor 2-3 abordagens";
    "Propor 2-3 abordagens" -> "Apresentar seções do projeto";
    "Apresentar seções do projeto" -> "O usuário aprova o projeto?";
    "O usuário aprova o projeto?" -> "Apresentar seções do projeto" [label="não, revisar"];
    "O usuário aprova o projeto?" -> “Redigir documento de projeto” [label="sim"];
    “Redigir documento de projeto” -> “Autoavaliação das especificações\n(corrigir na hora)”;
    “Autoavaliação das especificações\n(corrigir na hora)” -> “O usuário revisa as especificações?”;
    "O usuário revisa as especificações?" -> "Escrever documento de projeto" [label="alterações solicitadas"];
    "O usuário revisa as especificações?" -> "Chamar a habilidade writing-plans" [label="aprovado"];
}

O estado final é a invocação da habilidade “writing-plans”. NÃO invoque as habilidades “frontend-design”, “mcp-builder” ou qualquer outra habilidade de implementação. A ÚNICA habilidade que você deve invocar após “ brainstorming ” é “writing-plans”.

O processo

Entendendo a ideia:

  • Verifique primeiro o estado atual do projeto (arquivos, documentos, commits recentes)
  • Antes de fazer perguntas detalhadas, avalie o escopo: se a solicitação descrever vários subsistemas independentes (por exemplo, “criar uma plataforma com chat, armazenamento de arquivos, faturamento e análises”), sinalize isso imediatamente. Não gaste tempo com perguntas para refinar detalhes de um projeto que precisa ser decomposto primeiro.
  • Se o projeto for grande demais para uma única especificação, ajude o usuário a decompor em subprojetos: quais são as partes independentes, como elas se relacionam, em que ordem devem ser desenvolvidas? Em seguida, faça um brainstorming do primeiro subprojeto seguindo o fluxo normal de design. Cada subprojeto passa por seu próprio ciclo de especificação → planejamento → implementação.
  • Para projetos com escopo adequado, faça perguntas uma de cada vez para refinar a ideia
  • Prefira perguntas de múltipla escolha sempre que possível, mas perguntas abertas também servem
  • Apenas uma pergunta por mensagem — se um tópico precisar de mais aprofundamento, divida-o em várias perguntas
  • Concentre-se na compreensão: objetivo, restrições, critérios de sucesso

Explorando abordagens:

  • Proponha 2 a 3 abordagens diferentes, apresentando as vantagens e desvantagens de cada uma
  • Apresente as opções de maneira coloquial, incluindo sua recomendação e o raciocínio por trás dela
  • Comece com a opção recomendada e explique o motivo

Apresentação do projeto:

  • Quando achar que entendeu o que está criando, apresente o projeto
  • Adapte o tamanho de cada seção à sua complexidade: algumas frases se for simples, até 200 a 300 palavras se for mais detalhado
  • Pergunte após cada seção se tudo parece correto até o momento
  • Aborde: arquitetura, componentes, fluxo de dados, tratamento de erros, testes
  • Esteja pronto para voltar atrás e esclarecer se algo não fizer sentido

Projete com foco no isolamento e na clareza:

  • Divida o sistema em unidades menores, cada uma com um propósito claro, que se comuniquem por meio de interfaces bem definidas e possam ser compreendidas e testadas de forma independente
  • Para cada unidade, você deve ser capaz de responder: o que ela faz, como é usada e de que depende?
  • Alguém consegue entender o que uma unidade faz sem ler seus detalhes internos? Você consegue alterar os detalhes internos sem afetar os usuários? Se não, os limites precisam ser ajustados.
  • Unidades menores e bem delimitadas também são mais fáceis de trabalhar — você raciocina melhor sobre um código que consegue manter no contexto de uma só vez, e suas edições ficam mais confiáveis quando os arquivos são focados. Quando um arquivo fica muito grande, isso geralmente é um sinal de que ele está fazendo coisas demais.

Trabalhando em bases de código existentes:

  • Explore a estrutura atual antes de propor mudanças. Siga os padrões existentes.
  • Quando o código existente apresentar problemas que afetem o trabalho (por exemplo, um arquivo que ficou grande demais, limites pouco claros, responsabilidades confusas), inclua melhorias direcionadas como parte do projeto — da mesma forma que um bom desenvolvedor aprimora o código em que está trabalhando.
  • Não proponha refatorações não relacionadas. Mantenha o foco no que atende ao objetivo atual.

Após o projeto

Documentação:

  • Escreva o projeto validado (especificação) em docs/superpowers/specs/AAAA-MM-DD--design.md
    • (As preferências do usuário quanto ao local da especificação substituem esse padrão)
  • Use a habilidade “elementos-de-estilo:escrever-de-forma-clara-e-concisa”, se disponível
  • Envie o documento de especificação para o git

Autoavaliação das especificações: Depois de escrever o documento de especificações, analise-o com um olhar novo:

  1. Verificação de marcadores de lugar: há algum “A definir”, “A fazer”, seções incompletas ou requisitos vagos? Corrija-os.
  2. Consistência interna: há alguma seção que se contradiga? A arquitetura corresponde às descrições dos recursos?
  3. Verificação do escopo: o documento está suficientemente focado para um único plano de implementação ou precisa ser decomposto?
  4. Verificação de ambiguidade: algum requisito poderia ser interpretado de duas maneiras diferentes? Se sim, escolha uma e torne-a explícita.

Corrija quaisquer problemas diretamente no texto. Não há necessidade de revisar novamente — basta corrigir e seguir em frente.

Etapa de revisão do usuário: Após a conclusão do ciclo de revisão das especificações, peça ao usuário para revisar as especificações escritas antes de prosseguir:

“A especificação foi redigida e enviada para . Por favor, revise-a e me avise se quiser fazer alguma alteração antes de começarmos a redigir o plano de implementação.”

Aguarde a resposta do usuário. Se ele solicitar alterações, faça-as e repita o ciclo de revisão das especificações. Só prossiga depois que o usuário aprovar.

Implementação:

  • Invoque a habilidade writing-plans para criar um plano de implementação detalhado
  • NÃO invoque nenhuma outra habilidade. A habilidade “writing-plans” é a próxima etapa.

Princípios-chave

  • Uma pergunta por vez — não sobrecarregue com várias perguntas
  • Preferência por múltipla escolha — mais fácil de responder do que perguntas abertas, quando possível
  • Aplique o princípioYAGNI sem piedade — remova recursos desnecessários de todos os projetos
  • Explore alternativas — sempre proponha 2 a 3 abordagens antes de decidir
  • Validação incremental — Apresente o projeto e obtenha aprovação antes de prosseguir
  • Seja flexível — volte atrás e esclareça quando algo não fizer sentido

Companheiro visual

Um complemento baseado em navegador para mostrar maquetes, diagramas e opções visuais durante brainstorming. Disponível como uma ferramenta — não como um modo. Aceitar o complemento significa que ele está disponível para questões que se beneficiam do tratamento visual; isso NÃO significa que todas as questões passem pelo navegador.

Oferecendo o complemento (na hora certa): NÃO o ofereça logo de cara. Espere até que uma pergunta realmente fique mais clara se for mostrada do que explicada — uma pergunta sobre um protótipo, layout ou diagrama de verdade, não apenas um tópico de interface do usuário. Na primeira vez que isso acontecer, ofereça-o então, como uma mensagem separada:

“A próxima parte pode ficar mais fácil se eu mostrar para você — posso montar maquetes, diagramas e comparações em uma aba do navegador à medida que avançamos. Ainda é uma funcionalidade nova e pode consumir muitos tokens. Quer que eu faça isso? Vou abrir para você.”

Essa oferta DEVE ser uma mensagem separada. Apenas a oferta — sem perguntas esclarecedoras, resumos ou outro conteúdo. Aguarde a resposta do usuário. Se ele aceitar, inicie o servidor com --open para que o navegador dele abra automaticamente na primeira tela. Se ele recusar, continue apenas com texto e não ofereça novamente, a menos que ele mencione o assunto.

Decisão por pergunta: mesmo depois que o usuário aceitar, decida PARA CADA PERGUNTA se vai usar o navegador ou o terminal. O teste: o usuário entenderia melhor isso vendo do que lendo?

  • Use o navegador para conteúdos que SEJAM visuais — maquetes, wireframes, comparações de layout, diagramas de arquitetura, designs visuais lado a lado
  • Use o terminal para conteúdo que seja texto — perguntas sobre requisitos, escolhas conceituais, listas de trade-offs, opções de texto A/B/C/D, decisões de escopo

Uma pergunta sobre um tópico de interface do usuário não é automaticamente uma pergunta visual. “O que significa personalidade neste contexto?” é uma pergunta conceitual — use o terminal. “Qual layout de assistente funciona melhor?” é uma pergunta visual — use o navegador.

Se concordarem com o guia complementar, leiam o guia detalhado antes de prosseguir: skills/brainstorming/visual-companion.md

Ver no GitHub
---
name: brainstorming
description: Guides collaborative dialogue to turn ideas into fully formed designs and specs before any implementation begins.
---

# Brainstorming Ideas Into Designs

Help turn ideas into fully formed designs and specs through natural collaborative dialogue.

Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and get user approval.

<HARD-GATE>
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.
</HARD-GATE>

## Anti-Pattern: "This Is Too Simple To Need A Design"

Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.

## Checklist

You MUST create a task for each of these items and complete them in order:

1. **Explore project context** — check files, docs, recent commits
2. **Offer the visual companion just-in-time** — NOT upfront. The first time a question would genuinely be clearer shown than described, offer it then (its own message); on approval its browser tab opens for you. If no visual question ever arises, never offer it. See the Visual Companion section below.
3. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
4. **Propose 2-3 approaches** — with trade-offs and your recommendation
5. **Present design** — in sections scaled to their complexity, get user approval after each section
6. **Write design doc** — save to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commit
7. **Spec self-review** — quick inline check for placeholders, contradictions, ambiguity, scope (see below)
8. **User reviews written spec** — ask user to review the spec file before proceeding
9. **Transition to implementation** — invoke writing-plans skill to create implementation plan

## Process Flow

```dot
digraph brainstorming {
    "Explore project context" [shape=box];
    "Ask clarifying questions" [shape=box];
    "Propose 2-3 approaches" [shape=box];
    "Present design sections" [shape=box];
    "User approves design?" [shape=diamond];
    "Write design doc" [shape=box];
    "Spec self-review\n(fix inline)" [shape=box];
    "User reviews spec?" [shape=diamond];
    "Invoke writing-plans skill" [shape=doublecircle];

    "Explore project context" -> "Ask clarifying questions";
    "Ask clarifying questions" -> "Propose 2-3 approaches";
    "Propose 2-3 approaches" -> "Present design sections";
    "Present design sections" -> "User approves design?";
    "User approves design?" -> "Present design sections" [label="no, revise"];
    "User approves design?" -> "Write design doc" [label="yes"];
    "Write design doc" -> "Spec self-review\n(fix inline)";
    "Spec self-review\n(fix inline)" -> "User reviews spec?";
    "User reviews spec?" -> "Write design doc" [label="changes requested"];
    "User reviews spec?" -> "Invoke writing-plans skill" [label="approved"];
}
```

**The terminal state is invoking writing-plans.** Do NOT invoke frontend-design, mcp-builder, or any other implementation skill. The ONLY skill you invoke after brainstorming is writing-plans.

## The Process

**Understanding the idea:**

- Check out the current project state first (files, docs, recent commits)
- Before asking detailed questions, assess scope: if the request describes multiple independent subsystems (e.g., "build a platform with chat, file storage, billing, and analytics"), flag this immediately. Don't spend questions refining details of a project that needs to be decomposed first.
- If the project is too large for a single spec, help the user decompose into sub-projects: what are the independent pieces, how do they relate, what order should they be built? Then brainstorm the first sub-project through the normal design flow. Each sub-project gets its own spec → plan → implementation cycle.
- For appropriately-scoped projects, ask questions one at a time to refine the idea
- Prefer multiple choice questions when possible, but open-ended is fine too
- Only one question per message - if a topic needs more exploration, break it into multiple questions
- Focus on understanding: purpose, constraints, success criteria

**Exploring approaches:**

- Propose 2-3 different approaches with trade-offs
- Present options conversationally with your recommendation and reasoning
- Lead with your recommended option and explain why

**Presenting the design:**

- Once you believe you understand what you're building, present the design
- Scale each section to its complexity: a few sentences if straightforward, up to 200-300 words if nuanced
- Ask after each section whether it looks right so far
- Cover: architecture, components, data flow, error handling, testing
- Be ready to go back and clarify if something doesn't make sense

**Design for isolation and clarity:**

- Break the system into smaller units that each have one clear purpose, communicate through well-defined interfaces, and can be understood and tested independently
- For each unit, you should be able to answer: what does it do, how do you use it, and what does it depend on?
- Can someone understand what a unit does without reading its internals? Can you change the internals without breaking consumers? If not, the boundaries need work.
- Smaller, well-bounded units are also easier for you to work with - you reason better about code you can hold in context at once, and your edits are more reliable when files are focused. When a file grows large, that's often a signal that it's doing too much.

**Working in existing codebases:**

- Explore the current structure before proposing changes. Follow existing patterns.
- Where existing code has problems that affect the work (e.g., a file that's grown too large, unclear boundaries, tangled responsibilities), include targeted improvements as part of the design - the way a good developer improves code they're working in.
- Don't propose unrelated refactoring. Stay focused on what serves the current goal.

## After the Design

**Documentation:**

- Write the validated design (spec) to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md`
  - (User preferences for spec location override this default)
- Use elements-of-style:writing-clearly-and-concisely skill if available
- Commit the design document to git

**Spec Self-Review:**
After writing the spec document, look at it with fresh eyes:

1. **Placeholder scan:** Any "TBD", "TODO", incomplete sections, or vague requirements? Fix them.
2. **Internal consistency:** Do any sections contradict each other? Does the architecture match the feature descriptions?
3. **Scope check:** Is this focused enough for a single implementation plan, or does it need decomposition?
4. **Ambiguity check:** Could any requirement be interpreted two different ways? If so, pick one and make it explicit.

Fix any issues inline. No need to re-review — just fix and move on.

**User Review Gate:**
After the spec review loop passes, ask the user to review the written spec before proceeding:

> "Spec written and committed to `<path>`. Please review it and let me know if you want to make any changes before we start writing out the implementation plan."

Wait for the user's response. If they request changes, make them and re-run the spec review loop. Only proceed once the user approves.

**Implementation:**

- Invoke the writing-plans skill to create a detailed implementation plan
- Do NOT invoke any other skill. writing-plans is the next step.

## Key Principles

- **One question at a time** - Don't overwhelm with multiple questions
- **Multiple choice preferred** - Easier to answer than open-ended when possible
- **YAGNI ruthlessly** - Remove unnecessary features from all designs
- **Explore alternatives** - Always propose 2-3 approaches before settling
- **Incremental validation** - Present design, get approval before moving on
- **Be flexible** - Go back and clarify when something doesn't make sense

## Visual Companion

A browser-based companion for showing mockups, diagrams, and visual options during brainstorming. Available as a tool — not a mode. Accepting the companion means it's available for questions that benefit from visual treatment; it does NOT mean every question goes through the browser.

**Offering the companion (just-in-time):** Do NOT offer it upfront. Wait until a question would genuinely be clearer shown than told — a real mockup / layout / diagram question, not merely a UI *topic*. The first time that happens, offer it then, as its own message:
> "This next part might be easier if I show you — I can put together mockups, diagrams, and comparisons in a browser tab as we go. It's still new and can be token-intensive. Want me to? I'll open it for you."

**This offer MUST be its own message.** Only the offer — no clarifying question, summary, or other content. Wait for the user's response. If they accept, start the server with `--open` so their browser opens to the first screen automatically. If they decline, continue text-only and don't offer again unless they raise it.

**Per-question decision:** Even after the user accepts, decide FOR EACH QUESTION whether to use the browser or the terminal. The test: **would the user understand this better by seeing it than reading it?**

- **Use the browser** for content that IS visual — mockups, wireframes, layout comparisons, architecture diagrams, side-by-side visual designs
- **Use the terminal** for content that is text — requirements questions, conceptual choices, tradeoff lists, A/B/C/D text options, scope decisions

A question about a UI topic is not automatically a visual question. "What does personality mean in this context?" is a conceptual question — use the terminal. "Which wizard layout works better?" is a visual question — use the browser.

If they agree to the companion, read the detailed guide before proceeding:
`skills/brainstorming/visual-companion.md`

Todos os arquivos

0 arquivos

Instalar brainstorming

Baixe e descompacte os arquivos das habilidades no diretório .claude/skills/.

Baixar ZIP

Clone o repositório e copie os arquivos da habilidade para o seu projeto.

git clone https://github.com/obra/superpowers/tree/main/skills/brainstorming # Copy SKILL.md to your .claude/skills/ directory

Copiar Copiar
Configuração rápida: Copie a pasta da habilidade para .claude/skills/ O Claude detectará e utilizará automaticamente a habilidade
Repositório obra/superpowers

Habilidades relacionadas

notion-automation
Tempo atualizado 29 de Junho de 2026
airtable-automation
Tempo atualizado 29 de Junho de 2026
seo-programmatic
Tempo atualizado 29 de Junho de 2026
revops
Tempo atualizado 29 de Junho de 2026
OR