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

8.5 KiB

Projectstatus

  • Laatst bijgewerkt: 2026-07-21
  • Repositoryversie: 0.1.0 MVP-basis
  • Uitvoeringsmodus: autonome backlog
  • Eerste uitvoerbare taak: controleer met python scripts/backlog.py next

Werkende basis

De repository bevat een uitvoerbare Django-MVP met:

  • profielen, revisies en begrensde feedbackconfiguratie;
  • source registry, policy/denylist, veilige fetcher en source runs;
  • JSON-LD-, HTML-, RSS/Atom- en e-mailadapters;
  • normalisatie, sanitization, werkgeverresolutie, dedupe, aliassen, provenance en versies;
  • deterministische features, harde exclusions, scores en optionele uitgeschakelde Ollama-boundary;
  • dashboard, vacaturelijst/detail, profiel-, bron- en sollicitatiepagina's;
  • feedbackacties, applicationdossiers, lifecycle en dagelijkse digest-outbox;
  • Celeryworker/scheduler, healthchecks, Docker/Unraidconfiguratie en back-up-/herstelscripts;
  • offline unit-, integratie- en securitytests.

Laatste geverifieerde baseline

De definitieve projectbasis en een schoon uit de ZIP opgebouwde checkout zijn beide geverifieerd met:

  • 43 geslaagde tests;
  • 80,42% branch-aware codedekking over apps en config;
  • Ruff en Django system checks geslaagd;
  • geen ontbrekende migraties;
  • clean-room bootstrap, demo-import en HTTP-smoke voor liveness, readiness en login geslaagd.

Laatste uitgevoerde backlogtaak

  • 2026-07-21: VR-117 voltooid.

  • Productiereleasecontrole toegevoegd met scripts/release_verify.sh, inclusief smoke, backup/restore-smoke en artifactbundel.

  • Changelog, traceability en Unraid-runbook samengekoppeld aan het releasepad.

  • Volgende taak: VR-201 (blocked-external).

  • 2026-07-21: VR-116 voltooid.

    • Synthetische testset (fixtures/benchmark/quality_benchmark.json) en benchmarkspec (docs/quality/BENCHMARKS.md) toegevoegd.
    • tests/benchmark/test_benchmark.py bevat smokecontrole voor dataset load, helperlogica en rapportschema.
    • Geen UI/UITA-aanpassingen uitgevoerd (expliciet buiten scope, extern met Stitch).
  • 2026-07-21: VR-108 voltooid.

    • Resolutie naar oorspronkelijke werkgever geïmplementeerd met deterministische matcher voor recruiter/ATS-bronnen.
    • Titel, locatie, employer-naam, domein en canonical metadata leveren evidence-rijke beslissingen op; conflicten leiden naar review i.p.v. auto-merge.
    • Bij directe resolutie wordt canonical_url naar de directe bron gekopieerd terwijl alias/provenance behouden blijft.
    • Unittests en integratietest toegevoegd voor resolvergedrag en pipeline-resolutie.
  • 2026-07-21: VR-109 voltooid.

    • AI-analyse geïntegreerd als optionele scorecomponent met caching op content_hash + model + prompt + schema.
    • Uitgebreide JSON-schema validatie, evidencecontrole en foutstatussen met deterministische fallback.
    • Golden evaluatieset met validatiescenario's (disabled, valid, malformed, timeout, prompt-injection) toegevoegd in fixtures/ai/evaluation_set.json.
    • Scoringsmetadata uitgebreid met AI-status, errorcategorie en weging voor uitlegbaarheid.
  • 2026-07-21: VR-110 voltooid.

    • Feedbackleren standaard uit met opt-in, per-feature sampledrempel en metadata logging.
    • Verbergreasons worden geclassificeerd als niet-learn (titel/afstand/werkvorm) of leerrijp.
    • Positieve feedback groeit alleen na minimale herhaling per feature; negatieve feedback past gewichten terug indien leerrijp.
    • Offline evaluatiescript toegevoegd: scripts/feedback_learning_report.py.
    • UI-presentatie/reset weergave staat open voor externe afhandeling (Stitch).
    • Volgende taak: VR-111.
  • 2026-07-21: VR-111 voltooid.

    • Reminder-outbox toegevoegd voor sluitingsdatum, opvolgdatum en uitzonderlijk sterke nieuwe matches.
    • Topmatchherinnering is per profiel in- of uit te schakelen en vereist score/confidence/drempel.
    • Herinneringen hebben stabiele event keys, respecteren quiet hours en gebruiken profielweekdagen.
    • Integratietests toegevoegd voor idempotentie, stille ontvangers, follow-up werkdagen, DST en rustige uren.
    • Volgende taak: VR-112.
  • 2026-07-21: VR-112 voltooid.

    • Bronhealth en observability toegevoegd met rolling metrics, parserdriftdetectie en automatische quarantaine.
    • Raw cleanup bewaart gequarantaineerde documenten en kanaryherstel verloopt via trialpad.
    • Dagelijkse taken gepland voor source-health evaluatie, canaryherstel en geautomatiseerde raw cleanup.
    • Integratietests toegevoegd voor tijdelijke fouten, policyfouten, parserdrift, canaryherstel en raw cleanup.
    • Volgende taak: VR-113.
  • 2026-07-21: VR-113 voltooid.

    • Sollicitatiedossiers bevriezen nu een gesanitiseerde snapshot met bronlinks, status/contact/notities en timeline-events.
    • Export bevat dossier JSON, timeline CSV en printbare HTML zonder externe assets.
    • Dossierexport en dossierverwijdering zijn gebruiker-scoped en idempotent.
    • Integratietests toegevoegd voor snapshot, export, print, timeline en cross-user-afscherming.
    • Volgende taak: VR-114.
  • 2026-07-21: VR-114 voltooid.

    • Browser-e2e toegevoegd voor login, dashboard, lijst/detailfilter, profielbewerkingen, vier feedbackacties, sollicitatiedossierbewerking en handmatige tekstimport.
    • Accessibilitycontrole toegevoegd met Playwrightpad (desktop + 360px viewport) en fallback HTML-a11yprobe wanneer browser niet beschikbaar is.
    • Screenshots worden vastgelegd bij falen binnen e2e-run.
    • Volgende taak: VR-115.
  • 2026-07-21: VR-115 voltooid.

    • Productie-hardening toegevoegd met non-root/read-only containerinstellingen, CI-secret- en kwetsbaarheidsscans, production settings validatie, DNS-rebindcontrole in fetcher en rate limiting op login/manual import.
    • Nieuwe tests toegevoegd voor settings-validatie, rate limiteren, login-manual-import blokkades en DNS-rebinddetectie.
    • Geen UI-wijzigingen toegevoegd (manueel afhandelen bevestigd).
    • Volgende taak: VR-116.
  • 2026-07-21: VR-107 voltooid.

    • Handmatige URL- en tekstimport toegevoegd met CSRF-beveiligde POST-flow en GET-prefill.
    • URL-import hergebruikt bestaande policy/SSRF-checks en fetchpad; paste-import gebruikt een lokale synthetische HTML-payload zonder extern fetch.
    • Bronlijst bevat bookmarklet, resultaatpanel met created/duplicate/warnings en links naar vacaturedetail.
    • Unit- en integrationtests toegevoegd voor URL-flow, paste-flow, denylist en paste-limiet.
  • 2026-07-21: VR-105 voltooid.

    • Haversine-afstand berekent nu op basis van geocoderingscoördinaten met confidencegedrag voor exacte afstand.
    • Reistijdschatting toegevoegd als expliciete, conservatieve offline-schatting en gelabeld als inferentie.
    • Harde afstandsuitsluiting blijft strikt, met optionele harde reistijdbeperking via hard_rules["max_commute_minutes"].
    • Bij geocodecache-import worden getroffen actieve vacatures opnieuw gescoord.
    • Score-evidence verrijkt met afstands- en reistijdmetadata.
  • 2026-07-21: VR-103 voltooid.

    • Geïmplementeerd: databaseleaseclaim (SourceLease + SourceOriginState) voor concurrency- en crash-veiligheid.
    • Per-origin intervalcoördinatie, backoff inclusief 429/Retry-After en jitter op successen.
    • Fetcher stuurt expliciete foutcategorieën voor 429, timeout en andere netwerkfouten.
  • 2026-07-21: VR-101 voltooid.

    • Inrichting van bronontdekking vanuit HTML/sitemap/feed/e-mail, inclusief JSON-LD en feedlinkdetectie.
    • Persistente kandidaatservice met provenance in Source.metadata["discovery"] en idempotent gedrag.
    • Bulk-safe kandidaatacties approve_to_trial en dismiss in bronlijst-UI.
    • Management command discover_sources.
    • Fixtures toegevoegd voor HTML, sitemap index/urlset, feed en e-mail.

Een toekomstige agent moet altijd de actuele waarheid opnieuw bepalen met:

./scripts/codex_verify.sh

Nog te bouwen

Momenteel staan er geen ready taken meer over; de volgende te behandelen item is VR-201 als blocked-external (bronreview).

Externe blokkades

Deze blokkeren onafhankelijke code niet:

  • concrete werkgevers-/bronnenkeuze en actuele menselijke bronreview;
  • live IMAP/SMTP-account en app-password;
  • Unraid-domein, DNS, TLS en reverse proxy;
  • containerregistry en credentials;
  • keuze/verkrijging van een gelicenseerde actuele Belgische postcode-/gemeentedataset.

Bekende verificatiebeperking van de aangeleverde basis

De Pythonapplicatie en tests zijn lokaal geverifieerd. Een echte Dockerimagebuild en volledige PostgreSQL/Redis/Unraid-smoke vereisen nog steeds een omgeving met Docker; daarom is dat nog niet als uitgevoerd te claimen in deze workspace.

Hervatten

./scripts/codex_verify.sh
python scripts/backlog.py next

Werk daarna exact volgens docs/ai/AUTONOMOUS_EXECUTION_PROTOCOL.md.