Brainstorming here; what if we added a flag you could use in your code:
isTournament = hero.isTournament # When we simulate the tournament, this will be True
#isTournament = True # Test with this, don't submit
# ... your normal code ...
# Secret sauce you don't want people to develop counters for
if isTournament
secretStrategy()
else:
publicStrategy()
Then most players (who don’t care about the secrecy of their latest tactics) don’t have to do anything, and the top competitive players can use this code convention to decide to submit their latest awesome code whenever, not having to stay up until the tournament close to protect it. On our end, it’s a lot easier to implement than a full version control scheme or blinding period.