Modo conversacional estruturado — scout + gray areas + spec gerada ao final
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-code-framework:discussThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
<!-- framework-tag: v2.56.0 framework-file: skills/discuss/SKILL.md -->
Fase conversacional de scout + decisões que gera uma spec completa ao final. Substitui o salto direto de "quero X" para /spec quando há gray areas, domínio novo ou ambiguidades que precisam ser resolvidas antes.
/spec/spec direto/research/spec com spec light/discuss {ID} {Título}
/discuss {ID} {Título} --from {url-ou-key}
/discuss --from {url-ou-key}
Exemplos:
/discuss AUTH5 SSO com SAML — explorar opções de implementação SAML antes de especificar/discuss FEAT8 Sistema de notificações --from PROJ-789 — discutir a partir de um card do Jira/discuss --from https://notion.so/page/abc123 — ID e Título extraídos automaticamenteVerificar se o CLAUDE.md do projeto contém a seção ## Integracao Notion (specs).
Antes de iniciar: verificar se
PROJECT_CONTEXT.mdtem seção## Restrições inegociáveis. Se sim, carregar e manter presente durante toda a discussão. Decisões que conflitem com restrições devem ser escaladas ao usuário.
--from fornecido)Se o usuario passou --from {referencia}, resolver a fonte ANTES de iniciar a discussão:
Identificar tipo de fonte:
getJiraIssue*.atlassian.net/browse/*): extrair key, buscar via getJiraIssuenotion.so/*): buscar via notion-fetchdocs.google.com/document/*): buscar via google_drive_fetch*.atlassian.net/wiki/*): buscar via getConfluencePageExtrair informações da fonte:
Se ID ou Título não foram fornecidos na linha de comando: usar os dados extraídos da fonte:
PROJ-123). Confirmar com o usuário.Informar ao usuário: o que foi extraído e usar como contexto base para a discussão.
PROJECT_CONTEXT.md (se existir) — stack, decisões arquiteturais, restrições## Integracao Notion (specs) presente no CLAUDE.md): notion-search filtrando por domínio relevante na database de specs. notion-fetch para ler specs candidatas.SPECS_INDEX.md na raiz do projeto..claude/CODEBASE_MAP.md (se existir, produzido por /map-codebase) — arquitetura e padrões mapeadosSe nem
PROJECT_CONTEXT.mdnemCODEBASE_MAP.mdexistirem: sugerir ao usuário: "Recomendo rodar/map-codebaseantes para melhorar a qualidade do scout. Quer prosseguir mesmo assim?"
Se --from foi usado, incorporar dados extraídos da fonte
Classificação preliminar de complexidade baseada na descrição + contexto carregado:
Informar ao usuário:
Contexto carregado:
- PROJECT_CONTEXT: {presente|ausente}
- CODEBASE_MAP: {presente|ausente}
- {N} specs existentes no domínio {X}
- Complexidade preliminar: {classificação} (pode mudar durante a discussão)
Busca rápida e direcionada (NÃO é research completo):
Grep/glob por termos relacionados ao título e domínio da feature
Identificar:
Resumir achados em 3-5 bullets:
Scout — achados relevantes:
• {padrão encontrado} em {arquivo/módulo}
• {código reutilizável} em {local}
• {schema relacionado} em {arquivo}
Regras do scout:
node_modules, vendor, dist, buildCODEBASE_MAP.md existe, usar como atalho (pular detecção de stack)## Monorepo no CLAUDE.md), focar no sub-projeto relevanteCom base no contexto (Passo 1) e scout (Passo 2), identificar automaticamente áreas que precisam de decisão antes de gerar a spec.
Fontes de gray areas:
rascunho, gaps na arquiteturaCategorias:
Apresentar lista numerada, ordenada por impacto/risco (maior primeiro):
Gray areas identificadas (ordenadas por impacto):
1. 🔴 [Ambiguidade] Como tratar usuários existentes durante a migração?
Impacto: bloqueia definição de escopo e estimativa
2. 🟠 [Decisão técnica] Usar WebSocket ou SSE para notificações real-time?
Impacto: determina arquitetura do módulo inteiro
3. 🟡 [Dependência] Schema de permissões depende de AUTH-120 (status: em andamento)
Impacto: pode atrasar início da implementação
4. ⚪ [Conflito] Projeto usa REST puro mas feature sugere GraphQL subscription
Impacto: baixo se resolvido com SSE; alto se forçar novo protocolo
Quais você quer explorar? (números separados por vírgula, ou 'todas')
Se nenhuma gray area identificada:
Para cada gray area que o usuário escolheu explorar, uma por vez:
Opções para [Gray area N]:
A) {alternativa 1} — trade-off: {benefício} vs {custo}
B) {alternativa 2} — trade-off: {benefício} vs {custo}
C) Outra (descreva)
{gray area} → {decisão} + {justificativa breve}Regras do deep-dive:
{A DETALHAR} com impacto documentado e seguir para a próximaAntes de gerar a spec, apresentar o resumo completo das decisões:
Decisões consolidadas:
| # | Gray area | Decisão | Motivo | Trade-off aceito |
|---|-----------|---------|--------|-----------------|
| 1 | {descrição} | {decisão tomada} | {justificativa} | {o que foi sacrificado} |
| 2 | {descrição} | {A DETALHAR} | — | Impacto: {descrição do impacto da indefinição} |
| ...
Confirma? (sim / ajustar N / adicionar decisão)
{A DETALHAR}) devem ter o campo "Impacto" preenchido — qual o risco de implementar sem essa definiçãoReclassificar com base nas decisões tomadas:
Se a classificação mudou em relação à preliminar (Passo 1):
Regra de proporcionalidade: o nível de detalhe da spec deve ser proporcional à complexidade final. Não expandir decisões além do necessário para implementação.
A spec segue o mesmo formato e fluxo do /spec, incorporando as decisões do discuss.
0c. Bootstrap check: verificar que a infraestrutura existe:
.claude/specs/ não existe → criar diretório.claude/specs/done/ não existe → criar diretório.claude/specs/TEMPLATE.md não existe → avisar: "Template de spec não encontrado. Rodar /setup-framework ou criar manualmente."SPECS_INDEX.md não existe → criar com estrutura mínima.claude/specs/backlog.md não existe → criar com estrutura padrãoSPECS_INDEX.md; modo Notion: notion-search por ID na database). Se sim, avisar..claude/specs/TEMPLATE.md para .claude/specs/{id-em-kebab-case}.md# {ID} — {Título}rascunhogit config user.name; se disponível, usar como default e confirmar; senão, perguntar--from usado: > Fonte: [{tipo}]({url}){A DETALHAR — impacto: "{descrição do impacto da indefinição}"}/spec Passo 4brascunho e coluna Fonte/backlog-update {ID} add ou adicionar manualmenteQuando a seção ## Integracao Notion (specs) existe no CLAUDE.md:
data_source_id, templates por complexidade, campos adicionaisrascunho), Complexidade, Tipo, Severidade, Fase, Camadas, Impacto, Estimativa, Domínio, Projeto, Autor, campos adicionaisnotion-create-pages com template conforme complexidade. Se template_id falhar, reenviar sem eleSPECS_INDEX.md em modo Notion.Ler o artefato criado (arquivo ou página Notion) e validar:
7a. Seções obrigatórias por complexidade:
| Seção | Pequeno | Médio | Grande/Complexo |
|---|---|---|---|
| Contexto | obrigatório — ≥2 frases | obrigatório | obrigatório |
| Requisitos Funcionais | — | obrigatório — ≥1 RF | obrigatório |
| Critérios de aceitação | obrigatório — ≥1 | obrigatório | obrigatório |
| Escopo | — | — | obrigatório |
| Breakdown de tasks | — | — | obrigatório |
7b. Validação específica do /discuss:
{A DETALHAR — impacto: "..."} na seção relevanteSe alguma seção obrigatória está vazia ou só tem placeholder:
Se o usuário não tem a informação agora:
{A DETALHAR — pendente de input do usuário}Apresentar resumo final:
Spec gerada: {path do arquivo ou URL do Notion}
Métricas do /discuss:
- Gray areas: {N} identificadas / {M} exploradas / {K} decididas / {J} pendentes
Complexidade: {preliminar} → {final} {(motivo da mudança, se houve)}
Verificação: {✅ completa | ⚠️ N seções pendentes}
Próximo passo claro (conforme complexidade e estado):
| Situação | Próximo passo |
|---|---|
| Pequeno, spec completa | Aprovar spec → ler spec-driven → implementar → testar → commit |
| Médio, spec completa | Aprovar spec → criar execution-plan (/execution-plan) → implementar → commit |
| Grande, spec completa | Aprovar spec → criar design doc → criar execution-plan → implementar → commit |
| Complexo, spec completa | Aprovar spec → criar design doc → fluxo RPI (research → plan → implement em sessões separadas) |
| Qualquer, com pendentes críticas | Resolver pendências críticas antes de implementar — itens marcados {A DETALHAR} com impacto alto |
Gate: Para Médio+, não iniciar implementação sem execution-plan escrito. Ver skill
spec-drivenpara o fluxo completo.
{A DETALHAR} com impacto. Não assumir, não preencher por conta própria{A DETALHAR} + impacto e seguir/spec (TEMPLATE.md) — indistinguível de uma spec criada via /specrascunho — mesma regra do /spec/spec). Ambos devem produzir resultados equivalentes--from: mesma resolução de fonte externa do /spec. Registrar referência no headerSPECS_INDEX.md; modo Notion: já fica na database — sem passo extra) e no backlog/spec — Notion: notion-get-users com user_id: "self". Repo: git config user.namePROJECT_CONTEXT.md e specs existentes carregados antes de perguntar{A DETALHAR — impacto: "..."} com impacto documentadorascunho (modo local: SPECS_INDEX.md; modo Notion: status na database)npx claudepluginhub gabrielferreira/claude-code-framework --plugin claude-code-frameworkCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.