MeetingBot

Introduction
Successful meetings involve some overhead: creating agendas, assigning action items, producing minutes for later review, etc -- but no one really relishes having to be "the scribe" and write up minutes and whatnot. Since most of our meetings occur via IRC (or IRC + phone), however, it seems like we ought to be able to pretty easily have an agent running in the background, monitoring the IRC conversation, to serve as a "recording secretary" or "administrative assistant" for these sorts of tasks.

I envision a "meeting bot", which can do these basic functions:
 * record the IRC transcript of the meeting
 * record who attended the meeting
 * record assigned tasks
 * record notes about agenda items discussed
 * automatically generate minutes

It would be nice if the bot could walk us through each item on the agenda, but I don't have a clear notion of the user interface for that yet (would require the agenda be in some XML-like form somewhere...) It would also really be nice if such a bot could also serve as an interface to an issue tracking system. But until OSGeo has a baseline issue tracking system, we oughtn't go there.

Prior art
I'm not an IRC expert and I've never written a bot, but it seems like a fun thing to do (and that is all that this really all about...).

A quick surf of the net found a few things by the WC3 folks close to what I'm thinking of:
 * Zakim
 * RRSAgent
 * Scribe.perl

I need to research these to see if those things are what I want. Although the above are all Perl, and I'd prefer Python (a la supybot?).

Details
Operation


 * lives on the #osgeo channel, 24x7
 * restarts itself automatically
 * keeps a file-based backing store, in case the bot goes down

Required Features

(this is not the exact syntax, just a rough idea)


 * general command: "bot: start the meeting named VisCom"
 * starts recording the full IRC transcript of the meeting
 * records list of attendees, based on who spoke
 * watches for specific keyword-based commands (below)


 * general command: "bot: end meeting"
 * stops recording transcript
 * minutes automatically generated, put somewhere or mailed out
 * emails out list of specific tasks to specific owners


 * keyword-based commands (detected by the bot, while a meeting is active; might be preferable to prefacing everything by "bot:'")
 * "add attendee Alice" - extends attendee list, e.g. if Alice only on phone
 * "TODO Bob order new shirts" - records a task for Bob in the minutes
 * "NOTE shirts are $15/each" - adds a note to capture in the minutes
 * "show attendees|tasks|minutes" - dumps current status of things

Optional Features


 * "bot: add meeting VisCom "
 * bot keeps list of coming meetings
 * bot can send reminder 10 mins before meeting


 * "add agenda item ask about getting more shirts"
 * "list all agenda items"
 * "start next agenda item"
 * "bot: show next meeting" -- shows when the next osgeo meeting is
 * "bot: show next geodata meeting" -- shows when the next geodata meeting is
 * "bot: start vote" -- records +1, 0, -1 and nicks of folks who voted