I’m not sure this is documented externally at all.
I think the easiest thing to do is pull apart a language library/plugin and see what you find. The CheckStyle plugin comes immediately to mind since they’ve got an update pending for the marketplace. Alternately, you could dig into your instance’s lib/extensions directory.
I’m saying this because I have a vague memory that rule descriptions are in a different file (files?)… Aaand… digging around in a library brings me to the /org/sonar/l10n/[language]/rules/[language] directory, which holds both a JSON and an HTML file per rule.