Eines
DailyRapport, l'app del registre diari
Una aplicació web per registrar la feina de cada dia: què vaig necessitar,
2 min de lectura
Porto anys enviant un correu al final del dia explicant què he fet. El problema no era escriure'l: era que sempre arribava tard, a les sis de la tarda, quan ja no recordaves del tot què havia passat al matí. DailyRapport és la meva resposta: una aplicació web que manté el registre al dia i prepara el correu ella sola.
Què hi ha dins
Va néixer com a eina d'enviament de rapports (l'informe de cada jornada), però avui és un gestor de feina diària sencer: registre per dates, biblioteca de tasques amb prioritats i categories, rutines setmanals, plans mensuals i rebalanceig per capacitat quan el dia no dona de si. La duració de cada tasca s'arrodoneix a blocs de trenta minuts, perquè pretendre minuts de precisió és mentir-se. I el cicle que em fa servei cada dia és aquest: l'aplicació genera un esborrany del rapport, jo el reviso i l'aprovo des del Telegram al mòbil, i llavors surt per correu. Amb aprovació prèvia, sense enviaments que no hagin passat per les meves mans.
Seguretat, quan la cosa es posa seriosa
Com que hi havia un bot de Telegram i credencials SMTP (les dades que permeten enviar correu) dins, hi va haver un moment en què vaig haver de tractar-la com a aplicació de veritat: cap secret a les respostes de la API, JWT (el testimoni signat que t'acredita) amb iss, aud i jti, sessió per cookie HttpOnly (una cookie que el navegador no deixa llegir al codi de la pàgina), limitació de peticions al login i al webhook (la porta per on altres sistemes et truquen), i PostgreSQL publicat només al loopback (l'adreça que només veu el propi servidor). Cap d'aquestes coses la va demanar ningú; totes són conseqüència d'haver-la posat a producció.
Què vaig aprendre amb agents d'IA
Aquest projecte el vaig construir amb agents d'IA (programari que treballa sol seguint instruccions; la coordinació entre ells té història pròpia a Hermes Team Hub: coordinar agents d'IA), i vaig descobrir que el problema no és generar codi: és mantenir el context entre sessions. La solució va ser documentar-ho tot de manera densa: un CHANGELOG detallat, la descripció del projecte i els documents de decisions en markdown. Els arxius .pen que arrosseguem entre sessions són literalment el context comprimit del projecte. Quan un agent tornava a començar de zero, la feina perduda no era codi: era memòria.
Què faria diferent avui
Proves des del primer dia, sobretot al càlcul de capacitat i rebalanceig, que és on la lògica es torna subtil. I començaria pel flux d'aprovació en lloc d'afegir-lo al final, perquè l'enviament automàtic sense aprovació no el volia i tota la resta s'hi hauria hagut d'adaptar des del principi.