79 lines
3.4 KiB
Markdown
79 lines
3.4 KiB
Markdown
# Verificatierapport van de aangeleverde projectbasis
|
|
|
|
- Datum: 2026-07-20
|
|
- Omgeving: Linux, Python 3.13.5, uv 0.10.0
|
|
- Projectversie: 0.1.0
|
|
- Doel: aantonen dat de ZIP een reproduceerbare, werkende MVP-basis en autonome overdracht bevat
|
|
|
|
## Uitgevoerde volledige gate
|
|
|
|
Commando:
|
|
|
|
```bash
|
|
./scripts/codex_verify.sh
|
|
```
|
|
|
|
Resultaat:
|
|
|
|
- Ruff: geslaagd;
|
|
- Django system check: geslaagd, 0 issues;
|
|
- migratiecontrole: geslaagd, geen ontbrekende migraties;
|
|
- pytest: 43/43 tests geslaagd;
|
|
- branch-aware codedekking: 80,42% (`apps` en `config`), drempel 70%;
|
|
- machineleesbare backlog: geldig, 35 taken en acyclische dependencies;
|
|
- lokale Markdownlinks, YAML/Compose/OpenAPI, `.env.example` en Codex-skillfrontmatter: geldig.
|
|
|
|
De tests omvatten unit-, integratie- en securitypaden voor parsers, URL-security, fetchbeleid, sanitization, normalisatie, dedupe, scoring, profiles, e-mailimport, notificaties, lifecycle, tasks en webviews.
|
|
|
|
## Clean-room ZIP-proef
|
|
|
|
De gegenereerde ZIP is in een lege directory uitgepakt. Voor de start is gecontroleerd dat `.env`, `.venv` en `local/db.sqlite3` niet aanwezig waren. Daarna is uitgevoerd:
|
|
|
|
```bash
|
|
./scripts/codex_bootstrap.sh
|
|
```
|
|
|
|
Resultaat:
|
|
|
|
- nieuwe virtuele omgeving uit `uv.lock` opgebouwd;
|
|
- alle migraties op een lege SQLite-database toegepast;
|
|
- lokaal beheeraccount, standaardprofiel en één demovacature aangemaakt;
|
|
- volledige kwaliteitsgate opnieuw geslaagd met 43 tests en 80,42% dekking;
|
|
- ontwikkelserver gestart;
|
|
- `/health/live/` gaf `200` met `ok: true`;
|
|
- `/health/ready/` gaf `200` met databasecheck `ok`;
|
|
- `/login/` gaf `200` met de Nederlandstalige titel `Aanmelden · VacatureRadar`.
|
|
|
|
## Offline/reproduceerbare eigenschappen
|
|
|
|
- De standaardtests doen geen live internetrequests.
|
|
- IMAP en Ollama staan standaard uit.
|
|
- Celery draait in tests eager en vereist geen Redis.
|
|
- SQLite wordt voor lokale bootstrap/tests gebruikt; productieconfiguratie ondersteunt PostgreSQL.
|
|
- Externe bronformaten worden via gesaneerde fixtures getest.
|
|
- `.venv`, caches, `.env`, lokale database, logs, media en back-ups worden door het packaging-script uitgesloten.
|
|
|
|
## Autonome overdracht
|
|
|
|
Gevalideerd:
|
|
|
|
```bash
|
|
python scripts/backlog.py validate
|
|
python scripts/backlog.py next
|
|
```
|
|
|
|
Ledgerstatus bij oplevering:
|
|
|
|
- 10 taken `done`: de werkende MVP- en overdrachtsbasis;
|
|
- 17 taken `ready`: uitvoerbare product-, hardening- en releasestappen;
|
|
- 5 taken `blocked-external`: uitsluitend live bronreview, accounts, domein/registry of bulkdataset;
|
|
- 3 taken `deferred`: multi-tenant SaaS, automatisch solliciteren en algemene publieke API.
|
|
|
|
Codex krijgt vaste productbeslissingen via `AGENTS.md`, `CODEX_START_HERE.md`, accepted ADRs, een repo-eigen skill en een startprompt. Een externe blokkade mag alleen het live restpunt blokkeren; interface, tests, mocks en documentatie moeten eerst worden voltooid.
|
|
|
|
## Niet in deze omgeving uitgevoerd
|
|
|
|
Docker was in de assemblageomgeving niet beschikbaar. Daarom zijn de Dockerfile en Composebestanden statisch gevalideerd, maar een echte imagebuild, PostgreSQL/Redis-container-smoke, Unraid-installatie en restore-drill worden niet als uitgevoerd geclaimd. `VR-115` en `VR-117` bevatten de exacte acceptatiecriteria en commando's voor een Docker-capabele omgeving.
|
|
|
|
Live bronvoorwaarden, mailboxcredentials, SMTP, domein/TLS, registry en een gelicenseerde Belgische geodatabron vereisen persoonlijke/externe configuratie en staan apart als `blocked-external`.
|