Que fait Éditeur de Page d'Accueil d'Espace de Travail ?
La page d'accueil de l'espace de travail (rendue à /w/:slug) est un unique blob HTML autonome stocké sur workspace.landing_page_html. Elle est générée de zéro par la LANDING_PAGE_PROMPT côté serveur à chaque soumission d'un brief — ce chemin remplace le HTML en totalité.
Pour TOUTE modification qui ne doit pas régénérer la page entière (ajustements typographiques, modifications de mise en page, ajout d'une section, changement de texte, remplacement d'une image, correction d'un slogan), modifiez le HTML directement et réécrivez-le. N'envoyez PAS de brief sauf si l'utilisateur souhaite une régénération complète.
Toutes les commandes utilisent la CLI astria (voir la compétence astria-api). Passez -w <workspace_id> pour cibler l'espace de travail.
Contraintes héritées de LANDING_PAGE_PROMPT
Lors de l'édition, respectez ces invariants (la page /w/:slug en dépend) :
- Le résultat est du HTML pour le corps interne — pas de balises
<html>,<head>,<body>ou<!DOCTYPE> - Le style utilise des classes utilitaires Tailwind (déjà chargées sur la page). Utilisez
<style>uniquement pour les effets de survol/animation que Tailwind ne peut pas exprimer - Les liens vers les packs sont exactement
/p/{slug}; les liens vers les modèles/références utilisent le champlinkdu JSON des tunes textuellement (ne ré-encodez PAS%5B/%5D) - Chaque image / vidéo est encapsulée dans une balise
<a> - Les URLs d'images et de vidéos doivent être des URLs qui existent déjà — n'inventez pas d'URLs
- Les vidéos utilisent
<video autoplay muted loop playsinline poster="POSTER_URL"><source src="VIDEO_URL" type="video/mp4"></video> - La chaîne
__TUNES_JSON_PAYLOAD__à l'intérieur de<script type="application/json" id="tunes-data">…</script>est un placeholder côté serveur. Le serveur le remplace au moment du rendu par le JSON des tunes en direct. Ne le remplacez jamais par du JSON littéral — cela gèlerait le casting et les nouveaux tunes n'apparaîtraient pas - Style éditorial : titres en serif, espacement généreux, règles fines,
object-cover object-[center_top]sur les images portrait,max-h-[70vh]sur les spreads hero,aspect-[4/5]ouaspect-[3/4]sur les conteneurs portrait
Flux de travail
1. Récupérer le HTML actuel de la page d'accueil
astria landing get -w <workspace_id> --html > /tmp/landing_page.html
astria landing get -w <workspace_id> (sans --html) retourne le JSON complet de l'espace de travail — title, slug, brief, url, public_at, unlisted_at — quand vous en avez besoin. Prévisualisez la page rendue à /w/{slug}.
2. Récupérer les données de l'espace de travail (quand une modification nécessite de référencer des packs / prompts / tunes réels)
astria packs list -w <workspace_id> --limit 100
astria tunes list -w <workspace_id> --limit 200 # le "casting" rendu sur la page
astria prompts list -w <workspace_id> --limit 100 --offset 0 # paginer avec --offset jusqu'à ce que la page soit vide
astria prompts list -w <workspace_id> --pack-id <pack_id> # moins coûteux, une section à la fois
Les endpoints de liste paginent via --limit/--offset (tri par défaut id décroissant). Bouclez avec --offset jusqu'à ce qu'une page revienne vide.
3. Effectuer la modification incrémentale
Modifiez /tmp/landing_page.html localement. Gardez les changements chirurgicaux — le générateur a produit des milliers d'octets de mise en page et la plupart doit rester textuellement. Relisez la section des contraintes ci-dessus avant d'enregistrer.
4. Réécrire la page
astria landing set -w <workspace_id> --html-file /tmp/landing_page.html
Ne passez PAS --brief ici — cela supprimerait vos modifications et régénérerait de zéro via Gemini.
5. Vérifier
Ouvrez /w/{slug} et confirmez visuellement le changement. Le placeholder __TUNES_JSON_PAYLOAD__ est remplacé côté serveur au moment du rendu — si une chaîne en forme de JSON apparaît encore sur la page rendue, le placeholder a été accidentellement supprimé ou renommé.
Régénération de zéro
Uniquement lorsque l'utilisateur demande explicitement une refonte complète — soumettez un brief et le serveur exécute LANDING_PAGE_PROMPT via Gemini, écrasant le HTML :
astria landing set -w <workspace_id> \
--brief "Lookbook éditorial mode, AW26, palette sombre et moody, met l'accent sur les packs de prêt-à-porter féminin"