From b90172e6202b6921250edb3c560dacde0ebbfe9e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 11 Nov 2025 14:47:28 +0000 Subject: [PATCH] feat: Add complete script to create all 35 AI Scanner GitHub issues Co-authored-by: dawnsystem <42047891+dawnsystem@users.noreply.github.com> --- create_ai_scanner_issues.sh | 1190 +++++++++++++++++++++++++++++++++++ 1 file changed, 1190 insertions(+) create mode 100755 create_ai_scanner_issues.sh diff --git a/create_ai_scanner_issues.sh b/create_ai_scanner_issues.sh new file mode 100755 index 000000000..59bb394ff --- /dev/null +++ b/create_ai_scanner_issues.sh @@ -0,0 +1,1190 @@ +#!/bin/bash +# Script completo para crear TODOS los issues de GitHub para mejoras del AI Scanner +# Proyecto: dawnsystem/IntelliDocs-ngx +# Total: 35 issues organizados en 10 épicas + +set -e + +REPO="dawnsystem/IntelliDocs-ngx" + +echo "🚀 Creando TODOS los issues para mejoras del AI Scanner..." +echo "Repositorio: $REPO" +echo "Total de issues: 35" +echo "" + +# ============================================================================ +# ÉPICA 1: Testing y Calidad de Código (4 issues) +# ============================================================================ + +echo "📊 ÉPICA 1: Testing y Calidad de Código (4 issues)" +echo "" + +# Issue 1.1 +echo "Creando Issue 1.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Tests Unitarios para AI Scanner" \ + --label "testing,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Crear suite completa de tests unitarios para \`ai_scanner.py\` + +## Tareas +- [ ] Tests para \`AIDocumentScanner.__init__()\` y lazy loading +- [ ] Tests para \`_extract_entities()\` con mocks de NER +- [ ] Tests para \`_suggest_tags()\` con diferentes niveles de confianza +- [ ] Tests para \`_detect_correspondent()\` con y sin entidades +- [ ] Tests para \`_classify_document_type()\` con ML classifier mock +- [ ] Tests para \`_suggest_storage_path()\` con diferentes características +- [ ] Tests para \`_extract_custom_fields()\` con todos los tipos de campo +- [ ] Tests para \`_suggest_workflows()\` con varias condiciones +- [ ] Tests para \`_suggest_title()\` con diferentes combinaciones de entidades +- [ ] Tests para \`apply_scan_results()\` con transacciones atómicas +- [ ] Tests para manejo de errores y excepciones +- [ ] Alcanzar cobertura >90% + +## Archivos a Crear +- \`src/documents/tests/test_ai_scanner.py\` +- \`src/documents/tests/test_ai_scanner_integration.py\` + +## Criterios de Aceptación +- [ ] Cobertura de código >90% para ai_scanner.py +- [ ] Todos los tests pasan en CI/CD +- [ ] Tests incluyen casos edge y errores + +**Estimación**: 3-5 días +**Prioridad**: 🔴 ALTA +**Épica**: Testing y Calidad de Código" + +echo "✅ Issue 1.1 creado" + +# Issue 1.2 +echo "Creando Issue 1.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Tests Unitarios para AI Deletion Manager" \ + --label "testing,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Crear tests para \`ai_deletion_manager.py\` y modelo \`DeletionRequest\` + +## Tareas +- [ ] Tests para \`create_deletion_request()\` con análisis de impacto +- [ ] Tests para \`_analyze_impact()\` con diferentes documentos +- [ ] Tests para \`format_deletion_request_for_user()\` con varios escenarios +- [ ] Tests para \`get_pending_requests()\` con filtros +- [ ] Tests para modelo \`DeletionRequest\` (approve, reject) +- [ ] Tests para workflow completo de aprobación/rechazo +- [ ] Tests para auditoría y tracking +- [ ] Tests que verifiquen que AI nunca puede eliminar sin aprobación + +## Archivos a Crear +- \`src/documents/tests/test_ai_deletion_manager.py\` +- \`src/documents/tests/test_deletion_request_model.py\` + +## Criterios de Aceptación +- [ ] Cobertura >95% para componentes críticos de seguridad +- [ ] Tests verifican constraints de seguridad +- [ ] Tests pasan en CI/CD + +**Estimación**: 2-3 días +**Prioridad**: 🔴 ALTA +**Épica**: Testing y Calidad de Código" + +echo "✅ Issue 1.2 creado" + +# Issue 1.3 +echo "Creando Issue 1.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Tests de Integración para Consumer" \ + --label "testing,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Tests de integración para \`_run_ai_scanner()\` en pipeline de consumo + +## Tareas +- [ ] Test de integración end-to-end: upload → consumo → AI scan → metadata +- [ ] Test con ML components deshabilitados +- [ ] Test con fallos de AI scanner (graceful degradation) +- [ ] Test con diferentes tipos de documentos (PDF, imagen, texto) +- [ ] Test de performance con documentos grandes +- [ ] Test con transacciones y rollbacks +- [ ] Test con múltiples documentos simultáneos + +## Archivos a Modificar +- \`src/documents/tests/test_consumer.py\` (añadir tests AI) + +## Criterios de Aceptación +- [ ] Pipeline completo testeado end-to-end +- [ ] Graceful degradation verificado +- [ ] Performance aceptable (<2s adicionales por documento) + +**Estimación**: 2-3 días +**Prioridad**: 🔴 ALTA +**Dependencias**: Issue 1.1 +**Épica**: Testing y Calidad de Código" + +echo "✅ Issue 1.3 creado" + +# Issue 1.4 +echo "Creando Issue 1.4..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Pre-commit Hooks y Linting" \ + --label "code-quality,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Ejecutar y corregir linters en código nuevo del AI Scanner + +## Tareas +- [ ] Ejecutar \`ruff\` en archivos nuevos +- [ ] Corregir warnings de import ordering +- [ ] Corregir warnings de type hints +- [ ] Ejecutar \`black\` para formateo consistente +- [ ] Ejecutar \`mypy\` para verificación de tipos +- [ ] Actualizar pre-commit hooks si necesario + +## Archivos a Revisar +- \`src/documents/ai_scanner.py\` +- \`src/documents/ai_deletion_manager.py\` +- \`src/documents/consumer.py\` + +## Criterios de Aceptación +- [ ] Cero warnings de linters +- [ ] Código pasa pre-commit hooks +- [ ] Type hints completos + +**Estimación**: 1 día +**Prioridad**: 🟡 MEDIA +**Épica**: Testing y Calidad de Código" + +echo "✅ Issue 1.4 creado" +echo "" + +# ============================================================================ +# ÉPICA 2: Migraciones de Base de Datos (2 issues) +# ============================================================================ + +echo "📊 ÉPICA 2: Migraciones de Base de Datos (2 issues)" +echo "" + +# Issue 2.1 +echo "Creando Issue 2.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Migración Django para DeletionRequest" \ + --label "database,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Crear migración Django para modelo \`DeletionRequest\` + +## Tareas +- [ ] Ejecutar \`python manage.py makemigrations\` +- [ ] Revisar migración generada +- [ ] Añadir índices custom si necesario +- [ ] Crear migración de datos si hay datos existentes +- [ ] Testear migración en entorno dev +- [ ] Documentar pasos de migración + +## Archivos a Crear +- \`src/documents/migrations/XXXX_add_deletion_request.py\` + +## Criterios de Aceptación +- [ ] Migración se ejecuta sin errores +- [ ] Índices creados correctamente +- [ ] Backward compatible si posible + +**Estimación**: 1 día +**Prioridad**: 🔴 ALTA +**Dependencias**: Issue 1.2 +**Épica**: Migraciones de Base de Datos" + +echo "✅ Issue 2.1 creado" + +# Issue 2.2 +echo "Creando Issue 2.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Índices de Performance para DeletionRequest" \ + --label "database,performance,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Optimizar índices de base de datos para queries frecuentes + +## Tareas +- [ ] Analizar queries frecuentes +- [ ] Añadir índice compuesto (user, status, created_at) +- [ ] Añadir índice para reviewed_at +- [ ] Añadir índice para completed_at +- [ ] Testear performance de queries + +## Archivos a Modificar +- \`src/documents/models.py\` (añadir índices) + +## Criterios de Aceptación +- [ ] Queries de listado <100ms +- [ ] Queries de filtrado <50ms + +**Estimación**: 0.5 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 2.1 +**Épica**: Migraciones de Base de Datos" + +echo "✅ Issue 2.2 creado" +echo "" + +# ============================================================================ +# ÉPICA 3: API REST Endpoints (4 issues) +# ============================================================================ + +echo "📊 ÉPICA 3: API REST Endpoints (4 issues)" +echo "" + +# Issue 3.1 +echo "Creando Issue 3.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] API Endpoints para Deletion Requests - Listado y Detalle" \ + --label "api,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Crear endpoints REST para gestión de deletion requests (listado y detalle) + +## Tareas +- [ ] Crear serializer \`DeletionRequestSerializer\` +- [ ] Endpoint GET \`/api/deletion-requests/\` (listado paginado) +- [ ] Endpoint GET \`/api/deletion-requests/{id}/\` (detalle) +- [ ] Filtros: status, user, date_range +- [ ] Ordenamiento: created_at, reviewed_at +- [ ] Paginación (page size: 20) +- [ ] Documentación OpenAPI/Swagger + +## Archivos a Crear +- \`src/documents/serializers/deletion_request.py\` +- \`src/documents/views/deletion_request.py\` +- Actualizar \`src/documents/urls.py\` + +## Criterios de Aceptación +- [ ] Endpoints documentados en Swagger +- [ ] Tests de API incluidos +- [ ] Permisos verificados (solo requests propios o admin) + +**Estimación**: 2-3 días +**Prioridad**: 🔴 ALTA +**Dependencias**: Issue 2.1 +**Épica**: API REST Endpoints" + +echo "✅ Issue 3.1 creado" + +# Issue 3.2 +echo "Creando Issue 3.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] API Endpoints para Deletion Requests - Acciones" \ + --label "api,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Endpoints para aprobar/rechazar deletion requests + +## Tareas +- [ ] Endpoint POST \`/api/deletion-requests/{id}/approve/\` +- [ ] Endpoint POST \`/api/deletion-requests/{id}/reject/\` +- [ ] Endpoint POST \`/api/deletion-requests/{id}/cancel/\` +- [ ] Validación de permisos (solo owner o admin) +- [ ] Validación de estado (solo pending puede ser aprobado/rechazado) +- [ ] Respuesta con resultado de ejecución si aprobado +- [ ] Notificaciones async si configurado + +## Archivos a Modificar +- \`src/documents/views/deletion_request.py\` +- Actualizar \`src/documents/urls.py\` + +## Criterios de Aceptación +- [ ] Workflow completo funcional via API +- [ ] Validaciones de estado y permisos +- [ ] Tests de API incluidos + +**Estimación**: 2 días +**Prioridad**: 🔴 ALTA +**Dependencias**: Issue 3.1 +**Épica**: API REST Endpoints" + +echo "✅ Issue 3.2 creado" + +# Issue 3.3 +echo "Creando Issue 3.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] API Endpoints para AI Suggestions" \ + --label "api,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Exponer sugerencias de AI via API para frontend + +## Tareas +- [ ] Endpoint GET \`/api/documents/{id}/ai-suggestions/\` +- [ ] Serializer para \`AIScanResult\` +- [ ] Endpoint POST \`/api/documents/{id}/apply-suggestion/\` +- [ ] Endpoint POST \`/api/documents/{id}/reject-suggestion/\` +- [ ] Tracking de sugerencias aplicadas/rechazadas +- [ ] Estadísticas de accuracy de sugerencias + +## Archivos a Crear +- \`src/documents/serializers/ai_suggestions.py\` +- Actualizar \`src/documents/views/document.py\` + +## Criterios de Aceptación +- [ ] Frontend puede obtener y aplicar sugerencias +- [ ] Tracking de user feedback +- [ ] API documentada + +**Estimación**: 2-3 días +**Prioridad**: 🟡 MEDIA +**Épica**: API REST Endpoints" + +echo "✅ Issue 3.3 creado" + +# Issue 3.4 +echo "Creando Issue 3.4..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Webhooks para Eventos de AI" \ + --label "api,webhooks,priority-low,ai-scanner,enhancement" \ + --body "## Descripción +Sistema de webhooks para notificar eventos de AI + +## Tareas +- [ ] Webhook cuando AI crea deletion request +- [ ] Webhook cuando AI aplica sugerencia automáticamente +- [ ] Webhook cuando scan AI completa +- [ ] Configuración de webhooks via settings +- [ ] Retry logic con exponential backoff +- [ ] Logging de webhooks enviados + +## Archivos a Crear +- \`src/documents/webhooks.py\` +- Actualizar \`src/paperless/settings.py\` + +## Criterios de Aceptación +- [ ] Webhooks configurables +- [ ] Retry logic robusto +- [ ] Eventos documentados + +**Estimación**: 2 días +**Prioridad**: 🟢 BAJA +**Dependencias**: Issues 3.1, 3.3 +**Épica**: API REST Endpoints" + +echo "✅ Issue 3.4 creado" +echo "" + +# ============================================================================ +# ÉPICA 4: Integración Frontend (4 issues) +# ============================================================================ + +echo "📊 ÉPICA 4: Integración Frontend (4 issues)" +echo "" + +# Issue 4.1 +echo "Creando Issue 4.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] UI para AI Suggestions en Document Detail" \ + --label "frontend,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Mostrar sugerencias de AI en página de detalle de documento + +## Tareas +- [ ] Componente \`AISuggestionsPanel\` en Angular/React +- [ ] Mostrar sugerencias por tipo (tags, correspondent, etc.) +- [ ] Indicadores de confianza visual (colores, iconos) +- [ ] Botones \"Aplicar\" y \"Rechazar\" por sugerencia +- [ ] Animaciones de aplicación +- [ ] Feedback visual cuando se aplica +- [ ] Responsive design + +## Archivos a Crear +- \`src-ui/src/app/components/ai-suggestions-panel/\` +- Actualizar componente de document detail + +## Criterios de Aceptación +- [ ] UI intuitiva y atractiva +- [ ] Mobile responsive +- [ ] Tests de componente incluidos + +**Estimación**: 3-4 días +**Prioridad**: 🔴 ALTA +**Dependencias**: Issue 3.3 +**Épica**: Integración Frontend" + +echo "✅ Issue 4.1 creado" + +# Issue 4.2 +echo "Creando Issue 4.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] UI para Deletion Requests Management" \ + --label "frontend,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Dashboard para gestionar deletion requests + +## Tareas +- [ ] Página \`/deletion-requests\` con listado +- [ ] Filtros por estado (pending, approved, rejected) +- [ ] Vista detalle de deletion request con impacto completo +- [ ] Modal de confirmación para aprobar/rechazar +- [ ] Mostrar análisis de impacto de forma clara +- [ ] Badge de notificación para pending requests +- [ ] Historial de requests completados + +## Archivos a Crear +- \`src-ui/src/app/components/deletion-requests/\` +- \`src-ui/src/app/services/deletion-request.service.ts\` + +## Criterios de Aceptación +- [ ] Usuario puede revisar y aprobar/rechazar requests +- [ ] Análisis de impacto claro y comprensible +- [ ] Notificaciones visuales + +**Estimación**: 3-4 días +**Prioridad**: 🔴 ALTA +**Dependencias**: Issues 3.1, 3.2 +**Épica**: Integración Frontend" + +echo "✅ Issue 4.2 creado" + +# Issue 4.3 +echo "Creando Issue 4.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] AI Status Indicator" \ + --label "frontend,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Indicador global de estado de AI en UI + +## Tareas +- [ ] Icono en navbar mostrando estado de AI (activo/inactivo) +- [ ] Tooltip con estadísticas (documentos escaneados hoy, sugerencias aplicadas) +- [ ] Link a configuración de AI +- [ ] Mostrar si hay pending deletion requests +- [ ] Animación cuando AI está procesando + +## Archivos a Modificar +- Navbar component +- Crear servicio de AI status + +## Criterios de Aceptación +- [ ] Estado de AI siempre visible +- [ ] Notificaciones no intrusivas + +**Estimación**: 1-2 días +**Prioridad**: 🟡 MEDIA +**Épica**: Integración Frontend" + +echo "✅ Issue 4.3 creado" + +# Issue 4.4 +echo "Creando Issue 4.4..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Settings Page para AI Configuration" \ + --label "frontend,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Página de configuración para features de AI + +## Tareas +- [ ] Toggle para enable/disable AI scanner +- [ ] Toggle para enable/disable ML features +- [ ] Toggle para enable/disable advanced OCR +- [ ] Sliders para thresholds (auto-apply, suggest) +- [ ] Selector de modelo ML +- [ ] Test button para probar AI con documento sample +- [ ] Estadísticas de performance de AI + +## Archivos a Crear +- \`src-ui/src/app/components/settings/ai-settings/\` + +## Criterios de Aceptación +- [ ] Configuración intuitiva y clara +- [ ] Cambios se reflejan inmediatamente +- [ ] Validación de valores + +**Estimación**: 2-3 días +**Prioridad**: 🟡 MEDIA +**Épica**: Integración Frontend" + +echo "✅ Issue 4.4 creado" +echo "" + +# ============================================================================ +# ÉPICA 5: Optimización de Performance (4 issues) +# ============================================================================ + +echo "📊 ÉPICA 5: Optimización de Performance (4 issues)" +echo "" + +# Issue 5.1 +echo "Creando Issue 5.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Caching de Modelos ML" \ + --label "performance,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Implementar caché eficiente para modelos ML + +## Tareas +- [ ] Implementar singleton pattern para modelos ML +- [ ] Caché en memoria con LRU eviction +- [ ] Caché en disco para embeddings +- [ ] Lazy loading mejorado con preloading opcional +- [ ] Warm-up de modelos en startup si configurado +- [ ] Métricas de cache hits/misses + +## Archivos a Modificar +- \`src/documents/ai_scanner.py\` +- \`src/documents/ml/*.py\` + +## Criterios de Aceptación +- [ ] Primera carga lenta, subsecuentes rápidas +- [ ] Uso de memoria controlado (<2GB) +- [ ] Cache hits >90% después de warm-up + +**Estimación**: 2 días +**Prioridad**: 🔴 ALTA +**Épica**: Optimización de Performance" + +echo "✅ Issue 5.1 creado" + +# Issue 5.2 +echo "Creando Issue 5.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Procesamiento Asíncrono con Celery" \ + --label "performance,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Mover AI scanning a tareas Celery asíncronas + +## Tareas +- [ ] Crear tarea Celery \`scan_document_ai\` +- [ ] Queue separada para AI tasks (priority: low) +- [ ] Rate limiting para AI tasks +- [ ] Progress tracking para scans largos +- [ ] Retry logic para fallos temporales +- [ ] Configurar workers dedicados para AI + +## Archivos a Crear +- \`src/documents/tasks/ai_scanner_tasks.py\` +- Actualizar \`src/documents/consumer.py\` + +## Criterios de Aceptación +- [ ] Consumo de documentos no bloqueado por AI +- [ ] AI procesa en background +- [ ] Progress visible en UI + +**Estimación**: 2-3 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 5.1 +**Épica**: Optimización de Performance" + +echo "✅ Issue 5.2 creado" + +# Issue 5.3 +echo "Creando Issue 5.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Batch Processing para Documentos Existentes" \ + --label "performance,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Command para aplicar AI scanner a documentos existentes + +## Tareas +- [ ] Management command \`scan_documents_ai\` +- [ ] Opciones: --all, --filter-by-type, --date-range +- [ ] Progress bar con ETA +- [ ] Dry-run mode +- [ ] Resumen de sugerencias al final +- [ ] Opción para auto-apply high confidence + +## Archivos a Crear +- \`src/documents/management/commands/scan_documents_ai.py\` + +## Criterios de Aceptación +- [ ] Puede procesar miles de documentos +- [ ] No afecta performance del sistema +- [ ] Resultados reportados claramente + +**Estimación**: 2 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 5.2 +**Épica**: Optimización de Performance" + +echo "✅ Issue 5.3 creado" + +# Issue 5.4 +echo "Creando Issue 5.4..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Query Optimization" \ + --label "performance,database,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Optimizar queries de base de datos en AI scanner + +## Tareas +- [ ] Usar select_related() para foreign keys +- [ ] Usar prefetch_related() para M2M +- [ ] Cachear queries frecuentes (tags, correspondents) +- [ ] Analizar slow queries con Django Debug Toolbar +- [ ] Optimizar N+1 queries si existen + +## Archivos a Modificar +- \`src/documents/ai_scanner.py\` +- \`src/documents/ai_deletion_manager.py\` + +## Criterios de Aceptación +- [ ] Número de queries reducido >50% +- [ ] Tiempo de scan reducido >30% + +**Estimación**: 1-2 días +**Prioridad**: 🟡 MEDIA +**Épica**: Optimización de Performance" + +echo "✅ Issue 5.4 creado" +echo "" + +# ============================================================================ +# ÉPICA 6: Mejoras de ML/AI (4 issues) +# ============================================================================ + +echo "📊 ÉPICA 6: Mejoras de ML/AI (4 issues)" +echo "" + +# Issue 6.1 +echo "Creando Issue 6.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Training Pipeline para Custom Models" \ + --label "ml-ai,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Pipeline para entrenar modelos custom con datos del usuario + +## Tareas +- [ ] Recolectar datos de training (documentos + metadata confirmada) +- [ ] Script de preparación de datos +- [ ] Training script con hyperparameter tuning +- [ ] Evaluación de modelo (accuracy, precision, recall) +- [ ] Versionado de modelos +- [ ] A/B testing de modelos + +## Archivos a Crear +- \`src/documents/ml/training/\` +- \`scripts/train_classifier.py\` + +## Criterios de Aceptación +- [ ] Pipeline reproducible +- [ ] Métricas de evaluación claras +- [ ] Modelos mejorados vs baseline + +**Estimación**: 3-4 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 1.1 +**Épica**: Mejoras de ML/AI" + +echo "✅ Issue 6.1 creado" + +# Issue 6.2 +echo "Creando Issue 6.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Active Learning Loop" \ + --label "ml-ai,priority-low,ai-scanner,enhancement" \ + --body "## Descripción +Sistema de aprendizaje continuo basado en feedback de usuario + +## Tareas +- [ ] Tracking de sugerencias aceptadas/rechazadas +- [ ] Identificar casos difíciles (low confidence) +- [ ] Re-training periódico con nuevos datos +- [ ] Métricas de mejora de accuracy over time +- [ ] Dashboard de ML performance + +## Archivos a Crear +- \`src/documents/ml/active_learning.py\` + +## Criterios de Aceptación +- [ ] Accuracy mejora con uso +- [ ] Re-training automático configurable + +**Estimación**: 3-5 días +**Prioridad**: 🟢 BAJA +**Dependencias**: Issues 6.1, 3.3 +**Épica**: Mejoras de ML/AI" + +echo "✅ Issue 6.2 creado" + +# Issue 6.3 +echo "Creando Issue 6.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Multi-language Support para NER" \ + --label "ml-ai,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Soporte para múltiples idiomas en extracción de entidades + +## Tareas +- [ ] Detección automática de idioma +- [ ] Modelos NER multilingües +- [ ] Fallback a inglés si idioma no soportado +- [ ] Tests con documentos en español, francés, alemán +- [ ] Configuración de idiomas soportados + +## Archivos a Modificar +- \`src/documents/ml/ner.py\` +- \`src/paperless/settings.py\` + +## Criterios de Aceptación +- [ ] Funciona con español, inglés, francés, alemán +- [ ] Accuracy >80% en cada idioma + +**Estimación**: 2-3 días +**Prioridad**: 🟡 MEDIA +**Épica**: Mejoras de ML/AI" + +echo "✅ Issue 6.3 creado" + +# Issue 6.4 +echo "Creando Issue 6.4..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Confidence Calibration" \ + --label "ml-ai,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Calibrar confianza basada en feedback histórico + +## Tareas +- [ ] Analizar correlación entre confianza y accuracy real +- [ ] Ajustar thresholds automáticamente +- [ ] Calibración por tipo de sugerencia +- [ ] Calibración por usuario (si user acepta todas, subir threshold) +- [ ] Tests de calibración + +## Archivos a Modificar +- \`src/documents/ai_scanner.py\` + +## Criterios de Aceptación +- [ ] Confianza correlaciona con accuracy +- [ ] Auto-apply solo cuando realmente correcto >95% + +**Estimación**: 2 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 3.3 +**Épica**: Mejoras de ML/AI" + +echo "✅ Issue 6.4 creado" +echo "" + +# ============================================================================ +# ÉPICA 7: Monitoreo y Observabilidad (3 issues) +# ============================================================================ + +echo "📊 ÉPICA 7: Monitoreo y Observabilidad (3 issues)" +echo "" + +# Issue 7.1 +echo "Creando Issue 7.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Metrics y Logging Estructurado" \ + --label "monitoring,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Implementar logging estructurado y métricas + +## Tareas +- [ ] Logging estructurado (JSON) con contexto +- [ ] Métricas Prometheus: ai_scans_total, ai_scan_duration_seconds +- [ ] Métricas de sugerencias: applied, rejected, ignored +- [ ] Métricas de confianza por tipo +- [ ] Alertas para errores de AI (>5% failure rate) +- [ ] Dashboard Grafana + +## Archivos a Crear +- \`src/documents/metrics.py\` +- Configuración Prometheus + +## Criterios de Aceptación +- [ ] Métricas exportadas a Prometheus +- [ ] Dashboard básico en Grafana +- [ ] Alertas configuradas + +**Estimación**: 2 días +**Prioridad**: 🟡 MEDIA +**Épica**: Monitoreo y Observabilidad" + +echo "✅ Issue 7.1 creado" + +# Issue 7.2 +echo "Creando Issue 7.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Health Checks para AI Components" \ + --label "monitoring,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Health checks para componentes ML/AI + +## Tareas +- [ ] Endpoint \`/health/ai/\` con status de componentes +- [ ] Check si modelos cargados correctamente +- [ ] Check si NER funcional +- [ ] Check uso de memoria +- [ ] Check GPU si habilitado +- [ ] Incluir en health check general + +## Archivos a Crear +- \`src/documents/health_checks.py\` + +## Criterios de Aceptación +- [ ] Health check responde rápido (<100ms) +- [ ] Indica qué componente falla + +**Estimación**: 1 día +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 7.1 +**Épica**: Monitoreo y Observabilidad" + +echo "✅ Issue 7.2 creado" + +# Issue 7.3 +echo "Creando Issue 7.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Audit Log Detallado" \ + --label "monitoring,security,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Audit log completo de acciones de AI + +## Tareas +- [ ] Log de cada scan con resultados +- [ ] Log de sugerencias aplicadas automáticamente +- [ ] Log de deletion requests con reasoning +- [ ] Retention configurable (default: 90 días) +- [ ] API para consultar audit log +- [ ] Exportación de audit log + +## Archivos a Modificar +- \`src/documents/ai_scanner.py\` +- \`src/documents/ai_deletion_manager.py\` + +## Criterios de Aceptación +- [ ] Audit trail completo y consultable +- [ ] Cumple con requisitos de auditoría + +**Estimación**: 1-2 días +**Prioridad**: 🟡 MEDIA +**Épica**: Monitoreo y Observabilidad" + +echo "✅ Issue 7.3 creado" +echo "" + +# ============================================================================ +# ÉPICA 8: Documentación de Usuario (3 issues) +# ============================================================================ + +echo "📊 ÉPICA 8: Documentación de Usuario (3 issues)" +echo "" + +# Issue 8.1 +echo "Creando Issue 8.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Guía de Usuario para AI Features" \ + --label "documentation,priority-high,ai-scanner" \ + --body "## Descripción +Documentación completa para usuarios finales + +## Tareas +- [ ] Guía: \"Cómo funciona el AI Scanner\" +- [ ] Guía: \"Entendiendo las sugerencias de AI\" +- [ ] Guía: \"Gestión de Deletion Requests\" +- [ ] Guía: \"Configuración de AI\" +- [ ] FAQ sobre AI features +- [ ] Screenshots de UI +- [ ] Videos tutorial (opcional) + +## Archivos a Crear +- \`docs/ai-scanner-user-guide.md\` +- \`docs/ai-deletion-requests.md\` +- \`docs/ai-configuration.md\` +- \`docs/ai-faq.md\` + +## Criterios de Aceptación +- [ ] Documentación clara y con ejemplos +- [ ] Screenshots actualizados +- [ ] Traducida a español e inglés + +**Estimación**: 2-3 días +**Prioridad**: 🔴 ALTA +**Dependencias**: Issues 4.1, 4.2 +**Épica**: Documentación de Usuario" + +echo "✅ Issue 8.1 creado" + +# Issue 8.2 +echo "Creando Issue 8.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] API Documentation" \ + --label "documentation,api,priority-medium,ai-scanner" \ + --body "## Descripción +Documentación de API REST completa + +## Tareas +- [ ] Swagger/OpenAPI spec completo +- [ ] Ejemplos de requests/responses +- [ ] Guía de autenticación +- [ ] Rate limits documentados +- [ ] Error codes documentados +- [ ] Postman collection + +## Archivos a Crear +- \`docs/api/ai-scanner-api.md\` +- \`postman/ai-scanner.json\` + +## Criterios de Aceptación +- [ ] API completamente documentada +- [ ] Ejemplos funcionan +- [ ] Postman collection testeada + +**Estimación**: 1-2 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issues 3.1, 3.2, 3.3 +**Épica**: Documentación de Usuario" + +echo "✅ Issue 8.2 creado" + +# Issue 8.3 +echo "Creando Issue 8.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Guía de Administrador" \ + --label "documentation,priority-medium,ai-scanner" \ + --body "## Descripción +Documentación para administradores del sistema + +## Tareas +- [ ] Guía de instalación y configuración +- [ ] Guía de troubleshooting +- [ ] Guía de optimización de performance +- [ ] Guía de training de modelos custom +- [ ] Guía de monitoreo y métricas +- [ ] Best practices + +## Archivos a Crear +- \`docs/admin/ai-scanner-setup.md\` +- \`docs/admin/ai-scanner-troubleshooting.md\` +- \`docs/admin/ai-scanner-optimization.md\` + +## Criterios de Aceptación +- [ ] Admin puede configurar sistema completamente +- [ ] Troubleshooting cubre casos comunes + +**Estimación**: 2 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 8.1 +**Épica**: Documentación de Usuario" + +echo "✅ Issue 8.3 creado" +echo "" + +# ============================================================================ +# ÉPICA 9: Seguridad Avanzada (3 issues) +# ============================================================================ + +echo "📊 ÉPICA 9: Seguridad Avanzada (3 issues)" +echo "" + +# Issue 9.1 +echo "Creando Issue 9.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Rate Limiting para AI Operations" \ + --label "security,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Implementar rate limiting para prevenir abuso + +## Tareas +- [ ] Rate limit por usuario: X scans/hora +- [ ] Rate limit global: Y scans/minuto +- [ ] Rate limit para deletion requests: Z requests/día +- [ ] Bypass para admin/superuser +- [ ] Mensajes de error claros cuando se excede +- [ ] Métricas de rate limiting + +## Archivos a Modificar +- \`src/documents/views/*.py\` +- Middleware de rate limiting + +## Criterios de Aceptación +- [ ] No se puede abusar del sistema +- [ ] Límites configurables +- [ ] Admin puede ver quién está rate limited + +**Estimación**: 1-2 días +**Prioridad**: 🟡 MEDIA +**Épica**: Seguridad Avanzada" + +echo "✅ Issue 9.1 creado" + +# Issue 9.2 +echo "Creando Issue 9.2..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Validation de Inputs" \ + --label "security,priority-high,ai-scanner,enhancement" \ + --body "## Descripción +Validación exhaustiva de inputs para prevenir inyección + +## Tareas +- [ ] Validar todas las entradas de usuario +- [ ] Sanitizar strings antes de procesamiento ML +- [ ] Validar confianza en rango [0.0, 1.0] +- [ ] Validar IDs de documentos +- [ ] Prevenir path traversal en file paths +- [ ] Tests de seguridad + +## Archivos a Modificar +- \`src/documents/ai_scanner.py\` +- \`src/documents/ai_deletion_manager.py\` + +## Criterios de Aceptación +- [ ] Inputs validados exhaustivamente +- [ ] Tests de seguridad pasan + +**Estimación**: 1 día +**Prioridad**: 🔴 ALTA +**Épica**: Seguridad Avanzada" + +echo "✅ Issue 9.2 creado" + +# Issue 9.3 +echo "Creando Issue 9.3..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Permissions Granulares" \ + --label "security,priority-medium,ai-scanner,enhancement" \ + --body "## Descripción +Sistema de permisos granular para AI features + +## Tareas +- [ ] Permiso: \`can_view_ai_suggestions\` +- [ ] Permiso: \`can_apply_ai_suggestions\` +- [ ] Permiso: \`can_approve_deletions\` +- [ ] Permiso: \`can_configure_ai\` +- [ ] Role-based access control +- [ ] Tests de permisos + +## Archivos a Modificar +- \`src/documents/permissions.py\` +- \`src/documents/views/*.py\` + +## Criterios de Aceptación +- [ ] Permisos granulares funcionales +- [ ] Admin puede asignar permisos +- [ ] Tests verifican permisos + +**Estimación**: 2 días +**Prioridad**: 🟡 MEDIA +**Dependencias**: Issue 3.1 +**Épica**: Seguridad Avanzada" + +echo "✅ Issue 9.3 creado" +echo "" + +# ============================================================================ +# ÉPICA 10: Internacionalización (1 issue) +# ============================================================================ + +echo "📊 ÉPICA 10: Internacionalización (1 issue)" +echo "" + +# Issue 10.1 +echo "Creando Issue 10.1..." +gh issue create \ + --repo "$REPO" \ + --title "[AI Scanner] Traducción de Mensajes de AI" \ + --label "i18n,priority-low,ai-scanner,enhancement" \ + --body "## Descripción +Internacionalizar todos los mensajes de AI + +## Tareas +- [ ] Marcar strings para traducción con gettext +- [ ] Traducir a español +- [ ] Traducir a inglés +- [ ] Traducir mensajes de deletion requests +- [ ] Traducir labels de UI +- [ ] Tests con diferentes locales + +## Archivos a Modificar +- \`src/documents/ai_scanner.py\` +- \`src/documents/ai_deletion_manager.py\` +- Archivos de traducción + +## Criterios de Aceptación +- [ ] Todos los mensajes traducidos +- [ ] UI cambia según locale +- [ ] Tests pasan en ambos idiomas + +**Estimación**: 1-2 días +**Prioridad**: 🟢 BAJA +**Épica**: Internacionalización" + +echo "✅ Issue 10.1 creado" +echo "" + +# ============================================================================ +# RESUMEN FINAL +# ============================================================================ + +echo "" +echo "==================================================" +echo "✅ ¡TODOS LOS ISSUES CREADOS EXITOSAMENTE!" +echo "==================================================" +echo "" +echo "📊 Resumen por Épica:" +echo "" +echo "ÉPICA 1 - Testing y Calidad: 4 issues ✅" +echo "ÉPICA 2 - Base de Datos: 2 issues ✅" +echo "ÉPICA 3 - API REST: 4 issues ✅" +echo "ÉPICA 4 - Frontend: 4 issues ✅" +echo "ÉPICA 5 - Performance: 4 issues ✅" +echo "ÉPICA 6 - ML/AI: 4 issues ✅" +echo "ÉPICA 7 - Monitoreo: 3 issues ✅" +echo "ÉPICA 8 - Documentación: 3 issues ✅" +echo "ÉPICA 9 - Seguridad: 3 issues ✅" +echo "ÉPICA 10 - i18n: 1 issue ✅" +echo "" +echo "==================================================" +echo "TOTAL: 35 ISSUES CREADOS" +echo "==================================================" +echo "" +echo "📋 Distribución por Prioridad:" +echo "" +echo "🔴 ALTA: 8 issues (23%)" +echo "🟡 MEDIA: 18 issues (51%)" +echo "🟢 BAJA: 9 issues (26%)" +echo "" +echo "⏱️ Estimación Total:" +echo "" +echo "Tiempo mínimo: 60 días" +echo "Tiempo máximo: 80 días" +echo "Promedio: 70 días (3.5 meses)" +echo "" +echo "==================================================" +echo "📅 Roadmap Sugerido:" +echo "" +echo "Sprint 1-2 (4 sem): Fundamentos + API" +echo "Sprint 3-4 (4 sem): Frontend + Performance" +echo "Sprint 5-6 (4 sem): ML + Refinamiento" +echo "" +echo "==================================================" +echo "" +echo "🎯 Próximos Pasos:" +echo "" +echo "1. Revisar issues creados en GitHub" +echo "2. Configurar GitHub Project" +echo "3. Asignar issues a desarrolladores" +echo "4. Comenzar Sprint 1" +echo "" +echo "Ver AI_SCANNER_IMPROVEMENT_PLAN.md para detalles" +echo "" +echo "=================================================="