buzz-rss/AGENTS.md

31 lines
No EOL
2.3 KiB
Markdown

# buzz-rss — verplichte regels bij elke wijziging (wordt automatisch bij sessiestart geladen)
Maubot-plugin `nl.eddydevink.rss` (RSS → Matrix + WhatsApp), met een OV-nieuwsfilter dat **vast in code** staat.
## Verplicht vóór elke filterwijziging
1. Lees het **volledige classificatiebeleid** in `buzzrss/bot.py` — het blok BOVEN `MATCH_FILTER_FAMILIES`
(max-2-stelsel: whitelist + gewichten 2/1, precision-first, en de werkwijze voor nieuwe woorden).
2. Draai **`python3 buzzrss/validate_filter.py`** — de filter-invarianten en regressie-cases MOETEN groen
zijn voordat filtercode gecommit/gedeployed wordt.
3. **Compleetheids-audit (verplicht, besluit 2026-09-12):** check bij elke filterwijziging óók of de
woordenlijsten compleet zijn — draai de OV-gap-scan over de afgewezen artikelen van de
OV-specialist-feeds (SpoorPro.nl / Treinreiziger.nl / Mobiliteit, query op `entry` in schema `mbp_rss`),
klasseer nieuwe kandidaten volgens het beleid (minimaal één extra LLM; enige stem TWIJFEL/NIET-OV => zwak)
en vul de families desgevraagd aan. Exacte procedure = stap (e) in het beleidsblok in `buzzrss/bot.py`.
4. Precision-first (gebruikersbesluit 2026-09-10): **liever een OV-bericht te veel gefilterd dan een
niet-OV-bericht te veel doorgelaten.** Bij twijfel over een woord: zwak maken (eigen familie), nooit
sterk/whitelist.
## Niet doen
- **NOOIT** maubot `reload` gebruiken. Deploy = mbp bouwen uit de VOLLEDIGE bron
(incl. `base-config.yaml`, anders `BaseMissingError`), upload met `allow_override=true`,
daarna container-restart. Exacte procedure: `skill://maubot`.
- **NOOIT** de wwebjs-container of WhatsApp-sessies (her)starten/beëindigen — meerdere bots delen die sessies.
- Productie draait het **geïnstalleerde mbp**, niet deze werkdirectory: een commit is pas actief na build+upload+restart.
## Bekend — NIET onderzoeken
- Na een deploy (upload + container-restart) staan er 2 verse `run complete`-regels in de run-log
binnen enkele seconden: maubot herstart de instance bij een nieuwe plugin-versie (upstream) én de
container-restart start opnieuw, elke start doet direct één poll. Dat is géén handler-lek en hoort
niet onderzocht te worden (besluit 2026-09-11). Alleen verdubbeling op élke poll-run is een
probleem. Zie `skill://maubot` → Veelgemaakte fouten.