It doesn't cover your full list, but the ones it does cover are very clearly explained:
A router is called an ‘Authority’ if the authority generating the
network-status document believes it is an authority
A router is called an 'Exit’ iff it allows exits to at least two of
the ports 80, 443, and 6667 and allows exits to at least one /8
A router is 'Fast’ if it is active, and its bandwidth is either in the
top 7/8ths for known active routers or at least some minimum (20KB/s
until 0.2.3.7-alpha, and 100KB/s after that).
A router is a possible 'Guard’ if its Weighted Fractional Uptime is at
least the median for “familiar” active routers, and if its bandwidth
is at least median or at least 250KB/s.
To calculate weighted fractional uptime, compute the fraction of time
that the router is up in any given day, weighting so that downtime and
uptime in the past counts less.
A node is 'familiar’ if 1/8 of all active nodes have appeared more
recently than it, OR it has been around for a few weeks.
A router is a v2 hidden service directory if it stores and serves v2
hidden service descriptors, and the authority believes that it’s been
up for at least 25 hours (or the current value of
Directory authority administrators may decide to support name binding.
If they do, then they must maintain a file of nickname-to-identity-key
mappings, and try to keep this file consistent with other directory
authorities. If they don’t, they act as clients, and report bindings
made by other directory authorities (name X is bound to identity Y if
at least one binding directory lists it, and no directory binds X to
some other Y’.) A router is called 'Named’ if the router believes the
given name should be bound to the given key.
Two strategies exist on the current network for deciding on values for
the Named flag. In the original version, relay operators were asked
to send nickname-identity pairs to a mailing list of Naming directory
authorities’ operators. The operators were then supposed to add the
pairs to their mapping files; in practice, they didn’t get to this
Newer Naming authorities run a script that registers routers in their
mapping files once the routers have been online at least two weeks, no
other router has that nickname, and no other router has wanted the
nickname for a month. If a router has not been online for six months,
the router is removed.
A router is 'Running’ if the authority managed to connect to it
successfully within the last 45 minutes.
A router is 'Stable’ if it is active, and either its Weighted MTBF is
at least the median for known active routers or its Weighted MTBF
corresponds to at least 7 days. Routers are never called Stable if
they are running a version of Tor known to drop circuits stupidly.
(0.1.1.10-alpha through 0.1.1.16-rc are stupid this way.)
To calculate weighted MTBF, compute the weighted mean of the lengths
of all intervals when the router was observed to be up, weighting
intervals by $\alpha^n$, where $n$ is the amount of time that has
passed since the interval ended, and $\alpha$ is chosen so that
measurements over approximately one month old no longer influence the
weighted MTBF much. [XXXX what happens when we have less than 4 days
of MTBF info.]
Directory authorities that support naming should vote for a router to
be 'Unnamed’ if its given nickname is mapped to a different identity.
a router is 'Valid’ if it is running a version of Tor not known to be
broken, and the directory authority has not blacklisted it as
A router supports the v2 directory protocol if it has an open
directory port, and it is running a version of the directory protocol
that supports the functionality clients need. (Currently, this is
0.1.1.9-alpha or later.)