I wrote this section with the little knowledge I have of the capabilities system; I work mainly by testing different possibilities until I get what I want. As for all the documentation, feel free to contact me to correct/enhance it.

First, you should know how capabilities work on the user side.

Checking for a capability given its name

You only have to use ircdb.checkCapability(prefix, 'capability').

You can also override some behavior of the capability system. Here is the complete documentation of ircdb.checkCapabiltiy:

Manipulating capability names

Althrough you can manipulate capability names with string operations, Supybot provides a few methods to do that “in the abstract” (could be useful if we change the capability syntax one day…):