Files
ua-userscripts/AGENTS.md
T
Glenn GoossensandClaude Opus 5 f07c4ffb9e dev-stub: zet de stub op een vaste versie en laat ze naar src wijzen
De stub moest tot nu toe mee met elke @version-bump, en dat is net het plakwerk waar het
@require-spoor vanaf moest. Het nummer zei daar ook niets: de code komt bij elke pagina-load van
schijf, dus wat er draait is wat er nú in de repo staat, niet wat er in het meta-blok bleef
staan. De kolom hoeft enkel -dev te tonen, dus staat er voortaan 0.0.0-dev. Opnieuw genereren is
nog nodig als de metadata zelf wijzigt, bij een andere @match, @grant, @run-at of @require.

Heeft een map een src/, dan wijst @require daar rechtstreeks naar. Bij select-search was het
gebouwde bestand niets anders dan de header plus die bron, dus stond build.sh alleen maar tussen
opslaan en herladen in. Die draai je nu pas bij het publiceren, voor de raw-URL en de
bookmarklet. De metadata blijft wel uit het gebouwde script komen, want de bron heeft geen
==UserScript==-blok.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 10:49:36 +00:00

4.0 KiB

ua-userscripts

Dev-conventies voor dit script-repo: dev-stub workflow en naamgeving.

Dev-stub vs. gebruik

De file in scripts/ is de bron van waarheid voor de code. Wat in Tampermonkey staat is dus óf een loader die naar die file wijst, óf een kopie die van de raw-URL komt. Nooit een met de hand geplakte kopie, want dan zijn er twee waarheden die stil uit elkaar lopen.

spoor wat er in Tampermonkey staat grootte @version
dev stub met @require file:///... een paar honderd byte 0.0.0-dev
gebruik volledige kopie via de raw-URL de echte grootte 1.0.0

De grootte in het dashboard zegt dus in welk spoor een rij zit.

Een dev-stub maken

bin/dev-stub bipp-budgetcode

De stub gaat meteen naar het klembord. In Tampermonkey neem je het potlood van de bestaande rij, dan Cmd+A, Cmd+V, Cmd+S. Via de +-tab krijg je een tweede rij in plaats van een bijgewerkte, want Tampermonkey herkent een script aan @namespace plus @name.

bin/dev-stub --list toont de scriptmappen, --no-copy slaat het klembord over.

Drie dingen die aan die stub vasthangen:

  • De metadata komt uit de stub, niet uit de required file. @match, @grant en @run-at moeten er dus in staan; het ==UserScript==-blok van de file zelf wordt genegeerd. dev-stub neemt die velden over uit het echte script, zodat de twee niet uit elkaar lopen.
  • @updateURL staat op none. Die velden weglaten volstaat niet: Tampermonkey onthoudt de download-URL van de oorspronkelijke installatie apart van het meta-blok, dus een rij die ooit van de raw-URL kwam biedt daarna alsnog een update aan die je stub overschrijft. In determineMetaURL gaat @updateURL vóór die onthouden URL, en none breekt de check af. @downloadURL mag daardoor gewoon blijven staan: die wordt nooit meer bereikt, en levert wel het GitHub-icoon op in de overzichtslijst, want de herkomst wordt uit die URL afgeleid. dev-stub zet allebei zelf in de stub. Controleren doe je niet in Settings: het veld Update URL daar is downloadURL onder een misleidend label (file_url = downloadURL || fileURL), en @updateURL heeft in dat scherm geen veld. Het toont dus de raw-URL, ook als none netjes is overgenomen. Controleer in plaats daarvan het gedrag: klik in de werkbalk-popup op Check for userscript updates en er hoort geen enkel dialoogvenster te komen.
  • De stub hoeft niet mee met een @version-bump. Ze staat op een vaste 0.0.0-dev. Een echt nummer zou daar toch niets zeggen: de code komt bij elke pagina-load van schijf, dus wat er draait is wat er nú in de repo staat. De kolom hoeft enkel -dev te tonen. Opnieuw genereren en plakken doe je alleen als de metadata zelf wijzigt, dus bij een andere @match, @grant, @run-at of @require.
  • Heeft de map een src/, dan wijst @require daarnaar, niet naar het gebouwde script. Opslaan en de pagina herladen volstaat; build.sh draai je pas als je publiceert, voor de raw-URL en de bookmarklet.

Lokale bestanden lezen mag Tampermonkey alleen als Allow access to file URLs aanstaat, bij chrome://extensions onder Details.

Naamgeving

<Toepassing>: <wat het doet>, met de toepassing zoals je ze zelf noemt (BIPP, iExpense, PeopleSoft), daarna de dubbele punt en een kleine-letter naamwoordgroep zonder punt. Het dashboard sorteert op naam, dus zo staan de scripts van dezelfde toepassing bij elkaar.

  • Geen [DEV] in de naam. Dat groepeert op ontwikkelstatus in plaats van op toepassing, en de Version-kolom zegt met -dev al hetzelfde.
  • Geen technische slug in de naam. Die staat in het repo-pad en in @homepageURL.
  • Draait een script op meerdere sites, dan Algemeen: ....
  • Mapnaam en bestandsnaam in kebab-case, zelfde volgorde: <toepassing>-<functie>.

Hoog @version op bij elke wijziging, anders krijgt niemand de update binnen.