Volver al feed
🇨🇱Chile·Laboral Skill· 23 abr 2026· ES

Recopilador OJV: descargar ebook completo de causas vía Chrome MCP

Descarga el expediente completo (Ebook PDF) de causas laborales y civiles del PJUD usando solo Chrome MCP, sin Playwright.

JM
José MuñozTop· @jose_munoz· Santiago
4.3(3)
0 comentarios16descargas Historial
skill.md · Laboral
---
name: ojv-recopilador
description: >
  Descarga automática de ebooks (PDFs completos) desde la Oficina Judicial Virtual del PJUD (OJV)
  usando Chrome MCP — sin Playwright, sin scripts externos, 100% automático dentro de Cowork.

  Úsala cuando el agente RECOPILADOR de Procurador X necesite obtener documentos de causas
  laborales o civiles desde el PJUD. También sirve para descargas manuales de ebooks.

  Activa cuando se diga: "descarga el ebook", "baja los documentos del PJUD",
  "recopila los documentos de la causa", "sub-paso A del recopilador",
  o cualquier variante que implique obtener PDFs de la OJV del PJUD con Chrome automático.

  Funciona con causas laborales (T-, O-, M-, E-, S-, U-, V-, I-) y civiles (C-).
  Selectores confirmados en test en vivo del 2026-03-29.
---

# Skill: OJV Recopilador — Descarga automática de Ebooks PJUD con Chrome MCP

Descarga el Ebook (PDF con expediente completo) de una o más causas desde la OJV del PJUD,
usando exclusivamente las herramientas de Chrome MCP (sin Playwright, sin scripts externos).
Verificado en producción el 29/03/2026.

---

## ESTRATEGIA GENERAL

La OJV no requiere autenticación. La estrategia clave es:
- **Buscar con Corte=Todos y Tribunal=Todos** → evita conocer el tribunal exacto
- **Seleccionar resultado por demandado** → si hay múltiples causas con el mismo número de RIT, elegir la que coincide con el nombre del demandado de la causa
- **Descargar ebook desde pestaña PJUD** → usar `fetch` con `credentials:'include'` desde la misma pestaña

---

## PASO 0: Obtener o verificar tab PJUD

```javascript
// Verificar que tenemos un tab activo del PJUD
// Si no, navegar a la OJV
```

Navegar a: `https://oficinajudicialvirtual.pjud.cl/indexN.php`

Hacer clic en "Consulta Unificada" en el menú lateral, O ejecutar en la consola:
```javascript
accesoConsultaCausas();
```
Esto navega al formulario de búsqueda en `indexN.php`.

---

## PASO 1: Llenar el formulario de búsqueda

### 1.1 — Determinar competencia y tipo

| Prefijo RIT | Competencia | value #competencia | value #conTipoCausa |
|-------------|-------------|-------------------|---------------------|
| `C-`        | Civil       | 3                 | "C"                 |
| `T-`        | Laboral     | 4                 | "T"                 |
| `O-`        | Laboral     | 4                 | "O"                 |
| `M-`        | Laboral     | 4                 | "M"                 |
| `E-`        | Laboral     | 4                 | "E"                 |
| `S-`        | Laboral     | 4                 | "S"                 |
| `U-`        | Laboral     | 4                 | "U"                 |
| `V-`        | Laboral     | 4                 | "V"                 |
| `I-`        | Laboral     | 4                 | "I"                 |

### 1.2 — Seleccionar competencia con JavaScript

**IMPORTANTE:** Los dropdowns de la OJV son dependientes. Siempre usar `javascript_tool` para cambiar valores y disparar eventos `change`. NO usar `form_input` ya que no dispara los eventos necesarios.

```javascript
// Paso 1: Seleccionar competencia (4=Laboral, 3=Civil)
var sel = document.getElementById('competencia');
sel.value = '4';  // o '3' para Civil
sel.dispatchEvent(new Event('change'));
```

Esperar 1-2 segundos (el dropdown de Corte se recarga).

### 1.3 — Seleccionar Corte = Todos

```javascript
// Paso 2: Seleccionar Corte = Todos (value=0)
// El dropdown #conCorte se habrá recargado
var corte = document.getElementById('conCorte');
corte.value = '0';  // "Todos"
corte.dispatchEvent(new Event('change'));
```

Esperar 1-2 segundos (el dropdown de Tribunal se recarga).

### 1.4 — Seleccionar Tribunal = Todos

```javascript
// Paso 3: Seleccionar Tribunal = Todos (value=0)
var trib = document.getElementById('conTribunal');
trib.value = '0';  // "Todos"
trib.dispatchEvent(new Event('change'));
```

Esperar 1 segundo.

### 1.5 — Seleccionar Tipo de Causa

```javascript
// Paso 4: Seleccionar tipo de causa según letra del RIT
var tipo = document.getElementById('conTipoCausa');
tipo.value = 'T';  // o 'O', 'C', etc.
tipo.dispatchEvent(new Event('change'));
```

### 1.6 — Ingresar Rol y Año

```javascript
// Paso 5: Ingresar número de rol (sin prefijo ni año)
// Para RIT T-1161-2025: rol=1161, año=2025
document.getElementById('conRolCausa').value = '1161';
document.getElementById('conEraCausa').value = '2025';
```

### 1.7 — Hacer clic en Buscar

Usar `find` para localizar el botón, luego hacer clic:
```
find: "Buscar" button
click: #btnConConsulta
```

O con JavaScript:
```javascript
document.getElementById('btnConConsulta').click();
```

Esperar 2-3 segundos para que carguen los resultados.

---

## PASO 2: Seleccionar el resultado correcto

### 2.1 — Leer resultados con screenshot o get_page_text

Tomar screenshot para ver los resultados. La tabla mostrará columnas como:
- Tribunal
- RIT
- Caratulado (partes del juicio)
- Acciones (íconos)

### 2.2 — Identificar el resultado correcto

Si hay **un solo resultado**: hacer clic directamente.

Si hay **múltiples resultados** (mismo número de RIT en distintos tribunales):
- Comparar la columna "Caratulado" con el nombre del demandado esperado
- Seleccionar el que coincide con el demandado de la causa

### 2.3 — Abrir detalle de la causa

**Para causas LABORALES:**
```javascript
// Buscar los links de detalle y hacer clic en el correcto
// Los links abren el modal #modalDetalleLaboral
document.querySelector('a[href="#modalDetalleLaboral"]').click();
// Si hay múltiples, usar el índice correcto:
document.querySelectorAll('a[href="#modalDetalleLaboral"]')[0].click();
```

**Para causas CIVILES:**
```javascript
document.querySelector('i.fa-search').closest('a').click();
// O:
document.querySelector('i.glyphicon-search').closest('a').click();
```

Esperar 1-2 segundos para que cargue el modal.

---

## PASO 3: Descargar el Ebook

### 3.1 — Verificar que existe el link de Ebook

Tomar screenshot del modal o buscar el elemento:
```javascript
var ebookLink = document.querySelector('a[title="Descargar Ebook"]');
ebookLink !== null  // true si existe
```

Si `null`: la causa **no tiene Ebook disponible**. Registrar en manifiesto como `"ebook_pjud": false` y continuar con resoluciones individuales (Paso 4).

### 3.2 — Obtener la URL del Ebook

```javascript
// El link abre un form que hace submit hacia newebooklaboral.php
// Obtener la URL que se generará:
var form = document.querySelector('a[title="Descargar Ebook"]').closest('form');
var input = form.querySelector('input[name="dtaEbook"]');
var ebookUrl = 'https://oficinajudicialvirtual.pjud.cl/newebooklaboral.php?dtaEbook=' + encodeURIComponent(input.value);
ebookUrl  // retornar esta URL
```

### 3.3 — Abrir el Ebook en nueva pestaña

```javascript
// Hacer submit del form (abre nueva pestaña con el PDF)
var form = document.querySelector('a[title="Descargar Ebook"]').closest('form');
form.submit();
```

Esperar 3-5 segundos para que cargue la nueva pestaña. La nueva pestaña estará en el dominio `oficinajudicialvirtual.pjud.cl`.

### 3.4 — Descargar el PDF desde la nueva pestaña PJUD

Cambiar al tab recién abierto (usar `tabs_context_mcp` para obtener su ID), luego ejecutar:

```javascript
// Descargar el PDF usando fetch con credenciales (misma sesión PJUD)
(async () => {
  const url = window.location.href;
  const response = await fetch(url, {credentials: 'include'});
  if (!response.ok) return 'ERROR: ' + response.status;
  const blob = await response.blob();
  if (blob.size < 1000) return 'ERROR: blob muy pequeño (' + blob.size + ' bytes)';
  const objectUrl = URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.href = objectUrl;
  a.download = 'EBOOK_[RIT].pdf';  // reemplazar [RIT] con el RIT real, ej: EBOOK_T-1161-2025.pdf
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
  URL.revokeObjectURL(objectUrl);
  return 'OK: ' + blob.size + ' bytes descargados';
})();
```

**Verificar** que el resultado es `"OK: XXXXX bytes"`. Un ebook típico tiene entre 1MB y 10MB.

### 3.5 — Mover el PDF a la carpeta de la causa

El PDF se descarga a la carpeta de Descargas por defecto. Moverlo a:
```
[workspace]/Procurador X/[RIT]_[CARATULADO]/Expediente_PJUD/EBOOK_[RIT].pdf
```

Usar Bash:
```bash
# Mover desde Downloads a carpeta de causa
mv "/ruta/downloads/EBOOK_[RIT].pdf" "/sessions/.../mnt/Procurador X/[RIT]_[CARATULADO]/Expediente_PJUD/EBOOK_[RIT].pdf"
```

O encontrar el archivo más reciente en Descargas:
```bash
ls -t ~/Downloads/*.pdf | head -1
```

---

## PASO 4: Resoluciones individuales (alternativa si no hay Ebook)

Si la causa no tiene Ebook, intentar descargar las resoluciones más recientes:

### 4.1 — En el modal de detalle, ir a pestaña "Resoluciones"

```javascript
// Buscar pestaña de resoluciones en el modal
document.querySelector('#modalDetalleLaboral .nav-tabs a[href*="resolucion"]')?.click();
// O buscar por texto
Array.from(document.querySelectorAll('#modalDetalleLaboral .nav-tabs a'))
  .find(a => a.textContent.includes('Resolución') || a.textContent.includes('Movimiento'))?.click();
```

### 4.2 — Descargar las 2-3 más recientes

```javascript
// Ver los links de resoluciones disponibles
var links = document.querySelectorAll('#modalDetalleLaboral a[href*="pdf"], #modalDetalleLaboral a[onclick*="pdf"]');
links.length + ' resoluciones encontradas';
```

Hacer clic en los 2-3 más recientes. Repetir el proceso de descarga (Paso 3.4) para cada uno.

---

## PASO 5: Leer el PDF descargado

Después de descargar, usar el Read tool sobre el PDF:
```
Read: /sessions/.../mnt/Procurador X/[RIT]_[CARATULADO]/Expediente_PJUD/EBOOK_[RIT].pdf
```

Extraer:
- Hechos del caso y pretensiones del demandante
- Montos demandados
- Argumentos de defensa ya planteados (si los hay)
- Últimas resoluciones del tribunal
- Fecha de audiencias fijadas

Esta información se usa para crear `CONTEXTO_CAUSA.md` (Sub-paso D del Recopilador).

---

## FLUJO COMPLETO — RESUMEN

```
1. Navegar a OJV indexN.php → Consulta Unificada
2. competencia: value=4 (Laboral) → change event
3. Esperar 1s → corte: value=0 (Todos) → change event
4. Esperar 1s → tribunal: value=0 (Todos) → change event
5. tipo: value=letra del RIT → change event
6. rol: número, año: año
7. Click #btnConConsulta
8. Esperar resultados → screenshot
9. Si múltiples: elegir el que coincide con demandado
10. Click a[href="#modalDetalleLaboral"] (laboral) o fa-search (civil)
11. Verificar a[title="Descargar Ebook"]
12. Si existe: form.submit() → nueva pestaña PDF
13. En pestaña PDF: fetch(url, {credentials:'include'}) → blob → download
14. Mover PDF a Expediente_PJUD/
15. Read tool sobre el PDF → extraer contexto
```

---

## MANEJO DE ERRORES

| Situación | Acción |
|-----------|--------|
| "No se han encontrado resultados" | Registrar `ebook_pjud: false, nota: "no encontrada en OJV"` |
| Múltiples resultados, demandado no coincide | Registrar `ebook_pjud: false, nota: "múltiples resultados, demandado no identificado"` |
| Ebook no disponible (sin link) | Intentar resoluciones individuales (Paso 4) |
| Blob < 1000 bytes | Error de sesión. Re-navegar a OJV y reintentar |
| Timeout en carga del modal | Esperar 5s más y hacer screenshot. Si sigue sin cargar, continuar |
| PDF corrompido o vacío | Registrar error, continuar con siguiente causa |

---

## NOTA PARA EL AGENTE RECOPILADOR

Esta skill implementa el **Sub-paso A** del PROMPT_RECOPILADOR.md v6.1.

Al terminar cada causa, registrar en el MANIFIESTO_RONDA.json:
```json
"recopilacion": {
  "ebook_pjud": true,
  "ruta_ebook": "[RIT]_[CARATULADO]/Expediente_PJUD/EBOOK_[RIT].pdf",
  "tamano_bytes": 4300000,
  "resoluciones_pjud": 0
}
```

---

*Skill creada: 2026-03-29 — Selectores verificados en test en vivo contra OJV producción*
Tags:#pjud#ojv#ebook#chrome-mcp#recopilador

Califica este prompt

Promedio 4.3 con 3 votos.

Inicia sesión para calificar
Comentarios(0)
Inicia sesión para dejar tu comentario.

Relacionados en Laboral / Chile

Recibe los mejores prompts legales de la semana

Una selección curada por Skillex. Sin spam, cancelas cuando quieras.