---
page: backlink
sous-page: recherche
route: /backlink/recherche
statut: draft
version: 0.1
transverse-liées: [reservoir-data-model (TBD), conventions, i18n, design-system]
date: 2026-06-03
---

# CdC — `backlink/recherche`

> Miroir de `keywords/recherche`, mais la **source est le Reservoir GLOBAL** filtré par le **thème + langue du site courant**. On trie des sources et on en fait des **prospects** (`backlink`) pour un ou plusieurs sites.

## 1. Objectif

Faire remonter, depuis le pool global, les **sources pertinentes pour un site donné** (thème + langue), les trier, et créer des **prospects** pour ce site — ou **plusieurs sites** (multi-select) — en évitant le **footprint**.

## 2. Périmètre

- **Dans** : filtrage du pool global par la **pertinence du site courant** ; **scoring de pertinence** ; **ciblage multi-sites** ; **alerte footprint** ; shortlist ; push en `planning`.
- **Hors** : bibliothèque globale (→ `reservoir`) ; campagne/monitoring (→ `planning`) ; connecteurs (→ `export-import`).

## 3. User stories *(persona : netlinker multi-sites)*

- Pour mon site FR / thème « jardinage », je vois les **sources pertinentes** triées par score.
- Je **sélectionne** et crée des **prospects** pour ce site.
- On m'**alerte** si un domaine référence déjà 3 de mes sites (footprint).
- J'assigne une source à **plusieurs sites** d'un coup.

## 4. Fonctionnalités

- F1 — **Site = contexte de pertinence** : son thème+langue filtrent/scorent le pool global.
- F2 — Liste des sources (depuis le Reservoir) : `domaine · TF/CF · DR · DA · trafic · type · footprint · score`.
- F3 ⭐ — **Score de pertinence vs le site** : TF thématique × langue × DR.
- F4 — **Ciblage multi-sites (multi-select)** : créer des prospects pour 1..N sites en une action.
- F5 ⭐ — **Alerte footprint** : avertit si la source référence déjà N sites.
- F6 — **Shortlist / panier** de prospection.
- F7 — **Push en planning** (bulk) → `backlink.status = planned`.
- F8 — (option) **Matrice `source × site`** : qui cible quoi.

## 5. UI / écrans

- Liste triée par pertinence + **multi-select sites** + **badge footprint** ; sheet détail source ; shortlist ; **DnD** (conventions R2).
- États vide/chargement/erreur ; responsive. Tokens `design.md`.

## 6. Données & actions

- **Affiché** : sources pertinentes + scores + footprint.
- **Actions** : filtrer, sélectionner, **assigner prospect (multi-sites)**, vérifier footprint, shortlist, push planning.

## 7. Modèle de données *(réutilise le socle backlink)*

- Crée des `backlink(link_source_id, target_site_id, status = prospect|planned, …)`. **Multi-select = N `backlink` (1 par site)**. Unicité `(link_source_id, target_site_id)`.
- Pertinence calculée depuis `link_source.themes/language` + `link_source_metric`.

## 8. API Hono

- `GET /sites/:siteId/backlinks/research` *(pool global **scoré** pour ce site)*
- `POST /backlinks/assign` *(body : `source_ids[]` × `site_ids[]` — **multi**)*
- `GET /sites/:siteId/backlinks/footprint-check`
- `POST /sites/:siteId/backlinks/plan` *(push prospects → planned)*
- `GET|POST /sites/:siteId/backlinks/shortlist`

## 9. Capacités requises *(fonctionnel — mapping modules TBD)*

Scoring de pertinence par site · gestion de prospects **multi-sites** · contrôle **footprint** · bulk.

## 10. Tools / capacités MCP

- `bl_research` (read) · `bl_relevance` (read) · `bl_footprint` (read)
- `bl_assign_prospect` (write — multi-sites) · `bl_plan` (write)

> Privé vs public-limité : **TBD**.

## 11. i18n

- Pertinence = **langue de la source vs langue du site**. Réf `hreflang`, `locale-content`. UI localisée.

## 12. Qualité *(réf. fiches des 128 par slug)*

- **Perf** : scoring du pool global → pré-calcul/cache. **A11y** : `data-tables`, `keyboard-navigation`, `focus-indicators`. **Sécu** : accès données globales, auth. **Indexation** : noindex.

## 13. Critères d'acceptation

- [ ] Pour un site, la liste est **triée par pertinence** (thème+langue).
- [ ] Assigner une source à **3 sites** en une action crée **3 `backlink` prospect**.
- [ ] L'**alerte footprint** se déclenche au-delà du seuil.
- [ ] Push en planning passe les prospects en `planned` (visibles dans `planning`).

## 14. Dépendances & risques · questions ouvertes

- **Dépend de** : `backlink/reservoir` (source), `backlink/planning` (destination), `_transverse/reservoir-data-model`, `_transverse/conventions`.
- **Questions ouvertes** : seuil de footprint configurable ? pondération du score de pertinence ?
