Communitygithub.com

astriaai/skills

Use ao editar, atualizar ou iterar no HTML da página inicial de um workspace (a página estilo revista /w/:slug). Suporta edições incrementais — busque o HTML atual, faça alterações direcionadas e então grave-o de volta. NÃO é para geração inicial — isso vem do campo `brief` que executa o LANDING_PAGE_PROMPT do servidor contra o Gemini.

O que é skills?

Esta skill permite que um agente de IA edite incrementalmente o HTML da página inicial de um workspace no estilo revista (exibida em `/w/:slug`), sem regenerar a página inteira. É útil para ajustes rápidos como correções tipográficas, alterações de layout, adição de seções, troca de imagens ou ajustes de texto promocional. A skill é baseada na CLI `astria` e suporta obraspaces do Astria. O fluxo de trabalho consiste em: buscar o HTML atual com `astria landing get -w <workspace_id> --html`, editar localmente preservando restrições importantes (como não substituir o placeholder `__TUNES_JSON_PAYLOAD__`), e então gravar de volta com `astria landing set`. A skill enfatiza que o servidor substitui o placeholder no momento da renderização, portanto nunca se deve substituí-lo por JSON literal, para evitar congelar o elenco e impedir que novas faixas apareçam. A regeneração completa só deve ocorrer se o usuário solicitar explicitamente um redesenho completo, usando o campo `brief`.

Funciona com~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/astriaai/skills/tree/HEAD/landing-page-editor

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Prévia

Do README da skill

Documentação

Editor da Página Inicial do Workspace

A página inicial do workspace (renderizada em /w/:slug) é um único bloco HTML autocontido armazenado em workspace.landing_page_html. Ela é gerada do zero pelo LANDING_PAGE_PROMPT do servidor sempre que um brief é submetido — esse caminho sobrescreve o HTML por completo.

Para QUALQUER alteração que não deve regenerar a página inteira (ajustes tipográficos, edições de layout, adicionar uma seção, alterar texto, trocar uma imagem, corrigir uma tagline), edite o HTML diretamente e grave-o de volta. NÃO envie um brief a menos que o usuário queira uma regeneração completa.

Todos os comandos usam a CLI astria (veja a skill astria-api). Passe -w <workspace_id> para direcionar o workspace.

Restrições herdadas do LANDING_PAGE_PROMPT

Ao editar, preserve estas invariantes (a página /w/:slug ao vivo depende delas):

  • A saída é HTML interno do corpo — sem tags <html>, <head>, <body> ou <!DOCTYPE>
  • A estilização usa classes utilitárias Tailwind (já carregadas na página). Use <style> apenas para efeitos de hover/animação que o Tailwind não consegue expressar
  • Links de pacotes são exatamente /p/{slug}; links de modelo/referência usam o campo link do JSON de faixas literalmente (NÃO re-encode %5B/%5D)
  • Toda imagem / vídeo está envolvido em uma tag <a>
  • URLs de imagem e vídeo devem ser aquelas que já existem — não invente URLs
  • Vídeos usam <video autoplay muted loop playsinline poster="POSTER_URL"><source src="VIDEO_URL" type="video/mp4"></video>
  • A string __TUNES_JSON_PAYLOAD__ dentro de <script type="application/json" id="tunes-data">…</script> é um placeholder do lado do servidor. O servidor o substitui no momento da renderização pelo JSON de faixas ao vivo. Nunca o substitua por JSON literal — isso congela o elenco e novas faixas adicionadas não aparecerão
  • Estilo editorial: títulos com serifa, espaçamento generoso, réguas finas, object-cover object-[center_top] em imagens de retrato, max-h-[70vh] em spreads de destaque, aspect-[4/5] ou aspect-[3/4] em contêineres de retrato

Fluxo de Trabalho

1. Busque o HTML atual da página inicial

astria landing get -w <workspace_id> --html > /tmp/landing_page.html

astria landing get -w <workspace_id> (sem --html) retorna o JSON completo do workspace — title, slug, brief, url, public_at, unlisted_at — quando você precisar deles. Visualize a página renderizada em /w/{slug}.

2. Obtenha dados do workspace (quando uma edição precisar referenciar pacotes / prompts / faixas reais)

astria packs list -w <workspace_id> --limit 100
astria tunes list -w <workspace_id> --limit 200            # o "elenco" renderizado na página
astria prompts list -w <workspace_id> --limit 100 --offset 0   # pagine com --offset até vazio
astria prompts list -w <workspace_id> --pack-id <pack_id>      # mais barato, uma seção de cada vez

Os endpoints de lista paginam via --limit/--offset (ordem padrão id decrescente). Repita com --offset até que uma página retorne vazia.

3. Faça a edição incremental

Edite /tmp/landing_page.html localmente. Mantenha as alterações cirúrgicas — o gerador produziu milhares de bytes de layout e a maior parte deve permanecer literal. Releia a seção de restrições acima antes de salvar.

4. Grave a página de volta

astria landing set -w <workspace_id> --html-file /tmp/landing_page.html

NÃO passe --brief aqui — isso descarta suas edições e regenera do zero via Gemini.

5. Verifique

Abra /w/{slug} e confirme visualmente a alteração. O placeholder __TUNES_JSON_PAYLOAD__ é substituído pelo servidor no momento da renderização — se uma string com formato JSON ainda aparecer na página renderizada, o placeholder foi acidentalmente excluído ou renomeado.

Regenerando do zero

Apenas quando o usuário solicitar explicitamente um redesenho completo — submeta um brief e o servidor executa LANDING_PAGE_PROMPT contra o Gemini, sobrescrevendo o HTML:

astria landing set -w <workspace_id> \
  --brief "Lookbook editorial de moda, AW26, paleta escura e sombria, enfatize os pacotes de moda feminina"

Habilidades Relacionadas