Why the ID carries identity
VEP's own Location and Allele columns trim indel alleles and shift positions, so a deletion round-trips as the wrong variant. Carrying CHROM_POS_REF_ALT through the ID field keeps the exact alleles the caller emitted. Verified on a real run: 22:42126611 CT>C survives intact.
Stub blocks keep CI honest
Every process has a stub: block, so CI runs nextflow run main.nf -stub-run on a three-record fixture and checks wiring and channel shapes on every pull request — no containers, no VEP cache, seconds not hours.