PTENES
Skill /generate · duas versões

Um comando gera imagem e vídeo — pela rota mais barata.

Roteamento por custo, aprovação antes de gastar, livro-caixa e o prompt guardado ao lado de cada arquivo.

Capa do projeto generator-skill
O que é

Uma skill que o agente lê antes de gerar qualquer mídia

Skill é uma pasta de arquivos Markdown que funciona como manual operacional: o agente relê a cada uso, então as regras escritas uma vez passam a valer sempre. Esta cobre imagem e vídeo — e, principalmente, o que costuma dar errado em volta deles.

💸 Roteia por custo

Escolhe a rota mais barata que dá conta da tarefa e diz qual usou. Preço mora num arquivo com data, não no palpite do agente.

🛑 Não gasta sem aprovação

Cota em dólar e espera o "pode". Uma aprovação vale uma execução. Teto mensal acumulado, porque portão por execução deixa passar trinta gastos pequenos.

🗂️ Não perde o prompt

Biblioteca plana, um JSON ao lado de cada arquivo com prompt, modelo, parâmetros e custo. Três meses depois ainda dá para saber o que fez aquela imagem.

Como funciona

Cinco passos, sempre os mesmos

O fluxo não muda entre as duas versões. O que muda é para onde o passo 1 aponta.

Roteia→ Prepara referências→ Cota e aprova→ Gera→ Salva plano→ Registra
1

Roteia para o mais econômico

Escolhe o modelo e o provedor, e lê a receita daquele modelo antes de chamar — endpoint, autenticação, formato do corpo, onde o arquivo aparece na resposta.

2

Usa referências reais

Logotipo, rosto e estilo vêm de arquivos em refs/. Descrever um logo em palavras devolve logo errado toda vez — se o arquivo não existe, a skill para e pede.

3

Gera, síncrono ou assíncrono

Modelo de vídeo devolve um id de job; a skill consulta o status e baixa na hora, porque URL de resultado expira em horas. O id fica salvo para retomar sem pagar de novo.

4

Salva numa pasta plana

Sem subpastas. Parece bagunça e é o contrário: qualquer galeria, script ou busca lê a biblioteca inteira sem configuração.

5

Registra tudo

JSON de mesmo nome-base ao lado do arquivo, mais uma linha no livro-caixa. O lançamento acontece quando o provedor aceita o job — não quando o arquivo chega.

+

Cresce por arquivo

Modelo novo é uma receita Markdown de dez minutos. Nada mais muda — é o que faz o sistema sobreviver à troca mensal de modelos.

Versões

Duas, porque "mais barata" tem respostas opostas

Numa máquina com modelo rodando nela, a rota mais barata é gratuita e o portão de custo quase nunca dispara. Sem isso, toda geração custa — e o portão vira o coração da skill.

generate-localgenerate-api
Paramáquina com modelo rodando nelaqualquer máquina, tudo via API
Rota mais baratalocal, $0 (flux2-klein na GPU)modelo barato pago, ~$0,02
Modelo de cobrançahardware já pago, custo marginal zeropay-as-you-go por chamada
Rota pagaexceção — duas razões sóé o único caminho
Imagem com texto legívelrota paga (modelo local erra letra)modelo top, pago
Vídeo padrãorender 2.5D local, $0generativo, $0,20–0,35/s
Portão de custoexiste, quase nunca disparadispara em toda execução
Rascunhar barato / finalizar carosem sentido — é o mesmo modeloé a regra que mais economiza
Depende deservidor de imagem local no arFAL_KEY + KIE_API_KEY num .env
Pré-requisitos

O que precisa estar no lugar

Escolha uma das duas versões por workspace — as duas declaram name: generate.

Python 3

Os scripts usam só biblioteca padrão. Sem dependências para instalar.

# confira
python3 --version

Versão local: servidor de imagem

A skill checa a saúde antes de gerar e, se estiver fora, falha dizendo como subir — em vez de cair para uma rota paga em silêncio.

# deve responder status ok
curl localhost:8000/health

Versão API: duas chaves

Agregadores dão dezenas de modelos com uma chave e uma fatura só. Adicione .env ao .gitignore no primeiro dia.

# .env
FAL_KEY=sua_chave
KIE_API_KEY=sua_chave
Guia de uso · passo a passo

Do clone à primeira geração

Comandos reais. A versão local gera de graça; a versão API nunca chama a API sem uma aprovação explícita no comando.

1

Clone o repositório

As duas versões vivem em pastas separadas, com um README cada uma.

git clone https://github.com/inematds/generator-skill
cd generator-skill
2

Instale a versão que serve à sua máquina

Uma por workspace. Se instalar as duas com o mesmo nome, elas colidem.

# máquina com modelo local rodando
cp -r generate-local ~/.claude/skills/generate

# máquina sem modelo local — tudo por API paga
cp -r generate-api <workspace>/.claude/skills/generate
3

Configure (só a versão API)

Escolha a pasta da biblioteca e o teto mensal de aviso. Dica de limite: carregue pouco crédito no primeiro pagamento — o provedor não gasta o que não tem.

# _config.json, criado na primeira execução
{ "pasta": "~/generations", "teto_mensal_usd": 50 }
4

Gere — versão local

Custo zero, poucos segundos. Sem custo marginal, rascunho e final são o mesmo modelo: varie a semente à vontade.

python3 scripts/gerar-local.py \
  --prompt "capa de curso, formas geométricas, fundo escuro" \
  --projeto capa-curso --desc hero -n 3

# OK ...capa-curso_hero_1785563764.png  (6.2s, $0)
5

Cote antes — versão API

--estimar imprime a cotação e sai sem gastar. É o que se mostra à pessoa antes de pedir o "pode".

python3 scripts/gerar.py --rota fal --model <id> \
  --prompt "..." --projeto capa --desc hero \
  --custo 0.04 --estimar

# COTACAO  custo $0.04 · mês $0.00 de $50 -> ficaria $0.04
# Nada foi gasto.
6

Execute só depois da aprovação

Sem --confirmar o script se recusa a chamar a API. A autorização fica no comando, não na memória de quem conduz.

python3 scripts/gerar.py ... --confirmar

# vídeo assíncrono: submete, faz poll, baixa e guarda o task id
python3 scripts/gerar.py ... --custo 1.75 --async --confirmar
7

Confira o gasto

O lançamento acontece quando o provedor aceita o job. Se a geração falhar depois disso, o dinheiro já saiu — e aparece marcado como pendente, em vez de sumir.

python3 scripts/registrar.py --saldo

# 2 run(s) cobrados sem arquivo salvo:
#   ...1f5462ee  incompleto  $0.40
#   ...fb8bb889  falhou      $2.00  task T3

# quando a fatura chegar, corrija o valor
python3 scripts/registrar.py --corrigir <run_id> --cost 1.9
8

Adicione um modelo novo

Copie o template de receita, preencha com a documentação do provedor e some a linha na tabela de preços com a data. Dez minutos, e nada mais muda.

cp models/_template.md models/meu-modelo.md
# preencha: model id, método (sync/async), endpoint, auth,
# corpo do request e onde o arquivo aparece na resposta
Exemplos

O sistema por dentro

O fluxo completo e a decisão de rota que está por trás da separação em duas versões.

Diagrama do fluxo da skill: entradas de texto, referências e parâmetros passam pelo comando /generate e saem como imagem ou vídeo, em cinco passos
Os cinco passos: rotear para o modelo mais econômico, usar referências reais, gerar, salvar numa pasta única e registrar prompt, modelo e parâmetros.
Modelos criativos alcançáveis por duas rotas: um agregador por assinatura mensal ou agregadores pay-as-you-go
Os mesmos modelos, contas diferentes: assinatura mensal fixa, ou pay-as-you-go por chamada. A versão API assume pay-as-you-go — começa em zero e o custo é atribuível a cada geração.
Roadmap

Onde está e o que falta

O que foi verificado por execução real está marcado como tal; o resto está marcado como não verificado dentro das próprias receitas.

Pronto
Versão local, ponta a pontaGeração, salvamento plano, log JSON, livro-caixa e falha limpa com o servidor fora do ar — verificados por chamada real.
Pronto
Versão API, com os caminhos de perda de dinheiro cobertosCotação, recusa sem aprovação, teto mensal, retomada por task id, e lançamento no livro-caixa mesmo quando a geração falha depois de cobrada.
Falta
Confirmar IDs e preços contra as APIs reaisOs IDs de modelo vieram de material de terceiros e estão marcados não verificado. Primeiro passo de quem instalar, sempre com cotação antes.
Ideia
Galeria da bibliotecaPágina única que lê a pasta plana e mostra tudo o que foi gerado, com o prompt de cada arquivo vindo do JSON ao lado.