# Daily Check System v2 - Modulaire & Windows Startup

**Créé** : 21 décembre 2025
**Remplace** : `anki_tingting/` (obsolète depuis divorce 19 déc 2025)
**Objectif** : Système holistique de daily check sur 3 domaines clés de vie

---

## 🎯 Concept

**Problème** : Pattern d'oubli systémique identifié. Tu diagnostiques, crées des plans, puis **oublies que les plans existent**.

**Solution** :
1. **Modulaire** : Un fichier = une carte, facile d'ajouter de nouvelles questions
2. **Windows Startup** : Se lance automatiquement au boot (Task Scheduler OU Startup folder)
3. **Auto-spawn terminal** : Impossible d'ignorer - se lance à l'ouverture d'un terminal WSL
4. **3 catégories** : Chinois (2Q), Personal Life (2Q), Travail (2Q)
5. **Simple** : Pas de dépendances lourdes (pygame, edge_tts, etc.)

---

## 📁 Structure

```
daily_check/
├── cards/                           # Un fichier = une carte
│   ├── chinese_vocab.md             # Vocab/grammaire chinois
│   ├── chinese_practice.md          # Pratique active chinois
│   ├── life_rules.md                # Discipline quotidienne
│   ├── learning.md                  # Apprentissage non-tech
│   ├── freelance.md                 # CRITIQUE - Bangkok prep
│   └── projects.md                  # Projets perso + skills
│
├── .state.json                      # État système (streak, last check)
├── daily_sessions.md                # Log de toutes les sessions
├── daily_check.log                  # Logs techniques (triggers)
│
├── trigger_check.sh                 # Script appelé par Task Scheduler
├── bashrc_hook.sh                   # Hook à ajouter dans ~/.bashrc
├── start_daily_check.bat            # Alternative Startup folder
│
├── SETUP_TASK_SCHEDULER.md          # Instructions Task Scheduler
└── README.md                        # Ce fichier
```

---

## 🔄 Comment Ça Marche

### **1. Trigger automatique (3x par jour)**

**Option A : Task Scheduler (Recommandé)**
```
07:00, 14:00, 21:00 → Task Scheduler lance trigger_check.sh
    ↓
Script vérifie si déjà fait aujourd'hui (.state.json)
    ↓
Si non fait → Crée flag file (~/.daily_check_pending)
    ↓
Flag contient la période (morning/afternoon/evening)
```

**Option B : Startup Folder (Plus simple)**
```
Windows Boot → start_daily_check.bat démarre
    ↓
Boucle infinie : trigger toutes les heures
    ↓
Même logique que Task Scheduler
```

### **2. Auto-spawn à l'ouverture terminal**

```
Tu ouvres Windows Terminal (WSL)
    ↓
~/.bashrc détecte ~/.daily_check_pending
    ↓
Affiche : "🔔 DAILY CHECK EN ATTENTE (morning)"
    ↓
Countdown 3 secondes (Ctrl+C pour annuler)
    ↓
Auto-lance : claude "daily check"
    ↓
Flag file supprimé après exécution
```

### **3. Exécution du quiz (Claude Code)**

```
Claude lit tous les fichiers cards/*.md
    ↓
Parse frontmatter (category, priority, enabled)
    ↓
Filtre enabled=true uniquement
    ↓
Sélectionne 6 cartes (2 par catégorie si possible)
    ↓
Pose les 6 questions
    ↓
Donne feedback (✅/⚠️/❌)
    ↓
Log session dans daily_sessions.md
    ↓
Met à jour .state.json (streak, last_check_date)
```

---

## 🚀 Setup (Première Fois)

### **Étape 1 : Installer jq (si pas déjà fait)**
```bash
sudo apt install jq
```

### **Étape 2 : Ajouter le hook dans ~/.bashrc**

Ouvre `~/.bashrc` :
```bash
nano ~/.bashrc
```

Ajoute à la fin du fichier :
```bash
# Daily Check Auto-Spawn Hook
FLAG_FILE="$HOME/.daily_check_pending"
DAILY_CHECK_DIR="/mnt/e/Users/Alexis Trouvé/Documents/Projets/couple_matters/daily_check"

if [ -f "$FLAG_FILE" ]; then
    PERIOD=$(cat "$FLAG_FILE" 2>/dev/null || echo "unknown")
    echo ""
    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
    echo "🔔 DAILY CHECK EN ATTENTE ($PERIOD)"
    echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
    echo ""
    echo "Le daily check va se lancer automatiquement dans 3 secondes..."
    echo "(Appuie sur Ctrl+C pour annuler)"
    echo ""
    sleep 3
    cd "$DAILY_CHECK_DIR"
    claude "daily check"
    rm -f "$FLAG_FILE"
    echo ""
    echo "✅ Daily check terminé. Flag file supprimé."
    echo ""
fi
```

Sauvegarde (Ctrl+O, Enter, Ctrl+X) et recharge :
```bash
source ~/.bashrc
```

### **Étape 3 : Setup Windows Startup**

**Option A : Task Scheduler (Recommandé)**
- Suis les instructions dans `SETUP_TASK_SCHEDULER.md`
- Triggers : 07:00, 14:00, 21:00 (3x par jour)

**Option B : Startup Folder (Plus simple)**
1. Copie `start_daily_check.bat`
2. Colle dans : `C:\Users\[User]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup`
3. Redémarre le PC pour tester

### **Étape 4 : Tester le système**

Lance manuellement le trigger :
```bash
cd "/mnt/e/Users/Alexis Trouvé/Documents/Projets/couple_matters/daily_check"
./trigger_check.sh
```

Vérifie que le flag est créé :
```bash
cat ~/.daily_check_pending
```

Ouvre un nouveau terminal → Le hook devrait se déclencher automatiquement.

---

## 🃏 Format des Cartes

Exemple : `cards/freelance.md`

```markdown
---
category: travail
priority: critical
frequency: daily
enabled: true
---

# Question
As-tu avancé sur le freelance/clients payants aujourd'hui ?

# Answer Guide
- Rien fait = ❌
- Setup/préparation seulement = ⚠️
- Action concrète (profil, postulation, travail client) = ✅

# Notes
Bangkok dans 32 jours. Tu DOIS avoir des clients AVANT d'arriver.
Le freelance est ta PRIORITÉ #1 jusqu'à revenu stable.
```

**Champs frontmatter** :
- `category` : chinois | personal | travail
- `priority` : low | medium | high | critical
- `frequency` : daily | every_2_days | weekly
- `enabled` : true | false

---

## ➕ Ajouter une Nouvelle Carte

1. Créer `cards/nouvelle_carte.md`
2. Copier le format ci-dessus
3. Remplir frontmatter et sections
4. C'est tout ! Sera détectée automatiquement

**Exemple** : Carte pour suivi budget Bangkok
```bash
nano cards/budget_bangkok.md
```

```markdown
---
category: personal
priority: high
frequency: daily
enabled: true
---

# Question
As-tu suivi ton budget aujourd'hui ? (dépenses trackées, pas de gaspillage)

# Answer Guide
- Dépenses non trackées = ❌
- Trackées mais dépassement budget = ⚠️
- Tout tracké + dans le budget = ✅

# Notes
Budget Bangkok : 1550€ pour 60 jours.
Chaque euro compte. Pas de marge d'erreur.
```

---

## 📊 Consulter les Stats

**Voir streak actuelle** :
```bash
cat .state.json | jq
```

**Voir dernière session** :
```bash
tail -50 daily_sessions.md
```

**Voir logs techniques** :
```bash
tail -20 daily_check.log
```

---

## 🔧 Maintenance

### **Désactiver temporairement une carte**
```bash
nano cards/learning.md
# Changer enabled: true → enabled: false
```

### **Modifier priorité d'une carte**
```bash
nano cards/freelance.md
# Changer priority: high → priority: critical
```

### **Arrêter le système temporairement**
```bash
# Supprimer le flag file
rm ~/.daily_check_pending

# Désactiver Task Scheduler (voir SETUP_TASK_SCHEDULER.md)
```

---

## 🐛 Troubleshooting

**Le hook ne se déclenche pas** :
- Vérifie que ~/.bashrc contient le hook
- Vérifie que le flag file existe : `ls -la ~/.daily_check_pending`
- Teste manuellement : `bash -l`

**Trigger ne crée pas le flag** :
- Vérifie que jq est installé : `jq --version`
- Vérifie les logs : `cat daily_check.log`
- Vérifie Task Scheduler (voir SETUP_TASK_SCHEDULER.md)

**Claude ne trouve pas les cartes** :
- Vérifie le chemin : `ls -la cards/*.md`
- Vérifie frontmatter YAML valide
- Vérifie `enabled: true`

**Permission denied sur trigger_check.sh** :
```bash
chmod +x trigger_check.sh
```

---

## ✅ Avantages vs Ancien Système

| Ancien (anki_tingting) | Nouveau (daily_check) |
|------------------------|----------------------|
| ❌ Python service compliqué | ✅ Simple bash + Task Scheduler |
| ❌ Dépendances lourdes | ✅ Juste bash + jq |
| ❌ Cartes hardcodées | ✅ Modulaire (1 fichier = 1 carte) |
| ❌ Crash silencieux | ✅ Robuste (flag file + retry) |
| ❌ Facile à ignorer | ✅ Auto-spawn terminal |
| ❌ Centré Tingting only | ✅ Holistique (3 domaines) |

---

## 🎯 Objectifs

**Semaine 1** :
- [ ] Streak de 5+ jours
- [ ] Aucun skip
- [ ] Spawn fiable

**Mois 1** :
- [ ] Streak de 20+ jours
- [ ] Amélioration visible (freelance, chinois)
- [ ] Au moins 2 cartes perso ajoutées

**Long terme** :
- [ ] Habitude quotidienne (5 min/jour)
- [ ] Impact visible sur discipline/productivité
- [ ] Clients freelance actifs avant Bangkok (22 jan)

---

## ⚠️ CRITIQUE

**Ce système est un test de ta capacité à tenir tes engagements.**

Bangkok dans 32 jours. Tu as besoin de :
- Discipline (life rules)
- Chinois (survie + opportunités)
- Freelance (revenu critique)

Si ce système ne tient pas, c'est un red flag sur ta capacité à exécuter.

**Donc : Prends ce système au sérieux. 5 minutes par jour. C'est pas beaucoup demander.**

---

**Prochaine session prévue** : Dès que tu ouvres un terminal après setup !

**Status** : ✅ SYSTÈME OPÉRATIONNEL
