Start here
The safe first move
Keep Query.from_self() in manual review. The right replacement depends on the surrounding query structure and what rows should come back.
Stop before automation when: Selecting the right select()/subquery replacement. Result-shape and column-projection decisions.
Target shape
# manual review required
# replacement depends on the surrounding query and result shape