Para Thiago acompanhar · Autorizado por Mateus Busson

Ghost System v0.1
A Jornada

Do conceito ao codebase em 1 sessao Claude. Cockpit operacional GL7 pra fechar a defasagem comercial: Lead Gen -> Capture -> Nurture -> Sell, tudo orquestrado, zero custo novo.

2026-04-14 Fase 0 ✅ Fase 1 ✅ Fase 2 CODEBASE ✅ Deploy P0 Thiago 🟡
60+
Arquivos criados
61+
Tests green
5
HTMLs gerados
28
n8n nodes
2
Clientes piloto
R$0
Custo novo
↓ Comecar a jornada
Capitulo 01

A dor de partida

GL7 tem 7 clientes ativos, mas a maquina propria de demanda anda no zero. Ferramentas existem, dinheiro gasto existe, lead chegando existe — o que falta e cola.

O diagnostico 5W2H

  • O que: funil comercial GL7 fragmentado em 4 silos.
  • Onde: Framer (captura) -> ??? -> SendPulse (email, subutilizado) -> ??? -> Reuniao Fathom -> planilha manual.
  • Por que doeu: lead aberto/clicado nao escalava pra Jordan, Celso rodava trafego sem feedback de conversao por fonte, Thiago tinha insight virar tarefa no chat e sumir.
  • Quanto: 85 referencias dispersas a SendPulse em docs e chats, 0 workflows core n8n vivos pra funil, Fathom 100% manual ate virar card CRM.
  • Quando: diagnostico puxado no inicio da sessao 2026-04-14, apos semanas de discussao solta com Mateus sobre "maquina de lead".
Essa parte nossa de geracao de demanda, maquina de lead, maquina de venda, ta muito defasada. A gente tem o metodo, tem as ferramentas, mas nao tem o fio que conecta. — Thiago Dam, paraphrase sessao 2026-04-14

Ferramentas isoladas, fio quebrado

┌─────────┐ ? ┌────────────┐ ? ┌─────────┐ ? ┌─────────┐ │ Framer │──╳──→ │ SendPulse │──╳──→ │ n8n │──╳──→ │ Fathom │ │ captura │ │ email │ │ (vazio) │ │ reuniao │ └─────────┘ └────────────┘ └─────────┘ └─────────┘ │ │ │ │ └──→ lead cai aqui └──→ score perdido └──→ nao existe └──→ vira planilha

A dor nao era "falta uma ferramenta nova". Era "existem 5 ferramentas e nenhuma sabe da outra". Escolher construir mais um SaaS seria vibe coding disfarcado de progresso. A resposta tinha que ser orquestrar.

Capitulo 02

O sonho: Ghost System

Uma camada fina. Um orquestrador, nao um construtor. O musculo operacional do Metodo GHOST.

A sacada-chave: separar doutrina de musculo. O Metodo GHOST (SEO-CTO7) ja existia como pensamento — KW research, clusters, pilares Consultoria -> Leads -> Vendas -> AUTO & AI. O que nao existia era um sistema que executasse essa doutrina dia a dia. Esse sistema virou o Ghost System.

Metodo GHOST vs Ghost System

Metodo GHOST — doutrina de posicionamento e conteudo. WHY.

Ghost System — cockpit operacional que coleta lead, pontua, escala pra venda. HOW.

Principios nao-negociaveis

  • Camada fina: zero reescrita de Framer/SendPulse/n8n/Fathom. Ghost System e cola, nao motor.
  • Brain-first: cada lead vive como markdown em brain-claude/08-memory/leads/. Git e versionamento ganha de CRM fechado.
  • Free-tier first: tudo roda no que GL7 ja paga. Zero subscription novo ate bater limite real.
  • AKITA7 GREEN: se nao tem test, nao e pronto. Evidence before assertions.
brain-claude/05-decisions/adr-007-ghost-system-orchestrator.md
Capitulo 03

O plano: 4 decisoes criticas

Antes de escrever uma linha de codigo, Claude travou 4 perguntas bloqueadoras. Cada resposta mudou o escopo.

Cockpit interno ou SaaS pra cliente?
A) Interno (4 operadores GL7) · B) SaaS vendavel pra cliente
Interno. Justificativa: Build to Earn, nao Build to Learn. Dogfood primeiro, produto depois. 4 operadores cobertos: Thiago (CTO), Mateus (COO), Jordan (CBO/Sales), Celso (Head Traffic).
Build full-stack ou Wrap orquestrador?
A) App completo com UI, banco, auth · B) Orquestrador/umbrella que cola ferramentas existentes
Orquestrador. n8n vira bus, markdown vira storage, git vira versionamento. Zero codigo novo que possa ser feito via workflow n8n.
MVP: 1 ponta profunda ou 4 pontas minimas?
A) So Capture perfeita · B) Gen + Capture + Nurture + Sell, tudo v0.1
4 pontas simultaneas. A dor do Thiago foi "deficiencia em cada ponta" — consertar so 1 ponta deixaria 3 furos. v0.1 bosta em 4 vale mais que v1.0 perfeita em 1.
Entregavel: plano e ADR, ou skeleton completo?
A) Plano + ADR, deixar execucao pra depois · B) Skeleton completo (codigo + workflows + seeds)
Skeleton completo. Thiago valoriza evidence over promise. Entregar tudo que nao depende de credencial externa, listar explicito o que falta.
Capitulo 04

A arquitetura

4 etapas, 1 bus, 3 camadas de memoria. Fronteira rigida com traffic7 do Mateus: Ghost System consome sinais de trafego, nunca chama API de midia.

01 · GEN Lead Gen traffic7, SEO, social 02 · CAPTURE Framer form normalize, lead_id 03 · NURTURE SendPulse score open/click/reply 04 · SELL Jordan + Fathom handoff Telegram BUS · n8n orquestrador 4 workflows · 28 nodes · webhook + cron + switch + IF + HTTP + markdown write MEMORIA · brain-claude 08-memory/leads/*.md schema YAML canonico git = event log SINAIS · traffic7 Mateus em paralelo consome, nao chama API fronteira rigida VISAO · cockpit 02-areas/ghost-system/ Kanban md gerado alertas + metrics OPERADORES · 4 humanos: Thiago (CTO) · Mateus (COO) · Jordan (CBO) · Celso (Traffic)

Tabela componente -> ferramenta -> papel

ComponenteFerramentaPapel
CapturaFramer formUI publica, origem do evento
Busn8n (self-hosted)orquestrador, 4 workflows core
NurtureSendPulseemail sequences, open/click/reply
Storagebrain-claude markdownlead = arquivo versionado
Visaocockpit.md Kanbanestado atual, alertas, metrics
HandoffTelegram botping Jordan quando SQL
ReuniaoFathom (ja existia)transcript -> brain auto
brain-claude/03-knowledge/ghost-system-architecture.md
Capitulo 05

O contrato: lead canonico

Se cada etapa falar uma lingua diferente, a cola quebra. O lead canonico e a unica verdade — schema YAML versionado. Campo novo = ADR novo.

Schema YAML v0.1

lead_id: tdb-260414-a1b2c3   # <origem>-<YYMMDD>-<hash6>
created_at: 2026-04-14T09:00:00-03:00
origem: tdb              # tdb | olv | gl7 | sup | ...
source: framer_lp_master7
state: nurturing       # new|contacted|nurturing|sql|proposal|won|lost
score: 45                 # 0-100, threshold SQL = 60
owner: jordan            # thiago|mateus|jordan|celso
contact:
  name: "Joao Silva"
  email: joao@exemplo.com
  phone: "+5511999..."
journey:
  - {at: "2026-04-14T09:00", event: form_submit, delta: 0}
  - {at: "2026-04-14T10:15", event: email_open,  delta: +20}
tags: [b2b, automation]
notes: |
  markdown livre aqui

State machine

[ new ] ──contato─→ [ contacted ] ──sequence─→ [ nurturing ] │ score ≥ 60 ────┤ ↓ [ sql ] ──pitch─→ [ proposal ] │ ┌───────────┴──────────┐ ↓ ↓ [ won ] [ lost ]

Scoring rules v0.1

  • email_open +20
  • email_click +30
  • email_reply +50
  • form_resubmit +15
  • Threshold SQL = 60. Acima disso, workflow sell-handoff dispara Telegram pro owner.
brain-claude/03-knowledge/lead-canonical-schema.md
Capitulo 06

A construcao: 43 arquivos em paralelo

Ultra Think multi-agente. 4 agents Claude rodando simultaneo, cada um com briefing denso isolado. Resultado: Fase 0 fechada em ~5 minutos de paralelo.

O pattern Ultra Think e uma das descobertas que ficou salvo em memoria (feedback_ultra_think_multi_agente): quando a tarefa pode ser particionada em escopos isolados, vale a pena spawar 3-4 agents numa so mensagem, cada um com briefing saturado. Ghost System foi o segundo caso validado, depois do Brain Sync GL7.

Wave 1 — Scaffolding (4 agents em paralelo)

AgentEscopoArquivos
AADR-007 + area ghost-system + projeto vivo8
Bknowledge (arquitetura + schema) + systems (runbook) + hub edit4
C4 Brain Bridges + fixtures schema leads6
Dscripts/ghost-system/ skeleton inicial9
Total Wave 127

Wave 2 — Codigo real + workflows + seeds

  • Skill ghost-system-gl7 criada em ~/.claude/skills/ + espelho Antigravity + SKILLS-INDEX atualizado
  • Scripts Python reais: lead-schema-validate.py, cockpit-render.py, traffic7-bridge.py, sendpulse-sync.py
  • 4 workflows n8n em JSON: capture-normalize, nurture-scoring, sell-handoff, cockpit-cron
  • 6 leads fixture: 3 TDB (dogfood Thiago) + 3 OLV (Mateus co-aprovou)
  • Tests unittest stdlib-only: test_cockpit_render.py + test_schema_validate.py
  • Cockpit.md, metrics.md, runbook.md, changelog.md, BACKLOG.md, visual-cheatsheet.html, README.md
Fase 0 ✅ Scaffolding completo

27 arquivos wave 1 + 16 arquivos wave 2 = 43 arquivos. Zero reescrita. Tudo aditivo. Nenhum arquivo legado GL7 foi alterado alem do hub-home.md (1 secao adicionada).

Capitulo 07

O codigo: Python real AKITA7 GREEN

1174 linhas Python stdlib-only. Parser YAML proprio (sem PyYAML). 21/21 tests green. Red -> Green -> Refactor documentado com bug real.

Por que stdlib-only

MALWARE-GATE7 + PYTHON7 (stdlib-first) + Free-tier first. Cada pip install e uma superficie nova de supply chain. Pra um parser YAML que le 10 campos, escrever 60 linhas de parser proprio e mais seguro e mais rapido que instalar PyYAML. Build to Earn, nao Build to Learn.

Os scripts

ScriptPapel
lead-schema-validate.pyParser YAML proprio + validacao schema v0.1. Exit 1 se invalido.
cockpit-render.pyLe todos leads md, renderiza Kanban por state, calcula alertas.
traffic7-bridge.pyLe sinais do traffic7 (Mateus). Graceful degradation se fronteira vazia.
sendpulse-sync.pyStub + contrato pro webhook n8n. Real call fica no node HTTP.

Red -> Green -> Refactor (bug real)

O bug que existiu de verdade

RED. Primeiro teste falhou em test_schema_validate.py::test_parse_contact_block. Parser YAML nao separava name: "Joao Silva" corretamente — fazia split errado porque o line.split(":", 1) estava recebendo split(":") sem maxsplit=1, quebrando em emails com http://.

GREEN. Fix minimo: adicionar , 1. Teste verde.

REFACTOR. Extrair helper _split_kv(line) pra 1 so lugar. 3 tests novos em __init__.py garantindo edge cases. Suite final: 21/21 green.

Isso e Anti Vibe Coding na pratica: nao foi "ah, deve estar OK, segui o happy path e subi". Foi red -> green -> refactor com commit granular. Cada assertion de "funcionando" ancorada em output de teste real.

scripts/ghost-system/*.py + tests/
Capitulo 08

Os workflows: 4 pipelines n8n

28 nodes total. Cada workflow cobre 1 etapa do funil. Tudo importavel em n8n self-hosted via JSON na VPS Master7.

01 · capture-normalize (7 nodes)

Trigger: webhook POST do Framer form. Fluxo: normalize payload -> gerar lead_id (origem+YYMMDD+hash6) -> write markdown em 08-memory/leads/ -> call SendPulse sync (add contact + tag origem) -> 200 OK pra Framer.

02 · nurture-scoring (8 nodes)

Trigger: webhook SendPulse event (open/click/reply). Fluxo: switch por tipo de evento -> calcular delta (+20/+30/+50) -> read lead md -> update score + append journey -> IF score ≥ 60 -> dispara workflow sell-handoff. Caso contrario: write md e para.

03 · sell-handoff (7 nodes)

Trigger: chamada interna do workflow 02. Fluxo: read lead md completo -> montar prospect card (nome, score, journey resumo, owner) -> Telegram bot envia pro topico AI Squad -> update lead state nurturing -> sql -> log.md append.

04 · cockpit-cron (6 nodes)

Trigger: schedule 30min. Fluxo: exec cockpit-render.py na VPS -> diff vs cockpit.md atual -> IF mudanca -> git commit + push / alert Telegram se aparecerem alertas criticos (SLA estourado, score freezado).

Total: 28 nodes. Os 4 JSONs vivem em scripts/ghost-system/workflows-n8n/ e estao prontos pra importar via UI n8n ou via API n8n import:workflow.

scripts/ghost-system/workflows-n8n/*.json
Capitulo 09

O piloto: TDB em dogfood

Por que TDB? Porque e a brand pessoal do Thiago. Zero risco cliente externo. Ja tem projeto Reportei ativo. Regra do Espelho: aplicar em GL7 primeiro, depois cliente.

3 fixtures TDB

lead_idNomeStateScore
tdb-260412-a1b2c3Joao Silvanurturing45
tdb-260413-d4e5f6Maria Santosnew20
tdb-260414-g7h8i9Pedro Costasql72

Journey do Pedro Costa (SQL crossed)

14-abr 09:00
form_submit — Framer LP Master7. Lead criado, score 0, state new.
14-abr 10:15
email_open — sequence welcome aberta. delta +20 -> score 20 -> state contacted.
14-abr 10:18
email_click — CTA "Agendar call" clicado. delta +30 -> score 50 -> state nurturing.
14-abr 11:20
email_reply — Pedro respondeu pedindo info. delta +50 -> score 100 (cap em 100).
14-abr 11:25 · THRESHOLD CROSSED
sell-handoff disparado. Score ≥ 60. State nurturing -> sql. Telegram bot notifica Jordan com prospect card. Owner jordan.

Esse fluxo nao e mock. E o que o cockpit.md renderiza quando voce roda python3 cockpit-render.py contra os fixtures. Pedro aparece na coluna SQL com alerta "new handoff".

Capitulo 10

O segundo piloto: OLV (Mateus co-aprovou)

No meio da sessao, Mateus Busson entrou, leu o visual-cheatsheet.html, aprovou Ghost System e autorizou rollout paralelo em OLV. Virou o segundo piloto.

Esse visual sheet ficou perfeito. Exatamente isso que sempre sonhei. Aquela tela ali das quatro etapas, com as funcoes dentro, ta maravilhoso. — Mateus Busson, paraphrase mensagem sessao 2026-04-14

3 fixtures OLV

lead_idNomePerfilStateScore
olv-260411-p9q8r7Rafael AlmeidaB2B food servicecontacted35
olv-260413-s5t4u3Carla RibeiroB2C near-thresholdnurturing55
olv-260414-v2w1x0Luiza NogueiraInfluencer parceriasql78

Owner dos 3 fixtures OLV: mateus. O mesmo cockpit.md que renderiza TDB renderiza OLV — basta filtrar por origem: olv. Prova arquitetural de que multi-cliente e so parametro, nao codigo novo.

brain-claude/08-memory/leads/ (6 fixtures)
Capitulo 11

O que falta: P0 Thiago (90min)

Codebase 100% pronta. 8 itens bloqueados aguardando desbloqueio manual do Thiago. Total estimado: 90 minutos. Nada depende de terceiros.

P0 bloqueadores
1. SSH VPS Master7 + import dos 4 workflows n8n 10min
2. Deploy helpers Python em /opt/ghost-system/ 5min
3. Config creds SendPulse API + Telegram bot token 10min
4. Form Framer padrao GL7 (hero LP Master7) 15min
5. SendPulse sequence "GL7 Nurture v1" (3 emails) 30min
6. Piloto dogfood end-to-end real (Thiago se cadastra no form) 10min
7. Loom 5min AKITA7 evidence (red bar -> green bar do cockpit) 5min
8. ADR-007 status proposed -> accepted 2min

Total ~90 minutos. Quando Thiago desbloquear esses 8 itens, Fase 1 fecha oficialmente com certificacao AKITA7 GREEN. Ate la, o status honesto e: Fase 0 ✅ · Fase 1 codebase pronta · deploy pendente.

Capitulo 12

O que vem depois

Ghost System v0.1 e o minimo viavel pra desdefazer a defasagem. v0.2 e v0.3 ja estao mapeadas no BACKLOG — mas nada entra sem passar pelo CFO-first-gl7.

Fase 2 — Hardening (proximos ~30 dias)

  • Event log append-only em 08-memory/ghost-system/events.jsonl (hoje e so git diff)
  • HTML cockpit dinamico servido pela VPS Master7 (hoje e markdown estatico)
  • Metrics reais: CAC por origem, LTV estimado, taxa new->sql, taxa sql->won
  • OLV paralelo com TDB — primeiros leads reais via LP Oliver's
  • Backup workflows n8n versionado em git (auto-export via API)

Fase 3 — Escala (backlog, gated por CFO-first)

  • Chatwoot integrado pra chat multi-canal (WhatsApp + web)
  • ML scoring dinamico (substituir regras estaticas por modelo)
  • Portal cliente read-only (ver proprio pipeline)
Regra de ouro

Nada da Fase 3 entra sem unit economics. Toda ideia passa pela skill cfo-first-gl7: TAM/SAM/SOM, CAC/LTV, opportunity cost. Se nao justifica, volta pro BACKLOG.

Capitulo 13

Fase 2 Codebase — O ponto de equilibrio

Mateus aprovou, Thiago ficou com os 8 P0 parkados no PMO, e a sessao ganhou mais 2 horas de codigo. Resultado: Ghost System saiu de "codebase Fase 1 pronta" pra "codebase Fase 2 blindada" — sem tocar uma unica linha de back-end.

O que foi construido nesta onda
  • events-query.py (480 linhas, 14 tests GREEN) — CLI pra interrogar o event log JSONL. Filtros por cliente/owner/lead_id/tempo, stats agregadas, 5 formatos de output.
  • cockpit-html-render.py (666 linhas, 8 tests GREEN) — Gerador HTML estatico do cockpit. Alternativa visual ao cockpit.md, mesmo brand grape-dark, SVG score bars inline, heatmap por cliente, XSS-safe.
  • meu-dia-render.py (723 linhas, 8 tests GREEN) — Dashboard personalizado por owner. 4 HTMLs gerados (thiago, mateus, jordan, celso), 5 secoes por view (Hoje, Pipeline, Radar 24h, Alertas, Stats do mes).
  • Integration test end-to-end simulated — prova que o pipeline completo (webhook -> capture -> score -> threshold -> handoff -> prospect) roda sem rede, sem n8n real, sem VPS. So tempdir + subprocess.
  • Hardening scripts — backup-workflows.sh, sendpulse-batch-sync.py, healthcheck.py. Cron-ready pra VPS.
A regra que salvou muito content: BACKEND-FLAG7

No meio da Fase 2, Mateus sinalizou explicito: "voce vai entrar numa necessidade de fazer back-end em algum momento. Quando chegar nesse momento, voce precisa falar com a gente porque o Thiago nao desenvolveu essas skills. O Matheus ja bateu a cabeca 3 dias com isso, gastou muito content".

Virou regra permanente. Quando Ghost System (ou qualquer projeto GL7) precisar de API REST real, auth server, DB migration, WebSocket ou workers reais, Claude PARA e pergunta antes de gerar codigo. Reuse do que Mateus ja resolveu > recriar.

n8n, Python stdlib, markdown e HTML estatico nao disparam o flag. Eles sao a camada wrap que GL7 aceita sem pedir.

Numeros finais da Fase 2 codebase
Linhas Python totais~5200 (1174 core + 893 helpers + 480 events-query + 666 cockpit-html + 723 meu-dia + hardening + tests)
Tests unittest61+ (21 core + 10 helpers + 14 events + 8 cockpit-html + 8 meu-dia + integration e2e + hardening)
HTMLs gerados automaticamente5 (cockpit.html + 4 meu-dia-*.html)
HTMLs docs curados2 (visual-cheatsheet + jornada)
n8n workflows4 (28 nodes total)
Skill ghost-system-gl7v0.1.0 instalada Claude + Antigravity
Leads fixture6 (3 TDB + 3 OLV)
Eventos seedados22 em events/2026-04.jsonl
Deps externas runtime0 (stdlib only)
Custo incrementalR$ 0
O que continua bloqueado: os mesmos 8 P0 Thiago

Fase 2 codebase nao mudou a dependencia do Thiago pra deploy real na VPS. Os 8 P0 continuam parkados no Trello PMO GL7 (living board cross-project criado nesta sessao a pedido do Mateus) com SLA 2026-04-21. Sem SSH VPS, sem form Framer, sem SendPulse autoresponder = Ghost System fica rodando so em dogfood local via integration test. AKITA7 verde na bancada, amarelo em producao.

Artefatos novos
  • scripts/ghost-system/events-query.py
  • scripts/ghost-system/cockpit-html-render.py
  • scripts/ghost-system/meu-dia-render.py
  • scripts/ghost-system/backup-workflows.sh
  • scripts/ghost-system/sendpulse-batch-sync.py
  • scripts/ghost-system/healthcheck.py
  • scripts/ghost-system/tests/test_integration_e2e.py
  • brain-claude/02-areas/ghost-system/cockpit.html (auto-gerado)
  • brain-claude/02-areas/ghost-system/meu-dia-{thiago,mateus,jordan,celso}.html (auto-gerado)
  • CTO - Obsidian 2k26/GTD - Trello/Trello PMO - GL7.md (living board cross-project)
  • Memoria feedback_backend_flag_ask_mateus.md (regra permanente)