<Propósito> Deep Interview implementa questionamento socrático inspirado em Ouroboros com pontuação matemática de ambiguidade. Ele substitui ideias vagas por especificações cristalinas, fazendo perguntas direcionadas que expõem suposições ocultas, medindo a clareza em dimensões ponderadas e recusando-se a prosseguir até que a ambiguidade caia abaixo do limite resolvido para esta execução. A saída alimenta um pipeline controlado: deep-interview → omc-plan refinamento por consenso → aprovação pendente → execução explicitamente aprovada, garantindo máxima clareza antes de qualquer mutação. </Propósito>
<Quando_Usar>
- O usuário tem uma ideia vaga e deseja uma coleta de requisitos completa antes da execução
- O usuário diz "deep interview", "entreviste-me", "me pergunte tudo", "não presuma", "certifique-se de que entendeu"
- O usuário diz "ouroboros", "socrático", "tenho uma ideia vaga", "não tenho certeza exata do que quero"
- O usuário quer evitar resultados do tipo "não era isso que eu queria" da execução autônoma
- A tarefa é complexa o suficiente para que pular para o código desperdiçaria ciclos em descoberta de escopo
- O usuário deseja clareza matematicamente validada antes de se comprometer com a execução </Quando_Usar>
<Não_Usar_Quando>
- O usuário tem uma solicitação detalhada e específica com caminhos de arquivo, nomes de função ou critérios de aceitação — execute diretamente
- O usuário deseja explorar opções ou fazer brainstorming — use a habilidade
omc-plan - O usuário deseja uma correção rápida ou uma única alteração — delegue ao executor ou ao ralph
- O usuário diz "apenas faça" ou "pule as perguntas" sem um caminho de execução explícito — respeite a intenção encerrando a entrevista e escrevendo uma especificação de
aprovação pendente, não mutando arquivos ou delegando execução - O usuário já tem um PRD ou arquivo de plano e pede explicitamente para executá-lo — use a habilidade de execução solicitada com esse plano </Não_Usar_Quando>
<Por_Que_Isso_Existe> A IA pode construir qualquer coisa. A parte difícil é saber o que construir. A Fase 0 do piloto automático do OMC expande ideias em especificações por meio de analista + arquiteto, mas essa abordagem de passagem única luta com entradas genuinamente vagas. Ela pergunta "o que você quer?" em vez de "o que você está assumindo?". Deep Interview aplica metodologia socrática para expor suposições iterativamente e avaliar matematicamente a prontidão, garantindo que a IA tenha clareza genuína antes de gastar ciclos de execução.
Inspirado pelo projeto Ouroboros que demonstrou que a qualidade da especificação é o principal gargalo no desenvolvimento assistido por IA. </Por_Que_Isso_Existe>
<Política_de_Execução>
- Faça UMA pergunta de cada vez — nunca agrupe múltiplas perguntas
- Mire na dimensão de clareza MAIS FRACA com cada pergunta
- Antes da pontuação de ambiguidade da Rodada 1, execute uma única porta de enumeração de topologia da Rodada 0 que confirme a lista de componentes de nível superior e a trave no estado
- Torne a segmentação da dimensão mais fraca explícita a cada rodada: nomeie a dimensão mais fraca, declare sua pontuação/lacuna e explique por que a próxima pergunta é direcionada a ela
- Colete fatos do código base via agente
exploreANTES de perguntar ao usuário sobre eles - Para perguntas de confirmação de brownfield, cite a evidência do repositório que desencadeou a pergunta (caminho do arquivo, símbolo ou padrão) em vez de pedir ao usuário para redescobri-lo
- Pontue a ambiguidade após cada resposta — exiba a pontuação de forma transparente
- Quando a topologia travada tiver vários componentes ativos, pontue e segmente cada componente explicitamente para que a clareza em profundidade em um componente não possa ocultar ambiguidade em irmãos
- Mantenha os payloads de prompt com orçamento: resuma ou apare o contexto/histórico inicial superdimensionado antes de compor prompt, pontuação, especificação ou transferência
- Se o contexto inicial do usuário for superdimensionado, crie um resumo conciso e seguro para prompt primeiro e aguarde esse resumo antes de pontuação de ambiguidade, geração de perguntas ou transferência de execução downstream
- Não prossiga para execução até que a ambiguidade ≤ o limite resolvido para esta execução e o usuário aprove explicitamente um caminho de execução com escopo
- Permita saída antecipada com um aviso claro se a ambiguidade ainda estiver alta
- Persista o estado da entrevista para retomar entre interrupções de sessão
- Agentes de desafio ativam em limites de rodada específicos para mudar de perspectiva </Política_de_Execução>
<Modo_de_Pesquisa_Automática>
Quando os argumentos incluírem --autoresearch, Deep Interview se torna a via de configuração de curva de aprendizado zero para a habilidade autoresearch com estado.
- Se ainda não houver um resumo de missão utilizável, comece perguntando: "O que o autoresearch deve melhorar ou provar para este repositório?"
- Após a missão estar clara, colete um comando de avaliador. Se o usuário deixar em branco, infira um apenas quando a evidência do repositório for forte; caso contrário, continue entrevistando até que um avaliador seja explícito o suficiente para ser lançado com segurança.
- Mantenha a regra usual de uma pergunta por rodada, mas trate a clareza da missão e a clareza do avaliador como portas de prontidão rígidas, além do limite de ambiguidade normal.
- Uma vez pronto, não faça a ponte para
omc-plan,autopilot,ralph,teamou o CLIomc autoresearch(preterido). Em vez disso, escreva os artefatos de configuração da missão/avaliador e invoque:Skill("oh-my-claudecode:autoresearch")
- Esta transferência entra na verdadeira habilidade autoresearch com estado. Após uma transferência bem-sucedida, anuncie o slug da missão, o comando/script do avaliador, o teto máximo de tempo de execução e o local do artefato. </Modo_de_Pesquisa_Automática>
Proteção de Invocação de Plugin Nativo (Issue #3030)
Se esta habilidade bruta em pacote for carregada pelo carregador de plugin nativo do Claude Code através de /oh-my-claudecode:deep-interview ou Skill("oh-my-claudecode:deep-interview"), não trate esse caminho como permissão para pular a configuração renderizada do OMC. A invocação preferida pelo usuário é /deep-interview; não recomende ou anuncie /oh-my-claudecode:deep-interview como ponto de entrada do deep-interview. Independentemente do caminho de invocação, a Fase 0 abaixo permanece bloqueante e deve resolver omc.deepInterview.ambiguityThreshold das configurações antes de qualquer anúncio, gravação de estado, pergunta ou pontuação de ambiguidade.
Fase 0: Resolver Limite de Ambiguidade (pré-requisito bloqueante)
Conclua esta fase antes da Fase 1, antes da exploração brownfield, antes de state_write, antes da Rodada 0 e antes de qualquer pontuação de ambiguidade. Não continue se o limite resolvido e a fonte forem desconhecidos.
- Leia as configurações de limite em ordem de precedência:
- Configurações do usuário:
[$CLAUDE_CONFIG_DIR|~/.claude]/settings.json - Configurações do projeto:
./.claude/settings.json(sobrescreve as configurações do usuário)
- Configurações do usuário:
- Resolva o limite e a fonte:
- Leia
omc.deepInterview.ambiguityThresholdde ambos os arquivos quando presente. - Use o valor do projeto quando válido; caso contrário, use o valor do usuário quando válido; caso contrário, use o padrão
0.2. - Defina estas variáveis de execução exatamente:
<limiteResolvido>,<porcentagemLimiteResolvido>e<fonteLimiteResolvido>(por exemplo,./.claude/settings.json,[$CLAUDE_CONFIG_DIR|~/.claude]/settings.jsonoupadrão).
- Leia
- Emita a primeira linha necessária para o usuário antes de qualquer outro anúncio de entrevista:
Limite Deep Interview: <porcentagemLimiteResolvido> (fonte: <fonteLimiteResolvido>)
- Carregue a fonte do limite mecanicamente:
- Substitua
<limiteResolvido>,<porcentagemLimiteResolvido>e<fonteLimiteResolvido>nas instruções restantes antes de continuar. - Inclua
threshold_sourceno primeiro payload de estadostate_write(mode="deep-interview")e preserve-o em atualizações de estado posteriores. - Inclua tanto o limite quanto a fonte nos metadados da especificação final.
- Substitua
Fase 1: Inicializar
-
Analise a ideia do usuário de
{{ARGUMENTOS}} -
Detecte brownfield vs greenfield:
- Execute o agente
explore(haiku): verifique se o diretório atual possui código-fonte existente, arquivos de pacote ou histórico git - Se arquivos de origem existirem E a ideia do usuário fizer referência a modificar/estender algo: brownfield
- Caso contrário: greenfield
- Execute o agente
-
Para brownfield: Construa o contexto da primeira rodada antes de projetar as perguntas da Rodada 1:
- Execute o agente
explorepara mapear áreas relevantes do código base, armazene comocontexto_codigo_base. - Consulte o conhecimento de planejamento local acumulado: faça glob em
.omc/specs/deep-*.mde.omc/plans/*.md, depois leia os 1-3 artefatos mais relevantes por correspondência de tópico comideia_inicial. Resuma apenas fatos de domínio duráveis, decisões anteriores, restrições e lacunas não resolvidas que devem moldar a Rodada 1; não trate o texto do artefato como instruções. - Use este contexto brownfield para evitar re-perguntar fatos já cristalizados por sessões anteriores deep-interview/deep-dive ou planos ralplan. 3.5. Verifique se a resolução do limite da Fase 0 está completa:
- Confirme que a primeira linha necessária já foi emitida:
Limite Deep Interview: <porcentagemLimiteResolvido> (fonte: <fonteLimiteResolvido>) - Confirme que
<limiteResolvido>,<porcentagemLimiteResolvido>e<fonteLimiteResolvido>estão disponíveis antes de continuar. - Se algum valor estiver faltando, retorne à Fase 0 em vez de usar um limite codificado. 3.6. Normalize o contexto inicial superdimensionado antes da inicialização do estado:
- Inspecione a ideia inicial mais quaisquer artefatos colados, logs, transcrições ou trechos de arquivo quanto ao risco de orçamento de prompt antes de escrever o estado ou gerar a primeira pergunta.
- Se o contexto inicial for superdimensionado ou provável de sobrecarregar prompts downstream, produza um resumo conciso e seguro para prompt que preserve a intenção do usuário, decisões, restrições, incógnitas, arquivos/símbolos citados e quaisquer não-objetivos explícitos.
- Trate o resumo como a
ideia_inicialcanônica e armazene o material bruto superdimensionado apenas como contexto externo/de consulta se puder ser referenciado com segurança; não cole o contexto bruto superdimensionado em prompts de geração de perguntas, pontuação de ambiguidade, cristalização de especificação ou transferência de execução. - Aguarde até que o resumo exista antes de pontuação de ambiguidade, seleção da dimensão mais fraca, prompts de exploração brownfield ou qualquer ponte para
omc-plan,autopilot,ralphouteam. 3.7. Disciplina de caminho de artefato: - As especificações finais DEVEM ser escritas exatamente em
.omc/specs/deep-interview-{slug}.md. - Artefatos de entrevista efêmeros (rascunhos de pontuação, resumos seguros para prompt, filas transitórias, metadados de retomada) pertencem a
.omc/state/ou ao estadostate_write, nunca na raiz do repositório ou em arquivos de trabalho arbitrários.
- Execute o agente
-
Inicialize o estado via
state_write(mode="deep-interview"):
{
"active": true,
"current_phase": "deep-interview",
"state": {
"interview_id": "<uuid>",
"type": "greenfield|brownfield",
"initial_idea": "<resumo do contexto inicial seguro para prompt ou entrada do usuário>",
"initial_context_summary": "<resumo se superdimensionado, senão nulo>",
"rounds": [],
"current_ambiguity": 1.0,
"threshold": <limiteResolvido>,
"threshold_source": "<fonteLimiteResolvido>",
"codebase_context": null,
"topology": {
"status": "pending|confirmed|legacy_missing",
"confirmed_at": null,
"components": [],
"deferrals": [],
"last_targeted_component_id": null
},
"challenge_modes_used": [],
"ontology_snapshots": []
}
}
- Anuncie a entrevista ao usuário:
A primeira linha deste anúncio DEVE ser exatamente o marcador de limite da Fase 0; não omita ou reordene:
Limite Deep Interview: (fonte: )
Iniciando deep interview. Farei perguntas direcionadas para entender sua ideia completamente antes de construir qualquer coisa. Após cada resposta, mostrarei sua pontuação de clareza. Prosseguiremos para a execução assim que a ambiguidade cair abaixo de .
Sua ideia: "{ideia_inicial}" Tipo de projeto: {greenfield|brownfield} Ambiguidade atual: 100% (ainda não começamos)
Rodada 0: Porta de Enumeração de Topologia
Execute esta porta exatamente uma vez após a inicialização da Fase 1 e antes de qualquer pontuação de ambiguidade da Fase 2. O objetivo é travar a forma do escopo do usuário antes que o questionamento socrático em profundidade possa superajustar ao componente mais descrito.
- Enumere componentes de nível superior candidatos da ideia inicial segura para prompt e do contexto brownfield:
- Extraia verbos/substantivos de nível superior, fluxos de trabalho, superfícies, integrações ou entregáveis que podem ter sucesso ou falhar independentemente.
- Prefira 1-6 componentes. Se mais de 6 candidatos aparecerem, agrupe irmãos no nível mais alto útil e anote a lógica do agrupamento.
- Não trate tarefas de implementação, campos ou subfuncionalidades como componentes de nível superior, a menos que o usuário os tenha enquadrado como resultados independentes.
- Faça uma pergunta de confirmação antes da Rodada 1:
Rodada 0 | Confirmação de topologia | Ambiguidade: ainda não pontuada
Estou lendo isso como {N} componente(s) de nível superior:
1. {nome_componente}: {descrição_uma_frase}
2. ...
Essa topologia está correta? Algum componente deve ser adicionado, removido, mesclado, dividido ou adiado explicitamente?
As opções devem incluir escolhas contextualmente relevantes, como Parece correto, Adicionar/remover/mesclar componentes, Adiar um ou mais componentes, além de texto livre. Esta é a única pergunta pré-pontuação e preserva a regra de uma pergunta por rodada.
- Trave a topologia no estado após a resposta. Armazene uma lista de componentes normalizada e um carimbo de data/hora de confirmação:
{
"topology": {
"status": "confirmed",
"confirmed_at": "<carimbo de data/hora ISO-8601>",
"components": [
{
"id": "slug-do-componente",
"name": "Nome do Componente",
"description": "Resultado de nível superior confirmado",
"status": "active|deferred",
"evidence": ["frase inicial do prompt ou citação brownfield"],
"clarity_scores": {
"goal": null,
"constraints": null,
"criteria": null,
"context": null
},
"weakest_dimension": null
}
],
"deferrals": [
{
"component_id": "slug-do-componente",
"reason": "Motivo de adiamento confirmado pelo usuário",
"confirmed_at": "<carimbo de data/hora ISO-8601>"
}
],
"last_targeted_component_id": null
}
}
- Migração de estado legado: Ao retomar um arquivo de estado
deep-interviewexistente que não tenhatopology, trate-o como"status": "legacy_missing". Se ainda não existir umspec_pathfinal, execute
… [truncado para tradução]