"""Unattended order: download -> prepare -> RoPE sweep/init -> smoke -> reference reproduction -> LR pilots -> p1 -> p2 -> validation-only selection -> single final evaluation. Every step is idempotent, so a rerun resumes.""" import subprocess, sys from common import * STEPS = [['download.py'], ['prepare.py'], ['rope.py'], ['smoke.py'], ['evaluate.py', 'reference'], ['train.py', 'pilots'], ['train.py', 'p1_short'], ['train.py', 'p2_long'], ['choose.py'], ['evaluate.py']] def main(): stop_after = sys.argv[1] if len(sys.argv) > 1 else None for step in STEPS: event('step_started', step=' '.join(step)) subprocess.run([sys.executable, str(ROOT/step[0]), *step[1:]], check=True, cwd=str(ROOT)) event('step_complete', step=' '.join(step)) if stop_after and ' '.join(step) == stop_after: break if __name__ == '__main__': main()