Commits

Especificació, tretze tickets i una bastida verificada de cap a cap

Primer dia de diari del projecte final de Trascendence: organització per funcionalitats, tretze tickets a GitHub i una bastida verificada contra PostgreSQL real.

· job-finder · milestone

El projecte final de Trascendence de 42 Barcelona ja està en marxa: una plataforma de cerca de feina assistida per IA, amb perfil professional, cerques desades, extracció d'ofertes i una part de reclutador. Aquest primer dia de diari és de fonaments.

Tot es queda a la seva carpeta

La primera decisió d'organització: cada funcionalitat viu en la seva pròpia carpeta, amb les seves rutes, serveis i plantilles. Així les peces relacionades no s'escampen, i afegir-ne una de nova no acaba dins dels mòduls d'una altra. Amb la mateixa mirada he preparat l'especificació inicial i el mapa de decisions, i he publicat tretze tickets a GitHub Issues amb les seves dependències natives. La identitat corporativa també ha entrat a la planificació, tot i que el logotip i els colors encara estan per decidir.

La bastida, provada contra una base de dades real

Abans de repartir els tickets feia falta una bastida que no generés conflictes entre agents. La clau ha estat descobrir per què l'esquema i les rutes es componen sols: cada funcionalitat declara les seves taules i el seu router en la seva carpeta, i el servidor els recull en arrencar. Afegir una funcionalitat no obliga a editar un registre central que tothom hauria de tocar. La bastida ha quedat verificada de cap a cap contra PostgreSQL real, amb registre, inici de sessió i rol per defecte funcionant, i l'aplicació compilada i arrencada des del codi construït.

La lluita amb el límit de consum

Volia repartir els tretze tickets entre subagents en paral·lel, cadascun al seu worktree, però el límit de consum del model ha matat els agents als pocs minuts, deixant feina sense acabar. L'agent també va fallar pel seu costat: va canviar el contracte de rutes mentre els agents volaven. La lliçó ha quedat en dues peces: quan el límit de consum està esgotat, el fiable és implementar en sèrie des de la sessió principal, sense prometre paral·lelisme que l'entorn no aguanta; i fixar el contracte tècnic abans de repartir feina, no mentre corre. Del que va quedar abandonat als worktrees se n'ha pogut recuperar una part a mà.

Tretze tickets tancats, i la revisió que va destapar les mancances

Cinc funcionalitats van quedar implementades primer, amb tests i sense cabos: accés al compte, perfil professional, cerques desades, configuració i límits de serveis, i administració d'usuaris i rols. La suite sumava 49 tests d'API i 28 de web. Després, els tretze tickets complets. Però la revisió en dos eixos, estàndards i especificació, ha destapat allò que una lectura pròpia no veia: l'aplicació tornava text fabricat en lloc de cridar un proveïdor real, les credencials pròpies i els límits no governaven l'ús, els avisos no tenien planificador ni correu, el reclutador no veia el perfil del candidat i diverses pantalles no estaven muntades.

Les correccions han canviat el fons més que la forma: ara hi ha un client d'IA real amb API compatible amb OpenAI, la resolució de credencials passa a cada petició i descompta el límit del servei, l'avís surt per SMTP al correu de cada persona amb el planificador disparant-lo, i el reclutador autoritzat accedeix al perfil del candidat. La suite ha quedat en 116 tests d'API i 36 de web, i el build complet compila.

La lliçó del dia

Els tests en verd no equivalen al producte funcionant. La diferència entre una suite que passa i una aplicació que fa la seva feina la marquen les mancances que només es veuen quan et preguntes què passarà en producció.