Pipeline modes: autonoom en integer
Status: spec klaar; volledige implementatie in milestone C. In milestone A bestaat alleen de
Decisiondataclass en deModeProtocol- stub.
iso-audit kent twee runmodes. Beide gebruiken dezelfde codebase; verschil zit in het beleid bij beslismomenten.
Autonoom
Voor cron-/CI-runs en geautomatiseerde maandelijkse audits. Geen mens- input gevraagd; pipeline draait end-to-end zonder onderbreking.
AutonoomMode.beslis(decision) accepteert het voorstel direct, behalve
voor delete_data — dat is altijd geblokkeerd in autonoom (de pipeline
slaat de delete over en logt het).
Integer
Voor audit-runs waarbij de auditor in-the-loop moet zijn op kritieke
beslismomenten (ISO 19011-conformiteit én capability-3-data-bron).
Pipeline pauzeert bij hoog-risico beslissingen, escaleert via een
Notifier, blokkeert tot de auditor reageert.
IntegerMode.beslis(decision) regels:
risico="laag"— accepteer voorstel autonoomrisico="midden"— accepteer autonoom tenzijcontext["confidence"] < 0.7ofcontext["vraag_bevestiging"] == True— dan escalerenrisico="hoog"— altijd escaleren naar Notifier
De zeven beslispunten
| Punt | Risico | Autonoom | Integer |
|---|---|---|---|
ingest_scope |
laag | accepteer geconfigureerde scope | tonen bij flag, bevestigen |
merge_drive_miro |
laag | auto | auto |
classify_finding |
midden | LLM-output accepteren | escaleer bij low-confidence |
assign_clausule |
midden | regel-based | escaleer bij low-confidence |
generate_report_section |
hoog | LLM-output direct | concept, mens-review verplicht |
send_report |
hoog | direct via Sink | sign-off via Notifier |
delete_data |
hoog | blokkeer altijd, log | mens-bevestigd via Notifier |
Toevoegen van nieuwe beslispunten gaat via change-proposal — pipeline- code mag het niet ad-hoc uitbreiden.
Modi en de missie
AutonoomMode persisteert alleen risico="hoog" beslissingen in de
decisions-tabel. Reden: laag- en midden-risico besluiten in autonoom-
runs zijn altijd voorstel == besluit zonder mens-input — geen
analytische waarde voor de spiegel-laag (capability 3 uit
explanation/missie.md).
Concreet: autonoom-runs leveren geen volle capability-3-data. Voor patroon-analyse over auditor-besluiten zijn integer-runs nodig.
Crash-recovery
IntegerMode schrijft pending Decisions naar SQLite (decisions-tabel)
voordat hij de Notifier aanroept. Bij pipeline-crash + restart query't de
pipeline op (audit_id, status="pending") en hervat in plaats van
opnieuw te escaleren. Voorkomt dubbele Slack-messages of email-magic-
links.
CLI
# Autonoom (typisch cron)
iso-audit pipeline --source drive --mode autonoom
# Integer met Slack-handoff
iso-audit pipeline --source drive --source jira --mode integer --notifier slack
# Integer met Email-handoff
iso-audit pipeline --source drive --mode integer --notifier email
--mode is verplicht (geen default). --notifier is verplicht alleen
bij --mode integer. Beide hebben ISO_AUDIT_DEFAULT_*-env-var-fallback
voor cron-context.