First of all thanks for taking the time to write the AI. 
However I think more effort should be put in to the overall state model. Not sure if there is a way for AI to store the information obtained while scouting and then adjust their units accordingly. For example if the AI scouts that you are massing roaches, then it might counter with either air units or marauders or immortals as Terran or Zerg.
Adding in a hard coded unit counter list will definitely improve the combat experience rather than having the AI building the same units based on the build list given.
The micro also seems to be lacking. There is no pulling back of injured unit or focusing fire on a unit. Small changes to the tactical AI that will be great to have.

However I think more effort should be put in to the overall state model. Not sure if there is a way for AI to store the information obtained while scouting and then adjust their units accordingly. For example if the AI scouts that you are massing roaches, then it might counter with either air units or marauders or immortals as Terran or Zerg.
Adding in a hard coded unit counter list will definitely improve the combat experience rather than having the AI building the same units based on the build list given.
The micro also seems to be lacking. There is no pulling back of injured unit or focusing fire on a unit. Small changes to the tactical AI that will be great to have.