Workflow Intent Chain Events
Workflow intent emits chain events for declaration, amendment, enforcement, completion, and drift transitions. These events are part of each project’s tamper-evident governance chain. An external checkpoint with timestamp receipts covers them only when a checkpoint is published after them.
| Event type | When it is recorded | Webhook delivery |
|---|---|---|
workflow_intent.declared | POST /v1/workflows accepts a declaration. | Yes |
workflow_intent.rejected | POST /v1/workflows rejects a declaration, such as when declared projected cost exceeds a cap. | Yes |
workflow_intent.amended | POST /v1/workflows/{workflow_id}/amend records an amendment. | Yes |
workflow_intent.exceeded | An allowed governed request brings the workflow’s call count up to max_calls. Later requests are denied with workflow_intent.max_calls_exceeded. | Yes |
workflow_intent.completed | A workflow is explicitly completed or maintenance records lifecycle expiry (completion_reason: expired). The existing 15-minute sweep expires at most 100 due workflows per run; duration is advisory, not an exact dispatch deadline. | Yes |
workflow_intent.drift_detected | Actual calls cross above expected_calls while still below max_calls. | No |
workflow_intent.drift_detected is excluded from webhook delivery. It remains available through compliance exports and dashboard views, but it does not fire a webhook because it is informational and can be noisy for high-volume workflows.
Drift event discipline
Drift is recorded at threshold transitions:
- once when actual calls move from at or below
expected_callsto aboveexpected_calls - again only if an amendment raises
expected_callsand actual calls later cross the new threshold
Keel does not emit workflow_intent.drift_detected for every call above the expected baseline.
Related pages
Last updated on Edit this page on GitHub