Saltar al contenido
megapromotingVamos a hablar
Productos Taskin

Organizarea muncii Desarrollo y demostraciones

Lo que acordamos. Quién continúa. Qué sigue.

Taskin explora la transformación de las conversaciones y del contexto del proyecto en compromisos, prioridades y pasos de trabajo. El objetivo es mantener el vínculo entre una tarea y la conversación de la que surgió.

  1. 1Discuție și context
  2. 2Sarcini propuse
  3. 3Angajamente confirmate
Schemă explicativă ·Taskin

Taskin

De la información al trabajo hecho.

01

Context

Reunimos las fuentes autorizadas relevantes para el proyecto.

02

Angajamente

Identificamos las decisiones y las tareas pendientes para la verificación por el equipo.

03

Continuitate

Organizamos las responsabilidades y el seguimiento de los pasos confirmados.

Dónde resulta útil.

Proyectos

La reconstrucción de decisiones y prioridades sin perder el contexto.

Întâlniri

Propuestas de tareas a partir de conversaciones, revisadas antes de su uso.

Operațiuni

Una dirección para la coordinación entre personas y agentes AI.

Las funciones y conexiones están en desarrollo. No asumimos que cualquier decisión extraída automáticamente sea correcta o esté aprobada.

Taskin en detalle

Qué puedes hacer con este proyecto.

Taskin es un board de trabajo que tiene una particularidad: no espera a que le introduzcas las tareas. Lee lo que ya ha pasado — llamadas, correo, calendario, mensajes, commits, sesiones de trabajo — y propone lo que habría que hacer, junto con la prueba de la que surgió la propuesta.

La distinción que construye es entre lo que se ha observado y lo que se ha decidido. Una tarea propuesta automáticamente no se convierte en compromiso hasta que una persona confirma el responsable, el plazo y la formulación. Esta regla no es una promesa de interfaz, sino una restricción impuesta en la base de datos: un agente no puede cerrar una tarea, y cualquier escritura que cierre una debe declarar quién la pidió. Una escritura sin nombre se rechaza.

Lo usamos para nosotros mismos. Casi todo lo interesante en él surgió porque nos faltó algo concreto en la operativa de nuestra propia empresa, y los comentarios del código citan recuentos reales de producción e incidentes con fecha — incluido uno en el que una rutina diaria guardó silencio once días seguidos sin que nadie se enterara.

01

Un board completo, no un experimento

50 rutas sobre 49 páginas: equipos, ciclos, proyectos, tareas, inbox, hoja de ruta, plan del día, clientes con dossier e historial, gastos recurrentes, facturación, control horario y sesiones de trabajo, rendimientos, chat interno, administración y miembros. La base tiene 90 tablas, construidas a partir de 81 migraciones.

02

El colector: 21 bucles que llevan la realidad al board

Rutinas programadas en el servidor, no temporizadores en el proceso — porque un temporizador se pierde en cada redeploy. Cada ejecución pasa por una envoltura que escribe en el registro y trata incluso una respuesta HTTP 200 como error si lleva una lista de errores, con alerta en Telegram. La envoltura existe porque, antes, un comando que fallaba en silencio dejó el briefing diario muerto once días.

03

Servidor MCP: la misma cola para personas y para agentes

14 herramientas sobre HTTP — lectura (listado, búsqueda, mi cola, cola de los agentes, resumen del tablero, personas, agentes, proyectos) y escritura (creación, actualización, asignación, traslado, comentario). Cada token de acceso está vinculado a un perfil real, así que la actividad en el tablero deja constancia de quién la solicitó. Un agente de IA y un colega trabajan sobre la misma lista, con las mismas reglas.

04

Integraciones reales, nombradas por su nombre

Telegram, como bot propio con escucha permanente, incluida la transcripción de los mensajes de voz. Cuatro buzones de correo (tres Gmail y uno Microsoft 365), leídos exclusivamente en modo lectura. Google Calendar. Llamadas telefónicas, mediante un tronco SIP, incluidas llamadas de recordatorio iniciadas por el tablero. Obsidian. LinkedIn. Los modelos pasan por un gateway propio compatible con OpenAI, y el motor de ejecución de los agentes usa un bucle de herramientas sobre OpenRouter.

05

La regla que los agentes no pueden eludir

«Un agente no cierra una tarea» es una función en la base de datos, no una frase en una descripción de herramienta. Llegó allí porque la primera versión no funcionaba: identificaba al actor de una forma que salía vacía para un servicio automático, así que la regla no se aplicaba en ninguna parte. Ahora el actor se resuelve a partir de tres fuentes sucesivas y, si no se puede establecer, la solicitud se rechaza.

Datos y funcionamiento

Qué entra en el sistema. Qué hay que verificar.

Aislamiento por organización, verificado a nivel de fila
Las 90 tablas tienen activado el acceso a nivel de fila, bajo 171 políticas. La regla interna está escrita y sin excepciones: una tabla nueva significa una política de acceso sobre ella. La jerarquía de roles va de Super Admin a Admin, Miembro y Empleado.
Las fuentes se leen, no se toman
Los buzones de correo se conectan en modo lectura por diseño, no por configuración. Las sesiones de trabajo y la actividad git se leen desde el ordenador de la persona, no desde el servidor. Lo que llega al tablero es una huella, con vínculo de vuelta a la fuente, no una copia de la correspondencia.
Los datos están en infraestructura propia
Supabase alojado por nosotros en una máquina Azure, no Supabase Cloud — Postgres, Kong, Auth, Realtime y Storage en Docker Compose. La dirección de la base es una ruta en nuestro propio dominio. Las migraciones se aplican manualmente, de forma deliberada: no existe un paso automático que toque el esquema de producción.
Lo que ve un modelo de lenguaje
Los bucles que resumen, enlazan y juzgan envían contenido a los modelos. Cuatro de los nueve bucles internos se desactivan solos, con un mensaje explícito en el registro, cuando les falta la credencial — así que la ausencia de una clave detiene el flujo, no lo hace funcionar a medias.

De la exploración a la implementación

Cómo preparamos un proyecto con Taskin.

01

Partimos de una sola fuente y un solo proyecto

No conectamos todo. Una fuente — por lo general el correo o Telegram — y un proyecto real, para ver en datos reales qué propone el sistema y cuánto de lo que propone es útil.

02

Comparamos las propuestas con las decisiones reales

El período en el que el sistema propone y el equipo solo confirma o rechaza es el que dice si vale la pena continuar. Una propuesta rechazada es tan informativa como una aceptada.

03

Establecemos las reglas de cierre y de asignación

Quién puede cerrar qué, qué significa un plazo y qué pasa con una tarea sin responsable. Aquí también se decide si los agentes pueden escribir en el board, y en qué condiciones.

04

Lo instalamos en la infraestructura acordada

La entrega es por rsync a una máquina, no a un contenedor: la interfaz como directorios estáticos servidos por nginx, el colector y el servidor MCP como servicios systemd. La verificación de salud compara el paquete servido con el construido y hace rollback si no coinciden.

Preguntas que vale la pena aclarar.

¿Es un producto terminado o una demostración?

Corre en producción y es el board con el que dirigimos nuestra empresa. Las cifras: 566 commits, el último el 4 de septiembre de 2026; 81 migraciones que construyen 90 tablas; 171 políticas de acceso a nivel de fila; 563 casos de prueba automáticos en 38 archivos; 21 rutinas programadas en el servidor más 9 bucles en el proceso; 14 herramientas MCP; 35 endpoints en el colector. Lo que no es: un servicio con autoservicio. No existe un botón con el que un equipo externo pueda iniciarlo por sí solo — se instala.

¿Decide automáticamente quién trabaja?

No, y la restricción está en la base de datos, no en la interfaz. Una función de tipo guardia impide que un agente cierre una tarea, y cualquier escritura que cierre una debe declarar el actor; si el actor no puede determinarse, la solicitud se rechaza. También vale la pena decir por qué la regla se ve así: la primera versión identificaba al actor mediante una función que devolvía vacío para un servicio automático, así que no se aplicaba en ninguna parte. Una auditoría propia la encontró, y la migración que la corrigió explica en el comentario exactamente qué no funcionaba.

¿Con qué se conecta, concretamente?

De verdad, con código y con rutina programada: Telegram (bot propio, escucha permanente, transcripción de mensajes de voz), cuatro buzones de correo — tres Gmail y uno Microsoft 365 — solo de lectura, Google Calendar, llamadas telefónicas por troncal SIP, Obsidian, LinkedIn, además de sesiones de trabajo y actividad git leídas desde el ordenador de la persona. Los modelos pasan por un gateway propio compatible con OpenAI; el motor de ejecución de los agentes funciona sobre OpenRouter. Lo que NO está conectado, aunque nuestra página de integraciones lo muestre: Slack, GitHub, Jira, Notion, Figma, Zapier, Dropbox, Google Drive, Microsoft Teams, GitLab, Outlook. Hemos buscado en el código y no existe ni una línea para ninguno. Esa página es una rejilla de marketing y debe corregirse.

¿Existe integración con WhatsApp?

No, a pesar del nombre de una pantalla de la aplicación. Esa pantalla en realidad es el emparejamiento de un dispositivo mediante código QR, al estilo al que la gente está acostumbrada desde WhatsApp Web — de ahí viene el nombre. No existe ninguna llamada a ninguna API de WhatsApp. Además: ese flujo no se usa, y sus tablas están vacías, algo que constata incluso la migración que revisó sus permisos.

¿Cómo va la seguridad, más allá de las declaraciones?

La parte útil no es que tengamos políticas de acceso, sino que encontramos sus fallos y los arreglamos uno por uno, explicando cada migración qué no funcionaba. Una auditoría propia de agosto descubrió que las tres barreras para agentes eran inertes. Otra barrera resultó ser fail-open — la comprobación se omitía por completo, no se rechazaba — y se invirtió para fallar cerrado. El tercer problema era sutil y general: en Postgres una función nueva es ejecutable por defecto para todo el mundo, así que conceder derechos explícitos no restringía nada; se comprobó en producción que una clave anónima llegaba al cuerpo de la función, y luego se revocó el derecho por defecto. A nivel de repositorio, una barrera rechaza los pushes directos a la rama principal y bloquea los archivos de secretos, porque un repositorio privado en una cuenta personal no puede tener protección de rama por parte de GitHub.

¿Qué no está terminado?

Tres cosas que preferimos decir. Los tipos generados para la base de datos son antiguos desde enero y contienen tablas de un proyecto completamente ajeno, lo que forzó 101 conversiones de tipo forzadas en 26 archivos — funciona, pero pierde la comprobación en compilación justo donde serviría. El verificador de estilo reporta 161 errores heredados y no bloquea la entrega. Y 36 pruebas se saltan en la integración continua porque necesitan una clave de modelo que allí no existe. Ninguna detiene el producto; las tres son deuda real.

¿Cómo se instala y cuán segura es la entrega?

Por rsync, no contenedor: la interfaz llega a un directorio estático servido por nginx, el colector y el servidor MCP corren como servicios systemd. La integración continua ejecuta las pruebas y construye; la entrega solo arranca si esas pasaron en la rama principal, mediante un executor propio que tiene permiso para ejecutar exactamente dos scripts y nada más. Cada acción externa en el pipeline está fijada a su huella completa, no a una etiqueta, después del compromiso de una acción popular en marzo de 2026. La verificación de salud lee a qué paquete apunta la página servida y hace rollback si no es el más reciente — regla escrita después de un incidente real del 3 de septiembre de 2026. Las migraciones de base de datos siguen siendo manuales, deliberadamente.

Ejemplo ilustrativo

Una conversación telefónica se convierte en una tarea con prueba adjunta

Un escenario de uso, sin datos de cliente ni resultados comerciales atribuidos.

Situación inicial

Una llamada termina con una promesa. Nadie la escribe en ningún lado, y dentro de una semana nadie recuerda ni qué se prometió ni a quién.

Cómo funciona

La llamada entra en el board mediante una rutina programada, como un rastro con enlace de vuelta a la fuente. Un bucle la vincula al dossier del cliente correcto y propone una tarea con responsable y plazo. La propuesta sigue siendo propuesta: la verja en la base de datos no permite a un agente cerrarla, y la escritura que la cerraría debe declarar quién la pidió.

Rezultatul

La tarea aparece con el contexto del que surgió adjunto, de modo que un colega que no estuvo en la llamada puede entender qué hay que hacer sin reconstruir la conversación. Una persona confirma el responsable, el plazo y la formulación — o rechaza la propuesta, lo que es igual de informativo.

Ce este necesar:Sursa trebuie conectată efectiv, cu acces autorizat, și trebuie să existe un acord al echipei asupra a ce înseamnă o sarcină atribuită. Sistemul nu presupune consimțământul nimănui.

Posibilidades de colaboración

Taskin, en el contexto de tu organización.

Flujos internos e información

La conexión de las fuentes autorizadas, la organización de la información y la revisión de las acciones por parte del equipo, con acceso separado por roles.

Empresas privadas

Definimos un piloto en torno a un proceso real: usuarios, datos, integraciones, costes y criterios de aceptación. La ampliación sigue después de evaluar el resultado.

Instituciones y empresas públicas

Establecemos los requisitos de accesibilidad, alojamiento, protección de datos e interoperabilidad. Cualquier conexión con servicios AGE o STISC requiere la validación de la elegibilidad, el acceso y las aprobaciones.

Estos son escenarios de adaptación, no declaraciones sobre contratos o colaboraciones existentes. Las funciones propuestas se confirman en el ámbito de trabajo del proyecto.

Habla de un piloto

Parte de un ecosistema.

¿Qué te gustaría que funcionara mejor?

Cuéntanos tu proceso. Juntos decidimos qué merece la pena construir, qué podemos conectar y cómo verificamos el resultado.

Vamos a hablar