- Add hybrid deployment modes: local_dev (MVP) and production_pwa (optional) - Integrate WarFactory engine reuse with hot-reload 0.4ms - Define multi-target compilation strategy (DLL/SO/WASM) - Detail both deployment modes with cost analysis - Add progressive roadmap: Phase 1 (local), Phase 2 (POC WASM), Phase 3 (cloud) - Budget clarified: $10-20/mois (local) vs $13-25/mois (cloud) - Document open questions for technical validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
49 KiB
Cahier des Charges - AISSIA (AI Smart Schedule & Interactive Assistant)
Version: 0.4 - Architecture Hybride Proposée Date: 27 octobre 2025 Auteur: Alexis Trouvé
1. Contexte et Problématique
1.1 Besoin Utilisateur
Difficulté majeure dans la gestion du temps et des priorités, caractérisée par :
- Hyperfocus : Incapacité à stopper une tâche une fois démarrée (travail ou jeu vidéo)
- Absence de limites claires : Continuer jusqu'à épuisement physique ("body tell me I can't")
- Multi-tâches impossibles : Difficulté à gérer 2-3 activités différentes dans une journée
- Régulation de l'attention défaillante : Besoin d'un système externe pour gérer les transitions
1.2 Solution Proposée
Assistant personnel intelligent et proactif qui :
- Pense le planning en arrière-plan
- Intervient de manière proactive (pas seulement réactif)
- S'adapte aux patterns comportementaux de l'utilisateur
- Force les transitions quand nécessaire
2. Objectifs du Projet
2.1 Objectifs Fonctionnels
- Planning Intelligent : IA qui organise automatiquement les tâches selon priorités et contraintes
- Assistant Proactif : Détection d'hyperfocus et intervention automatique
- Tracking Automatique : Suivi du temps passé sur chaque activité
- Interaction Naturelle : Dialogue avec l'IA pour ajuster le planning en temps réel
- Notifications Intelligentes : Rappels adaptatifs basés sur le contexte
2.2 Objectifs Techniques
- Dev Windows-first : Développement et debug 100% sur Windows avec WarFactory engine
- Déploiement flexible : Mode local (DLL) OU mode cloud (WASM + PWA) selon besoin
- Hot-reload dev : 0.4ms iteration en mode local (WarFactory)
- Cross-platform automatique : Deploy sur tous OS via Docker/WASM (sans effort dev)
- Mobile optionnel : PWA installable (Phase 2+, pas obligatoire MVP)
- Offline-first : Fonctionne en local (SQLite) ou avec sync cloud optionnel
- Performance : Native en local (DLL), quasi-native en WASM (~2x plus lent acceptable)
- Privacy : Mode local = données jamais uploadées, mode cloud = processing client-side
- Coûts optimisés : $0 en mode local, $3-5/mois en mode cloud (70% processing client)
2.3 Objectifs Business
- Usage personnel : Version pour usage propre en priorité
- Commercialisation : Potentiel de monétisation futur (Freemium)
- Itérations courtes : Cycles de développement de 1-2 semaines
- Versions fonctionnelles : Chaque itération doit produire une version utilisable
3. Fonctionnalités
3.1 MVP - Phase 1 (Semaines 1-2)
Gestion des Tâches
- ✅ Création/édition/suppression de tâches
- ✅ Priorités (Haute/Moyenne/Basse)
- ✅ Durée estimée
- ✅ Deadlines optionnelles
- ✅ Tags/catégories
Tracking du Temps
- ✅ Timer manuel (start/stop)
- ✅ Historique du temps passé par tâche
- ✅ Vue journalière/hebdomadaire
IA Basique
- ✅ Suggestions de planning pour la journée
- ✅ Réorganisation des tâches selon priorités
- ✅ Estimation durée réaliste basée sur historique
Notifications
- ✅ Rappels de début de tâche
- ✅ Alertes de fin de tâche planifiée
- ✅ Notifications push sur tous les appareils
Authentification
- ✅ Inscription/connexion email/password
- ✅ Synchronisation multi-appareils
3.2 Phase 2 - IA Proactive (Semaines 3-4)
Détection d'Hyperfocus
- ⏳ Analyse du temps passé vs temps planifié
- ⏳ Détection de patterns anormaux (>2h sans pause)
- ⏳ Alertes progressives (douce → insistante → forcée)
Assistant Conversationnel
- ⏳ Chat avec l'IA pour ajuster le planning
- ⏳ Commandes vocales (optionnel)
- ⏳ Suggestions contextuelles ("Tu devrais faire une pause")
Apprentissage des Patterns
- ⏳ Analyse des heures productives
- ⏳ Détection des activités "dangereuses" (jeux vidéo, etc.)
- ⏳ Adaptation du planning selon l'état de fatigue
Interventions Proactives
- ⏳ Blocage d'applications (optionnel, sur demande)
- ⏳ Rappels de breaks forcés
- ⏳ Réorganisation automatique si dérive détectée
3.3 Phase 3 - Fonctionnalités Avancées (Semaines 5+)
Intelligence Contextuelle
- 🔮 Détection automatique d'activité (via tracking d'apps)
- 🔮 Prédiction des risques d'hyperfocus
- 🔮 Suggestions de planning optimal selon l'énergie
Intégrations
- 🔮 Calendrier (Google, Outlook)
- 🔮 Outils de productivité (Notion, Todoist)
- 🔮 Tracking d'activité (RescueTime, ActivityWatch)
Gamification (Optionnel)
- 🔮 Système de points/récompenses
- 🔮 Streaks (jours consécutifs avec planning respecté)
- 🔮 Achievements
Analytics
- 🔮 Rapports hebdomadaires/mensuels
- 🔮 Visualisations de productivité
- 🔮 Insights IA sur les habitudes
4. Architecture Technique
4.1 Proposition Architecturale : Architecture Hybride WarFactory + WASM
PROPOSITION ARCHITECTURALE : AISSIA pourrait réutiliser l'architecture modulaire WarFactory avec compilation multi-target optionnelle (DLL/SO/WASM).
⚠️ IMPORTANT - Phases d'implémentation :
- Phase 1 (local_dev) = OBLIGATOIRE : Cible principale MVP avec WarFactory DLL Windows uniquement
- Phase 2 (POC WASM) = VALIDATION : Tester faisabilité avant engagement
- Phase 3 (production_pwa) = CONDITIONNELLE : Seulement si Phase 2 validée ET besoin justifié
Concept Révolutionnaire : Meilleur des Deux Mondes
MÊME code C++ (IModule WarFactory)
↓ CMake multi-target
├─ monitoring.dll (Dev Windows local + Hot-reload 0.4ms)
├─ monitoring.so (Serveur Linux Docker - Phase 3)
└─ monitoring.wasm (Client PWA browser - Phase 3)
UN SEUL CODE, TROIS DÉPLOIEMENTS !
Architecture Hybride Proposée (À valider par POC) :
- 🎯 Réutilisation WarFactory : Interfaces IModule/IEngine/IIO/ITaskScheduler inchangées (validé)
- 🎯 Développement 100% Windows : Visual Studio 2022, DLL, ImGui, hot-reload 0.4ms (validé)
- ⚠️ Modules C++ écrits UNE FOIS : Compilés en DLL (dev), SO (serveur), WASM (browser) (hypothétique - à tester)
- ⚠️ Déploiement flexible : gameconfig.json bascule entre mode
local_devetproduction_pwa(hypothétique) - ✅ MVP = Mode Local OBLIGATOIRE : aissia-core.exe + DLL + ImGui + SQLite ($0 coût)
- ⚠️ Production optionnelle CONDITIONNELLE : React PWA + WASM client + Docker serveur ($3-5/mois) - SI Phase 2 validée
- ⚠️ Cross-platform automatique : Docker + WASM = tourne partout sans effort (hypothétique - complexité à évaluer)
- ⚠️ Mobile optionnel : PWA installable (Phase 3+, SEULEMENT si besoin validé)
Raisons de cette proposition :
- ✅ Réutilisation code existant : Économie 3-4 semaines dev (WarFactory validé)
- ✅ Hot-reload ultra-rapide : 0.4ms en mode local_dev (DLL validé)
- ✅ Types stricts C++ : Pas de "wildcode", headers et interfaces bien définis (validé)
- ✅ Modularité : Chaque fonctionnalité = module isolé (200-300 lignes, validé WarFactory)
- ✅ Évolution progressive : Commencer local ($0), décider cloud plus tard (stratégie validée)
- ⚠️ Performance maximale : Native en local (validé), quasi-native en WASM (hypothétique - à benchmarker)
- ✅ Développement parallèle : Multiples modules développés simultanément (validé WarFactory)
- ✅ Coûts minimaux Phase 1 : $0 en MVP garanti
- ⚠️ Pipeline flexible hypothétique : Un seul codebase, multiples déploiements (complexité à évaluer)
4.2 Modes de Déploiement
AISSIA propose DEUX modes de déploiement distincts, potentiellement sélectionnables via gameconfig.json :
⚠️ Clarification priorités :
- Mode 1 (local_dev) = OBLIGATOIRE : Cible MVP, sera implémenté en Phase 1
- Mode 2 (production_pwa) = OPTIONNEL : Sera considéré SEULEMENT si Phase 2 (POC WASM) validée
Mode 1 : local_dev (MVP - Phase 1 OBLIGATOIRE)
Architecture :
┌─────────────────────────────────────┐
│ Windows PC │
│ ┌───────────────────────────────┐ │
│ │ aissia-core.exe │ │
│ │ (WarFactory Engine) │ │
│ │ ├─ IEngine (DebugEngine) │ │
│ │ ├─ IModuleSystem (Sequential)│ │
│ │ └─ IIO (IntraIO) │ │
│ └───────────────────────────────┘ │
│ ┌───────────────────────────────┐ │
│ │ Modules DLL │ │
│ │ ├─ monitoring.dll │ │
│ │ ├─ scheduler.dll │ │
│ │ ├─ ai.dll │ │
│ │ ├─ voice.dll │ │
│ │ ├─ storage.dll │ │
│ │ └─ ui-imgui.dll │ │
│ └───────────────────────────────┘ │
│ SQLite local (aissia.db) │
└─────────────────────────────────────┘
Caractéristiques :
- ✅ Hot-reload : 0.4ms (750,000x plus rapide que rebuild complet)
- ✅ UI : Dear ImGui (C++, intégré WarFactory)
- ✅ Storage : SQLite local (aissia.db)
- ✅ Coût : $0 (tout local)
- ✅ Privacy : Données jamais uploadées (sauf appels Claude API)
- ✅ Performance : Native C++ (pas de WASM overhead)
- ✅ Development : Visual Studio 2022, debugging natif
Utilisation :
// gameconfig.json
{
"active_mode": "local_dev"
}
Mode 2 : production_pwa (Phase 3 - CONDITIONNEL, après validation Phase 2)
Architecture :
┌────────────────────────┐ ┌───────────────────────────────┐
│ CLIENT (PWA - Vercel) │ │ SERVEUR (fly.io) │
│ ┌────────────────────┐ │ │ ┌───────────────────────────┐ │
│ │ React + TypeScript │ │ │ │ Docker Linux │ │
│ │ - Dashboard UI │ │ │ │ Backend C++ │ │
│ │ - Task management │ │ │ │ ├─ auth.so │ │
│ └────────────────────┘ │ │ │ ├─ sync.so │ │
│ ┌────────────────────┐ │ │ │ ├─ ai-proxy.so │ │
│ │ WASM Modules │ │ │ │ └─ monitoring.so │ │
│ │ ├─ scheduler.wasm │ │ │ │ PostgreSQL │ │
│ │ ├─ voice.wasm │ │ │ └───────────────────────────┘ │
│ │ └─ storage.wasm │ │ │ Port: 8080 (WebSocket) │
│ └────────────────────┘ │ └───────────────────────────────┘
│ IndexedDB (cache) │ ▲
│ Service Worker │ │ WebSocket
└────────┬───────────────┘ │
│ │
└──────────────────────────────┘
Caractéristiques :
- ✅ UI : React moderne + Tailwind CSS
- ✅ Storage : Hybrid (IndexedDB client + PostgreSQL serveur)
- ✅ Coût : $3-5/mois (fly.io + Vercel gratuit)
- ✅ Mobile : PWA installable iOS/Android
- ✅ Scalable : 70% processing client = coûts serveur minimaux
- ✅ Cross-platform : Fonctionne sur tous devices
- ⚠️ Performance : WASM ~2x plus lent que C++ natif (acceptable)
Utilisation :
// gameconfig.json
{
"active_mode": "production_pwa"
}
4.3 Stack Technologique Détaillée
Développement (Windows - Les Deux Modes)
- IDE : Visual Studio 2022 / VSCode
- Compilateur :
- MSVC (Windows DLL)
- GCC/Clang (Linux SO via Docker)
- Emscripten (WASM browser)
- Build System : CMake (multi-target)
- Containerization : Docker Desktop (builds Linux SO)
- Version Control : Git + GitHub
- CI/CD : GitHub Actions
Mode local_dev - Modules C++ (DLL)
- Core Engine : WarFactory (aissia-core.exe)
- IEngine (DebugEngine)
- IModuleSystem (SequentialModuleSystem)
- IIO (IntraIO pour communication locale)
- ICoordinationModule (charge gameconfig.json)
- Modules DLL :
monitoring.dll: Win32 API tracking apps (GetForegroundWindow)scheduler.dll: Algorithmes planning, détection procrastinationai.dll: Claude Haiku API integrationvoice.dll: SAPI TTS (Windows) + Whisper.cpp STTstorage.dll: SQLite local (aissia.db)ui-imgui.dll: Interface ImGui
- Base de données : SQLite local (aissia.db)
- Coût : $0 (tout local, sauf appels Claude API $10-20/mois)
Mode production_pwa - Backend Serveur (SO)
- Runtime : Docker Linux container (Alpine ou Ubuntu)
- Langage : C++20
- Modules Serveur (SO) :
auth.so: Authentification JWTsync.so: Synchronisation données PostgreSQLai-proxy.so: Proxy sécurisé pour Claude API (cache API key)monitoring.so: Tracking apps (optionnel, serveur dédié)websocket-server.so: API WebSocket pour clients PWA
- Base de données : PostgreSQL (fly.io managed)
- Déploiement : fly.io ($3-5/mois)
Mode production_pwa - Frontend Client (WASM)
- Framework : React 18 + TypeScript
- Build : Vite (hot-reload ultra-rapide)
- UI Library : Tailwind CSS + shadcn/ui
- State Management : Zustand ou Jotai (léger)
- Modules Client (WASM) :
scheduler.wasm: Algorithmes de planning (client-side)voice.wasm: TTS/STT via Web Speech APIstorage.wasm: Cache local IndexedDB
- Offline : Service Workers + IndexedDB
- Notifications : Web Push API
- Déploiement : Vercel (gratuit)
4.4 Modules C++ Partagés (Un Code, Trois Targets)
Concept Clé : Chaque module C++ implémente IModule de WarFactory et compile en 3 targets :
// modules/scheduler/src/SchedulerModule.cpp
// MÊME CODE pour DLL/SO/WASM !
class SchedulerModule : public IModule {
public:
json process(const json& input) override {
// Logique pure (200-300 lignes)
if (IsProcrastinating(input)) {
return {
{"event", "intervention_needed"},
{"urgency", "high"}
};
}
return {{"status", "ok"}};
}
void setConfiguration(const IDataNode& config,
IIO* io,
ITaskScheduler* scheduler) override {
m_io = io;
m_io->subscribe("task_changed", [this](const json& e) {
process(e);
});
}
json getHealthStatus() override {
return {{"status", "healthy"}};
}
void shutdown() override { /* cleanup */ }
private:
IIO* m_io = nullptr;
};
// ======== EXPORTS MULTI-TARGET ========
#ifdef _WIN32
// Export DLL Windows (dev local)
extern "C" __declspec(dllexport)
IModule* CreateModule() {
return new SchedulerModule();
}
#endif
#ifdef __linux__
// Export SO Linux (serveur Docker)
extern "C"
IModule* CreateModule() {
return new SchedulerModule();
}
#endif
#ifdef __EMSCRIPTEN__
// Export WASM (client browser)
#include <emscripten.h>
extern "C" {
EMSCRIPTEN_KEEPALIVE
const char* ProcessScheduler(const char* inputJson) {
static SchedulerModule module;
json input = json::parse(inputJson);
json result = module.process(input);
static std::string output = result.dump();
return output.c_str();
}
}
#endif
Compilation :
# modules/scheduler/CMakeLists.txt (extrait)
# Target 1: DLL (Windows)
add_library(scheduler MODULE src/SchedulerModule.cpp)
set_target_properties(scheduler PROPERTIES SUFFIX ".dll")
# Target 2: SO (Linux)
add_library(scheduler MODULE src/SchedulerModule.cpp)
set_target_properties(scheduler PROPERTIES SUFFIX ".so")
# Target 3: WASM (Browser)
add_executable(scheduler src/SchedulerModule.cpp)
set_target_properties(scheduler PROPERTIES SUFFIX ".wasm")
target_link_options(scheduler PRIVATE -s WASM=1)
Build Script :
# scripts/build-all.ps1
# Build DLL (dev Windows)
cmake -B build-windows -G "Visual Studio 17 2022"
cmake --build build-windows --config Release
# Build SO (serveur Linux via Docker)
docker build -t aissia-backend -f docker/Dockerfile.backend .
# Build WASM (client browser via Emscripten)
emcmake cmake -B build-wasm
emmake make -C build-wasm
Résultat :
build-windows/modules/scheduler.dll (Dev local)
build-linux/modules/scheduler.so (Serveur Docker)
build-wasm/modules/scheduler.wasm (Client PWA)
Communication Client-Serveur
- Protocole : WebSocket (temps réel) + REST API (fallback)
- Format : JSON pour messages
- Events Pub/Sub :
- Client → Serveur :
task_created,user_action,sync_request - Serveur → Client :
ai_suggestion,sync_complete,notification
- Client → Serveur :
- Authentification : JWT tokens (localStorage client)
- Sécurité : HTTPS/WSS obligatoire, CORS configuré
4.5 Configuration gameconfig.json (Unifié)
Un seul fichier de configuration bascule entre les deux modes :
{
"deployment_modes": {
"local_dev": {
"enabled": true,
"description": "Dev Windows local avec hot-reload WarFactory",
"modules": [
{"name": "MonitoringModule", "type": "dll", "execution": "local"},
{"name": "SchedulerModule", "type": "dll", "execution": "local"},
{"name": "AIModule", "type": "dll", "execution": "local"},
{"name": "VoiceModule", "type": "dll", "execution": "local"},
{"name": "StorageModule", "type": "dll", "execution": "local"},
{"name": "UIModule", "type": "dll", "execution": "local"}
],
"io": "IntraIO",
"engine": "DebugEngine",
"ui": "ImGui",
"storage": "SQLite",
"cost": "$0"
},
"production_pwa": {
"enabled": false,
"description": "PWA React + WASM client + Serveur Docker",
"client_modules_wasm": [
{"name": "SchedulerModule", "file": "scheduler.wasm"},
{"name": "VoiceModule", "file": "voice.wasm"},
{"name": "StorageModule", "file": "storage.wasm"}
],
"server_modules_so": [
{"name": "AuthModule", "file": "auth.so"},
{"name": "SyncModule", "file": "sync.so"},
{"name": "AIProxyModule", "file": "ai-proxy.so"},
{"name": "MonitoringModule", "file": "monitoring.so"}
],
"io": "WebSocket",
"engine": "HighPerfEngine",
"ui": "React PWA",
"storage": "PostgreSQL + IndexedDB",
"cost": "$3-5/mois"
}
},
"active_mode": "local_dev"
}
Bascule entre modes :
// Mode local (MVP - Phase 1 OBLIGATOIRE)
"active_mode": "local_dev"
// Mode production (Phase 3 CONDITIONNEL - seulement si Phase 2 validée)
"active_mode": "production_pwa"
4.6 Risques Techniques de l'Architecture Multi-Target
⚠️ ATTENTION : Cette section documente les risques identifiés de la compilation multi-target (DLL/SO/WASM).
Risques Majeurs Identifiés
| Risque | Impact | Probabilité | Mitigation Proposée |
|---|---|---|---|
| Complexité CMake multi-target | Élevé | Moyenne | Phase 2 POC validera faisabilité avant engagement |
| Maintenance 3 builds par module | Moyen | Élevée | Si trop complexe, rester mode local_dev uniquement |
| Performance WASM insuffisante | Élevé | Moyenne | Benchmarks Phase 2, accepter 2x overhead max |
| Debugging WASM complexe | Moyen | Élevée | Développer en DLL (facile), compiler WASM uniquement prod |
| Différences comportementales DLL/SO/WASM | Élevé | Faible | Tests automatisés sur 3 targets, CI/CD obligatoire |
| Emscripten limitations (threads, I/O) | Moyen | Moyenne | Design modules sans dépendances système (pure logic) |
| Overhead développement pipeline | Moyen | Élevée | Si Phase 2 montre complexité excessive, ABANDONNER multi-target |
Stratégie de Validation (Phase 2)
Avant tout engagement Phase 3, Phase 2 DOIT valider :
-
POC Technique (2-3 jours max) :
- Créer
HelloModule.cppminimal (IModule WarFactory) - Compiler en
.dll(Windows MSVC) - Compiler en
.wasm(Emscripten) - Tester intégration React + WASM
- Go/No-Go : Si POC échoue ou trop complexe, ARRÊTER ici
- Créer
-
Benchmark Performance (1 jour) :
- Mesurer overhead WASM vs DLL natif
- Algorithme test : SchedulerModule (calculs intensifs)
- Critère acceptation : WASM < 2x DLL
- Go/No-Go : Si WASM > 2x, reconsidérer architecture
-
Évaluation Complexité Build (1 jour) :
- Setup complet Emscripten + Docker
- Temps build 3 targets (DLL + SO + WASM)
- Critère acceptation : < 30 min build complet CI/CD
- Go/No-Go : Si build > 30 min, trop lent pour itérations
Scénarios de Sortie
Si Phase 2 invalide multi-target :
-
Option A (recommandée) : Rester 100% mode
local_dev- MVP fonctionnel DLL Windows uniquement
- $0 coût, 0.4ms hot-reload conservé
- Abandon PWA/WASM, focus usage perso desktop
-
Option B : Pivot vers architecture alternative
- Évaluer Electron (desktop cross-platform)
- Évaluer Flutter Desktop
- Réévaluer AlternativesAnalysis.md
⚠️ ACCEPTER L'ÉCHEC MULTI-TARGET :
Le mode local_dev seul reste une excellente solution pour le besoin initial (hyperfocus management personnel). L'architecture multi-target est un BONUS, pas une nécessité.
4.7 Architecture Système (Hypothétique - Si Phase 3)
┌───────────────────────────────────────────────────────────────┐
│ DÉVELOPPEMENT (Windows PC) │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Visual Studio 2022 / VSCode │ │
│ │ /modules/ │ │
│ │ ├─ SchedulerModule/ (C++) │ │
│ │ ├─ StorageModule/ (C++) │ │
│ │ ├─ VoiceModule/ (C++) │ │
│ │ └─ AIModule/ (C++) │ │
│ │ │ │
│ │ Build Scripts: │ │
│ │ → .dll (Windows dev local) │ │
│ │ → .so (Linux serveur via Docker) │ │
│ │ → .wasm (Browser client via Emscripten) │ │
│ └─────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────┘
│
│ Git Push
▼
┌───────────────────────────────────────────────────────────────┐
│ CI/CD (GitHub Actions) │
│ 1. Build backend Linux (Docker) │
│ 2. Build modules WASM (Emscripten) │
│ 3. Deploy backend → fly.io │
│ 4. Deploy PWA + WASM → Vercel │
└───────────────────────────────────────────────────────────────┘
│
┌────────────────┴────────────────┐
▼ ▼
┌────────────────────────┐ ┌───────────────────────────────┐
│ SERVEUR (fly.io) │ │ CLIENT (PWA - Vercel) │
│ Docker Linux │ │ React + TypeScript │
│ ┌──────────────────┐ │ │ ┌─────────────────────────┐ │
│ │ Backend C++ │ │ │ │ UI Components (React) │ │
│ │ - AuthModule.so │ │ │ │ - Dashboard │ │
│ │ - SyncModule.so │ │ │ │ - Task management │ │
│ │ - AIProxy.so │ │ │ │ - Settings │ │
│ │ - Monitoring.so │ │ │ └─────────────────────────┘ │
│ │ - WebSocket API │ │ │ │
│ └──────────────────┘ │ │ ┌─────────────────────────┐ │
│ PostgreSQL/SQLite │ │ │ WASM Modules (C++) │ │
│ Port: 8080 (WSS) │ │ │ - scheduler.wasm │ │
└────────┬───────────────┘ │ │ - voice.wasm │ │
│ │ │ - storage.wasm │ │
│ WebSocket │ │ (IndexedDB wrapper) │ │
└────────────────────┤ └─────────────────────────┘ │
│ │
│ Service Worker (offline) │
│ Web Push API (notifications) │
└────────────────────────────────┘
│
┌────────────────────┼────────────────────┐
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Windows PC │ │ iPhone │ │ Android │
│ (Chrome PWA) │ │ (Safari PWA) │ │ (Chrome PWA) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└────────────────────┴────────────────────┘
│
Tous accèdent à la même PWA
https://aissia.app
┌───────────────────────────────────────────────────────────────┐
│ SERVICES EXTERNES │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Claude Haiku 4.5 API (Anthropic) │ │
│ │ - Appelé UNIQUEMENT par le serveur (API key sécurisée) │ │
│ │ - Planning suggestions, conversational AI │ │
│ │ - Coût: ~$10-20/mois usage personnel │ │
│ └─────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────┘
4.8 Répartition Client/Serveur (Hypothétique - Phase 3 uniquement)
| Module | Où ? | Raison | Impact Coût Serveur |
|---|---|---|---|
| SchedulerModule | ✅ Client (WASM) | Algorithmes purs, pas d'I/O | Économie $$$ |
| VoiceModule | ✅ Client (Web Speech API) | TTS/STT natif browser | Économie $$$ |
| StorageModule | 🔀 Hybrid | IndexedDB client + PostgreSQL serveur | Économie $$ |
| UIModule | ✅ Client (React) | Rendu interface | Économie $$$ |
| AIModule | ❌ Serveur uniquement | Sécurité API key Claude | Nécessaire |
| AuthModule | ❌ Serveur uniquement | Sécurité credentials | Nécessaire |
| SyncModule | ❌ Serveur uniquement | Base de données centrale | Nécessaire |
| MonitoringModule | ❌ Serveur uniquement | Tracking apps desktop impossible en browser | Optionnel |
Résultat :
- 70% du processing sur client (gratuit pour l'utilisateur)
- Serveur minimaliste : Auth + Sync + AI proxy + Monitoring
- Coût serveur : $3-5/mois au lieu de $20-30/mois
4.9 Communication Client-Serveur (Hypothétique - Phase 3 uniquement)
WebSocket Events (Temps Réel) :
// Client PWA → Serveur
{
"event": "task_created",
"data": {
"task_id": "123",
"title": "Finir le CDC",
"priority": "high"
}
}
// Serveur → Client PWA
{
"event": "ai_suggestion",
"data": {
"message": "Tu devrais faire une pause, ça fait 2h que tu codes",
"urgency": "medium",
"actions": ["dismiss", "take_break"]
}
}
Module WASM (Client-side) :
// SchedulerModule.cpp (compilé en .wasm)
extern "C" {
// Exporté vers JavaScript
EMSCRIPTEN_KEEPALIVE
bool IsProcrastinating(const char* currentApp, const char* tasksJson) {
// Logique pure C++, tourne dans le browser
json tasks = json::parse(tasksJson);
return CheckProcrastination(currentApp, tasks);
}
}
// Frontend React appelle le module WASM
import schedulerModule from './wasm/scheduler.wasm';
const isProcrastinating = schedulerModule.IsProcrastinating(
'steam.exe',
JSON.stringify(currentTasks)
);
if (isProcrastinating) {
// Affiche alerte côté client, pas besoin du serveur !
showNotification('Retourne au travail !');
}
Avantages de cette architecture :
- ✅ Réactivité instantanée (pas de latence réseau)
- ✅ Fonctionne offline (modules WASM = autonomes)
- ✅ Coûts serveur minimaux
- ✅ Scalabilité : 1000 utilisateurs = même coût serveur
4.10 Modèle de Données (Simplifié)
User
- id, email, password_hash, created_at
- settings (JSON: notifications, ai_proactivity_level, etc.)
Task
- id, user_id, title, description
- priority (high/medium/low)
- estimated_duration, actual_duration
- deadline, status (todo/in_progress/done)
- tags[], category
TimeEntry
- id, user_id, task_id
- start_time, end_time, duration
- auto_tracked (boolean)
AIInteraction
- id, user_id, timestamp
- type (suggestion/alert/chat)
- context (JSON), ai_response
Schedule
- id, user_id, date
- planned_tasks[] (ordered list)
- ai_generated (boolean)
5. Contraintes et Exigences
5.1 Contraintes Techniques
- ✅ Dev Windows uniquement : Développement, debug, et tests 100% sur Windows
- ✅ Cross-platform automatique : Via Docker (serveur) et WASM (client)
- ✅ Mobile via PWA : Progressive Web App (pas d'app native Android/iOS)
- ✅ Performance : WASM ~2x plus lent que C++ natif (acceptable)
- ✅ Offline-first : Service Workers + IndexedDB + modules WASM autonomes
- ✅ Sécurité : JWT auth, HTTPS/WSS obligatoire, API keys serveur uniquement
- ✅ Pipeline stable : GitHub Actions (reproductible, pas de surprises)
5.2 Contraintes Budget
- 💰 Mode local_dev (MVP) : $0 hosting + $10-20/mois Claude API = $10-20/mois total
- 💰 Mode production_pwa (Phase 3) :
- Serveur fly.io : $3-5/mois
- Frontend Vercel : $0 (gratuit)
- Claude API : $10-20/mois
- Total : $13-25/mois
- 🎯 Optimisation production_pwa : 70% processing client → économie serveur massive
- 📊 Monétisation future : Freemium (gratuit: 50 requêtes IA/jour, client-side illimité)
5.3 Contraintes Développement
- 🔄 Itérations courtes : Cycles de 1-2 semaines
- ✅ Versions fonctionnelles : Chaque release doit être utilisable
- 🪟 Dev Windows-first : Zéro VM/émulateurs, tout sur Windows
- 🐋 Docker Desktop : Seul prérequis pour builds cross-platform
- 🧪 Tests : Jest (frontend), Google Test (backend C++)
- 📝 Documentation : README, architecture diagrams, module interfaces
- 🤖 CI/CD automatique : GitHub Actions (build + deploy automatique)
6. Planification (Roadmap)
⚠️ IMPORTANT - Structure des phases :
- Phase 0 + Phase 1 = OBLIGATOIRES : Cible MVP mode
local_dev - Phase 2 = VALIDATION : POC multi-target (Go/No-Go décision)
- Phase 3 = CONDITIONNELLE : Seulement SI Phase 2 validée
- Phase 4 = HYPOTHÉTIQUE : Dépend succès Phase 3
Phase 0 - Setup (Semaine 0) - OBLIGATOIRE
- Copier interfaces WarFactory (IModule, IEngine, IIO, ITaskScheduler, IDataTree)
- Structure projet modules/ (MonitoringModule/, SchedulerModule/, etc.)
- CMakeLists.txt pour DLL Windows (Phase 1 uniquement, SO/WASM Phase 2+)
- gameconfig.json initial (mode
local_devuniquement) - Scripts build Windows (build-dll.ps1)
- ⚠️ Setup Docker Desktop (OPTIONNEL - seulement si Phase 2)
- ⚠️ Setup Emscripten SDK (OPTIONNEL - seulement si Phase 2)
Phase 1 - MVP Local (Semaines 1-2) - OBLIGATOIRE
Objectif : Version locale fonctionnelle avec hot-reload WarFactory (mode local_dev DLL uniquement)
Core Engine :
- aissia-core.exe (WarFactory engine)
- IEngine (DebugEngine)
- IModuleSystem (SequentialModuleSystem)
- IIO (IntraIO)
- ICoordinationModule (charge gameconfig.json)
Modules DLL (Windows) :
- MonitoringModule.dll
- Win32 API (GetForegroundWindow)
- Tracking temps par application
- Publish event "app_changed"
- SchedulerModule.dll
- Planning algorithmes basiques
- Détection procrastination contextuelle
- Publish event "intervention_needed"
- AIModule.dll
- Claude Haiku 4.5 API integration
- Context building pour suggestions
- Subscribe "intervention_needed", publish "ai_response"
- VoiceModule.dll
- SAPI TTS (Windows text-to-speech)
- Whisper.cpp STT (speech-to-text local)
- Subscribe "ai_response", speak()
- StorageModule.dll
- SQLite local (aissia.db)
- CRUD tâches, historique, métriques
- UIModule-ImGui.dll
- Dear ImGui interface
- Dashboard planning
- Settings
Bénéfices Phase 1 :
- ✅ Hot-reload 0.4ms
- ✅ Développement ultra-rapide
- ✅ $0 coût (tout local)
- ✅ Dogfooding immédiat (usage perso)
- ✅ Interventions vocales proactives (besoin core)
Phase 2 - POC WASM (Semaines 3-4) - VALIDATION (Go/No-Go)
⚠️ CRITIQUE : Cette phase décide si Phase 3 est viable ou non.
Objectif : Valider faisabilité multi-target (WASM) + performance acceptable
⚠️ RÈGLE : Phase 1 DOIT être complétée et fonctionnelle AVANT Phase 2.
POC Expérimental :
- Compiler SchedulerModule.wasm (test WASM simple)
- Frontend React minimal (Vite + TypeScript)
- Intégrer scheduler.wasm dans React
- Tester performance WASM vs DLL (benchmark)
- Évaluer complexité build Emscripten
Validation Phase 2 (Go/No-Go) :
- ⚠️ Performance WASM acceptable pour scheduler ? (< 2x DLL)
- ⚠️ Complexité build supportable ? (< 30 min CI/CD)
- ⚠️ Debugging WASM pas trop problématique ?
- ⚠️ Intérêt réel mobile PWA validé par usage Phase 1 ?
🚦 Décision Go/No-Go :
- ✅ GO (Phase 3) : Si TOUS les critères validés ET besoin mobile confirmé
- ❌ NO-GO (Arrêt) : Si UN SEUL critère invalidé → Rester mode
local_devdéfinitif
⚠️ NO-GO n'est PAS un échec : Mode local_dev seul répond parfaitement au besoin initial.
Phase 3 - Production PWA (Semaines 5-8) - CONDITIONNELLE (Seulement si Phase 2 GO)
⚠️ ATTENTION : Cette phase n'existe QUE si Phase 2 validée.
Objectif : Déploiement cloud avec PWA React + WASM client
Backend Docker (Serveur SO) :
- auth.so (JWT authentication)
- sync.so (PostgreSQL synchronisation)
- ai-proxy.so (Claude API proxy, sécurise API key)
- websocket-server.so (API temps réel pour clients)
- Dockerfile backend (Alpine Linux)
- Deploy fly.io ($3-5/mois)
Frontend PWA React :
- UI complète (Tailwind + shadcn/ui)
- scheduler.wasm intégré
- voice.wasm (Web Speech API)
- storage.wasm (IndexedDB wrapper)
- Service Workers (offline)
- Web Push notifications
- PWA manifest (installable)
- Deploy Vercel (gratuit)
CI/CD GitHub Actions :
- Build multi-target automatique (DLL/SO/WASM)
- Deploy backend fly.io
- Deploy frontend Vercel
- Tests automatisés
Mode Dual Opérationnel :
- Développement Windows :
local_dev(DLL + ImGui + hot-reload) - Production :
production_pwa(WASM + React + Cloud)
Phase 4 - Optimisation & Monétisation (Semaines 9-12) - HYPOTHÉTIQUE (Dépend Phase 3)
- Système Freemium (rate limiting IA)
- Paiements Stripe (backend)
- Landing page marketing
- Beta publique (early access)
- Optimisations performance WASM
- Monitoring & observability (Sentry, Prometheus)
7. Risques et Mitigations
| Risque | Probabilité | Impact | Mitigation |
|---|---|---|---|
| Coût IA trop élevé | Moyenne | Élevé | Caching côté serveur, rate limiting, 70% processing client |
| Complexité WASM | Moyenne | Moyen | Commencer simple (scheduler.wasm), monter progressivement |
| Performance WASM insuffisante | Faible | Moyen | WASM ~2x C++ natif acceptable, fallback serveur possible |
| Docker/Emscripten setup difficile | Faible | Faible | Scripts d'installation automatiques, docs détaillées |
| Adoption utilisateur faible | Élevée | Élevé | Dogfooding (usage perso), beta privée, feedback loops courts |
| Problèmes de privacy | Faible | Critique | Processing client-side, JWT auth, HTTPS/WSS, pas de tracking |
| PWA pas assez "native" | Moyenne | Moyen | Web Push, Service Workers, install prompt, works offline |
| Hyperfocus sur le dev du projet | Élevée | Moyen | Utiliser l'app elle-même pour se contraindre 😅 |
8. KPIs de Succès
Phase 1 - MVP Local
- ✅ aissia-core.exe fonctionnel (WarFactory engine)
- ✅ 6 modules DLL opérationnels (monitoring, scheduler, ai, voice, storage, ui)
- ✅ Hot-reload 0.4ms validé
- ✅ Utilisation personnelle quotidienne (dogfooding)
- ✅ Réduction mesurable de l'hyperfocus (via tracking)
- ✅ Interventions vocales proactives fonctionnelles
Phase 2 - POC WASM (Validation)
- ⚠️ SchedulerModule.wasm compilé et fonctionnel
- ⚠️ Performance WASM acceptable (< 2x C++ natif)
- ⚠️ Intégration React + WASM validée
- ⚠️ Décision Go/No-Go pour Phase 3
Phase 3 - Production PWA (Si Phase 2 validée)
- 📊 PWA déployée et fonctionnelle (desktop + mobile)
- 📊 100 utilisateurs actifs (beta privée)
- 📊 80%+ retention hebdomadaire
- 📊 NPS > 50
- 💰 $500 MRR (objectif monétisation)
- 🚀 Coût serveur < $10/mois pour 100 users (grâce à WASM client-side)
- ⚡ PWA installée sur 50%+ des devices utilisateurs
9. Stack Finale Retenue
Architecture Hybride : WarFactory + Multi-Target (DLL/SO/WASM)
Concept Révolutionnaire :
MÊME code C++ (IModule WarFactory)
↓ CMake multi-target
├─ .dll (Dev Windows local - Hot-reload 0.4ms)
├─ .so (Serveur Linux Docker - Phase 3)
└─ .wasm (Client PWA browser - Phase 3)
Mode 1 : local_dev (Phase 1 MVP) :
- Dev : Windows 10/11, Visual Studio 2022, WarFactory engine
- Modules : DLL (monitoring, scheduler, ai, voice, storage, ui-imgui)
- UI : Dear ImGui (C++, intégré)
- Storage : SQLite local (aissia.db)
- Coût : $0 hosting + $10-20/mois Claude API
Mode 2 : production_pwa (Phase 3 - Optionnel) :
- Backend : C++ modules (.so), Docker Linux, fly.io ($3-5/mois)
- Frontend : React + TypeScript, WASM modules, Vercel (gratuit)
- Mobile : PWA installable (pas d'app native)
- Coût : $3-5/mois serveur + $10-20/mois Claude API
Pourquoi cette architecture hybride :
- ✅ Réutilisation WarFactory : Économie 3-4 semaines dev
- ✅ Hot-reload 0.4ms : Productivité maximale en dev local
- ✅ Types stricts C++ : Pas de wildcode, interfaces bien définies
- ✅ Évolution progressive : Commence local ($0), migre cloud si besoin
- ✅ Modules écrits UNE FOIS : Compilés en DLL/SO/WASM automatiquement
- ✅ Déploiement flexible : gameconfig.json bascule entre modes
- ✅ Coûts minimaux : $0 en MVP, $3-5/mois optionnel production
- ✅ Mobile optionnel : PWA Phase 3 si besoin validé
Évolution par phases :
- Phase 0 : Setup projet (interfaces WarFactory, CMakeLists multi-target)
- Phase 1 (MVP) : Mode
local_dev(DLL + ImGui + SQLite local) - Phase 2 (Validation) : POC WASM (test performance + faisabilité)
- Phase 3 (Production) : Mode
production_pwa(WASM + React + Cloud) SI validé
Pourquoi PAS d'autres options :
- ❌ Pas de WarFactory : Perte 3-4 semaines dev + hot-reload 0.4ms
- ❌ Cloud obligatoire dès MVP : Coûts permanents + complexité inutile
- ❌ App native mobile : Trop complexe, pas prioritaire
- ❌ Flutter/Node.js : Pas de réutilisation WarFactory + wildcode
- ❌ Electron seul : Poids énorme, pas cross-platform mobile
10. Prochaines Étapes
Immédiat (Aujourd'hui)
- ✅ CDC draft finalisé : Architecture proposée et documentée
- Validation faisabilité technique :
- POC : Hello World C++ → WASM
- Test setup Emscripten sur Windows
- Vérifier performance WASM acceptable
- Création structure projet (si POC validé) :
aissia/ ├── modules/ # C++ modules sources │ ├── SchedulerModule/ │ ├── StorageModule/ │ ├── AIProxyModule/ │ └── AuthModule/ ├── backend/ # Serveur C++ Docker ├── frontend/ # PWA React ├── scripts/ # Build scripts (build-all.ps1) ├── .github/workflows/ # CI/CD └── docs/ # Documentation - Setup environnement Windows :
- Installer Docker Desktop
- Installer Emscripten SDK
- Tester builds multi-target (DLL/SO/WASM)
Cette Semaine (Phase 0)
- Boilerplates :
- Backend C++ minimal (CMake, WebSocket server)
- Frontend React minimal (Vite + TypeScript)
- Premier module WASM (hello world)
- CI/CD GitHub Actions :
- Build automatique DLL/SO/WASM
- Deploy fly.io (backend) + Vercel (frontend)
- gameconfig.json initial :
- Configuration modules basique
- Définir stratégie déploiement (client vs serveur)
Semaine Prochaine (Phase 1)
- MVP fonctionnel :
- Auth + CRUD tâches
- scheduler.wasm opérationnel
- PWA déployée et accessible
Notes
Principes de Design
- Ce projet répond à un besoin personnel réel
- La proactivité de l'IA est critique (pas juste un assistant réactif)
- L'hyperfocus est le problème #1 à résoudre
- Commercialisation = bonus, pas l'objectif principal du MVP
Contraintes Retenues (Draft)
- 🎯 Dev 100% Windows (confort dev prioritaire)
- 🎯 Cross-platform automatique (Docker + WASM)
- 🎯 Mobile via PWA (pas de dev natif Android/iOS)
- 🎯 Coûts minimaux (70% client-side processing)
- 🎯 Pipeline stable (GitHub Actions, zéro surprise)
Décisions Architecturales Proposées (À valider)
- Modules C++ partagés : 1 codebase → DLL/SO/WASM
- Client-first : Déporter calculs sur client pour économiser serveur
- PWA installable : Équivalent app native sans complexité dev
- gameconfig.json : Configuration flexible du déploiement
Status: 📐 Architecture Hybride Proposée - En phase de conception et validation (POC requis) Version: 0.4 - Architecture Hybride Proposée (Hypothétique) Date: 27 octobre 2025
Proposition Architecturale (À Valider)
Architecture Proposée : Hybride WarFactory + Multi-Target Conditionnel
Concept (Hypothétique) :
- Un seul code C++ (IModule WarFactory)
- Compilé en 3 targets : DLL (dev local OBLIGATOIRE), SO (serveur CONDITIONNEL), WASM (browser CONDITIONNEL)
- Deux modes de déploiement :
local_dev(Phase 1 MVP OBLIGATOIRE) etproduction_pwa(Phase 3 CONDITIONNELLE)
Avantages validés Phase 1 :
- ✅ Réutilise WarFactory (économie 3-4 semaines validée)
- ✅ Hot-reload 0.4ms en mode local (validé WarFactory)
- ✅ $0 coût en mode local (garanti)
- ✅ Types stricts C++ (validé)
Avantages hypothétiques Phase 3 (À valider Phase 2) :
- ⚠️ Évolution progressive vers cloud si besoin (hypothétique)
- ⚠️ Multi-target DLL/SO/WASM viable (à tester)
Questions ouvertes avant implémentation :
- ⚠️ Faisabilité réelle compilation multi-target (DLL/SO/WASM) ?
- ⚠️ Complexité CMakeLists.txt multi-target supportable ?
- ⚠️ Performance WASM réellement acceptable (~2x C++ natif) ?
- ⚠️ Effort réel intégration React + WASM ?
- ⚠️ gameconfig.json peut vraiment basculer entre modes sans friction ?
Prochaines Étapes
🎯 PRIORITÉ ABSOLUE - Phase 1 (Mode local_dev uniquement) :
-
Setup Phase 0 :
- Interfaces WarFactory
- Structure projet modules/
- CMakeLists.txt DLL Windows uniquement (PAS multi-target encore)
- gameconfig.json mode
local_devuniquement
-
Implémentation Phase 1 :
- aissia-core.exe (WarFactory engine)
- 6 modules DLL (monitoring, scheduler, ai, voice, storage, ui-imgui)
- Validation dogfooding usage personnel
⚠️ SEULEMENT si Phase 1 complète ET besoin mobile confirmé → Phase 2 (POC WASM)
Phase 2 (Validation multi-target) - CONDITIONNEL :
- POC hello-world .dll + .wasm
- Benchmark performance WASM vs DLL
- Décision Go/No-Go pour Phase 3
Phase 3+ - CONDITIONNEL (Dépend résultat Phase 2)
État Actuel
- 📝 CDC rédigé avec architecture hybride proposée (v0.4)
- 📝 Alternatives analysées et documentées (AlternativesAnalysis.md)
- 📚 Documentation WarFactory copiée dans docs/
- 📝 Retour externe Claude reçu et intégré
- 📝 Section risques techniques ajoutée
- ⏸️ Phase 1 (local_dev) validée : Architecture WarFactory DLL prouvée
- ⚠️ Phases 2-3 (multi-target) hypothétiques : POC requis avant engagement
- ⏸️ Pas encore d'implémentation : Conception et validation uniquement
Notes Importantes
- ✅ Phase 1 = GO : Mode
local_devest validé et sera implémenté - ⚠️ Phases 2-3 = CONDITIONNEL : Multi-target reste hypothétique jusqu'à POC Phase 2
- Ne PAS setup Emscripten/Docker avant Phase 2 : Éviter complexité prématurée
- Architecture multi-target = proposition, pas garantie : Peut être abandonnée
- Focus MVP Phase 1 : Livrer version locale fonctionnelle d'abord
- Accepter local_dev seul comme succès : Si multi-target invalide, pas un échec