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

127 lines
3.8 KiB
Markdown

# 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
```python
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