fn: has_exec return uses same pattern as status

0: ok
10: missing
11: outdated
20: conflict