Context
Reunimos las fuentes autorizadas relevantes para el proyecto.
Organizarea muncii Desarrollo y demostraciones
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ó.
Taskin
Reunimos las fuentes autorizadas relevantes para el proyecto.
Identificamos las decisiones y las tareas pendientes para la verificación por el equipo.
Organizamos las responsabilidades y el seguimiento de los pasos confirmados.
La reconstrucción de decisiones y prioridades sin perder el contexto.
Propuestas de tareas a partir de conversaciones, revisadas antes de su uso.
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
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.
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.
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.
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.
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.
«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
De la exploración a la implementación
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
Un escenario de uso, sin datos de cliente ni resultados comerciales atribuidos.
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.
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ó.
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
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.
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.
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 pilotoUn asistente conectado a la información de tu negocio, en los canales por los que te escriben tus clientes.
PlatformăCronberry reúne fuentes autorizadas, conversaciones y relaciones en un espacio de investigación y coordinación.
Desarrollo y demostracionesMegaforms explora la recogida de respuestas mediante formularios conversacionales, con respuestas de voz y transcripción incluidas.
Desarrollo y demostracionesCuéntanos tu proceso. Juntos decidimos qué merece la pena construir, qué podemos conectar y cómo verificamos el resultado.