- shared: ajoute 'NO_YAML' à ApiStatus - back/apis: status initial dérivé de yamlContent (PENDING si YAML, NO_YAML sinon) - back/uploads: supprime la contrainte "fichier requis", gère le cas sans fichier - front/api-detail: badgeClass/statusLabel gèrent NO_YAML (badge warning "Sans fichier") - front/catalog: badgeClass ajoute le case NO_YAML → badge warning - front/upload: fichier optionnel (canProceedFromStep1 retourne true si 0 fichier) Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>