Files
ki-fwi/static/404.html
T
OKIandClaude Opus 5 ccad7177b3 feat(session-1): socle SvelteKit et encyclopédie /zerbaj/ prérendue
SvelteKit 2 + Svelte 5 runes + TS strict, adapter-static en prérendu
intégral, trailingSlash always, paths.relative false.

Mesures de la porte de sortie
- 56 pages HTML prérendues (13 fiches × 3 langues + pages de service)
- 59 Ko de JS gzip (budget : 170) · build total 1,4 Mo (budget : 2 Mo)
- 0 chargement tiers, vérifié par grep du build
- fiche lisible sans JS : 1694 caractères de texte rendu
- npm run check : 248 fichiers, 0 erreur, 0 warning
- 0 erreur console au chargement
Lighthouse non exécuté : porte encore ouverte, à vérifier avant la S6.

Charte OKI
Tokens partagés, thème sombre par défaut, Archivo et Inter self-hébergées
(124 Ko de woff2), flag-bar à segments francs, bouton à balayage or,
gate prefers-reduced-motion unique. CSP stricte en .htaccess et _headers,
404 statique autonome, PWA avec registerSW à chemin absolu (playbook 2.9).

L'interface kréyòl n'est pas écrite par l'agent
Le catalogue gcf ne contient que les termes venant des documents du
porteur — 10 chaînes sur 132. Le reste vaut null et se replie sur le
français ; check:i18n produit la liste des 122 phrases à traduire, par
écran. <html lang> annonce la langue réellement écrite : fr tant que la
couverture reste sous 60 %, avec les fragments kréyòl marqués un par un.
Des tournures kréyòl que j'avais inventées ont été retirées.

Corrections en cours de build
- vite-plugin-pwa/sveltekit n'existe pas sans @vite-pwa/sveltekit :
  VitePWA en direct, comme le prescrivait déjà le playbook.
- @sveltejs/vite-plugin-svelte v7 n'exporte plus sveltekit : import
  depuis @sveltejs/kit/vite, vérifié sur les exports réels.
- Le sélecteur de langue fabriquait /fr/offline/, page inexistante.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 11:44:21 -04:00

81 lines
1.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Page introuvable — KI FWI SA YÉ ?</title>
<meta name="robots" content="noindex" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<style>
/* Autonome : aucune dépendance, aucune police à charger. Cette page doit
s'afficher même quand tout le reste du site est cassé. */
:root {
--noir: #0d0d0d;
--creme: #fff8e7;
--or: #fdb813;
--vert: #00d66c;
--rouge: #ff1654;
}
body {
margin: 0;
min-height: 100vh;
display: grid;
place-content: center;
gap: 1rem;
padding: 2rem;
background: var(--noir);
color: var(--creme);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
text-align: center;
}
.flag {
height: 6px;
width: 220px;
margin: 0 auto;
background: linear-gradient(
to right,
#0d0d0d 0 25%,
var(--or) 25% 50%,
var(--vert) 50% 75%,
var(--rouge) 75% 100%
);
}
h1 {
margin: 0;
font-size: clamp(1.6rem, 6vw, 2.6rem);
text-transform: uppercase;
letter-spacing: -0.01em;
}
p {
margin: 0;
opacity: 0.75;
max-width: 44ch;
}
a {
display: inline-block;
margin-top: 0.5rem;
min-height: 44px;
padding: 0.7em 1.4em;
color: var(--or);
border: 2px solid var(--or);
border-radius: 3px;
text-decoration: none;
text-transform: uppercase;
font-weight: 700;
letter-spacing: 0.03em;
}
a:hover,
a:focus-visible {
background: var(--or);
color: var(--noir);
}
</style>
</head>
<body>
<div class="flag"></div>
<h1>Page introuvable</h1>
<p>Cette page nexiste pas.</p>
<a href="/">Retour à laccueil</a>
</body>
</html>