Hello Ross,
I generally prefer not to include a programming header on the board because I think it unnecessarily exposes the pins of the MCU to the effects of possible static discharge with accidental contact. I would usually provide a row of plated-through holes on the board. During in-circuit programming, a suitable plug is located in the holes, and held in position with sideways pressure, to maintain temporary contact.
Assuming you need the ability to erase and re-program a previously programmed MCU, you would need to be able to enter normal monitor mode - this requires more connections than forced monitor mode - a maximum of nine, including Vdd and ground. However, four of these require only static voltages of Vdd or ground. If you can organize so your I/O circuitry applies the required voltages (pull-up or pull-down), these pins do not need to be extended to the programmer. It would also seem that, it your application uses a 8 MHz crystal, you would not need to extend the OSC1 pin.
However, if you use the IRQ pin as an input, keep in mind that Vtst will be applied during programming. It is quite possible that this voltage level could damage a connected device, or protection diodes within the connected device could prevent the proper Vtst level being realized. Been there, done that!
Regards,
Mac