docs: define F0 anti-cheat rules for fup og fakta
This commit is contained in:
2
TODO.md
2
TODO.md
@@ -29,7 +29,7 @@ Byg **Weirsøe Party Protocol**: en dansk party-webapp platform ala Jackbox, hvo
|
||||
### Fase 0 — Scope + regler
|
||||
- [x] Fastlæg MVP for Spil 1 (`Fup og Fakta`) — se `docs/F0_MVP_FUP_OG_FAKTA.md`
|
||||
- [x] Midlertidige defaults sat (X/Z, spillerantal)
|
||||
- [ ] Fastlæg anti-cheat regler (fx ingen identiske løgne)
|
||||
- [x] Fastlæg anti-cheat regler (fx ingen identiske løgne) — se docs/F0_ANTI_CHEAT_RULES.md
|
||||
|
||||
### Fase 1 — Monorepo + Django skelet
|
||||
- [x] Opret Django-projekt (`partyhub`)
|
||||
|
||||
53
docs/F0_ANTI_CHEAT_RULES.md
Normal file
53
docs/F0_ANTI_CHEAT_RULES.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# F0 anti-cheat regler — Fup og Fakta
|
||||
|
||||
## Formål
|
||||
Fastlæg simple, håndhævelige anti-cheat regler for F0, så runderne opleves fair uden tung NLP/moderation.
|
||||
|
||||
## Scope (F0)
|
||||
Gælder for inputfasen hvor spillere indsender løgne til et spørgsmål.
|
||||
|
||||
## Regelsæt (F0)
|
||||
|
||||
### 1) Ingen identiske løgne i samme runde
|
||||
- To spillere må ikke have samme løgntekst efter normalisering.
|
||||
- Hvis en indsendt løgn matcher en eksisterende løgn i runden, afvises den med fejlbesked og spilleren skal indsende ny tekst.
|
||||
|
||||
### 2) Ingen løgn må være identisk med korrekt svar
|
||||
- En løgn, der matcher det korrekte svar efter normalisering, afvises.
|
||||
|
||||
### 3) Ingen tomme eller trivielt ugyldige svar
|
||||
- Tom tekst, kun whitespace eller kun tegnsætning afvises.
|
||||
- Minimumslængde: 2 tegn efter trim.
|
||||
|
||||
### 4) Én aktiv løgn pr. spiller pr. spørgsmål
|
||||
- Spilleren må gerne overskrive sin egen løgn inden deadline.
|
||||
- Ved deadline er kun seneste gyldige version gældende.
|
||||
|
||||
### 5) Ingen afslørende metatekst
|
||||
- Svar som eksplicit afslører bluff-mekanikken (fx “det rigtige svar er …”, “jeg lyver”) afvises i F0 via enkel nøgleordsblokliste.
|
||||
|
||||
## Normalisering (bruges i regel 1 + 2)
|
||||
Følgende normalisering anvendes før sammenligning:
|
||||
1. Unicode NFKC
|
||||
2. Trim + collapse af flere mellemrum til ét
|
||||
3. Lowercase
|
||||
4. Fjern afsluttende tegnsætning (`.`, `,`, `!`, `?`, `:` `;`)
|
||||
|
||||
Bemærk: F0 bruger **ikke** semantisk duplikatdetektion (synonymer/stavevarianter kan passere).
|
||||
|
||||
## Håndhævelse i UX/API
|
||||
- Validering sker server-side ved submit.
|
||||
- Klienten får konkret fejlårsag og kan indsende igen inden tidsfrist.
|
||||
- Samme valideringsregler gælder for alle klienter (web/mobil).
|
||||
|
||||
## Acceptance criteria (F0)
|
||||
- Identiske løgne (efter normalisering) kan ikke gemmes i samme runde.
|
||||
- Løgn == korrekt svar (efter normalisering) kan ikke gemmes.
|
||||
- Tom/ugyldig input afvises.
|
||||
- Overskrivning af egen løgn inden deadline virker.
|
||||
- Ved deadline bruges kun seneste gyldige løgn.
|
||||
|
||||
## Out-of-scope (bevidst udskudt)
|
||||
- Semantisk duplikatdetektion (embeddings/fuzzy matching)
|
||||
- Avanceret toxicitet/moderation
|
||||
- Sprogdetektion og translitterering
|
||||
Reference in New Issue
Block a user