@@ -0,0 +1,155 @@
|
||||
# Autonoom uitvoeringsprotocol
|
||||
|
||||
Dit protocol is ontworpen voor Codex of een vergelijkbare code-agent die de uitgepakte repository als workspace heeft. Het doel is langdurig voortwerken zonder productvragen, terwijl security- en kwaliteitsgrenzen behouden blijven.
|
||||
|
||||
## Hoofdlus
|
||||
|
||||
```text
|
||||
bootstrap/verify
|
||||
→ selecteer eerste uitvoerbare ready taak
|
||||
→ lees alleen gekoppelde specs/code/tests
|
||||
→ schrijf of verfijn falende tests
|
||||
→ implementeer kleinste complete oplossing
|
||||
→ relevante tests + lint
|
||||
→ docs/traceability/backlog/project state
|
||||
→ volledige gate
|
||||
→ markeer done
|
||||
→ herhaal
|
||||
```
|
||||
|
||||
Commando om de volgende taak te kiezen:
|
||||
|
||||
```bash
|
||||
python scripts/backlog.py next
|
||||
```
|
||||
|
||||
De selectie is deterministisch: bestandsvolgorde in `BACKLOG.yaml`, alleen `status: ready`, alle dependencies `done`.
|
||||
|
||||
## Geen productonderbrekingen
|
||||
|
||||
Vraag niet om bevestiging voor keuzes die in ADRs, productdefaults of backlogacceptatie staan. Bij een echt ontbrekend detail:
|
||||
|
||||
1. kies de veiligste;
|
||||
2. kies de eenvoudigste;
|
||||
3. kies een omkeerbare implementatie;
|
||||
4. behoud bestaande contracts;
|
||||
5. documenteer de aanname in taakresultaat of nieuwe ADR.
|
||||
|
||||
Voorbeelden:
|
||||
|
||||
- onbekende bron → `review`, niet fetch;
|
||||
- ontbrekende locatie → `unknown`, niet gokken;
|
||||
- AI niet beschikbaar → deterministische fallback;
|
||||
- provider niet gekozen → interface + fixture + lokale importer, providerstap extern blokkeren;
|
||||
- rijke frontend niet noodzakelijk → Django template/progressive enhancement.
|
||||
|
||||
## Externe blokkadeprocedure
|
||||
|
||||
Een credential, domein, live bronvoorwaardenreview, registry of gelicenseerde bulkdataset mag codewerk niet stoppen. Voor het taakdeel dat extern geblokkeerd is:
|
||||
|
||||
- implementeer configuratieschema en validatie;
|
||||
- maak providerinterface;
|
||||
- voeg fictieve fixtures/mocks toe;
|
||||
- test succes, fout en disabled state;
|
||||
- schrijf exact productiechecklistje;
|
||||
- maak/gebruik een aparte `blocked-external` taak;
|
||||
- ga onmiddellijk door met de volgende uitvoerbare taak.
|
||||
|
||||
Markeer nooit een volledige feature als geblokkeerd wanneer alleen de live configuratie ontbreekt.
|
||||
|
||||
## Werk per taak
|
||||
|
||||
### 1. Reconnaissance
|
||||
|
||||
- `python scripts/backlog.py show <ID>`
|
||||
- lees requirement- en traceabilityregels;
|
||||
- zoek bestaande services, modellen en tests;
|
||||
- bevestig architectuurgrenzen;
|
||||
- noteer regressierisico's.
|
||||
|
||||
Geen brede herschrijving zonder aantoonbare noodzaak.
|
||||
|
||||
### 2. Test-first waar zinvol
|
||||
|
||||
Voor bugs/securitygrenzen eerst een falende regressietest. Voor nieuwe functionaliteit minstens tests voor:
|
||||
|
||||
- normale input;
|
||||
- lege/ontbrekende input;
|
||||
- malformed/aanvallende input;
|
||||
- replay/idempotentie;
|
||||
- autorisatie/user-scoping;
|
||||
- disabled/external dependency unavailable.
|
||||
|
||||
### 3. Implementatie
|
||||
|
||||
- pure logica in services;
|
||||
- tasks alleen orchestration;
|
||||
- adapters zonder writes;
|
||||
- transacties rond meerdere afhankelijke writes;
|
||||
- machineleesbare foutcategorieën;
|
||||
- geen live internet in tests;
|
||||
- geen secrets of persoonlijke voorbeelden.
|
||||
|
||||
### 4. Relevante verificatie
|
||||
|
||||
```bash
|
||||
uv run ruff format .
|
||||
uv run ruff check .
|
||||
uv run pytest <relevante tests>
|
||||
```
|
||||
|
||||
Herstel oorzaak, niet gate/drempel.
|
||||
|
||||
### 5. Overdracht in dezelfde wijziging
|
||||
|
||||
Werk bij:
|
||||
|
||||
- code en migraties;
|
||||
- tests/fixtures;
|
||||
- relevante product/architectuur/operationele docs;
|
||||
- `TRACEABILITY_MATRIX.md`;
|
||||
- `BACKLOG.yaml` resultaatstatus;
|
||||
- `PROJECT_STATE.md`.
|
||||
|
||||
### 6. Volledige gate
|
||||
|
||||
```bash
|
||||
./scripts/codex_verify.sh
|
||||
```
|
||||
|
||||
Pas na een geslaagde gate:
|
||||
|
||||
```bash
|
||||
python scripts/backlog.py set <ID> done --note "<concreet resultaat + tests>"
|
||||
./scripts/codex_verify.sh
|
||||
```
|
||||
|
||||
De tweede gate bewijst dat de ledgerwijziging zelf geldig is.
|
||||
|
||||
## Omgaan met onverwachte defecten
|
||||
|
||||
Een blocker in bestaande code die de geselecteerde taak verhindert, mag direct worden hersteld. Voeg een regressietest toe en vermeld het in het taakresultaat. Een los, niet-blokkerend defect krijgt een nieuwe taak met uniek ID alleen wanneer het niet veilig binnen de huidige scope past; wijzig de kernprioriteiten niet stilzwijgend.
|
||||
|
||||
## Stopcriteria
|
||||
|
||||
Stop de autonome lus alleen wanneer:
|
||||
|
||||
- geen uitvoerbare `ready` taak meer bestaat;
|
||||
- alle resterende taken `blocked-external` of `deferred` zijn;
|
||||
- de volledige kwaliteitsgate slaagt;
|
||||
- `PROJECT_STATE.md` exact de resterende blokkades en productiechecklist noemt.
|
||||
|
||||
Stop niet alleen omdat één provider, secret of live bron ontbreekt.
|
||||
|
||||
## Eindrapport
|
||||
|
||||
Rapporteer:
|
||||
|
||||
- afgeronde taak-ID's;
|
||||
- belangrijkste gedrag- en datamodelwijzigingen;
|
||||
- migraties/configuratieimpact;
|
||||
- tests en coverage;
|
||||
- externe blokkades met exacte invulstap;
|
||||
- eerste resterende taak of “geen uitvoerbare ready taak”.
|
||||
|
||||
Claim geen productieacceptatie zonder Docker/release-/restore-smoke wanneer die in de taakcriteria staat.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,10 @@
|
||||
# Optioneel voorbeeld voor een lokale Codex-configuratie.
|
||||
# Bewaar echte machine-/accountinstellingen buiten de repository.
|
||||
# De repository zelf geeft geen toestemming om buiten de workspace te schrijven
|
||||
# of veiligheids-/approvalgrenzen te omzeilen.
|
||||
|
||||
sandbox_mode = "workspace-write"
|
||||
approval_policy = "on-request"
|
||||
|
||||
# Voeg alleen vertrouwde documentatie-/packagehosts toe wanneer de runtime dit vereist.
|
||||
# Tests en normale implementatie moeten offline kunnen draaien.
|
||||
@@ -0,0 +1,47 @@
|
||||
# Zelfreview voor een autonome taak
|
||||
|
||||
Voer deze review uit vóór `BACKLOG.yaml` naar `done` gaat.
|
||||
|
||||
## Correctheid
|
||||
|
||||
- Is ieder acceptatiecriterium aantoonbaar in code/test/documentatie terug te vinden?
|
||||
- Klopt gedrag bij nul items, dubbele uitvoering, gedeeltelijke fout en tijdzonegrens?
|
||||
- Is het datamodel consistent na een exception of retry?
|
||||
- Zijn bestaande canonieke data, provenance en gebruikersacties behouden?
|
||||
|
||||
## Security
|
||||
|
||||
- Kan externe input een URL, command, template, log of AI-instructie worden?
|
||||
- Worden policy en SSRF na redirects opnieuw toegepast?
|
||||
- Zijn HTML, filenames, exports en e-mailvelden gesanitized/begrensd?
|
||||
- Is iedere muterende view authenticated, CSRF-beschermd en user-scoped?
|
||||
- Kan een secret/PII in debugoutput, exception of fixture terechtkomen?
|
||||
|
||||
## Architectuur
|
||||
|
||||
- Staat beslislogica in een service en niet in view/task/template?
|
||||
- Doet een adapter uitsluitend extractie?
|
||||
- Is de dependency nodig en gelockt?
|
||||
- Is de verandering compatibel met accepted ADRs?
|
||||
- Is een migratie werkelijk nodig en veilig?
|
||||
|
||||
## UX
|
||||
|
||||
- Is feit versus inferentie versus onbekend helder?
|
||||
- Werkt de kern zonder JavaScript, met keyboard en op smal scherm?
|
||||
- Zijn fouten herstelbaar en leggen ze geen technische details/secrets bloot?
|
||||
- Vermijdt de flow extra dagelijkse handelingen?
|
||||
|
||||
## Tests
|
||||
|
||||
- Zou de test falen zonder de implementatie?
|
||||
- Zijn negatieve en replaypaden aanwezig?
|
||||
- Gebruikt geen standaardtest live internet of persoonlijke data?
|
||||
- Is een bug als regressietest vastgelegd?
|
||||
- Slaagt de volledige gate zonder thresholds te verlagen?
|
||||
|
||||
## Overdracht
|
||||
|
||||
- Zijn traceability, runbook, configvoorbeeld en threat model aangepast waar nodig?
|
||||
- Bevat het taakresultaat concrete uitkomst en verificatie, geen algemene claim?
|
||||
- Is `PROJECT_STATE.md` eerlijk over wat niet live getest kon worden?
|
||||
@@ -0,0 +1,20 @@
|
||||
# Beslissingslog
|
||||
|
||||
Accepted architectuurkeuzes staan formeel in `docs/architecture/adrs/`. Dit log bevat uitvoeringsdefaults die Codex niet opnieuw hoeft voor te leggen.
|
||||
|
||||
| Datum | Beslissing | Reden | Herzieningstrigger |
|
||||
|---|---|---|---|
|
||||
| 2026-07-20 | Werknaam en package blijven `VacatureRadar`/`vacatureradar`. | Consistente repository, UI en deployment. | Alleen expliciete rebranding. |
|
||||
| 2026-07-20 | UI-taal Nederlands (`nl-BE`), technische identifiers Engels. | Doelgebruiker en onderhoudbaarheid. | Meertalige productrequirement. |
|
||||
| 2026-07-20 | Single-user-first; user-scoped persoonlijke data. | Lage beheerlast zonder toekomstige lekke querysets. | Multi-tenant productbesluit. |
|
||||
| 2026-07-20 | België-first, tijdzone Europe/Brussels. | Relevantie voor regio, digest en datums. | Gebruiker verhuist of meertalige release. |
|
||||
| 2026-07-20 | Django templates + minimale vanilla JS. | Geen onnodige SPA/API/deploymentlaag. | Meetbare UX-beperking met ADR. |
|
||||
| 2026-07-20 | PostgreSQL productie, SQLite tests/dev, Redis geen waarheid. | Transacties, eenvoudige lokale start en herstelbaarheid. | Schaal/HA-requirement. |
|
||||
| 2026-07-20 | Onbekende bron is review; direct fetch alleen allow. | Fail-closed veiligheid en bronbeheer. | Nooit verzwakken zonder security-/bronreview. |
|
||||
| 2026-07-20 | Platforms via vacaturemail/manual import, niet direct crawlen. | Minimale handelingen zonder login-/botrisico. | Expliciete schriftelijke toestemming en nieuwe ADR. |
|
||||
| 2026-07-20 | Harde regels, dedupe en lifecycle zijn deterministisch. | Uitlegbaar, offline, prompt-injectionbestendig. | Geen voorzien trigger; AI blijft aanvullend. |
|
||||
| 2026-07-20 | Ollama standaard uit; geen cloud-AI nodig. | Privacy en set-and-forget zonder externe account. | Expliciete providerkeuze met privacyreview. |
|
||||
| 2026-07-20 | Geen automatische sollicitatie of externe submit. | Menselijke eindcontrole en reputatie/privacy. | Alleen nieuwe product-/securitybeslissing; huidige scope verbiedt het. |
|
||||
| 2026-07-20 | Geen ongeverifieerde bulk-geodata in repository. | Licentie, actualiteit en ZIP-grootte. | Gecontroleerde dataset met herkomst/licentie/checksum. |
|
||||
| 2026-07-20 | Externe blokkades worden geïsoleerd, niet als reden om te stoppen gebruikt. | Codex kan code, tests en docs autonoom afmaken. | Geen. |
|
||||
| 2026-07-20 | Minimum coverage 70% branch-aware; securitykritieke paden hoger. | Betrouwbare baseline zonder cosmetische testjacht. | Alleen omhoog na stabiele baseline. |
|
||||
@@ -0,0 +1,155 @@
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
./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
|
||||
|
||||
```bash
|
||||
./scripts/codex_verify.sh
|
||||
python scripts/backlog.py next
|
||||
```
|
||||
|
||||
Werk daarna exact volgens `docs/ai/AUTONOMOUS_EXECUTION_PROTOCOL.md`.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Startprompt voor Codex
|
||||
|
||||
Kopieer de tekst hieronder als eerste opdracht nadat de ZIP is uitgepakt en de repository als workspace is geopend.
|
||||
|
||||
```text
|
||||
Werk autonoom aan VacatureRadar.
|
||||
|
||||
1. Lees CODEX_START_HERE.md en AGENTS.md volledig.
|
||||
2. Voer ./scripts/codex_bootstrap.sh uit wanneer de omgeving nog niet is opgebouwd; voer anders ./scripts/codex_verify.sh uit.
|
||||
3. Lees docs/ai/PROJECT_STATE.md en valideer docs/ai/BACKLOG.yaml met python scripts/backlog.py validate.
|
||||
4. Selecteer steeds de eerste taak die python scripts/backlog.py next toont.
|
||||
5. Voer iedere taak volledig uit volgens de acceptance_criteria, gekoppelde requirements, AGENTS.md en docs/quality/DEFINITION_OF_DONE.md.
|
||||
6. Vraag geen productbeslissingen of bevestiging. Gebruik de vastgelegde veilige defaults. Bij ontbrekende externe credentials, accounts, live bronreview, domein of dataset: implementeer interface, fixtures, mocks, tests, foutafhandeling en documentatie; laat alleen het externe restpunt blocked-external en ga meteen verder.
|
||||
7. Houd adapters write-free, bedrijfslogica in services, netwerk fail-closed, harde regels deterministisch vóór AI, en voeg nooit automatisch solliciteren, platformloginbots, CAPTCHA-omzeiling of directe denylistscraping toe.
|
||||
8. Werk bij iedere taak code, migraties, tests, docs, traceability, BACKLOG.yaml en PROJECT_STATE.md samen bij.
|
||||
9. Markeer een taak pas done nadat ./scripts/codex_verify.sh slaagt; draai de gate daarna opnieuw na de ledgerwijziging.
|
||||
10. Herhaal zonder onderbreking tot geen uitvoerbare ready taak meer bestaat. Eindig met een feitelijk eindrapport en exacte blocked-external checklist.
|
||||
```
|
||||
|
||||
## Herstart na een onderbroken sessie
|
||||
|
||||
```text
|
||||
Lees AGENTS.md, docs/ai/PROJECT_STATE.md en de git diff. Draai python scripts/backlog.py validate en ./scripts/codex_verify.sh. Herstel eerst een onvoltooide wijziging of falende gate. Ga daarna verder met python scripts/backlog.py next volgens het autonome protocol. Vraag geen reeds vastgelegde productbeslissingen.
|
||||
```
|
||||
Reference in New Issue
Block a user