Files
2026-07-26 18:11:57 +02:00

34 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# S05 Auswahl-Algorithmus (beste Random-Sets)
Lies `prompts/suggestions/00-MASTER.md`.
Code vor allem in `web/src/lib/suggest.ts` (+ App nur wenn nötig).
## Ziel
Wenn der User „4 neue“, „8 neue“ oder „Woche automatisch füllen“ klickt, sollen die Vorschläge **so gut wie möglich** sein nicht nur zufällig, sondern gewichtet und passend zur Woche.
## Regeln
1. **Weighted random** nach `weight` (häufige echte Phrasen öfter)
2. **Keine Duplikate** in Offer + bereits gewählten Texten
3. **usedSuggestionIds** meiden, bis Pool zu klein → dann Fallback
4. **Ferienwoche / keine Schule:** nur `type: betrieb`
5. **Schulwoche:** überwiegend Betrieb; 02 Schule-Themen in größeren Offers
6. **Auto-füllen Woche:** ca. 812 Betriebseinträge, thematisch gemischt (nicht 8× nur Ablage)
7. **Diversität:** bei Auto-füllen max. 23 aus derselben `category`, außer Pool zu klein
8. **Themen der Woche:** random aus echten `WEEK_THEMES`
## API (orientierend)
```ts
pickRandomSuggestions(monday, count, usedIds, alreadySelectedTexts)
pickWeekSet(monday, usedIds) // für Auto-füllen: diverse, gewichtete Woche
```
## Abnahme
- [ ] 10× „4 neue“: Phrasen klingen echt, wenig Wiederholung
- [ ] Auto-füllen: gemischte Kategorien
- [ ] Ferienwoche: keine Schul-Vorschläge im Offer
- [ ] Build ok