Skip to content
SkyRosterBook a working session

Rule catalogue · Data integrity

A swap has to actually change something

Breaking it accepts an exchange of two identical shifts, spending an approval on a change that has no effect.

Applies
when someone asks to exchange a shift
Enforcement
Hard: never broken
Who sets it
Fixed in the product
Roster style
published baseline (shift exchange)

verifiedCompiled from the product source on 12 September 2026

What data integrity rules protect

Not every rule is about people. This family holds the structural invariants: an assignment cannot exist in two places at once, history cannot be rewritten, a swap has to be aligned on both sides. They are mostly fixed in code rather than configurable, because they are not policy choices. They are the difference between a roster and a spreadsheet that looks like one.