Is there a simple rule determining which concepts are "ordinary" vs "dual" in category theory?

The answer is: "4) All of the above," but mostly things are "consistent" and apparent "inconsistencies" are probably not accidents, but sometimes inconsistencies are just poor terminology and other times they are to avoid hobgoblins. To directly answer which is "closest to the truth", it is 2, but the "rule" is not formal, or, to the extent that you do formalize it, doesn't cover every possible use we might want for the terminology. The "rule" is also not trivial and can be a matter of perspective.

First, whether some concept is the dual of some other concept is often not the most relevant or important aspect of it. This is why we have terms like "initial" and "terminal" or "pushout" and "pullback" and not "coterminal" and "terminal" or "copullback" and "pullback".

Typically, the "co-" prefix is used for left adjoint-y things while the prefixless version is used for right adjoint-y things. Colimits are left adjoints as are coequalizers, but not everything is determined by universal properties (and some things are determined by multiple universal properties, e.g. [binary] direct sums). Spans, for example, are commonly used while cospans are not talked about that much. (Incidentally, spans are cones and cospans are cocones, but this description will almost certainly cause more confusion than not. Indeed, a pullback is a limit span.) Nevertheless, because humans neither have the inclination nor ability to ensure global consistency, there are certainly times where it would be more "consistent" to rename which term is the dual. The most notable example is "tensors" and "cotensors", which, for the above reason among others, are also called "copowers" and "powers" respectively. (One of the other reasons is that the word "tensor" is already enormously overloaded.)

The "left"/"right" terminology, though, is even more consistently used.1 It is pretty hard to be confused between the domain and codomain.2 If you see an inversion here, it is probably reflective of something deeper. That right adjoints are left Kan extensions is not an artifact of poor choices in names. First, left Kan extensions can themselves be described as left adjoints3 (modulo some size considerations), or rather the functor which performs left Kan extension along some given functor is a left adjoint. Second, colimits are left Kan extensions. Third, left Kan extensions are weighted colimits (which can usually also be expressed as coends of pairs). So this is a case where there would be no way to "correct" this terminology without breaking "consistency" elsewhere, but, again, nothing is wrong in this case. As you allude to, we don't have this "flipping" in the Kan lift case. This no doubt has to do with the fact that pre-composition is the action of the contravariant hom-functor while post-composition is the action of the covariant hom-functor.

1 The specific words "left" and "right" come from our notation(s) for hom-sets and thus are a result of convention. One could imagine terminology like "source" and "target" adjoint that would not be sensitive to the order we write things. On the other hand, I tend to use the terminology "pre-/post-composition" rather than "right/left composition" as the order of composition is not nearly as unambiguous.

2 Which brings up another aspect that not all uses of "co-" have to do with categorical duality, or at least weren't chosen with any reference to categorical duality (e.g. because category theory didn't exist at the time).

3 This gives the notion of a global Kan extension, but that usually isn't what we want. Nevertheless, the "leftiness" still persists for local and pointwise left Kan extensions.


A nice minimal example of the unavoidability of this conflict, which is in essence where the right Kan/left adjoint thing comes from, is that an initial object is both a colimit of the empty diagram and a limit of the identity functor.