Answer
The default wave is 0 when no annotation is set. Negative waves run before wave 0, which is handy for prerequisites like CRDs, namespaces, or operators that must exist before everything else. Ordering runs from the lowest (most negative) to the highest wave.
metadata:
annotations:
argocd.argoproj.io/sync-wave: "-1" # CRDs before workloadsReal-world example CRDs are annotated wave -1 so they install before any custom resources in the default wave 0.