The classes that each component sets for itself is currently documented under Reference -> Language Concepts -> Classes and Decisions -> Hard Classes.
agent cf-agent, server cf-serverd, monitor cf-monitord, executor cf-execd, runagent cf-runagent, keygenerator cf-keygen, hub cf-hub, common cf-promises and others: classes that identify the current component. cf-promises is a special case because it's not an agent in the CFEngine sense, so note that using cf-promises --show-classes will not show these classes because it can't.
I think that these would be much easier to find/know about if they were listed on the component specific page.
E.g. Reference -> Components -> cf-agent should indicate that it defines the `agent` class when executing.
This matters mostly in the context of common bundles, specifically in some place where you are using a common bundle to define variables that extend inputs via body file control. For example, these classes can be used to avoid having cf-serverd parse a bunch of policy files that are full of agent bundles