# Phase gates and reproducible commands The project was implemented in six gates. These are the exact command shapes used to validate each gate; the final regression reruns their union. ## Phase 1 ```bash python -m pytest tests/unit/test_config.py tests/unit/test_signals.py python examples/generate_e1_signal.py ``` ## Phase 2 ```bash python -m pytest tests/unit/test_frontend.py tests/unit/test_acquisition_metrics.py tests/unit/test_acquisition_parallelism.py tests/integration/test_acquisition.py tests/integration/test_long_integration.py python examples/run_acquisition.py ``` ## Phases 3 and 4 ```bash python -m pytest tests/unit/test_discriminators.py tests/unit/test_loop_filters.py tests/unit/test_correlator.py tests/integration/test_tracking.py python examples/run_tracking.py python examples/run_complete_receiver.py ``` ## Phase 5 ```bash python -m pytest tests/unit/test_fixed_point.py tests/unit/test_fixed_fft.py tests/integration/test_fixed_acquisition.py tests/regression/test_complete_receiver.py python -m galileo_rx.cli compare-fixed --config configs/acquisition_example.yaml --input samples.bin ``` ## Phase 6 and final regression ```bash python -m pytest tests/unit/test_rtl_model.py tests/unit/test_vector_export.py python -m pytest ``` The CLI smoke sequence is: ```bash python -m galileo_rx.cli generate --config configs/acquisition_example.yaml --duration-ms 60 --prn 1 --output samples.bin python -m galileo_rx.cli acquire --config configs/acquisition_example.yaml --input samples.bin --output acquisition.json python -m galileo_rx.cli track --config configs/tracking_example.yaml --input samples.bin --acquisition-result acquisition.json --output tracking.csv python -m galileo_rx.cli run --config configs/acquisition_example.yaml --input samples.bin python -m galileo_rx.cli compare-fixed --config configs/acquisition_example.yaml --input samples.bin ```