When the current task is growing past what this session can land:
- Restate the user-visible outcome the task exists for.
- Identify the SMALLEST slice that delivers a real piece of that outcome and can be verified and committed today.
- Move everything else to an explicit "deferred" list with one line each on why it can wait. Deferred is a decision, not a leak.
- Confirm the slice still passes its tests standing alone — no half-wired imports, no dead flags.
- Finish the slice through to a commit before opening any deferred item.
Never grow the slice mid-way: if something deferred turns out to be required, stop and re-plan rather than absorbing it silently.