Ou tapez /image-processing-pipeline dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.
🔑 Déclencheurs automatiques
Le skill s'active automatiquement quand votre demande contient :
4\. Compression et format -- Compression JPEG intelligente : qualité dynamique selon taille (70-90%), WebP pour Android pour meilleur ratio taille/qualité. Réduire résolution si >4MP pour performance. Compression lossless pour documents légaux.
6\. Intégration OCR et ML -- Pipeline synchronisé : capture -> enhance -> OCR (ML Kit Text Recognition ar/fr/en) -> extract fields (regex patterns CIN, passeport, rib) -> validate format (Luhn, IBAN, MRZ). Feedback temps réel.
7\. Cache et storage -- Temp storage avec LifecycleAware storage, cleanup automatique. Encryption des images temporaires (Android Keystore). Purge après upload confirmé. Fallback offline avec Room cache metadata.
8\. Performance optimisation -- Coroutines pour processing asynchrone (Dispatchers.IO), batch processing, image tiling pour grandes images. Memory management : recycle Bitmaps, utiliser Glide/Coil avec size constraints. Profiling avec Android Profiler.
Règles
Privacy by design : Jamais stocker images brutes sur serveur. Traitement on-device quand possible. Auto-delete après 24h ou upload confirmé. Chiffrement AES-256 pour images en transit.
Quality gates : Minimum 300 DPI équivalent, pas de blur, luminosité suffisante. Rejeter automatiquement avec message utilisateur clair ("Image floue, recommencez"). Pas de fallback silencieux.
ML Kit first : Préférer ML Kit de Google (optimisé mobile, TFLite, support ar/fr) avant OpenCV. Utiliser CameraX ML Vision pour processing temps réel. Fallback OpenCV pour opérations avancées.
Async processing : Toutes opérations IO sur Dispatchers.IO, UI update sur Main. Timeout max 5s par étape. Cancelable avec Job lifecycle. UI feedback progress (ProgressBar, Skeleton).
Cross-platform : Kotlin Multiplatform avec shared processing logic. Expect/actual pour CameraX (Android) vs AVFoundation (iOS). Un API : processImage(Bitmap) -> Result<Image, Error>.