there seems to be a mistake in the monasterymonitor. the line:
"
// If we’re not capped at this age, we are done here.
if (kbGetAge() == cvMaxAge)
{
return;
}
"
seems to imply that the intention is that if the current age is not maximum, it is not worth getting those upgrades. however it is currently set to research those upgrades as long as maximum age is not reached. this is supported by techs like cTechypMonasteryIndianSpeed being more important to late game than early.
“if (kbGetAge() == cvMaxAge)” should instead be something like “if (kbGetAge() < cvMaxAge)”