Reply Length

Noisy bots are bad. Try to limit all output to plugins to 3 lines by default as an absolute maximum, and supply paging for getting at lots of info (e.g. repeat command with "more" suffix, or numbered pages. It may be acceptable to reply more verbosely in private message, but please remember that bots which spam irc servers with huge output are bots that get banned. e.g. don't implement a dict plugin that spews dict lookups into a channel. A dictionary definition can be hundreds of lines. Be a good netizen! :) (note, maybe we could do a generic paging api for supporting this in a standard way? if possible..)

Interaction Style

A chatty, friendly bot is preferred over a commandline style interface. This is IRC, not bash. e.g:

<giblet> rbot: remind me about my meeting in one hour
<rbot> okay!
is preferred over:
rbot: remind 1 meeting
or
rbot: remind --after 1hr "meeting"

Don't spew exceptions or errors into the channel unless they are helpful.

Internationalization

Endeavour to support i18n where possible. Since revision 954, rbot has integrated ruby-gettext to allow translation of messages. The existing rbot language module can still be used for groups of strings. See Internationalization for how to make strings translatable.

Plugin API

Writing plugins should be quick and easy, the plugin api should retain backwards compat whenever possible and sensibly default things to keep the barrier to entry low.