En el desenvolupament de programari, especialment quan es treballa amb aplicacions que tenen capes de renderització estàtica i dinàmica, la sincronització del contingut esdevé un repte crític. Fa unes setmanes, durant una auditoria d'integritat editorial en un portal d'assessoria fiscal, vam trobar un problema que semblava trivial però que va revelar una vulnerabilitat profunda: set pàgines independents afirmaven alguna cosa incorrecta sobre la llei d'impostos índia. La font de veritat —els fitxers Razor— era perfecta. Però els miralls HTML estàtics, que són els que Google indexa i els usuaris veuen abans que l'aplicació Blazor acabi d'hidratar-se, havien quedat desactualitzats. Després d'una correcció manual que consideràvem completa, una eina automàtica de lint va descobrir tres mentides addicionals que el nostre escombrat humà havia passat per alt. Aquest article no és només una anècdota tècnica; és una lliçó sobre per què la revisió manual, per exhaustiva que sembli, mai no pot reemplaçar un sistema de validació automatitzat, especialment en continguts Your-Money-Your-Life (YMYL).
L'arquitectura que va causar el problema és comuna en molts projectes moderns: una aplicació SPA (Single Page Application) que genera versions estàtiques de les seves pàgines per millorar el SEO i la velocitat de càrrega inicial. En aquest cas, es tractava d'un lloc construït amb Blazor WebAssembly, desplegat a Cloudflare Pages. Cada entrada de blog tenia dues representacions: el fitxer .razor original, que es compila al paquet WASM i es renderitza del costat del client, i un mirall HTML estàtic a wwwroot/blog/<slug>/index.html, que és el que el servidor lliura en carregar la pàgina i el que els motors de cerca indexen. El manteniment d'aquests miralls era manual: no existia un procés de compilació que regenerés automàticament els HTML a partir dels Razor. Per tant, quan es corregia un error factual en un Razor, el mirall romania amb la informació antiga i errònia.
Ja existia un lint que verificava la paritat dels títols SEO (que el del Razor coincidís amb el del mirall), però aquest control no cobria el contingut del cos. Així que, durant una auditoria d'integritat editorial, vam trobar la mateixa afirmació falsa en set miralls diferents: 'La Secció 80CCD(1B) del NPS ara està permesa en tots dos règims fiscals'. Això és incorrecte: la deducció de 50.000 rupies per NPS és exclusiva del règim antic; el nou règim no la permet. Un contribuent que seguís aquest consell podria fer una declaració incorrecta i enfrontar-se a una notificació fiscal. El sorprenent va ser que els fitxers Razor deien el correcte: '80CCD(1B) només aplica al Règim Antic'. Els miralls, en canvi, afirmaven el contrari en set pàgines diferents, sense compartir components. La causa arrel va ser una correcció prèvia (mesos enrere) als Razor, després d'una mala interpretació del Pressupost 2025, que mai es va propagar als miralls.
Després de corregir manualment les set pàgines, la sensació d'haver resolt el problema va durar poc. La incomoditat d'haver-nos pogut deixar alguna va portar a construir un lint més intel·ligent. El primer intent va ser una expressió regular ingènua: buscar la menció de '80CCD(1B)' prop de 'nou règim'. Això va donar 17 falsos positius en 100 miralls. Frases com 'La Secció 80CCD(1B) no està permesa al Nou Règim' contenen la paraula 'permesa' com a subcadena de 'no permesa'. Ni els límits de paraula ni una llista de negacions simples bastaven per distingir una afirmació correcta d'una d'incorrecta. La solució va ser un enfocament de dues fases: la fase 1 cerca co-ocurrències sospitoses (el nom de la deducció prop de 'nou règim') amb un patró ampli; la fase 2 examina els 400 caràcters al voltant de cada coincidència i, si troba paraules o frases indicadores de seguretat (com 'disallow', 'not allow', 'només règim antic', 'no es pot', etc.), assumeix que la frase està corregint l'afirmació i la salta. Aquest enfocament va reduir els falsos positius i va descobrir tres mentides reals que l'escombrat manual no havia detectat: estaven en seccions diferents de les mateixes pàgines que havíem corregit, com els paràgrafs introductoris o les seccions de conclusió, que no s'havien actualitzat per tenir redaccions diferents. El lint, en buscar el patró semàntic i no la frase exacta, les va trobar.
La moral és clara: quan el contingut té implicacions financeres, legals o mèdiques (YMYL), un error pot tenir conseqüències greus per als usuaris. Les revisions manuals, tot i que necessàries, són fal·libles perquè l'ull humà tendeix a buscar el que espera veure i pot passar per alt variacions de redacció. Un sistema automatitzat, com el lint descrit, és determinista, ràpid (corre en 400 ms sobre 100 fitxers) i fàcil de mantenir. A Q2BSTUDIO, entenem que la qualitat del programari no és només qüestió de funcionalitat, sinó d'integritat de les dades i la informació que maneja. Per això oferim serveis com aplicacions a mida on implementem controls de qualitat automatitzats, des de lints semàntics fins a pipelines de CI/CD que verifiquen que el contingut desplegat sigui consistent amb les fonts de veritat. A més, en projectes que requereixen processament de grans volums de dades, integrem BI i Power BI per generar dashboards que monitoritzin l'exactitud de la informació.
L'automatització no es limita a lints de contingut. A Q2BSTUDIO també apliquem intel·ligència artificial per detectar patrons d'error que escapen als mètodes tradicionals. Per exemple, els agents d'IA poden analitzar documents i comparar afirmacions amb bases de coneixement actualitzades, oferint un segon nivell de verificació. En l'àmbit de la ciberseguretat, sabem que un error en un lloc web fiscal pot ser explotat per atacants per difondre desinformació o redirigir els usuaris a pàgines malicioses; per això oferim serveis de ciberseguretat i pentesting per protegir la integritat del contingut i la confiança de l'usuari. També treballem amb infraestructures cloud com AWS i Azure per desplegar aplicacions que necessiten sincronització constant entre diferents capes, assegurant que les dades estàtiques i dinàmiques estiguin sempre alineades.
La lliçó principal d'aquesta història és que les eines automàtiques de validació no són un luxe, sinó una necessitat en projectes on la precisió del contingut és crítica. L'esforç de construir un lint de 200 línies de PowerShell es va amortitzar en el moment en què va detectar quatre errors que un humà meticulós havia passat per alt. I el més important: en integrar-lo al pipeline de CI/CD, es converteix en un guardià permanent que evita que futurs errors arribin a producció. Si el seu projecte maneja informació sensible —ja sigui fiscal, mèdica, legal o tècnica— consideri implementar un sistema similar. No cal que sigui complex; de vegades, un patró de dues fases amb indicadors de seguretat és suficient per atrapar mentides que d'altra manera es filtrarien. A Q2BSTUDIO, ajudem empreses a dissenyar i desplegar aquestes solucions, combinant coneixement tècnic amb una visió de negoci orientada a la qualitat i la seguretat. Perquè al final, un error no és només un bug; per a un usuari que confia en la seva aplicació, pot ser un problema real de diners o salut.





