A description is given of SPAR, a task planner that has been implemented on a PUMA 762. SPAR is capable of formulating manipulation plans to meet specified assembly goals; these manipulation plans include grasping and regrasping operations if they are deemed necessary for successful completion of assembly. SPAR goes beyond classical AI planners in the sense that SPAR is capable of solving geometric goals associated with high-level symbolic goals. Consequently, if a high-level symbolic goal is on(A,B), SPAR can also entertain the geometric conditions associated with such a goal. Therefore, a simple goal such as on(A,B) may or may not be found to be feasible depending on the kinematic constraints implied by the associated geometric conditions. SPAR has available to it a user-defined repertoire of actions for solving goals and associated with each action is an uncertainty precondition that defines the maximum uncertainty in the world description that would guarantee the successful execution of that action. SPAR has been implemented as a nonlinear constraint posting planner.