Try let show = $("input[name='show']").is(":checked") ? 1 : 0;
I don't think you can return 'true' in quotes, since that's a string and not an actual boolean value. I think the named attribute also needs to be quoted. If you check the docs for boolean rule, it states:
The field under validation must be able to be cast as a boolean. Accepted input are true, false, 1, 0, "1", and "0".