There isn't really a native command to repeat a change without including the inserted text as part of the repeat.
You mentioned using a macro, but recording it (using the q command) can be tricky, since you want to end it inside insert mode. It turns out you can actually do that using qacit<C-O>q to record only cit in @a, which you can use to ...
This is a bug registered on March 17th,
and reported on February 24th, 2019. From :help known-bugs:
Bug: script written with "-W scriptout" contains Key codes, while the script
read with "-s scriptin" expects escape codes. Probably "scriptout" needs to
be adjusted. (Daniel Steinberg, 2019 Feb 24, #4041)
As of this writing, it doesn't have a priority ...
It looks like a nasty bug.
When writing a script out, Vim uses its "<>-notation" for keycodes, i.e. "\<BS>" (<80>kb) for backspace key, "\<del>" (<80>kD) for delete key, etc.
However, they only get converted back into "real" keys if pumped through :normal. While -s or :source! simply allow them to pass through!
It's also ...