# ✅ Vérification humaine — `dev-verif-15` (quick-wins faible risque)

**Branche :** `dev-verif-15` (depuis `dev`)
**Date :** 2026-06-02

## Items traités (4)

| Item (spec) | Avant | Après |
|---|---|---|
| agent-readiness / **markdown-source-endpoints** | partial | ✅ `<canonical>.md` sert le MDX brut + `<link rel=alternate type=text/markdown>` |
| agent-readiness / **agent-skills-discovery** | fail | ✅ `/.well-known/agent-skills/index.json` |
| performance / **visibility-aware-rendering** | fail | ✅ `content-visibility:auto` + `contain-intrinsic-size` sur le `<footer>` |
| accessibility / **css-state-selectors** | partial | ✅ `:user-invalid` sur inputs/textarea/select |

## Changements (fichiers)

- `app/api/md/[category]/[slug]/route.ts` — **nouveau** : retourne `blog.content` (MDX brut) en `text/markdown` (`generateStaticParams` sur tous les articles).
- `app/api/wellknown/agent-skills/route.ts` — **nouveau** : JSON listant les ressources (services.md, llms.txt, feed).
- `next.config.ts` — rewrites : `/.well-known/agent-skills/index.json` + `/:category/:slug.md → /api/md/...`.
- `app/[category]/[slug]/page.tsx` — `alternates.types["text/markdown"]` (discovery du .md).
- `app/globals.css` — `:user-invalid` (validation native) + `footer { content-visibility:auto }`.

## Preuves (build prod local :3001)

```
pnpm build : exit 0
/.well-known/agent-skills/index.json → HTTP 200 application/json (skills:[…])
/guides/<slug>.md → HTTP 200 text/markdown — corps MDX brut accentué
article → <link rel=alternate type=text/markdown href=…/slug.md>
CSS : :user-invalid ✓ · footer content-visibility ✓
```

## Notes
- `content-visibility` appliqué **uniquement au footer** (toujours hors écran, sans cible d'ancre) → conservateur, zéro risque de jank/anchor.
- Endpoints `.md` : `generateStaticParams` → pré-rendus statiques (pas de coût runtime).

## Décision
- [ ] **Validé** → mergeable.

> _Notes du vérificateur :_
