shared/drift_scanner.py.Doctrine: every time-claim anchors to one of three buckets — calendar-bound (date or event), effort-bound (passes/gates), coordination-bound ("after X ratifies"). Bare estimates are drift.
Two enforcement layers:
shared/dispatch_priority.py lints letters before write. Drift = hard reject.shared/drift_scanner.py sweeps recent agent outputs and writes a report (this page).Doctrine: shared/priority_levels.md · shared/work_time_taxonomy.md