Files
hechakuaa_bot/PROMPT_CLAUDE_CODE_EXP.md
markosbenitez 7743919695 Initial commit — Pedrito Hechakuaa v0
Bot de Telegram para monitoreo de notificaciones judiciales del PJ Paraguay.
Multi-tenant con onboarding conversacional, audit log, y polling automático.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 10:58:32 -03:00

3.8 KiB

Prompt para Claude Code — Agregar comando /exp al bot

Tarea

Agregar la feature "detalle de expediente por número" al bot de Telegram.

Contexto

El reconocimiento del 22/05/2026 confirmó todos los endpoints necesarios. Ver csj_client_nuevos_metodos.py en la raíz del proyecto — tiene el código listo para integrar con documentación inline.

Cambios requeridos

1. En csj_client.py

a) Agregar después de la clase NotificacionPendiente:

  • Clase CasoJudicial (ver csj_client_nuevos_metodos.py)
  • Clase ActuacionCaso (ver csj_client_nuevos_metodos.py)

b) Agregar dentro de la clase CSJClient:

  • Método buscar_expedientes() (ver csj_client_nuevos_metodos.py)
  • Método listar_actuaciones() (ver csj_client_nuevos_metodos.py)

c) El import de httpx ya existe. No agregar dependencias nuevas.

2. En telegram_bot.py

Agregar el comando /exp con este comportamiento:

/exp 198          → busca número 198 sin filtrar por año
/exp 198/2026     → busca número 198, año 2026
/exp carlos       → busca por carátula (texto, no número)

Mensaje de respuesta cuando encuentra un expediente:

📂 Exp. {numero}/{anio}
{caratula}
{circunscripcion} | {estado}

Últimas actuaciones:
• {fecha} — {tipo}: {descripcion_actuacion}
• {fecha} — {tipo}: {descripcion_actuacion}
• {fecha} — {tipo}: {descripcion_actuacion}

({total} actuaciones en total)

Mostrar máximo 3 actuaciones más recientes (las primeras del response, que ya vienen ordenadas por fecha descendente).

Cuando encuentra múltiples expedientes (búsqueda por carátula):

Se encontraron {N} expedientes para "{búsqueda}":

1. Exp. {numero}/{anio} — {caratula_truncada_50_chars}
   {circunscripcion} | {estado}

2. ...

Para ver detalle: /exp {numero}/{anio}

Mostrar máximo 5 resultados. Si hay más, indicar cuántos hay en total.

Cuando no encuentra nada:

No encontré expedientes para "{búsqueda}".
Probá con la carátula o con número/año.

3. En CLAUDE.md

Agregar /exp a la lista de comandos de Telegram.

Parsing del argumento del comando

def parsear_argumento_exp(arg: str) -> dict:
    """
    Parsea el argumento del comando /exp.
    
    Retorna dict con claves posibles:
    - numero (int): número de expediente
    - anio (int): año del expediente
    - caratula (str): texto para buscar por carátula
    
    Ejemplos:
    "198"       → {"numero": 198}
    "198/2026"  → {"numero": 198, "anio": 2026}
    "carlos"    → {"caratula": "carlos"}
    "198/26"    → {"numero": 198, "anio": 2026}  # año de 2 dígitos → 2000+anio
    """

Notas importantes

  • Usar scrub() de utils/sanitize.py en cualquier log que incluya contenido de respuestas del PJ
  • El comando solo responde al TELEGRAM_CHAT_ID autorizado (igual que el resto)
  • Si listar_actuaciones() falla pero buscar_expedientes() tuvo éxito, mostrar igual los datos del caso sin actuaciones (degradación elegante)
  • incluirNotificaciones=false siempre (no mezclar con notificaciones)
  • Truncar carátulas largas a 60 caracteres con "..." en listados
  • Fechas en formato DD/MM/YYYY

Qué NO hacer

  • No agregar paginación interactiva (botones "siguiente página") en esta versión
  • No agregar descarga de documentos en esta versión
  • No cambiar nada del flujo de notificaciones existente
  • No agregar dependencias nuevas

Verificación

Después de implementar, verificar:

  • /exp 198 responde con el caso correcto
  • /exp 198/2026 responde con el caso correcto
  • /exp carlos muestra lista de casos con "carlos" en carátula
  • /exp 999999/1900 responde "No encontré expedientes"
  • Sin credenciales en logs (verificar con LOG_LEVEL=DEBUG)
  • Agrega /exp a la lista de comandos en CLAUDE.md