The LUFA Project is an open-source USB stack for AVR microcontrollers which feature a hardware USB interface. One of the USB device implementations which is included in the project sources is an AVR Programmer supporting the ISP, TPI and PDI protocols.
The documentation LUFA provides does not include a schematic, but it does provide enough information to work one out. This is an implementation of the hardware needed to support a basic programmer using the LUFA code.
It features as little hardware as possible to support as wide a range of target AVR chips as possible. It includes a logic level translator to allow programming targets of any voltage between 1.8 and 5V, which covers all current AVR chips, but does not include voltage reporting up to the programming software nor any additional isolation.
The board is not intended to provide power to a target, so your target will need to be powered from its own source. This also means the board will draw a small amount of power to drive the target side of the level shifter.
It also has a button to go into bootloader mode, so that the firmware on the programmer can be updated easily using a USB DFU tool, so no special hardware is required to update it. There is also support for replacing the bootloader using the target connector as a programming interface for the board itself.
Status
Boards have been manufactured and first build is due to commence soon.