# Tingting Guardian - Daily Check System **Créé** : 07/11/2025 **Raison** : Pattern d'oubli systémique identifié (3ème système oublié) **Objectif** : Maintenir l'attention quotidienne sur Tingting via spaced repetition + TTS reminders --- ## 🎯 Concept **Problème** : Alexis diagnostique, crée des plans, puis **oublie que les plans existent**. **Solution** : 1. **Claude = Anki vivant** - Quiz quotidien via conversation 2. **TTS Service Windows** - T'interpelle vocalement plusieurs fois par jour 3. **Tracking rigoureux** - Impossible d'oublier sans que ce soit visible --- ## 📁 Structure ``` anki_tingting/ ├── README.md # Ce fichier ├── card_database.md # Base de cartes Anki (questions/réponses) ├── daily_sessions.md # Log de toutes les sessions ├── prompts_database.md # Phrases TTS contextualisées ├── tingting_guardian_service.py # Service Windows TTS └── .state.json # État du système (streak, skip, etc.) ``` --- ## 🚀 Quick Start ### 1. Setup Python Dependencies ```bash pip install pyttsx3 pywin32 schedule anthropic python-dotenv ``` ### 2. Configuration (Optionnel) Créer `.env` dans le repo root si tu veux l'intégration Claude API : ``` ANTHROPIC_API_KEY=your_key_here ``` **Note** : Sans API key, le système ouvre juste le browser Claude.ai ### 3. Test Immédiat ```bash cd anki_tingting python tingting_guardian_service.py test ``` Ça va : - Afficher un popup avec TTS - Te demander de faire le check - Logger la session ### 4. Run en Background ```bash python tingting_guardian_service.py ``` Ou mieux : **Installer comme service Windows** (voir [Installation Service](#installation-service) ci-dessous) --- ## 💡 Comment Ça Marche ### Daily Flow **7h00, 14h00, 16h00** : 1. 🔍 Service check si tu es devant le PC (idle < 5min) 2. 🔊 TTS te parle : "Yo Alexis, daily check..." 3. 🪟 Popup apparaît avec 3 boutons : - ✅ **Faire le Check** → Ouvre Claude - ⏰ **Snooze 10min** → Retry - ❌ **Skip** → Logged comme absence **Si tu ignores** : Retry toutes les 10min (max 6x = 1 heure) **Si tu cliques "Faire le Check"** : 1. Ouvre Claude.ai (ou Claude Code terminal) 2. Tu dis "daily check" 3. Je te quiz avec 3 questions depuis `card_database.md` 4. Je donne feedback + log dans `daily_sessions.md` --- ## 🎴 Card System ### Types de Cartes Voir `card_database.md` pour la liste complète. Exemples : **CORE-001** : Pourquoi Tingting dit que tu "think" pas ? - **Difficulté** : Hard - **Fréquence** : Daily (jusqu'à maîtrisé) **ACTION-001** : Towel de Tingting - **Difficulté** : Medium - **Fréquence** : Every 2-3 days **ACTION-002** : Feedback honnête quand elle fait des trucs wrong - **Difficulté** : Hard (CRITICAL) - **Fréquence** : Daily ### Ajouter Une Carte Edit `card_database.md` et ajoute : ```markdown ### Card #X - [Nom] **ID** : CATEGORY-XXX **Question** : [Question] **Answer** : [Réponse complète] **Tags** : tags, séparés, par, virgule **Difficulty** : Easy / Medium / Hard **Frequency** : Daily / Every 2-3 days / Weekly **Created** : [Date] **Last Review** : Never **Success Rate** : N/A **Times Failed** : 0 **Notes** : [Pourquoi c'est important] ``` --- ## 📊 Tracking & Stats ### Daily Reality Check Chaque soir à **22h00**, alarm pour ouvrir `DAILY_REALITY_CHECK.md` et logger : - Anki fait ? Oui/Non - Alarm checkée ? Oui/Non - Action concrète pour Tingting ? - Streak actuelle ### Fichiers de Log **`daily_sessions.md`** : - Log de chaque session - Score (X/3) - Streak - Notes **`.state.json`** : - Streak actuelle - Last check date - Days skipped ### Stats Hebdomadaires Calculées automatiquement dans `daily_sessions.md` : - Total sessions - Average score - Longest streak - Most failed card --- ## 🔧 Installation Service ### Option A : NSSM (Recommandé) 1. **Download NSSM** : https://nssm.cc/download 2. **Install service** : ```cmd nssm install TingtingGuardian ``` 3. **Configure** : - Path: `C:\Python3X\python.exe` - Startup directory: `[chemin vers couple_matters]` - Arguments: `anki_tingting\tingting_guardian_service.py` - Startup type: **Automatic** 4. **Start** : ```cmd nssm start TingtingGuardian ``` ### Option B : Task Scheduler 1. Ouvrir **Task Scheduler** 2. **Create Task** : - Name: `Tingting Guardian` - Trigger: **At startup** - Action: **Start program** - Program: `python.exe` - Arguments: `[full path to script]` - Conditions: Uncheck "Start only if on AC power" ### Option C : Pyinstaller (Executable) ```bash pip install pyinstaller pyinstaller --onefile --noconsole tingting_guardian_service.py ``` Puis use NSSM avec le `.exe` --- ## 🎙️ TTS Customization ### Changer la Voix Edit dans `tingting_guardian_service.py` : ```python engine = pyttsx3.init() voices = engine.getProperty('voices') engine.setProperty('voice', voices[0].id) # 0 = Male, 1 = Female ``` ### Changer les Heures de Check Edit `CHECK_TIMES` dans le script : ```python CHECK_TIMES = ["07:00", "14:00", "16:00"] # Modifie comme tu veux ``` ### Désactiver le Weekend ```python import datetime def should_run_today(): return datetime.datetime.now().weekday() < 5 # Lundi-Vendredi only # Dans main(): if should_run_today(): schedule_checks() ``` --- ## 🧪 Testing ### Test Immédiat (sans attendre l'heure) ```bash python tingting_guardian_service.py test ``` ### Test d'une Carte Spécifique Ouvre Claude et dis : ``` Test card CORE-001 ``` Je vais te poser juste cette question. ### Vérifier l'État Actuel ```bash python -c "from tingting_guardian_service import state; print(f'Streak: {state.streak}, Skipped: {state.days_skipped}')" ``` --- ## 🔴 Red Flags & Alerts Le système track automatiquement : 🚩 **Skip 2 jours** → Prompt de rappel gentle 🚩 **Skip 3+ jours** → Confrontation socratique 🚩 **Skip 5+ jours** → Nuclear option (screenshot à Tingting ?) 🚩 **Même carte ratée 3x** → Flagged pour attention spéciale 🚩 **Score déclinant** → Confrontation sur le pattern --- ## 📝 Daily Check Protocol ### Quand Tu Dis "daily check" Je réponds **immédiatement** avec : ```markdown 🎯 **Daily Tingting Check - [DATE]** **Question 1/3** : [Question from card database] → [Attend ta réponse] **Question 2/3** : [Question contextualisée] → [Attend ta réponse] **Question 3/3** : [Question sur action concrète] → [Attend ta réponse] --- **Feedback** : - Q1 : ✅/⚠️/❌ + Explication - Q2 : ✅/⚠️/❌ + Explication - Q3 : ✅/⚠️/❌ + Explication **Score aujourd'hui** : X/3 **Streak** : X jours **Observation** : [Pattern / Encouragement / Confrontation] ``` ### Spaced Repetition **Si réponse correcte** : - Easy card : +7 jours - Medium card : +3 jours - Hard card : +1 jour **Si réponse incorrecte** : - Review demain (reset) --- ## ⚙️ Configuration Avancée ### Intégration Claude API (Optionnel) Pour avoir le quiz **directement dans le popup** au lieu d'ouvrir le browser : 1. Get API key : https://console.anthropic.com/ 2. Créer `.env` : ``` ANTHROPIC_API_KEY=sk-ant-... ``` 3. Uncomment dans le script la partie API integration ### Notification Tingting (Nuclear Option) Si skip 5+ jours, envoyer screenshot à Tingting : ```python def send_to_tingting(): # Option 1: Email # Option 2: WeChat API (si disponible) # Option 3: Screenshot + clipboard (manuel) pass ``` --- ## 🐛 Troubleshooting ### "Module not found: pyttsx3" ```bash pip install pyttsx3 ``` ### TTS ne parle pas - Vérifie que les speakers sont pas muted - Test : `python -c "import pyttsx3; e = pyttsx3.init(); e.say('test'); e.runAndWait()"` ### Popup n'apparaît pas - Vérifie que Python a les permissions - Run en admin si nécessaire ### Service ne démarre pas au boot - Vérifie le Task Scheduler / NSSM config - Check les logs Windows Event Viewer ### "Can't detect user presence" - Vérifie que `pywin32` est installé - Teste : `python -c "import win32api; print(win32api.GetLastInputInfo())"` --- ## 📚 Resources - **CLAUDE.md** : Protocol complet pour Claude - **couple_backlog/07_novembre_2025.md** : Origine de ce système - **DAILY_REALITY_CHECK.md** : Tracking manuel backup --- ## ⚠️ CRITIQUE **Ce système est un test de la capacité d'Alexis à tenir ses engagements.** Si ce système ne tient pas : - ❌ C'est un red flag majeur pour la relation - ❌ Ça prouve que le pattern d'oubli est structurel - ❌ Ça questionne la viabilité long-terme du couple **Donc : Prends ce système au sérieux. C'est pas juste un gadget.** --- ## 🎯 Next Steps 1. [ ] Setup le service (test mode d'abord) 2. [ ] Run pendant 1 semaine 3. [ ] Analyser les stats (success rate, cards difficiles) 4. [ ] Ajuster les prompts/heures si nécessaire 5. [ ] Montrer les logs à Tingting (transparency) **Prochaine session prévue** : 08/11/2025 à 07:00 --- **"On sait tous les deux ce qui va arriver."** Prouve que cette fois c'est différent.