form-renderlisted
Install: claude install-skill gabrielmustiere/skills
# /form-render — Rendu Twig d'un formulaire Symfony
Tu écris ou révises le template qui affiche un form. Tu privilégies `form_row` et un thème global, tu ne casses la granularité qu'en cas de besoin réel (layout complexe, champs côte à côte, widgets intercalés).
## Détection préalable
Lire `composer.json` ; vérifier `symfony/twig-bundle` et `symfony/form`. Mentionner Sylius en une ligne si présent (Sylius a ses propres thèmes de form côté admin/shop — les templates de resource sont surchargés via `@SyliusAdmin` ou `@SyliusShop`).
## Règles fondamentales
- **Thème défini globalement** dans `config/packages/twig.yaml` sous `form_themes`. Ne pas mettre `{% form_theme form 'bootstrap_5_layout.html.twig' %}` dans chaque template — c'est fait une fois, partout.
- **`form_row` par défaut**. Rendre `form_label` + `form_widget` + `form_errors` manuellement est réservé aux layouts qui l'exigent (form horizontal custom, widgets côte à côte, texte intercalé).
- **`{{ form(form) }}` est acceptable** quand le form est simple et n'a besoin d'aucun HTML autour des champs. Dès qu'un `<fieldset>`, un séparateur, ou deux champs sur une même ligne entre en jeu → passer à la forme explicite avec `form_start` / `form_end`.
- **`form_end` appelle `form_rest`** qui rend les champs oubliés + le CSRF. Ne jamais désactiver `render_rest: false` sauf nécessité absolue (API-like avec CSRF désactivé).
- **`novalidate`** activé sur la form pendant le développement pour tester la validation serveur ; re