Astral clearly are using semantic versioning, as should be obvious if you read the spec you linked.
In fact, one of the examples listed in that spec is 1.0.0-alpha.1.
ETA: It should also be noted that ty is a Rust project, and follows the standards for versioning in that language:
https://doc.rust-lang.org/cargo/reference/manifest.html#the-version-field