Experience has proven that exploiting robots for manipulation tasks is much more difficult than engineers had expected and many attempts at automating tasks requiring robotic manipulation have failed. Our research has led us to believe that a formal approach to specifying the steps required for manipulation tasks is essential to developing the required software for a specific task, and in adaptively controlling and monitoring robotic operations. We have defined 14 primitive operations based on the reduction in the degrees of freedom which occurs when components are assembled or manipulated, and from our initial experiments, these primitives appear to elegantly and completely define the fine manipulation required for simple assembly tasks. Each of the primitives has a strategy associated with its execution, and a set of recovery algorithms in the event the operation fails. The work herein proposed will expand and further test the basic concepts. Manipulation By Constraint can be thought of as an approach to representing the knowledge required to assemble or manipulate objects.