1. A method for automatically repairing or upgrading a computer, comprising: monitoring and recording mouse and keyboard input of a plurality of different expert users manually repairing or upgrading a plurality of different computers; storing the recorded mouse and keyboard input of the plurality of different expert users working on the plurality of different computers in a trace repository; aligning corresponding steps of the recorded mouse and keyboard input of the plurality of different expert users working on the plurality of different computers stored in the trace repository, wherein aligning the corresponding steps includes identifying and matching corresponding or related steps or actions between different procedural traces from the plurality of different experts working on the plurality of different computers stored in the trace repository; generalizing the aligned recorded mouse and keyboard input of the plurality of expert users working on the plurality of different computers and generating an executable procedure therefrom; distributing the generated executable procedure to one or more client computer devices; and executing the distributed executable procedure on the one or more client computer devices to automatically repair or upgrade the one or more client computer devices, wherein generalizing the aligned recorded mouse and keyboard input of the plurality of expert users and generating an executable procedure therefrom includes: identifying differences between corresponding steps; explaining each of the identified differences; and abstracting each of the identified differences into a logical description of the aligned recorded mouse and keyboard input of the plurality of expert users.