Eu não costumo travar no parágrafo final. Eu travo antes: em decidir o que realmente vale virar post.
No dia a dia, eu leio bastante coisa técnica: retrospectiva de incidente, release notes, decisões de arquitetura, experimentos com LLM. As opções estão lá. Mas ficam espalhadas em 12 abas e um monte de bookmark que, honestamente, eu nunca vou abrir de novo.
Quando sento pra escrever (se esse momento sequer chega), os takes bons já foram escritos.
Então fiz um pipeline que lê por mim, extrai as tendências, e me entrega matéria-prima estruturada pra eu escrever rápido.
Chamei de GRIST (Guided Research & Insight Synthesis Tool).
Dois comandos. De propósito.
O GRIST faz duas coisas (e só essas duas):
harvest— busca, filtra, analisa e gera estrutura de ideiascompose— escolhe uma estrutura e gera um primeiro rascunho
Essa separação é o ponto central. Não queria uma black-box que pega um ‘input’ de um feed rss e transforma em um post genérico. Sim, o resultado é quase sempre genérico. E a gente percebe.
Um detalhe para iniciantes: saber qual ângulo tomar. Compor antes de escolher dá um conteúdo morno, que não chega a lugar nenhum.
O GRIST força a separação: colhe primeiro, escolhe o ângulo, e só depois compõe.
Como o pipeline funciona
Em linguagem direta:
- Busca fontes RSS
- Roda um filtro de relevância mais rígido (o “Librarian”: rejeita hype, listicles e anúncio sem profundidade técnica)
- Enriquece os artigos selecionados: tese, insights, trade-offs
- Detecta tendências entre artigos
- Gera cards estruturais com múltiplas opções de insights, takes, ângulos e ganchos
- Compõe sob demanda a partir do card escolhido
O stack escolhido é o que eu já estou acostumado: TypeScript + Node + OpenAI API + output em markdown/json. Roda local sem se preocupar com infra (só os custos de LLM).
Como é a saída na prática
Depois do npm run harvest, eu rodo npm run board:
▸ Structure Board
Loaded 4 cards from latest harvest
[1] The Pulse: Cloudflare takes down half the internet – but shares a great postmortem
take: Cloudflare's outage teaches a valuable lesson: infrastructure services hold your site hostage...
insight: Cloudflare's outage affected major services like ChatGPT, Canva, and Spotify...
[2] AI Agent Orchestration is Broken
take: Running multiple AI agents is like herding cats...
insight: Context fragmentation disrupts workflow efficiency...
E no structures.json, cada card vem com opções reutilizáveis, não uma resposta engessada:
{
"id": 2,
"title": "AI Agent Orchestration is Broken",
"insightOptions": [
"Context fragmentation breaks continuity when multiple agents are used",
"Tooling latency compounds when coordination is unclear"
],
"takeOptions": [
"Most multi-agent stacks fail at context handoff, not model quality",
"The architecture problem is orchestration, not prompts"
],
"angleOptions": [
"Operational reliability lens",
"DX and cognitive load lens"
]
}
Cada card vem com múltiplas opções de insight, take, angle e hook. Você escolhe. Esse julgamento é seu.
Colaborativo
Eu uso o GRIST localmente. Ou seja: tem minhas fontes RSS, meu arquivo de contexto, meus prompts. Nada disso vai no repo público.
O que vai:
- Arquivos privados ignorados pelo git (
context/,sources/, prompts locais) - Templates versionados (
*.example) pra setup rápido - Comando
initpra bootstrapar a config local - Templates de contribuição, segurança e issue
Clone, rode npm run init, configure suas fontes e em menos de 5 minutos você tá inicializou o projeto. Ajuste os prompts pro seu tom. Calibre o Librarian. Enfim, você entendeu.
Repo: https://github.com/vncsleal/grist.
Testa, experimenta, modifique, abra um issue ou manda PR se encontrar algo quebrado.