51 lines
2.9 KiB
Markdown
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.
|