---
stepsCompleted: [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]
inputDocuments:
- _bmad-output/analysis/brainstorming-session-2026-01-09.md
- docs/project-overview.md
- docs/architecture-keep-notes.md
- docs/data-models.md
workflowType: 'prd'
lastStep: 11
documentTitle: 'Phase 1 MVP AI - Memento'
focusArea: 'AI-Powered Note Taking Features'
status: 'complete'
completedAt: '2026-01-10'
---
# Product Requirements Document - Phase 1 MVP AI
**Project:** Memento
**Author:** Ramez
**Date:** 2026-01-10
**Focus:** Phase 1 MVP IA - AI-Powered Note Taking Features
## Executive Summary
**Memento Phase 1 MVP AI** transforme l'application de prise de notes existante en un **partenaire cognitif proactif** qui élimine la charge mentale liée à l'organisation, tout en préservant la simplicité et le contrôle total de l'utilisateur. S'appuyant sur l'architecture Next.js 16 + Prisma + SQLite existante, cette évolution ajoute une couche d'intelligence contextuelle conçue pour **suggérer et faciliter, sans jamais imposer**.
L'objectif est de créer un flux de travail où la capture reste instantanée, mais l'organisation est accélérée par une **IA qui comprend les relations entre les notes** et propose des connexions proactives. Le système comprend l'intention, mais l'utilisateur garde toujours la main via un pattern ON/OFF granulaire.
### What Makes This Special
**🚀 Zero-Friction Intelligence (Philosophie "Zéro Prise de Tête")**
Contrairement à Google Keep (pas d'IA) et Notion (IA à la demande et complexe), Memento Phase 1 introduit **trois innovations exclusives**:
1. **Contextual Smart Assistance** - Les fonctionnalités IA n'apparaissent que quand c'est pertinent:
- Suggestions de titres uniquement après 10+ mots sans titre
- Toast non-intrusive avec options "Voir | Plus tard | Ne plus demander"
- L'utilisateur découvre les features naturellement sans être overwhelmed
2. **Hybrid Semantic Discovery** - Recherche unifiée qui "marche juste":
- L'utilisateur ne sait pas si c'est des mots-clés ou du sens
- Résultats avec badges: "Correspondance exacte" | "Correspondance sémantique"
- **"Memory Echo"** - Connexions proactives entre notes liées (jusqu'à 1 insight/jour)
3. **Privacy-First Multi-Provider AI**:
- Support Ollama (100% local, data ne quitte jamais l'infrastructure)
- Support OpenAI (cloud option pour utilisateurs non-techniques)
- Architecture multilingue: Prompts système en anglais, données utilisateur en langue locale
**🎯 The "Aha!" Moment: "I didn't search, it found me"**
Le différenciateur killer de Memento est **"Memory Echo"** - une feature qui révèle des connexions entre notes que l'utilisateur n'avait pas vues:
> 💡 *"I noticed something..."*
>
> *"You noted `[Node.js performance tips]` in January and `[Next.js optimization]` this week. These notes are connected - want me to link them?"*
>
> [View Connection] [Dismiss] [That's clever!]
Cela crée un moment unique où l'utilisateur réalise que Memento ne stocke pas seulement ses notes, mais **comprend ses connaissances** et les connecte proactivement.
**🌍 Multilingual Out-of-the-Box**
Architecture multilingue validée lors du brainstorming:
- Système: Prompts en anglais (stabilité des modèles)
- Données utilisateur: Détection automatique par note
- Pas besoin de configurer la langue - ça fonctionne nativement
**⚙️ Granular ON/OFF Control**
Respectant la philosophie "zéro prise de tête", chaque feature IA est contrôlable indépendamment:
- Settings IA avec checkboxes pour chaque fonctionnalité
- L'utilisateur peut désactiver ce qui ne lui convient pas
- Mode "Conservatif" (futur Phase 3) pour safety-first
### Project Success Vision
**Si Phase 1 réussit sauvagement, ce qui change pour les utilisateurs:**
- ✅ **"Je retrouve ce que j'ai oublié"** - Les connexions proactives rappellent des notes anciennes liées au travail actuel
- ✅ **"Je ne perds plus rien"** - Memento se souvient des relations même quand l'utilisateur oublie
- ✅ **"Je suis plus intelligent"** - Les connexions IA révèlent des patterns que l'utilisateur n'avait pas vus
- ✅ **"Je reste dans le flow"** - Pas besoin d'organiser manuellement, Memento le fait silencieusement
## Project Classification
**Technical Type:** web_app
**Domain:** general
**Complexity:** medium
**Project Context:** Brownfield - Extension intelligent avec focus UX
### Technical Context
**Existing Stack:**
- Next.js 16.1.1 (App Router) + React 19.2.3 + TypeScript 5
- Prisma 5.22.0 ORM + SQLite (better-sqlite3)
- Vercel AI SDK 6.0.23 + OpenAI/Ollama providers
- NextAuth 5.0.0-beta.30 (authentication)
**Current AI Capabilities (Already Implemented):**
- ✅ Auto-tagging with embeddings
- ✅ Multi-provider support (OpenAI, Ollama)
- ✅ Factory pattern for AI providers
**Phase 1 Additions:**
- Contextual title suggestions (3 options, no auto-generation)
- Enhanced semantic search with connection insights
- Paragraph-level reformulation (manual trigger)
- "Memory Echo" proactive connections (max 1 insight/day)
### Architecture Alignment
Phase 1 respects existing patterns:
- API Routes in `/api/ai/` namespace
- Components in shared structure
- Prisma schema extensions (not rewrites)
- Multilingual architecture (system prompts English, user data in local language)
### Competitive Positioning
| Feature | Google Keep | Notion | **Memento Phase 1** |
|---------|-------------|--------|---------------------|
| **Fast Capture** | ✅ Yes | ❌ No | ✅ **Yes** |
| **Integrated AI** | ❌ No | ⚠️ Paid/add-on | ✅ **Yes, native** |
| **Semantic Search** | ❌ No | ⚠️ Partial | ✅ **Yes, hybrid** |
| **Proactive Insights** | ❌ No | ❌ No | ✅ **EXCLUSIVE** |
| **Zero-Config** | ✅ Yes | ❌ No | ✅ **Yes** |
| **Privacy (Local)** | ❌ No | ❌ No | ✅ **EXCLUSIVE** |
| **Multilingual** | ⚠️ Limited | ⚠️ Limited | ✅ **Yes, native** |
## Success Criteria
### User Success
**1. Adoption "Aha!" Moment**
**Moment où l'utilisateur réalise que Memento est différent:**
- **Mesure:** % d'utilisateurs qui acceptent au moins une suggestion de titre dans les 7 premiers jours
- **Cible:** > 60% (si moins, les suggestions ne sont pas pertinentes)
- **Pourquoi:** Indique que les features IA sont découvertes et perçues comme utiles
**Délice avec Memory Echo:**
- **Mesure:** % d'utilisateurs qui cliquent sur "Voir la connexion" lors d'un insight proactif
- **Cible:** > 40% (montre que les connexions proactives ont de la valeur)
- **Pourquoi:** C'est le moment différenciant vs Google Keep/Notion
**2. Retrouvabilité "Je l'ai retrouvé!"**
**Capacité à retrouver des notes oubliées via recherche sémantique:**
- **Mesure:** % de recherches où la correspondance sémantique est dans le top 3 résultats
- **Cible:** > 30% des recherches complexes (non-mots-clés exacts)
- **Pourquoi:** La recherche sémantique doit retrouver ce que la recherche par mots-clés ne trouve pas
**Gain de temps de recherche:**
- **Mesure:** Temps moyen pour trouver une note connue vs. recherche mots-clés actuelle
- **Cible:** -40% de temps en moyenne
- **Pourquoi:** L'IA doit accélérer le workflow, pas le ralentir
**3. Confiance en l'IA "Je fais confiance"**
**Taux d'acceptation des suggestions:**
- **Mesure:** % de suggestions de titres acceptées vs. ignorées/modifiées
- **Cible:** > 50% acceptance rate
- **Pourquoi:** Si en dessous, l'IA ne comprend pas le contexte utilisateur
**Feedback positif Memory Echo:**
- **Mesure:** Ratio boutons 👍 sur 👎 pour les connexions proactives
- **Cible:** > 3:1 (3 positifs pour 1 négatif)
- **Pourquoi:** Les insights doivent être pertinents, pas du spam
**4. Qualité des Reformulations**
**Satisfaction reformulation:**
- **Mesure:** % de reformulations gardées telles quelles vs. annulées
- **Cible:** > 70% gardées
- **Pourquoi:** La reformulation doit améliorer le contenu, pas le dégrader
### Business Success
**Open Source Adoption (3 mois):**
- **GitHub Stars:** 100+ étoiles (indicateur d'intérêt communauté)
- **Utilisateurs Actifs Hebdomadaires (WAU):** 50+ utilisateurs actifs par semaine
- **Engagement:** 30% des utilisateurs reviennent chaque semaine (retention semaine 1 à semaine 4)
**Open Source Growth (12 mois):**
- **GitHub Stars:** 500+ étoiles
- **Contribution Communautaire:** Au moins 2 contributeurs externes soumettent des PRs
- **Traction:** Articles/blogs de mentionner Memento (indicateur de buzz organique)
**Freemium Readiness (Futur):**
- **Intent de paiement:** 5-10% des utilisateurs actifs cliquent sur "Buy me a coffee" (même sans payer, indique la valeur perçue)
- **Conversion potentielle:** Si activé, > 2% conversion freemium payant
**Métrique Ultime:**
- **"Wow, c'est génial, je vais le sponsoriser!"** - Si un utilisateur dit ça spontanément, c'est un succès business
### Technical Success
**Performance:**
- **Recherche sémantique:** < 300ms pour une base de 1000 notes
- **Pourquoi:** Ne pas ralentir l'UX, l'utilisateur ne doit pas attendre
- **Suggestions titres:** < 2s après détection (10+ mots sans titre)
- **Pourquoi:** Doit paraître "instantané" pour l'utilisateur
- **Memory Echo analysis:** Traitement en arrière-plan, blocage UI < 100ms
- **Pourquoi:** L'utilisateur ne doit jamais sentir que l'IA "travaille"
**Architecture:**
- **Zero Breaking Change:** Toutes les features existantes continuent de fonctionner
- **Pourquoi:** C'est un projet brownfield, on ne casse pas ce qui marche
- **Multi-Provider Support:** Ollama ET OpenAI fonctionnent sans changement de code
- **Pourquoi:** Respecte la philosophie privacy-first + accessibilité
- **Multilingual Detection:** Fonctionne pour FR, EN, ES, DE minimum
- **Pourquoi:** Architecture multilingue validée lors du brainstorming
**Qualité IA:**
- **Taux de fausses positives Memory Echo:** < 20%
- **Pourquoi:** Au-dessus, c'est perçu comme du spam utilisateur
- **Suggestions titres pertinentes:** > 70% acceptation
- **Pourquoi:** Les titres doivent capturer l'essence de la note
- **Hallucinations contrôlées:** < 5% des générations contiennent des erreurs factuelles
- **Pourquoi:** Mode conservateur + score de confiance (Phase 3, mais préparer l'architecture)
### Measurable Outcomes
**Metrics Dashboard (à implémenter pour tracking):**
| Metric | Current | Phase 1 Target | Measurement Method |
|--------|---------|----------------|-------------------|
| Title suggestion acceptance | N/A | > 60% | Tracking accept/ignore |
| Semantic search top-3 hit rate | 0% | > 30% | Search analytics |
| Memory Echo CTR | N/A | > 40% | Insight click tracking |
| 👍👎 Feedback Ratio | N/A | > 3:1 | Feedback buttons |
| Avg search time improvement | Baseline | -40% | Time-to-find analytics |
| WAU (Week 4) | 0 | 50+ | Active user tracking |
| Week 1-4 retention | 0% | 30% | Cohort analysis |
| GitHub Stars (Month 3) | Current | +100 | GitHub API |
| Community contributors | 0 | 2+ | PR count |
## Product Scope
### MVP - Minimum Viable Product (Phase 1)
**Core User Journeys Supported:**
- Alex (Zero-friction note taker)
- Sarah (Self-hoster privée)
- Max (Local-first advocate)
**Must-Have Capabilities:**
**1. Intelligent Title Suggestions**
- Déclenchement automatique après 10+ mots sans titre
- Toast non-intrusive: "J'ai 3 idées de titres pour ta note, les voir?"
- 3 suggestions IA présentées en dropdown
- Options: "Voir" | "Plus tard" | "Ne plus demander"
- Détection langue automatique (FR, EN, ES, DE)
**2. Hybrid Semantic Search**
- Recherche unifiée (pas de distinction visible utilisateur)
- Badges sur résultats: "Correspondance exacte" | "Correspondance sémantique"
- Affichage top 10 résultats, mix mots-clés + sens
- Toggle IA dans Settings (ON/OFF granulaire)
**3. Paragraph-Level Reformulation**
- Menu "..." sur chaque note card
- Sous-menu "IA Assist" → "Réécrire paragraphe"
- Modal pour sélectionner paragraphe et choisir reformulation
- Options: "Clarifier", "Raccourcir", "Améliorer style"
- Bouton 👍👎 pour feedback
**4. Memory Echo (Proactive Connections) ⭐ DIFFÉRENCIATEUR**
- Analyse silencieuse en arrière-plan des embeddings existants
- **Max 1 insight proactif par jour** (configurable 0-3 dans Settings)
- Notification subtile: "J'ai remarqué quelque chose..."
- Affichage des 2 notes connectées avec option de lier
- Toggle ON/OFF dans Settings IA
- Boutons 👍👎 pour apprentissage
**5. AI Settings Panel**
- Page `/settings/ai` avec checkboxes ON/OFF pour chaque feature:
- ☑ Suggestions de titres
- ☑ Recherche sémantique
- ☑ Reformulation
- ☑ Memory Echo
- Slider pour fréquence Memory Echo (0-3 insights/jour)
- Sélection provider IA (Ollama/OpenAI) si configuré
**Technical Requirements:**
- API Routes: `/api/ai/titles`, `/api/ai/search`, `/api/ai/refactor`, `/api/ai/echo`
- Database: Extensions Prisma pour embeddings, language detection
- Components: ``, ``, ``
- Services: `ai.service.ts`, `embedding.service.ts`, `memory-echo.service.ts`
**Out of Scope (Explicitement Non-MVP):**
- Score de confiance visible (Phase 3)
- Système feedback 👍👎 généralisé (Phase 3)
- Mode conservateur (Phase 3)
- Description images OCR (Phase 2)
- Résumé URLs (Phase 2)
- Templates IA personnalisés (Phase 4)
- Transcription audio (Phase 4)
### Growth Features (Phase 2 - Post-MVP)
**Enhancement de l'expérience IA:**
- Description images + OCR (bouton sur image)
- Résumé URLs (extraction points clés)
- "Suggestions suites logiques" après chaque note
- Settings IA avancés (paramètres configurables par feature)
- Feedback learning amélioré (patterns utilisateur)
**Adoption & Engagement:**
- Onboarding IA pour nouveaux utilisateurs
- Tours guidés des features IA
- Analytics dashboard pour propriétaire
### Vision (Future - Phase 3+)
**Trust & Intelligence:**
- Score de confiance visible (transparence)
- Système feedback 👍👎 généralisé
- Mode conservateur (safety first)
- Détection langue auto améliorée (plus de langues)
**Advanced Features:**
- Transcription audio (notes vocales)
- Organisation auto (IA propose dossiers/catégories)
- Templates IA personnalisés (patterns utilisateur)
- Mode "Super IA" (optimisation complète note)
**Business Model:**
- Lancement freemium avec "Buy me a coffee"
- Features avancées payantes (Phase 4)
- Monétisation éthique sans lock-in
## User Journeys
### Journey 1: Alex - Le Déclic "Ça me comprend!"
**Alex**, Freelance Creative & Developer, 32 ans, Paris
**Persona:**
Alex travaille dans le chaos créatif. Il a des idées brillantes partout - dans le métro, pendant des réunions, à 3h du matin. Il utilise déjà Memento pour capturer ses pensées, mais il est frustré:
- "J'ai 300+ notes et je ne retrouve plus rien"
- "Je passe 20 min à chercher cette astuce CSS que j'ai notée le mois dernier"
- "Mes titres sont soit vides, soit 'Note 34' - pas inspirant"
**The Discovery (Opening Scene):**
Un lundi matin, Alex ouvre Memento pour continuer une note sur React qu'il a commencée la veille. Il tape frénétiquement, complètement focused sur son code - **pas le temps pour un titre**.
Soudain, une notification subtile apparaît:
> 💭 *"J'ai 3 idées de titres pour ta note, les voir?"*
Alex sourit - c'est non-intrusif. Il clique "Voir" et voit:
1. "React State Management: useMemo Optimization Pattern"
2. "Performance Hook Pattern pour Composants React"
3. "Astuce React: mémoisation avec useMemo"
**Le choix d'Alex:** "Wow, le premier capture exactement l'essence!" - Il clique pour l'appliquer.
**The Revelation (Rising Action):**
Deux jours plus tard, Alex cherche cette note. Au lieu de taper "React useMemo" (le titre exact), il tape naturellement: *"comment optimiser les performances des hooks"*
Memento lui montre 10 résultats. Les 3 premiers ont un badge 🎯 **"Correspondance sémantique"**. Le premier est SA note - elle ne contient même pas les mots "hook" ou "performance" dans le texte, mais l'IA a compris le sens!
**The "Aha!" Moment (Climax):**
Une semaine passe. Alex reçoit une notification inattendue:
> 💡 *"J'ai remarqué quelque chose..."*
>
> *"Tu as noté `[Node.js performance tips]` en janvier et `[Optimisation Next.js]` cette semaine. Ces notes sont connectées - veux-tu que je les lie ?"*
Alex clique "Voir la connexion" - son souffle coupé. Les deux notes traitent toutes les deux de... **server-side rendering optimization**. Il n'avait jamais fait le lien!
**The Transformation (Resolution):**
Trois mois plus tard:
- Alex a 400+ notes, mais il les retrouve **instantanément**
- Il accepte 80% des suggestions de titres (économie de temps massive)
- Memory Echo lui a fait découvrir 12 connexions entre ses notes
- **"C'est comme si j'avais un assistant de recherche personnel qui lit tout ce que j'écris"**
**Journey Requirements Revealed:**
- Détection intelligente du moment opportun (10+ mots sans titre)
- Recherche sémantique qui comprend l'intention, pas juste les mots
- Memory Echo avec fréquence contrôlable (pas spam)
- Feedback utilisateur pour apprentissage (👍👎)
---
### Journey 2: Max - "Mes données ne quittent jamais mon laptop"
**Max**, Privacy Advocate & Software Engineer, 28 ans, Berlin
**Persona:**
Max est passionné par la privacy. Il utilise déjà Memento avec Next.js en local sur sa machine, mais il est:
- **Sceptique:** "Pourquoi une IA devrait lire mes notes personnelles?"
- **Exigeant:** "Si une seule donnée quitte mon laptop, je désinstalle"
- **Technique:** Il a Ollama installé avec des modèles locaux
**The Discovery (Opening Scene):**
Max lit sur le blog Memento qu'il y a maintenant des features IA. Son premier réflexe: **méfiance**.
Il va dans Settings > AI et voit:
- ☑ Use AI Provider: [Ollama (Local) | OpenAI Cloud]
- Checkbox: "🔒 Keep all AI processing local (Ollama only)"
- Un message rassurant: *"With Ollama, your note data never leaves your device. Embeddings and processing happen entirely on your machine."*
Max soulagé, coche la case Ollama. Il voit un indicateur de statut: *"✅ Connected to local Ollama at http://localhost:11434"*
**The First Test (Rising Action):**
Max crée une note sur une architecture système qu'il conçoit pour un client. 60 mots plus tard, la suggestion de titre apparaît.
Il hésite... puis clique "Voir". Les 3 suggestions apparaissent instantanément (< 1s). Il choisit la troisième.
**The Verification (Climax):**
Curieux, Max ouvre les DevTools réseau pour vérifier:
- **0 appels vers des API externes** (pas d'OpenAI, pas de Google)
- Juste des appels locaux vers `localhost:11434` (Ollama)
Il sourit: *"Bon, ils ont tenu parole. Vraiment local."*
**The Memory Echo Experience (The Real Test):**
Une semaine plus tard, Max reçoit son premier Memory Echo:
> 💡 *"J'ai remarqué quelque chose..."*
>
> *"Tu as noté `[Microservices patterns]` et `[Event-driven architecture]`. Ces notes sont liées."*
Max clique "Voir la connexion" - et réalise que l'IA a fait le lien entre deux notes qu'il a écrites à 2 mois d'intervalle. Le plus fou? **Tout s'est passé localement.**
Il clique 👍 ("That's clever!"). Le système apprend.
**The Transformation (Resolution):**
Deux mois plus tard:
- Max a accepté 65% des suggestions de titres (elles sont vraiment pertinentes!)
- Il a désactivé Memory Echo à 0 (il préfère chercher manuellement)
- **"L'IA locale est aussi intelligente que le cloud, mais sans compromis privacy"**
- Il recommande Memento sur Reddit: *"Seul app de notes avec IA 100% locale et zéro telemetry"*
**Journey Requirements Revealed:**
- Configuration Ollama fonctionnelle out-of-the-box
- Détection automatique du provider Ollama local
- Indicateurs de statut de connexion IA
- Zero data exfiltration (tous les appels sont locaux)
- Toggle granulaire pour chaque feature IA (Max a désactivé Memory Echo)
- Performance locale acceptable (pas plus lent que le cloud)
---
### Journey 3: Léa - Admin Système "Zero Maintenance"
**Léa**, DevOps Engineer, 35 ans, Lyon - Admin de l'instance Memento de son équipe de 15 développeurs
**Persona:**
L'équipe de Léa utilise Memento pour partager des connaissances techniques. Elle a déployé Memento sur leur serveur interne. Maintenant avec les features IA, elle doit:
- Configurer les providers IA pour l'équipe
- Surveiller les coûts et la performance
- Gérer les utilisateurs qui ont des problèmes
**Initial Configuration (Opening Scene):**
Léa accède à `/settings/ai` (admin-only). Elle voit:
**Team AI Configuration:**
- Default AI Provider: [OpenAI Team API | Ollama Self-hosted | Custom]
- API Key Management: [Add team keys] (chiffrées en base)
- Per-user limits: Max embeddings per day, Max Memory Echo insights
Elle configure:
- Provider: OpenAI Team API (clé d'équipe partagée)
- Rate limits: 100 embeddings/jour/utilisateur
- Memory Echo: Max 1 insight/jour par utilisateur (pour éviter l'overwhelm)
**Monitoring (Rising Action):**
Dans le nouveau Dashboard Admin, Léa voit des métriques IA en temps réel:
- AI Usage Today: 1,247 embeddings générés
- Average Response Time: 180ms
- Top Feature Used: Title Suggestions (78%)
- Memory Echo Feedback Ratio: 4.2:1 👍/👎 (excellent!)
**The Problem (Climax):**
Un développeur (Thomas) se plaint: *"L'IA me suggère des titres en anglais alors que j'écris en français!"*
Léa va dans User Settings de Thomas et voit:
- Language Detection: Auto ✅
- Last Detected Language: FR (français)
- **Mais:** Le modèle utilisé a tendance à suggérer en anglais
Elle ajuste la config pour Thomas: Force language = FR, et augmente la température du modèle pour plus de créativité en français.
**The Optimization (Resolution):**
Un mois plus tard:
- L'équipe a généré 45,000 embeddings (coût OpenAI: ~$12/mois - gérable!)
- Léa a ajusté les settings basés sur les analytics:
- Memory Echo limité à 2/sem pour les utilisateurs power-users
- Titre suggestions activées par défaut (80% d'acceptation!)
- **"L'IA booste la productivité de l'équipe sans moi passer du temps à configurer"**
**Journey Requirements Revealed:**
- Admin dashboard avec métriques IA en temps réel
- Configuration par utilisateur ou par défaut d'équipe
- Gestion des clés API chiffrées
- Rate limiting par utilisateur
- Surveillance des coûts IA
- Ajustement des paramètres par utilisateur (langue, température, etc.)
- Analytics d'utilisation pour optimiser les settings
---
### Journey 4: Sophie - Quand l'IA se trompe
**Sophie**, Content Marketing Manager, 29 ans, Bordeaux - Utilisatrice régulière de Memento
**Persona:**
Sophie utilise Memento pour organiser ses idées de contenu. Elle est enthousiaste à l'idée des features IA, mais... elle va rencontrer des problèmes.
**The First Problem (Opening Scene):**
Sophie écrit une note sur une idée d'article. 70 mots plus tard, la suggestion de titre apparaît. Excitée, elle clique "Voir" et voit:
1. "Stratégie de Contenu B2B: Guide Complet"
2. "Marketing B2B: Plan d'Action 2025"
3. "Idées Articles: Marketing de Contenu"
Sophie déçoitée: *"None of these capture my idea at all!"*
Elle clique "Ne plus demander" pour cette note. Le système respecte son choix.
**The Second Problem - Memory Echo (Rising Action):**
Le lendemain, Sophie reçoit une Memory Echo:
> 💡 *"J'ai remarqué quelque chose..."*
>
> *"Tu as noté `[Recettes de smoothies]` et `[Stratégie SEO]`. Ces notes sont connectées."*
Sophie confuse: *"What? These have nothing to do with each other!"*
Elle clique 👎 ("Faux") - et un modal apparaît:
> *"Merci pour ton feedback! Pourquoi cette connexion n'est-elle pas pertinente?"*
Sophie explique: *"Les recettes de smoothies sont pour ma vie personnelle, le SEO c'est pro. Pas de rapport."*
Le système apprend.
**The Recovery (Climax):**
Sophie va dans Settings > IA et voit:
- Title Suggestions: ☑ Activé
- Memory Echo: ☑ Activé (Max 1/jour)
Elle décide d'ajuster:
- Title Suggestions: Activé, mais **"Me demander seulement si je dépasse 100 mots"** (elle a besoin de plus de contexte)
- Memory Echo: Activé, mais **"Seulement pour les notes des 30 derniers jours"** (éviter les connexions avec des notes anciennes)
**The Return to Trust (Resolution):**
Une semaine plus tard, Sophie écrit un long article (200+ mots). Cette fois, les suggestions de titres sont:
1. "Content Marketing: Comment créer du contenu qui convertit"
2. "Guide Marketing de Contenu: De la stratégie à l'exécution"
3. "Stratégie de Contenu: Les 5 piliers du marketing B2B"
Sophie sourit: *"Number 3 is perfect!"* - Elle clique pour l'appliquer.
Pour Memory Echo, elle reçoit une connexion entre deux notes sur le marketing (toutes deux des 30 derniers jours). Cette fois, elle clique 👍 ("That's clever!")!
**The Transformation:**
Un mois plus tard:
- Sophie a personnalisé ses settings IA selon ses préférences
- Elle accepte maintenant **55% des suggestions** (en hausse!)
- Son feedback 👎 a aidé le système à mieux comprendre son contexte
- **"L'IA n'est pas parfaite, mais je peux la configurer pour mes besoins"**
**Journey Requirements Revealed:**
- Bouton "Ne plus demander" respecté immédiatement
- Feedback 👎 avec modal pour comprendre **pourquoi** c'est faux
- Settings IA personnalisables par utilisateur (seuil de mots, période Memory Echo)
- Système d'apprentissage qui s'améliore avec le feedback
- Bouton d'annulation (undo) pour les suggestions appliquées par erreur
- Mode "conservateur" pour réduire les fausses positives
---
### Journey Requirements Summary
**Core Requirements Across All Journeys:**
**1. Intelligent & Contextual Triggers**
- Detection automatique des moments opportuns (50+ mots sans titre)
- Toast notifications non-intrusives avec options "Voir | Plus tard | Ne plus demander"
- Respect immédiat du choix utilisateur
**2. Hybrid Semantic Search**
- Recherche unifiée (pas de distinction visible)
- Badges sur résultats: "Correspondance exacte" | "Correspondance sémantique"
- Compréhension de l'intention utilisateur, pas juste mots-clés
**3. Memory Echo (Proactive Connections)**
- Fréquence configurable 0-3 insights/jour
- Période configurable (notes des X derniers jours)
- Connexions pertinentes (faux positifs < 20%)
**4. Privacy-First Architecture**
- Support Ollama local 100% fonctionnel
- Zéro appel API externe en mode local
- Indicateurs de statut de connexion IA
- Performance locale acceptable (< 1s suggestions)
**5. Granular User Control**
- Settings IA avec checkboxes ON/OFF par feature
- Personnalisation par utilisateur (seuil mots, période Memory Echo, etc.)
- Boutons 👍👎 pour feedback et apprentissage
- Bouton "Ne plus demander" immédiat
**6. Admin & Operations**
- Admin dashboard avec métriques IA temps réel
- Configuration par défaut d'équipe + overrides par utilisateur
- Gestion clés API chiffrées
- Rate limiting par utilisateur
- Surveillance coûts IA
- Analytics d'utilisation pour optimiser les settings
**7. Error Recovery & Learning**
- Feedback 👎 avec modal explicatif
- Système apprentissage avec feedback utilisateur
- Bouton annulation (undo) pour les suggestions appliquées
- Mode conservateur pour réduire fausses positives (Phase 3)
- Ajustement paramètres par utilisateur (langue, température, etc.)
## Innovation & Novel Patterns
Memento Phase 1 introduces **two major innovations** that radically differentiate the application from existing solutions like Google Keep and Notion.
### Innovation 1: Memory Echo - "I Didn't Search, It Found Me" ⭐
**The Breakthrough:**
Memory Echo inverse le paradigme traditionnel de la recherche d'information. Au lieu de demander à l'utilisateur de penser à chercher, l'IA **pense pour lui** en identifiant proactivement les connexions entre des notes que l'utilisateur n'avait pas vues.
**Why This Is Revolutionary:**
| Traditional Apps (Google Keep, Notion) | **Memento with Memory Echo** |
|----------------------------------------|------------------------------|
| **Reactive** - User must think to search | **Proactive** - AI finds connections automatically |
| User queries → System retrieves | System surfaces → User discovers |
| "I hope I find that note..." | "I didn't even know these were related!" |
| Discoverability depends on user memory | Discoverability enhanced by AI intelligence |
**The Insight:**
Most knowledge workers have hundreds or thousands of notes but forget the connections between them. A note written in January about "Node.js performance" might be directly relevant to a note written in June about "Next.js optimization" - but the user never makes the link.
Memory Echo solves this by:
- **Analyzing existing embeddings** for semantic similarity patterns
- **Identifying cross-temporal connections** (notes written days/weeks/months apart)
- **Surfacing one insight per day maximum** (configurable 0-3)
- **Learning from user feedback** (👍👎 buttons improve future suggestions)
**Market Context:**
- **Obsidian** has graph view and backlinks - but requires manual user action
- **Roam Research** has suggestions - but only highlights explicit keyword overlaps
- **Notion AI** - can search semantically but doesn't suggest proactively
- **Memento** - first to combine proactive discovery + semantic understanding + user feedback loop
**Validation Approach:**
**Technical Validation:**
- Cosine similarity threshold > 0.75 (ensures meaningful connections)
- Time diversity filter: Notes must be from different time periods (avoid same-session duplicates)
- Context relevance: Exclude obvious connections (identical keywords/categories)
**UX Validation:**
- Frequency limit: Max 1 insight/day (prevents overwhelming users)
- User control: Slider for 0-3 insights/day, complete ON/OFF toggle
- Feedback loop: 👍👎 buttons train the system on user preferences
**Success Criteria:**
- 👍👎 feedback ratio > 3:1 (3 positive for 1 negative)
- CTR (Click-Through Rate) > 40% (users click "View Connection")
- User retention: Users who engage with Memory Echo show 30% higher week-4 retention
**Risk Mitigation:**
**Risk 1: "Connections feel random/spammy"**
- **Mitigation:** High similarity threshold (0.75), conservative by default
- **Fallback:** User can set frequency to 0 (disable completely)
**Risk 2: "I already knew these were related"**
- **Mitigation:** Focus on cross-temporal connections (notes far apart in time)
- **Enhancement:** Add serendipity factor (connections user likely missed)
**Risk 3: Performance impact from analysis**
- **Mitigation:** Background processing, non-blocking UI
- **Target:** Analysis completes in < 100ms UI freeze time
**Competitive Moat:**
Memory Echo is difficult to copy because it requires:
1. **Existing embeddings** from user's notes (incumbents don't have this data)
2. **Feedback learning system** (requires engineering investment)
3. **Conservative-by-default philosophy** (most AI companies are aggressive)
4. **Privacy-first architecture** (local processing possible with Ollama)
---
### Innovation 2: Contextual AI "Zero-Friction" Pattern
**The Breakthrough:**
Memento introduces a new interaction pattern for AI features: **context-aware appearance**. The AI doesn't demand attention (always-visible toolbar) nor hide completely (buried in menus) - it appears **only when contextually appropriate**.
**Why This Is Revolutionary:**
| Current AI Apps | **Memento Contextual AI** |
|-----------------|---------------------------|
| Always-visible toolbars (overwhelming) | Appears when relevant |
| Hidden in menus (hard to discover) | Non-intrusive toast notifications |
| All features active simultaneously | Single interaction at a time |
| User manages complexity | System manages complexity |
**The Pattern:**
**Example 1 - Title Suggestions:**
- **Trigger:** User writes 10+ words without a title
- **Appearance:** Subtle toast: "I have 3 title ideas for this note, view them?"
- **Options:** "View" | "Not now" | "Don't ask for this note"
- **Outcome:** Feature discovered naturally, not overwhelming
**Example 2 - Reformulation:**
- **Trigger:** User opens "..." menu on a note card
- **Appearance:** "AI Assist" → "Rewrite paragraph" (intentional, not disruptive)
- **Context:** User is already in editing mode, so AI suggestion fits naturally
**Example 3 - Memory Echo:**
- **Trigger:** Background analysis finds strong connection
- **Appearance:** Once per day max (configurable)
- **Priority:** If multiple AI interactions possible, Memory Echo takes precedence
**The Insight:**
The "zero-friction" philosophy means:
- **Zero cognitive load** - User doesn't need to remember where features are
- **Zero interruption** - AI never overwhelms with multiple simultaneous requests
- **Zero learning curve** - Features are discovered when needed
- **Zero lock-in** - Every feature can be disabled independently
**Market Context:**
- **Notion AI** - AI features hidden in "/ai" command (hard to discover)
- **Obsidian Copilot** - Sidebar always visible (can be distracting)
- **Memento** - Contextual appearance balances discoverability with non-intrusiveness
**Scalability Strategy:**
As AI features grow (Phase 2: Image OCR, URL summaries, etc.), the pattern scales via:
**1. Single-Interaction Rule:**
```
IF (title_suggested AND memory_echo_pending):
Show Memory Echo (higher value)
Defer title suggestion to next trigger
```
**2. Priority Hierarchy:**
```
Priority 1: Memory Echo (proactive discovery)
Priority 2: Title suggestions (capture value)
Priority 3: Reformulation (enhancement)
Priority 4: URL summaries, OCR, etc. (nice-to-have)
```
**3. "Focus Mode" Toggle:**
- User can disable ALL proactive AI temporarily
- Perfect for deep work sessions
- One-click re-enable when ready
**Validation Approach:**
**UX Validation:**
- A/B test trigger thresholds (50 words vs. 75 vs. 100)
- Measure "accept/ignore" ratio per feature
- Track user settings changes (if users disable, adjust defaults)
**Success Criteria:**
- Feature discovery rate > 70% (users find features without tutorial)
- Feature acceptance rate > 50% (users accept suggestions when offered)
- Overwhelm rate < 5% (users rarely disable all AI features)
**Risk Mitigation:**
**Risk 1: "Users never discover features"**
- **Mitigation:** Progressive disclosure - show more prominently after first use
- **Fallback:** Optional onboarding tour for AI features
**Risk 2: "Too many features become overwhelming"**
- **Mitigation:** Single-interaction rule enforced at UX level
- **Fallback:** "Focus Mode" to disable all proactive AI
**Risk 3: "Context detection fails"**
- **Mitigation:** Conservative triggers (better to miss than to annoy)
- **Fallback:** Manual trigger in settings for all features
**Competitive Moat:**
This interaction pattern is difficult to copy because it requires:
1. **Philosophical commitment** to user-centric design (most AI companies prioritize engagement over UX)
2. **Engineering discipline** to build context-aware triggers
3. **User feedback loops** to refine triggers over time
4. **Multi-feature coordination** (preventing feature conflicts)
---
## Why These Innovations Matter
**Combined Impact:**
Memory Echo (proactive discovery) + Contextual AI (respectful interaction) create a **new paradigm for AI-assisted knowledge management**:
1. **AI as Partner, Not Tool** - The system thinks with you, not just for you
2. **Serendipity at Scale** - Discover connections you'd never find manually
3. **Zero-Friction Intelligence** - AI enhances without interrupting
4. **Privacy-First** - All innovations work locally via Ollama
**The "Aha!" Moment:**
When users experience Memory Echo discovering a connection they missed, they realize:
> *"This isn't just a note-taking app. It's a partner that understands my knowledge better than I do."*
This creates emotional lock-in that features alone cannot achieve.
## Web App Specific Requirements
### Project-Type Overview
Memento is a **Single Page Application (SPA)** built with Next.js 16 App Router, combining server-side rendering (SSR) for performance with client-side navigation for fluid user experience. Phase 1 MVP AI focuses on **progressive enhancement** - AI features add value without breaking existing core functionality.
### Browser Support Matrix
**Primary Target (Modern Browsers):**
| Browser | Minimum Version | Rationale |
|---------|-----------------|-----------|
| Chrome/Edge | 120+ (Jan 2024) | Chromium engine, latest APIs |
| Firefox | 120+ (Jan 2024) | Gecko engine, modern JS |
| Safari | 17+ (Sep 2023) | WebKit engine, macOS/iOS |
| Mobile Safari | iOS 17+ | iPhone/iPad support |
**Technical Approach:**
- **No polyfills** - Use modern JavaScript features (ES2023+, CSS Grid, Flexbox)
- **Feature detection** - Graceful degradation if APIs unavailable
- **Progressive enhancement** - Core features work without JavaScript if possible
**Out of Scope (Explicit):**
- IE11 or legacy browsers - Too much technical debt for Phase 1
- Opera Mini or other niche browsers - < 0.1% market share
- Android < 10 - Too old for modern web APIs
**Rationale:**
- Memento targets tech-savvy users (developers, knowledge workers)
- Modern browser usage > 95% in target demographics
- Reduces bundle size and technical complexity
---
### Responsive Design Strategy
**Breakpoint Strategy (Mobile-First):**
```
Mobile First: 320px - 639px (Smartphones)
Tablet: 640px - 1023px (iPad, tablets)
Desktop: 1024px - 1439px (Laptops)
Desktop Wide: 1440px+ (Large monitors)
```
**AI Feature Adaptation:**
| Feature | Mobile | Tablet | Desktop |
|---------|--------|--------|---------|
| Title suggestions toast | Bottom sheet | Bottom-right toast | Top-right toast |
| Memory Echo notification | Full-width banner | Top-right card | Sidebar card |
| Reformulation modal | Full-screen | Modal | Side panel |
| Search results | Single column | 2 columns | 3 columns + filters |
**Touch Targets (WCAG 2.1 AA):**
- Minimum tap target size: 44×44px (mobile)
- Spacing between targets: 8px minimum
- AI buttons (👍👎) must be tappable without zoom
---
### Performance Targets
**Critical Performance Metrics (Phase 1):**
| Metric | Target | Measurement Method |
|--------|--------|-------------------|
| **Title Suggestions Generation** | < 2s | Time from trigger to display |
| **Semantic Search** | < 300ms | Time from query to results |
| **Memory Echo Analysis** | < 100ms UI freeze | Background processing time |
| **Initial Page Load** | < 3s (FCP) | First Contentful Paint |
| **Time to Interactive** | < 5s (TTI) | Full app interactivity |
**Performance Budget:**
- **JavaScript bundle:** < 200KB gzipped (excluding AI providers)
- **CSS:** < 50KB gzipped
- **First paint:** < 1.5s on 4G connection
**Optimization Strategies:**
1. **Code splitting:** AI features loaded on-demand (not in initial bundle)
2. **Lazy loading:** Components loaded when needed
3. **ISR (Incremental Static Regeneration):** Pre-render pages, revalidate in background
4. **Image optimization:** Next.js Image component with WebP/AVIF
5. **AI processing:** Always background, never block main thread
**Monitoring:**
- Core Web Vitals tracked in production
- Performance regression tests in CI/CD
- Real User Monitoring (RUM) for actual usage data
---
### SEO Strategy
**Approach:** SEO is **not critical** for Phase 1 MVP AI because:
1. **Authentication Required** - Main app is behind login (no public content)
2. **B2C Community-Driven** - Growth through word-of-mouth, not organic search
3. **Privacy-First** - Users prefer private apps over discoverable ones
**SEO for Public Pages Only:**
**Public Pages Requiring SEO:**
- Landing page (`/`) - Product overview, features
- Documentation (`/docs`) - User guides, API docs
- Blog (future) - Content marketing
**SEO Best Practices for Public Pages:**
- Meta tags (title, description, Open Graph)
- Structured data (JSON-LD for rich snippets)
- Sitemap auto-generation
- Robots.txt configuration
- Canonical URLs for duplicate content prevention
**AI Features NO-INDEX:**
- All authenticated pages behind login
- User-generated content (notes, labels)
- Search results, dashboards
- AI-generated content (titles, suggestions)
**Rationale:** Prevent search engines from indexing private user data and AI-generated content.
---
### Accessibility Level (WCAG 2.1 AA)
**Target:** **WCAG 2.1 Level AA** for Phase 1
**AI Feature Accessibility Requirements:**
**1. Title Suggestions:**
- Toast must announce: "3 title suggestions available" to screen readers
- Each suggestion must be keyboard navigable (Arrow keys + Enter)
- Visual focus indicators on all interactive elements
**2. Memory Echo Notifications:**
- Must NOT interrupt screen reader navigation
- Use `role="status"` (not `role="alert"`) for non-critical notifications
- Provide mechanism to dismiss without activating (ESC key)
**3. Semantic Search:**
- Results must be announceable: "5 results found, 3 semantic matches"
- Badges must be descriptive: "Semantic match" (not just icons)
- Keyboard shortcuts for advanced users (Cmd+K for search)
**4. Reformulation Modal:**
- Focus trap in modal (Tab cycles within modal only)
- ESC to close, Enter to confirm
- Progress indicators for AI processing (ARIA live regions)
**Color Contrast:**
- All text: Minimum 4.5:1 contrast ratio (WCAG AA)
- AI UI elements (buttons, badges): 3:1 contrast ratio for large text
- Focus indicators: 3:1 contrast ratio against background
**Testing:**
- Automated testing: axe-core DevTools, WAVE browser extension
- Manual testing: Keyboard-only navigation, screen reader testing (NVDA/JAWS)
- User testing: Include users with disabilities in beta testing
**Accessibility Success Metrics:**
- All AI features usable without mouse
- Zero keyboard traps in AI modals/toasts
- Screen reader compatibility > 90% (NVDA, JAWS, VoiceOver)
---
### Technical Architecture Considerations
**Next.js 16 App Router Patterns:**
**1. Server Components (RSC) for Performance:**
- Note list, search results as Server Components
- AI features as Client Components (need interactivity)
- Hybrid approach: Static shell + dynamic AI content
**2. Streaming for AI Responses:**
- Use Suspense + streaming for slow AI features
- Progressive loading: Show skeleton → partial results → complete results
- Example: Semantic search streams results as they're computed
**3. Error Boundaries:**
- Graceful degradation if AI features fail
- User-friendly error messages (not technical jargon)
- Retry mechanisms with exponential backoff
**4. Caching Strategy:**
- Embeddings cached in database (not regenerated)
- AI responses cached per note (TTL: 24 hours)
- Search results cached for 5 minutes (user-specific)
**Data Flow Architecture:**
```
User Action → Client Component → Server Action → AI Provider
↓ ↓ ↓
UI Update Prisma DB Embedding Generation
↓ ↓
Display Cache Store
```
**State Management:**
- Server State: Prisma + Server Actions (no separate API layer needed)
- Client State: React hooks (useState, useTransition)
- AI State: Server Actions with progressive enhancement
---
### Implementation Considerations
**Phase 1 MVP Scope:**
**IN Scope:**
- Responsive design for mobile/tablet/desktop
- WCAG 2.1 AA compliance
- Performance targets met (< 2s titles, < 300ms search)
- Modern browsers only (Chrome 120+, Firefox 120+, Safari 17+)
- Basic SEO for landing page only
**OUT of Scope (Phase 2+):**
- PWA capabilities (offline mode, install prompt)
- Real-time features (WebSocket, live updates)
- Legacy browser support (IE11, old Safari)
- Advanced SEO (blog, content marketing)
- Accessibility AAA (full compliance)
**Technical Debt to Avoid:**
- Skipping accessibility for "speed" (creates debt later)
- Hardcoding for desktop only (mobile-first approach)
- Blocking UI for AI processing (always background)
- Ignoring performance monitoring (leads to regressions)
## Project Scoping & Phased Development
### MVP Strategy & Philosophy
**MVP Approach:** **Problem-Solving + Experience Hybrid**
Memento Phase 1 MVP IA combines two MVP philosophies:
**1. Problem-Solving MVP:**
- **Core Problem:** "J'ai des centaines de notes et je ne retrouve plus rien"
- **Solution:** Recherche sémantique + suggestions de titres
- **Value:** Utilité immédiate - l'utilisateur retrouve ses notes instantanément
**2. Experience MVP:**
- **Core Experience:** Le moment "Aha!" - "Je n'ai pas cherché, elle m'a trouvée"
- **Solution:** Memory Echo (connexions proactives)
- **Value:** Différenciation unique - innovation que personne n'a
**Resource Requirements:**
- **Team Size:** 1-2 developers (possible pour side project)
- **Timeline:** 8-12 semaines pour MVP complet
- **Skills:** Next.js, Prisma, AI integration (OpenAI/Ollama), Vector embeddings
- **Infrastructure:** Vercel/Netlify (zero DevOps), SQLite database, Ollama optionnel
**Launch Strategy:**
- **Private Beta:** 10-20 early adopters (friends, colleagues)
- **Public Beta:** Open source release with "Beta" badge
- **Growth:** Word-of-mouth, Reddit (r/NoteTaking, r/SideProject), HackerNews
---
### MVP Feature Set (Phase 1)
**Core User Journeys Supported:**
✅ **Journey 1: Alex (Primary User - Success Path)**
- Title suggestions when writing 10+ words
- Semantic search finds notes by meaning
- Memory Echo reveals hidden connections
- Complete workflow: capture → search → discover
✅ **Journey 2: Max (Privacy-First)**
- Ollama local AI processing 100% functional
- Zero data exfiltration (verified in DevTools)
- All features work offline (local provider)
✅ **Journey 4: Sophie (Edge Case)**
- Customizable AI settings (thresholds, frequencies)
- Feedback learning from 👎 responses
- Granular ON/OFF control per feature
**Must-Have Capabilities (MVP):**
**1. Intelligent Title Suggestions**
- Déclenchement automatique après 10+ mots sans titre
- Toast notification non-intrusive avec options "Voir | Plus tard | Ne plus demander"
- 3 suggestions IA générées en < 2s
- Application one-click ou saisie manuelle
- Détection langue automatique (FR, EN, ES, DE)
**2. Hybrid Semantic Search**
- Recherche unifiée (pas de distinction visible utilisateur)
- Badges sur résultats: "Correspondance exacte" | "Correspondance sémantique"
- Affichage top 10 résultats mixés (mots-clés + sémantique)
- Performance < 300ms pour 1000 notes
- Toggle ON/OFF dans Settings IA
**3. Paragraph-Level Reformulation**
- Menu "..." sur chaque note card → "IA Assist" → "Réécrire paragraphe"
- Modal pour sélectionner paragraphe
- Options: "Clarifier", "Raccourcir", "Améliorer style"
- Boutons 👍👎 pour feedback
**4. Memory Echo (Proactive Connections) ⭐ DIFFÉRENCIATEUR**
- Analyse silencieuse en arrière-plan des embeddings existants
- **Max 1 insight proactif par jour** (configurable 0-3)
- Notification: "J'ai remarqué quelque chose..." avec 2 notes connectées
- Boutons "View Connection" | "Dismiss" | 👍👎
- Cosine similarity threshold > 0.75
- Time diversity filter (notes de périodes différentes)
**5. AI Settings Panel**
- Page `/settings/ai` avec checkboxes ON/OFF pour chaque feature:
- ☑ Title Suggestions
- ☑ Semantic Search
- ☑ Reformulation
- ☑ Memory Echo
- Slider pour fréquence Memory Echo (0-3 insights/jour)
- Sélection provider IA: [Ollama (Local) | OpenAI Cloud]
- Indicateurs de statut de connexion IA
**6. Multi-Provider AI Support**
- Ollama local (http://localhost:11434)
- OpenAI API (cloud option)
- Factory pattern pour extensibilité
- Fallback automatique si provider unavailable
**7. Privacy & Control**
- Zéro appel API externe en mode Ollama (vérifiable)
- Boutons feedback 👍👎 pour apprentissage
- Bouton "Ne plus demander" immédiat
- Personnalisation par utilisateur (seuil mots, période Memory Echo)
**Out of Scope (Explicitly Non-MVP):**
- Score de confiance visible (Phase 3)
- Système feedback généralisé (Phase 3)
- Mode conservateur (Phase 3)
- Description images OCR (Phase 2)
- Résumé URLs (Phase 2)
- Templates IA personnalisés (Phase 4)
- Transcription audio (Phase 4)
- Admin dashboard avancé (Phase 2)
- Analytics d'utilisation IA (Phase 2)
---
### Post-MVP Features
**Phase 2 (Post-MVP - Enhancement & Scale):**
**Timeframe:** 3-6 months post-MVP launch
**Additional User Types:**
- Journey 3: Léa (Admin Système) avec dashboard IA
- Power Users avec plus de 1000 notes
**Enhanced IA Features:**
- **Description Images + OCR**
- Bouton IA sur images dans notes
- Génération description automatique
- Extraction texte (OCR)
- **Résumé URLs**
- Détection automatique URLs dans notes
- Bouton "Résumer" pour extraire points clés
- Choix: résumé court vs. analyse détaillée
- **Suggestions Suites Logiques**
- Après chaque note, IA suggère "Idées de suite"
- Basé sur le contenu de la note actuelle
- **AI Settings Avancés**
- Paramètres configurables par feature (température, max tokens, etc.)
- Ajustement par utilisateur (langue force, créativité)
- **Admin Dashboard IA**
- Métriques temps réel (usage today, avg response time)
- Surveillance coûts IA (OpenAI billing estimation)
- Ajustement settings par utilisateur (admin overrides)
- **Onboarding IA**
- Tour guidé pour nouveaux utilisateurs
- Discovery progressif des features IA
**Success Criteria Phase 2:**
- 500+ GitHub stars
- 200+ WAU (Weekly Active Users)
- Week 1-4 retention > 40%
---
**Phase 3 (Expansion - Trust & Intelligence):**
**Timeframe:** 6-12 months post-MVP
**Trust & Transparency:**
- **Score de Confiance Visible**
- Pourcentage affiché pour chaque génération IA
- >90% = ✅ Solide (auto-application)
- 70-89% = ⚠️ Moyen (à vérifier)
- <70% = ❌ Faible (pas d'auto-génération)
- **Système Feedback Généralisé**
- Boutons 👍👎 sur TOUTES les générations IA
- Modal explicatif pour feedback 👎 ("Pourquoi c'est faux?")
- Apprentissage automatique (patterns utilisateur)
- **Mode Conservateur (Safety First)**
- Générations auto seulement si confiance >90%
- Si doute: IA demande confirmation utilisateur
- Réduction fausses positives < 5%
**Advanced Capabilities:**
- **Détection Langue Améliorée**
- Plus de langues supportées (JA, ZH, IT, PT, NL, etc.)
- Language switching automatique (notes multilingues)
- **Memory Echo V2**
- Graph visualization des connexions
- Insights multiples par jour avec priorisation
- Clustering thématique des notes
**Business Model:**
- Lancement freemium avec "Buy me a coffee"
- Features avancées payantes (Phase 4)
- Monétisation éthique sans lock-in
**Success Criteria Phase 3:**
- 1000+ GitHub stars
- 500+ WAU
- Week 1-4 retention > 50%
---
**Phase 4 (Future - Advanced Features):**
**Timeframe:** 12+ months post-MVP
**Advanced Features:**
- **Transcription Audio**
- Notes vocales avec transcription IA
- Commandes vocales ("Crée une note sur X")
- **Organisation Auto**
- IA propose dossiers/catégories
- Tags automatiques hiérarchiques
- **Templates IA Personnalisés**
- IA génère templates selon patterns utilisateur
- "Meeting notes", "Brainstorming", "Project planning"
- **Mode "Super IA"**
- Optimisation complète note (titre + tags + reformulation)
- One-click enhancement
---
### Risk Mitigation Strategy
**Technical Risks:**
**Risk 1: Performance embeddings avec 1000+ notes**
- **Mitigation:** Caching agressif (embeddings stockés en DB), background processing
- **Fallback:** Pagination pour gros volumes de notes
- **Monitoring:** Alertes si > 500ms pour recherche sémantique
**Risk 2: Ollama local lent ou instable**
- **Mitigation:** Support multi-provider (fallback OpenAI automatique)
- **User Control:** Utilisateur peut switcher manuellement
- **Performance:** Mode local optionnel, pas obligatoire
**Risk 3: Memory Echo fait des connexions aléatoires**
- **Mitigation:** Cosine threshold > 0.75, time diversity filter
- **Feedback:** 👎 ajuste le système, apprentissage continu
- **User Control:** Fréquence configurable 0-3/jour, OFF toggle
**Market Risks:**
**Risk 1: Utilisateurs ne voient pas la valeur de Memory Echo**
- **Mitigation:** Fréquence conservative (1/jour max), ne pas spam
- **Onboarding:** Tour guidé met en avant Memory Echo
- **Validation:** Beta testing avec early adopters pour ajuster threshold
**Risk 2: Google Keep ou Notion copient Memory Echo**
- **Mitigation:** First-mover advantage, open source community
- **Moat:** Difficile à copier sans embeddings existants + feedback learning
- **Innovation:** Continuer à innover (Phase 2, 3, 4)
**Risk 3: Adoption IA lente (résistance utilisateur)**
- **Mitigation:** Pattern "Zéro Prise de Tête" - non-intrusif par défaut
- **Control:** ON/OFF granulaire pour chaque feature
- **Education:** Documentation claire, exemples d'utilisation
**Resource Risks:**
**Risk 1: Équipe trop petite (1 dev seul)**
- **Mitigation:** Scope minimal viable, pas de features "nice-to-have"
- **Contingency:** Si ressources limitées, couler Memory Echo (garder pour Phase 2)
- **Priority:** Titres auto + Recherche sémantique = valeur core
**Risk 2: Coûts OpenAI explosent**
- **Mitigation:** Support Ollama local (zero coût marginal)
- **User Choice:** Utilisateur peut choisir provider selon budget
- **Optimization:** Caching, rate limiting par utilisateur
**Risk 3: Timeline plus longue que prévue**
- **Mitigation:** MVP scoping flexible - features peuvent être déplacées
- **Contingency:** Si 8 semaines insuffisantes, étendre à 12 semaines
- **MVP Definition:** Pas besoin de toutes les features parfaites - "good enough" pour launch
**Overall Risk Posture:**
- **Philosophy:** Conservative par défaut, optimiser pour apprentissage
- **Validation:** Beta testing rapide, feedback continu
- **Flexibilité:** Scope adaptable selon contraintes ressources/temps
## Functional Requirements
### AI-Powered Content Enhancement
- FR1: Users can receive AI-generated title suggestions when writing notes without titles
- FR2: Users can view multiple title suggestion options before selecting one
- FR3: Users can apply AI-generated titles to their notes with a single action
- FR4: Users can defer title suggestions to view later
- FR5: Users can dismiss title suggestions for specific notes permanently
- FR6: Users can request AI-powered reformulation of selected paragraph content
- FR7: Users can select different reformulation approaches (clarify, shorten, improve style)
- FR8: Users can replace original content with AI-reformulated versions
- FR9: Users can cancel reformulation actions and retain original content
- FR10: Users can provide positive or negative feedback on AI-generated content
### Intelligent Search & Discovery
- FR11: Users can search notes using keyword queries that match exact text
- FR12: Users can search notes using natural language queries that match semantic meaning
- FR13: Users can view combined search results from both keyword and semantic matching
- FR14: Users can see visual indicators distinguishing exact matches from semantic matches
- FR15: Users can receive proactive insights about connections between related notes
- FR16: Users can view the specific content and context of suggested note connections
- FR17: Users can link related notes together when accepting connection suggestions
- FR18: Users can dismiss proactive connection insights
- FR19: Users can provide feedback on the relevance of suggested note connections
### User Control & Preferences
- FR20: Users can access AI settings to configure individual feature availability
- FR21: Users can enable or disable title suggestions independently
- FR22: Users can enable or disable semantic search independently
- FR23: Users can enable or disable paragraph reformulation independently
- FR24: Users can enable or disable proactive connection insights independently
- FR25: Users can adjust the frequency limit for proactive connection insights
- FR26: Users can customize AI trigger thresholds (e.g., word count for title suggestions)
- FR27: Users can set time period constraints for proactive connection analysis
- FR28: Users can temporarily disable all proactive AI features during focused work sessions
- FR29: Users can re-enable disabled AI features through settings interface
### Privacy & Multi-Provider AI Architecture
- FR30: Users can select between local AI processing (Ollama) and cloud AI processing (OpenAI)
- FR31: Users can verify that local AI processing does not send data external to their device
- FR32: Users can view connection status indicators for AI providers
- FR33: Users can switch between AI providers without losing functionality
- FR34: The system can automatically fallback to alternative AI providers if primary provider fails
- FR35: Users can configure API keys for cloud AI providers
- FR36: Users can remove stored API credentials from the system
- FR37: The system can detect and support multiple languages in user-generated content
- FR38: The system can process AI requests using user's content language while maintaining system prompts in English
### Administration & Operations
- FR39: Administrators can configure default AI provider settings for all users
- FR40: Administrators can set rate limits on AI usage per user
- FR41: Administrators can override individual user AI settings
- FR42: Administrators can monitor real-time AI usage metrics across the system
- FR43: Administrators can view AI processing costs and consumption statistics
- FR44: Administrators can adjust AI model parameters (temperature, max tokens, etc.)
- FR45: Administrators can configure team-wide AI feature availability
- FR46: The system can encrypt and securely store AI provider API keys
### Accessibility & Responsive Design
- FR47: Users can access all AI features using keyboard navigation without mouse input
- FR48: Users can receive screen reader announcements for AI-generated content and suggestions
- FR49: Users can dismiss AI notifications and suggestions using keyboard shortcuts
- FR50: Users can view and interact with AI features on mobile devices (320px-639px)
- FR51: Users can view and interact with AI features on tablet devices (640px-1023px)
- FR52: Users can view and interact with AI features on desktop devices (1024px+)
- FR53: Users can perceive visual focus indicators on all interactive AI elements
- FR54: Users can access AI features with touch targets meeting minimum size requirements (44x44px on mobile)
## Non-Functional Requirements
### Performance
**AI Feature Response Times:**
- NFR-PERF-001: Title suggestions generate within 2 seconds of trigger detection
- NFR-PERF-002: Semantic search results return within 300 milliseconds for databases up to 1,000 notes
- NFR-PERF-003: Memory Echo background analysis completes with less than 100 milliseconds of UI thread blocking
- NFR-PERF-004: Paragraph reformulation completes within 5 seconds for content up to 500 words
**System Performance:**
- NFR-PERF-005: Initial page load achieves First Contentful Paint (FCP) in under 3 seconds on 4G connections
- NFR-PERF-006: Application reaches Time to Interactive (TTI) within 5 seconds on modern browsers
- NFR-PERF-007: JavaScript bundle remains under 200KB gzipped (excluding AI provider libraries)
- NFR-PERF-008: AI features load on-demand without affecting initial application bundle size
**Performance Under Load:**
- NFR-PERF-009: System supports 50 concurrent users with less than 10% performance degradation
- NFR-PERF-010: Search response time remains under 500ms with 10,000 notes in database
---
### Security
**Data Protection:**
- NFR-SEC-001: All user notes are encrypted at rest in the database
- NFR-SEC-002: All data transmitted between client and server uses HTTPS/TLS 1.3+
- NFR-SEC-003: User passwords are hashed using bcrypt with minimum 12 salt rounds
- NFR-SEC-004: AI provider API keys are encrypted when stored in database
**Privacy-First Architecture:**
- NFR-SEC-005: Local AI processing (Ollama) sends zero data to external services
- NFR-SEC-006: Users can verify local processing mode through network inspection tools
- NFR-SEC-007: User content language detection and processing occurs server-side without exposing raw content to external AI providers when using local mode
- NFR-SEC-008: System does not log or store user note content beyond database persistence
**Authentication & Authorization:**
- NFR-SEC-009: User sessions expire after 30 days of inactivity
- NFR-SEC-010: Password reset tokens expire within 1 hour of generation
- NFR-SEC-011: Administrator access requires explicit role assignment (default role is USER)
- NFR-SEC-012: Users can only access their own notes, labels, and AI settings unless explicitly granted admin privileges
**API Security:**
- NFR-SEC-013: All API routes validate user authentication before processing requests
- NFR-SEC-014: Rate limiting prevents abuse of AI endpoints (maximum 100 requests per minute per user)
---
### Accessibility
**WCAG 2.1 Level AA Compliance:**
- NFR-A11Y-001: All AI features are fully operable using keyboard-only navigation
- NFR-A11Y-002: Screen readers announce AI-generated content and suggestions with descriptive text
- NFR-A11Y-003: All interactive AI elements have visible focus indicators with minimum 3:1 contrast ratio
- NFR-A11Y-004: Color alone is not used to convey information; visual indicators include text labels or icons
**Touch Targets (Mobile):**
- NFR-A11Y-005: All interactive AI elements on mobile devices meet minimum tap target size of 44×44 pixels
- NFR-A11Y-006: Touch targets have minimum 8 pixels spacing between adjacent interactive elements
**Responsive Design:**
- NFR-A11Y-007: AI features function correctly on mobile devices (320px-639px viewport width)
- NFR-A11Y-008: AI features function correctly on tablet devices (640px-1023px viewport width)
- NFR-A11Y-009: AI features function correctly on desktop devices (1024px+ viewport width)
**Notification Accessibility:**
- NFR-A11Y-010: AI toast notifications use `role="status"` (not `role="alert"`) to avoid interrupting screen reader navigation
- NFR-A11Y-011: Notifications can be dismissed using keyboard ESC key
---
### Reliability
**System Availability:**
- NFR-REL-001: Application achieves 99% uptime during business hours (9 AM - 6 PM user local time)
- NFR-REL-002: Graceful degradation occurs if AI providers are unavailable (core note-taking features remain functional)
**Error Handling:**
- NFR-REL-003: AI feature failures display user-friendly error messages without technical jargon
- NFR-REL-004: Failed AI requests automatically retry with exponential backoff (maximum 3 attempts)
- NFR-REL-005: System provides fallback to alternative AI provider if primary provider fails
**Data Integrity:**
- NFR-REL-006: All user actions maintain ACID properties (Atomic, Consistent, Isolated, Durable)
- NFR-REL-007: Vector embeddings are cached after generation to prevent redundant processing
**Background Processing:**
- NFR-REL-008: Memory Echo analysis runs asynchronously without blocking user interactions
- NFR-REL-009: Background jobs log failures for administrator review without exposing errors to end users
---
### Integration
**AI Provider Integration:**
- NFR-INT-001: System supports OpenAI API for cloud AI processing
- NFR-INT-002: System supports Ollama API for local AI processing
- NFR-INT-003: Factory pattern allows adding new AI providers without modifying existing code
**Multi-Provider Architecture:**
- NFR-INT-004: Users can switch between AI providers without losing data or functionality
- NFR-INT-005: System automatically detects available AI providers during startup
- NFR-INT-006: Provider connection status indicators display current operational state
**API Compatibility:**
- NFR-INT-007: System maintains compatibility with OpenAI API versions through abstraction layer
- NFR-INT-008: Ollama integration supports all models compatible with `/api/tags` and `/api/embeddings` endpoints
**Extensibility:**
- NFR-INT-009: New AI models can be added through configuration without code changes for supported providers
- NFR-INT-010: Custom OpenAI-compatible endpoints can be configured through settings
---
### Scalability (MVP Scope)
**Phase 1 Capacity:**
- NFR-SCA-001: System supports 50-200 concurrent users with acceptable performance
- NFR-SCA-002: Database performs acceptably with up to 10,000 notes per user
- NFR-SCA-003: Embedding generation throughput supports 100 notes per minute per user
**Resource Efficiency:**
- NFR-SCA-004: SQLite database size remains under 2GB for 100,000 notes with embeddings
- NFR-SCA-005: Memory consumption per user session remains under 100MB
**Post-MVP Consideration:**
- NFR-SCA-006: Architecture supports migration to PostgreSQL for Phase 2 if needed for larger scale