The way new friends are found and tested is fairly simple and could be improved to look for more than just "guinea pig" and/or take into account who other people are following.
Add an option to allow the time interval between state changes to be set. This will have an impact on the number of tweets which must be taken into account.
If allowed the bot could run for several years using the same guinea pig instance. In practice this is not likely unless we can save state so that the same guinea pig state could be resumed.
Tweet a message when someone follows the bot. Check for new followers should be done irregularly like the friend functionality. Create a new selection of messages that can be used for this. e.g.
I've just noticed that {} is following me.
I've sensed that {} is watching me.
Vague interest that {} is following me.
The code dealing with the friends list, for finding friends and pruning them, uses one long list of Id's. Should we be paging this list from the API or storing it locally and maintaining it better?
Not sure if smooth is the correct term but currently all twitter interactions are based on random number checks. It would be good if we could say for example that the bot will always tweet x times a day, but not at fixed times. Or, that it will always search for a new friend once ever couple of days.