# Conventions — règles pour les sub-agents

## Méthode de travail (IMPORTANT)
- On avance **page par page, petit bout par petit bout**. **Pas de gros pavés.**
- **Design-first** : on design l'écran d'abord ; le design **révèle le modèle de données** et l'implication générale (DB, API, modules). On ne fige **pas** la DB avant d'avoir designé.
- **Données mockées** dans le proto (fixtures typées), remplaçables par l'API plus tard.
- **1 sub-agent = 1 page (ou un bout)**. Petit périmètre, livrable testable, puis on enchaîne.

## Règles produit (non-négociables)
- **Isolation par site** (`site_id`) partout — **SAUF** `backlink/reservoir` (GLOBAL) et `checklist`.
- **Reservoir** = réservoir de recherche/staging (**≠ rank-tracking**, écarté pour l'instant).
- **Locale = langue + pays** (`fr` peut viser `FR` / `BE` / `CA`…).
- **R1** : tout import **auto-détecte la source** + **destination au choix**. **R2** : **drag-and-drop par défaut** (modal en alternative), **clavier-accessible**.
- **2 entités** côté `contenu`/`products` : production (`*_item`) ↔ en-ligne (`*_page`).
- **En souffrance** (ne pas inventer, afficher un état explicite) : `*/stats` (perf → **D1**) · connexion CMS (**D2**).

## Stack & style
- **Next 16** : ⚠️ breaking changes — **lire `node_modules/next/dist/docs/`** avant de coder.
- **shadcn** (MCP `shadcn` dispo dans `.mcp.json`) · **Tailwind** avec tokens `design.md` · **biome** (lint/format) · **bun**.
- **A11y** : data-tables avec `scope`, focus visible, navigation clavier (réf fiches de la KB).

## Git
- Brancher depuis **`dev`**, **conventional commits**, **jamais de commit sur `main`**. Petites branches éphémères par page.
