local-site-lift · git:20260916.9177fd5 · 2026-09-16 · sha256 0367e3eee3d141af
local-site-lift git:20260916.9177fd5A
Immutable. This exact content is served forever at /api/v1/blob/0367e3eee3d141af.
---
name: local-site-lift
description: >-
Refaz o site feio de um negócio local como página estática rápida, decidindo
a direção visual antes de escrever código. Entrega brief, auditoria do site
atual e a pasta dist/ pronta. Ativa em "melhora o site da padaria", "site
feio de comércio", "refaz a vitrine da oficina", "landing page pro meu
salão", "site de clínica/restaurante/pet shop/advogado/barbearia", "meu site
é lento e feio", "quero um site simples com WhatsApp", "redesign a local
business site". NÃO use para tema WordPress, loja com carrinho ou checkout,
área logada, blog com CMS, dashboard, app, SaaS, painel admin, nem projeto
Next/React que precise de servidor — diga o limite e ofereça só a vitrine
estática. Esta skill NÃO publica: para subir no cPanel, o trabalho é da
skill cpanel-deploy. Se o pedido for vago como "faz um site", pergunte que
negócio é e se tem endereço físico antes de acionar.
argument-hint: "<nome do negócio + cidade> [URL do site atual]"
license: MIT
---
# Local Site Lift
Transforma site feio de negócio local em página estática rápida, com cara
própria, feita para converter no celular.
O trabalho termina numa pasta `dist/` pronta. **Publicar é de outra skill**, a
`cpanel-deploy` — aqui não há token, não há `.env`, não há hospedagem.
O trabalho não é "fazer um site bonito". É colocar o comércio no ar com um caminho óbvio até o WhatsApp.
## Quando parar e recusar
Este fluxo cobre site institucional de um negócio físico. Recuse ou redirecione quando o pedido for tema WordPress, loja com carrinho, dashboard, app, SaaS ou painel admin. Diga o limite e ofereça só a vitrine estática.
Não invente CNPJ, endereço, horário, telefone ou foto do estabelecimento. Peça o dado ou deixe um placeholder explícito.
Não imprima, commite ou cole token, senha ou conteúdo de `.env` na conversa, no git ou no HTML.
## Onde o trabalho mora
Uma pasta por cliente, **dentro da pasta em que a conversa está acontecendo**:
```
<pasta-do-projeto>/clientes/<nome-do-cliente>/
├── PRODUCT.md brief
├── ANTES.md auditoria do site atual
├── DESIGN.md direção visual
├── dist/ o site
└── origem/ o que foi baixado do site antigo (rascunho)
```
Nunca jogue em `Downloads` nem em pasta temporária: some, e o cliente volta
daqui a três meses pedindo ajuste.
**Se a pasta do projeto for um repositório git, ponha `clientes/` no
`.gitignore` antes de criar o primeiro arquivo.** O `PRODUCT.md` carrega CNPJ,
telefone e endereço de um negócio real, e isso não entra num repositório
público.
## Pipeline
Siga nesta ordem. Não pule o brief, e não publique nada antes do usuário aprovar o preview local.
1. Brief do negócio — copie `assets/PRODUCT.template.md` para `PRODUCT.md` e preencha. Leia `references/negocio-local-br.md`.
2. Captura do site atual — se houver URL, abra, leia o HTML visível, anote textos reais, fotos úteis, páginas e o que falha (lento, ilegível no celular, sem CTA, endereço errado). Guarde o "antes" em `ANTES.md`.
3. Perfil do Google — se houver `APIFY_TOKEN`, consulte. É a **única fonte
acessível de foto real do lugar**, e o perfil é mantido pelo dono, então
costuma estar mais certo que o site.
```bash
python scripts/negocio.py consultar "<nome> <cidade>" --out google.json
python scripts/negocio.py fotos google.json --out origem/google --n 4
```
**Confronte com o `PRODUCT.md` e mostre as divergências ao usuário.** No
primeiro site real o Google trazia `231` onde o site dizia `23`, e marcava
sábado como fechado enquanto o site anunciava 7h30 às 12h. Endereço errado
manda gente para o lugar errado: divergência é assunto do dono, não escolha
sua.
**Nota abaixo de 4,0 não vira selo no site**, e `aggregateRating` só entra
no schema com o número verificado. Leia as avaliações de uma estrela e conte
ao dono o que elas repetem: costuma ser problema de operação que o site não
conserta e não deve esconder.
**Olhe as fotos antes de usar.** São mistura de foto do dono e de cliente, e
podem ter rosto de funcionário, que exige consentimento. Toda foto daí é
candidata marcada no `PRODUCT.md`, nunca publicação direta.
Sem o token, pule: o site sai igual, só sem foto real e sem nota.
4. Direção visual — leia `references/design-floor.md`. Escreva em `DESIGN.md` uma paleta de 4 a 6 cores nomeadas, um ou dois tipos, o conceito de layout em uma frase e o elemento que carrega a personalidade. Revise o plano contra os defaults de IA listados no floor. Só então gere código.
5. Imagens — leia a seção "Imagem" do `design-floor.md`. **A decisão é sua, o
`scripts/imagens.py` só executa.** Primeiro: a imagem afirma algo sobre o
negócio (fachada, sala, equipe)? Então só foto real deles, ou nenhuma. Se
não: busque no Pexels quando for assunto comum do mundo real, e gere na
kie.ai quando for específico da ideia deste site.
```bash
python scripts/imagens.py buscar "<termo em ingles>" --n 5 --previa /tmp/p
python scripts/imagens.py pegar <id> --out dist/img/hero
python scripts/imagens.py gerar "<prompt>" --out dist/img/x # custa crédito
```
**Antes de `gerar`, mostre o prompt e espere o ok:** custa crédito.
6. Build estático — gere o site em `dist/` (HTML + CSS + JS mínimo + imagens). Mobile primeiro. Uma oferta. Um CTA principal.
7. Aferir o artesanato — **antes de mostrar qualquer coisa ao usuário**:
```bash
python scripts/aferir.py dist/
```
Ele mede o que separa site de agência de site amador: tamanho do `h1`,
contraste da escala, estados de interação, grade no desktop, rodapé. Sai com
código 1 e diz o número de cada falha. **Corrija tudo antes do preview.**
Isso existe porque duas entregas saíram planas e com metade da tela vazia,
seguindo um `design-floor.md` que só listava proibições.
8. Checklist de conversão — confira `references/negocio-local-br.md` antes de chamar pronto.
9. Preview — sirva `dist/` localmente e peça o ok do usuário:
```bash
python -m http.server 8080 --directory dist
```
Abra `http://localhost:8080`. Confira também na largura de 360px (DevTools,
modo dispositivo) antes de mostrar — este site vive no celular.
10. Publicar — só com ok explícito, e é outra skill. Peça a **cpanel-deploy**,
que sobe a pasta `dist/` num cPanel e confere se o endereço no ar é mesmo a
página nova. Se o usuário hospeda em outro lugar (Vercel, Netlify), o
`dist/` é estático puro e serve igual.
## Brief mínimo
Sem estes campos o visual vira template. Complete antes de desenhar.
- nome do negócio, cidade, bairro
- o que vende, para quem, em uma frase
- oferta principal (o que a pessoa ganha ao chamar)
- WhatsApp com DDD
- endereço e horário
- tom (simples, acolhedor, técnico, popular, sofisticado)
- 1 a 3 fotos reais, se existirem
- URL do site feio, se existir
O brief vence o gosto da skill. Padaria não parece fintech. Oficina não parece spa.
## Build
Empilhe pouco. Hospedagem compartilhada não é lugar de React, Next ou bundler obrigatório.
- **leia o chão numérico do `design-floor.md` antes de escrever CSS.** `h1` de
3,5rem, no máximo 8 tamanhos de fonte, grade de verdade no desktop
- `dist/index.html` como entrada
- CSS próprio em arquivo separado, variáveis na raiz
- JS só para menu mobile, WhatsApp flutuante ou mapa
- imagens em `dist/img/`, comprimidas, com `alt` real
- `dist/.htaccess` com HTTPS e cache de estáticos, se o destino for Apache (modelo em `assets/htaccess.template`). É ele que faz o CDN cachear
- fontes via Google Fonts ou arquivo local — nunca mais de duas famílias
Páginas típicas de um comércio local. Home, serviços, sobre, contato. Muitos negócios cabem em uma página com âncoras. Prefira uma página quando o conteúdo for curto.
HTML semântico. Um `h1`. CTA com texto de ação ("Chamar no WhatsApp"), não "Enviar". Links de telefone em `tel:` e WhatsApp em `https://wa.me/55DDDNUMERO` com mensagem pronta.
## Publicar
Não é trabalho desta skill. O `dist/` é HTML, CSS, JS e imagem: sobe em
qualquer lugar que sirva arquivo estático.
Para cPanel (HostGator e equivalentes), use a skill **cpanel-deploy**: ela lê o
token de um `.env`, não apaga nada no servidor, avisa se houver `index.php`
velho ganhando da home nova, e confere no fim se a URL publicada é a página que
subiu.
Antes de entregar, avise o cliente sobre o que ficou marcado como
**[CONFIRMAR]** no `PRODUCT.md`. Em site de saúde, alimentação ou serviço
regulado, isso costuma incluir responsável técnico e registro profissional.
## Qualidade em um ciclo
Construa inteiro. Inspecione uma vez no desktop e no mobile. Corrija tudo num lote. Pare. Loop aberto de "mais um polish" gasta token e piora o resultado.
Leia `references/design-floor.md` de novo só se o lote de correção exigir direção, não como ritual.