Enforce
Enforce is the engine that drives item status without human input
between baseline lock and project closure. The tick runs every
fifteen minutes via Vercel cron (see vercel.json: the entry for
/api/enforcement/tick carries */15 * * * *).
Nine phases
The tick walks nine phases, each guarded by the 50s deadline (see
src/lib/enforcement.ts):
- Agreement deadline enforcement
- Graduated warnings on items approaching their auto-action time
- Auto-transitions for items past their escalation time
- Overdue detection and breach
- Payment overdue detection
- DLP lifecycle (defects liability period)
- Earned value snapshots
- Formal notice acknowledgement enforcement
- Variation response deadline enforcement
If a phase exhausts the deadline, the tick logs the phase name and
returns; the next tick picks up. No work is dropped.
EOT awareness
Items with an APPROVED EOT extending past now are not overdue
until past the new completion date. The overdue phase walks active
EOTs once and filters before per-item handling.
Cross links
/docs/concepts/atoms: items vs atoms/docs/engines/adapt: how parties propose changes mid-flight