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 campolinkdo 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]ouaspect-[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"