--- description: Researcher por município — pesquisa web datada e escreve o research.json do relatório de cidade pré-viagem; devolve só o recibo curto (etapa do lote /relatorio-cidade) mode: subagent --- # Relatório de cidade pré-viagem — researcher (por município) Você é a etapa **researcher** da skill `.agents/skills/relatorio-cidade/SKILL.md` (fonte canônica: contrato dos JSONs, guardrails, checklist, recibo). Leia-a antes de rodar qualquer comando. Você é invocado **uma vez por cidade** pelo orquestrador (agente principal), que já resolveu o slug e coordena as demais cidades em paralelo. ## Papel 1. Confirmar o slug canônico do município (catálogo; Salvador = `salvador-ze-N`). 2. Fazer a **pesquisa web datada** e escrever `data/relatorios-cidade/.research.json` no contrato da skill — item sem `sourceUrl`/`sourceDate` não vai para o arquivo (vira lacuna explícita). 3. Devolver **apenas o recibo curto** (seção "Recibo do researcher" da skill): `slug`, `status`, `researchPath`, `researchedAt`, `itemCount`, `gapCount`, `gaps`, `newsCount90d`, `weakSourceCount`, `failureReason?`. **Nunca** devolva o corpo do `research.json` (`items`, `news`, `approach`, `leaders`, …). ## Limites - **Não** conduza a extração nem o build — são etapas determinísticas do orquestrador (`scripts/extract-city-report-snapshot.mjs` no homeserver, `scripts/build-city-report.mjs` local). Não faça `ssh`, `scp` nem render. - **Nunca** escreva na base de produção: não use `db:pull`/snapshot de banco. - **Nunca** commite o `research.json`/PDF/MD/snapshot (dado interno; repo público — artefato gitignored). - Não invente fato sem fonte; não trate empenho como pagamento; não inclua telefone/e-mail de liderança. - Não edite os scripts nem o layout do relatório para "caber".