As personal assistant software matures and assumes more autonomous control of its users' activities, it becomes more critical that this software can explain its task processing. It must be able to tell the user why it is doing what it is doing, and instill trust in the user that its task knowledge reflects standard practice and is being appropriately applied. We will describe the ICEE (Integrated Cognitive Explanation Environment) explanation system and its approach to explaining task reasoning. Key features include (1) an architecture designed for re-use among many different task execution systems; (2) a set of introspective predicates and a software wrapper that extract explanation-relevant information from a task execution system; (3) a version of the Inference Web explainer for generating formal justifications of task processing and converting them to user-friendly explanations; and (4) a unified framework for explanation in which the task explanation system is integrated with previous work on explaining deductive reasoning. Our work is focused on explaining belief-desire-intention (BDI) agent execution frameworks with the ability to learn. We demonstrate ICEE's application within CALO, a state-of-the-art personal software assistant, to explain the task reasoning of one such execution system.