Verificando acesso...

MÓDULO 4.3

🛠️ Tools + Visualização

As skills utilitárias que sustentam tudo: humanizer, verifier, firecrawl, visual-explainer. Plus: threshold por plataforma e patterns de skill collaboration.

6
Tópicos
~60
Minutos
Intermédio
Nível
Prática
Tipo
1

🤖 tool-humanizer (50+ AI tells documentados, scoring 0-10)

Deteta padrões de escrita IA num texto e devolve score 0-10 (10 = humano puro) + reescrita com sugestões. É a defesa final contra outputs "suspeitosamente IA".

AI-tell patterns que deteta (50+ documentados)

Vocabulário-sinal

delve, leverage, in conclusion, navigate, unlock, embark, tapestry, realm, foster

Frases-template

"Let me know if...", "I hope this helps", "It's important to note that"

Estrutura

Bullet point com emoji a abrir cada um, headers + sub-bullets simétricos

Hedging excessivo

"may potentially", "could possibly", excesso de "I think"

Listas tripletas

"X, Y, and Z" repetido 3+ vezes consecutivas em parágrafos curtos

Transições mecânicas

"Moreover", "Furthermore", "Additionally" 3+ vezes no mesmo texto

📊 Modos de uso

  • Standalone: colas texto, dizes "humaniza isto" ou "tira o tom AI". Devolve score + reescrita comentada.
  • Pipeline: invocada por outra skill com JSON {text, context}. Devolve JSON estruturado para gate decision.
  • Dentro do verifier: tool-output-verifier inclui-a como um dos seus 4 checks.
2

✅ tool-output-verifier (gate 4 checks obrigatório)

O último guardião antes de entregar. Todas as skills marketing-* o invocam no último passo. 4 dimensões ortogonais, score 0-10 final, pass/fail.

1

Humanizer score

Delega em tool-humanizer. Score 0-10 sobre padrões AI. Peso típico no agregado: 30%.

2

Brand voice match

brand-context/voice/voice-profile.md + register esperado. Compara vocabulário, ritmo, formalidade. Peso: 30%.

3

Length per platform

LinkedIn 300-800w · X 280 chars · email 150-700w · landing section 50-200w. Fora do range → flag. Peso: 20%.

4

Factuality flags

Deteta números, datas, nomes próprios, claims auditáveis. Não verifica — sinaliza para tu confirmares. Peso: 20%.

Exemplo de output JSON

{
  "verdict": "pass-with-warnings",
  "score": 7.6,
  "checks": {
    "humanizer": 8,
    "voice_match": 7,
    "length": 9,
    "factuality_flags": ["3 claims auditáveis", "1 número não-cited"]
  },
  "suggestions": [
    "Voice: muito uso de 'importante notar' — não é do teu registo B",
    "Confirmar: 'crescemos 40% YoY' (de onde sai este número?)"
  ]
}

🚪 Pass / fail criteria

  • pass: score >=8 e zero flags críticas
  • pass-with-warnings: score 6-7.99 ou flags não-críticas (entrega mas avisa)
  • fail: score <6 ou flag crítica (factuality em número específico) → volta para refinamento
3

🔥 tool-firecrawl-scraper (wrapper com fallback graceful)

Wrapper de Firecrawl API para scraping sem bot blockers. Lê FIRECRAWL_API_KEY do .env; se faltar, degrada para WebFetch nativo e avisa. É a fonte de "dados frescos" do OS.

Process em 3 passos

  1. Verificar API key — lê .env. Se existe, usa https://api.firecrawl.dev/v1/scrape. Se não, degrada para WebFetch built-in e avisa.
  2. Validar input — URL válido, scheme http/https, sem auth requerido. Rejeita ficheiros locais.
  3. Extrair markdown — Firecrawl devolve markdown limpo (sem ads, sem nav, sem footer). Cache local de 24h para evitar reqs duplicados.

Skills que dependem dele

  • marketing-brand-voice — extrai voice samples de web/LinkedIn
  • marketing-positioning — analisa concorrentes
  • marketing-content-repurposing — lê blog posts longos
  • welcome-quick-win — extrai conteúdo do URL público do operador
  • strategy-web-research — múltiplos URLs em paralelo

💸 500 créditos grátis

Regista-te em firecrawl.dev (500 créditos grátis, ~500 páginas). Adiciona FIRECRAWL_API_KEY=fc-xxx em .env do repo. Para uso pesado: $19/mês cobre 3.000 páginas.

⚠️ Degradação graceful

Se a API key falta, a skill não bloqueia — tenta WebFetch nativo. Mas avisa: "Sem Firecrawl API key. Algumas webs com bot-blockers (LinkedIn, sites com Cloudflare agressivo) vão falhar. Considera ativar."

4

🎨 tool-visual-explainer (HTML autocontido para WhatsApp)

Gera HTML5 autocontido (1 ficheiro, sem dependências externas, mobile-first) para partilhar análises, comparativos, recaps. Paleta sóbria com acento laranja iAmasters. Pequeno o suficiente para caber em DM, WhatsApp, email attach.

✓ Quando usar

  • Outras skills fecham com análise para partilhar
  • "Faz-me HTML disto", "põe bonito"
  • Apresentar a cliente, sócio, conselheiro
  • Tabelas longas (4+ linhas, 3+ colunas)
  • Quick-win, six-hats output, positioning

✗ Quando NÃO usar

  • Outputs internos (só o Claude lê)
  • Já estás em ferramenta visual (Notion, Figma)
  • Output <200 palavras (markdown chega)
  • Conteúdo dinâmico que muda diariamente
  • Quando o cliente quer texto plano para copiar

Características técnicas

  • 1 ficheiro HTML com CSS + JS inline (sem CDN exceto Tailwind opcional)
  • Mobile-first — funciona em ecrã 360px
  • Paleta: dark mode default (slate 900), acento laranja iAmasters (#FACC15), toggle light/dark
  • Tipografia: Inter via Google Fonts (única dependência externa)
  • Tamanho típico: 30-80 KB. Cabe em DM, WhatsApp, email attach.
  • Acessibilidade: contraste AA mínimo, headers hierárquicos, labels em forms

📤 Output path

Salva em projects/visual/YYYY-MM-DD-titulo-curto/index.html. Operador depois copia para onde quiser (Drive, Notion attach, S3, GitHub Pages).

5

🎚️ Threshold por plataforma (humanizer ≥8 email, ≥7 LinkedIn, ≥6 WhatsApp)

Não há um threshold único para humanizer. Cada plataforma tem tolerância diferente a padrões IA. Email cold a desconhecido exige score >=8; WhatsApp a amigo aguenta 6. Calibrar isto evita gates desnecessários (bloquear "demasiado" em casos onde não importa).

Plataforma Threshold Porquê
Email cold (B2B)≥8Receptor crítico, deteta IA imediatamente
Email premium (C-level)≥9Zero tolerância a fluff
Proposta comercial≥8Investimento alto, escrutínio alto
LinkedIn post≥7Audiência alguma tolerância, mas tells visíveis
Blog post≥7Leitor escolheu ler, mais paciente
Newsletter≥7Subscritor já confia, mas baixa atenção
X thread≥7Plataforma sensível a tells
WhatsApp / DM≥6Conversação informal aguenta fricção
Resposta comentário≥6Espera-se rapidez, não polimento
Notas internasN/ASem leitor externo, gate desativado

💡 Conceito principal

Threshold uniforme produz dois problemas: (1) bloqueia outputs WhatsApp por "demasiado AI" quando ninguém vai reparar, (2) deixa passar emails frios com score 7 que vão para o spam mental imediatamente. Calibragem por plataforma reflete o custo real de falso positivo vs falso negativo em cada canal.

💡 Dica prática · ajusta ao teu ICP

Os thresholds acima são padrão geral. Se o teu ICP são desenvolvedores ou marketers (alta sensibilidade a IA), sobe todos 1 ponto. Se o teu ICP são executivos não-técnicos, podes descer 1 em LinkedIn/blog. Documenta a tua calibração específica em brand-context/voice/audit-prompt.md.

6

🔗 Patterns de skill collaboration entre tools

As 4 tools cobertas neste módulo compõem-se em padrões repetidos. Reconhecer os patterns acelera debug e permite-te construir as tuas próprias skills compostas.

Pattern 1 · Gate composto (verifier compõe humanizer)

O verifier não é uma skill autónoma — é um composer que orquestra humanizer + voice match + length + factuality. Cada check pode ser invocado isolado, ou todos juntos pelo verifier.

verifier(text)
  ├── humanizer(text) → score
  ├── voice_match(text, register) → score
  ├── length_check(text, platform) → flag
  └── factuality_scan(text) → flags[]
  → aggregate → verdict

Pattern 2 · Source → Skill → Visual (firecrawl → analysis → explainer)

Para análises partilháveis (positioning competitivo, brand audit, market research), padrão típico: firecrawl extrai dados, skill marketing analisa, visual-explainer empacota.

URLs[] → firecrawl → markdown[]
            ↓
       marketing-positioning analysis
            ↓
   tool-visual-explainer → HTML standalone
            ↓
       projects/visual/YYYY-MM-DD-titulo/

Pattern 3 · Fallback graceful (firecrawl → WebFetch → manual)

Para tornar skills resilientes, padrão de degradação: tentar API premium → tentar nativo → pedir input manual. Nunca bloquear o fluxo.

if FIRECRAWL_API_KEY exists:
  use firecrawl scrape
else if URL is fetchable:
  use built-in WebFetch + warn
else:
  ask user to paste content manually

📊 Pattern 4 · Loop com sanity break

Quando humanizer-score <threshold, verifier devolve para refinamento. Mas há um contador interno: ao fim de 3 iterações sem chegar ao threshold, devolve o melhor output com aviso ("não consegui chegar a score 8, entrego com 7.4 e estas notas"). Evita loops infinitos.

💡 Dica prática · debug por JSON

Quando algo no pipeline falha, pede ao agente: "mostra-me o JSON passado entre cada skill". Ele expõe o objeto em cada hop. 90% dos problemas resolvem-se ao ver: voice não carregada (campo voice_loaded: false), platform errada, register não passado.

Resumo do Módulo

tool-humanizer deteta 50+ AI-tell patterns (score 0-10) — vocabulário-sinal, frases-template, estrutura, hedging
tool-output-verifier corre 4 checks ortogonais — humanizer · voice · length · factuality (pesos 30/30/20/20)
tool-firecrawl-scraper degrada gracefully sem API key — 500 créditos grátis · fallback WebFetch nativo
tool-visual-explainer gera HTML autocontido partilhável — 30-80 KB, mobile-first, cabe em DM
Threshold humanizer varia por plataforma — ≥8 email, ≥7 LinkedIn, ≥6 WhatsApp · calibra ao teu ICP
4 patterns canónicos de skill collaboration — gate composto · source-skill-visual · fallback · loop com sanity break

Próxima Trilha:

Trilha 5 — Multi-cliente: como gerir N clientes em simultâneo com brand-context próprio, templates verticais (freelance-ia, agência, formador, consultor), isolamento e workflows.