Portfolio de IA

Vladimir Koptsev

Director de cine que crea y gestiona equipos de agentes de IA

Operaciones con IA para mi agencia de festivales STEZA y mi productora desde febrero de 2026: agentes, controles deterministas, aprobación humana

Soy director de cine, con 6 películas y más de 50 selecciones en festivales. Desde febrero de 2026, agentes de IA en Claude Code y Codex se encargan de la correspondencia, las solicitudes, el montaje, las publicaciones y la contabilidad de STEZA y de mi productora. Ningún correo, publicación ni solicitud sale hasta que un script ha comprobado al destinatario y las cifras y yo he dicho "ok". A continuación están los sistemas que uso a diario, con las cifras a la fecha de comprobación. Puedo montar la misma combinación de agentes y controles para su equipo.

lo que buscoOperaciones con IA en una empresa, capacitación de equipos, vídeo con IA; empleo, contrato o proyecto; Barcelona, en remoto o presencial, CET; ruso nativo, inglés profesional

Claude CodeCodexMCPhooksPythonNodeTelethonlaunchdHetznerFastAPISQLiteborgObsidian

00 · Resumen a 27 de octubre de 2026

98%

de las tareas de la semana pasada pasaron a subagentes asignados por un script; el modelo principal fijó cada tarea y aceptó el resultado (123 delegaciones, 100 aceptadas a la primera, 1 devuelta para repetir)

14

hooks de protección a nivel de entorno: un correo o una publicación sale solo con un ticket, y solo un script puede emitirlo

707

comprobaciones automáticas, TODAS EN VERDE, en mi servidor MCP de código abierto para edición de vídeo

150

veces más barato revisar imágenes en hojas de contactos que una por una

11

tareas programadas se ejecutan sin mí, de diarias a mensuales

9

agentes en mi propio servidor, unos 7 euros al mes a precio de lista

00a · Cómo puedo ayudar

1

Operaciones con IA en una empresa

Entro, miro el trabajo que la gente repite a diario (correos a clientes, informes, contenidos, contabilidad) y construyo agentes para ello: un agente redacta el correo al cliente, un script comprueba al destinatario y las cifras, un empleado pulsa "enviar". Formo al equipo para trabajar con los agentes y me quedo hasta que el sistema funciona sin mí.

2

Capacitación de equipos

Intensivos en grupo y sesiones individuales con propietarios y directivos. Construimos para cada persona un agente que funciona y decidimos en qué punto debe parar y preguntar. Después montamos una forma de medir su trabajo.

3

Vídeo con modelos generativos

Vídeos de marca y de producto generados a partir de metraje real, con el estilo sostenido de plano a plano y montados directamente junto a imagen real. El teaser de la película Grave Stakes está en la sección Vídeo, más abajo.

Condiciones de trabajo

enfoque
Operaciones con IA en una empresa, capacitación de equipos, vídeo con IA
formato
empleo, contrato o proyecto
ubicación
Barcelona, en remoto o presencial
zona horaria
CET
idiomas
ruso nativo, inglés profesional

00b · Vídeo: teaser y planos generados

Teaser de la película Grave Stakes: rodaje real montado con planos generados.

Planos generados para el teaser: Seedance 2.5 a partir de fotogramas del rodaje real, escalados con Topaz. Cada plano dura de 4 a 10 segundos, sin sonido.

00c · Arquitectura

casos difíciles al chat de equipohermes-task.sh desde el MacVladimirchat de Claude Codedesde el móvil:Remote ControlMemoria376 archivos de agenteObsidian: 3578 notas,2646 enlacesSkills144 en la biblioteca,1-3 cargadas por tareaServidor HetznerHermes · 069 perfiles,sin root,modelos NIMgratuitossalidas:bots de soporte,resumen 09:30tarea98%veredicto,resultado:aprenderesultado a revisiónRouter de tareas01 · reglas en código0 tokensEscalera de modelosFable / Opus /Sonnet / HaikuSubagentes9 personalesmás puntualesConsejos · 04DMAD interno, 7 roles;paneles externos, 6+6 modelos; CodexVoz de autor · 08corpus de 25 textos,47 pares de ediciónsalida14 hooks de protección · 03 · PreToolUse / PostToolUse / StopControl de salida · 02ticket, semáforo,mapa de afirmaciones→ correos, solicitudesPublicación · 07panel, ticket,revisión del feed→ Telegram, VK,Instagram, LinkedInConectoresGmail, Calendar, Drive,Sheets, Notion, Vercel;10 servidores MCP:Premiere · 05, Telegram,Codex
una sola imagen para las ocho fichas, los números remiten a ellas; yo estoy marcado en verde: las tareas salen de mí, los resultados y veredictos vuelven a mí
Para ingenieros: diagrama de contenedores (C4)
Vladimir[Persona]fija tareas, dice "ok"chat: tarea, "ok"Equipo de IA de Vladimir [sistema]Claude Code CLI[orquestador,Opus / Fable]fija tareas yrevisa resultadosRouter de tareas[Python, task-router.py]asigna clase y modelollamaSubagentes[Sonnet / Haiku / Opus]ejecutan tareaslanzaMemoria[Markdown, MEMORY.md]376 archivos de agente, Obsidianlee / escribeSkills[SKILL.md, 144 en la biblioteca]1-3 cargadas por tarealeeHooks de protección[settings.json, 14 hooks]bloquean acciones sin ticketrevisan cada llamadaControl de salida[Python: risk-gate, outbound-ticket]ticket para cada correollamaFlujo de publicación[Python: FastAPI + SQLite]publicaciones con ticket y "ok"entrega postsVPS Hetzner[agente Hermes]Gmail,Google Calendar[API]Telegram[Telethon]LinkedInExternosmodelos de consejo[NVIDIA NIM, OpenRouter]SSHMCPHTTPSHTTPSpublicapublica

C4PersonaContenedorSistema externo

01-08 · Fichas de sistemas

Router de tareas y escalera de modelos

01

task-router.py · 540 líneas de Python · 0 tokens por decisión de enrutamiento

qué es
Antes de delegar, cada tarea recibe una clase (A mecánica, B cálculo pesado, C cerrada o abierta, D criterio, voz, dinero, salida) y un modelo. Fable planifica y acepta el trabajo clave, Opus revisa y ejecuta las tareas abiertas, Sonnet ejecuta, Haiku se ocupa de pequeños trabajos mecánicos. Un script asigna la clase y el modelo a partir de una tabla de reglas sin llamar a ningún modelo, así que enrutar cuesta cero tokens.
cómo funciona
El script de enrutamiento (task-router.py) tiene los comandos route, outcome, solo, consult, calibrate y status. Aprende de los veredictos: dos fallos seguidos suben un tipo de tarea un peldaño en la escalera. Bajar solo se permite para las clases A y B tras cinco aceptaciones limpias, y una reversión congela la regla durante 30 días. Registro de rutas: 1965 entradas.
en una empresa
Las reglas eligen el modelo de cada tarea para mantener bajo control la factura de tokens. El modelo caro fija la tarea y acepta el resultado; los más baratos hacen el trabajo.
control humano
Yo o un revisor Opus aceptamos cada resultado de subagente; el veredicto va al registro y cambia las rutas futuras.
resultado
Semana hasta el 12 de octubre: 161 delegaciones (Sonnet 81, Opus 75, sesión principal 5), 130 aceptadas, 2 devueltas para repetir, 1 escalada, 3 fallos, 23 consultas al modelo sénior. Porcentaje de orquestación: 96%.
Fable · $10 / $50planifica, asigna, acepta23 consultasOpus · $5 / $25revisor, tareas abiertas C275 delegaciones en 7 díasSonnet · $3 / $15ejecutor principal, A, B, C181 delegaciones en 7 díasHaiku · $1 / $5pequeños trabajos mecánicosD criterio, voz,dinero, salidamodelo de la sesiónC2 abiertaA mecánicaB cálculo pesadoC1 cerrada2 fallos seguidos:el tipo de tarea subeun peldañobajar: solo A y B,tras 5 aceptaciones limpias,congelación de 30 días7 días hasta el 12 de octubre: 161 delegaciones, porcentaje de orquestación 96%
los precios son tarifas de API por millón de tokens, entrada / salida; fuente token-economy.md
$ python3 task-router.py status # recortado
ladder: haiku -> sonnet -> opus -> fable; classes: A=sonnet, B=sonnet, C1=sonnet, C2=opus, D=session
learned rules: 4
last 7 days: 161 delegations (opus:75, session:5, sonnet:81); verdicts: {'ok': 130, 'retask': 2, 'escalated': 1, 'failed': 3}; rule changes: 1
orchestration share: 96% (5 solo); consultations with the senior model: 23

salida traducida del ruso al inglés; cifras tal como se imprimieron el 12 de octubre de 2026

Control de salida: tickets, semáforo de riesgo, mapa de afirmaciones

02

outbound-ticket.py · risk-gate.py (721 líneas) · claims-map.py · correspondence.py

qué es
Ningún correo, mensaje ni solicitud de empleo sale de mi sistema sin un ticket. Un script emite el ticket cuando se cumplen las condiciones: el destinatario es conocido, el texto no contiene dinero ni datos de terceros sin verificar, y yo he dicho "ok".
cómo funciona
Hay tres tipos de ticket. El rojo cubre un destinatario durante 30 minutos y exige mi "ok" citado palabra por palabra. El de lote (batch) dura 6 horas y solo sirve para una lista fija de direcciones. El verde dura 60 minutos y necesita uno de tres motivos: una plantilla aprobada, una respuesta en un hilo activo o una respuesta de servicio breve. El semáforo de riesgo (risk-gate.py) es rojo por defecto y decide con reglas, sin ningún modelo. Aprende de veredictos e incidentes, y un incidente congela el motivo por el que se coló. Mapa de afirmaciones: el script rechaza un ticket rojo hasta que cada nombre y cada cifra de terceros en el correo tenga una línea que diga de dónde viene y quién la confirmó. Antes de redactar, el agente relee el archivo del destinatario: lo que ya le escribimos, lo que prometimos, lo que rechazamos. Se prohíben las correcciones posteriores: una vez enviado un correo, nadie lo enmienda ni lo retira.
en una empresa
Correos de venta a clientes: el agente redacta, un script comprueba al destinatario y las cifras, un empleado pulsa "enviar".
control humano
Cualquier marca de dinero en el texto detiene el envío hasta que un modelo sénior lo ha revisado y yo he dado un "ok" palabra por palabra.
resultado
Selftest del semáforo de riesgo: 15 de 15; 867 decisiones del semáforo en el registro; 235 afirmaciones verificadas (nombres, importes, fechas) en los archivos de destinatarios. Un envío cuenta como hecho solo cuando lo muestra el lado receptor (la carpeta de enviados, el propio canal).
$ python3 risk-gate.py selftest
[PASS] service reply, green: exit 0 (expected 0)
[PASS] plain amount of money: exit 2 (expected 2)
[PASS] masked amount (NBSP+ZW): exit 2 (expected 2)
[PASS] red marker "EUR sign": exit 2 (expected 2)
[PASS] red domain from the government list: exit 2 (expected 2)
[PASS] red address in cc: exit 2 (expected 2)
[PASS] service reply with two recipients: exit 2 (expected 2)
[PASS] thread with no history: exit 2 (expected 2)
[PASS] thread with clean history: exit 0 (expected 0)
[PASS] thread with red history (any_red): exit 2 (expected 2)
[PASS] unregistered template: exit 2 (expected 2)
[PASS] telegram channel: exit 2 (expected 2)
[PASS] long service reply: exit 2 (expected 2)
[PASS] attachment in a service reply: exit 2 (expected 2)
[PASS] daily limit: 20 green, the next one exits 2 (expected 2)

SELFTEST PASS: 15 scenarios, live state untouched

salida traducida del ruso al inglés

BorradorcorreoDestinatariodicho, prometido,rechazado235 afirmaciones¿cada nombre ycifra tiene unalínea de fuente?no: volver al borradorsí¿dinero enel texto?noSemáfororisk-gate,rojo pordefecto;selftest 15/15símodelo séniorrevisión, luego"ok" de Vladimirverde · 60 minplantilla aprobadahilo activoresp. de serviciobatch · 6 hsolo lista fijarojo · 30 minun destinatario,"ok" citadoTicketemitidoHookoutbound-guard:¿ticket vigente?noparar, volvera VladimirsíEnvíoComprobaren el ladoreceptor:Enviados, canalRegistro867 decisionesdel semáfororesultado, incidente:un incidente congela ese motivosin correcciones posteriores: un correo enviado queda como se envió
el camino de un correo del borrador al registro; el recuadro verde es el hook que impide un envío sin ticket reciente

Hooks de protección a nivel de entorno

03

14 registros en settings.json · PreToolUse, PostToolUse, Stop, UserPromptSubmit

qué es
Comprobaciones que el entorno ejecuta antes y después de las acciones del agente. Un hook se dispara antes de una llamada a una herramienta y la bloquea si no se cumple una condición.
cómo funciona

Salida. El hook bloquea un correo sin ticket reciente. También bloquea publicar, editar o borrar una publicación en redes sociales y Telegram sin ticket. outbound-guard, publish-guard

Presupuesto de tokens. Un subagente recibe un aviso en su llamada 60 y pierde las herramientas en la 100. Los subagentes pasan a segundo plano solo cuando se les indica. Las capturas se reducen a 1568 px, y los PDF se leen como texto, no como imágenes. subagent-step-limit, agent-foreground-default, shrink-image, pdf-to-md

Aprender de las correcciones. Si el mensaje del propietario lleva un marcador de corrección ("otra vez", "ya te lo dije", "actualiza la skill"), el agente recibe una instrucción: corregir, anotar la lección y proponer un cambio en la skill. La lección anotada recuerda a qué skill pertenece, y el cambio en la skill se aplica solo después de volver a ejecutar la versión antigua y la nueva con tareas reales. correction-detect, lesson-to-skill

Mantenimiento. El agente no crea archivos "para que los lea el propietario"; el contenido va al chat. Cada turno recibe una marca de hora exacta. Una skill modificada dispara un aviso de registro, y la base de conocimiento se sincroniza tras cada sesión. Antes de actuar en el navegador, el agente declara el perfil y la dirección de la cuenta, y un script comprueba la pareja con el mapa de perfiles. Una respuesta con un archivo no puede terminar sin un enlace clicable. reader-guard, now-stamp, registro de skills, sincronización de la base de conocimiento, chrome-profile-guard, links-check

en una empresa
Las restricciones del agente viven en la configuración del entorno y se ejecutan antes de cada acción: un agente de ventas no puede enviar un correo sin un permiso emitido.
control humano
El hook devuelve un rechazo que indica qué conseguir (un ticket, un "ok" citado), y el turno vuelve a mí.
resultado
Sin ticket, el hook bloquea la llamada a la herramienta de envío. Lección de la auditoría del 19 de septiembre de 2026: una línea no válida en settings.json desactivó en silencio todo el archivo junto con sus hooks. Desde entonces un script (claude doctor) comprueba los hooks tras cada edición de la configuración.
$ hooks de settings.json, nombres de archivo
PreToolUse ['pdf-to-md-guard.sh', 'shrink-image-hook.sh', 'publish-guard.py', 'outbound-guard.py', 'reader-guard.py', 'subagent-step-limit.sh', 'agent-foreground-default.py', 'chrome-profile-guard.py']
PostToolUse: reminder to register a changed skill, 'lesson-to-skill.sh'
Stop ['claude-obsidian-sync.sh', 'links-check.py']
UserPromptSubmit ['now-stamp.sh', 'correction-detect.py']

salida traducida del ruso al inglés

Consejos de modelos: DMAD interno y paneles externos

04

council-review · panel-nv (NVIDIA NIM) · panel (OpenRouter) · Codex

Varios modelos leen cada decisión importante y cada texto de salida antes de que yo lo acepte. El consejo interno sigue el esquema DMAD: cinco subagentes asesores con roles distintos, un abogado del diablo y un presidente, y puede recibir material confidencial. Los paneles externos reciben trabajo no confidencial: seis familias de modelos en NVIDIA NIM y seis modelos en OpenRouter, con Codex como segundo agente a través de un puente MCP que escribí yo. Una prueba de humo mensual comprueba que los modelos siguen respondiendo. Consejo de imágenes (desde el 26 de octubre de 2026): cada imagen que verá la gente (una diapositiva, un sitio web, una publicación, un cartel) la puntúan tres revisores independientes con visión, cada uno de un modelo distinto, en seis ejes - adecuación, gusto del autor, composición, originalidad, atractivo y claridad en su contexto. La evaluación se hace sobre el render, tal como lo verá el espectador. Tienen veto una espalda como objeto principal, una cara cortada por el borde y un fragmento sin contexto. El umbral es una media de al menos 4 sobre 5 y ninguna nota por debajo de 3. La síntesis la escribo yo y la decisión es mía. Un consejo de 12 agentes que escribió 15 reglas en una skill tardó 15 minutos (medido), y una copia del panel funciona en el servidor para Hermes.

premiere-claude-bridge: servidor MCP para Premiere Pro y DaVinci Resolve

05

github.com/koptsev63/premiere-claude-bridge · MIT · v0.4.1 Beta · 71 commits

qué es
Herramienta de código abierto que permite a Claude Code o Codex trabajar dentro de un programa de montaje como ayudante de montaje. La construí para mi productora y publiqué el código.
cómo funciona
Servidor MCP en Node con diez herramientas pr_*: estado, proyecto, secuencia, línea de tiempo, selección, cabezal de reproducción, marcadores, exportación a Adobe Media Encoder, ExtendScript arbitrario. Núcleo en Python de 25 módulos: búsqueda de silencios y de los mejores momentos, mezcla de audio con ducking, subtítulos y comprobación de transcripciones, control de color y control técnico de archivos, variantes de montaje y revisiones sobre un montaje hecho a mano, traspaso por XML. Adaptadores para Premiere, DaVinci Resolve (API de Python de Studio) y FCPXML. Paquete para Claude Desktop y server.json para el registro de MCP.
en una empresa
Un montador deja en manos del agente el trabajo rutinario dentro de su propio programa: registrar el material, encontrar pausas, comprobar un archivo antes de entregarlo. El sentido y el ritmo siguen en manos del montador.
control humano
El director decide el sentido y el ritmo del montaje. Cada error de un trabajo real se convierte en una comprobación de código con su test.
resultado
28 suites de tests, 707 comprobaciones, TODO EN VERDE el 12 de octubre de 2026; probado con material real: 108 archivos de origen, 4,4 GB.
$ core.tests # premiere-claude-bridge, final de la salida
xml_handoff: 11 passed, 0 failed

ALL GREEN

28 suites, 707 comprobaciones, 2 omitidas

premiere-claude-bridge: tarjeta del repositorio

Hermes: agente de servidor con permisos acotados

06

Hermes Agent v0.20.2 · Hetzner CPX22 · 9 perfiles

Un agente que trabaja las 24 horas y sigue funcionando cuando mi portátil está apagado: responde a la gente en bots de soporte, lleva las cuentas de la familia y envía resúmenes matinales. Funciona como un usuario aparte sin root, con un único wrapper acotado como única vía hacia sudo. El modo de aprobación está en smart, el modo sin confirmación está prohibido y las claves de correo no están en su entorno. Nueve perfiles aislados se reparten el trabajo, todos con modelos gratuitos a través de NVIDIA NIM (Nemotron 3 Ultra, con DeepSeek y Gemini Flash como respaldo). Un script puente en mi Mac (hermes-task.sh) le pasa tareas sin gastar tokens de la sesión principal, y él me pasa las preguntas difíciles en un chat de equipo. El servidor cuesta unos 7 euros al mes a precio de lista. Un perfil, Kassa, es un agente de contabilidad familiar: dos modelos leen cada recibo de forma independiente.

Flujo de publicación con aprobación humana

07

postmaster (FastAPI + SQLite) · tg.py (Telethon) · tg-verify.py · tg-scan.py · post-dedup.py

qué es
Un solo panel gestiona mi canal de Telegram, VK, Instagram y LinkedIn. El panel no tiene botón de "publicar": un script publica cuando hay un ticket y mi "ok".
cómo funciona
Panel de FastAPI y SQLite en el servidor, con planificador integrado, un calendario y una versión de texto para cada plataforma. Solo yo puedo aprobar una publicación, con un toque en el bot de Telegram, una palabra en el chat del agente o el botón "Aprobar" de la página de la publicación; cualquier cambio en el texto, la imagen o la lista de plataformas retira la aprobación. Antes de redactar, el agente ejecuta una comprobación de repetición TF-IDF contra todas las publicaciones del canal y el mapa de temas. Antes de publicar, un script revisa el texto (text-gate.py: lista personal de palabras vetadas, límites de cada plataforma, marcado) y emite un ticket de 30 minutos. Después de publicar, un script de comprobación (tg-verify.py) mira la publicación realmente renderizada, porque un "ok" de la API no cuenta como prueba. El guardián del feed (tg-scan.py) vuelve a leer todo el feed a los 2 y a los 15 minutos, y un duplicado significa parar y avisar. Una publicación larga con imagen sale desde mi propia cuenta a través de Telethon (un cliente de Telegram de cuenta de usuario), solo con ticket y mi "ok". Un trabajo nocturno guarda las visualizaciones y una ficha matinal resume el canal.
en una empresa
Un equipo de contenidos donde una sola persona tiene el botón: los agentes preparan las publicaciones de cada plataforma y solo el responsable las libera.
control humano
El agente me envía el texto completo de la publicación por chat. Lo leo entero y escribo "ok" para plataformas concretas. Entonces el script emite un ticket y el flujo publica.
resultado
Importado el historial de 621 publicaciones (146 de Telegram, 475 de VK); 212 publicaciones en la base de comprobación de repeticiones. Descarté el detector estilométrico después de que una auditoría mostrara un 18-20% de falsos positivos en mis propios textos, y lo sustituí por la comprobación de repeticiones y el mapa de temas.

Skill de voz de autor con aceptación medida

08

koptsev-voice v6.7 · 7 modos de género · 25 textos confirmados

qué es
El agente escribe en ruso con mi voz, y mido la aceptación por la supervivencia del borrador: la parte del borrador que queda tras mi edición. Es del 84% en los últimos diez textos, frente a un objetivo del 90%.
cómo funciona
Corpus de 25 textos míos confirmados (unas 6400 palabras) con un mapa de procedencia que separa mi propia voz del habla de personajes y de las citas. Registro cada edición como un par con fecha, "frase del agente, mi frase", y de los pares salen las clases de error: 6 clases de cosas que recorto, 12 clases de cosas que corrijo. Una clase necesita al menos dos ejemplos, y el agente anota qué significa una edición solo después de una entrevista breve conmigo. Lista de palabras vetadas: 15 reglas duras y 12 avisos, todos de mis prohibiciones directas. Antes de mostrar un borrador, el agente hace una "prueba del extraño": un contexto nuevo revisa cada par verbo-complemento con tres preguntas.
en una empresa
Cartas y publicaciones en nombre de un directivo: el agente escribe con su voz, y el porcentaje de ediciones muestra cuánto se acerca.
control humano
Yo edito y el sistema aprende de los pares; un borrador completo nunca se convierte en texto de referencia.
resultado
47 pares con fecha en el registro. Supervivencia del borrador: objetivo 90%, ahora 84%, registro abierto.
$ métrica de supervivencia del borrador
average over the last 10 drafts: 84% (target >= 90%)

salida traducida del ruso al inglés

09 · La semana de los sistemas y la mía

funciona sin mí

  • a diario, hacia las 09:00fichas de resumen del correo
  • a diario, 09:45seguimiento de las inscripciones en festivales
  • a diario, 10:00robot de la agenda y medios para el escaparate web de la librería
  • de lunes a viernes, 10:00 y a diario, 10:30seguimiento de las películas de dos clientes
  • los lunes, 09:30calibración semanal del semáforo de riesgo y del router de tareas
  • los lunes, 10:30conciliación de la contabilidad familiar
  • los lunes y jueves, 12:20comprobación en el lado receptor de que los clips del pódcast han salido
  • día 1 de cada mes, 09:40 y 10:00prueba de humo de los paneles de modelos, cierre financiero mensual
  • día 1 de cada mes, 11:00revisión de la rutina manual: los mensajes del propietario de 30 días, qué se repite sin skill, script ni protección
  • cada noche, 03:40instantánea de las visualizaciones del canal
  • después de cada sesiónsincronización de la base de conocimiento; el servidor la descarga cada 15 minutos
  • con programación de launchdcopias de seguridad

qué hago yo

  • semana hasta el 27 de octubreasigné 123 tareas a subagentes, acepté 100 a la primera, devolví 1 para repetir, consulté 12 veces al modelo sénior
  • cada texto de salidalo leo entero y digo "ok"
  • cada incidentelo desmonto y anoto una regla

10 · Tiempo empleado

tareatiempoquién lo hizofecha, 2026
Tres hooks de protección y prueba de precisión con 1194 mensajes30 minsesión26 de octubre
Análisis de un canal de Telegram ajeno (201 publicaciones) y de Instagram, contrastado con mi stack9 minSonnet24 de octubre
Primera revisión mensual de rutinas: 1193 mensajes, 7 candidatos a protección12 minFable24 de octubre
Edición por lotes de 18 skills: 30 lecciones, 72 ejecuciones de la versión antigua y la nueva, juez y aceptación del revisor1,5 h7 preparadores Opus, ejecuciones Sonnet22 de octubre
Consejo interno de 12 agentes y 15 reglas escritas en una skill15 minsubagentes y yo15 de septiembre
Auditoría del sitio web y los chats de un cliente, transcripción de 5 mensajes de voz, ediciones, despliegue, comprobación21 minsesión15 de septiembre
Auditoría del correo de un proyecto: 118 hilos por script en 1 minuto, 59 hilos revisados25 minscript y sesión15 de septiembre
Revisión con el modelo sénior de cinco correos (6,5 minutos), tickets, envío, comprobación en Enviados20 minFable y scripts15 de septiembre
Cinco búsquedas paralelas con subagentes21 min la más largaSonnet15 de septiembre
Dosier de prensa en inglés3,5 minOpus6 de octubre
143 fotogramas y 5 hojas de contactos32 sSonnet6 de octubre
Prueba de humo de 22 modelos y reconstrucción de la composición del panelunas 0,8 h-2 de octubre
Primer archivo cifrado: 18073 archivos, 15,4 GB34 minborg4 de septiembre
Escalado de 720p a 4K, 217 fotogramas1,5 minTopaz desde el terminal28 de septiembre
30 segundos de música6 minACE-Step, en local-
Auditoría de 1297 fichas del catálogo de una librería frente a fotos de las estanterías, tres pasadas11,4 horas activas-9 de septiembre
Retoque de un fork ajeno de keySwitcher (conmutador de distribución de teclado): código fuente recuperado de las transcripciones, 4 correcciones, compilación, firma, arranque automático1,4 hsesión y subagente15 de septiembre

horas activas contadas a partir de las transcripciones; las pausas de menos de 15 minutos cuentan como trabajo

11 · Incidente → regla → protección

fecha, 2026incidentereglaprotección
8 de septiembrela estilometría daba un 18-20% de falsos positivos en mis propios textosdetector descartadocomprobación de repeticiones y mapa de temas
15 de septiembrepubliqué a mano cuando el agente llegó a su límite, y el panel informó "no publicado"solo el propio canal confirma que una publicación saliótg-verify.py, que lee el canal
15 de septiembreestimaciones de tiempo infladaslas estimaciones salen solo de mediciones; la palabra "semanas" está prohibida para trabajo con scriptstabla de mediciones time-calibration.md
19 de septiembreuna línea no válida en la configuración desactivó en silencio todos los hooksuna comprobación tras cada edición de la configuraciónclaude doctor en brain-doctor.sh
6 de octubretemas repetidos en el canalcomprobación de repeticiones antes del borradorpost-dedup.py (TF-IDF) y mapa de temas
8 de octubrepublicación duplicada en el canaltodo el feed es la fuente de verdad; un duplicado significa parar y avisartg-scan.py vuelve a leer el feed a los 2 y a los 15 minutos
14 de octubreel agente abrió una tarea en el perfil de navegador equivocado (la cuenta de otra persona)el perfil se elige según a quién pertenece el asunto, y la dirección de la cuenta se comprueba en la páginachrome-profile-guard.py: sin un perfil declarado, las herramientas del navegador quedan cerradas
18 de octubreun archivo se mostró como ruta y no como enlace; la regla se anotó y se incumplió un minuto despuésimágenes, vídeos, documentos y carpetas, solo como enlace clicablelinks-check.py: el turno no termina hasta que se corrige el enlace
21 de octubrelas lecciones se acumulaban en la memoria y las skills no cambiabanuna lección entra en la skill tras volver a ejecutar la versión antigua y la nueva con tareas reales; en un lote de 18 skills la versión antigua pasó 40 de 94 comprobaciones y la nueva, 94 de 94lesson-to-skill.sh y skill-tuner
24 de octubrehubo que repetir 27 veces en un mes la petición "actualiza la skill"una corrección del propietario lanza por sí sola el análisis de la leccióncorrection-detect.py

12 · Cómo se construyó

febmarabrmayjunjulagofebrero de 2026agencia y productorapasan a agentes de IA4 de mayorepositorio abiertopremiere-claude-bridge10 de julioauditoría de contexto: 35.800tokens de lastre,reglas movidas a docs12 de agosto621 publicacionesimportadas al panel18 de agostoescalera de modelosy router de tareas093 de septiembreauditoría del botde paseos: 11 subagentes,revisor aceptó 24 de 244 de septiembreprimera copia cifrada,18073 archivos8 de septiembreestilometría descartada:18-20% de falsos positivos14 de septiembreauditoría del gasto de tokens15 de septiembretabla de tiempos medidos19 de septiembreauditoría: config no válida,dos hooks de protecciónincidente → regla102 de octubreCodex conectado a ClaudeCode como servidor MCP5 de octubrepanel de consejos copiadoal servidor para Hermes8 de octubrepublicación duplicada →guardián del feed tg-scan10 de octubre"prueba del extraño"en la skill de voz12 de octubreejecuciones en vivoy esta página21 de octubrecambios de skills solo despuésde probar versión antigua y nueva24 de octubrerevisión mensual de rutinas,Remote Control26 de octubretres hooks tras revisar rutinas,consejo de imágenes
de febrero a agosto en el eje superior, septiembre y octubre ampliados en los dos inferiores; el verde marca las auditorías de tokens que produjeron una regla y dos hooks de protección

13 · También en producción

1 · ModelosClaude Fable / Opus / Sonnet / Haiku / Codex / NVIDIA NIM: Nemotron 3 Ultra, Kimi K3,GLM 5.3 Flash, DeepSeek V4.1 Flash, Muse Glimmer, DiffusionGemma / OpenRouter /Gemini Flash / Mistral / Groq Whisper2 · Agentes, ejecuciónClaude Code (cabina) / Codex CLI / Hermes Agent en el servidor / 9 subagentes personales /tareas programadas / Remote Control: sesiones desde el móvil3 · Reglasmi capa:se traslada acualquier modeloCLAUDE.md y AGENTS.md / 144 skills y router / 14 hooks / router de tareas /semáforo de riesgo / tickets4 · Memoria376 archivos / Obsidian, 3578 notas / registro de rutas (1965) y de correspondencia /borg: 7 archivos diarios, 4 semanales, 6 mensuales5 · ConectoresGmail, Calendar, Drive, Sheets, Docs, Notion, Vercel / gog CLI / Telethon /Telegram Bot API / Instagram Graph API / VK API / 10 servidores MCP: premiere, telegram,codex, stitch, open-design, 21st-magic, agent-bridge, higgsfield, suno, palmier6 · InfraestructuraMacBook M5 + launchd / Hetzner VPS + systemd + Docker + nginx / FastAPI + SQLite /Stripe / private GitHub7 · Vídeo y audioPremiere y DaVinci Resolve con mis propios juegos de scripts / premiere-claude-bridge /Seedance 2.5 / Veo 3.1 / Topaz Video / mlx-whisper / ACE-Step 1.5 / Suno / Remotion
herramientas por capas; la capa de reglas está marcada en verde, y la llevo conmigo a cualquier modelo

Operaciones para la agencia de festivales STEZA

Los agentes eligen festivales, comprueban reglas y plazos, escriben a programadores y preparan envíos. Cada película tiene una hoja de Google en vivo con las pestañas "Estado", "Envíos", "Pendiente del autor" y "Materiales", mantenida con el cliente de línea de comandos de Google (gog) sin navegador. Un trabajo programado vigila los envíos cada día.

Memoria

376 archivos de memoria de trabajo para el agente; Obsidian como cerebro externo, 3578 notas, 1219 de ellas en el grafo con 2646 enlaces; sincronización entre el Mac, un repositorio privado de GitHub y el servidor cada 15 minutos; un script comprueba la salud del cerebro por 0 tokens.

Skills

144 skills, 109 de ellas bajo demanda. El router de skills carga en el contexto un perfil de dominio y 1-3 instrucciones y nada más; scripts auditan el sistema.

$ contador de skills: carpetas y bajo demanda
folders: 144  lazy: 109

Tareas programadas

11 trabajos recurrentes (fichas de correo matinales, seguimiento de inscripciones en festivales, seguimiento de las películas de dos clientes, calibración semanal, comprobación de la contabilidad familiar, robot de la agenda de la librería, comprobación de salida de los clips del pódcast, cierre financiero mensual, prueba de humo de los paneles de modelos, revisión mensual de rutinas) más trabajos puntuales para eventos. En el Mac, launchd ejecuta las copias de seguridad y la instantánea nocturna del canal.

Copias de seguridad

borg con un repositorio cifrado en el servidor: 7 archivos diarios, 4 semanales, 6 mensuales. El primer archivo contenía 18073 ficheros, 15,4 GB. Las bases de datos del panel y del bot tienen sus propias copias.

Vídeo

Generación: Seedance 2.5 en cola por script, Veo 3.1 a través de Google Flow.
Procesado: Topaz Video desde el terminal, transcripción con mlx-whisper, música con ACE-Step 1.5 en local y Suno.
Montaje: DaVinci Resolve y Premiere con mis propios juegos de scripts, Remotion para infografías.

Contabilidad de tokens

token-usage-report.py lee los registros de sesión. Las auditorías del 14 y el 19 de septiembre de 2026 encontraron fugas (bucles de GUI de subagentes, un settings.json no válido), y las cerré con hooks. Las hojas de contactos de 24 imágenes redujeron 150 veces el coste de revisar un fotograma.

Paseo sonoro por Barcelona

Bot de Telegram que guía un paseo por el Barrio Gótico, con un panel de control en FastAPI y Stripe en modo de prueba.

14 · Cómo leer los términos

MCP
estándar que conecta un agente con programas y datos.
Hook de protección
comprobación que el entorno ejecuta antes y después de cada acción del agente, diga lo que diga el texto de la tarea.
Control determinista
el código decide con reglas fijas; ningún modelo interviene.
Ticket
permiso único y limitado en el tiempo para una acción de salida.
Subagente
instancia de modelo aparte que recibe una tarea de la sesión principal y le devuelve el resultado.
Porcentaje de orquestación
el modelo principal asigna tareas y acepta resultados mientras los subagentes hacen el trabajo; el porcentaje es la parte de las tareas entregadas a subagentes.
Skill
instrucción para un tipo de trabajo que el agente carga en el contexto cuando hace falta.
Token
unidad de texto por la que se factura el uso de un modelo.
Supervivencia del borrador
parte del borrador de un agente que queda tras mi edición.
Hoja de contactos
una hoja con 24 miniaturas para revisar un lote de imágenes de un vistazo.
Selftest
ejecución integrada de escenarios predefinidos que comprueba que el script decide como se espera.
DMAD
esquema de debate multiagente con roles asignados y un abogado del diablo.
Telethon
cliente de Telegram de cuenta de usuario: un script publica como una persona, no como un bot.
launchd
planificador de macOS.
borg
herramienta de copia de seguridad cifrada y con deduplicación.

15 · Contacto