MODULO 1.4

πŸ› οΈ Criando sua propria CLI

Pipeline completo: research, generate, verify, score, sniff modes (browser/crowd), auth, polish e shipcheck.

6
Topicos
25
Minutos
Inter.
Nivel
Pratica
Tipo
1

πŸͺ„ Comando /printing-press

Dentro do Claude Code, voce dispara o pipeline com um slash command. O agente conduz a entrevista, voce so confirma e ajusta.

Disparar

# Modo URL
/printing-press https://brasilapi.com.br

# Modo nome (procura no library oficial primeiro)
/printing-press brasil-api

# Modo blank
/printing-press
> Qual sistema voce quer transformar em CLI?

πŸ“‹ O que o factory pergunta

  • Β· Nome da CLI (sera <nome>-pp-cli)
  • Β· Nome da skill (sera pp-<nome>)
  • Β· Endpoints prioritarios
  • Β· Tem auth? Qual tipo (API key, OAuth, Bearer)?
  • Β· Output padrao (texto humano ou JSON)?
2

πŸ”Ž Fase research

O factory navega na doc oficial, le SDKs em npm/pip, busca exemplos em blogs e captura endpoints. Tudo vai para research/ para voce revisar.

Artefatos gerados

research/
β”œβ”€β”€ endpoints.yaml       # lista de URLs descobertos
β”œβ”€β”€ auth.md              # como autenticar
β”œβ”€β”€ schemas/             # tipos das respostas
β”‚   β”œβ”€β”€ post.json
β”‚   └── user.json
β”œβ”€β”€ examples/            # curl reais que funcionaram
└── notes.md             # achados e armadilhas

πŸ’‘ Revise antes de avancar

Editar endpoints.yaml nesta fase economiza horas depois. Remova endpoints internos, marque deprecados, comente quotas conhecidas.

3

🧠 Fase generate

Com a research aprovada, o factory gera codigo Go usando Cobra (CLI), estruturas de resposta e templates de output. O codigo gerado e legivel e segue convencoes.

Estrutura tipica

brasil-api-pp-cli/
β”œβ”€β”€ cmd/
β”‚   β”œβ”€β”€ root.go
β”‚   β”œβ”€β”€ cep.go
β”‚   β”œβ”€β”€ cnpj.go
β”‚   └── bancos.go
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ client/          # http client + retries
β”‚   β”œβ”€β”€ cache/           # SQLite mirror
β”‚   └── format/          # templates de output
β”œβ”€β”€ skills/pp-brasil-api/
β”‚   └── SKILL.md
β”œβ”€β”€ printingpress.yaml   # manifesto
└── go.mod

⏸️ Voce pode pausar

Antes de compilar, dt-se ao luxo de revisar templates de output. E o detalhe que define a UX final que o agente entrega.

4

βœ… Verify e score (Steinberger bar)

Bateria automatica de testes mais score por criterios objetivos. CLI com nota baixa nao entra no library oficial.

Rodar verify

$ printing-press verify
running 28 smoke tests...

[OK] cep: 01310100 retorna avenida paulista
[OK] cnpj: 00000000000191 retorna BCB
[OK] bancos: lista contem itau (3 ms cache)
[OK] feriados: 2025 contem natal
[FAIL] ddd: 11 timeout 5s
...
Score: 87/100  (minimo library: 80)

Criterios do Steinberger bar

CriterioPesoFoco
Reliability30%Smoke tests passam, retries, timeout
Token efficiency25%Tamanho do output medio vs JSON cru
Docs15%README, SKILL.md, exemplos
Schema stability15%Output versionado, NDJSON estavel
UX15%Mensagens de erro claras, --help util
5

πŸ•΅οΈ browser-sniff e crowd-sniff

Quando o alvo nao tem API publica, o factory tem dois "modos espertos" para descobrir endpoints.

🌐 browser-sniff

Voce navega no site logado e o factory captura o trafego (HAR file ou devtools).

/printing-press https://skool.com \
  --mode browser-sniff \
  --har ./capture.har

Bom para: SaaS sem API, intranets, sites com login.

πŸ“š crowd-sniff

Minera SDKs publicos em npm/pip/RubyGems do mesmo servico e extrai endpoints.

/printing-press notion \
  --mode crowd-sniff

Bom para: APIs com doc fraca mas SDK oficial maduro.

⚠️ Etica e ToS

Browser-sniff de servicos privados respeita ToS. Use so onde voce tem conta e direito de acesso. CLIs publicadas no library nao podem violar termos de uso do alvo.

6

πŸ” Auth, polish e shipcheck

Tres comandos finais antes da CLI estar pronta para o library: configurar credenciais, refinar UX e validar o pacote.

Pipeline de finalizacao

# Configurar credenciais (salva em keychain do SO)
$ printing-press auth --cli brasil-api
> Tem chave de API? (s/N) N
> OK, BrasilAPI nao requer auth. Pulando.

# Polir mensagens, cor, --help, alias
$ printing-press polish

# Validar tudo antes de publicar
$ printing-press shipcheck
[OK] manifesto valido
[OK] smoke tests passam
[OK] score >= 80 (87)
[OK] SKILL.md tem >= 3 exemplos
Ready to publish.

πŸ’‘ O que o polish faz

Aplica padroes do library: cor consistente, mensagens de erro padronizadas, --help verboso, suporte a --json em todos os comandos, exit codes corretos.

βœ… Resumo do Modulo

βœ“
Pipeline em 6 fases β€” start, research, generate, verify, polish, shipcheck.
βœ“
Research e revisavel β€” voce edita endpoints.yaml antes de gerar codigo.
βœ“
Steinberger bar >= 80 β€” requisito para entrar no library.
βœ“
browser-sniff e crowd-sniff β€” quando o alvo nao tem API publica.

Proximo Modulo:

1.5 β€” Caso pratico: construir a brasil-api-pp-cli do zero