Checkpoint
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
Gates age too. Each floor now carries the day it was set; the run happens on day 520 and floors older than 180 days need re-justification. Evaluate the candidate against every floor (collect failures), AND collect stale floors as f"{metric} (set {age} days ago)". Print "gate: PASS" (or the blocked list), then one f"REVIEW: floor {s} - re-justify or re-date it" line per stale floor. The gate still gates — but a threshold nobody owns is chapter 30's stale-rule problem, and the report says so.