# TTS Prompts Database

**Dernière mise à jour** : 07/11/2025

---

## Variables Dynamiques

Le TTS service remplace ces variables avant de parler :

- `{STREAK}` : Nombre de jours consécutifs
- `{LAST_SCORE}` : Score de la dernière session (X/3)
- `{CURRENT_TIME}` : 7h / 14h / 16h
- `{DAYS_SKIPPED}` : Nombre de jours skip consécutifs (si > 0)
- `{WORST_CARD}` : Carte la plus ratée récemment
- `{CONTEXT}` : Contexte actuel depuis couple_backlog

---

## Morning Prompts (7h00)

### Standard (si streak > 0)
- "Morning Alexis. Jour {STREAK} de ta streak. Qu'est-ce que Tingting a besoin aujourd'hui ?"
- "7h pile. Daily check time. Tu te rappelles ce qu'elle t'a dit hier ?"
- "Nouvelle journée, nouveau check. Think mode : qu'est-ce qui est important pour elle aujourd'hui ?"
- "Yo. Streak de {STREAK} jours. On continue ? Daily check."

### Encouragement (si streak > 3)
- "Putain, {STREAK} jours de suite ! Respect. Daily check quand même."
- "{STREAK} jours sans oublier. Tu vois que tu peux. Daily check."
- "Streak de {STREAK}. Tu commences à prouver que ça peut tenir. Go."

### Confrontation (si days_skipped > 0)
- "Alexis. Tu as skip {DAYS_SKIPPED} jours. On fait quoi maintenant ?"
- "{DAYS_SKIPPED} jours d'oubli. Encore ce pattern. Tu cliques ou tu continues à oublier ?"
- "Skip {DAYS_SKIPPED} jours. Tingting mérite mieux que ça. Daily check."

---

## Afternoon Prompts (14h00)

### Standard
- "Mid-day check. T'as été présent ce matin ?"
- "14h. Quick Tingting reality check. 2 minutes."
- "Pause code. Daily check time."
- "Afternoon nudge. T'as think à elle aujourd'hui ?"

### Contextuel (si contexte spécifique)
- "Quick reminder : {CONTEXT}. T'as pas oublié ?"
- "14h. Towel check ? {CONTEXT} ?"
- "Mid-day. Tu te rappelles : {CONTEXT} ?"

### Light (si déjà fait le morning check)
- "T'as déjà fait le morning check, juste un quick reminder."
- "Petit check rapide. Tout va bien avec Tingting ?"

---

## Evening Prep Prompts (16h00)

### Standard
- "16h. Elle rentre bientôt. T'as préparé quoi ?"
- "Pre-evening prep. Towel ? Autre chose ?"
- "Dernière chance avant le soir. Daily check ?"
- "Elle va rentrer. T'as think à elle aujourd'hui ?"

### Actionnable
- "16h pile. Checklist : Towel ? Plans pour ce soir ? Go."
- "Pre-evening. Qu'est-ce qu'elle attend de toi ce soir ?"
- "Prépare le terrain. Daily check before she's home."

### Confrontation douce (si skip morning + afternoon)
- "T'as skip 2 checks aujourd'hui. Au moins fais celui-là."
- "Dernière chance de la journée. Tu fais le check ou tu skip encore ?"

---

## Retry Prompts (10min après premier ignore)

### Retry 1 (après 10min)
- "Toujours là ? Daily check t'attend."
- "2ème tentative. Tu fais le check ou tu vas oublier ?"
- "Alexis. Clique. 2 minutes."

### Retry 2 (après 20min)
- "3ème fois que je te ping. C'est exactement le pattern d'oubli, non ?"
- "Tu m'ignores ou t'es vraiment pas là ?"
- "Encore là. Daily check. Maintenant."

### Retry 3+ (après 30min+)
- "Pattern d'évitement activé ? Daily check."
- "Tu skip volontairement ou tu procrastines ?"
- "Dernière tentative avant de logger ça comme skip."

---

## Special Occasion Prompts

### Après un conflit (détecté via couple_backlog récent)
- "Je vois qu'il y a eu un truc hier. On en parle au daily check ?"
- "Contexte tendu récemment. Daily check encore plus important."
- "Conflit récent détecté. C'est le moment parfait pour le check."

### Après plusieurs jours de succès
- "Putain, {STREAK} jours. Tu prouves que le système marche. Continue."
- "{STREAK} jours de suite, jamais vu ça. Respect. Daily check."
- "Streak de {STREAK}. Tingting voit sûrement la différence, non ?"

### Si carte spécifique ratée 3x
- "Tu oublies toujours {WORST_CARD}. On re-check ça aujourd'hui."
- "3ème fois que tu rates {WORST_CARD}. Pourquoi tu penses ?"
- "{WORST_CARD} - encore. Daily check pour fix ça."

### Weekend (optionnel, plus light)
- "Weekend check. Plus relax mais quand même. 1 question."
- "C'est le weekend, check light. 2 minutes max."
- "Weekend mode : juste un quick check pour maintenir la streak."

---

## Nuclear Option (si skip 3+ jours)

### Dernière warning
- "3 jours de skip. Si tu continues, j'envoie un screenshot à Tingting."
- "Pattern d'oubli confirmé. 3 jours. Tu fais quoi maintenant ?"
- "3 jours. C'est exactement ce que tu voulais éviter, non ?"

### Post-nuclear (si skip 5+ jours)
- "5 jours d'oubli. Le système a échoué ou tu veux pas vraiment changer ?"
- "Une semaine presque complète de skip. Red flag majeur, Alexis."
- "Tu as oublié pendant {DAYS_SKIPPED} jours. On arrête ou on recommence sérieusement ?"

---

## Prompts avec Humour (occasionnel)

### Light roast
- "Towel check... Oh wait, tu vas encore oublier ? 😏"
- "Daily check. Non, c'est pas une suggestion, c'est un ordre de ta future self."
- "Tu codes bien là, mais Tingting > ton code, non ?"
- "Break from League. Daily Tingting check. Priorités."

### Motivation
- "Tu grinds Anki pour le chinois, tu peux faire 2 min pour elle."
- "Tu as setup ce système toi-même. Prouve que cette fois c'est différent."
- "3ème système. Celui-là va tenir ou on arrête de se mentir ?"

---

## Configuration TTS

### Voix recommandée
- Windows TTS : "Microsoft David" (voix masculine, claire)
- Vitesse : 1.0x (normal)
- Volume : 70% (audible mais pas aggressif)

### Timing
- Attendre 1 seconde après apparition du popup avant de parler
- Si retry, varier légèrement le prompt pour pas être robotique
- Weekend : optionnel, peut être désactivé ou plus light

---

## Sélection de Prompt - Algorithme

```python
def select_prompt(check_time, streak, days_skipped, context):
    if days_skipped >= 5:
        return random.choice(NUCLEAR_PROMPTS_POST)
    elif days_skipped >= 3:
        return random.choice(NUCLEAR_PROMPTS_WARNING)
    elif days_skipped > 0:
        return random.choice(CONFRONTATION_PROMPTS[check_time])
    elif streak > 7:
        return random.choice(SPECIAL_SUCCESS_PROMPTS)
    elif context.has_recent_conflict():
        return random.choice(SPECIAL_CONFLICT_PROMPTS)
    else:
        return random.choice(STANDARD_PROMPTS[check_time])
```

---

## Notes d'Implémentation

- **Varier les prompts** : Ne jamais utiliser le même 2 jours de suite
- **Adapter au contexte** : Checker `couple_backlog/` pour recent context
- **Respecter le tone** : Direct mais pas agressif, confrontant mais pas méchant
- **Humour dosé** : Max 1 prompt humoristique par semaine
- **Nuclear option** : Vraiment last resort, utiliser avec parcimonie

---

## Prochaines Améliorations

- [ ] Ajouter prompts en chinois (motivation double)
- [ ] Générer prompts via Claude API pour plus de variété
- [ ] Adapter selon l'heure exacte (pas juste 7/14/16)
- [ ] Détecter si Tingting est à la maison (via context) et ajuster
