- Schémas Zod partagés ($lib/schemas) : modèle, profil (PRD §4), null = « à vérifier », sources[] obligatoires à chaque écriture - Persistance YAML dans DATA_DIR + commits git automatiques (simple-git) ; seeds PRD au premier démarrage (1 modèle §4.1, 5 profils, 2 templates) - CRUD registre et profils : pages liste/édition/création, form actions, champs tri-état, messages d'erreur Zod, commit par écriture - Moteur de recommandation pur et testé (12 cas : nominal, licence null, seuil, statut mort, vram, modalité, fraîcheur, pénalités) : filtrage dur (requiert/exclut/obligatoire/mort) puis scoring pondéré (préférences, rang arena, fraîcheur, pénalités statut et champs null), justification et warnings (attribution, seuil, garde-fous, déclarations plateformes) - POST /api/recommander (SSO requis) + page /recommander - Exporteur markdown /exports : templates éditables, génération depuis le registre (tableaux registre + classements), commit par document - Vérifié : check/lint/test (22) /build verts, test fumée HTTP complet (seed + git init, CRUD par form action, exports générés, filtres API, 401/404), svelte-autofixer propre sur les 11 composants
16 lines
465 B
Svelte
16 lines
465 B
Svelte
<script lang="ts">
|
|
/**
|
|
* Badge « à vérifier » — règle anti-hallucination du PRD : tout champ null
|
|
* est signalé, jamais masqué. Ne repose pas sur la couleur seule (picto + texte).
|
|
*/
|
|
import { fr } from '$lib/i18n/fr';
|
|
import Icon from './Icon.svelte';
|
|
|
|
let { texte = null }: { texte?: string | null } = $props();
|
|
</script>
|
|
|
|
<span class="tag">
|
|
<Icon nom="avertissement" taille={14} />
|
|
{#if texte}{texte}{:else}{fr.badge.a_verifier}{/if}
|
|
</span>
|