Normally I assume people are working with a stable version of KiCad, unless it’s clear that it’s not so from the post.
You mention custom DRC rules, and those only exist in KiCad-nightly V5.99. I do not have much experience with these rules and can’t comment on them.
Changing all THT pads into NPTH holes probably won’t work. If it’s just a hole instead of a pad you probably can’t connect a track to it, which will lead to many DRC errors. I guess it would work better to just turn the top layer off for the pads. This probably prevents tracks from being connected to a pad on the top layer. Have you tried this?
As you seem to want to do this on a regular basis, a script based approach is probably best. KiCad itself has a scripting interface, but you can also create an external script that works with the text-based KiCad files.
You could start with making a small test project which has both THT pads with copper on both layers, and a footprint with pads on only the bottom layer, then open the file in a text editor and look at how the pads are defined, and how you want to change them.
The files made by KiCad are quite readable, even without a manual. This is what a pad looks like:
(pad "1" thru_hole rect locked (at 0 0) (size 2 2) (drill 1) (layers *.Cu *.Mask)
(net 1 "+24V") (tstamp 9582ae04-60c6-480a-b8b1-0fd6b3482b63))
You also have to think about where you change it.
KiCad’s default libraries are designed for plated THT pads, and for every footprint you use a copy is made into the PCB file. Where it persists, unless the footprints are updated explicitly (this can be done via Eeschema / Tools / Update PCB from schematic or by updating them in Pcbnew ( re badged “PCB editor” in KiCad-nightly V5.99) itself.
If it was only for in-house designs, writing a script to modify (a copy of) the libraries may be a good approach, but if you also want it to work with PCB’s made by others then modifying the PCB itself is probably a better approach.
A simpler approach is to just manually edit the footprints, and then copy each modified footprint into a special library. It’s likely you will just use a small sub set of the available footprints. After you’ve done this a few times and build a collection then you can change an "incoming’ project to use the footrpints from your “special library” and then update the footprints in the PCB.
Yet another option is to not change the PCB at all.
If you strip a piece of copper wire you can use individual strands to make bridges:
- Poke through hole
- Solder the open end.
- Pull tight and fold over.
- Cut it with a knife.
- Solder on other side of PCB. (Or exchange last two steps).
The wire must be thin enough to be able to fit it in the hole together with the pin of your components.