Ansible is weakly typed, but in particular variables set on the command line are stringly typed.
If a string is used in a condition (e.g.
when: skip_build) it leads to surprising results, because any non-empty string (e.g.
"false") evaluate as truthy.
I recommend casting all variables in conditionals, or other calculations.