A self-heal tool performs self-healing tasks such as diagnostic and repair
tasks at the computer host to resolve a user problem. The self-heal tool
includes an instruction file and a self-heal engine which executes
instructions in the instruction file. The self-healing tasks can
therefore be defined independently of the engine. Further, self-healing
tasks can be added, deleted or modified without replacing the entire
instruction file. The self-healing tasks can involve file input-output,
registry-related repairs and operating system-related repairs, for
instance. The instruction file can be provided as an XML file having a
hierarchy of nodes, including issue nodes that identify a diagnostic
and/or repair issue, intermediate nodes referenced by the issue nodes,
and task nodes that are referenced by the intermediate nodes, and that
define the self-healing tasks. The data structure facilitates updates and
code sharing by the issue nodes and/or intermediate nodes.