For integration with Rush, best practice with .pnpm-sync.json files would be to read them all up front before execution starts, validate that the files have the expected versions, and then error out early.
This helps clean up the logging output by reporting configuration errors with .pnpm-sync at the start of the process, rather than partway through a build. In the current configuration, the logging output can get buried when there are a large number of projects, e.g.
==[ FAILURE: 2 operations ]====================================================
--[ FAILURE: @rushstack/eslint-patch (build) ]--------------[ 14.38 seconds ]--
--[ FAILURE: @rushstack/tree-pattern (build) ]---------------[ 2.98 seconds ]--
Operations failed.
rush build (14.53 seconds)