AGENTS.md: shorter, no personal name, add repo location and namespace note
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
f140a32199
commit
5320b17945
@@ -1,84 +1,51 @@
|
|||||||
# ua-userscripts
|
# ua-userscripts
|
||||||
|
|
||||||
Dev-conventies voor dit script-repo: dev-stub workflow en naamgeving.
|
Repo: https://gitea.flw.uantwerpen.be/glenn/ua-userscripts. Scripts in `scripts/<map>/`, elk met een eigen README.
|
||||||
|
|
||||||
## Dev-stub vs. gebruik
|
## Dev-stub vs. gebruik
|
||||||
|
|
||||||
De file in `scripts/` is de bron van waarheid voor de code. Wat in Tampermonkey staat is dus
|
`scripts/` is de bron van waarheid. In Tampermonkey staat een van twee sporen, nooit een met de hand geplakte kopie:
|
||||||
ó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` |
|
| spoor | in Tampermonkey | `@version` |
|
||||||
| ----------- | --------------------------------------- | ----------------- | ----------- |
|
| ----------- | ------------------------------- | ----------- |
|
||||||
| **dev** | stub met `@require file:///...` | een paar honderd byte | `0.0.0-dev` |
|
| **dev** | stub met `@require file:///...` | `0.0.0-dev` |
|
||||||
| **gebruik** | volledige kopie via de raw-URL | de echte grootte | `1.0.0` |
|
| **gebruik** | volledige kopie via de raw-URL | `1.0.0` |
|
||||||
|
|
||||||
De grootte in het dashboard zegt dus in welk spoor een rij zit.
|
### Dev-stub maken en installeren
|
||||||
|
|
||||||
### Een dev-stub maken
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
bin/dev-stub bipp-budgetcode
|
bin/dev-stub bipp-budgetcode # --list toont de mappen, --no-copy slaat het klembord over
|
||||||
```
|
```
|
||||||
|
|
||||||
Claude installeert de stub zelf, Glenn plakt niets. Serveer de stub (`--no-copy`) als
|
Claude installeert de stub zelf:
|
||||||
`<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**
|
1. Serveer de stub (`--no-copy`) als `<map>.user.js` vanuit de scratchpad op een vrije poort.
|
||||||
(Profile 1). Met de Claude-extensie in twee profielen verbindt `list_connected_browsers` met
|
2. Open die URL in de Claude-in-Chrome-tab, in het Chrome-profiel **UA** (Profile 1, kies met `select_browser`; controleer via de `History` van dat profiel).
|
||||||
het profiel dat eerst antwoordt; kies UA met `select_browser`. Of je goed zit, zie je aan de
|
3. De gebruiker klikt op **Install** (de `chrome-extension://`-pagina is onbereikbaar voor de tools).
|
||||||
`History` van het profiel na een bezoek vanuit de tool.
|
4. Stop de server.
|
||||||
- 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.
|
Zelfde `@namespace` plus `@name` werkt een bestaande rij bij. Een andere `@name` geeft een tweede rij die dezelfde file nog eens laadt (elke sneltoets dubbel): verwijder dan eerst de oude.
|
||||||
|
|
||||||
Drie dingen die aan die stub vasthangen:
|
Eigenschappen van de stub:
|
||||||
|
|
||||||
- **De metadata komt uit de stub, niet uit de required file.** `@match`, `@grant` en `@run-at`
|
- **Metadata komt uit de stub**, niet uit de required file. `@match`, `@grant`, `@run-at` en `@require` moeten erin staan; `dev-stub` neemt ze over. Opnieuw genereren en installeren is alleen nodig als die wijzigen.
|
||||||
moeten er dus in staan; het `==UserScript==`-blok van de file zelf wordt genegeerd. `dev-stub`
|
- **Geen `@downloadURL` en `@updateURL`.** `@updateURL none` geeft een eslint-waarschuwing in de editor. Een rij die ooit van de raw-URL kwam, biedt alsnog updates aan die de stub overschrijven: verwijder die rij en maak de stub opnieuw via **Create a new script**.
|
||||||
neemt die velden over uit het echte script, zodat de twee niet uit elkaar lopen.
|
- **Vaste `0.0.0-dev`**, geen bump nodig: de code komt bij elke paginaload van schijf.
|
||||||
- **`@downloadURL` en `@updateURL` staan er allebei niet in.** De code komt uit een lokaal
|
- **Met `src/`** wijst `@require` daarnaar. Opslaan en herladen volstaat; `build.sh` draai je pas bij publiceren.
|
||||||
bestand, dus er is niets te downloaden of bij te werken. `@updateURL none` is geen
|
- **Vereist** dat **Allow access to file URLs** aanstaat (`chrome://extensions`, Details).
|
||||||
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
|
## Publiceren
|
||||||
`chrome://extensions` onder Details.
|
|
||||||
|
|
||||||
### Naamgeving
|
- Hoog `@version` op bij elke wijziging, anders krijgt niemand de update.
|
||||||
|
- `@namespace` blijft `https://github.com/glgoose/ua-userscripts`. Het is alleen een identificatie, en wijzigen geeft bij iedereen een dubbele rij.
|
||||||
|
|
||||||
`<Toepassing>: <wat het doet>`, met de toepassing zoals je ze zelf noemt (`BIPP`, `iExpense`,
|
## Naamgeving
|
||||||
`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
|
`<Toepassing>: <wat het doet>`: toepassing zoals je ze zelf noemt (`BIPP`, `iExpense`, `PeopleSoft`, of `Algemeen` bij meerdere sites), dubbele punt, kleine-letter naamwoordgroep zonder punt. Het dashboard sorteert op naam, zo staan scripts van dezelfde toepassing bij elkaar.
|
||||||
Version-kolom zegt met `-dev` al hetzelfde.
|
|
||||||
- Geen technische slug in de naam. Die staat in het repo-pad en in `@homepageURL`.
|
- Geen `[DEV]` of technische slug in de naam.
|
||||||
- Draait een script op meerdere sites, dan `Algemeen: ...`.
|
|
||||||
- Mapnaam en bestandsnaam in kebab-case, zelfde volgorde: `<toepassing>-<functie>`.
|
- 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
|
## Testen op BIPP
|
||||||
|
|
||||||
BIPP-pagina's zoals `OrderComposer.aspx` en `OrderRequestDetail.aspx` werken alleen via het
|
Pagina's zoals `OrderComposer.aspx` en `OrderRequestDetail.aspx` werken alleen via het menu (een `__doPostBack`, bijvoorbeeld `javascript:__doPostBack('orderRequestMenu$reviewRequestBtn','')`). Rechtstreeks via de URL geeft de server "Object reference not set to an instance of an object": navigeer eerst naar een andere BIPP-pagina en klik dan in het menu.
|
||||||
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.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user