Status: done

## Story

As a user,
I want to see tag suggestions appear as I write my note,
so that I can organize my thoughts without manual effort.

## Acceptance Criteria

1. **Given** an open note editor.
2. **When** I stop typing for more than 1.5 seconds (debounce).
3. **Then** the system sends the content to the AI via a Server Action/API.
4. **And** tag suggestions (ghost tags) are displayed discreetly under the note.
5. **And** a loading indicator shows that analysis is in progress.

## Tasks / Subtasks

- [x] Création du Hook `useAutoTagging` (AC: 2, 3)
  - [x] Implémenter un `useDebounce` de 1.5s sur le contenu de la note
  - [x] Appeler le provider IA (via API route ou Server Action)
  - [x] Gérer l'état de chargement (`isAnalyzing`) et les erreurs
- [x] Création du Composant UI `GhostTags` (AC: 4)
  - [x] Afficher les tags suggérés avec un style visuel distinct (ex: opacité réduite, bordure pointillée)
  - [x] Afficher l'indicateur de chargement (AC: 5)
- [x] Intégration dans l'éditeur de note (AC: 1)
  - [x] Connecter le hook au champ de texte principal
  - [x] Positionner le composant `GhostTags` sous la zone de texte
- [x] Optimisation (AC: 3)
  - [x] Ne pas relancer l'analyse si le contenu n'a pas changé significativement
  - [x] Annuler la requête précédente si l'utilisateur recommence à taper

## Dev Agent Record

### Agent Model Used
BMad Master (Gemini 2.0 Flash)

### Completion Notes List
- [x] Implemented useDebounce and useAutoTagging hooks
- [x] Created /api/ai/tags endpoint with Zod validation
- [x] Built GhostTags component with Tailwind animations
- [x] Integrated into NoteEditor seamlessly

### File List
- keep-notes/hooks/use-debounce.ts
- keep-notes/hooks/use-auto-tagging.ts
- keep-notes/app/api/ai/tags/route.ts
- keep-notes/components/ghost-tags.tsx
- keep-notes/components/note-editor.tsx
