Files
VacatureRadar/docs/product/ACCEPTANCE_CRITERIA.md
T
Jens b8091e59bd
deploy / deploy (push) Canceled after 0s
Initial deploy setup
2026-07-21 14:00:00 +02:00

51 lines
2.9 KiB
Markdown

# Systeemacceptatiecriteria
## A. Gebruik met minimale handelingen
- **AC-001** Een nieuwe installatie kan met één bootstrapcommando lokaal starten.
- **AC-002** Na onboarding kan de gebruiker zonder bronhandwerk het dashboard en de digest gebruiken.
- **AC-003** De normale vacatureactie vereist maximaal één klik plus optionele reden/notitie.
- **AC-004** Geen standaardflow vraagt een platformwachtwoord.
## B. Verzameling
- **AC-010** Dezelfde fixture tweemaal verwerken creëert één canonieke vacature en één bronalias per identieke bronidentiteit.
- **AC-011** Een private/loopback/link-local URL, embedded credential of niet-standaardpoort wordt geblokkeerd.
- **AC-012** Een redirect naar een denylist- of niet-publiek doel wordt geblokkeerd vóór de tweede request.
- **AC-013** Een niet-toegestaan contenttype en te groot document worden afgewezen.
- **AC-014** Een Message-ID tweemaal importeren creëert één e-mailrecord.
- **AC-015** JSON-LD, generieke HTML, RSS en e-mailfixtures leveren geldige `ExtractionResult`-objecten.
## C. Data en matching
- **AC-020** `m/v/x`, whitespace, contracttypes en datums worden canoniek genormaliseerd.
- **AC-021** Exacte ID/URL/key wint van fuzzy matching.
- **AC-022** Een uitgesloten titel, regio, contractvorm, afstand of verplichte skill levert recommendation `hidden` met reden.
- **AC-023** Een niet-uitgesloten vacature bewaart alle scorecomponenten en evidence.
- **AC-024** Ontbrekende afstand levert een concern/confidence-effect maar geen verzonnen kilometerwaarde.
- **AC-025** AI-uitval verandert de deterministische kern niet.
## D. Meldingen en lifecycle
- **AC-030** Een digestvenster maakt maximaal één outboxrecord per profiel/dag.
- **AC-031** Een verborgen vacature verschijnt niet in de digest.
- **AC-032** Een verzonden outbox wordt bij herhaling niet opnieuw verstuurd.
- **AC-033** `valid_through` in het verleden markeert een actieve vacature verlopen.
- **AC-034** Lang niet geziene vacatures gaan eerst naar onzeker en daarna verwijderd.
## E. Sollicitaties
- **AC-040** Feedback `applied` creëert één user/job-dossier met snapshot en opvolgdatum.
- **AC-041** Een bestaande voorbereiding wordt bij `applied` bijgewerkt zonder duplicaatdossier.
- **AC-042** Een gebruiker kan geen dossier van een andere gebruiker openen of wijzigen.
- **AC-043** Er bestaat geen endpoint of task die een sollicitatie extern verstuurt.
## F. Beheer en kwaliteit
- **AC-050** `/health/live/` antwoordt zonder databaseafhankelijkheid; `/health/ready/` controleert databaseconnectiviteit.
- **AC-051** `./scripts/codex_verify.sh` slaagt op een schone checkout na bootstrap.
- **AC-052** De standaardtestset doet geen live internetrequests.
- **AC-053** Codedekking blijft minimaal 70% en securitykritieke services hebben negatieve tests.
- **AC-054** `BACKLOG.yaml` is valide, uniek en dependency-consistent.
- **AC-055** Back-up/restorecommando's weigeren onveilige of ontbrekende configuratie met duidelijke fout.