# Poser une question

# Attacher un deck (FAB)

# Attacher un deck (FAB)

> _Dernière mise à jour : 2026-05-10_

Disponible **uniquement sur Flesh and Blood** pour l'instant (`hasCardDatabase = 'flesh-and-blood-cards'`).

## Workflow

1. Sur Fabrary, ouvre ton deck → bouton "Copy as Text"
2. Sur `/play` (jeu FAB sélectionné), clique sur le bouton **Deck** dans la pill du composer
3. Modale "DeckImportModal" s'ouvre → colle le decklist dans le textarea
4. Clique "Analyser"
5. Preview affichée : héro, weapon, equipment, mainboard avec vignettes de cartes ; les non-matchés (s'il y en a) en bas
6. Clique "Attacher au chat" → un bandeau compact apparaît au-dessus du composer (héro + N cartes + bouton détacher)
7. Toutes tes questions suivantes ont le deck en sticky mentions (cap 80)

## Ce qui est extrait du texte Fabrary

- En-têtes : `Name:`, `Format:`, `Hero:`, `Weapon:`, `Equipment:`, `Deck:`/`Mainboard:`/`Pitch 1/2/3`, `Sideboard:`
- Lignes : `3 Card Name`, `(3) Card Name`, `3x Card Name`, `3 - Card Name`
- Suffixe pitch optionnel : `(red|yellow|blue)`
- Lignes vides et commentaires `//` ou `#` ignorés
- Footer Fabrary (`Voir le deck complet @ https://...`) ignoré (pas de quantité en tête)

## Cas d'usage

- **Coverage de rôles** : « ce deck a-t-il assez de defense reactions ? »
- **Synergies internes** : « quelles cartes synergisent avec Snap Shot ? »
- **Optimisation** : « quelles cartes pourrais-je remplacer pour améliorer le matchup contre Briar ? »

## Limites

- Pas de persistance : un reload de page = deck détaché. Re-coller la decklist.
- Pas d'export `.dec` ni de bouton Copier
- Pas (encore) sur Magic / Lorcana / Riftbound — c'est faisable mais demande de coder un parser par format

# Citer une carte avec @

# Citer une carte avec @

> _Dernière mise à jour : 2026-05-10_

Sur les jeux qui ont une base de cartes (`hasCardDatabase` non-null en BDD), tu peux citer une carte directement dans ta question avec `@`.

## TCG supportés

- Magic: The Gathering (`magic-cards`)
- Disney Lorcana (`lorcana-cards`)
- Flesh and Blood (`flesh-and-blood-cards`)
- Riftbound (`riftbound-cards`)
- Terraforming Mars (`terraforming-mars-cards`)
- Ark Nova (`ark-nova-cards`)

## Workflow

1. Tape `@` dans le composer → un popover apparaît
2. Tape les premières lettres de la carte → liste filtrée (debounce 150ms)
3. Navigue avec ↑↓, valide avec Entrée (ou clique)
4. La carte est insérée dans le texte et "épinglée" à la question
5. Quand tu envoies, l'oracle reçoit les détails complets de la carte (nom, type, mana, abilities, set, rareté…) en plus du retrieval normal

## Différence vs retrieval vectoriel

- Le retrieval vectoriel cherche dans les chunks de règles (BASE / EXT / ADV / FAQ / FORUM)
- Le bloc `CARTES CITÉES PAR LE JOUEUR (ce tour)` injecte les cartes que TU as nommées avec `@` — déterministe, pas de score, toujours présent
- Donc même si Qdrant ne sortait pas la carte X dans son top-k, elle sera dans le contexte si tu as fait `@X`

## Sticky mentions (multi-tours)

Les cartes citées au tour 1 restent disponibles aux tours suivants (cap FIFO 20). Plus besoin de les re-taper. Le bloc `CARTES ÉVOQUÉES DANS LA CONVERSATION` les rappelle à l'oracle au format abrégé. Si tu veux qu'une sticky déclenche une nouvelle expansion synergy, re-tape la avec `@`.

## Citation par l'oracle

Quand l'oracle veut référencer une carte dans sa réponse, il écrit `[[card:Nom exact]]` — rendu côté UI comme un bouton avec mini-image cliquable, ouvre la modale zoom détaillée (CardZoomModal).

## Cap "deck attaché"

Si tu attaches un deck (cf. page suivante), le cap sticky passe de 20 à 80 — assez pour un classic constructed FAB (60 main + 12 sideboard).

# Poser une question (flux classique)

# Poser une question (flux classique)

> _Dernière mise à jour : 2026-05-10_

## Étapes

1. **Va sur `/play`** depuis le Home en cliquant sur un jeu.
2. **Coche les extensions actives** dans le header (les non cochées sont ignorées par le retrieval).
3. **Tape ta question** dans le composer en bas.
4. **Envoie** (Entrée, ou bouton). L'oracle commence à streamer la réponse.
5. **Lis et clique sur les citations** pour vérifier la source dans le PDF.
6. **Vote pouce ↑↓** + commentaire si la réponse t'a aidé ou pas — tout est enregistré pour `/admin/feedback`.

## Ce que tu vois pendant la génération

- **Phases verbalisées** dans une bulle "thinking" : « L'Oracle pèse votre question », « plonge dans le grimoire », « rédige sa réponse »
- **Tokens streamés** dans la bulle finale au fur et à mesure
- **Fallback hors-ligne** : si la connexion SSE casse, l'animation passe à « L'Oracle finalise hors-ligne… » et l'app récupère la réponse via polling sur `GET /api/ask/:questionId` (jusqu'à 45s).

## Que faire si la réponse semble fausse

1. Vote pouce bas + commentaire détaillé.
2. Va sur `/admin/feedback`, filtre par ton jeu + vote down, ouvre le détail.
3. Clique "Copier (md)" pour avoir un dump markdown des diagnostics (chunks retrouvés, scores, HyDE, timings).
4. Si c'est un problème de retrieval (mauvais chunks), vérifie que le PDF est bien indexé (count chunks > 0) et que la question n'est pas trop floue.
5. Si c'est un problème de réponse Claude malgré bons chunks, l'Oracle a hallu — pas grand-chose à faire à part voter pour qu'il apprenne (le feedback alimente ton banc d'éval RAG).

## Limites

- 500 caractères max par question
- 5 turns d'historique pris en compte
- 1 image PNG injectée au max (pour limiter la latence vision)
- Heartbeat SSE toutes les 8s pour ne pas se faire timeout par NPM