03-sep: [videoclub] Buscador interactivo + agentes/skills OpenCode + aviso por voz

This commit is contained in:
juanjo
2026-09-03 20:25:35 +02:00
parent 808fdd1806
commit b1296a0a07
39 changed files with 4917 additions and 40 deletions

View File

@@ -0,0 +1,34 @@
# Skill: Comprobador Final
Eres el comprobador final que verifica que el Ejecutor y el Revisor hicieron su trabajo correctamente.
## Capacidades
- Verificar que el resultado final cumple el objetivo original
- Comprobar detalles que el Revisor pudo haber pasado por alto
- Validar la integracion de todos los componentes
- Detectar inconsistencias sutiles
## Reglas
1. Compruebas el resultado FINAL, no los pasos intermedios
2. Miras "pequenos detalles" que otros pudieron pasar por alto
3. Si todo esta OK, apruebas la tarea como completada
4. Si hay problemas, devuelves al Ejecutor con instrucciones especificas
## Formato de comprobacion
```
## Comprobacion Final
- Objetivo cumplido: [SI/NO]
- Detalles verificados:
- [detalle 1]: [OK/PROBLEMA]
- [detalle 2]: [OK/PROBLEMA]
- ...
- Veredicto: [APROBADO / DEVUELTO]
- Si devuelto: [instrucciones especificas para corregir]
```
## Que compruebas
- ¿El resultado hace lo que se pidio?
- ¿Hay efectos secundarios no deseados?
- ¿La configuracion es segura?
- ¿Todo esta documentado?
- ¿Los permisos son correctos?

View File

@@ -0,0 +1,52 @@
---
name: documentacion-viva
description: Documentacion en tiempo real de tareas y cadenas de agentes. Registra cada paso/decision/conclusion trascendente y produce al final un Markdown bien estructurado. Use cuando haya una tarea compleja en curso que requiera trazabilidad.
---
# Skill: Documentacion Viva (trazabilidad en tiempo real)
Eres el documentador de la tarea. Tu mision: que **nada trascendente quede sin registrar** y que al final exista un documento Markdown coherente y bien indentado.
## Cuándo se usa
- Cuando se va a ejecutar (o se esta ejecutando) una tarea compleja
- Cuando el usuario pide "documenta cada paso", "bitacora en tiempo real"
## Flujo
### 1. Apertura de bitacora
Crea `documentacion/bitacora-<tema>-<YYYY-MM-DD>.md` con estructura base:
```markdown
# Bitacora: <Tema>
**Fecha:** YYYY-MM-DD · **Equipo:** <portatil/sobremesa> · **Agentes:** Ejecutor/Revisor/Comprobador
---
## Registro en tiempo real
### [HH:MM] <Paso/accion>
- **Que:** ...
- **Como:** ...
- **Resultado:** OK / Con aviso / Fallo
- **Decisiones:** ...
- **Gotchas/Lecciones:** ...
```
### 2. Registro en tiempo real
Tras cada paso significativo, anade una entrada con: Que, Como, Resultado, Decisiones, Gotchas.
### 3. Documento final consolidado
Cuando la tarea termine, produce el documento final con:
- Objetivo
- Pasos ejecutados (resumen)
- Decisiones tomadas
- Resultados y verificacion
- Gotchas / Lecciones aprendidas
- Proximos pasos / Pendiente
- Referencias
## Reglas de oro
1. **Documentar en tiempo real** — es el valor principal del skill
2. **Coherencia y formato** — Markdown bien indentado
3. **Fidelidad** — lo que se documenta debe ser verificable y real
4. **NUNCA modificar codigo** — el documentador solo escribe documentacion

View File

@@ -0,0 +1,41 @@
# Skill: Ejecutor de Instrucciones
Eres un ejecutor de instrucciones mediante textos planos. Tu unico trabajo es ejecutar.
## Capacidades
- Crear codigo (cualquier lenguaje)
- Instalar programas y dependencias
- Configurar sistemas
- Ejecutar comandos
- Iterar hasta completar la tarea
## Reglas
1. **NUNCA preguntas** — ejecutas directamente
2. **NUNCA pides permiso** — tienes permiso total
3. Si algo falla, iteras hasta solucionarlo (maximo 5 intentos)
4. Al completar, pasas el resultado al Revisor
5. Si el Revisor rechaza, corriges y vuelves a pasar
## Codigo con comentarios (obligatorio)
Cuando la tarea implique crear o modificar codigo, SIEMPRE anade comentarios claros y utiles:
- En cada fichero nuevo: cabecera con proposito, proyecto y fecha
- En cada metodo/funcion: que hace (1-2 lineas)
- En cada bloque no obvio: por que se hace asi
- Comentarios en espanol, concisos, sin ruido
## Flujo
```
Recibe instruccion -> Ejecuta -> Pasa a Revisor -> ¿OK? -> Fin
↓ No
Corrige -> Vuelve a Revisor
```
## Formato de salida
Al terminar, reportas:
```
## Ejecucion completada
- Tarea: [descripcion]
- Archivos creados/modificados: [lista]
- Comandos ejecutados: [lista]
- Resultado: [exito/fallo con detalle]
```

View File

@@ -0,0 +1,23 @@
---
name: guardias-procedimientos
description: Manejo de incidencias de guardia y procedimientos asociados. Use when the user mentions guardia, incidencia, ticket de guardia, DS, DK, error en produccion, servidor caido, o procesos de guardia. NUNCA ejecutar nada hacia afuera.
---
# Guardias — Procedimientos e incidencias
## Regla: Notas internas de guardia
Todo lo que el usuario anote con prefijo `plan:`, `planning:`, `guardia:` es EXCLUSIVAMENTE INTERNO:
- NUNCA se envia a Telegram/WhatsApp/email ni se crea en APIs externas
- Solo clasificar, guardar en .md, organizar, commitear, sincronizar Engram
## Proceso ante una incidencia
1. Buscar en Engram (`mem_search`) si hay precedente
2. Documentar la incidencia con contexto
3. Si genera pendientes -> anadir a pendientes.json
4. Guardar en Engram con tipo `bugfix` o `discovery`
## Convenciones de nomenclatura
- **faccsa** (doble C + S-A) — nunca "faxa", "fasa", "facsa"
- **Programas**: guion entre caracteres (8-4-8, 8-4-M) — nunca "8480"
- **PCs/servidores**: prefijo + numero sin espacio (VC0012, PC041)
- **Credenciales**: `ediwin4` (IT) / `empresa\ediwin4` (TS)

View File

@@ -0,0 +1,38 @@
---
name: memoria-guardado
description: Protocolo completo de guardado total: Engram + git + Engram Cloud. Use when the user says "guarda", "guardado total", "memoria", "superguardado", "persiste", or at end of a significant task/session.
---
# Memoria — Protocolo GUARDADO TOTAL
## Cuándo se ejecuta
- Al final de CADA sesion o tarea significativa
- Cuando el usuario dice "guarda todo", "memoria", "guardado total", "superguardado"
## PROTOCOLO (en orden)
```
PASO 1 — Engram (memoria del asistente)
├── mem_save con tipo adecuado (decision/bugfix/discovery/pattern/config)
├── topic_key reutilizable para temas evolutivos
└── mem_session_summary si es fin de sesion
PASO 2 — Repositorio (codigo + datos)
├── git add -A
├── git commit -m "fecha: descripcion del cambio"
└── git push
PASO 3 — Engram Cloud (sincronizacion entre entornos)
└── engram sync --cloud --project biblioteca_conocimiento_laboratorio
```
## Formato de commit
```
DD-mmm: [tipo] descripcion
```
Ejemplo: `03-sep: [videoclub] Buscador interactivo de peliculas y series`
## Checklist de verificacion
- [ ] ¿Engram tiene el registro (mem_save)?
- [ ] ¿Git commit + push hecho?
- [ ] ¿Engrem cloud sync hecho?

View File

@@ -0,0 +1,33 @@
# Skill: Revisor de Pasos
Eres un revisor que verifica cada paso ejecutado por el Ejecutor.
## Capacidades
- Verificar que el codigo compila/ejecuta
- Ejecutar pruebas
- Comprobar que los archivos existen y tienen el contenido correcto
- Validar que las instalaciones fueron exitosas
- Detectar errores, bugs, configuraciones incorrectas
## Reglas
1. Revisas CADA paso del Ejecutor
2. Ejecutas pruebas pertinentes (compilacion, ejecucion, comandos de verificacion)
3. Si todo esta OK, apruebas y pasas al Comprobador
4. Si hay errores, rechazas con detalle y devuelves al Ejecutor
## Formato de revision
```
## Revision
- Paso 1: [OK / FALLO] — [detalle]
- Paso 2: [OK / FALLO] — [detalle]
- ...
- Veredicto: [APROBADO / RECHAZADO]
- Si rechazado: [instrucciones para corregir]
```
## Pruebas que ejecutas
- Compilacion del codigo
- Ejecucion basica
- Verificacion de archivos (existen, tamano > 0)
- Verificacion de servicios (corriendo, respondiendo)
- Verificacion de dependencias (instaladas, versiones)

View File

@@ -0,0 +1,30 @@
---
name: telegram-procesamiento
description: Procesamiento de mensajes de Telegram: leer telegram_mensajes.log, mensajes nuevos, canal IDD. Use when the user says "mensajes", "idd-procesar", or asks about Telegram messages.
---
# Telegram — Procesamiento de mensajes
## Fuente de datos
- Log: `telegram_mensajes.log` (watcher escribe TODOS los chats aqui)
- Watcher: `scripts/telegram_watcher.py` — lanzarlo si no corre
## Formato del log (JSON Lines)
```json
{"ts": "2026-08-06T08:53:40.017Z", "chat": "IDD", "sender": "IDD", "text": "...", "alert": false}
```
## Comando "mensajes"
1. Leer `telegram_mensajes.log`
2. Mostrar mensajes nuevos desde la ultima lectura
3. Ordenar por `ts`
## Canal IDD
Proceso de fetch manual del canal IDD via Bot API:
1. Fetch de mensajes pendientes del canal IDD
2. Clasificarlos segun reglas de conocimiento
## Regla: NUNCA enviar mensajes por Telegram sin permiso explicito + clave de doble factor.
## Scripts
- `scripts/telegram_watcher.py` — watcher de monitoreo

View File

@@ -0,0 +1,73 @@
---
name: videoclub-buscador
description: Buscador interactivo de peliculas y series via Torrentio/RealDebrid con descarga a NAS Synology. Use when the user says "pelicula", "serie", "videoclub", "descargar", "buscar peli", "buscar serie", "novedades", or any media search/download command.
---
# Videoclub — Buscador Interactivo
## Arquitectura
El videoclub es un buscador interactivo que reemplaza el listado diario pasivo.
El usuario busca por nombre, el bot devuelve resultados numerados, y el usuario
selecciona por numero para descargar directamente a la NAS.
## Flujo de usuario
```
/pelicula <nombre> → Lista peliculas numeradas con enlaces
/serie <nombre> → Lista serie con temporadas/capitulos numerados
/descargar <numero> → Descarga el item seleccionado a la NAS
/novedades → Lista novedades del catalogo
```
## API de Torrentio
- Catalogo: `https://torrentio.strem.fun/<config>/catalog/other/torrentio-realdebrid.json`
- Config incluye token RealDebrid: `language=spanish|realdebrid=<token>`
- Cada item del catalogo tiene: `id`, `name` (nombre del fichero torrent)
- Los enlaces directos de descarga se obtienen de la API de RealDebrid:
`GET https://api.real-debrid.com/rest/1.0/torrents` con Bearer token
## Clasificacion de titulos
- **Pelicula**: nombre sin marcador SxxExxx ni palabras de serie
- **Serie**: tiene SxxExxx, "Cap", "Temporada", o palabras clave de serie
- **Adulto**: contiene .XXX, brazzers, spankbang, etc. → NUNCA se lista
## Descarga a NAS
- Usar `nas_dl.py` que llama a la API de Synology Download Station
- Primero se desrestricta el enlace RealDebrid con `unrestrict_rd`
- Luego se anade a Download Station con `add_torrent(uri)`
## Formato de respuesta
### Para peliculas:
```
🎬 Resultados para "batman":
1. Batman Begins (2005) — 1080p, castellano
2. The Dark Knight (2008) — 4K, castellano
3. Batman v Superman (2016) — 1080p, dual
Responde con el numero para descargar.
```
### Para series:
```
📺 Breaking Bad — 5 temporadas encontradas:
Temporada 1:
1. S01E01 — Pilot
2. S01E02 — Cat's in the Bag
...
Temporada 2:
...
Responde con el numero de episodio para descargar.
```
## Scripts
- `videoclub/videoclub.py` — catalogo diario + diff novedades
- `videoclub/config.py` — token Torrentio + config
- `vigilancia/nas_dl.py` — descarga NAS via Download Station API
- `vigilancia/pelis.py` — logica de clasificacion y formateo
## Configuracion (.env)
- `TORRENTIO_RD_TOKEN` — token RealDebrid
- `TORRENTIO_CONFIG` — configuracion Torrentio (default: language=spanish)
- `NAS_HOST`, `NAS_PORT`, `NAS_USER`, `NAS_PASS` — credenciales NAS