How can I hide a field in the node add form but it unhide it on the node edit form?
You can Show/Hide the status field using hook_form_alter like this:

function MYMODULE_form_node_form_alter(&amp;$form, &amp;$form_state) {
  $node = $form_state['node'];

  if (!isset($node-&gt;nid) || isset($node-&gt;is_new)) {
    $form['YOUR_FIELD']['#access'] = FALSE; // Node is new!
  }
  else {
    $form['YOUR_FIELD']['#access'] = TRUE; // Node is not new!
  }
}


Then replace YOUR_FIELD with the field name of your status field.