type: agent_transfer
scope: intra_processo
from: Codex / aiox-dev
to: Agent:next-session
date: 2026-05-14
project: apps/research — Research Observatory
O apps/research agora renderiza pesquisas como uma narrativa visual (Map, Ações, Evidências, Waves, Fontes, Players, Perguntas, Doc), mas a maioria das pastas em docs/research/<slug>/ ainda não possui todos os artefatos estruturados necessários para preencher essas abas com clareza.
Padronizar todas as pesquisas existentes em docs/research/** para que sejam 100% compatíveis com o Research Observatory, sem inventar dados. Quando um dado não existir, o agente deve extrair do Markdown existente, marcar como inferido ou deixar ausente de forma explícita.
Implementado no app:
apps/research/src/lib/research-observatory.server.ts- Descobre runs em
docs/research. - Lê artefatos por aba para reduzir carga.
- Usa
2026-05-11-visual-deep-research-appscomo demo preferida.
- Descobre runs em
apps/research/src/components/observatory/adapters/research.ts- Monta abas conforme artefatos presentes.
- Aba
Evidênciasexiste quando hásources.yamlouresearch-graph.json.
apps/research/src/components/observatory/organisms/reader-body.tsxMap: narrativa executiva.Ações: decisão, checklist, quick wins, roadmap, riscos.Evidências: confiança de fontes, grafo, sinais, arquivos.Perguntas: backlog priorizado.
Demo atual:
http://localhost:3001/observatory/research?slug=2026-05-11-visual-deep-research-apps&view=mapCada pesquisa deve ter, no mínimo, um contrato visual previsível:
docs/research/<slug>/
README.md
00-query-original.md
01-deep-research-prompt.md
02-research-report.md
03-recommendations.md
metrics.yaml
pipeline-state.yaml
execution-log.jsonl
sources.yaml
research-graph.json
matrices.yaml
curiosity_queue.yaml
players.yaml
ux-patterns.yaml
quick-wins.mdNem todo arquivo precisa existir para toda pesquisa, mas o processo de compatibilização deve tentar gerar todos os que forem defensáveis a partir dos documentos existentes.
Leia nesta ordem:
apps/research/README.mdapps/research/src/lib/research-observatory.server.tsapps/research/src/components/observatory/adapters/research.tsapps/research/src/components/observatory/organisms/reader-body.tsxdocs/research/2026-05-11-visual-deep-research-apps/- Uma pesquisa antiga/incompleta em
docs/research/**para comparar gaps
Para cada docs/research/<slug>/:
- Inventariar arquivos existentes.
- Classificar a pesquisa:
rich: tem core, metrics, sources, graph, recommendations.partial: tem relatório e alguns YAML/JSON.legacy: quase só Markdown.
- Preservar documentos originais.
- Gerar ou normalizar artefatos estruturados:
metrics.yaml: score, coverage, integrity, decision, stop_reason.pipeline-state.yaml: fases e status.execution-log.jsonl: timeline de eventos, se houver evidência temporal.sources.yaml: fontes com URL, título, credibilidade, flags.research-graph.json: nós e links entre query, waves, fontes, relatório, decisões.matrices.yaml: tabelas extraídas dos Markdown.curiosity_queue.yaml: perguntas abertas e próximos testes.players.yaml: ferramentas/players citados.ux-patterns.yaml: padrões reutilizáveis quando a pesquisa for de UX/produto.quick-wins.md: ações rápidas extraídas das recomendações.
- Validar no browser:
view=mapview=evidenceview=recommendationsview=wavesview=sourcesview=curiosity
- Registrar no README ou em relatório final quais slugs foram compatibilizados.
- Não criar fonte que não esteja citada ou inferível de URL/texto existente.
- Não transformar opinião em métrica sem marcar como inferida.
- Não preencher
coverage_scorecom número arbitrário; se não existir, derivar de presença de artefatos e registrar no comentário do YAML. - Não apagar arquivos originais.
- Não renomear slugs sem aprovação.
- Não mudar visual do app enquanto estiver apenas compatibilizando dados.
Para uma pesquisa legada com README.md e report.md:
- Extrair título e query do primeiro heading e parágrafos iniciais.
- Criar
metrics.yamlcom:coverage_score: derivado de completude documental.integrity_score: derivado de fontes/citações presentes.decision:continue,stop,inconclusiveouneeds_followup.
- Criar
pipeline-state.yamlcom fases presentes/ausentes. - Extrair links para
sources.yaml. - Extrair tabelas markdown para
matrices.yaml. - Criar
curiosity_queue.yamlcom perguntas explícitas de "lacunas", "riscos", "próximos passos". - Abrir
/observatory/research?slug=<slug>&view=mape verificar se não há cards vazios/confusos.
- Todas as pesquisas aparecem sem quebrar em
/observatory/research. - Nenhuma aba visual importante mostra apenas vazio quando há informação extraível nos Markdown.
- Pesquisas sem determinado dado escondem a aba correspondente ou mostram fallback claro.
Mapmantém leitura executiva.Evidênciassempre explica fonte/confiança/grafo quando artefatos existem.Açõessempre mostra decisão/checklist/roadmap quando há recomendações.npm run build --workspaces=falsepassa emapps/research.npm run typecheck --workspaces=falsepassa depois do build.
Research run: uma pasta emdocs/research/<slug>/.Core: documentos básicosREADME, query, prompt, report e recommendations.Map: aba executiva de descoberta.Evidências: aba dedicada a fontes, grafo e materialidade da conclusão.Ações: aba de decisão e próximos passos.Waves: iterações de aprofundamento da pesquisa.Curiosity queue: perguntas abertas que podem mudar a decisão.Source credibility: classificação de confiança da fonte.Research graph: relação entre artefatos, fontes e conclusões.Matrix: tabela extraída do relatório.Inferred: dado derivado por heurística, não originalmente declarado.
Antes de editar qualquer pesquisa, responda para si:
- Qual slug vou compatibilizar primeiro?
- Quais arquivos já existem?
- Quais abas do Observatory ficam vazias hoje?
- Quais dados posso extrair sem inventar?
- Como vou marcar dados inferidos?
- Como vou validar visualmente o resultado?
Comece por 1 pesquisa completa e 1 pesquisa legada. Depois aplique o processo em lote.