int command_data;
digitalWrite (CS, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, highByte (command_data) );
shiftOut(dataPin, clockPin, MSBFIRST, lowByte (command_data) );
command_data, being a local variable, is not initialized by the compiler, and is never explicitly valued. So, why do you want to send garbage to the mcp4131?