Ik hield twee weken lang 13 juridische pagina's in de gaten; drie daarvan veranderden

Het ging me niet om de vraag "is de pagina veranderd"; een hash vertelt je dat al, maar dat is nutteloos omdat deze pagina's constant veranderen vanwege cookiebanners en links in de voettekst. Ik wilde weten welke clausule was gewijzigd en of dit van belang was.

Hieronder volgt alles wat er gebeurde tussen 21 juli en 1 augustus.

Gevonden wijzigingen

21 juli: Stripe voegde voorwaarden toe voor een volledig nieuw prepaid kaartproduct

Stripe publiceerde een compleet nieuw document, "Link Virtual Card Terms", op hun juridische consumentenpagina. Dit bestaat uit zes secties: reikwijdte, geschiktheid, de rol van Stripe als programmanager, transactielimieten, schorsing en beëindiging, en uitsluiting van garantie. Het document is van toepassing op een consumenten prepaid debitkaart met het merk Link, gefinancierd door het Link-saldo.

Stripe kondigde de Link-wallet in april aan tijdens Sessions. Ik kon echter geen aankondiging vinden van een consumentenkaart voor Link; de voorwaarden verschenen als eerste.

De clausules die belangrijk zijn voor de kaarthouder:

  • Stripe kan de toegang "op elk moment om welke reden dan ook" beëindigen.
  • Er is een sectie over het afstand doen van claims (release-of-claims).
  • Identiteitsverificatie verzamelt SSN/fiscaal ID onder de USA PATRIOT Act.

Volledige diff, hash-geverifieerd: https://useclausewatch.com/p/16

31 juli: Supabase wijzigde welke overeenkomst prevaleert

Supabase heeft de voorwaarden bijgewerkt zodat klanten met een aparte, uitonderhandelde overeenkomst niet langer automatisch gebonden zijn aan de nieuwe servicevoorwaarden (ToS). In plaats daarvan is hun bestaande overeenkomst leidend.

Dit is een wijziging in het voordeel van de klant. Het is zinvol om dit expliciet te benoemen, omdat monitoringtools vaak de neiging hebben om alles alarmerend te laten klinken, terwijl de meeste wijzigingen in voorwaarden simpelweg routinematig onderhoud zijn.

31 juli: Google maakt je verantwoordelijk voor je eigen datakosten

Google voegde een sectie toe waarin staat dat gebruikers verantwoordelijk zijn voor de netwerkverbindingskosten (bijvoorbeeld het databundelverbruik) die worden gemaakt tijdens het gebruik van Google-diensten, inclusief wanneer u deze niet actief gebruikt. De bijgewerkte voorwaarden herhalen daarnaast dat het recht van Californië van toepassing is.

Patronen en observaties

Een onverwacht patroon

Twee van de drie wijzigingen vonden plaats op 31 juli, de dag voordat de maand omging. Als updates van voorwaarden clusteren rond effectieve data aan het einde van de maand, dan is dat een toetsbare hypothese; dit zou betekenen dat de laatste dag van de maand het moment is om te kijken. Ik heb nu twee datapunten. Dat is een vermoeden, geen vaststelling.

De nuttigere observatie is die van Stripe: juridische pagina's bewegen voordat aankondigingen dat doen. Een bedrijf publiceert de voorwaarden zodra het product bijna klaar is, omdat dat moet. Als je de juridische pagina in de gaten houdt, zie je het product voordat het blogbericht verschijnt.

Technische implementatie en beperkingen

Wat ik fout deed

Mijn scoring is gebaseerd op regels: trefwoordregels die over de gewijzigde regels lopen, zonder LLM (Large Language Model) in het detectiepad. Het systeem markeert woorden als "waive" (afstand doen van), "arbitration" (arbitrage), "liability" (aansprakelijkheid), "indemnify" (vrijwaren), enzovoort.

Bij de diff van Supabase werd "waiver" gemarkeerd, afkomstig uit een sectiekop over het herroepingsrecht in de EU/VK. Niets aan die sectie was echter zodanig gewijzigd dat er rechten waren komen te vervallen. De regels begrijpen bovendien geen ontkenningen: een zin waarin staat dat rechten "niet beperkt, opgegeven of gewijzigd" zijn, krijgt dezelfde score als een zin waarin ze wél worden opgegeven.

De markeringen zijn dus een filter, geen definitief oordeel. Elke melding wordt uiteindelijk nog gelezen door een mens die de diff controleert. Ik geef hier liever eerlijk over dan te doen alsof de classifier slimmer is dan hij is.

De infrastructuur

Het geheel draait op een VPS van $7 per maand: 1 vCPU, 1 GB RAM. De stack bestaat uit:

  • Postgres
  • Redis
  • Een FastAPI-app
  • Een worker die fetches uitvoert met httpx en extracties doet met trafilatura.

Er wordt geen headless browser gebruikt; dat zou niet in het RAM-geheugen passen, en voor juridische pagina's blijkt dit overigens niet nodig te zijn. Snapshots worden opgeslagen op het lokale bestandssysteem. Elke versie is SHA-256 gehasht, zodat elke bovenstaande claim kan worden gecontroleerd aan de hand van de opgeslagen tekst.

De detectie gebeurt via trefwoordregels. Een LLM schrijft pas een samenvatting van één zin in begrijpelijk Engels nadat iets is gemarkeerd. Dit kost niets binnen het gratis abonnement en houdt het model buiten het deel van het proces dat reproduceerbaar moet zijn.

Conclusie

Als je bouwt op het platform van iemand anders, erf je hun voorwaarden. Je hebt de huidige versie waarschijnlijk niet gelezen en er is geen reden waarom je zou weten wanneer deze is gewijzigd.

De bewijspagina's hierboven zijn openbaar en gratis in te zien. Als je wilt dat een specifieke leverancier wordt gemonitord, laat me dan weten welke; ik ben benieuwd wat er gebeurt als we naar 50 pagina's gaan.

https://useclausewatch.com