I+D personal
Territorial Assistant
Un daemon basado en Discord que convierte mi propia actividad de trabajo en hojas de horas aprobadas y en una base curada de historias de ingeniería.
Reconstruir horas facturables de memoria y encontrar tiempo para escribir sobre el trabajo eran dos tareas que siempre posponía. Este asistente de proceso único lee ActivityWatch, git, GitHub y transcripciones de Claude Code, propone hojas de horas diarias en Discord y extrae de la misma evidencia historias que merecen publicarse.
En resumen
- Un proceso TypeScript, una base Postgres, un bot de Discord; ninguna UI web que mantener
- Claude se usa solo para criterio, nunca para contabilidad: reglas y cachés responden primero, y las llamadas se liberan solo con presupuesto sobrante en la suscripción
- El asistente de hojas de horas propone entradas por cliente, aprende reglas de mapeo a partir de correcciones en lenguaje natural y registra los días aprobados en Territorial Invoices
- El asistente de marketing extrae y puntúa historias cada semana y redacta posts; la información confidencial de clientes se excluye por diseño
Cómo funciona el asistente de hojas de horas
Cada quince minutos el daemon ingiere eventos de ventana y navegador de ActivityWatch, los compacta en bloques de actividad y resuelve todo lo que puede con reglas aprendidas: este repositorio es aquel cliente, este host de URL es aquel proyecto. Solo el resto ambiguo va a Claude. Los bloques se convierten en intervalos por cliente, los intervalos se fusionan en sesiones cognitivas con un margen de 15 minutos y una tolerancia de 45 minutos entre ellas, y cada sesión se enriquece con lo que realmente se hizo usando commits y transcripciones de esa ventana.
El resultado es una propuesta en un hilo de Discord, una por día. Respondo en lenguaje natural ("S2 es ACM, hito Maintenance & DevOps"), el bot revisa, aprende la regla y, al aprobar, registra una entrada por sesión y proyecto a través del endpoint MCP de Invoices. Los días incompletos se rechazan en lugar de registrarse a medias.
El asistente de marketing
El segundo módulo trata la experiencia como el producto. Reúne el historial git, pull requests y transcripciones de la semana, extrae qué pasó y cuál fue la lección, y puntúa cada elemento como un ángulo que le importaría a un gestor SIG o CTO aun sin conocer el proyecto. El lunes llega un resumen de candidatas a Discord; elijo y asigno cada una a un blog, el asistente redacta en un hilo, abre un pull request contra el repositorio del sitio al aprobar y prepara publicaciones para LinkedIn cuando el artículo está en línea. La base de conocimiento persiste entre semanas, así que los elementos con baja puntuación pueden rescatarse después.
Restricciones de diseño
Las etapas se comunican solo a través de la base de datos, así que cualquiera puede volver a ejecutarse. Claude se invoca mediante la CLI local con esquemas de salida estructurada, sin herramientas y sin persistencia de sesión, para que las llamadas generadas por el asistente nunca contaminen las transcripciones que luego lee. Una compuerta consulta el endpoint de uso de la suscripción y vacía una cola de prioridad solo cuando el presupuesto quedaría sin usar: respuestas interactivas primero, hojas de horas después, marketing al final.
Más proyectos
Todos los proyectos
Finances
Una app personal de libro mayor y presupuesto con arquitectura Postgres-first: una instancia PostgREST, un frontend estático, nada más.
- PostgreSQL
- PostgREST
- React
- Vite
- +5
- Pregunta
- LLM
- Validación
- PostGIS
- Respuesta
Plataforma de Consulta Geoespacial en Lenguaje Natural
Un producto donde los usuarios preguntan sobre datos geográficos en lenguaje natural y reciben respuestas, gráficos y mapas, generados por un LLM sobre PostGIS.
- FastAPI
- Python
- LangChain
- PostgreSQL
- +7

Geo360 LADM
El primer sistema de administración de tierras en Brasil construido sobre el estándar ISO 19152 LADM, liderado mientras estaba en Topocart.
- PostgreSQL
- PostGIS
- GeoServer
- LADM (ISO 19152)
- +4