L’API rich text d’Asana n’utilise pas du HTML standard. Elle accepte un sous-ensemble strict avec des règles bien précises : seulement certaines balises sont permises, les règles d’imbrication diffèrent de ce que les navigateurs tolèrent, et le format se rapproche plus du XML que du HTML, ce qui veut dire que les balises non fermées, les attributs flottants, ou quoi que ce soit hors de l’ensemble autorisé sera rejeté ou silencieusement déformé.
Les LLM ont tendance à produire des sorties qui ont l’air correctes mais qui sont subtilement fausses. Ils vont utiliser des balises qu’Asana ne supporte pas, mal imbriquer les éléments, ou générer du HTML valide que le parser d’Asana rejette quand même.
Pour régler ça, j’ai écrit un document de référence qui couvre l’ensemble complet des balises, les attributs permis, les règles d’imbrication et des exemples. Je le passe aux LLM en contexte quand j’ai besoin qu’ils génèrent du contenu rich text pour Asana.