Files
ua-userscripts/AGENTS.md
T
Glenn GoossensandClaude Opus 5.5 3b2528d72a bipp-sneltoetsen: Zoeken, Reset, Nieuw, Opslaan, Indienen, Terug (1.1.0)
Ctrl+Z/R/N/S/I/T next to Ctrl+B, one table of label, letter, key.
Hints for all buttons while Ctrl is held. BIPP's own title kept,
shortcut on a line below. AGENTS.md: Claude installs the dev-stub
itself, only the Install click is left, pick the UA Chrome profile.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:12:49 +01:00

4.6 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

Claude installeert de stub zelf, Glenn plakt niets. Serveer de stub (--no-copy) als <map>.user.js vanuit de scratchpad op een vrije poort, open die URL in de Claude-in-Chrome-tab en Tampermonkey opent zijn installatiepagina. Die pagina (chrome-extension://) is voor de browsertools onbereikbaar, dus de enige stap voor Glenn is daar op Install klikken. Stop de server daarna.

  • Juiste Chrome-profiel. BIPP en de Tampermonkey-scripts zitten in het profiel UA (Profile 1). Met de Claude-extensie in twee profielen verbindt list_connected_browsers met het profiel dat eerst antwoordt; kies UA met select_browser. Of je goed zit, zie je aan de History van het profiel na een bezoek vanuit de tool.
  • Een bestaande rij met dezelfde @namespace plus @name wordt bijgewerkt. Een andere @name geeft een tweede rij die dezelfde file nog eens laadt, dus elke sneltoets dubbel: verwijder dan eerst de oude rij.

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.
  • @downloadURL en @updateURL staan er allebei niet in. De code komt uit een lokaal bestand, dus er is niets te downloaden of bij te werken. @updateURL none is geen oplossing: de editor van Tampermonkey toont dan een eslint-waarschuwing (use-download-and-update-url), en zonder @downloadURL heeft @updateURL ook geen functie. Een rij die ooit van de raw-URL kwam, onthoudt die URL apart van het meta-blok en biedt dan alsnog een update aan die de stub overschrijft: verwijder zo'n rij en maak de stub opnieuw aan via Create a new script.
  • 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.

Testen op BIPP

BIPP-pagina's zoals OrderComposer.aspx en OrderRequestDetail.aspx werken alleen via het menu (een __doPostBack, bijvoorbeeld javascript:__doPostBack('orderRequestMenu$reviewRequestBtn','')). Open je ze rechtstreeks via de URL, dan geeft de server "Object reference not set to an instance of an object". Dat ligt niet aan je script: navigeer eerst naar een andere BIPP-pagina en klik dan in het menu.